Imported Upstream version 0.9.4 sandbox/kevinthierry/upstream upstream/0.9.4
authorKévin THIERRY <kevin.thierry@open.eurogiciel.org>
Mon, 22 Dec 2014 15:45:04 +0000 (16:45 +0100)
committerKévin THIERRY <kevin.thierry@open.eurogiciel.org>
Mon, 22 Dec 2014 15:45:04 +0000 (16:45 +0100)
1618 files changed:
AUTHORS
ChangeLog
Makefile.in
NEWS
README
aclocal.m4
autogen.sh
build-aux/compile
build-aux/config.guess
build-aux/config.rpath
build-aux/config.sub
build-aux/depcomp
build-aux/install-sh
build-aux/ltmain.sh
build-aux/mdate-sh
build-aux/missing
build-aux/snippet/_Noreturn.h [new file with mode: 0644]
build-aux/snippet/arg-nonnull.h [moved from build-aux/arg-nonnull.h with 91% similarity]
build-aux/snippet/c++defs.h [moved from build-aux/c++defs.h with 87% similarity]
build-aux/snippet/unused-parameter.h [moved from build-aux/unused-parameter.h with 93% similarity]
build-aux/snippet/warn-on-use.h [moved from build-aux/warn-on-use.h with 96% similarity]
build-aux/test-driver [new file with mode: 0755]
config.h.in
configure
configure.ac
doc/Makefile.am
doc/Makefile.in
doc/libunistring.info
doc/libunistring.texi
doc/libunistring_1.html
doc/libunistring_10.html
doc/libunistring_11.html
doc/libunistring_12.html
doc/libunistring_13.html
doc/libunistring_14.html
doc/libunistring_15.html
doc/libunistring_16.html
doc/libunistring_17.html
doc/libunistring_18.html
doc/libunistring_19.html
doc/libunistring_2.html
doc/libunistring_20.html [new file with mode: 0644]
doc/libunistring_3.html
doc/libunistring_4.html
doc/libunistring_5.html
doc/libunistring_6.html
doc/libunistring_7.html
doc/libunistring_8.html
doc/libunistring_9.html
doc/libunistring_abt.html
doc/libunistring_toc.html
doc/stamp-vti
doc/unicase.texi
doc/unictype.texi
doc/unigbrk.texi [new file with mode: 0644]
doc/uninorm.texi
doc/unistr.texi
doc/uniwbrk.texi
doc/version.texi
gnulib-local/Makefile.am
gnulib-local/Makefile.in
gnulib-local/lib/unicase.in.h.diff [moved from gnulib-local/lib/unicase.h.diff with 72% similarity]
gnulib-local/lib/uniconv.in.h.diff [moved from gnulib-local/lib/uniconv.h.diff with 82% similarity]
gnulib-local/lib/unictype.in.h.diff [moved from gnulib-local/lib/unictype.h.diff with 76% similarity]
gnulib-local/lib/unigbrk.in.h.diff [new file with mode: 0644]
gnulib-local/lib/unilbrk.in.h.diff [moved from gnulib-local/lib/unilbrk.h.diff with 73% similarity]
gnulib-local/lib/uninorm.in.h.diff [moved from gnulib-local/lib/uninorm.h.diff with 65% similarity]
gnulib-local/lib/unistr.in.h.diff [moved from gnulib-local/lib/unistr.h.diff with 81% similarity]
gnulib-local/lib/unitypes.in.h.diff [moved from gnulib-local/lib/unitypes.h.diff with 77% similarity]
gnulib-local/lib/uniwidth.in.h.diff [moved from gnulib-local/lib/uniwidth.h.diff with 74% similarity]
gnulib-local/modules/unictype/category-none-tests.diff
gnulib-m4/00gnulib.m4
gnulib-m4/absolute-header.m4 [new file with mode: 0644]
gnulib-m4/alloca.m4
gnulib-m4/btowc.m4 [new file with mode: 0644]
gnulib-m4/codeset.m4
gnulib-m4/configmake.m4 [new file with mode: 0644]
gnulib-m4/eealloc.m4
gnulib-m4/environ.m4
gnulib-m4/errno_h.m4
gnulib-m4/error.m4
gnulib-m4/exponentd.m4
gnulib-m4/exponentf.m4
gnulib-m4/exponentl.m4
gnulib-m4/extensions.m4
gnulib-m4/extern-inline.m4 [new file with mode: 0644]
gnulib-m4/fcntl-o.m4
gnulib-m4/fdopen.m4 [new file with mode: 0644]
gnulib-m4/float_h.m4
gnulib-m4/fpieee.m4
gnulib-m4/frexp.m4
gnulib-m4/frexpl.m4
gnulib-m4/fseterr.m4 [new file with mode: 0644]
gnulib-m4/getpagesize.m4
gnulib-m4/glibc21.m4
gnulib-m4/gnulib-cache.m4
gnulib-m4/gnulib-common.m4
gnulib-m4/gnulib-comp.m4
gnulib-m4/iconv.m4
gnulib-m4/iconv_h.m4
gnulib-m4/iconv_open.m4
gnulib-m4/include_next.m4
gnulib-m4/inline.m4
gnulib-m4/intlmacosx.m4
gnulib-m4/intmax_t.m4
gnulib-m4/inttypes-pri.m4 [new file with mode: 0644]
gnulib-m4/inttypes.m4 [new file with mode: 0644]
gnulib-m4/inttypes_h.m4
gnulib-m4/isnand.m4
gnulib-m4/isnanf.m4
gnulib-m4/isnanl.m4
gnulib-m4/iswblank.m4 [new file with mode: 0644]
gnulib-m4/lcmessage.m4
gnulib-m4/ldexpl.m4
gnulib-m4/lib-ld.m4
gnulib-m4/lib-link.m4
gnulib-m4/lib-prefix.m4
gnulib-m4/libunistring-base.m4 [new file with mode: 0644]
gnulib-m4/localcharset.m4
gnulib-m4/locale-ar.m4 [new file with mode: 0644]
gnulib-m4/locale-fr.m4
gnulib-m4/locale-ja.m4
gnulib-m4/locale-tr.m4
gnulib-m4/locale-zh.m4
gnulib-m4/locale_h.m4
gnulib-m4/localename.m4
gnulib-m4/lock.m4
gnulib-m4/longlong.m4
gnulib-m4/malloc.m4
gnulib-m4/malloca.m4
gnulib-m4/math_h.m4
gnulib-m4/mbchar.m4
gnulib-m4/mbiter.m4
gnulib-m4/mbrtowc.m4
gnulib-m4/mbsinit.m4
gnulib-m4/mbstate_t.m4
gnulib-m4/mbtowc.m4 [new file with mode: 0644]
gnulib-m4/memchr.m4
gnulib-m4/minmax.m4
gnulib-m4/mmap-anon.m4
gnulib-m4/msvc-inval.m4 [new file with mode: 0644]
gnulib-m4/msvc-nothrow.m4 [new file with mode: 0644]
gnulib-m4/multiarch.m4
gnulib-m4/nocrash.m4
gnulib-m4/off_t.m4 [new file with mode: 0644]
gnulib-m4/printf-frexp.m4
gnulib-m4/printf-frexpl.m4
gnulib-m4/printf.m4
gnulib-m4/putenv.m4
gnulib-m4/relocatable-lib.m4
gnulib-m4/setenv.m4
gnulib-m4/setlocale.m4 [new file with mode: 0644]
gnulib-m4/signbit.m4
gnulib-m4/size_max.m4
gnulib-m4/ssize_t.m4 [new file with mode: 0644]
gnulib-m4/stdbool.m4
gnulib-m4/stddef_h.m4
gnulib-m4/stdint.m4
gnulib-m4/stdint_h.m4
gnulib-m4/stdio_h.m4 [new file with mode: 0644]
gnulib-m4/stdlib_h.m4
gnulib-m4/strerror.m4
gnulib-m4/string_h.m4
gnulib-m4/strncat.m4
gnulib-m4/strstr.m4 [new file with mode: 0644]
gnulib-m4/sys_socket_h.m4 [new file with mode: 0644]
gnulib-m4/sys_types_h.m4 [new file with mode: 0644]
gnulib-m4/thread.m4
gnulib-m4/threadlib.m4
gnulib-m4/unistd_h.m4
gnulib-m4/vasnprintf.m4
gnulib-m4/warn-on-use.m4
gnulib-m4/wchar_h.m4
gnulib-m4/wchar_t.m4
gnulib-m4/wcrtomb.m4 [new file with mode: 0644]
gnulib-m4/wctob.m4
gnulib-m4/wctomb.m4 [new file with mode: 0644]
gnulib-m4/wctype_h.m4
gnulib-m4/wcwidth.m4
gnulib-m4/wint_t.m4
gnulib-m4/xalloc.m4
gnulib-m4/xsize.m4
gnulib-m4/yield.m4
lib/Makefile.am
lib/Makefile.gnulib
lib/Makefile.in
lib/alloca.in.h
lib/amemxfrm.c [moved from lib/memxfrm.c with 54% similarity]
lib/amemxfrm.h [moved from lib/memxfrm.h with 86% similarity]
lib/array-mergesort.h
lib/c-ctype.c
lib/c-ctype.h
lib/c-strcase.h
lib/c-strcasecmp.c
lib/c-strcaseeq.h
lib/c-strncasecmp.c
lib/config.charset
lib/errno.in.h
lib/float+.h
lib/float.c [new file with mode: 0644]
lib/float.in.h
lib/fpucw.h
lib/frexp.c
lib/frexpl.c
lib/fseterr.c
lib/fseterr.h
lib/glthread/lock.c
lib/glthread/lock.h
lib/glthread/threadlib.c
lib/iconv.c [new file with mode: 0644]
lib/iconv.in.h
lib/iconv_close.c [new file with mode: 0644]
lib/iconv_open.c
lib/iconveh.h
lib/isnan.c
lib/isnand-nolibm.h
lib/isnand.c
lib/isnanf-nolibm.h
lib/isnanf.c
lib/isnanl-nolibm.h
lib/isnanl.c
lib/iswblank.c [new file with mode: 0644]
lib/itold.c [new file with mode: 0644]
lib/libunistring.rc
lib/libunistring.sym
lib/localcharset.c
lib/localcharset.h
lib/localename.c
lib/localename.h
lib/malloc.c
lib/malloca.c
lib/malloca.h
lib/math.c [new file with mode: 0644]
lib/math.in.h
lib/mbchar.c
lib/mbchar.h
lib/mbiter.c [new file with mode: 0644]
lib/mbiter.h
lib/mbrtowc.c
lib/mbsinit.c
lib/mbsnlen.c
lib/memchr.c
lib/memcmp2.c
lib/memcmp2.h
lib/minmax.h
lib/printf-args.c
lib/printf-args.h
lib/printf-frexp.c
lib/printf-frexp.h
lib/printf-frexpl.c
lib/printf-frexpl.h
lib/printf-parse.c
lib/printf-parse.h
lib/ref-add.sin
lib/ref-del.sin
lib/relocatable.c
lib/relocatable.h
lib/signbitd.c
lib/signbitf.c
lib/signbitl.c
lib/size_max.h
lib/stdbool.in.h
lib/stdbool.mini.h
lib/stddef.in.h
lib/stdint.in.h
lib/stdint.mini.h
lib/stdio-impl.h
lib/stdlib.in.h
lib/str-kmp.h [new file with mode: 0644]
lib/str-two-way.h [new file with mode: 0644]
lib/streq.h
lib/striconveh.c
lib/striconveh.h
lib/striconveha.c
lib/striconveha.h
lib/string.in.h
lib/strncat.c
lib/strstr.c [new file with mode: 0644]
lib/sys_types.in.h [new file with mode: 0644]
lib/unicase.h
lib/unicase.in.h [new file with mode: 0644]
lib/unicase/cased.c
lib/unicase/cased.h
lib/unicase/casefold.h
lib/unicase/caseprop.h
lib/unicase/context.h
lib/unicase/empty-prefix-context.c
lib/unicase/empty-suffix-context.c
lib/unicase/ignorable.c
lib/unicase/ignorable.h
lib/unicase/invariant.h
lib/unicase/locale-language.c
lib/unicase/simple-mapping.h
lib/unicase/special-casing-table.gperf
lib/unicase/special-casing.c
lib/unicase/special-casing.h
lib/unicase/tocasefold.c
lib/unicase/tocasefold.h
lib/unicase/tolower.c
lib/unicase/tolower.h
lib/unicase/totitle.c
lib/unicase/totitle.h
lib/unicase/toupper.c
lib/unicase/toupper.h
lib/unicase/u-casecmp.h
lib/unicase/u-casecoll.h
lib/unicase/u-casefold.h
lib/unicase/u-casemap.h
lib/unicase/u-casexfrm.h
lib/unicase/u-ct-casefold.h
lib/unicase/u-ct-totitle.h
lib/unicase/u-is-cased.h
lib/unicase/u-is-invariant.h
lib/unicase/u-totitle.h
lib/unicase/u16-casecmp.c
lib/unicase/u16-casecoll.c
lib/unicase/u16-casefold.c
lib/unicase/u16-casemap.c
lib/unicase/u16-casexfrm.c
lib/unicase/u16-ct-casefold.c
lib/unicase/u16-ct-tolower.c
lib/unicase/u16-ct-totitle.c
lib/unicase/u16-ct-toupper.c
lib/unicase/u16-is-cased.c
lib/unicase/u16-is-casefolded.c
lib/unicase/u16-is-invariant.c
lib/unicase/u16-is-lowercase.c
lib/unicase/u16-is-titlecase.c
lib/unicase/u16-is-uppercase.c
lib/unicase/u16-tolower.c
lib/unicase/u16-totitle.c
lib/unicase/u16-toupper.c
lib/unicase/u32-casecmp.c
lib/unicase/u32-casecoll.c
lib/unicase/u32-casefold.c
lib/unicase/u32-casemap.c
lib/unicase/u32-casexfrm.c
lib/unicase/u32-ct-casefold.c
lib/unicase/u32-ct-tolower.c
lib/unicase/u32-ct-totitle.c
lib/unicase/u32-ct-toupper.c
lib/unicase/u32-is-cased.c
lib/unicase/u32-is-casefolded.c
lib/unicase/u32-is-invariant.c
lib/unicase/u32-is-lowercase.c
lib/unicase/u32-is-titlecase.c
lib/unicase/u32-is-uppercase.c
lib/unicase/u32-tolower.c
lib/unicase/u32-totitle.c
lib/unicase/u32-toupper.c
lib/unicase/u8-casecmp.c
lib/unicase/u8-casecoll.c
lib/unicase/u8-casefold.c
lib/unicase/u8-casemap.c
lib/unicase/u8-casexfrm.c
lib/unicase/u8-ct-casefold.c
lib/unicase/u8-ct-tolower.c
lib/unicase/u8-ct-totitle.c
lib/unicase/u8-ct-toupper.c
lib/unicase/u8-is-cased.c
lib/unicase/u8-is-casefolded.c
lib/unicase/u8-is-invariant.c
lib/unicase/u8-is-lowercase.c
lib/unicase/u8-is-titlecase.c
lib/unicase/u8-is-uppercase.c
lib/unicase/u8-tolower.c
lib/unicase/u8-totitle.c
lib/unicase/u8-toupper.c
lib/unicase/ulc-casecmp.c
lib/unicase/ulc-casecoll.c
lib/unicase/ulc-casexfrm.c
lib/unicase/unicasemap.h
lib/uniconv.h
lib/uniconv.in.h [new file with mode: 0644]
lib/uniconv/u-conv-from-enc.h
lib/uniconv/u-conv-to-enc.h
lib/uniconv/u-strconv-from-enc.h
lib/uniconv/u-strconv-to-enc.h
lib/uniconv/u16-conv-from-enc.c
lib/uniconv/u16-conv-to-enc.c
lib/uniconv/u16-strconv-from-enc.c
lib/uniconv/u16-strconv-from-locale.c
lib/uniconv/u16-strconv-to-enc.c
lib/uniconv/u16-strconv-to-locale.c
lib/uniconv/u32-conv-from-enc.c
lib/uniconv/u32-conv-to-enc.c
lib/uniconv/u32-strconv-from-enc.c
lib/uniconv/u32-strconv-from-locale.c
lib/uniconv/u32-strconv-to-enc.c
lib/uniconv/u32-strconv-to-locale.c
lib/uniconv/u8-conv-from-enc.c
lib/uniconv/u8-conv-to-enc.c
lib/uniconv/u8-strconv-from-enc.c
lib/uniconv/u8-strconv-from-locale.c
lib/uniconv/u8-strconv-to-enc.c
lib/uniconv/u8-strconv-to-locale.c
lib/unictype.h
lib/unictype.in.h [new file with mode: 0644]
lib/unictype/bidi_byname.c
lib/unictype/bidi_byname.gperf [new file with mode: 0644]
lib/unictype/bidi_byname.h [new file with mode: 0644]
lib/unictype/bidi_longname.c [new file with mode: 0644]
lib/unictype/bidi_name.c
lib/unictype/bidi_of.c
lib/unictype/bidi_of.h
lib/unictype/bidi_test.c
lib/unictype/bitmap.h
lib/unictype/block_test.c
lib/unictype/blocks.c
lib/unictype/blocks.h
lib/unictype/categ_C.c
lib/unictype/categ_C.h
lib/unictype/categ_Cc.c
lib/unictype/categ_Cc.h
lib/unictype/categ_Cf.c
lib/unictype/categ_Cf.h
lib/unictype/categ_Cn.c
lib/unictype/categ_Cn.h
lib/unictype/categ_Co.c
lib/unictype/categ_Co.h
lib/unictype/categ_Cs.c
lib/unictype/categ_Cs.h
lib/unictype/categ_L.c
lib/unictype/categ_L.h
lib/unictype/categ_LC.c [new file with mode: 0644]
lib/unictype/categ_LC.h [new file with mode: 0644]
lib/unictype/categ_Ll.c
lib/unictype/categ_Ll.h
lib/unictype/categ_Lm.c
lib/unictype/categ_Lm.h
lib/unictype/categ_Lo.c
lib/unictype/categ_Lo.h
lib/unictype/categ_Lt.c
lib/unictype/categ_Lt.h
lib/unictype/categ_Lu.c
lib/unictype/categ_Lu.h
lib/unictype/categ_M.c
lib/unictype/categ_M.h
lib/unictype/categ_Mc.c
lib/unictype/categ_Mc.h
lib/unictype/categ_Me.c
lib/unictype/categ_Me.h
lib/unictype/categ_Mn.c
lib/unictype/categ_Mn.h
lib/unictype/categ_N.c
lib/unictype/categ_N.h
lib/unictype/categ_Nd.c
lib/unictype/categ_Nd.h
lib/unictype/categ_Nl.c
lib/unictype/categ_Nl.h
lib/unictype/categ_No.c
lib/unictype/categ_No.h
lib/unictype/categ_P.c
lib/unictype/categ_P.h
lib/unictype/categ_Pc.c
lib/unictype/categ_Pc.h
lib/unictype/categ_Pd.c
lib/unictype/categ_Pd.h
lib/unictype/categ_Pe.c
lib/unictype/categ_Pe.h
lib/unictype/categ_Pf.c
lib/unictype/categ_Pf.h
lib/unictype/categ_Pi.c
lib/unictype/categ_Pi.h
lib/unictype/categ_Po.c
lib/unictype/categ_Po.h
lib/unictype/categ_Ps.c
lib/unictype/categ_Ps.h
lib/unictype/categ_S.c
lib/unictype/categ_S.h
lib/unictype/categ_Sc.c
lib/unictype/categ_Sc.h
lib/unictype/categ_Sk.c
lib/unictype/categ_Sk.h
lib/unictype/categ_Sm.c
lib/unictype/categ_Sm.h
lib/unictype/categ_So.c
lib/unictype/categ_So.h
lib/unictype/categ_Z.c
lib/unictype/categ_Z.h
lib/unictype/categ_Zl.c
lib/unictype/categ_Zl.h
lib/unictype/categ_Zp.c
lib/unictype/categ_Zp.h
lib/unictype/categ_Zs.c
lib/unictype/categ_Zs.h
lib/unictype/categ_and.c
lib/unictype/categ_and_not.c
lib/unictype/categ_byname.c
lib/unictype/categ_byname.gperf [new file with mode: 0644]
lib/unictype/categ_byname.h [new file with mode: 0644]
lib/unictype/categ_longname.c [new file with mode: 0644]
lib/unictype/categ_name.c
lib/unictype/categ_none.c
lib/unictype/categ_of.c
lib/unictype/categ_of.h
lib/unictype/categ_or.c
lib/unictype/categ_test.c
lib/unictype/combiningclass.c [moved from lib/unictype/combining.c with 94% similarity]
lib/unictype/combiningclass.h [moved from lib/unictype/combining.h with 81% similarity]
lib/unictype/combiningclass_byname.c [new file with mode: 0644]
lib/unictype/combiningclass_byname.gperf [new file with mode: 0644]
lib/unictype/combiningclass_byname.h [new file with mode: 0644]
lib/unictype/combiningclass_longname.c [new file with mode: 0644]
lib/unictype/combiningclass_name.c [new file with mode: 0644]
lib/unictype/ctype_alnum.c
lib/unictype/ctype_alnum.h
lib/unictype/ctype_alpha.c
lib/unictype/ctype_alpha.h
lib/unictype/ctype_blank.c
lib/unictype/ctype_blank.h
lib/unictype/ctype_cntrl.c
lib/unictype/ctype_cntrl.h
lib/unictype/ctype_digit.c
lib/unictype/ctype_digit.h
lib/unictype/ctype_graph.c
lib/unictype/ctype_graph.h
lib/unictype/ctype_lower.c
lib/unictype/ctype_lower.h
lib/unictype/ctype_print.c
lib/unictype/ctype_print.h
lib/unictype/ctype_punct.c
lib/unictype/ctype_punct.h
lib/unictype/ctype_space.c
lib/unictype/ctype_space.h
lib/unictype/ctype_upper.c
lib/unictype/ctype_upper.h
lib/unictype/ctype_xdigit.c
lib/unictype/ctype_xdigit.h
lib/unictype/decdigit.c
lib/unictype/decdigit.h
lib/unictype/digit.c
lib/unictype/digit.h
lib/unictype/identsyntaxmap.h
lib/unictype/joininggroup_byname.c [new file with mode: 0644]
lib/unictype/joininggroup_byname.gperf [new file with mode: 0644]
lib/unictype/joininggroup_byname.h [new file with mode: 0644]
lib/unictype/joininggroup_name.c [new file with mode: 0644]
lib/unictype/joininggroup_name.h [new file with mode: 0644]
lib/unictype/joininggroup_of.c [new file with mode: 0644]
lib/unictype/joininggroup_of.h [new file with mode: 0644]
lib/unictype/joiningtype_byname.c [new file with mode: 0644]
lib/unictype/joiningtype_byname.gperf [new file with mode: 0644]
lib/unictype/joiningtype_byname.h [new file with mode: 0644]
lib/unictype/joiningtype_longname.c [new file with mode: 0644]
lib/unictype/joiningtype_name.c [new file with mode: 0644]
lib/unictype/joiningtype_of.c [new file with mode: 0644]
lib/unictype/joiningtype_of.h [new file with mode: 0644]
lib/unictype/mirror.c
lib/unictype/mirror.h
lib/unictype/numeric.c
lib/unictype/numeric.h
lib/unictype/pr_alphabetic.c
lib/unictype/pr_alphabetic.h
lib/unictype/pr_ascii_hex_digit.c
lib/unictype/pr_ascii_hex_digit.h
lib/unictype/pr_bidi_arabic_digit.c
lib/unictype/pr_bidi_arabic_digit.h
lib/unictype/pr_bidi_arabic_right_to_left.c
lib/unictype/pr_bidi_arabic_right_to_left.h
lib/unictype/pr_bidi_block_separator.c
lib/unictype/pr_bidi_block_separator.h
lib/unictype/pr_bidi_boundary_neutral.c
lib/unictype/pr_bidi_boundary_neutral.h
lib/unictype/pr_bidi_common_separator.c
lib/unictype/pr_bidi_common_separator.h
lib/unictype/pr_bidi_control.c
lib/unictype/pr_bidi_control.h
lib/unictype/pr_bidi_embedding_or_override.c
lib/unictype/pr_bidi_embedding_or_override.h
lib/unictype/pr_bidi_eur_num_separator.c
lib/unictype/pr_bidi_eur_num_separator.h
lib/unictype/pr_bidi_eur_num_terminator.c
lib/unictype/pr_bidi_eur_num_terminator.h
lib/unictype/pr_bidi_european_digit.c
lib/unictype/pr_bidi_european_digit.h
lib/unictype/pr_bidi_hebrew_right_to_left.c
lib/unictype/pr_bidi_hebrew_right_to_left.h
lib/unictype/pr_bidi_left_to_right.c
lib/unictype/pr_bidi_left_to_right.h
lib/unictype/pr_bidi_non_spacing_mark.c
lib/unictype/pr_bidi_non_spacing_mark.h
lib/unictype/pr_bidi_other_neutral.c
lib/unictype/pr_bidi_other_neutral.h
lib/unictype/pr_bidi_pdf.c
lib/unictype/pr_bidi_pdf.h
lib/unictype/pr_bidi_segment_separator.c
lib/unictype/pr_bidi_segment_separator.h
lib/unictype/pr_bidi_whitespace.c
lib/unictype/pr_bidi_whitespace.h
lib/unictype/pr_byname.c
lib/unictype/pr_byname.gperf
lib/unictype/pr_byname.h
lib/unictype/pr_case_ignorable.c [new file with mode: 0644]
lib/unictype/pr_case_ignorable.h [new file with mode: 0644]
lib/unictype/pr_cased.c [new file with mode: 0644]
lib/unictype/pr_cased.h [new file with mode: 0644]
lib/unictype/pr_changes_when_casefolded.c [new file with mode: 0644]
lib/unictype/pr_changes_when_casefolded.h [new file with mode: 0644]
lib/unictype/pr_changes_when_casemapped.c [new file with mode: 0644]
lib/unictype/pr_changes_when_casemapped.h [new file with mode: 0644]
lib/unictype/pr_changes_when_lowercased.c [new file with mode: 0644]
lib/unictype/pr_changes_when_lowercased.h [new file with mode: 0644]
lib/unictype/pr_changes_when_titlecased.c [new file with mode: 0644]
lib/unictype/pr_changes_when_titlecased.h [new file with mode: 0644]
lib/unictype/pr_changes_when_uppercased.c [new file with mode: 0644]
lib/unictype/pr_changes_when_uppercased.h [new file with mode: 0644]
lib/unictype/pr_combining.c
lib/unictype/pr_combining.h
lib/unictype/pr_composite.c
lib/unictype/pr_composite.h
lib/unictype/pr_currency_symbol.c
lib/unictype/pr_currency_symbol.h
lib/unictype/pr_dash.c
lib/unictype/pr_dash.h
lib/unictype/pr_decimal_digit.c
lib/unictype/pr_decimal_digit.h
lib/unictype/pr_default_ignorable_code_point.c
lib/unictype/pr_default_ignorable_code_point.h
lib/unictype/pr_deprecated.c
lib/unictype/pr_deprecated.h
lib/unictype/pr_diacritic.c
lib/unictype/pr_diacritic.h
lib/unictype/pr_extender.c
lib/unictype/pr_extender.h
lib/unictype/pr_format_control.c
lib/unictype/pr_format_control.h
lib/unictype/pr_grapheme_base.c
lib/unictype/pr_grapheme_base.h
lib/unictype/pr_grapheme_extend.c
lib/unictype/pr_grapheme_extend.h
lib/unictype/pr_grapheme_link.c
lib/unictype/pr_grapheme_link.h
lib/unictype/pr_hex_digit.c
lib/unictype/pr_hex_digit.h
lib/unictype/pr_hyphen.c
lib/unictype/pr_hyphen.h
lib/unictype/pr_id_continue.c
lib/unictype/pr_id_continue.h
lib/unictype/pr_id_start.c
lib/unictype/pr_id_start.h
lib/unictype/pr_ideographic.c
lib/unictype/pr_ideographic.h
lib/unictype/pr_ids_binary_operator.c
lib/unictype/pr_ids_binary_operator.h
lib/unictype/pr_ids_trinary_operator.c
lib/unictype/pr_ids_trinary_operator.h
lib/unictype/pr_ignorable_control.c
lib/unictype/pr_ignorable_control.h
lib/unictype/pr_iso_control.c
lib/unictype/pr_iso_control.h
lib/unictype/pr_join_control.c
lib/unictype/pr_join_control.h
lib/unictype/pr_left_of_pair.c
lib/unictype/pr_left_of_pair.h
lib/unictype/pr_line_separator.c
lib/unictype/pr_line_separator.h
lib/unictype/pr_logical_order_exception.c
lib/unictype/pr_logical_order_exception.h
lib/unictype/pr_lowercase.c
lib/unictype/pr_lowercase.h
lib/unictype/pr_math.c
lib/unictype/pr_math.h
lib/unictype/pr_non_break.c
lib/unictype/pr_non_break.h
lib/unictype/pr_not_a_character.c
lib/unictype/pr_not_a_character.h
lib/unictype/pr_numeric.c
lib/unictype/pr_numeric.h
lib/unictype/pr_other_alphabetic.c
lib/unictype/pr_other_alphabetic.h
lib/unictype/pr_other_default_ignorable_code_point.c
lib/unictype/pr_other_default_ignorable_code_point.h
lib/unictype/pr_other_grapheme_extend.c
lib/unictype/pr_other_grapheme_extend.h
lib/unictype/pr_other_id_continue.c
lib/unictype/pr_other_id_continue.h
lib/unictype/pr_other_id_start.c
lib/unictype/pr_other_id_start.h
lib/unictype/pr_other_lowercase.c
lib/unictype/pr_other_lowercase.h
lib/unictype/pr_other_math.c
lib/unictype/pr_other_math.h
lib/unictype/pr_other_uppercase.c
lib/unictype/pr_other_uppercase.h
lib/unictype/pr_paired_punctuation.c
lib/unictype/pr_paired_punctuation.h
lib/unictype/pr_paragraph_separator.c
lib/unictype/pr_paragraph_separator.h
lib/unictype/pr_pattern_syntax.c
lib/unictype/pr_pattern_syntax.h
lib/unictype/pr_pattern_white_space.c
lib/unictype/pr_pattern_white_space.h
lib/unictype/pr_private_use.c
lib/unictype/pr_private_use.h
lib/unictype/pr_punctuation.c
lib/unictype/pr_punctuation.h
lib/unictype/pr_quotation_mark.c
lib/unictype/pr_quotation_mark.h
lib/unictype/pr_radical.c
lib/unictype/pr_radical.h
lib/unictype/pr_sentence_terminal.c
lib/unictype/pr_sentence_terminal.h
lib/unictype/pr_soft_dotted.c
lib/unictype/pr_soft_dotted.h
lib/unictype/pr_space.c
lib/unictype/pr_space.h
lib/unictype/pr_terminal_punctuation.c
lib/unictype/pr_terminal_punctuation.h
lib/unictype/pr_test.c
lib/unictype/pr_titlecase.c
lib/unictype/pr_titlecase.h
lib/unictype/pr_unassigned_code_value.c
lib/unictype/pr_unassigned_code_value.h
lib/unictype/pr_unified_ideograph.c
lib/unictype/pr_unified_ideograph.h
lib/unictype/pr_uppercase.c
lib/unictype/pr_uppercase.h
lib/unictype/pr_variation_selector.c
lib/unictype/pr_variation_selector.h
lib/unictype/pr_white_space.c
lib/unictype/pr_white_space.h
lib/unictype/pr_xid_continue.c
lib/unictype/pr_xid_continue.h
lib/unictype/pr_xid_start.c
lib/unictype/pr_xid_start.h
lib/unictype/pr_zero_width.c
lib/unictype/pr_zero_width.h
lib/unictype/scripts.c
lib/unictype/scripts.h
lib/unictype/scripts_byname.gperf
lib/unictype/scripts_byname.h
lib/unictype/sy_c_ident.c
lib/unictype/sy_c_ident.h
lib/unictype/sy_c_whitespace.c
lib/unictype/sy_java_ident.c
lib/unictype/sy_java_ident.h
lib/unictype/sy_java_whitespace.c
lib/unigbrk.h [new file with mode: 0644]
lib/unigbrk.in.h [new file with mode: 0644]
lib/unigbrk/gbrkprop.h [new file with mode: 0644]
lib/unigbrk/u16-grapheme-breaks.c [new file with mode: 0644]
lib/unigbrk/u16-grapheme-next.c [new file with mode: 0644]
lib/unigbrk/u16-grapheme-prev.c [new file with mode: 0644]
lib/unigbrk/u32-grapheme-breaks.c [new file with mode: 0644]
lib/unigbrk/u32-grapheme-next.c [new file with mode: 0644]
lib/unigbrk/u32-grapheme-prev.c [new file with mode: 0644]
lib/unigbrk/u8-grapheme-breaks.c [new file with mode: 0644]
lib/unigbrk/u8-grapheme-next.c [new file with mode: 0644]
lib/unigbrk/u8-grapheme-prev.c [new file with mode: 0644]
lib/unigbrk/uc-gbrk-prop.c [new file with mode: 0644]
lib/unigbrk/uc-is-grapheme-break.c [new file with mode: 0644]
lib/unigbrk/ulc-grapheme-breaks.c [new file with mode: 0644]
lib/unilbrk.h
lib/unilbrk.in.h [new file with mode: 0644]
lib/unilbrk/lbrkprop1.h
lib/unilbrk/lbrkprop2.h
lib/unilbrk/lbrktables.c
lib/unilbrk/lbrktables.h
lib/unilbrk/u16-possible-linebreaks.c
lib/unilbrk/u16-width-linebreaks.c
lib/unilbrk/u32-possible-linebreaks.c
lib/unilbrk/u32-width-linebreaks.c
lib/unilbrk/u8-possible-linebreaks.c
lib/unilbrk/u8-width-linebreaks.c
lib/unilbrk/ulc-common.c
lib/unilbrk/ulc-common.h
lib/unilbrk/ulc-possible-linebreaks.c
lib/unilbrk/ulc-width-linebreaks.c
lib/uniname.h
lib/uniname.in.h [new file with mode: 0644]
lib/uniname/uniname.c
lib/uninorm.h
lib/uninorm.in.h [new file with mode: 0644]
lib/uninorm/canonical-decomposition.c
lib/uninorm/compat-decomposition.c
lib/uninorm/composition-table.gperf
lib/uninorm/composition-table.h
lib/uninorm/composition.c
lib/uninorm/decompose-internal.c
lib/uninorm/decompose-internal.h
lib/uninorm/decomposing-form.c
lib/uninorm/decomposition-table.c
lib/uninorm/decomposition-table.h
lib/uninorm/decomposition-table1.h
lib/uninorm/decomposition-table2.h
lib/uninorm/decomposition.c
lib/uninorm/nfc.c
lib/uninorm/nfd.c
lib/uninorm/nfkc.c
lib/uninorm/nfkd.c
lib/uninorm/normalize-internal.h
lib/uninorm/u-normalize-internal.h
lib/uninorm/u-normcmp.h
lib/uninorm/u-normcoll.h
lib/uninorm/u-normxfrm.h
lib/uninorm/u16-normalize.c
lib/uninorm/u16-normcmp.c
lib/uninorm/u16-normcoll.c
lib/uninorm/u16-normxfrm.c
lib/uninorm/u32-normalize.c
lib/uninorm/u32-normcmp.c
lib/uninorm/u32-normcoll.c
lib/uninorm/u32-normxfrm.c
lib/uninorm/u8-normalize.c
lib/uninorm/u8-normcmp.c
lib/uninorm/u8-normcoll.c
lib/uninorm/u8-normxfrm.c
lib/uninorm/uninorm-filter.c
lib/unistd.c [new file with mode: 0644]
lib/unistd.in.h
lib/unistdio.h
lib/unistdio.in.h [new file with mode: 0644]
lib/unistdio/u-asnprintf.h
lib/unistdio/u-asprintf.h
lib/unistdio/u-printf-args.c
lib/unistdio/u-printf-args.h
lib/unistdio/u-printf-parse.h
lib/unistdio/u-snprintf.h
lib/unistdio/u-sprintf.h
lib/unistdio/u-vasprintf.h
lib/unistdio/u-vsnprintf.h
lib/unistdio/u-vsprintf.h
lib/unistdio/u16-asnprintf.c
lib/unistdio/u16-asprintf.c
lib/unistdio/u16-printf-parse.c
lib/unistdio/u16-snprintf.c
lib/unistdio/u16-sprintf.c
lib/unistdio/u16-u16-asnprintf.c
lib/unistdio/u16-u16-asprintf.c
lib/unistdio/u16-u16-snprintf.c
lib/unistdio/u16-u16-sprintf.c
lib/unistdio/u16-u16-vasnprintf.c
lib/unistdio/u16-u16-vasprintf.c
lib/unistdio/u16-u16-vsnprintf.c
lib/unistdio/u16-u16-vsprintf.c
lib/unistdio/u16-vasnprintf.c
lib/unistdio/u16-vasprintf.c
lib/unistdio/u16-vsnprintf.c
lib/unistdio/u16-vsprintf.c
lib/unistdio/u32-asnprintf.c
lib/unistdio/u32-asprintf.c
lib/unistdio/u32-printf-parse.c
lib/unistdio/u32-snprintf.c
lib/unistdio/u32-sprintf.c
lib/unistdio/u32-u32-asnprintf.c
lib/unistdio/u32-u32-asprintf.c
lib/unistdio/u32-u32-snprintf.c
lib/unistdio/u32-u32-sprintf.c
lib/unistdio/u32-u32-vasnprintf.c
lib/unistdio/u32-u32-vasprintf.c
lib/unistdio/u32-u32-vsnprintf.c
lib/unistdio/u32-u32-vsprintf.c
lib/unistdio/u32-vasnprintf.c
lib/unistdio/u32-vasprintf.c
lib/unistdio/u32-vsnprintf.c
lib/unistdio/u32-vsprintf.c
lib/unistdio/u8-asnprintf.c
lib/unistdio/u8-asprintf.c
lib/unistdio/u8-printf-parse.c
lib/unistdio/u8-snprintf.c
lib/unistdio/u8-sprintf.c
lib/unistdio/u8-u8-asnprintf.c
lib/unistdio/u8-u8-asprintf.c
lib/unistdio/u8-u8-snprintf.c
lib/unistdio/u8-u8-sprintf.c
lib/unistdio/u8-u8-vasnprintf.c
lib/unistdio/u8-u8-vasprintf.c
lib/unistdio/u8-u8-vsnprintf.c
lib/unistdio/u8-u8-vsprintf.c
lib/unistdio/u8-vasnprintf.c
lib/unistdio/u8-vasprintf.c
lib/unistdio/u8-vsnprintf.c
lib/unistdio/u8-vsprintf.c
lib/unistdio/ulc-asnprintf.c
lib/unistdio/ulc-asprintf.c
lib/unistdio/ulc-fprintf.c
lib/unistdio/ulc-printf-parse.c
lib/unistdio/ulc-snprintf.c
lib/unistdio/ulc-sprintf.c
lib/unistdio/ulc-vasnprintf.c
lib/unistdio/ulc-vasprintf.c
lib/unistdio/ulc-vfprintf.c
lib/unistdio/ulc-vsnprintf.c
lib/unistdio/ulc-vsprintf.c
lib/unistr.h
lib/unistr.in.h [new file with mode: 0644]
lib/unistr/u-cmp2.h
lib/unistr/u-cpy-alloc.h
lib/unistr/u-cpy.h
lib/unistr/u-endswith.h
lib/unistr/u-move.h
lib/unistr/u-set.h
lib/unistr/u-startswith.h
lib/unistr/u-stpcpy.h
lib/unistr/u-stpncpy.h
lib/unistr/u-strcat.h
lib/unistr/u-strcoll.h
lib/unistr/u-strcpy.h
lib/unistr/u-strcspn.h
lib/unistr/u-strdup.h
lib/unistr/u-strlen.h
lib/unistr/u-strncat.h
lib/unistr/u-strncpy.h
lib/unistr/u-strnlen.h
lib/unistr/u-strpbrk.h
lib/unistr/u-strspn.h
lib/unistr/u-strstr.h
lib/unistr/u-strtok.h
lib/unistr/u16-check.c
lib/unistr/u16-chr.c
lib/unistr/u16-cmp.c
lib/unistr/u16-cmp2.c
lib/unistr/u16-cpy-alloc.c
lib/unistr/u16-cpy.c
lib/unistr/u16-endswith.c
lib/unistr/u16-mblen.c
lib/unistr/u16-mbsnlen.c
lib/unistr/u16-mbtouc-aux.c
lib/unistr/u16-mbtouc-unsafe-aux.c
lib/unistr/u16-mbtouc-unsafe.c
lib/unistr/u16-mbtouc.c
lib/unistr/u16-mbtoucr.c
lib/unistr/u16-move.c
lib/unistr/u16-next.c
lib/unistr/u16-prev.c
lib/unistr/u16-set.c
lib/unistr/u16-startswith.c
lib/unistr/u16-stpcpy.c
lib/unistr/u16-stpncpy.c
lib/unistr/u16-strcat.c
lib/unistr/u16-strchr.c
lib/unistr/u16-strcmp.c
lib/unistr/u16-strcoll.c
lib/unistr/u16-strcpy.c
lib/unistr/u16-strcspn.c
lib/unistr/u16-strdup.c
lib/unistr/u16-strlen.c
lib/unistr/u16-strmblen.c
lib/unistr/u16-strmbtouc.c
lib/unistr/u16-strncat.c
lib/unistr/u16-strncmp.c
lib/unistr/u16-strncpy.c
lib/unistr/u16-strnlen.c
lib/unistr/u16-strpbrk.c
lib/unistr/u16-strrchr.c
lib/unistr/u16-strspn.c
lib/unistr/u16-strstr.c
lib/unistr/u16-strtok.c
lib/unistr/u16-to-u32.c
lib/unistr/u16-to-u8.c
lib/unistr/u16-uctomb-aux.c
lib/unistr/u16-uctomb.c
lib/unistr/u32-check.c
lib/unistr/u32-chr.c
lib/unistr/u32-cmp.c
lib/unistr/u32-cmp2.c
lib/unistr/u32-cpy-alloc.c
lib/unistr/u32-cpy.c
lib/unistr/u32-endswith.c
lib/unistr/u32-mblen.c
lib/unistr/u32-mbsnlen.c
lib/unistr/u32-mbtouc-unsafe.c
lib/unistr/u32-mbtouc.c
lib/unistr/u32-mbtoucr.c
lib/unistr/u32-move.c
lib/unistr/u32-next.c
lib/unistr/u32-prev.c
lib/unistr/u32-set.c
lib/unistr/u32-startswith.c
lib/unistr/u32-stpcpy.c
lib/unistr/u32-stpncpy.c
lib/unistr/u32-strcat.c
lib/unistr/u32-strchr.c
lib/unistr/u32-strcmp.c
lib/unistr/u32-strcoll.c
lib/unistr/u32-strcpy.c
lib/unistr/u32-strcspn.c
lib/unistr/u32-strdup.c
lib/unistr/u32-strlen.c
lib/unistr/u32-strmblen.c
lib/unistr/u32-strmbtouc.c
lib/unistr/u32-strncat.c
lib/unistr/u32-strncmp.c
lib/unistr/u32-strncpy.c
lib/unistr/u32-strnlen.c
lib/unistr/u32-strpbrk.c
lib/unistr/u32-strrchr.c
lib/unistr/u32-strspn.c
lib/unistr/u32-strstr.c
lib/unistr/u32-strtok.c
lib/unistr/u32-to-u16.c
lib/unistr/u32-to-u8.c
lib/unistr/u32-uctomb.c
lib/unistr/u8-check.c
lib/unistr/u8-chr.c
lib/unistr/u8-cmp.c
lib/unistr/u8-cmp2.c
lib/unistr/u8-cpy-alloc.c
lib/unistr/u8-cpy.c
lib/unistr/u8-endswith.c
lib/unistr/u8-mblen.c
lib/unistr/u8-mbsnlen.c
lib/unistr/u8-mbtouc-aux.c
lib/unistr/u8-mbtouc-unsafe-aux.c
lib/unistr/u8-mbtouc-unsafe.c
lib/unistr/u8-mbtouc.c
lib/unistr/u8-mbtoucr.c
lib/unistr/u8-move.c
lib/unistr/u8-next.c
lib/unistr/u8-prev.c
lib/unistr/u8-set.c
lib/unistr/u8-startswith.c
lib/unistr/u8-stpcpy.c
lib/unistr/u8-stpncpy.c
lib/unistr/u8-strcat.c
lib/unistr/u8-strchr.c
lib/unistr/u8-strcmp.c
lib/unistr/u8-strcoll.c
lib/unistr/u8-strcpy.c
lib/unistr/u8-strcspn.c
lib/unistr/u8-strdup.c
lib/unistr/u8-strlen.c
lib/unistr/u8-strmblen.c
lib/unistr/u8-strmbtouc.c
lib/unistr/u8-strncat.c
lib/unistr/u8-strncmp.c
lib/unistr/u8-strncpy.c
lib/unistr/u8-strnlen.c
lib/unistr/u8-strpbrk.c
lib/unistr/u8-strrchr.c
lib/unistr/u8-strspn.c
lib/unistr/u8-strstr.c
lib/unistr/u8-strtok.c
lib/unistr/u8-to-u16.c
lib/unistr/u8-to-u32.c
lib/unistr/u8-uctomb-aux.c
lib/unistr/u8-uctomb.c
lib/unistring/version.in.h
lib/unitypes.h
lib/unitypes.in.h [new file with mode: 0644]
lib/uniwbrk.h
lib/uniwbrk.in.h [new file with mode: 0644]
lib/uniwbrk/u-wordbreaks.h
lib/uniwbrk/u16-wordbreaks.c
lib/uniwbrk/u32-wordbreaks.c
lib/uniwbrk/u8-wordbreaks.c
lib/uniwbrk/ulc-wordbreaks.c
lib/uniwbrk/wbrkprop.h
lib/uniwbrk/wbrktable.c
lib/uniwbrk/wbrktable.h
lib/uniwbrk/wordbreak-property.c
lib/uniwidth.h
lib/uniwidth.in.h [new file with mode: 0644]
lib/uniwidth/cjk.h
lib/uniwidth/u16-strwidth.c
lib/uniwidth/u16-width.c
lib/uniwidth/u32-strwidth.c
lib/uniwidth/u32-width.c
lib/uniwidth/u8-strwidth.c
lib/uniwidth/u8-width.c
lib/uniwidth/width.c
lib/vasnprintf.c
lib/verify.h
lib/wchar.in.h
lib/wctype-h.c [new file with mode: 0644]
lib/wctype.in.h
lib/wcwidth.c
lib/xsize.c [new file with mode: 0644]
lib/xsize.h
m4/libtool.m4
m4/ltoptions.m4
m4/ltversion.m4
m4/lt~obsolete.m4
tests/Makefile.gnulib
tests/Makefile.in
tests/btowc.c [new file with mode: 0644]
tests/error.c
tests/error.h
tests/exitfail.c
tests/exitfail.h
tests/fdopen.c [new file with mode: 0644]
tests/getpagesize.c
tests/gettext.h
tests/glthread/thread.c
tests/glthread/thread.h
tests/glthread/yield.h
tests/infinity.h [new file with mode: 0644]
tests/init.sh
tests/intprops.h
tests/inttypes.in.h [new file with mode: 0644]
tests/locale.in.h
tests/macros.h
tests/mbtowc-impl.h [new file with mode: 0644]
tests/mbtowc.c [new file with mode: 0644]
tests/minus-zero.h [new file with mode: 0644]
tests/msvc-inval.c [new file with mode: 0644]
tests/msvc-inval.h [new file with mode: 0644]
tests/msvc-nothrow.c [new file with mode: 0644]
tests/msvc-nothrow.h [new file with mode: 0644]
tests/nan.h
tests/progname.c
tests/progname.h
tests/putenv.c
tests/randomd.c [new file with mode: 0644]
tests/randoml.c [new file with mode: 0644]
tests/setenv.c
tests/setlocale.c [new file with mode: 0644]
tests/signature.h
tests/stdio.in.h [new file with mode: 0644]
tests/strerror-override.c [new file with mode: 0644]
tests/strerror-override.h [new file with mode: 0644]
tests/strerror.c
tests/test-alloca-opt.c
tests/test-array-mergesort.c
tests/test-btowc.c [new file with mode: 0644]
tests/test-btowc1.sh [new file with mode: 0755]
tests/test-btowc2.sh [new file with mode: 0755]
tests/test-c-ctype.c
tests/test-c-strcasecmp.c
tests/test-c-strncasecmp.c
tests/test-environ.c
tests/test-errno.c
tests/test-fdopen.c [new file with mode: 0644]
tests/test-fgetc.c [new file with mode: 0644]
tests/test-float.c [new file with mode: 0644]
tests/test-fputc.c [new file with mode: 0644]
tests/test-fread.c [new file with mode: 0644]
tests/test-frexp.c [new file with mode: 0644]
tests/test-frexp.h [new file with mode: 0644]
tests/test-frexpl.c
tests/test-fseterr.c
tests/test-fwrite.c [new file with mode: 0644]
tests/test-iconv-h.c
tests/test-iconv.c
tests/test-init.sh [new file with mode: 0755]
tests/test-intprops.c [new file with mode: 0644]
tests/test-inttypes.c [new file with mode: 0644]
tests/test-isnand-nolibm.c
tests/test-isnand.h
tests/test-isnanf-nolibm.c
tests/test-isnanf.h
tests/test-isnanl-nolibm.c
tests/test-isnanl.h
tests/test-iswblank.c [new file with mode: 0644]
tests/test-locale.c
tests/test-localename.c
tests/test-lock.c
tests/test-malloca.c
tests/test-math.c
tests/test-mbrtowc-w32-1.sh [new file with mode: 0755]
tests/test-mbrtowc-w32-2.sh [new file with mode: 0755]
tests/test-mbrtowc-w32-3.sh [new file with mode: 0755]
tests/test-mbrtowc-w32-4.sh [new file with mode: 0755]
tests/test-mbrtowc-w32-5.sh [new file with mode: 0755]
tests/test-mbrtowc-w32.c [new file with mode: 0644]
tests/test-mbrtowc.c
tests/test-mbsinit.c
tests/test-memchr.c
tests/test-printf-frexp.c
tests/test-printf-frexpl.c
tests/test-setenv.c
tests/test-setlocale1.c [new file with mode: 0644]
tests/test-setlocale1.sh [new file with mode: 0755]
tests/test-setlocale2.c [new file with mode: 0644]
tests/test-setlocale2.sh [new file with mode: 0755]
tests/test-signbit.c
tests/test-stdbool.c
tests/test-stddef.c
tests/test-stdint.c
tests/test-stdio.c [new file with mode: 0644]
tests/test-stdlib.c
tests/test-strerror.c
tests/test-striconveh.c
tests/test-striconveha.c
tests/test-string.c
tests/test-strncat.c
tests/test-strstr.c [new file with mode: 0644]
tests/test-sys_types.c [new file with mode: 0644]
tests/test-sys_wait.h [new file with mode: 0644]
tests/test-thread_create.c [new file with mode: 0644]
tests/test-thread_self.c [new file with mode: 0644]
tests/test-unistd.c
tests/test-unsetenv.c
tests/test-verify.c [new file with mode: 0644]
tests/test-verify.sh [new file with mode: 0755]
tests/test-wchar.c
tests/test-wcrtomb-w32-1.sh [new file with mode: 0755]
tests/test-wcrtomb-w32-2.sh [new file with mode: 0755]
tests/test-wcrtomb-w32-3.sh [new file with mode: 0755]
tests/test-wcrtomb-w32-4.sh [new file with mode: 0755]
tests/test-wcrtomb-w32-5.sh [new file with mode: 0755]
tests/test-wcrtomb-w32.c [new file with mode: 0644]
tests/test-wcrtomb.c [new file with mode: 0644]
tests/test-wcrtomb.sh [new file with mode: 0755]
tests/test-wctype-h.c [moved from tests/test-wctype.c with 91% similarity]
tests/test-wcwidth.c
tests/test-xalloc-die.c
tests/test-xalloc-die.sh
tests/unicase/test-casecmp.h
tests/unicase/test-cased.c
tests/unicase/test-ignorable.c
tests/unicase/test-is-cased.h
tests/unicase/test-is-casefolded.h
tests/unicase/test-is-lowercase.h
tests/unicase/test-is-titlecase.h
tests/unicase/test-is-uppercase.h
tests/unicase/test-locale-language.c
tests/unicase/test-mapping-part1.h
tests/unicase/test-mapping-part2.h
tests/unicase/test-predicate-part1.h
tests/unicase/test-predicate-part2.h
tests/unicase/test-u16-casecmp.c
tests/unicase/test-u16-casecoll.c
tests/unicase/test-u16-casefold.c
tests/unicase/test-u16-is-cased.c
tests/unicase/test-u16-is-casefolded.c
tests/unicase/test-u16-is-lowercase.c
tests/unicase/test-u16-is-titlecase.c
tests/unicase/test-u16-is-uppercase.c
tests/unicase/test-u16-tolower.c
tests/unicase/test-u16-totitle.c
tests/unicase/test-u16-toupper.c
tests/unicase/test-u32-casecmp.c
tests/unicase/test-u32-casecoll.c
tests/unicase/test-u32-casefold.c
tests/unicase/test-u32-is-cased.c
tests/unicase/test-u32-is-casefolded.c
tests/unicase/test-u32-is-lowercase.c
tests/unicase/test-u32-is-titlecase.c
tests/unicase/test-u32-is-uppercase.c
tests/unicase/test-u32-tolower.c
tests/unicase/test-u32-totitle.c
tests/unicase/test-u32-toupper.c
tests/unicase/test-u8-casecmp.c
tests/unicase/test-u8-casecoll.c
tests/unicase/test-u8-casefold.c
tests/unicase/test-u8-is-cased.c
tests/unicase/test-u8-is-casefolded.c
tests/unicase/test-u8-is-lowercase.c
tests/unicase/test-u8-is-titlecase.c
tests/unicase/test-u8-is-uppercase.c
tests/unicase/test-u8-tolower.c
tests/unicase/test-u8-totitle.c
tests/unicase/test-u8-toupper.c
tests/unicase/test-uc_tolower.c
tests/unicase/test-uc_totitle.c
tests/unicase/test-uc_toupper.c
tests/unicase/test-ulc-casecmp.c
tests/unicase/test-ulc-casecoll.c
tests/uniconv/test-u16-conv-from-enc.c
tests/uniconv/test-u16-conv-to-enc.c
tests/uniconv/test-u16-strconv-from-enc.c
tests/uniconv/test-u16-strconv-to-enc.c
tests/uniconv/test-u32-conv-from-enc.c
tests/uniconv/test-u32-conv-to-enc.c
tests/uniconv/test-u32-strconv-from-enc.c
tests/uniconv/test-u32-strconv-to-enc.c
tests/uniconv/test-u8-conv-from-enc.c
tests/uniconv/test-u8-conv-to-enc.c
tests/uniconv/test-u8-strconv-from-enc.c
tests/uniconv/test-u8-strconv-to-enc.c
tests/unictype/test-bidi_byname.c
tests/unictype/test-bidi_longname.c [new file with mode: 0644]
tests/unictype/test-bidi_name.c
tests/unictype/test-bidi_of.c
tests/unictype/test-bidi_test.c
tests/unictype/test-categ_C.c
tests/unictype/test-categ_Cf.c
tests/unictype/test-categ_Cn.c
tests/unictype/test-categ_L.c
tests/unictype/test-categ_LC.c [new file with mode: 0644]
tests/unictype/test-categ_Ll.c
tests/unictype/test-categ_Lm.c
tests/unictype/test-categ_Lo.c
tests/unictype/test-categ_Lu.c
tests/unictype/test-categ_M.c
tests/unictype/test-categ_Mc.c
tests/unictype/test-categ_Me.c
tests/unictype/test-categ_Mn.c
tests/unictype/test-categ_N.c
tests/unictype/test-categ_Nd.c
tests/unictype/test-categ_Nl.c
tests/unictype/test-categ_No.c
tests/unictype/test-categ_P.c
tests/unictype/test-categ_Pd.c
tests/unictype/test-categ_Po.c
tests/unictype/test-categ_S.c
tests/unictype/test-categ_Sc.c
tests/unictype/test-categ_Sk.c
tests/unictype/test-categ_Sm.c
tests/unictype/test-categ_So.c
tests/unictype/test-categ_byname.c
tests/unictype/test-categ_longname.c [new file with mode: 0644]
tests/unictype/test-combiningclass.c [moved from tests/unictype/test-combining.c with 100% similarity]
tests/unictype/test-combiningclass_byname.c [new file with mode: 0644]
tests/unictype/test-combiningclass_longname.c [new file with mode: 0644]
tests/unictype/test-combiningclass_name.c [new file with mode: 0644]
tests/unictype/test-ctype_alnum.c
tests/unictype/test-ctype_alpha.c
tests/unictype/test-ctype_graph.c
tests/unictype/test-ctype_lower.c
tests/unictype/test-ctype_print.c
tests/unictype/test-ctype_punct.c
tests/unictype/test-ctype_upper.c
tests/unictype/test-decdigit.h
tests/unictype/test-digit.h
tests/unictype/test-joininggroup_byname.c [new file with mode: 0644]
tests/unictype/test-joininggroup_name.c [new file with mode: 0644]
tests/unictype/test-joininggroup_of.c [new file with mode: 0644]
tests/unictype/test-joininggroup_of.h [new file with mode: 0644]
tests/unictype/test-joiningtype_byname.c [new file with mode: 0644]
tests/unictype/test-joiningtype_longname.c [new file with mode: 0644]
tests/unictype/test-joiningtype_name.c [new file with mode: 0644]
tests/unictype/test-joiningtype_of.c [new file with mode: 0644]
tests/unictype/test-joiningtype_of.h [new file with mode: 0644]
tests/unictype/test-numeric.h
tests/unictype/test-pr_alphabetic.c
tests/unictype/test-pr_bidi_arabic_digit.c
tests/unictype/test-pr_bidi_arabic_right_to_left.c
tests/unictype/test-pr_bidi_boundary_neutral.c
tests/unictype/test-pr_bidi_eur_num_terminator.c
tests/unictype/test-pr_bidi_european_digit.c
tests/unictype/test-pr_bidi_hebrew_right_to_left.c
tests/unictype/test-pr_bidi_left_to_right.c
tests/unictype/test-pr_bidi_non_spacing_mark.c
tests/unictype/test-pr_bidi_other_neutral.c
tests/unictype/test-pr_case_ignorable.c [new file with mode: 0644]
tests/unictype/test-pr_cased.c [new file with mode: 0644]
tests/unictype/test-pr_changes_when_casefolded.c [new file with mode: 0644]
tests/unictype/test-pr_changes_when_casemapped.c [new file with mode: 0644]
tests/unictype/test-pr_changes_when_lowercased.c [new file with mode: 0644]
tests/unictype/test-pr_changes_when_titlecased.c [new file with mode: 0644]
tests/unictype/test-pr_changes_when_uppercased.c [new file with mode: 0644]
tests/unictype/test-pr_combining.c
tests/unictype/test-pr_composite.c
tests/unictype/test-pr_currency_symbol.c
tests/unictype/test-pr_dash.c
tests/unictype/test-pr_decimal_digit.c
tests/unictype/test-pr_deprecated.c
tests/unictype/test-pr_diacritic.c
tests/unictype/test-pr_extender.c
tests/unictype/test-pr_format_control.c
tests/unictype/test-pr_grapheme_base.c
tests/unictype/test-pr_grapheme_extend.c
tests/unictype/test-pr_grapheme_link.c
tests/unictype/test-pr_id_continue.c
tests/unictype/test-pr_id_start.c
tests/unictype/test-pr_ideographic.c
tests/unictype/test-pr_ignorable_control.c
tests/unictype/test-pr_logical_order_exception.c
tests/unictype/test-pr_lowercase.c
tests/unictype/test-pr_math.c
tests/unictype/test-pr_numeric.c
tests/unictype/test-pr_other_alphabetic.c
tests/unictype/test-pr_other_id_continue.c
tests/unictype/test-pr_other_math.c
tests/unictype/test-pr_punctuation.c
tests/unictype/test-pr_sentence_terminal.c
tests/unictype/test-pr_terminal_punctuation.c
tests/unictype/test-pr_unassigned_code_value.c
tests/unictype/test-pr_unified_ideograph.c
tests/unictype/test-pr_uppercase.c
tests/unictype/test-pr_xid_continue.c
tests/unictype/test-pr_xid_start.c
tests/unictype/test-pr_zero_width.c
tests/unigbrk/GraphemeBreakTest.txt [new file with mode: 0644]
tests/unigbrk/test-u16-grapheme-breaks.c [new file with mode: 0644]
tests/unigbrk/test-u16-grapheme-next.c [new file with mode: 0644]
tests/unigbrk/test-u16-grapheme-prev.c [new file with mode: 0644]
tests/unigbrk/test-u32-grapheme-breaks.c [new file with mode: 0644]
tests/unigbrk/test-u32-grapheme-next.c [new file with mode: 0644]
tests/unigbrk/test-u32-grapheme-prev.c [new file with mode: 0644]
tests/unigbrk/test-u8-grapheme-breaks.c [new file with mode: 0644]
tests/unigbrk/test-u8-grapheme-next.c [new file with mode: 0644]
tests/unigbrk/test-u8-grapheme-prev.c [new file with mode: 0644]
tests/unigbrk/test-uc-gbrk-prop.c [new file with mode: 0644]
tests/unigbrk/test-uc-gbrk-prop.h [new file with mode: 0644]
tests/unigbrk/test-uc-is-grapheme-break.c [new file with mode: 0644]
tests/unigbrk/test-uc-is-grapheme-break.sh [new file with mode: 0755]
tests/unigbrk/test-ulc-grapheme-breaks.c [new file with mode: 0644]
tests/unigbrk/test-ulc-grapheme-breaks.sh [new file with mode: 0755]
tests/unilbrk/test-u16-possible-linebreaks.c
tests/unilbrk/test-u16-width-linebreaks.c
tests/unilbrk/test-u32-possible-linebreaks.c
tests/unilbrk/test-u32-width-linebreaks.c
tests/unilbrk/test-u8-possible-linebreaks.c
tests/unilbrk/test-u8-width-linebreaks.c
tests/unilbrk/test-ulc-possible-linebreaks.c
tests/unilbrk/test-ulc-width-linebreaks.c
tests/uniname/test-uninames.c
tests/uninorm/NormalizationTest.txt
tests/uninorm/test-canonical-decomposition.c
tests/uninorm/test-compat-decomposition.c
tests/uninorm/test-composition.c
tests/uninorm/test-decomposing-form.c
tests/uninorm/test-decomposition.c
tests/uninorm/test-nfc.c
tests/uninorm/test-nfd.c
tests/uninorm/test-nfkc.c
tests/uninorm/test-nfkd.c
tests/uninorm/test-u16-nfc.c
tests/uninorm/test-u16-nfd.c
tests/uninorm/test-u16-nfkc.c
tests/uninorm/test-u16-nfkd.c
tests/uninorm/test-u16-normcmp.c
tests/uninorm/test-u16-normcmp.h
tests/uninorm/test-u16-normcoll.c
tests/uninorm/test-u32-nfc-big.c
tests/uninorm/test-u32-nfc.c
tests/uninorm/test-u32-nfd-big.c
tests/uninorm/test-u32-nfd.c
tests/uninorm/test-u32-nfkc-big.c
tests/uninorm/test-u32-nfkc.c
tests/uninorm/test-u32-nfkd-big.c
tests/uninorm/test-u32-nfkd.c
tests/uninorm/test-u32-normalize-big.c
tests/uninorm/test-u32-normalize-big.h
tests/uninorm/test-u32-normcmp.c
tests/uninorm/test-u32-normcmp.h
tests/uninorm/test-u32-normcoll.c
tests/uninorm/test-u8-nfc.c
tests/uninorm/test-u8-nfd.c
tests/uninorm/test-u8-nfkc.c
tests/uninorm/test-u8-nfkd.c
tests/uninorm/test-u8-normcmp.c
tests/uninorm/test-u8-normcmp.h
tests/uninorm/test-u8-normcoll.c
tests/uninorm/test-uninorm-filter-nfc.c
tests/unistdio/test-u16-asnprintf1.c
tests/unistdio/test-u16-asnprintf1.h
tests/unistdio/test-u16-printf1.h
tests/unistdio/test-u16-vasnprintf1.c
tests/unistdio/test-u16-vasnprintf2.c
tests/unistdio/test-u16-vasnprintf3.c
tests/unistdio/test-u16-vasprintf1.c
tests/unistdio/test-u16-vsnprintf1.c
tests/unistdio/test-u16-vsprintf1.c
tests/unistdio/test-u32-asnprintf1.c
tests/unistdio/test-u32-asnprintf1.h
tests/unistdio/test-u32-printf1.h
tests/unistdio/test-u32-vasnprintf1.c
tests/unistdio/test-u32-vasnprintf2.c
tests/unistdio/test-u32-vasnprintf3.c
tests/unistdio/test-u32-vasprintf1.c
tests/unistdio/test-u32-vsnprintf1.c
tests/unistdio/test-u32-vsprintf1.c
tests/unistdio/test-u8-asnprintf1.c
tests/unistdio/test-u8-asnprintf1.h
tests/unistdio/test-u8-printf1.h
tests/unistdio/test-u8-vasnprintf1.c
tests/unistdio/test-u8-vasnprintf2.c
tests/unistdio/test-u8-vasnprintf3.c
tests/unistdio/test-u8-vasprintf1.c
tests/unistdio/test-u8-vsnprintf1.c
tests/unistdio/test-u8-vsprintf1.c
tests/unistdio/test-ulc-asnprintf1.c
tests/unistdio/test-ulc-asnprintf1.h
tests/unistdio/test-ulc-printf1.h
tests/unistdio/test-ulc-vasnprintf1.c
tests/unistdio/test-ulc-vasnprintf2.c
tests/unistdio/test-ulc-vasnprintf3.c
tests/unistdio/test-ulc-vasprintf1.c
tests/unistdio/test-ulc-vsnprintf1.c
tests/unistdio/test-ulc-vsprintf1.c
tests/unistr/test-chr.h
tests/unistr/test-cmp.h
tests/unistr/test-cmp2.h
tests/unistr/test-cpy-alloc.h
tests/unistr/test-cpy.h
tests/unistr/test-move.h
tests/unistr/test-set.h
tests/unistr/test-stpcpy.h
tests/unistr/test-stpncpy.h
tests/unistr/test-strcat.h
tests/unistr/test-strchr.h [new file with mode: 0644]
tests/unistr/test-strcmp.h
tests/unistr/test-strcpy.h
tests/unistr/test-strdup.h
tests/unistr/test-strncat.h
tests/unistr/test-strncmp.h
tests/unistr/test-strncpy.h
tests/unistr/test-strnlen.h
tests/unistr/test-u-strstr.h [new file with mode: 0644]
tests/unistr/test-u16-check.c
tests/unistr/test-u16-chr.c
tests/unistr/test-u16-cmp.c
tests/unistr/test-u16-cmp2.c
tests/unistr/test-u16-cpy-alloc.c
tests/unistr/test-u16-cpy.c
tests/unistr/test-u16-mblen.c
tests/unistr/test-u16-mbsnlen.c
tests/unistr/test-u16-mbtouc-unsafe.c
tests/unistr/test-u16-mbtouc.c
tests/unistr/test-u16-mbtouc.h
tests/unistr/test-u16-mbtoucr.c
tests/unistr/test-u16-move.c
tests/unistr/test-u16-next.c
tests/unistr/test-u16-prev.c
tests/unistr/test-u16-set.c
tests/unistr/test-u16-stpcpy.c
tests/unistr/test-u16-stpncpy.c
tests/unistr/test-u16-strcat.c
tests/unistr/test-u16-strchr.c [new file with mode: 0644]
tests/unistr/test-u16-strcmp.c
tests/unistr/test-u16-strcmp.h
tests/unistr/test-u16-strcoll.c
tests/unistr/test-u16-strcpy.c
tests/unistr/test-u16-strdup.c
tests/unistr/test-u16-strlen.c
tests/unistr/test-u16-strmblen.c
tests/unistr/test-u16-strmbtouc.c
tests/unistr/test-u16-strncat.c
tests/unistr/test-u16-strncmp.c
tests/unistr/test-u16-strncpy.c
tests/unistr/test-u16-strnlen.c
tests/unistr/test-u16-strstr.c [new file with mode: 0644]
tests/unistr/test-u16-to-u32.c
tests/unistr/test-u16-to-u8.c
tests/unistr/test-u16-uctomb.c
tests/unistr/test-u32-check.c
tests/unistr/test-u32-chr.c
tests/unistr/test-u32-cmp.c
tests/unistr/test-u32-cmp2.c
tests/unistr/test-u32-cpy-alloc.c
tests/unistr/test-u32-cpy.c
tests/unistr/test-u32-mblen.c
tests/unistr/test-u32-mbsnlen.c
tests/unistr/test-u32-mbtouc-unsafe.c
tests/unistr/test-u32-mbtouc.c
tests/unistr/test-u32-mbtouc.h
tests/unistr/test-u32-mbtoucr.c
tests/unistr/test-u32-move.c
tests/unistr/test-u32-next.c
tests/unistr/test-u32-prev.c
tests/unistr/test-u32-set.c
tests/unistr/test-u32-stpcpy.c
tests/unistr/test-u32-stpncpy.c
tests/unistr/test-u32-strcat.c
tests/unistr/test-u32-strchr.c [new file with mode: 0644]
tests/unistr/test-u32-strcmp.c
tests/unistr/test-u32-strcmp.h
tests/unistr/test-u32-strcoll.c
tests/unistr/test-u32-strcpy.c
tests/unistr/test-u32-strdup.c
tests/unistr/test-u32-strlen.c
tests/unistr/test-u32-strmblen.c
tests/unistr/test-u32-strmbtouc.c
tests/unistr/test-u32-strncat.c
tests/unistr/test-u32-strncmp.c
tests/unistr/test-u32-strncpy.c
tests/unistr/test-u32-strnlen.c
tests/unistr/test-u32-strstr.c [new file with mode: 0644]
tests/unistr/test-u32-to-u16.c
tests/unistr/test-u32-to-u8.c
tests/unistr/test-u32-uctomb.c
tests/unistr/test-u8-check.c
tests/unistr/test-u8-chr.c
tests/unistr/test-u8-cmp.c
tests/unistr/test-u8-cmp2.c
tests/unistr/test-u8-cpy-alloc.c
tests/unistr/test-u8-cpy.c
tests/unistr/test-u8-mblen.c
tests/unistr/test-u8-mbsnlen.c
tests/unistr/test-u8-mbtouc-unsafe.c
tests/unistr/test-u8-mbtouc.c
tests/unistr/test-u8-mbtouc.h
tests/unistr/test-u8-mbtoucr.c
tests/unistr/test-u8-move.c
tests/unistr/test-u8-next.c
tests/unistr/test-u8-prev.c
tests/unistr/test-u8-set.c
tests/unistr/test-u8-stpcpy.c
tests/unistr/test-u8-stpncpy.c
tests/unistr/test-u8-strcat.c
tests/unistr/test-u8-strchr.c [new file with mode: 0644]
tests/unistr/test-u8-strcmp.c
tests/unistr/test-u8-strcmp.h
tests/unistr/test-u8-strcoll.c
tests/unistr/test-u8-strcpy.c
tests/unistr/test-u8-strdup.c
tests/unistr/test-u8-strlen.c
tests/unistr/test-u8-strmblen.c
tests/unistr/test-u8-strmbtouc.c
tests/unistr/test-u8-strncat.c
tests/unistr/test-u8-strncmp.c
tests/unistr/test-u8-strncpy.c
tests/unistr/test-u8-strnlen.c
tests/unistr/test-u8-strstr.c [new file with mode: 0644]
tests/unistr/test-u8-to-u16.c
tests/unistr/test-u8-to-u32.c
tests/unistr/test-u8-uctomb.c
tests/uniwbrk/test-u16-wordbreaks.c
tests/uniwbrk/test-u32-wordbreaks.c
tests/uniwbrk/test-u8-wordbreaks.c
tests/uniwbrk/test-ulc-wordbreaks.c
tests/uniwidth/test-u16-strwidth.c
tests/uniwidth/test-u16-width.c
tests/uniwidth/test-u32-strwidth.c
tests/uniwidth/test-u32-width.c
tests/uniwidth/test-u8-strwidth.c
tests/uniwidth/test-u8-width.c
tests/uniwidth/test-uc_width.c
tests/uniwidth/test-uc_width2.c
tests/uniwidth/test-uc_width2.sh
tests/unsetenv.c
tests/wcrtomb.c [new file with mode: 0644]
tests/wctob.c
tests/wctomb-impl.h [new file with mode: 0644]
tests/wctomb.c [new file with mode: 0644]
tests/xalloc-die.c
tests/xalloc-oversized.h [new file with mode: 0644]
tests/xalloc.h
tests/xmalloc.c
tests/zerosize-ptr.h
version.sh
woe32dll/export.h
woe32dll/unistring-exports.c

diff --git a/AUTHORS b/AUTHORS
index 8bedd79..c690b65 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1 +1,9 @@
-Bruno Haible <bruno@clisp.org>
+Authors of GNU libunistring
+
+The following contributions warranted legal paper exchanges with the
+Free Software Foundation.  See also the ChangeLog and THANKS files in this
+package and the ChangeLog file in gnulib (where most of the code is imported
+from).
+
+Bruno Haible        <bruno@clisp.org>           all files
+Ben Pfaff           <blp@cs.stanford.edu>       unigbrk
index 92c53c6..cf04ae4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,298 @@
+2014-09-01  Daiki Ueno  <ueno@gnu.org>
+
+       * Version 0.9.4 released.
+
+2014-09-01  Daiki Ueno  <ueno@gnu.org>
+
+       * version.sh: Bump version number and date.
+       * README: Update version.
+
+2014-09-01  Daiki Ueno  <ueno@gnu.org>
+
+       * configure.ac (AM_INIT_AUTOMAKE): Add dist-xz, so that xz-compressed
+       .tar.xz tarballs will be distributed alongside .tar.gz ones.
+
+2014-08-08  Daiki Ueno  <ueno@gnu.org>
+
+       Replace deprecated $(mkdir_p) usage.
+       Problem report and trivial fix by Nitin A Kamble in:
+       https://lists.gnu.org/archive/html/bug-libunistring/2012-07/msg00000.html
+       * doc/Makefile.am (installdirs-dvi, installdirs-ps)
+       (installdirs-pdf, install-html-monolithic, install-html-split)
+       (installdirs-html, dist-html-monolithic, dist-html-split): Use
+       $(MKDIR_P) instead of deprecated $(mkdir_p).
+
+2014-08-08  Daiki Ueno  <ueno@gnu.org>
+
+       Fix parallel make race when generating unistring/cdefs.h.
+       Trivial fix by Richard Purdie in:
+       http://lists.openembedded.org/pipermail/openembedded-core/2012-April/059850.html
+       * lib/Makefile.am (unistring/cdefs.h): Add $(UNUSED_PARAMETER_H)
+       to prerequisites.
+       Reported by Ludovic Courtès.
+
+2013-01-19  Bruno Haible  <bruno@clisp.org>
+
+       Fix license headers to be LGPL.
+       * lib/stdbool.mini.h: Change license to LGPLv3+.
+       * woe32dll/export.h: Likewise.
+       * woe32dll/unistring-exports.c: Likewise.
+       Reported by Ryan Schmidt.
+
+2012-04-29  Bruno Haible  <bruno@clisp.org>
+
+       Allow use of autoconf-2.69 and automake-1.12.
+       * autogen.sh: Update comments.
+
+2012-01-15  Bruno Haible  <bruno@clisp.org>
+
+       Support for MSVC 9.
+       * woe32dll/export.h (VARIABLE): Define to empty if not using GCC.
+
+2011-01-28  Bruno Haible  <bruno@clisp.org>
+
+       Add a comment.
+       * woe32dll/export.h: Add a reference to the woe32dll writeup.
+
+2011-10-18  Bruno Haible  <bruno@clisp.org>
+
+       * m4/libtool.m4: Update from libtool-2.4.2, with modifications.
+       2009-04-23  Bruno Haible  <bruno@clisp.org>
+               Fix recognition of "nm" command.
+               * m4/libtool.m4 (LT_PATH_NM): Try "nm" program also when
+               compiling for mingw in a cygwin environment.
+       2008-04-06  Bruno Haible  <bruno@clisp.org>
+               * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use
+               CONFIG_SHELL; don't assume that the Makefile.in will set SHELL
+               to ${CONFIG_SHELL}.
+       * m4/ltoptions.m4: Likewise.
+       * m4/ltversion.m4: Likewise.
+       * build-aux/ltmain.sh: Likewise.
+
+2011-03-29  Bruno Haible  <bruno@clisp.org>
+
+       Add grapheme cluster break functions.
+       * autogen.sh (GNULIB_MODULES): Add unigbrk/*.
+       * gnulib-local/lib/unigbrk.in.h.diff: New file.
+       * gnulib-local/Makefile.am (EXTRA_DIST): Add lib/unigbrk.in.h.diff.
+       * lib/Makefile.am (nobase_include_HEADERS, HEADERS_WITH_EXTERNS): Add
+       unigbrk.h.
+       * doc/Makefile.am (libunistring_TEXINFOS): Move unigbrk.texi before
+       uniwbrk.texi.
+       * doc/libunistring.texi: Move chapter unigbrk.h before chapter
+       uniwbrk.h.
+       * doc/unigbrk.texi (unigbrk.h): Add more index entries. Enhance the
+       explanation of what a grapheme cluster is.
+       (Grapheme cluster break property): Add missing quotes. Avoid imperative
+       form.
+       * doc/uniwbrk.texi (uniwbrk.h): Add more index entries.
+       * AUTHORS: List Ben Pfaff.
+       * README: Mention the new include file unigbrk.h.
+       * NEWS: Likewise.
+
+2011-03-28  Ben Pfaff  <blp@cs.stanford.edu>
+
+       Document grapheme cluster break functions.
+       * doc/Makefile.am (libunistring_TEXINFOS): Add unigbrk.texi.
+       * doc/libunistring.texi: Include unigbrk.texi and refer to it from
+       the text and tables of content.
+       * doc/unigbrk.texi: New file.
+
+2011-03-26  Bruno Haible  <bruno@clisp.org>
+
+       Allow omitting spaces in property names.
+       * doc/unictype.texi (Properties as objects): Add details about how
+       uc_property_byname works.
+
+2011-03-26  Bruno Haible  <bruno@clisp.org>
+
+       Allow omitting spaces in joining group names.
+       * doc/unictype.texi (Joining group): Add details about how
+       uc_joining_group_byname works.
+
+2011-03-26  Bruno Haible  <bruno@clisp.org>
+
+       Support long names of joining types.
+       * doc/unictype.texi (Joining type): Document
+       uc_joining_type_long_name. Mention that uc_joining_type_byname
+       recognizes long names.
+
+2011-03-26  Bruno Haible  <bruno@clisp.org>
+
+       Support long names of bidi classes.
+       * doc/unictype.texi (Bidi class): Document
+       uc_bidi_class_long_name. Mention that uc_bidi_class_byname recognizes
+       long names.
+
+2011-03-26  Bruno Haible  <bruno@clisp.org>
+
+       Update after gnulib changed.
+       * autogen.sh (GNULIB_MODULES): Use unictype/bidiclass-all instead of
+       unictype/bidicategory-all.
+
+2011-03-26  Bruno Haible  <bruno@clisp.org>
+
+       Support names and long names of canonical combining classes.
+       * autogen.sh (GNULIB_MODULES): Use unictype/combining-class-all instead
+       of unictype/combining-class.
+       * doc/unictype.texi (Canonical combining class): Mention UC_CCC_ATA.
+       Document the functions uc_combining_class_name,
+       uc_combining_class_long_name, uc_combining_class_byname.
+
+2011-03-25  Bruno Haible  <bruno@clisp.org>
+
+       Support long names of general category values.
+       * doc/unictype.texi (Object oriented API): Document
+       uc_general_category_long_name. Mention that uc_general_category_byname
+       recognizes long names.
+
+2011-03-25  Bruno Haible  <bruno@clisp.org>
+
+       Add support for general category group LC.
+       * doc/unictype.texi (Object oriented API): Mention UC_CATEGORY_LC,
+       UC_CASED_LETTER.
+       (Bit mask API): Mention UC_CATEGORY_MASK_LC.
+
+2011-03-22  Bruno Haible  <bruno@clisp.org>
+
+       Use term "bidi class" instead of "bidirectional category".
+       * doc/libunistring.texi: Update menu.
+       * doc/unictype.texi (Bidi class): Renamed from Bidirectional category.
+       Mention the new function names.
+
+2011-03-21  Bruno Haible  <bruno@clisp.org>
+
+       Add support for Arabic shaping properties.
+       * autogen.sh (GNULIB_MODULES): Add unictype/joiningtype-all,
+       unictype/joininggroup-all.
+       * doc/libunistring.texi: Update menu.
+       * doc/unictype.texi (Arabic shaping): New section.
+
+2011-01-09  Bruno Haible  <bruno@clisp.org>
+
+       Update to Unicode 6.0.0.
+
+2011-01-09  Bruno Haible  <bruno@clisp.org>
+
+       Update to Unicode 5.2.0.
+       * doc/unictype.texi: Mention the 7 new character properties.
+
+2011-01-09  Bruno Haible  <bruno@clisp.org>
+
+       Bump copyright year.
+       * lib/libunistring.rc: Add year 2011.
+
+2010-12-07  Bruno Haible  <bruno@clisp.org>
+
+       Effects of renaming u8_strcmp on Solaris platforms.
+       * lib/Makefile.am (LTV_*): Bump to 2:0:0.
+
+2010-11-27  Bruno Haible  <bruno@clisp.org>
+
+       Export also undocumented symbols.
+       * lib/Makefile.am (libunistring.sym): Don't remove _UC* symbols.
+
+2010-11-13  Bruno Haible  <bruno@clisp.org>
+
+       Improve documentation.
+       * doc/unistr.texi (Elementary string checks): Add an index entry.
+       (Elementary string functions on NUL terminated strings): Enhance doc
+       about uN_prev.
+       Reported by Ben Pfaff <blp@cs.stanford.edu>.
+
+2010-10-04  Bruno Haible  <bruno@clisp.org>
+
+       Update after gnulib changed.
+       * lib/Makefile.am (libunistring_la_LDFLAGS): Remove 'no-undefined' and
+       dependencies.
+
+2010-09-26  Bruno Haible  <bruno@clisp.org>
+
+       Fix exported symbol list in VPATH builds after 2010-05-16 change.
+       * lib/Makefile.am (libunistring.sym): Find header files in the right
+       directory.
+
+2010-09-23  Bruno Haible  <bruno@clisp.org>
+
+       Update after gnulib changed.
+       * lib/Makefile.am (MOSTLYCLEANDIRS): New variable.
+
+2010-09-23  Bruno Haible  <bruno@clisp.org>
+
+       * m4/libtool.m4: Update from libtool-2.4, with modifications.
+       2009-04-23  Bruno Haible  <bruno@clisp.org>
+               Fix recognition of "nm" command.
+               * m4/libtool.m4 (LT_PATH_NM): Try "nm" program also when
+               compiling for mingw in a cygwin environment.
+       2008-04-06  Bruno Haible  <bruno@clisp.org>
+               * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use
+               CONFIG_SHELL; don't assume that the Makefile.in will set SHELL
+               to ${CONFIG_SHELL}.
+       * m4/ltversion.m4: Update from libtool-2.4.
+       * build-aux/ltmain.sh: Likewise.
+
+2010-09-14  Bruno Haible  <bruno@clisp.org>
+
+       Update after gnulib changed.
+       * autogen.sh: Update creation of lib/unistr.in.h.
+
+2010-09-04  Bruno Haible  <bruno@clisp.org>
+
+       Simplify use of gnulib-tool now that gnulib-tool --import works better.
+       * autogen.sh: Don't remove gnulib-cache.m4 before running gnulib-tool.
+
+2010-06-04  Bruno Haible  <bruno@clisp.org>
+
+       * m4/libtool.m4: Update from libtool-2.2.8, with modifications.
+       2009-04-23  Bruno Haible  <bruno@clisp.org>
+               Fix recognition of "nm" command.
+               * m4/libtool.m4 (LT_PATH_NM): Try "nm" program also when
+               compiling for mingw in a cygwin environment.
+       2008-04-06  Bruno Haible  <bruno@clisp.org>
+               * m4/libtool.m4 (LT_INIT): When setting LIBTOOL, use
+               CONFIG_SHELL; don't assume that the Makefile.in will set SHELL
+               to ${CONFIG_SHELL}.
+       * m4/ltoptions.m4: Update from libtool-2.2.8.
+       * m4/ltversion.m4: Likewise.
+       * m4/lt~obsolete.m4: Likewise.
+       * build-aux/ltmain.sh: Likewise.
+
+2010-06-01  Bruno Haible  <bruno@clisp.org>
+
+       Avoid possible bad interaction with Solaris 2.5.1 <pthread.h>.
+       * lib/stdint.mini.h (_UINT64_T): Don't define.
+       Reported by Ben Pfaff <blp@cs.stanford.edu>.
+
+2010-05-16  Bruno Haible  <bruno@clisp.org>
+
+       Update after gnulib changed.
+       * gnulib-local/lib/unicase.in.h.diff: Renamed from
+       gnulib-local/lib/unicase.h.diff.
+       * gnulib-local/lib/uniconv.in.h.diff: Renamed from
+       gnulib-local/lib/uniconv.h.diff.
+       * gnulib-local/lib/unictype.in.h.diff: Renamed from
+       gnulib-local/lib/unictype.h.diff.
+       * gnulib-local/lib/unilbrk.in.h.diff: Renamed from
+       gnulib-local/lib/unilbrk.h.diff.
+       * gnulib-local/lib/uninorm.in.h.diff: Renamed from
+       gnulib-local/lib/uninorm.h.diff.
+       * gnulib-local/lib/unistr.in.h.diff: Renamed from
+       gnulib-local/lib/unistr.h.diff.
+       * gnulib-local/lib/unitypes.in.h.diff: Renamed from
+       gnulib-local/lib/unitypes.h.diff.
+       * gnulib-local/lib/uniwidth.in.h.diff: Renamed from
+       gnulib-local/lib/uniwidth.h.diff.
+       * gnulib-local/Makefile.am (EXTRA_DIST): Update.
+       * gnulib-local/modules/unictype/category-none-tests.diff: Update.
+       * autogen.sh: Update.
+
+2010-05-14  Bruno Haible  <bruno@clisp.org>
+
+       Publicize also the subminor version number.
+       * lib/unistring/version.in.h (_LIBUNISTRING_VERSION,
+       _libunistring_version): Include also the subminor version.
+       * configure.ac (HEXVERSION): Likewise.
+
 2010-05-02  Bruno Haible  <bruno@clisp.org>
 
        * Version 0.9.3 released.
index 4a83e54..4315f8b 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -34,20 +77,28 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in $(srcdir)/config.h.in \
-       $(top_srcdir)/configure \
-       $(top_srcdir)/lib/unistring/version.in.h \
-       $(top_srcdir)/lib/unistring/woe32dll.in.h AUTHORS COPYING \
-       COPYING.LIB ChangeLog INSTALL NEWS THANKS build-aux/compile \
-       build-aux/config.guess build-aux/config.rpath \
-       build-aux/config.sub build-aux/depcomp build-aux/install-sh \
-       build-aux/ltmain.sh build-aux/mdate-sh build-aux/missing \
-       build-aux/texinfo.tex
+DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
+       $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/configure $(am__configure_deps) \
+       $(srcdir)/config.h.in $(top_srcdir)/lib/unistring/version.in.h \
+       $(top_srcdir)/lib/unistring/woe32dll.in.h COPYING COPYING.LIB \
+       THANKS build-aux/compile build-aux/config.guess \
+       build-aux/config.rpath build-aux/config.sub \
+       build-aux/install-sh build-aux/missing build-aux/texinfo.tex \
+       build-aux/ltmain.sh $(top_srcdir)/build-aux/compile \
+       $(top_srcdir)/build-aux/config.guess \
+       $(top_srcdir)/build-aux/config.rpath \
+       $(top_srcdir)/build-aux/config.sub \
+       $(top_srcdir)/build-aux/install-sh \
+       $(top_srcdir)/build-aux/ltmain.sh \
+       $(top_srcdir)/build-aux/missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
+       $(top_srcdir)/gnulib-m4/absolute-header.m4 \
        $(top_srcdir)/gnulib-m4/alloca.m4 \
+       $(top_srcdir)/gnulib-m4/btowc.m4 \
        $(top_srcdir)/gnulib-m4/codeset.m4 \
+       $(top_srcdir)/gnulib-m4/configmake.m4 \
        $(top_srcdir)/gnulib-m4/eealloc.m4 \
        $(top_srcdir)/gnulib-m4/environ.m4 \
        $(top_srcdir)/gnulib-m4/errno_h.m4 \
@@ -56,11 +107,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/exponentf.m4 \
        $(top_srcdir)/gnulib-m4/exponentl.m4 \
        $(top_srcdir)/gnulib-m4/extensions.m4 \
+       $(top_srcdir)/gnulib-m4/extern-inline.m4 \
        $(top_srcdir)/gnulib-m4/fcntl-o.m4 \
+       $(top_srcdir)/gnulib-m4/fdopen.m4 \
        $(top_srcdir)/gnulib-m4/float_h.m4 \
        $(top_srcdir)/gnulib-m4/fpieee.m4 \
        $(top_srcdir)/gnulib-m4/frexp.m4 \
        $(top_srcdir)/gnulib-m4/frexpl.m4 \
+       $(top_srcdir)/gnulib-m4/fseterr.m4 \
        $(top_srcdir)/gnulib-m4/getpagesize.m4 \
        $(top_srcdir)/gnulib-m4/glibc21.m4 \
        $(top_srcdir)/gnulib-m4/gnulib-common.m4 \
@@ -72,16 +126,21 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/inline.m4 \
        $(top_srcdir)/gnulib-m4/intlmacosx.m4 \
        $(top_srcdir)/gnulib-m4/intmax_t.m4 \
+       $(top_srcdir)/gnulib-m4/inttypes-pri.m4 \
+       $(top_srcdir)/gnulib-m4/inttypes.m4 \
        $(top_srcdir)/gnulib-m4/inttypes_h.m4 \
        $(top_srcdir)/gnulib-m4/isnand.m4 \
        $(top_srcdir)/gnulib-m4/isnanf.m4 \
        $(top_srcdir)/gnulib-m4/isnanl.m4 \
+       $(top_srcdir)/gnulib-m4/iswblank.m4 \
        $(top_srcdir)/gnulib-m4/lcmessage.m4 \
        $(top_srcdir)/gnulib-m4/ldexpl.m4 \
        $(top_srcdir)/gnulib-m4/lib-ld.m4 \
        $(top_srcdir)/gnulib-m4/lib-link.m4 \
        $(top_srcdir)/gnulib-m4/lib-prefix.m4 \
+       $(top_srcdir)/gnulib-m4/libunistring-base.m4 \
        $(top_srcdir)/gnulib-m4/localcharset.m4 \
+       $(top_srcdir)/gnulib-m4/locale-ar.m4 \
        $(top_srcdir)/gnulib-m4/locale-fr.m4 \
        $(top_srcdir)/gnulib-m4/locale-ja.m4 \
        $(top_srcdir)/gnulib-m4/locale-tr.m4 \
@@ -98,27 +157,37 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/mbrtowc.m4 \
        $(top_srcdir)/gnulib-m4/mbsinit.m4 \
        $(top_srcdir)/gnulib-m4/mbstate_t.m4 \
+       $(top_srcdir)/gnulib-m4/mbtowc.m4 \
        $(top_srcdir)/gnulib-m4/memchr.m4 \
        $(top_srcdir)/gnulib-m4/minmax.m4 \
        $(top_srcdir)/gnulib-m4/mmap-anon.m4 \
+       $(top_srcdir)/gnulib-m4/msvc-inval.m4 \
+       $(top_srcdir)/gnulib-m4/msvc-nothrow.m4 \
        $(top_srcdir)/gnulib-m4/multiarch.m4 \
        $(top_srcdir)/gnulib-m4/nocrash.m4 \
+       $(top_srcdir)/gnulib-m4/off_t.m4 \
        $(top_srcdir)/gnulib-m4/printf-frexp.m4 \
        $(top_srcdir)/gnulib-m4/printf-frexpl.m4 \
        $(top_srcdir)/gnulib-m4/printf.m4 \
        $(top_srcdir)/gnulib-m4/putenv.m4 \
        $(top_srcdir)/gnulib-m4/relocatable-lib.m4 \
        $(top_srcdir)/gnulib-m4/setenv.m4 \
+       $(top_srcdir)/gnulib-m4/setlocale.m4 \
        $(top_srcdir)/gnulib-m4/signbit.m4 \
        $(top_srcdir)/gnulib-m4/size_max.m4 \
+       $(top_srcdir)/gnulib-m4/ssize_t.m4 \
        $(top_srcdir)/gnulib-m4/stdbool.m4 \
        $(top_srcdir)/gnulib-m4/stddef_h.m4 \
        $(top_srcdir)/gnulib-m4/stdint.m4 \
        $(top_srcdir)/gnulib-m4/stdint_h.m4 \
+       $(top_srcdir)/gnulib-m4/stdio_h.m4 \
        $(top_srcdir)/gnulib-m4/stdlib_h.m4 \
        $(top_srcdir)/gnulib-m4/strerror.m4 \
        $(top_srcdir)/gnulib-m4/string_h.m4 \
        $(top_srcdir)/gnulib-m4/strncat.m4 \
+       $(top_srcdir)/gnulib-m4/strstr.m4 \
+       $(top_srcdir)/gnulib-m4/sys_socket_h.m4 \
+       $(top_srcdir)/gnulib-m4/sys_types_h.m4 \
        $(top_srcdir)/gnulib-m4/thread.m4 \
        $(top_srcdir)/gnulib-m4/threadlib.m4 \
        $(top_srcdir)/gnulib-m4/unistd_h.m4 \
@@ -126,7 +195,9 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/warn-on-use.m4 \
        $(top_srcdir)/gnulib-m4/wchar_h.m4 \
        $(top_srcdir)/gnulib-m4/wchar_t.m4 \
+       $(top_srcdir)/gnulib-m4/wcrtomb.m4 \
        $(top_srcdir)/gnulib-m4/wctob.m4 \
+       $(top_srcdir)/gnulib-m4/wctomb.m4 \
        $(top_srcdir)/gnulib-m4/wctype_h.m4 \
        $(top_srcdir)/gnulib-m4/wcwidth.m4 \
        $(top_srcdir)/gnulib-m4/wint_t.m4 \
@@ -146,38 +217,75 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = lib/unistring/version.h lib/unistring/woe32dll.h
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 depcomp =
 am__depfiles_maybe =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-       html-recursive info-recursive install-data-recursive \
-       install-dvi-recursive install-exec-recursive \
-       install-html-recursive install-info-recursive \
-       install-pdf-recursive install-ps-recursive install-recursive \
-       installcheck-recursive installdirs-recursive pdf-recursive \
-       ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-       distdir dist dist-all distcheck
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+       $(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+CSCOPE = cscope
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  { test ! -d "$(distdir)" \
-    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr "$(distdir)"; }; }
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -203,10 +311,14 @@ am__relativize = \
     dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
   done; \
   reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
+DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz
 GZIP_ENV = --best
+DIST_TARGETS = dist-xz dist-gzip
 distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
 distcleancheck_listfiles = find . -type f -print
+pkglibexecdir = @pkglibexecdir@
 ACLOCAL = build-aux/fixaclocal @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -214,6 +326,7 @@ AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
+ARFLAGS = @ARFLAGS@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -253,38 +366,97 @@ FGREP = @FGREP@
 FLOAT_H = @FLOAT_H@
 GLIBC21 = @GLIBC21@
 GLOBAL_SYMBOL_PIPE = @GLOBAL_SYMBOL_PIPE@
+GNULIB_ACOSF = @GNULIB_ACOSF@
 GNULIB_ACOSL = @GNULIB_ACOSL@
+GNULIB_ASINF = @GNULIB_ASINF@
 GNULIB_ASINL = @GNULIB_ASINL@
+GNULIB_ATAN2F = @GNULIB_ATAN2F@
+GNULIB_ATANF = @GNULIB_ATANF@
 GNULIB_ATANL = @GNULIB_ATANL@
 GNULIB_ATOLL = @GNULIB_ATOLL@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
+GNULIB_CBRT = @GNULIB_CBRT@
+GNULIB_CBRTF = @GNULIB_CBRTF@
+GNULIB_CBRTL = @GNULIB_CBRTL@
+GNULIB_CEIL = @GNULIB_CEIL@
 GNULIB_CEILF = @GNULIB_CEILF@
 GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_COPYSIGN = @GNULIB_COPYSIGN@
+GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@
+GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@
+GNULIB_COSF = @GNULIB_COSF@
+GNULIB_COSHF = @GNULIB_COSHF@
 GNULIB_COSL = @GNULIB_COSL@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
 GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXP2 = @GNULIB_EXP2@
+GNULIB_EXP2F = @GNULIB_EXP2F@
+GNULIB_EXP2L = @GNULIB_EXP2L@
+GNULIB_EXPF = @GNULIB_EXPF@
 GNULIB_EXPL = @GNULIB_EXPL@
+GNULIB_EXPM1 = @GNULIB_EXPM1@
+GNULIB_EXPM1F = @GNULIB_EXPM1F@
+GNULIB_EXPM1L = @GNULIB_EXPM1L@
+GNULIB_FABSF = @GNULIB_FABSF@
+GNULIB_FABSL = @GNULIB_FABSL@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
 GNULIB_FCHDIR = @GNULIB_FCHDIR@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
+GNULIB_FCLOSE = @GNULIB_FCLOSE@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FLOOR = @GNULIB_FLOOR@
 GNULIB_FLOORF = @GNULIB_FLOORF@
 GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FMA = @GNULIB_FMA@
+GNULIB_FMAF = @GNULIB_FMAF@
+GNULIB_FMAL = @GNULIB_FMAL@
+GNULIB_FMOD = @GNULIB_FMOD@
+GNULIB_FMODF = @GNULIB_FMODF@
+GNULIB_FMODL = @GNULIB_FMODL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF = @GNULIB_FPRINTF@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FPURGE = @GNULIB_FPURGE@
+GNULIB_FPUTC = @GNULIB_FPUTC@
+GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
 GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPF = @GNULIB_FREXPF@
 GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
 GNULIB_FSYNC = @GNULIB_FSYNC@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
 GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
 GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
 GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
+GNULIB_GETLINE = @GNULIB_GETLINE@
 GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
@@ -292,17 +464,45 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_HYPOT = @GNULIB_HYPOT@
+GNULIB_HYPOTF = @GNULIB_HYPOTF@
+GNULIB_HYPOTL = @GNULIB_HYPOTL@
+GNULIB_ICONV = @GNULIB_ICONV@
+GNULIB_ILOGB = @GNULIB_ILOGB@
+GNULIB_ILOGBF = @GNULIB_ILOGBF@
+GNULIB_ILOGBL = @GNULIB_ILOGBL@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 GNULIB_ISFINITE = @GNULIB_ISFINITE@
 GNULIB_ISINF = @GNULIB_ISINF@
 GNULIB_ISNAN = @GNULIB_ISNAN@
 GNULIB_ISNAND = @GNULIB_ISNAND@
 GNULIB_ISNANF = @GNULIB_ISNANF@
 GNULIB_ISNANL = @GNULIB_ISNANL@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPF = @GNULIB_LDEXPF@
 GNULIB_LDEXPL = @GNULIB_LDEXPL@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOG = @GNULIB_LOG@
+GNULIB_LOG10 = @GNULIB_LOG10@
+GNULIB_LOG10F = @GNULIB_LOG10F@
+GNULIB_LOG10L = @GNULIB_LOG10L@
+GNULIB_LOG1P = @GNULIB_LOG1P@
+GNULIB_LOG1PF = @GNULIB_LOG1PF@
+GNULIB_LOG1PL = @GNULIB_LOG1PL@
+GNULIB_LOG2 = @GNULIB_LOG2@
+GNULIB_LOG2F = @GNULIB_LOG2F@
+GNULIB_LOG2L = @GNULIB_LOG2L@
 GNULIB_LOGB = @GNULIB_LOGB@
+GNULIB_LOGBF = @GNULIB_LOGBF@
+GNULIB_LOGBL = @GNULIB_LOGBL@
+GNULIB_LOGF = @GNULIB_LOGF@
 GNULIB_LOGL = @GNULIB_LOGL@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -325,6 +525,7 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@
 GNULIB_MBSSPN = @GNULIB_MBSSPN@
 GNULIB_MBSSTR = @GNULIB_MBSSTR@
 GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MBTOWC = @GNULIB_MBTOWC@
 GNULIB_MEMCHR = @GNULIB_MEMCHR@
 GNULIB_MEMMEM = @GNULIB_MEMMEM@
 GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
@@ -334,32 +535,73 @@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
 GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
 GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
 GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
+GNULIB_MODF = @GNULIB_MODF@
+GNULIB_MODFF = @GNULIB_MODFF@
+GNULIB_MODFL = @GNULIB_MODFL@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_POWF = @GNULIB_POWF@
 GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_REMAINDER = @GNULIB_REMAINDER@
+GNULIB_REMAINDERF = @GNULIB_REMAINDERF@
+GNULIB_REMAINDERL = @GNULIB_REMAINDERL@
+GNULIB_REMOVE = @GNULIB_REMOVE@
+GNULIB_RENAME = @GNULIB_RENAME@
+GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_RINT = @GNULIB_RINT@
+GNULIB_RINTF = @GNULIB_RINTF@
+GNULIB_RINTL = @GNULIB_RINTL@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_ROUND = @GNULIB_ROUND@
 GNULIB_ROUNDF = @GNULIB_ROUNDF@
 GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
 GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SINF = @GNULIB_SINF@
+GNULIB_SINHF = @GNULIB_SINHF@
 GNULIB_SINL = @GNULIB_SINL@
 GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_SQRTF = @GNULIB_SQRTF@
 GNULIB_SQRTL = @GNULIB_SQRTL@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
 GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
 GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
 GNULIB_STRDUP = @GNULIB_STRDUP@
 GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRERROR_R = @GNULIB_STRERROR_R@
 GNULIB_STRNCAT = @GNULIB_STRNCAT@
 GNULIB_STRNDUP = @GNULIB_STRNDUP@
 GNULIB_STRNLEN = @GNULIB_STRNLEN@
@@ -368,87 +610,197 @@ GNULIB_STRSEP = @GNULIB_STRSEP@
 GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
 GNULIB_STRSTR = @GNULIB_STRSTR@
 GNULIB_STRTOD = @GNULIB_STRTOD@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
 GNULIB_STRTOLL = @GNULIB_STRTOLL@
 GNULIB_STRTOULL = @GNULIB_STRTOULL@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
+GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TANF = @GNULIB_TANF@
+GNULIB_TANHF = @GNULIB_TANHF@
 GNULIB_TANL = @GNULIB_TANL@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TRUNC = @GNULIB_TRUNC@
 GNULIB_TRUNCF = @GNULIB_TRUNCF@
 GNULIB_TRUNCL = @GNULIB_TRUNCL@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
 GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
 GNULIB_UNSETENV = @GNULIB_UNSETENV@
 GNULIB_USLEEP = @GNULIB_USLEEP@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
+GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
 GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
 GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
 GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
 GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACOSF = @HAVE_ACOSF@
 HAVE_ACOSL = @HAVE_ACOSL@
+HAVE_ASINF = @HAVE_ASINF@
 HAVE_ASINL = @HAVE_ASINL@
+HAVE_ATAN2F = @HAVE_ATAN2F@
+HAVE_ATANF = @HAVE_ATANF@
 HAVE_ATANL = @HAVE_ATANL@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CBRT = @HAVE_CBRT@
+HAVE_CBRTF = @HAVE_CBRTF@
+HAVE_CBRTL = @HAVE_CBRTL@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_COPYSIGN = @HAVE_COPYSIGN@
+HAVE_COPYSIGNL = @HAVE_COPYSIGNL@
+HAVE_COSF = @HAVE_COSF@
+HAVE_COSHF = @HAVE_COSHF@
 HAVE_COSL = @HAVE_COSL@
 HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
 HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
 HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@
+HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@
 HAVE_DECL_CEILF = @HAVE_DECL_CEILF@
 HAVE_DECL_CEILL = @HAVE_DECL_CEILL@
+HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@
 HAVE_DECL_COSL = @HAVE_DECL_COSL@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@
+HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@
+HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@
 HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@
 HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
 HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@
+HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@
+HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@
+HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@
 HAVE_DECL_LOGB = @HAVE_DECL_LOGB@
 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_REMAINDER = @HAVE_DECL_REMAINDER@
+HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@
+HAVE_DECL_RINTF = @HAVE_DECL_RINTF@
 HAVE_DECL_ROUND = @HAVE_DECL_ROUND@
 HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@
 HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
 HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
 HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
 HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
 HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
 HAVE_DECL_TANL = @HAVE_DECL_TANL@
 HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
 HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
 HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPF = @HAVE_EXPF@
 HAVE_EXPL = @HAVE_EXPL@
+HAVE_EXPM1 = @HAVE_EXPM1@
+HAVE_EXPM1F = @HAVE_EXPM1F@
+HAVE_FABSF = @HAVE_FABSF@
+HAVE_FABSL = @HAVE_FABSL@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FMA = @HAVE_FMA@
+HAVE_FMAF = @HAVE_FMAF@
+HAVE_FMAL = @HAVE_FMAL@
+HAVE_FMODF = @HAVE_FMODF@
+HAVE_FMODL = @HAVE_FMODL@
+HAVE_FREXPF = @HAVE_FREXPF@
+HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
 HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@
 HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
 HAVE_GETGROUPS = @HAVE_GETGROUPS@
 HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
@@ -457,6 +809,12 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GLOBAL_SYMBOL_PIPE = @HAVE_GLOBAL_SYMBOL_PIPE@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_HYPOTF = @HAVE_HYPOTF@
+HAVE_HYPOTL = @HAVE_HYPOTL@
+HAVE_ILOGB = @HAVE_ILOGB@
+HAVE_ILOGBF = @HAVE_ILOGBF@
+HAVE_ILOGBL = @HAVE_ILOGBL@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISNAND = @HAVE_ISNAND@
 HAVE_ISNANF = @HAVE_ISNANF@
@@ -464,11 +822,19 @@ HAVE_ISNANL = @HAVE_ISNANL@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
+HAVE_LOG10F = @HAVE_LOG10F@
+HAVE_LOG10L = @HAVE_LOG10L@
+HAVE_LOG1P = @HAVE_LOG1P@
+HAVE_LOG1PF = @HAVE_LOG1PF@
+HAVE_LOG1PL = @HAVE_LOG1PL@
+HAVE_LOGBF = @HAVE_LOGBF@
+HAVE_LOGBL = @HAVE_LOGBL@
+HAVE_LOGF = @HAVE_LOGF@
 HAVE_LOGL = @HAVE_LOGL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -482,24 +848,45 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MODFF = @HAVE_MODFF@
+HAVE_MODFL = @HAVE_MODFL@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POWF = @HAVE_POWF@
 HAVE_PREAD = @HAVE_PREAD@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
 HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_REMAINDER = @HAVE_REMAINDER@
+HAVE_REMAINDERF = @HAVE_REMAINDERF@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_RINT = @HAVE_RINT@
+HAVE_RINTL = @HAVE_RINTL@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SINF = @HAVE_SINF@
+HAVE_SINHF = @HAVE_SINHF@
 HAVE_SINL = @HAVE_SINL@
 HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_SQRTF = @HAVE_SQRTF@
 HAVE_SQRTL = @HAVE_SQRTL@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -520,24 +907,59 @@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_TANF = @HAVE_TANF@
+HAVE_TANHF = @HAVE_TANHF@
 HAVE_TANL = @HAVE_TANL@
-HAVE_TTYNAME_R = @HAVE_TTYNAME_R@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
 HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_VDPRINTF = @HAVE_VDPRINTF@
 HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCHAR_T = @HAVE_WCHAR_T@
+HAVE_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
 HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
 HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
 HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
 HEXVERSION = @HEXVERSION@
+ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
@@ -546,6 +968,8 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 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@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
@@ -559,9 +983,22 @@ LIBS = @LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
+LIBUNISTRING_UNICASE_H = @LIBUNISTRING_UNICASE_H@
+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_UNINAME_H = @LIBUNISTRING_UNINAME_H@
+LIBUNISTRING_UNINORM_H = @LIBUNISTRING_UNINORM_H@
+LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@
+LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWBRK_H = @LIBUNISTRING_UNIWBRK_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+LOCALE_AR = @LOCALE_AR@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
 LOCALE_JA = @LOCALE_JA@
@@ -574,29 +1011,36 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 NAMESPACING = @NAMESPACING@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_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@
+NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
 NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
+NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_ICONV_H = @NEXT_ICONV_H@
+NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
 NEXT_MATH_H = @NEXT_MATH_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
 NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
@@ -615,86 +1059,192 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 RC = @RC@
 RELOCATABLE = @RELOCATABLE@
 REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CBRTF = @REPLACE_CBRTF@
+REPLACE_CBRTL = @REPLACE_CBRTL@
+REPLACE_CEIL = @REPLACE_CEIL@
 REPLACE_CEILF = @REPLACE_CEILF@
 REPLACE_CEILL = @REPLACE_CEILL@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_EXP2 = @REPLACE_EXP2@
+REPLACE_EXP2L = @REPLACE_EXP2L@
+REPLACE_EXPM1 = @REPLACE_EXPM1@
+REPLACE_EXPM1F = @REPLACE_EXPM1F@
+REPLACE_FABSL = @REPLACE_FABSL@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOOR = @REPLACE_FLOOR@
 REPLACE_FLOORF = @REPLACE_FLOORF@
 REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FMA = @REPLACE_FMA@
+REPLACE_FMAF = @REPLACE_FMAF@
+REPLACE_FMAL = @REPLACE_FMAL@
+REPLACE_FMOD = @REPLACE_FMOD@
+REPLACE_FMODF = @REPLACE_FMODF@
+REPLACE_FMODL = @REPLACE_FMODL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
 REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPF = @REPLACE_FREXPF@
 REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETDELIM = @REPLACE_GETDELIM@
+REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@
+REPLACE_HYPOT = @REPLACE_HYPOT@
+REPLACE_HYPOTF = @REPLACE_HYPOTF@
+REPLACE_HYPOTL = @REPLACE_HYPOTL@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_ILOGB = @REPLACE_ILOGB@
+REPLACE_ILOGBF = @REPLACE_ILOGBF@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISFINITE = @REPLACE_ISFINITE@
 REPLACE_ISINF = @REPLACE_ISINF@
 REPLACE_ISNAN = @REPLACE_ISNAN@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LDEXPL = @REPLACE_LDEXPL@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOG = @REPLACE_LOG@
+REPLACE_LOG10 = @REPLACE_LOG10@
+REPLACE_LOG10F = @REPLACE_LOG10F@
+REPLACE_LOG10L = @REPLACE_LOG10L@
+REPLACE_LOG1P = @REPLACE_LOG1P@
+REPLACE_LOG1PF = @REPLACE_LOG1PF@
+REPLACE_LOG1PL = @REPLACE_LOG1PL@
+REPLACE_LOG2 = @REPLACE_LOG2@
+REPLACE_LOG2F = @REPLACE_LOG2F@
+REPLACE_LOG2L = @REPLACE_LOG2L@
+REPLACE_LOGB = @REPLACE_LOGB@
+REPLACE_LOGBF = @REPLACE_LOGBF@
+REPLACE_LOGBL = @REPLACE_LOGBL@
+REPLACE_LOGF = @REPLACE_LOGF@
+REPLACE_LOGL = @REPLACE_LOGL@
 REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MALLOC = @REPLACE_MALLOC@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBTOWC = @REPLACE_MBTOWC@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_MODF = @REPLACE_MODF@
+REPLACE_MODFF = @REPLACE_MODFF@
+REPLACE_MODFL = @REPLACE_MODFL@
 REPLACE_NAN = @REPLACE_NAN@
 REPLACE_NULL = @REPLACE_NULL@
+REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
+REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
+REPLACE_REMAINDER = @REPLACE_REMAINDER@
+REPLACE_REMAINDERF = @REPLACE_REMAINDERF@
+REPLACE_REMAINDERL = @REPLACE_REMAINDERL@
+REPLACE_REMOVE = @REPLACE_REMOVE@
+REPLACE_RENAME = @REPLACE_RENAME@
+REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_ROUND = @REPLACE_ROUND@
 REPLACE_ROUNDF = @REPLACE_ROUNDF@
 REPLACE_ROUNDL = @REPLACE_ROUNDL@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
 REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
 REPLACE_SLEEP = @REPLACE_SLEEP@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_SQRTL = @REPLACE_SQRTL@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
 REPLACE_STRNCAT = @REPLACE_STRNCAT@
 REPLACE_STRNDUP = @REPLACE_STRNDUP@
 REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TRUNC = @REPLACE_TRUNC@
+REPLACE_TRUNCF = @REPLACE_TRUNCF@
 REPLACE_TRUNCL = @REPLACE_TRUNCL@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
 REPLACE_UNSETENV = @REPLACE_UNSETENV@
 REPLACE_USLEEP = @REPLACE_USLEEP@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
 SED = @SED@
@@ -707,17 +1257,21 @@ STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
 TEXI2DVI = @TEXI2DVI@
+UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
+UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 VERSION = @VERSION@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 YIELD_LIB = @YIELD_LIB@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -753,9 +1307,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+lispdir = @lispdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -763,6 +1317,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -788,7 +1343,7 @@ all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
-am--refresh:
+am--refresh: Makefile
        @:
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
@@ -824,10 +1379,8 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-       @if test ! -f $@; then \
-         rm -f stamp-h1; \
-         $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
-       else :; fi
+       @if test ! -f $@; then rm -f stamp-h1; else :; fi
+       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
        @rm -f stamp-h1
@@ -854,22 +1407,25 @@ distclean-libtool:
        -rm -f libtool config.lt
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
          echo "Making $$target in $$subdir"; \
          if test "$$subdir" = "."; then \
            dot_seen=yes; \
@@ -884,57 +1440,12 @@ $(RECURSIVE_TARGETS):
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
-       dot_seen=no; \
-       case "$@" in \
-         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-         *) list='$(SUBDIRS)' ;; \
-       esac; \
-       rev=''; for subdir in $$list; do \
-         if test "$$subdir" = "."; then :; else \
-           rev="$$subdir $$rev"; \
-         fi; \
-       done; \
-       rev="$$rev ."; \
-       target=`echo $@ | sed s/-recursive//`; \
-       for subdir in $$rev; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
-       done && test -z "$$fail"
-tags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-       done
-ctags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-       done
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -950,12 +1461,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
              set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
-       list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -967,15 +1473,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -984,9 +1486,31 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+       test ! -s cscope.files \
+         || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+       -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+       -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 
 distdir: $(DISTFILES)
        $(am__remove_distdir)
@@ -1022,13 +1546,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
@@ -1057,36 +1578,35 @@ distdir: $(DISTFILES)
        || chmod -R a+r "$(distdir)"
 dist-gzip: distdir
        tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-bzip2: distdir
-       tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
-       $(am__remove_distdir)
-
-dist-lzma: distdir
-       tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-       $(am__remove_distdir)
+       tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+       $(am__post_remove_distdir)
 
+dist-lzip: distdir
+       tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+       $(am__post_remove_distdir)
 dist-xz: distdir
-       tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
-       $(am__remove_distdir)
+       tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+       $(am__post_remove_distdir)
 
 dist-tarZ: distdir
        tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-shar: distdir
        shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-zip: distdir
        -rm -f $(distdir).zip
        zip -rq $(distdir).zip $(distdir)
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
-dist dist-all: distdir
-       tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-       $(am__remove_distdir)
+dist dist-all:
+       $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+       $(am__post_remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
 # it guarantees that the distribution is self-contained by making another
@@ -1097,8 +1617,8 @@ distcheck: dist
          GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
        *.tar.bz2*) \
          bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-       *.tar.lzma*) \
-         lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+       *.tar.lz*) \
+         lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
        *.tar.xz*) \
          xz -dc $(distdir).tar.xz | $(am__untar) ;;\
        *.tar.Z*) \
@@ -1108,9 +1628,9 @@ distcheck: dist
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
-       chmod -R a-w $(distdir); chmod a+w $(distdir)
-       mkdir $(distdir)/_build
-       mkdir $(distdir)/_inst
+       chmod -R a-w $(distdir)
+       chmod u+w $(distdir)
+       mkdir $(distdir)/_build $(distdir)/_inst
        chmod a-w $(distdir)
        test -d $(distdir)/_build || exit 0; \
        dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
@@ -1118,6 +1638,7 @@ distcheck: dist
          && am__cwd=`pwd` \
          && $(am__cd) $(distdir)/_build \
          && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+           $(AM_DISTCHECK_CONFIGURE_FLAGS) \
            $(DISTCHECK_CONFIGURE_FLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -1141,13 +1662,21 @@ distcheck: dist
          && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
          && cd "$$am__cwd" \
          || exit 1
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
        @(echo "$(distdir) archives ready for distribution: "; \
          list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
          sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-       @$(am__cd) '$(distuninstallcheck_dir)' \
-       && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+       @test -n '$(distuninstallcheck_dir)' || { \
+         echo 'ERROR: trying to run $@ with an empty' \
+              '$$(distuninstallcheck_dir)' >&2; \
+         exit 1; \
+       }; \
+       $(am__cd) '$(distuninstallcheck_dir)' || { \
+         echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+         exit 1; \
+       }; \
+       test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
           || { echo "ERROR: files left after uninstall:" ; \
                if test -n "$(DESTDIR)"; then \
                  echo "  (check DESTDIR support)"; \
@@ -1178,10 +1707,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1263,24 +1797,24 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
-       ctags-recursive install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-       all all-am am--refresh check check-am clean clean-generic \
-       clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
-       dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
-       distcheck distclean distclean-generic distclean-hdr \
-       distclean-libtool distclean-tags distcleancheck distdir \
-       distuninstallcheck dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       installdirs-am maintainer-clean maintainer-clean-generic \
-       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-       ps ps-am tags tags-recursive uninstall uninstall-am
+.MAKE: $(am__recursive_targets) all install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+       am--refresh check check-am clean clean-cscope clean-generic \
+       clean-libtool cscope cscopelist-am ctags ctags-am dist \
+       dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
+       dist-xz dist-zip distcheck distclean distclean-generic \
+       distclean-hdr distclean-libtool distclean-tags distcleancheck \
+       distdir distuninstallcheck dvi dvi-am html html-am info \
+       info-am install install-am install-data install-data-am \
+       install-dvi install-dvi-am install-exec install-exec-am \
+       install-html install-html-am install-info install-info-am \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+       uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/NEWS b/NEWS
index 72e79cc..fbcc453 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,62 @@
+New in 0.9.4:
+* The data tables and line breaking algorithm have been updated to Unicode
+  version 6.0.0.
+* A new include file unigbrk.h is provided. It declares functions for
+  grapheme cluster breaking, that is, determining the boundaries between
+  graphemes. See the documentation chapter "Grapheme cluster breaks in strings"
+  for details.
+* In the include file unictype.h, constants are defined for the group of
+  general categories LC ("Cased Letter").
+* In the include file unictype.h, functions for associating canonical
+  combining classes with names have been added:
+    uc_combining_class_name
+    uc_combining_class_long_name
+    uc_combining_class_byname
+* In the include file unictype.h, functions for the Arabic joining type and
+  the Arabic joining group have been added:
+    uc_joining_type_name
+    uc_joining_type_long_name
+    uc_joining_type_byname
+    uc_joining_type
+    uc_joining_group_name
+    uc_joining_group_byname
+    uc_joining_group
+* In the include file unictype.h, functions for new predefined properties
+  have been added:
+    uc_is_property_cased
+    uc_is_property_case_ignorable
+    uc_is_property_changes_when_lowercased
+    uc_is_property_changes_when_uppercased
+    uc_is_property_changes_when_titlecased
+    uc_is_property_changes_when_casefolded
+    uc_is_property_changes_when_casemapped
+  But it's recommended to use the case mapping functions from unicase.h
+  instead.
+* In the include file unictype.h, the functions for bidi class, formerly known
+  as bidirectional category, have been renamed:
+    uc_bidi_category_name   -> uc_bidi_class_name
+    uc_bidi_category_byname -> uc_bidi_class_byname
+    uc_bidi_category        -> uc_bidi_class
+    uc_is_bidi_category     -> uc_is_bidi_class
+  The old function names still exist, but are obsolete.
+* In the include file unictype.h, functions for returning long names of
+  property values have been added:
+    uc_general_category_long_name
+    uc_bidi_class_long_name
+  The functions
+    uc_general_category_byname
+    uc_bidi_class_byname
+  have been extended to recognize long names as well as short names.
+* It is now easier to detect the subminor version: The value of the variable
+  _libunistring_version and of the macro _LIBUNISTRING_VERSION now includes
+  also the subminor version.
+* The functions u8_mbtouc and u8_mbtouc_unsafe now handle ill-formed UTF-8
+  input in a better way, that is more compliant with W3C recommendations.
+* The functions u8_strcoll, u16_strcoll, u32_strcoll now produce results that
+  are less dependent on the iconv implementation in use.
+* The functions u8_strstr, u16_strstr, u32_strstr now perform in O(n) time
+  worst-case, where n is the sum of the lengths of the argument strings.
+
 New in 0.9.3:
 * Bug fixes in unistr.h functions:
   - The functions u16_to_u32, u16_to_u8, u8_to_u32, u8_to_u16 now fail when
diff --git a/README b/README
index c52e56d..ef11e3f 100644 (file)
--- a/README
+++ b/README
@@ -11,6 +11,7 @@ It consists of the following parts:
   uniname.h    character names
   unictype.h   character classification and properties
   uniwidth.h   string width when using nonproportional fonts
+  unigbrk.h    grapheme cluster breaks
   uniwbrk.h    word breaks
   unilbrk.h    line breaking algorithm
   uninorm.h    normalization (composition and decomposition)
@@ -53,7 +54,7 @@ The documentation is under another license; see in the documentation.
 Download
 --------
 
-    http://ftp.gnu.org/gnu/libunistring/libunistring-0.9.3.tar.gz
+    http://ftp.gnu.org/gnu/libunistring/libunistring-0.9.4.tar.gz
 
 Homepage
 --------
index 49f5796..3908ea3 100644 (file)
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.13.4 -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-
-# serial 52 AC_PROG_LIBTOOL
-
-
-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
-# -----------------------------------------------------------
-# If this macro is not defined by Autoconf, define it here.
-m4_ifdef([AC_PROVIDE_IFELSE],
-         [],
-         [m4_define([AC_PROVIDE_IFELSE],
-                [m4_ifdef([AC_PROVIDE_$1],
-                          [$2], [$3])])])
-
-
-# AC_PROG_LIBTOOL
-# ---------------
-AC_DEFUN([AC_PROG_LIBTOOL],
-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
-  AC_PROVIDE_IFELSE([AC_PROG_CXX],
-    [AC_LIBTOOL_CXX],
-    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
-  ])])
-dnl And a similar setup for Fortran 77 support
-  AC_PROVIDE_IFELSE([AC_PROG_F77],
-    [AC_LIBTOOL_F77],
-    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
-])])
-
-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
-  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-    [AC_LIBTOOL_GCJ],
-    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-      [AC_LIBTOOL_GCJ],
-      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
-       [AC_LIBTOOL_GCJ],
-      [ifdef([AC_PROG_GCJ],
-            [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([A][M_PROG_GCJ],
-            [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([LT_AC_PROG_GCJ],
-            [define([LT_AC_PROG_GCJ],
-               defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
-])])# AC_PROG_LIBTOOL
-
-
-# _AC_PROG_LIBTOOL
-# ----------------
-AC_DEFUN([_AC_PROG_LIBTOOL],
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-# Prevent multiple expansion
-define([AC_PROG_LIBTOOL], [])
-])# _AC_PROG_LIBTOOL
-
-
-# AC_LIBTOOL_SETUP
-# ----------------
-AC_DEFUN([AC_LIBTOOL_SETUP],
-[AC_PREREQ(2.50)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-
-AC_REQUIRE([AC_PROG_LN_S])dnl
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-AC_REQUIRE([AC_OBJEXT])dnl
-AC_REQUIRE([AC_EXEEXT])dnl
-dnl
-AC_LIBTOOL_SYS_MAX_CMD_LEN
-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-AC_LIBTOOL_OBJDIR
-
-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-_LT_AC_PROG_ECHO_BACKSLASH
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
-
-# Same as above, but do not quote variable references.
-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-AC_CHECK_TOOL(AR, ar, false)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip, :)
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    AC_PATH_MAGIC
-  fi
-  ;;
-esac
-
-_LT_REQUIRED_DARWIN_CHECKS
-
-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-enable_win32_dll=yes, enable_win32_dll=no)
-
-AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-       [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-AC_ARG_WITH([pic],
-    [AC_HELP_STRING([--with-pic],
-       [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
-    [pic_mode=default])
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-AC_LIBTOOL_LANG_C_CONFIG
-_LT_AC_TAGCONFIG
-])# AC_LIBTOOL_SETUP
-
-
-# _LT_AC_SYS_COMPILER
-# -------------------
-AC_DEFUN([_LT_AC_SYS_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_AC_SYS_COMPILER
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
-AC_DEFUN([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
-  case $cc_temp in
-    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-])
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-AC_DEFUN([_LT_COMPILER_BOILERPLATE],
-[AC_REQUIRE([LT_AC_PROG_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$rm conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-AC_DEFUN([_LT_LINKER_BOILERPLATE],
-[AC_REQUIRE([LT_AC_PROG_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# --------------------------
-# Check for some things on darwin
-AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS],[
-  case $host_os in
-    rhapsody* | darwin*)
-    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
-    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
-
-    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
-      [lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-   # By default we will add the -single_module flag. You can override
-   # by either setting the environment variable LT_MULTI_MODULE
-   # non-empty at configure time, or by adding -multi_module to the
-   # link flags.
-   echo "int foo(void){return 1;}" > conftest.c
-   $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-     -dynamiclib ${wl}-single_module conftest.c
-   if test -f libconftest.dylib; then
-     lt_cv_apple_cc_single_mod=yes
-     rm -rf libconftest.dylib*
-   fi
-   rm conftest.c
-      fi])
-    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
-      [lt_cv_ld_exported_symbols_list],
-      [lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-   [lt_cv_ld_exported_symbols_list=yes],
-   [lt_cv_ld_exported_symbols_list=no])
-   LDFLAGS="$save_LDFLAGS"
-    ])
-    case $host_os in
-    rhapsody* | darwin1.[[0123]])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*)
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-   10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-   10.[[012]]*)
-     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-   10.*)
-     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
-    fi
-    if test "$DSYMUTIL" != ":"; then
-      _lt_dsymutil="~$DSYMUTIL \$lib || :"
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-])
-
-# _LT_AC_SYS_LIBPATH_AIX
-# ----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
-[AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-])# _LT_AC_SYS_LIBPATH_AIX
-
-
-# _LT_AC_SHELL_INIT(ARG)
-# ----------------------
-AC_DEFUN([_LT_AC_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-            [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-        [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_AC_SHELL_INIT
-
-
-# _LT_AC_PROG_ECHO_BACKSLASH
-# --------------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
-[_LT_AC_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-[$]*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string=`eval $cmd`) 2>/dev/null &&
-       echo_test_string=`eval $cmd` &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for dir in $PATH /usr/ucb; do
-    IFS="$lt_save_ifs"
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-        test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-        echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-        test "X$echo_testing_string" = "X$echo_test_string"; then
-       # Cool, printf works
-       :
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-       export CONFIG_SHELL
-       SHELL="$CONFIG_SHELL"
-       export SHELL
-       echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      else
-       # maybe with a smaller string...
-       prev=:
-
-       for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-         if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-         then
-           break
-         fi
-         prev="$cmd"
-       done
-
-       if test "$prev" != 'sed 50q "[$]0"'; then
-         echo_test_string=`eval $prev`
-         export echo_test_string
-         exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-       else
-         # Oops.  We lost completely, so just stick with echo.
-         echo=echo
-       fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(ECHO)
-])])# _LT_AC_PROG_ECHO_BACKSLASH
-
-
-# _LT_AC_LOCK
-# -----------
-AC_DEFUN([_LT_AC_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-       [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *ELF-32*)
-      HPUX_IA64_MODE="32"
-      ;;
-    *ELF-64*)
-      HPUX_IA64_MODE="64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-   if test "$lt_cv_prog_gnu_ld" = yes; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -melf32bsmip"
-      ;;
-    *N32*)
-      LD="${LD-ld} -melf32bmipn32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -melf64bmip"
-      ;;
-    esac
-   else
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-   fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-    *32-bit*)
-      case $host in
-        x86_64-*kfreebsd*-gnu)
-          LD="${LD-ld} -m elf_i386_fbsd"
-          ;;
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_i386"
-          ;;
-        ppc64-*linux*|powerpc64-*linux*)
-          LD="${LD-ld} -m elf32ppclinux"
-          ;;
-        s390x-*linux*)
-          LD="${LD-ld} -m elf_s390"
-          ;;
-        sparc64-*linux*)
-          LD="${LD-ld} -m elf32_sparc"
-          ;;
-      esac
-      ;;
-    *64-bit*)
-      case $host in
-        x86_64-*kfreebsd*-gnu)
-          LD="${LD-ld} -m elf_x86_64_fbsd"
-          ;;
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        ppc*-*linux*|powerpc*-*linux*)
-          LD="${LD-ld} -m elf64ppc"
-          ;;
-        s390*-*linux*)
-          LD="${LD-ld} -m elf64_s390"
-          ;;
-        sparc*-*linux*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-sparc*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)
-        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-         LD="${LD-ld} -64"
-       fi
-       ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-  ])
-esac
-
-need_locks="$enable_libtool_lock"
-
-])# _LT_AC_LOCK
-
-
-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#              [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
-[AC_REQUIRE([LT_AC_PROG_SED])
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$5], , :, [$5])
-else
-    ifelse([$6], , :, [$6])
-fi
-])# AC_LIBTOOL_COMPILER_OPTION
-
-
-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                          [ACTION-SUCCESS], [ACTION-FAILURE])
-# ------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
-[AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         $2=yes
-       fi
-     else
-       $2=yes
-     fi
-   fi
-   $rm -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$4], , :, [$4])
-else
-    ifelse([$5], , :, [$5])
-fi
-])# AC_LIBTOOL_LINKER_OPTION
-
-
-# AC_LIBTOOL_SYS_MAX_CMD_LEN
-# --------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
-[# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536      # usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[       ]]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
-              = "XX$teststring") >/dev/null 2>&1 &&
-             new_result=`expr "X$teststring" : ".*" 2>&1` &&
-             lt_cv_sys_max_cmd_len=$new_result &&
-             test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on massive
-      # amounts of additional arguments before passing them to the linker.
-      # It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-])# AC_LIBTOOL_SYS_MAX_CMD_LEN
-
-
-# _LT_AC_CHECK_DLFCN
-# ------------------
-AC_DEFUN([_LT_AC_CHECK_DLFCN],
-[AC_CHECK_HEADERS(dlfcn.h)dnl
-])# _LT_AC_CHECK_DLFCN
-
-
-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ---------------------------------------------------------------------
-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-    exit (status);
-}]
-EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_dlunknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_AC_TRY_DLOPEN_SELF
-
-
-# AC_LIBTOOL_DLOPEN_SELF
-# ----------------------
-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-   ;;
-
-  *)
-    AC_CHECK_FUNC([shl_load],
-         [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-           [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
-       [AC_CHECK_FUNC([dlopen],
-             [lt_cv_dlopen="dlopen"],
-         [AC_CHECK_LIB([dl], [dlopen],
-               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-           [AC_CHECK_LIB([svld], [dlopen],
-                 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-             [AC_CHECK_LIB([dld], [dld_link],
-                   [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
-             ])
-           ])
-         ])
-       ])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-         lt_cv_dlopen_self, [dnl
-         _LT_AC_TRY_DLOPEN_SELF(
-           lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-           lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-         lt_cv_dlopen_self_static, [dnl
-         _LT_AC_TRY_DLOPEN_SELF(
-           lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-           lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-])# AC_LIBTOOL_DLOPEN_SELF
-
-
-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
-# ---------------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler
-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
-[AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w . 2>&AS_MESSAGE_LOG_FD
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-])
-])# AC_LIBTOOL_PROG_CC_C_O
-
-
-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
-# -----------------------------------------
-# Check to see if we can do hard links to lock some files if needed
-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
-[AC_REQUIRE([_LT_AC_LOCK])dnl
-
-hard_links="nottested"
-if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
-
-
-# AC_LIBTOOL_OBJDIR
-# -----------------
-AC_DEFUN([AC_LIBTOOL_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-])# AC_LIBTOOL_OBJDIR
-
-
-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
-# ----------------------------------------------
-# Check hardcoding attributes.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_AC_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
-   test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
-   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_AC_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
-
-
-# AC_LIBTOOL_SYS_LIB_STRIP
-# ------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
-[striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         old_striplib="$STRIP -S"
-         AC_MSG_RESULT([yes])
-       else
-  AC_MSG_RESULT([no])
-fi
-       ;;
-   *)
-  AC_MSG_RESULT([no])
-    ;;
-  esac
-fi
-])# AC_LIBTOOL_SYS_LIB_STRIP
-
-
-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-m4_if($1,[],[
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-       lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
-  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
-  sys_lib_search_path_spec=`echo $lt_search_path_spec`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[[4-9]]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-          echo ' yes '
-          echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-       :
-      else
-       can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[[45]]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-  m4_if([$1], [],[
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) 
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[[123]]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
-  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-interix[[3-9]]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-       if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       else
-               version_type=irix
-       fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[         ]*hwcap[        ]/d;s/[:,       ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
-    *)                         need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-    shlibpath_overrides_runpath=no
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    shlibpath_overrides_runpath=yes
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-       ;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-AC_CACHE_VAL([lt_cv_sys_lib_search_path_spec],
-[lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"])
-sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-AC_CACHE_VAL([lt_cv_sys_lib_dlsearch_path_spec],
-[lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"])
-sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-
-
-# _LT_AC_TAGCONFIG
-# ----------------
-AC_DEFUN([_LT_AC_TAGCONFIG],
-[AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_ARG_WITH([tags],
-    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
-        [include additional configurations @<:@automatic@:>@])],
-    [tagnames="$withval"])
-
-if test -f "$ltmain" && test -n "$tagnames"; then
-  if test ! -f "${ofile}"; then
-    AC_MSG_WARN([output file `$ofile' does not exist])
-  fi
-
-  if test -z "$LTCC"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
-    if test -z "$LTCC"; then
-      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
-    else
-      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
-    fi
-  fi
-  if test -z "$LTCFLAGS"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
-  fi
-
-  # Extract list of available tagged configurations in $ofile.
-  # Note that this assumes the entire list is on one line.
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-  for tagname in $tagnames; do
-    IFS="$lt_save_ifs"
-    # Check whether tagname contains only valid characters
-    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
-    "") ;;
-    *)  AC_MSG_ERROR([invalid tag name: $tagname])
-       ;;
-    esac
-
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
-    then
-      AC_MSG_ERROR([tag name \"$tagname\" already exists])
-    fi
-
-    # Update the list of available tags.
-    if test -n "$tagname"; then
-      echo appending configuration tag \"$tagname\" to $ofile
-
-      case $tagname in
-      CXX)
-       if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-           ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-           (test "X$CXX" != "Xg++"))) ; then
-         AC_LIBTOOL_LANG_CXX_CONFIG
-       else
-         tagname=""
-       fi
-       ;;
-
-      F77)
-       if test -n "$F77" && test "X$F77" != "Xno"; then
-         AC_LIBTOOL_LANG_F77_CONFIG
-       else
-         tagname=""
-       fi
-       ;;
-
-      GCJ)
-       if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-         AC_LIBTOOL_LANG_GCJ_CONFIG
-       else
-         tagname=""
-       fi
-       ;;
-
-      RC)
-       AC_LIBTOOL_LANG_RC_CONFIG
-       ;;
-
-      *)
-       AC_MSG_ERROR([Unsupported tag name: $tagname])
-       ;;
-      esac
-
-      # Append the new tag name to the list of available tags.
-      if test -n "$tagname" ; then
-      available_tags="$available_tags $tagname"
-    fi
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  # Now substitute the updated list of available tags.
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
-    mv "${ofile}T" "$ofile"
-    chmod +x "$ofile"
-  else
-    rm -f "${ofile}T"
-    AC_MSG_ERROR([unable to update list of available tagged configurations.])
-  fi
-fi
-])# _LT_AC_TAGCONFIG
-
-
-# AC_LIBTOOL_DLOPEN
-# -----------------
-# enable checks for dlopen support
-AC_DEFUN([AC_LIBTOOL_DLOPEN],
- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_DLOPEN
-
-
-# AC_LIBTOOL_WIN32_DLL
-# --------------------
-# declare package support for building win32 DLLs
-AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_WIN32_DLL
-
-
-# AC_ENABLE_SHARED([DEFAULT])
-# ---------------------------
-# implement the --enable-shared flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_SHARED],
-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([shared],
-    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-       [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_shared=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
-])# AC_ENABLE_SHARED
-
-
-# AC_DISABLE_SHARED
-# -----------------
-# set the default shared flag to --disable-shared
-AC_DEFUN([AC_DISABLE_SHARED],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)
-])# AC_DISABLE_SHARED
-
-
-# AC_ENABLE_STATIC([DEFAULT])
-# ---------------------------
-# implement the --enable-static flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_STATIC],
-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([static],
-    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-       [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_static=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
-])# AC_ENABLE_STATIC
-
-
-# AC_DISABLE_STATIC
-# -----------------
-# set the default static flag to --disable-static
-AC_DEFUN([AC_DISABLE_STATIC],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)
-])# AC_DISABLE_STATIC
-
-
-# AC_ENABLE_FAST_INSTALL([DEFAULT])
-# ---------------------------------
-# implement the --enable-fast-install flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_FAST_INSTALL],
-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([fast-install],
-    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-       IFS="$lt_save_ifs"
-       if test "X$pkg" = "X$p"; then
-         enable_fast_install=yes
-       fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
-])# AC_ENABLE_FAST_INSTALL
-
-
-# AC_DISABLE_FAST_INSTALL
-# -----------------------
-# set the default to --disable-fast-install
-AC_DEFUN([AC_DISABLE_FAST_INSTALL],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)
-])# AC_DISABLE_FAST_INSTALL
-
-
-# AC_LIBTOOL_PICMODE([MODE])
-# --------------------------
-# implement the --with-pic flag
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-AC_DEFUN([AC_LIBTOOL_PICMODE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-pic_mode=ifelse($#,1,$1,default)
-])# AC_LIBTOOL_PICMODE
-
-
-# AC_PROG_EGREP
-# -------------
-# This is predefined starting with Autoconf 2.54, so this conditional
-# definition can be removed once we require Autoconf 2.54 or later.
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
-   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
-    fi])
- EGREP=$ac_cv_prog_egrep
- AC_SUBST([EGREP])
-])])
-
-
-# AC_PATH_TOOL_PREFIX
-# -------------------
-# find a file program which can recognize shared library
-AC_DEFUN([AC_PATH_TOOL_PREFIX],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="ifelse([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-       case $deplibs_check_method in
-       "file_magic "*)
-         file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-           $EGREP "$file_magic_regex" > /dev/null; then
-           :
-         else
-           cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-         fi ;;
-       esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-])# AC_PATH_TOOL_PREFIX
-
-
-# AC_PATH_MAGIC
-# -------------
-# find a file program which can recognize a shared library
-AC_DEFUN([AC_PATH_MAGIC],
-[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# AC_PATH_MAGIC
-
-
-# AC_PROG_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([AC_PROG_LD],
-[AC_ARG_WITH([gnu-ld],
-    [AC_HELP_STRING([--with-gnu-ld],
-       [assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])
-AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break
-       ;;
-      *)
-       test "$with_gnu_ld" != yes && break
-       ;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])# AC_PROG_LD
-
-
-# AC_PROG_LD_GNU
-# --------------
-AC_DEFUN([AC_PROG_LD_GNU],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# AC_PROG_LD_GNU
-
-
-# AC_PROG_LD_RELOAD_FLAG
-# ----------------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-])# AC_PROG_LD_RELOAD_FLAG
-
-
-# AC_DEPLIBS_CHECK_METHOD
-# -----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[[45]]*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[[3-9]]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-nto-qnx*)
-  lt_cv_deplibs_check_method=unknown
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-])# AC_DEPLIBS_CHECK_METHOD
-
-
-# AC_PROG_NM
-# ----------
-# find the pathname to a BSD-compatible name lister
-AC_DEFUN([AC_PROG_NM],
-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-       # Check to see if the nm accepts a BSD-compat flag.
-       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-       #   nm: unknown option "B" ignored
-       # Tru64's nm complains that /dev/null is an invalid object file
-       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-       */dev/null* | *'Invalid file or object type'*)
-         lt_cv_path_NM="$tmp_nm -B"
-         break
-         ;;
-       *)
-         case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-         */dev/null*)
-           lt_cv_path_NM="$tmp_nm -p"
-           break
-           ;;
-         *)
-           lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-           continue # so that we can try to find one that supports BSD flags
-           ;;
-         esac
-         ;;
-       esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi])
-NM="$lt_cv_path_NM"
-])# AC_PROG_NM
-
-
-# AC_CHECK_LIBM
-# -------------
-# check for math library
-AC_DEFUN([AC_CHECK_LIBM],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-])# AC_CHECK_LIBM
-
-
-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl convenience library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-convenience to the configure arguments.  Note that
-# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
-# it is assumed to be `libltdl'.  LIBLTDL will be prefixed with
-# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/'
-# (note the single quotes!).  If your package is not flat and you're not
-# using automake, define top_builddir and top_srcdir appropriately in
-# the Makefiles.
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  case $enable_ltdl_convenience in
-  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
-  "") enable_ltdl_convenience=yes
-      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
-  esac
-  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
-  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_CONVENIENCE
-
-
-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl installable library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-install to the configure arguments.  Note that
-# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
-# and an installed libltdl is not found, it is assumed to be `libltdl'.
-# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with
-# '${top_srcdir}/' (note the single quotes!).  If your package is not
-# flat and you're not using automake, define top_builddir and top_srcdir
-# appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  AC_CHECK_LIB(ltdl, lt_dlinit,
-  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
-  [if test x"$enable_ltdl_install" = xno; then
-     AC_MSG_WARN([libltdl not installed, but installation disabled])
-   else
-     enable_ltdl_install=yes
-   fi
-  ])
-  if test x"$enable_ltdl_install" = x"yes"; then
-    ac_configure_args="$ac_configure_args --enable-ltdl-install"
-    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
-    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  else
-    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
-    LIBLTDL="-lltdl"
-    LTDLINCL=
-  fi
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_INSTALLABLE
-
-
-# AC_LIBTOOL_CXX
-# --------------
-# enable support for C++ libraries
-AC_DEFUN([AC_LIBTOOL_CXX],
-[AC_REQUIRE([_LT_AC_LANG_CXX])
-])# AC_LIBTOOL_CXX
-
-
-# _LT_AC_LANG_CXX
-# ---------------
-AC_DEFUN([_LT_AC_LANG_CXX],
-[AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([_LT_AC_PROG_CXXCPP])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
-])# _LT_AC_LANG_CXX
-
-# _LT_AC_PROG_CXXCPP
-# ------------------
-AC_DEFUN([_LT_AC_PROG_CXXCPP],
-[
-AC_REQUIRE([AC_PROG_CXX])
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  AC_PROG_CXXCPP
-fi
-])# _LT_AC_PROG_CXXCPP
-
-# AC_LIBTOOL_F77
-# --------------
-# enable support for Fortran 77 libraries
-AC_DEFUN([AC_LIBTOOL_F77],
-[AC_REQUIRE([_LT_AC_LANG_F77])
-])# AC_LIBTOOL_F77
-
-
-# _LT_AC_LANG_F77
-# ---------------
-AC_DEFUN([_LT_AC_LANG_F77],
-[AC_REQUIRE([AC_PROG_F77])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
-])# _LT_AC_LANG_F77
-
-
-# AC_LIBTOOL_GCJ
-# --------------
-# enable support for GCJ libraries
-AC_DEFUN([AC_LIBTOOL_GCJ],
-[AC_REQUIRE([_LT_AC_LANG_GCJ])
-])# AC_LIBTOOL_GCJ
-
-
-# _LT_AC_LANG_GCJ
-# ---------------
-AC_DEFUN([_LT_AC_LANG_GCJ],
-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
-    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
-      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
-        [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
-          [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
-])# _LT_AC_LANG_GCJ
-
-
-# AC_LIBTOOL_RC
-# -------------
-# enable support for Windows resource files
-AC_DEFUN([AC_LIBTOOL_RC],
-[AC_REQUIRE([LT_AC_PROG_RC])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
-])# AC_LIBTOOL_RC
-
-
-# AC_LIBTOOL_LANG_C_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
-AC_DEFUN([_LT_AC_LANG_C_CONFIG],
-[lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_AC_SYS_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF
-
-# Report which library types will actually be built
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case $host_os in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-
-aix[[4-9]]*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-    ;;
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_C_CONFIG
-
-
-# AC_LIBTOOL_LANG_CXX_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
-[AC_LANG_PUSH(C++)
-AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([_LT_AC_PROG_CXXCPP])
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Dependencies to place before and after the object being linked:
-_LT_AC_TAGVAR(predep_objects, $1)=
-_LT_AC_TAGVAR(postdep_objects, $1)=
-_LT_AC_TAGVAR(predeps, $1)=
-_LT_AC_TAGVAR(postdeps, $1)=
-_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
-_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
-  $as_unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
-  lt_cv_path_LD=$lt_cv_path_LDCXX
-else
-  $as_unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-else
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-fi
-
-if test "$GXX" = yes; then
-  # Set up default GNU C++ configuration
-
-  AC_PROG_LD
-
-  # Check if GNU C++ uses GNU ld as the underlying linker, since the
-  # archiving commands below assume that GNU ld is being used.
-  if test "$with_gnu_ld" = yes; then
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-    #     investigate it a little bit more. (MM)
-    wlarc='${wl}'
-
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
-       grep 'no-whole-archive' > /dev/null; then
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    with_gnu_ld=no
-    wlarc=
-
-    # A generic and very simple default shared library creation
-    # command for GNU C++ for the case where it uses the native
-    # linker, instead of GNU ld.  If possible, this setting should
-    # overridden to take advantage of the native linker features on
-    # the platform it is being used on.
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-  fi
-
-  # Commands to make compiler produce verbose output that lists
-  # what "hidden" libraries, object files and flags are used when
-  # linking a shared library.
-  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
-  GXX=no
-  with_gnu_ld=no
-  wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-case $host_os in
-  aix3*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  aix[[4-9]]*)
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      aix_use_runtimelinking=no
-
-      # Test if we are trying to use run time linking or normal
-      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-      # need to do runtime linking.
-      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-       for ld_flag in $LDFLAGS; do
-         case $ld_flag in
-         *-brtl*)
-           aix_use_runtimelinking=yes
-           break
-           ;;
-         esac
-       done
-       ;;
-      esac
-
-      exp_sym_flag='-bexport'
-      no_entry_flag='-bnoentry'
-    fi
-
-    # When large executables or shared objects are built, AIX ld can
-    # have problems creating the table of contents.  If linking a library
-    # or program results in "error TOC overflow" add -mminimal-toc to
-    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-    _LT_AC_TAGVAR(archive_cmds, $1)=''
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-    if test "$GXX" = yes; then
-      case $host_os in aix4.[[012]]|aix4.[[012]].*)
-      # We only want to do this on AIX 4.2 and lower, the check
-      # below for broken collect2 doesn't work under 4.3+
-       collect2name=`${CC} -print-prog-name=collect2`
-       if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-       then
-         # We have reworked collect2
-         :
-       else
-         # We have old collect2
-         _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-       fi
-       ;;
-      esac
-      shared_flag='-shared'
-      if test "$aix_use_runtimelinking" = yes; then
-       shared_flag="$shared_flag "'${wl}-G'
-      fi
-    else
-      # not using gcc
-      if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-       shared_flag='-G'
-      else
-       if test "$aix_use_runtimelinking" = yes; then
-         shared_flag='${wl}-G'
-       else
-         shared_flag='${wl}-bM:SRE'
-       fi
-      fi
-    fi
-
-    # It seems that -bexpall does not export symbols beginning with
-    # underscore (_), so it is better to generate a list of symbols to export.
-    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-    if test "$aix_use_runtimelinking" = yes; then
-      # Warning - without using the other runtime loading flags (-brtl),
-      # -berok will link without error, but may produce a broken library.
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-      # Determine the default libpath from the value encoded in an empty executable.
-      _LT_AC_SYS_LIBPATH_AIX
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-     else
-      if test "$host_cpu" = ia64; then
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-      else
-       # Determine the default libpath from the value encoded in an empty executable.
-       _LT_AC_SYS_LIBPATH_AIX
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-       # Warning - without using the other run time loading flags,
-       # -berok will link without error, but may produce a broken library.
-       _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-       # Exported symbols can be pulled into shared objects from archives
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-       _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-       # This is similar to how AIX traditionally builds its shared libraries.
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-      fi
-    fi
-    ;;
-
-  beos*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-      # support --undefined.  This deserves some investigation.  FIXME
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-    ;;
-
-  chorus*)
-    case $cc_basename in
-      *)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-    esac
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-    # as there is no search path for DLLs.
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-    _LT_AC_TAGVAR(always_export_symbols, $1)=no
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      # If the export-symbols file already is a .def file (1st line
-      # is EXPORTS), use it as is; otherwise, prepend...
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-       cp $export_symbols $output_objdir/$soname.def;
-      else
-       echo EXPORTS > $output_objdir/$soname.def;
-       cat $export_symbols >> $output_objdir/$soname.def;
-      fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-  ;;
-      darwin* | rhapsody*)
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
-      if test "$GXX" = yes ; then
-      output_verbose_link_cmd='echo'
-      _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-      _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-      _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-      if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-        _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
-      fi
-      else
-      case $cc_basename in
-        xlc*)
-         output_verbose_link_cmd='echo'
-          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
-          _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no
-          ;;
-      esac
-      fi
-        ;;
-
-  dgux*)
-    case $cc_basename in
-      ec++*)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      ghcx*)
-       # Green Hills C++ Compiler
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-    esac
-    ;;
-  freebsd[[12]]*)
-    # C++ shared libraries reported to be fairly broken before switch to ELF
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  freebsd-elf*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  freebsd* | dragonfly*)
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-    # conventions
-    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-    ;;
-  gnu*)
-    ;;
-  hpux9*)
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-                               # but as the default
-                               # location of the library.
-
-    case $cc_basename in
-    CC*)
-      # FIXME: insert proper C++ library support
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    aCC*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      #
-      # There doesn't appear to be a way to prevent this compiler from
-      # explicitly linking system object files so we need to strip them
-      # from the output so that they don't get included in the library
-      # dependencies.
-      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-      ;;
-    *)
-      if test "$GXX" = yes; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-        # FIXME: insert proper C++ library support
-        _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-    ;;
-  hpux10*|hpux11*)
-    if test $with_gnu_ld = no; then
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-      case $host_cpu in
-      hppa*64*|ia64*) ;;
-      *)
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        ;;
-      esac
-    fi
-    case $host_cpu in
-    hppa*64*|ia64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-    *)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-                                             # but as the default
-                                             # location of the library.
-      ;;
-    esac
-
-    case $cc_basename in
-      CC*)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      aCC*)
-       case $host_cpu in
-       hppa*64*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-         ;;
-       ia64*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-         ;;
-       *)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-         ;;
-       esac
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes; then
-         if test $with_gnu_ld = no; then
-           case $host_cpu in
-           hppa*64*)
-             _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-             ;;
-           ia64*)
-             _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-             ;;
-           *)
-             _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-             ;;
-           esac
-         fi
-       else
-         # FIXME: insert proper C++ library support
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       fi
-       ;;
-    esac
-    ;;
-  interix[[3-9]]*)
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-    # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-    # Instead, shared libraries are loaded at an image base (0x10000000 by
-    # default) and relocated if they conflict, which is a slow very memory
-    # consuming and fragmenting process.  To avoid this, we pick a random,
-    # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-    # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-    ;;
-  irix5* | irix6*)
-    case $cc_basename in
-      CC*)
-       # SGI C++
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-
-       # Archives containing C++ object files must be created using
-       # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-       # necessary to make sure instantiated templates are included
-       # in the archive.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-       ;;
-      *)
-       if test "$GXX" = yes; then
-         if test "$with_gnu_ld" = no; then
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-         else
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
-         fi
-       fi
-       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-       ;;
-    esac
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    ;;
-  linux* | k*bsd*-gnu)
-    case $cc_basename in
-      KCC*)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-       # Archives containing C++ object files must be created using
-       # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-       ;;
-      icpc*)
-       # Intel C++
-       with_gnu_ld=yes
-       # version 8.0 and above of icpc choke on multiply defined symbols
-       # if we add $predep_objects and $postdep_objects, however 7.1 and
-       # earlier do not add the objects themselves.
-       case `$CC -V 2>&1` in
-       *"Version 7."*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-         ;;
-       *)  # Version 8.0 or newer
-         tmp_idyn=
-         case $host_cpu in
-           ia64*) tmp_idyn=' -i_dynamic';;
-         esac
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-         ;;
-       esac
-       _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-       ;;
-      pgCC* | pgcpp*)
-        # Portland Group C++ compiler
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-        ;;
-      cxx*)
-       # Compaq C++
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-       runpath_var=LD_RUN_PATH
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       case `$CC -V 2>&1 | sed 5q` in
-       *Sun\ C*)
-         # Sun C++ 5.9
-         _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-         _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-
-         # Not sure whether something based on
-         # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-         # would be better.
-         output_verbose_link_cmd='echo'
-
-         # Archives containing C++ object files must be created using
-         # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-         # necessary to make sure instantiated templates are included
-         # in the archive.
-         _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-         ;;
-       esac
-       ;;
-    esac
-    ;;
-  lynxos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  m88k*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  mvs*)
-    case $cc_basename in
-      cxx*)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-    esac
-    ;;
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    fi
-    # Workaround some broken pre-1.5 toolchains
-    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-    ;;
-  openbsd2*)
-    # C++ shared libraries are fairly broken
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  openbsd*)
-    if test -f /usr/libexec/ld.so; then
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      fi
-      output_verbose_link_cmd='echo'
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-    ;;
-  osf3*)
-    case $cc_basename in
-      KCC*)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       # Archives containing C++ object files must be created using
-       # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-
-       ;;
-      RCC*)
-       # Rational C++ 2.4.1
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      cxx*)
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-         # Commands to make compiler produce verbose output that lists
-         # what "hidden" libraries, object files and flags are used when
-         # linking a shared library.
-         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-       else
-         # FIXME: insert proper C++ library support
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       fi
-       ;;
-    esac
-    ;;
-  osf4* | osf5*)
-    case $cc_basename in
-      KCC*)
-       # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-       # KCC will only create a shared library if the output file
-       # ends with ".so" (or ".sl" for HP-UX), so rename the library
-       # to its proper name (with version) after linking.
-       _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       # Archives containing C++ object files must be created using
-       # the KAI C++ compiler.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
-       ;;
-      RCC*)
-       # Rational C++ 2.4.1
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      cxx*)
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-         echo "-hidden">> $lib.exp~
-         $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~
-         $rm $lib.exp'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       # Commands to make compiler produce verbose output that lists
-       # what "hidden" libraries, object files and flags are used when
-       # linking a shared library.
-       #
-       # There doesn't appear to be a way to prevent this compiler from
-       # explicitly linking system object files so we need to strip them
-       # from the output so that they don't get included in the library
-       # dependencies.
-       output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-       ;;
-      *)
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-         # Commands to make compiler produce verbose output that lists
-         # what "hidden" libraries, object files and flags are used when
-         # linking a shared library.
-         output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-       else
-         # FIXME: insert proper C++ library support
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       fi
-       ;;
-    esac
-    ;;
-  psos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  sunos4*)
-    case $cc_basename in
-      CC*)
-       # Sun C++ 4.x
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      lcc*)
-       # Lucid
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-    esac
-    ;;
-  solaris*)
-    case $cc_basename in
-      CC*)
-       # Sun C++ 4.2, 5.x and Centerline C++
-        _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes
-       _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $CC -G${allow_undefined_flag}  ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-       case $host_os in
-         solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-         *)
-           # The compiler driver will combine and reorder linker options,
-           # but understands `-z linker_flag'.
-           # Supported since Solaris 2.6 (maybe 2.5.1?)
-           _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-           ;;
-       esac
-       _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-       output_verbose_link_cmd='echo'
-
-       # Archives containing C++ object files must be created using
-       # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-       # necessary to make sure instantiated templates are included
-       # in the archive.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-       ;;
-      gcx*)
-       # Green Hills C++ Compiler
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-       # The C++ compiler must be used to create the archive.
-       _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-       ;;
-      *)
-       # GNU C++ compiler with Solaris linker
-       if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-         _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-         if $CC --version | grep -v '^2\.7' > /dev/null; then
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-           _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-           # Commands to make compiler produce verbose output that lists
-           # what "hidden" libraries, object files and flags are used when
-           # linking a shared library.
-           output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-         else
-           # g++ 2.7 appears to require `-G' NOT `-shared' on this
-           # platform.
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-           _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-           # Commands to make compiler produce verbose output that lists
-           # what "hidden" libraries, object files and flags are used when
-           # linking a shared library.
-           output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-         fi
-
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-         case $host_os in
-         solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-         *)
-           _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-           ;;
-         esac
-       fi
-       ;;
-    esac
-    ;;
-  sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    runpath_var='LD_RUN_PATH'
-
-    case $cc_basename in
-      CC*)
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       ;;
-      *)
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       ;;
-    esac
-    ;;
-  sysv5* | sco3.2v5* | sco5v6*)
-    # Note: We can NOT use -z defs as we might desire, because we do not
-    # link with -lc, and that would cause any symbols used from libc to
-    # always be unresolved, which means just about no library would
-    # ever link correctly.  If we're not using GNU ld we use -z text
-    # though, which does catch some bad symbols but isn't as heavy-handed
-    # as -z defs.
-    # For security reasons, it is highly recommended that you always
-    # use absolute paths for naming shared libraries, and exclude the
-    # DT_RUNPATH tag from executables and libraries.  But doing so
-    # requires that you compile everything twice, which is a pain.
-    # So that behaviour is only enabled if SCOABSPATH is set to a
-    # non-empty value in the environment.  Most likely only useful for
-    # creating official distributions of packages.
-    # This is a hack until libtool officially supports absolute path
-    # names for shared libraries.
-    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-    _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-    runpath_var='LD_RUN_PATH'
-
-    case $cc_basename in
-      CC*)
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       ;;
-      *)
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       ;;
-    esac
-    ;;
-  tandem*)
-    case $cc_basename in
-      NCC*)
-       # NonStop-UX NCC 3.20
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-      *)
-       # FIXME: insert proper C++ library support
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       ;;
-    esac
-    ;;
-  vxworks*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  *)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-esac
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$GXX"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_POSTDEP_PREDEP($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-])# AC_LIBTOOL_LANG_CXX_CONFIG
-
-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
-# ------------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],
-[AC_REQUIRE([LT_AC_PROG_SED])dnl
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
-int a;
-void foo (void) { a = 0; }
-EOF
-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-EOF
-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-EOF
-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
-
-  for p in `eval $output_verbose_link_cmd`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" \
-         || test $p = "-R"; then
-        prev=$p
-        continue
-       else
-        prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-        case $p in
-        -L* | -R*)
-          # Internal compiler library paths should come after those
-          # provided the user.  The postdeps already come after the
-          # user supplied libs so there is no need to process them.
-          if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
-            _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-          else
-            _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-          fi
-          ;;
-        # The "-l" case would never come before the object being
-        # linked, so don't bother handling this case.
-        esac
-       else
-        if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
-          _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
-        else
-          _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
-        fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-        pre_test_object_deps_done=yes
-        continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-        if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
-          _LT_AC_TAGVAR(predep_objects, $1)="$p"
-        else
-          _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
-        fi
-       else
-        if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
-          _LT_AC_TAGVAR(postdep_objects, $1)="$p"
-        else
-          _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
-        fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$rm -f confest.$objext
-
-_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
-  _LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_AC_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-
-# PORTME: override above test on systems where it is broken
-ifelse([$1],[CXX],
-[case $host_os in
-interix[[3-9]]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  _LT_AC_TAGVAR(predep_objects,$1)=
-  _LT_AC_TAGVAR(postdep_objects,$1)=
-  _LT_AC_TAGVAR(postdeps,$1)=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-    #
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-esac
-])
-case " $_LT_AC_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
-])# AC_LIBTOOL_POSTDEP_PREDEP
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
-[AC_REQUIRE([AC_PROG_F77])
-AC_LANG_PUSH(Fortran 77)
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="\
-      program t
-      end
-"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case $host_os in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-aix[[4-9]]*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-  ;;
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-_LT_AC_TAGVAR(GCC, $1)="$G77"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_F77_CONFIG
-
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_GCJ_CONFIG
-
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-# -------------------------
-# Ensure that the configuration vars for the Windows resource compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_RC_CONFIG
-
-
-# AC_LIBTOOL_CONFIG([TAGNAME])
-# ----------------------------
-# If TAGNAME is not passed, then create an initial libtool script
-# with a default configuration from the untagged config vars.  Otherwise
-# add code to config.status for appending the configuration named by
-# TAGNAME from the matching tagged config vars.
-AC_DEFUN([AC_LIBTOOL_CONFIG],
-[# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    _LT_AC_TAGVAR(compiler, $1) \
-    _LT_AC_TAGVAR(CC, $1) \
-    _LT_AC_TAGVAR(LD, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
-    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
-    _LT_AC_TAGVAR(old_archive_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
-    _LT_AC_TAGVAR(predep_objects, $1) \
-    _LT_AC_TAGVAR(postdep_objects, $1) \
-    _LT_AC_TAGVAR(predeps, $1) \
-    _LT_AC_TAGVAR(postdeps, $1) \
-    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
-    _LT_AC_TAGVAR(compiler_lib_search_dirs, $1) \
-    _LT_AC_TAGVAR(archive_cmds, $1) \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(postinstall_cmds, $1) \
-    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
-    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
-    _LT_AC_TAGVAR(no_undefined_flag, $1) \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
-    _LT_AC_TAGVAR(hardcode_automatic, $1) \
-    _LT_AC_TAGVAR(module_cmds, $1) \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
-    _LT_AC_TAGVAR(fix_srcfile_path, $1) \
-    _LT_AC_TAGVAR(exclude_expsyms, $1) \
-    _LT_AC_TAGVAR(include_expsyms, $1); do
-
-    case $var in
-    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
-    _LT_AC_TAGVAR(module_cmds, $1) | \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\[$]0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
-    ;;
-  esac
-
-ifelse([$1], [],
-  [cfgfile="${ofile}T"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  $rm -f "$cfgfile"
-  AC_MSG_NOTICE([creating $ofile])],
-  [cfgfile="$ofile"])
-
-  cat <<__EOF__ >> "$cfgfile"
-ifelse([$1], [],
-[#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e 1s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG],
-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
-
-# Is the compiler the GNU C compiler?
-with_gcc=$_LT_AC_TAGVAR(GCC, $1)
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
-
-# The directories searched by this compiler when creating a shared
-# library
-compiler_lib_search_dirs=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
-
-# Symbols that must always be exported.
-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
-
-ifelse([$1],[],
-[# ### END LIBTOOL CONFIG],
-[# ### END LIBTOOL TAG CONFIG: $tagname])
-
-__EOF__
-
-ifelse([$1],[], [
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" || \
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-])
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-])# AC_LIBTOOL_CONFIG
-
-
-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-
-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
-
-
-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-# ---------------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([LT_AC_PROG_SED])
-AC_REQUIRE([AC_PROG_NM])
-AC_REQUIRE([AC_OBJEXT])
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-linux* | k*bsd*-gnu)
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDGIRSTW]]'
-    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris*)
-  symcode='[[BDRT]]'
-  ;;
-sco3.2v5*)
-  symcode='[[DT]]'
-  ;;
-sysv4.2uw2*)
-  symcode='[[DT]]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[[ABDT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[     ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-       mv -f "$nlist"T "$nlist"
-      else
-       rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-       if grep ' nm_test_func$' "$nlist" >/dev/null; then
-         cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-         # Now generate the symbol file.
-         eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-         cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[[]] =
-{
-EOF
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-         cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-         # Now try linking the two files.
-         mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
-         LIBS="conftstm.$ac_objext"
-         CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-         if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-           pipe_works=yes
-         fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
-       else
-         echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-       fi
-      else
-       echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-
-
-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
-# ---------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
-
-AC_MSG_CHECKING([for $compiler option to produce PIC])
- ifelse([$1],[CXX],[
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-       [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-       ;;
-      *)
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-       ;;
-      esac
-      ;;
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[[4-9]]*)
-       # All AIX code is PIC.
-       if test "$host_cpu" = ia64; then
-         # AIX 5 now supports IA64 processor
-         _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-       else
-         _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-       fi
-       ;;
-      chorus*)
-       case $cc_basename in
-       cxch68*)
-         # Green Hills C++ Compiler
-         # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-         ;;
-       esac
-       ;;
-       darwin*)
-         # PIC is the default on this platform
-         # Common symbols not allowed in MH_DYLIB files
-         case $cc_basename in
-           xlc*)
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           ;;
-         esac
-       ;;
-      dgux*)
-       case $cc_basename in
-         ec++*)
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-           ;;
-         ghcx*)
-           # Green Hills C++ Compiler
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      freebsd* | dragonfly*)
-       # FreeBSD uses GNU C++
-       ;;
-      hpux9* | hpux10* | hpux11*)
-       case $cc_basename in
-         CC*)
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-           if test "$host_cpu" != ia64; then
-             _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-           fi
-           ;;
-         aCC*)
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-           case $host_cpu in
-           hppa*64*|ia64*)
-             # +Z the default
-             ;;
-           *)
-             _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-             ;;
-           esac
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      interix*)
-       # This is c89, which is MS Visual C++ (no shared libs)
-       # Anyone wants to do a port?
-       ;;
-      irix5* | irix6* | nonstopux*)
-       case $cc_basename in
-         CC*)
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-           # CC pic flag -KPIC is the default.
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      linux* | k*bsd*-gnu)
-       case $cc_basename in
-         KCC*)
-           # KAI C++ Compiler
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-           ;;
-         icpc* | ecpc*)
-           # Intel C++
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-           ;;
-         pgCC* | pgcpp*)
-           # Portland Group C++ compiler.
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-           ;;
-         cxx*)
-           # Compaq C++
-           # Make sure the PIC flag is empty.  It appears that all Alpha
-           # Linux and Compaq Tru64 Unix objects are PIC.
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-           ;;
-         *)
-           case `$CC -V 2>&1 | sed 5q` in
-           *Sun\ C*)
-             # Sun C++ 5.9
-             _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-             _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-             _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-             ;;
-           esac
-           ;;
-       esac
-       ;;
-      lynxos*)
-       ;;
-      m88k*)
-       ;;
-      mvs*)
-       case $cc_basename in
-         cxx*)
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      netbsd*)
-       ;;
-      osf3* | osf4* | osf5*)
-       case $cc_basename in
-         KCC*)
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-           ;;
-         RCC*)
-           # Rational C++ 2.4.1
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-           ;;
-         cxx*)
-           # Digital/Compaq C++
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           # Make sure the PIC flag is empty.  It appears that all Alpha
-           # Linux and Compaq Tru64 Unix objects are PIC.
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      psos*)
-       ;;
-      solaris*)
-       case $cc_basename in
-         CC*)
-           # Sun C++ 4.2, 5.x and Centerline C++
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-           ;;
-         gcx*)
-           # Green Hills C++ Compiler
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      sunos4*)
-       case $cc_basename in
-         CC*)
-           # Sun C++ 4.x
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-           ;;
-         lcc*)
-           # Lucid
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      tandem*)
-       case $cc_basename in
-         NCC*)
-           # NonStop-UX NCC 3.20
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-           ;;
-         *)
-           ;;
-       esac
-       ;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-       case $cc_basename in
-         CC*)
-           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-           _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-           ;;
-       esac
-       ;;
-      vxworks*)
-       ;;
-      *)
-       _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-       ;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-       [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-       ;;
-      esac
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-      darwin*)
-        # PIC is the default on this platform
-        # Common symbols not allowed in MH_DYLIB files
-       case $cc_basename in
-         xlc*)
-         _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
-         _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-         ;;
-       esac
-       ;;
-
-    mingw* | cygwin* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      m4_if([$1], [GCJ], [],
-       [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-       # +Z the default
-       ;;
-      *)
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-       ;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    linux* | k*bsd*-gnu)
-      case $cc_basename in
-      icc* | ecc*)
-       _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-       # which looks to be a dead project)
-       _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-        ;;
-      ccc*)
-        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      *)
-        case `$CC -V 2>&1 | sed 5q` in
-       *Sun\ C*)
-         # Sun C 5.9
-         _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-         _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-         _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-         ;;
-       *Sun\ F*)
-         # Sun Fortran 8.3 passes all unrecognized flags to the linker
-         _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-         _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-         _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=''
-         ;;
-       esac
-       ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    rdos*)
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95*)
-       _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
-      *)
-       _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-       _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-       _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    unicos*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
-    _LT_AC_TAGVAR(lt_cv_prog_compiler_pic_works, $1),
-    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\"
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
-  _LT_AC_TAGVAR(lt_cv_prog_compiler_static_works, $1),
-  $lt_tmp_static_flag,
-  [],
-  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
-])
-
-
-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
-# ------------------------------------
-# See if the linker supports building shared libraries.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
-[AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-ifelse([$1],[CXX],[
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix[[4-9]]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
-  cygwin* | mingw*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-  _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-],[
-  runpath_var=
-  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_AC_TAGVAR(archive_cmds, $1)=
-  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
-  _LT_AC_TAGVAR(module_cmds, $1)=
-  _LT_AC_TAGVAR(module_expsym_cmds, $1)=
-  _LT_AC_TAGVAR(always_export_symbols, $1)=no
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_AC_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
-  extract_expsyms_cmds=
-  # Just being paranoid about ensuring that cc_basename is set.
-  _LT_CC_BASENAME([$compiler])
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-       _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>/dev/null` in
-      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[[3-9]]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-       # support --undefined.  This deserves some investigation.  FIXME
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=no
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-       # If the export-symbols file already is a .def file (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-         cp $export_symbols $output_objdir/$soname.def;
-       else
-         echo EXPORTS > $output_objdir/$soname.def;
-         cat $export_symbols >> $output_objdir/$soname.def;
-       fi~
-       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    interix[[3-9]]*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | k*bsd*-gnu)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       tmp_addflag=
-       case $cc_basename,$host_cpu in
-       pgcc*)                          # Portland Group C compiler
-         _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-         tmp_addflag=' $pic_flag'
-         ;;
-       pgf77* | pgf90* | pgf95*)       # Portland Group f77 and f90 compilers
-         _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-         tmp_addflag=' $pic_flag -Mnomain' ;;
-       ecc*,ia64* | icc*,ia64*)                # Intel C compiler on ia64
-         tmp_addflag=' -i_dynamic' ;;
-       efc*,ia64* | ifort*,ia64*)      # Intel Fortran compiler on ia64
-         tmp_addflag=' -i_dynamic -nofor_main' ;;
-       ifc* | ifort*)                  # Intel Fortran compiler
-         tmp_addflag=' -nofor_main' ;;
-       esac
-       case `$CC -V 2>&1 | sed 5q` in
-       *Sun\ C*)                       # Sun C 5.9
-         _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
-         tmp_sharedflag='-G' ;;
-       *Sun\ F*)                       # Sun Fortran 8.3
-         tmp_sharedflag='-G' ;;
-       *)
-         tmp_sharedflag='-shared' ;;
-       esac
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-       if test $supports_anon_versioning = yes; then
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
-  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-  $echo "local: *; };" >> $output_objdir/$libname.ver~
-         $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-       fi
-      else
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-       wlarc=
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-       cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-       ;;
-       *)
-         if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-           _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
-           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
-           _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
-         else
-           _LT_AC_TAGVAR(ld_shlibs, $1)=no
-         fi
-       ;;
-      esac
-      ;;
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
-    sunos4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then
-      runpath_var=
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-       # Neither direct hardcoding nor static linking is supported with a
-       # broken collect2.
-       _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix[[4-9]]*)
-      if test "$host_cpu" = ia64; then
-       # On IA64, the linker does run time linking by default, so we don't
-       # have to do anything special.
-       aix_use_runtimelinking=no
-       exp_sym_flag='-Bexport'
-       no_entry_flag=""
-      else
-       # If we're using GNU nm, then we don't want the "-C" option.
-       # -C means demangle to AIX nm, but means don't demangle with GNU nm
-       if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-         _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-       else
-         _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-       fi
-       aix_use_runtimelinking=no
-
-       # Test if we are trying to use run time linking or normal
-       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-       # need to do runtime linking.
-       case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-         for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-           aix_use_runtimelinking=yes
-           break
-         fi
-         done
-         ;;
-       esac
-
-       exp_sym_flag='-bexport'
-       no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      _LT_AC_TAGVAR(archive_cmds, $1)=''
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-      if test "$GCC" = yes; then
-       case $host_os in aix4.[[012]]|aix4.[[012]].*)
-       # We only want to do this on AIX 4.2 and lower, the check
-       # below for broken collect2 doesn't work under 4.3+
-         collect2name=`${CC} -print-prog-name=collect2`
-         if test -f "$collect2name" && \
-          strings "$collect2name" | grep resolve_lib_name >/dev/null
-         then
-         # We have reworked collect2
-         :
-         else
-         # We have old collect2
-         _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-         # It fails to find uninstalled libraries when the uninstalled
-         # path is not listed in the libpath.  Setting hardcode_minus_L
-         # to unsupported forces relinking
-         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-         _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-         fi
-         ;;
-       esac
-       shared_flag='-shared'
-       if test "$aix_use_runtimelinking" = yes; then
-         shared_flag="$shared_flag "'${wl}-G'
-       fi
-      else
-       # not using gcc
-       if test "$host_cpu" = ia64; then
-       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-       # chokes on -Wl,-G. The following line is correct:
-         shared_flag='-G'
-       else
-         if test "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
-         fi
-       fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
-       # Warning - without using the other runtime loading flags (-brtl),
-       # -berok will link without error, but may produce a broken library.
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       _LT_AC_SYS_LIBPATH_AIX
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-       if test "$host_cpu" = ia64; then
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-       else
-        # Determine the default libpath from the value encoded in an empty executable.
-        _LT_AC_SYS_LIBPATH_AIX
-        _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-         # Warning - without using the other run time loading flags,
-         # -berok will link without error, but may produce a broken library.
-         _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-         # Exported symbols can be pulled into shared objects from archives
-         _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-         # This is similar to how AIX traditionally builds its shared libraries.
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-       fi
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      # see comment about different semantics on the GNU ld section
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    bsdi[[45]]*)
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      ;;
-
-    darwin* | rhapsody*)
-      case $host_os in
-        rhapsody* | darwin1.[[012]])
-         _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[[012]])
-               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-      esac
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    if test "$GCC" = yes ; then
-       output_verbose_link_cmd='echo'
-        _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-        _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-        _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-    else
-      case $cc_basename in
-        xlc*)
-         output_verbose_link_cmd='echo'
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
-         _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          ;;
-       *)
-         _LT_AC_TAGVAR(ld_shlibs, $1)=no
-          ;;
-      esac
-    fi
-      ;;
-
-    dgux*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    freebsd1*)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-       _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-       # hardcode_minus_L: Not really in the search PATH,
-       # but as the default location of the library.
-       _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       case $host_cpu in
-       hppa*64*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       ia64*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       *)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       esac
-      else
-       case $host_cpu in
-       hppa*64*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       ia64*)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       *)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       esac
-      fi
-      if test "$with_gnu_ld" = no; then
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-       _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-       case $host_cpu in
-       hppa*64*|ia64*)
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-         _LT_AC_TAGVAR(hardcode_direct, $1)=no
-         _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-         ;;
-       *)
-         _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-         _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-         # hardcode_minus_L: Not really in the search PATH,
-         # but as the default location of the library.
-         _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-         ;;
-       esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-       _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-       if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-         _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-         _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-       else
-         case $host_os in
-          openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-            _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-            _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-            ;;
-          *)
-            _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-            _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-            ;;
-         esac
-        fi
-      else
-       _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    os2*)
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)     # as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-       _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-       $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
-
-       # Both c and cxx compiler support -rpath directly
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      if test "$GCC" = yes; then
-       wlarc='${wl}'
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-       wlarc=''
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-       $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *)
-       # The compiler driver will combine and reorder linker options,
-       # but understands `-z linker_flag'.  GCC discards it without `$wl',
-       # but is careful enough not to reorder.
-       # Supported since Solaris 2.6 (maybe 2.5.1?)
-       if test "$GCC" = yes; then
-         _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-       else
-         _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-       fi
-       ;;
-      esac
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-       # Use $CC to link under sequent, because it throws in some extra .o
-       # files that make .init and .fini sections work.
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-       sni)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-       ;;
-       siemens)
-         ## LD is ld it makes a PLAMLIB
-         ## CC just makes a GrossModule.
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-         _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-         _LT_AC_TAGVAR(hardcode_direct, $1)=no
-        ;;
-       motorola)
-         _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-         _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-       ;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-       _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-       runpath_var=LD_RUN_PATH
-       hardcode_runpath_var=yes
-       _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-       _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_AC_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $rm conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-       pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
-        then
-         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-         _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
-      ;;
-    esac
-  fi
-  ;;
-esac
-])# AC_LIBTOOL_PROG_LD_SHLIBS
-
-
-# _LT_AC_FILE_LTDLL_C
-# -------------------
-# Be careful that the start marker always follows a newline.
-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# #  ifdef __CYGWIN32__
-# #    define __CYGWIN__ __CYGWIN32__
-# #  endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-#   __hDllInstance_base = hInst;
-#   return TRUE;
-# }
-# /* ltdll.c ends here */
-])# _LT_AC_FILE_LTDLL_C
-
-
-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
-# ---------------------------------
-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
-
-
-# old names
-AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
-AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
-AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
-AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
-
-# This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])
-
-AC_DEFUN([LT_AC_PROG_GCJ],
-[AC_CHECK_TOOL(GCJ, gcj, no)
-  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-  AC_SUBST(GCJFLAGS)
-])
-
-AC_DEFUN([LT_AC_PROG_RC],
-[AC_CHECK_TOOL(RC, windres, no)
-])
-
-
-# Cheap backport of AS_EXECUTABLE_P and required macros
-# from Autoconf 2.59; we should not use $as_executable_p directly.
-
-# _AS_TEST_PREPARE
-# ----------------
-m4_ifndef([_AS_TEST_PREPARE],
-[m4_defun([_AS_TEST_PREPARE],
-[if test -x / >/dev/null 2>&1; then
-  as_executable_p='test -x'
-else
-  as_executable_p='test -f'
-fi
-])])# _AS_TEST_PREPARE
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# AS_EXECUTABLE_P
-# ---------------
-# Check whether a file is executable.
-m4_ifndef([AS_EXECUTABLE_P],
-[m4_defun([AS_EXECUTABLE_P],
-[AS_REQUIRE([_AS_TEST_PREPARE])dnl
-$as_executable_p $1[]dnl
-])])# AS_EXECUTABLE_P
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
 
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-# LT_AC_PROG_SED
-# --------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-AC_DEFUN([LT_AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && continue
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 
-# po.m4 serial 17 (gettext-0.18)
-dnl Copyright (C) 1995-2009 Free Software Foundation, Inc.
+# po.m4 serial 21 (gettext-0.18.3)
+dnl Copyright (C) 1995-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -6669,19 +34,20 @@ dnl Authors:
 dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
 dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
 
-AC_PREREQ([2.50])
+AC_PREREQ([2.60])
 
 dnl Checks for all prerequisites of the po subdirectory.
 AC_DEFUN([AM_PO_SUBDIRS],
 [
   AC_REQUIRE([AC_PROG_MAKE_SET])dnl
   AC_REQUIRE([AC_PROG_INSTALL])dnl
-  AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+  AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+  AC_REQUIRE([AC_PROG_SED])dnl
   AC_REQUIRE([AM_NLS])dnl
 
   dnl Release version of the gettext macros. This is used to ensure that
   dnl the gettext macros and po/Makefile.in.in are in sync.
-  AC_SUBST([GETTEXT_MACRO_VERSION], [0.17])
+  AC_SUBST([GETTEXT_MACRO_VERSION], [0.18])
 
   dnl Perform the following tests also if --disable-nls has been given,
   dnl because they are needed for "make dist" to work.
@@ -6754,7 +120,7 @@ changequote([,])dnl
       case "$ac_file" in */Makefile.in)
         # Adjust a relative srcdir.
         ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
         ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
         # In autoconf-2.13 it is called $ac_given_srcdir.
         # In autoconf-2.50 it is called $srcdir.
@@ -6770,7 +136,8 @@ changequote([,])dnl
         if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
           rm -f "$ac_dir/POTFILES"
           test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
-          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[  ]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+          gt_tab=`printf '\t'`
+          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
           POMAKEFILEDEPS="POTFILES.in"
           # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
           # on $ac_dir but don't depend on user-specified configuration
@@ -6781,12 +148,12 @@ changequote([,])dnl
               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
             fi
             ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-            # Hide the ALL_LINGUAS assigment from automake < 1.5.
+            # Hide the ALL_LINGUAS assignment from automake < 1.5.
             eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
           else
             # The set of available languages was given in configure.in.
-            # Hide the ALL_LINGUAS assigment from automake < 1.5.
+            # Hide the ALL_LINGUAS assignment from automake < 1.5.
             eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
           fi
           # Compute POFILES
@@ -6878,7 +245,7 @@ AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
 changequote(,)dnl
   # Adjust a relative srcdir.
   ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-  ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+  ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
   ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
   # In autoconf-2.13 it is called $ac_given_srcdir.
   # In autoconf-2.50 it is called $srcdir.
@@ -6906,6 +273,7 @@ EOT
   fi
 
   # A sed script that extracts the value of VARIABLE from a Makefile.
+  tab=`printf '\t'`
   sed_x_variable='
 # Test if the hold space is empty.
 x
@@ -6913,9 +281,9 @@ s/P/P/
 x
 ta
 # Yes it was empty. Look if we have the expected variable definition.
-/^[     ]*VARIABLE[     ]*=/{
+/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{
   # Seen the first line of the variable definition.
-  s/^[  ]*VARIABLE[     ]*=//
+  s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=//
   ba
 }
 bd
@@ -6967,7 +335,7 @@ changequote([,])dnl
     sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
     ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
   fi
-  # Hide the ALL_LINGUAS assigment from automake < 1.5.
+  # Hide the ALL_LINGUAS assignment from automake < 1.5.
   eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
   # Compute POFILES
   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
@@ -7057,14 +425,15 @@ changequote([,])dnl
   fi
 
   sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+  tab=`printf '\t'`
   if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
     # Add dependencies that cannot be formulated as a simple suffix rule.
     for lang in $ALL_LINGUAS; do
       frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
       cat >> "$ac_file.tmp" <<EOF
 $frobbedlang.msg: $lang.po
-       @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
-       \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
 EOF
     done
   fi
@@ -7074,8 +443,8 @@ EOF
       frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
       cat >> "$ac_file.tmp" <<EOF
 $frobbedlang/\$(DOMAIN).resources.dll: $lang.po
-       @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
-       \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
 EOF
     done
   fi
@@ -7100,7 +469,7 @@ AC_DEFUN([AM_XGETTEXT_OPTION],
   XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
 ])
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -7112,10 +481,10 @@ AC_DEFUN([AM_XGETTEXT_OPTION],
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
+[am__api_version='1.13'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.1], [],
+m4_if([$1], [1.13.4], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -7131,22 +500,22 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.1])dnl
+[AM_AUTOMAKE_VERSION([1.13.4])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
 #
 # Of course, Automake must honor this variable whenever it calls a
 # tool from the auxiliary directory.  The problem is that $srcdir (and
@@ -7165,7 +534,7 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 #
 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
 # are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
+# harmless because $srcdir is '.', but things will broke when you
 # start a VPATH build or use an absolute $srcdir.
 #
 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
@@ -7191,22 +560,19 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
-
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
 # Define a conditional.
 AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+[AC_PREREQ([2.52])dnl
m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
 AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
@@ -7225,16 +591,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 10
 
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
 # will think it sees a *use*, and therefore will trigger all it's
 # C support machinery.  Also note that it means that autoscan, seeing
@@ -7244,7 +608,7 @@ fi])])
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
 # We try a few techniques and use that to set a single cache variable.
 #
 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
@@ -7257,12 +621,13 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
 AC_REQUIRE([AM_DEP_TRACK])dnl
 
-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
 
 AC_CACHE_CHECK([dependency style of $depcc],
                [am_cv_$1_dependencies_compiler_type],
@@ -7270,8 +635,9 @@ AC_CACHE_CHECK([dependency style of $depcc],
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -7310,16 +676,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -7328,16 +694,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
        continue
       else
        break
       fi
       ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -7385,7 +751,7 @@ AM_CONDITIONAL([am__fastdep$1], [
 # AM_SET_DEPDIR
 # -------------
 # Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
 AC_DEFUN([AM_SET_DEPDIR],
 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
@@ -7395,34 +761,39 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
 # AM_DEP_TRACK
 # ------------
 AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
 AC_SUBST([AMDEPBACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
 ])
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 [{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -7435,7 +806,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -7447,21 +818,19 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`AS_DIRNAME(["$file"])`
@@ -7479,7 +848,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 # This macro should only be invoked once -- use via AC_REQUIRE.
 #
 # This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each `.P' file that we will
+# is enabled.  FIXME.  This creates each '.P' file that we will
 # need in order to bootstrap the dependency handling code.
 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 [AC_CONFIG_COMMANDS([depfiles],
@@ -7487,29 +856,14 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
 ])
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
-AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
-
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 16
-
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
@@ -7525,7 +879,7 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.65])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -7554,31 +908,40 @@ AC_SUBST([CYGPATH_W])
 # Define the identity of the package.
 dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
 _AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
 
 # Some tools Automake needs.
 AC_REQUIRE([AM_SANITY_CHECK])dnl
 AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
@@ -7589,28 +952,32 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
                             [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-                 [_AM_DEPENDENCIES(CC)],
-                 [define([AC_PROG_CC],
-                         defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+                 [_AM_DEPENDENCIES([CC])],
+                 [m4_define([AC_PROG_CC],
+                            m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-                 [_AM_DEPENDENCIES(CXX)],
-                 [define([AC_PROG_CXX],
-                         defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+                 [_AM_DEPENDENCIES([CXX])],
+                 [m4_define([AC_PROG_CXX],
+                            m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-                 [_AM_DEPENDENCIES(OBJC)],
-                 [define([AC_PROG_OBJC],
-                         defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+                 [_AM_DEPENDENCIES([OBJC])],
+                 [m4_define([AC_PROG_OBJC],
+                            m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+                 [_AM_DEPENDENCIES([OBJCXX])],
+                 [m4_define([AC_PROG_OBJCXX],
+                            m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
 ])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 ])
 
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
 dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
@@ -7638,7 +1005,7 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -7657,16 +1024,14 @@ if test x"${install_sh}" != xset; then
     install_sh="\${SHELL} $am_aux_dir/install-sh"
   esac
 fi
-AC_SUBST(install_sh)])
+AC_SUBST([install_sh])])
 
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
 AC_DEFUN([AM_SET_LEADING_DOT],
@@ -7682,14 +1047,12 @@ AC_SUBST([am__leading_dot])])
 
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
-
 # AM_MAKE_INCLUDE()
 # -----------------
 # Check to see how make treats includes.
@@ -7707,7 +1070,7 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -7732,15 +1095,12 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # AM_PROG_CC_C_O
 # --------------
 # Like AC_PROG_CC_C_O, but changed for automake.
@@ -7769,15 +1129,12 @@ m4_define([AC_PROG_CC],
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
@@ -7785,11 +1142,10 @@ AC_DEFUN([AM_MISSING_PROG],
 $1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
-
 # AM_MISSING_HAS_RUN
 # ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
@@ -7802,63 +1158,64 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
+  AC_MSG_WARN(['missing' script is too old or missing])
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+#  -*- Autoconf -*-
+# Obsolete and "removed" macros, that must however still report explicit
+# error messages when used, to smooth transition.
+#
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# AM_PROG_MKDIR_P
-# ---------------
-# Check for `mkdir -p'.
-AC_DEFUN([AM_PROG_MKDIR_P],
-[AC_PREREQ([2.60])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
-dnl while keeping a definition of mkdir_p for backward compatibility.
-dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-dnl Makefile.ins that do not define MKDIR_P, so we do our own
-dnl adjustment using top_builddir (which is defined more often than
-dnl MKDIR_P).
-AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-case $mkdir_p in
-  [[\\/$]]* | ?:[[\\/]]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-])
+AC_DEFUN([AM_CONFIG_HEADER],
+[AC_DIAGNOSE([obsolete],
+['$0': this macro is obsolete.
+You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl
+AC_CONFIG_HEADERS($@)])
+
+AC_DEFUN([AM_PROG_CC_STDC],
+[AC_PROG_CC
+am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
+AC_DIAGNOSE([obsolete],
+['$0': this macro is obsolete.
+You should simply use the 'AC][_PROG_CC' macro instead.
+Also, your code should no longer depend upon 'am_cv_prog_cc_stdc',
+but upon 'ac_cv_prog_cc_stdc'.])])
+
+AC_DEFUN([AM_C_PROTOTYPES],
+         [AC_FATAL([automatic de-ANSI-fication support has been removed])])
+AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
-
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
 AC_DEFUN([_AM_MANGLE_OPTION],
 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
 
 # _AM_SET_OPTION(NAME)
-# ------------------------------
+# --------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
 
 # _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
+# ------------------------
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
 [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
@@ -7871,22 +1228,16 @@ AC_DEFUN([_AM_IF_OPTION],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -7897,32 +1248,40 @@ case `pwd` in
 esac
 case $srcdir in
   *[[\\\"\#\$\&\'\`$am_lf\ \   ]]*)
-    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+       # -L didn't work.
+       set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+       && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$[2]" = conftest.file
    )
 then
@@ -7932,36 +1291,85 @@ else
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT(yes)])
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
 
-# Copyright (C) 2009  Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
 # Enable less verbose build rules; with the default set to DEFAULT
-# (`yes' being less verbose, `no' or empty being verbose).
+# ("yes" being less verbose, "no" or empty being verbose).
 AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules],
-[  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')])
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
 esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+   [am_cv_make_support_nested_variables],
+   [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+       @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
 AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
 AM_BACKSLASH='\'
 AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -7969,34 +1377,32 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 
 # AM_PROG_INSTALL_STRIP
 # ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
+# One issue with vendor 'install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
 # is unlikely to handle the host's binaries.
 # Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
+# always use install-sh in "make install-strip", and initialize
 # STRIPPROG with the value of the STRIP variable (set by the user).
 AC_DEFUN([AM_PROG_INSTALL_STRIP],
 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -8004,24 +1410,22 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
 # AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
+# --------------------------
 # Public sister of _AM_SUBST_NOTMAKE.
 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # _AM_PROG_TAR(FORMAT)
 # --------------------
 # Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
 #
 # Substitute a variable $(am__tar) that is a command
 # writing to stdout a FORMAT-tarball containing the directory
@@ -8031,82 +1435,124 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # Substitute a variable $(am__untar) that extract such
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
+#
 AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
-m4_if([$1], [v7],
-     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
+
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
   rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
 AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
 m4_include([gnulib-m4/00gnulib.m4])
+m4_include([gnulib-m4/absolute-header.m4])
 m4_include([gnulib-m4/alloca.m4])
+m4_include([gnulib-m4/btowc.m4])
 m4_include([gnulib-m4/codeset.m4])
+m4_include([gnulib-m4/configmake.m4])
 m4_include([gnulib-m4/eealloc.m4])
 m4_include([gnulib-m4/environ.m4])
 m4_include([gnulib-m4/errno_h.m4])
@@ -8115,11 +1561,14 @@ m4_include([gnulib-m4/exponentd.m4])
 m4_include([gnulib-m4/exponentf.m4])
 m4_include([gnulib-m4/exponentl.m4])
 m4_include([gnulib-m4/extensions.m4])
+m4_include([gnulib-m4/extern-inline.m4])
 m4_include([gnulib-m4/fcntl-o.m4])
+m4_include([gnulib-m4/fdopen.m4])
 m4_include([gnulib-m4/float_h.m4])
 m4_include([gnulib-m4/fpieee.m4])
 m4_include([gnulib-m4/frexp.m4])
 m4_include([gnulib-m4/frexpl.m4])
+m4_include([gnulib-m4/fseterr.m4])
 m4_include([gnulib-m4/getpagesize.m4])
 m4_include([gnulib-m4/glibc21.m4])
 m4_include([gnulib-m4/gnulib-common.m4])
@@ -8131,16 +1580,21 @@ m4_include([gnulib-m4/include_next.m4])
 m4_include([gnulib-m4/inline.m4])
 m4_include([gnulib-m4/intlmacosx.m4])
 m4_include([gnulib-m4/intmax_t.m4])
+m4_include([gnulib-m4/inttypes-pri.m4])
+m4_include([gnulib-m4/inttypes.m4])
 m4_include([gnulib-m4/inttypes_h.m4])
 m4_include([gnulib-m4/isnand.m4])
 m4_include([gnulib-m4/isnanf.m4])
 m4_include([gnulib-m4/isnanl.m4])
+m4_include([gnulib-m4/iswblank.m4])
 m4_include([gnulib-m4/lcmessage.m4])
 m4_include([gnulib-m4/ldexpl.m4])
 m4_include([gnulib-m4/lib-ld.m4])
 m4_include([gnulib-m4/lib-link.m4])
 m4_include([gnulib-m4/lib-prefix.m4])
+m4_include([gnulib-m4/libunistring-base.m4])
 m4_include([gnulib-m4/localcharset.m4])
+m4_include([gnulib-m4/locale-ar.m4])
 m4_include([gnulib-m4/locale-fr.m4])
 m4_include([gnulib-m4/locale-ja.m4])
 m4_include([gnulib-m4/locale-tr.m4])
@@ -8157,27 +1611,37 @@ m4_include([gnulib-m4/mbiter.m4])
 m4_include([gnulib-m4/mbrtowc.m4])
 m4_include([gnulib-m4/mbsinit.m4])
 m4_include([gnulib-m4/mbstate_t.m4])
+m4_include([gnulib-m4/mbtowc.m4])
 m4_include([gnulib-m4/memchr.m4])
 m4_include([gnulib-m4/minmax.m4])
 m4_include([gnulib-m4/mmap-anon.m4])
+m4_include([gnulib-m4/msvc-inval.m4])
+m4_include([gnulib-m4/msvc-nothrow.m4])
 m4_include([gnulib-m4/multiarch.m4])
 m4_include([gnulib-m4/nocrash.m4])
+m4_include([gnulib-m4/off_t.m4])
 m4_include([gnulib-m4/printf-frexp.m4])
 m4_include([gnulib-m4/printf-frexpl.m4])
 m4_include([gnulib-m4/printf.m4])
 m4_include([gnulib-m4/putenv.m4])
 m4_include([gnulib-m4/relocatable-lib.m4])
 m4_include([gnulib-m4/setenv.m4])
+m4_include([gnulib-m4/setlocale.m4])
 m4_include([gnulib-m4/signbit.m4])
 m4_include([gnulib-m4/size_max.m4])
+m4_include([gnulib-m4/ssize_t.m4])
 m4_include([gnulib-m4/stdbool.m4])
 m4_include([gnulib-m4/stddef_h.m4])
 m4_include([gnulib-m4/stdint.m4])
 m4_include([gnulib-m4/stdint_h.m4])
+m4_include([gnulib-m4/stdio_h.m4])
 m4_include([gnulib-m4/stdlib_h.m4])
 m4_include([gnulib-m4/strerror.m4])
 m4_include([gnulib-m4/string_h.m4])
 m4_include([gnulib-m4/strncat.m4])
+m4_include([gnulib-m4/strstr.m4])
+m4_include([gnulib-m4/sys_socket_h.m4])
+m4_include([gnulib-m4/sys_types_h.m4])
 m4_include([gnulib-m4/thread.m4])
 m4_include([gnulib-m4/threadlib.m4])
 m4_include([gnulib-m4/unistd_h.m4])
@@ -8185,7 +1649,9 @@ m4_include([gnulib-m4/vasnprintf.m4])
 m4_include([gnulib-m4/warn-on-use.m4])
 m4_include([gnulib-m4/wchar_h.m4])
 m4_include([gnulib-m4/wchar_t.m4])
+m4_include([gnulib-m4/wcrtomb.m4])
 m4_include([gnulib-m4/wctob.m4])
+m4_include([gnulib-m4/wctomb.m4])
 m4_include([gnulib-m4/wctype_h.m4])
 m4_include([gnulib-m4/wcwidth.m4])
 m4_include([gnulib-m4/wint_t.m4])
index e062b33..f558615 100755 (executable)
@@ -4,7 +4,7 @@
 # also regenerates all aclocal.m4, config.h.in, Makefile.in, configure files
 # with new versions of autoconf or automake.
 #
-# This script requires autoconf-2.63 and automake-1.11 in the PATH.
+# This script requires autoconf-2.63..2.69 and automake-1.11..1.12 in the PATH.
 # It also requires either
 #   - the GNULIB_TOOL environment variable pointing to the gnulib-tool script
 #     in a gnulib checkout, or
@@ -12,7 +12,7 @@
 # It also requires
 #   - the gperf program.
 
-# Copyright (C) 2003-2009 Free Software Foundation, Inc.
+# Copyright (C) 2003-2012 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
@@ -71,12 +71,6 @@ if test $skip_gnulib = false; then
   fi
   # Skip the gnulib-tool step if gnulib-tool was not found.
   if test -n "$GNULIB_TOOL"; then
-    if test -f m4/gnulib-cache.m4; then
-      mv -f m4/gnulib-cache.m4 m4/gnulib-cache.m4~
-    fi
-    if test -f lib/Makefile.gnulib; then
-      mv -f lib/Makefile.gnulib lib/Makefile.gnulib~
-    fi
     GNULIB_MODULES='
       unitypes
       unistr/base
@@ -284,10 +278,10 @@ if test $skip_gnulib = false; then
       uniname/base
       uniname/uniname
       unictype/base
-      unictype/bidicategory-all
+      unictype/bidiclass-all
       unictype/block-all
       unictype/category-all
-      unictype/combining-class
+      unictype/combining-class-all
       unictype/ctype-alnum
       unictype/ctype-alpha
       unictype/ctype-blank
@@ -302,6 +296,8 @@ if test $skip_gnulib = false; then
       unictype/ctype-xdigit
       unictype/decimal-digit
       unictype/digit
+      unictype/joininggroup-all
+      unictype/joiningtype-all
       unictype/mirror
       unictype/numeric
       unictype/property-all
@@ -318,6 +314,19 @@ if test $skip_gnulib = false; then
       uniwidth/u32-strwidth
       uniwidth/u32-width
       uniwidth/width
+      unigbrk/base
+      unigbrk/u8-grapheme-breaks
+      unigbrk/u8-grapheme-next
+      unigbrk/u8-grapheme-prev
+      unigbrk/u16-grapheme-breaks
+      unigbrk/u16-grapheme-next
+      unigbrk/u16-grapheme-prev
+      unigbrk/u32-grapheme-breaks
+      unigbrk/u32-grapheme-next
+      unigbrk/u32-grapheme-prev
+      unigbrk/uc-gbrk-prop
+      unigbrk/uc-is-grapheme-break
+      unigbrk/ulc-grapheme-breaks
       uniwbrk/base
       uniwbrk/u8-wordbreaks
       uniwbrk/u16-wordbreaks
@@ -418,25 +427,26 @@ if test $skip_gnulib = false; then
       --with-tests --lgpl --makefile-name=Makefile.gnulib --libtool --local-dir=gnulib-local \
       --import $GNULIB_MODULES
     # Change lib/unistr.h to be usable standalone.
-    sed -e 's/ifdef GNULIB_[A-Za-z0-9_]*/if 1/' -e 's/defined GNULIB_[A-Za-z0-9_]*/1/g' \
+    sed -e 's/if GNULIB_[A-Za-z0-9_]* || .*/if 1/g' \
+        -e 's/if GNULIB_[A-Za-z0-9_]*/if 1/g' \
         -e 's/HAVE_INLINE/UNISTRING_HAVE_INLINE/g' \
-        < lib/unistr.h \
-        > lib/unistr.h.tmp \
-    && mv lib/unistr.h.tmp lib/unistr.h
+        < lib/unistr.in.h \
+        > lib/unistr.in.h.tmp \
+    && mv lib/unistr.in.h.tmp lib/unistr.in.h
     # Change lib/unictype.h and lib/uninorm.h for shared libraries on Woe32 systems.
     sed -e 's/extern const uc_general_category_t UC_/extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_/' \
         -e 's/extern const uc_property_t UC_/extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_/' \
-        < lib/unictype.h \
-        > lib/unictype.h.tmp \
-    && mv lib/unictype.h.tmp lib/unictype.h
+        < lib/unictype.in.h \
+        > lib/unictype.in.h.tmp \
+    && mv lib/unictype.in.h.tmp lib/unictype.in.h
     sed -e 's/extern const struct unicode_normalization_form /extern LIBUNISTRING_DLL_VARIABLE const struct unicode_normalization_form /' \
-        < lib/uninorm.h \
-        > lib/uninorm.h.tmp \
-    && mv lib/uninorm.h.tmp lib/uninorm.h
+        < lib/uninorm.in.h \
+        > lib/uninorm.in.h.tmp \
+    && mv lib/uninorm.in.h.tmp lib/uninorm.in.h
     sed -e 's/extern const casing_/extern LIBUNISTRING_DLL_VARIABLE const casing_/' \
-        < lib/unicase.h \
-        > lib/unicase.h.tmp \
-    && mv lib/unicase.h.tmp lib/unicase.h
+        < lib/unicase.in.h \
+        > lib/unicase.in.h.tmp \
+    && mv lib/unicase.in.h.tmp lib/unicase.in.h
     $GNULIB_TOOL --copy-file build-aux/config.guess; chmod a+x build-aux/config.guess
     $GNULIB_TOOL --copy-file build-aux/config.sub;   chmod a+x build-aux/config.sub
     # If we got no texinfo.tex so far, take the snapshot from gnulib.
index 1b1d232..531136b 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
-# Wrapper for compilers which do not understand `-c -o'.
+# Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2005-05-14.22
+scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,8 +17,7 @@ scriptversion=2005-05-14.22
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -29,21 +28,224 @@ scriptversion=2005-05-14.22
 # bugs to <bug-automake@gnu.org> or send patches to
 # <automake-patches@gnu.org>.
 
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""       $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+       # lazily determine how to convert abs files
+       case `uname -s` in
+         MINGW*)
+           file_conv=mingw
+           ;;
+         CYGWIN*)
+           file_conv=cygwin
+           ;;
+         *)
+           file_conv=wine
+           ;;
+       esac
+      fi
+      case $file_conv/,$2, in
+       *,$file_conv,*)
+         ;;
+       mingw/*)
+         file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+         ;;
+       cygwin/*)
+         file=`cygpath -m "$file" || echo "$file"`
+         ;;
+       wine/*)
+         file=`winepath -w "$file" || echo "$file"`
+         ;;
+      esac
+      ;;
+  esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+       -o)
+         # configure might choose to run compile as 'compile cc -o foo foo.c'.
+         eat=1
+         case $2 in
+           *.o | *.[oO][bB][jJ])
+             func_file_conv "$2"
+             set x "$@" -Fo"$file"
+             shift
+             ;;
+           *)
+             func_file_conv "$2"
+             set x "$@" -Fe"$file"
+             shift
+             ;;
+         esac
+         ;;
+       -I)
+         eat=1
+         func_file_conv "$2" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
+       -I*)
+         func_file_conv "${1#-I}" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
+       -l)
+         eat=1
+         func_cl_dashl "$2"
+         set x "$@" "$lib"
+         shift
+         ;;
+       -l*)
+         func_cl_dashl "${1#-l}"
+         set x "$@" "$lib"
+         shift
+         ;;
+       -L)
+         eat=1
+         func_cl_dashL "$2"
+         ;;
+       -L*)
+         func_cl_dashL "${1#-L}"
+         ;;
+       -static)
+         shared=false
+         ;;
+       -Wl,*)
+         arg=${1#-Wl,}
+         save_ifs="$IFS"; IFS=','
+         for flag in $arg; do
+           IFS="$save_ifs"
+           linker_opts="$linker_opts $flag"
+         done
+         IFS="$save_ifs"
+         ;;
+       -Xlinker)
+         eat=1
+         linker_opts="$linker_opts $2"
+         ;;
+       -*)
+         set x "$@" "$1"
+         shift
+         ;;
+       *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+         func_file_conv "$1"
+         set x "$@" -Tp"$file"
+         shift
+         ;;
+       *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+         func_file_conv "$1" mingw
+         set x "$@" "$file"
+         shift
+         ;;
+       *)
+         set x "$@" "$1"
+         shift
+         ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
 case $1 in
   '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
     cat <<\EOF
 Usage: compile [--help] [--version] PROGRAM [ARGS]
 
-Wrapper for compilers which do not understand `-c -o'.
-Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
 arguments, and rename the output as expected.
 
 If you are trying to build a whole package this is not the
-right script to run: please start by reading the file `INSTALL'.
+right script to run: please start by reading the file 'INSTALL'.
 
 Report bugs to <bug-automake@gnu.org>.
 EOF
@@ -53,11 +255,13 @@ EOF
     echo "compile $scriptversion"
     exit $?
     ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
 esac
 
 ofile=
 cfile=
-eat=
 
 for arg
 do
@@ -66,8 +270,8 @@ do
   else
     case $1 in
       -o)
-       # configure might choose to run compile as `compile cc -o foo foo.c'.
-       # So we strip `-o arg' only if arg is an object.
+       # configure might choose to run compile as 'compile cc -o foo foo.c'.
+       # So we strip '-o arg' only if arg is an object.
        eat=1
        case $2 in
          *.o | *.obj)
@@ -94,22 +298,22 @@ do
 done
 
 if test -z "$ofile" || test -z "$cfile"; then
-  # If no `-o' option was seen then we might have been invoked from a
+  # If no '-o' option was seen then we might have been invoked from a
   # pattern rule where we don't need one.  That is ok -- this is a
   # normal compilation that the losing compiler can handle.  If no
-  # `.c' file was seen then we are probably linking.  That is also
+  # '.c' file was seen then we are probably linking.  That is also
   # ok.
   exec "$@"
 fi
 
 # Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
 
 # Create the lock directory.
-# Note: use `[/.-]' here to ensure that we don't use the same name
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
 # that we are using for the .o file.  Also, base the name on the expected
 # object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
 while true; do
   if mkdir "$lockdir" >/dev/null 2>&1; then
     break
@@ -124,9 +328,9 @@ trap "rmdir '$lockdir'; exit 1" 1 2 15
 ret=$?
 
 if test -f "$cofile"; then
-  mv "$cofile" "$ofile"
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
 elif test -f "${cofile}bj"; then
-  mv "${cofile}bj" "$ofile"
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
 fi
 
 rmdir "$lockdir"
@@ -138,5 +342,6 @@ exit $ret
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
index 115f944..1f5c50c 100755 (executable)
@@ -1,14 +1,12 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-#   Free Software Foundation, Inc.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
 
-timestamp='2010-04-03'
+timestamp='2014-03-23'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -17,26 +15,22 @@ timestamp='2010-04-03'
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches@gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 #
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
+# Originally written by Per Bothner.
 #
 # You can get the latest version of this script from:
 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -56,9 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -92,7 +84,7 @@ if test $# != 0; then
   exit 1
 fi
 
-trap 'exit 1' HUP INT TERM
+trap 'exit 1' 1 2 15
 
 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
 # compiler to aid in system detection is discouraged as it requires
@@ -106,7 +98,7 @@ trap 'exit 1' HUP INT TERM
 
 set_cc_for_build='
 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
 : ${TMPDIR=/tmp} ;
  { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
@@ -140,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+       # If the system lacks a compiler, then just pick glibc.
+       # We could probably try harder.
+       LIBC=gnu
+
+       eval $set_cc_for_build
+       cat <<-EOF > $dummy.c
+       #include <features.h>
+       #if defined(__UCLIBC__)
+       LIBC=uclibc
+       #elif defined(__dietlibc__)
+       LIBC=dietlibc
+       #else
+       LIBC=gnu
+       #endif
+       EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+       ;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     *:NetBSD:*:*)
        # NetBSD (nbsd) targets should (where applicable) match one or
-       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+       # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
        # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
        # switched to ELF, *-*-netbsd* would select the old
        # object file format.  This provides both forward
@@ -181,7 +194,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                fi
                ;;
            *)
-               os=netbsd
+               os=netbsd
                ;;
        esac
        # The OS release
@@ -202,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
        echo "${machine}-${os}${release}"
        exit ;;
+    *:Bitrig:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+       exit ;;
     *:OpenBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
        echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -224,7 +241,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
                ;;
        *5.*)
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
                ;;
        esac
        # According to Compaq, /usr/sbin/psrinfo has been available on
@@ -270,7 +287,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
        echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       exit ;;
+       # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+       exitcode=$?
+       trap '' 0
+       exit $exitcode ;;
     Alpha\ *:Windows_NT*:*)
        # How do we know it's Interix rather than the generic POSIX subsystem?
        # Should we change UNAME_MACHINE based on the output of uname instead
@@ -296,12 +316,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        echo s390-ibm-zvmoe
        exit ;;
     *:OS400:*:*)
-        echo powerpc-ibm-os400
+       echo powerpc-ibm-os400
        exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
        exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
        echo arm-unknown-riscos
        exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -395,23 +415,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint${UNAME_RELEASE}
        exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
        echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
+       exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+       echo m68k-atari-mint${UNAME_RELEASE}
        exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
+       echo m68k-milan-mint${UNAME_RELEASE}
+       exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
+       echo m68k-hades-mint${UNAME_RELEASE}
+       exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit ;;
+       echo m68k-unknown-mint${UNAME_RELEASE}
+       exit ;;
     m68k:machten:*:*)
        echo m68k-apple-machten${UNAME_RELEASE}
        exit ;;
@@ -481,8 +501,8 @@ EOF
        echo m88k-motorola-sysv3
        exit ;;
     AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
+       # DG/UX returns AViiON for all architectures
+       UNAME_PROCESSOR=`/usr/bin/uname -p`
        if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
        then
            if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -495,7 +515,7 @@ EOF
        else
            echo i586-dg-dgux${UNAME_RELEASE}
        fi
-       exit ;;
+       exit ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
        echo m88k-dolphin-sysv3
        exit ;;
@@ -552,7 +572,7 @@ EOF
                echo rs6000-ibm-aix3.2
        fi
        exit ;;
-    *:AIX:*:[456])
+    *:AIX:*:[4567])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
        if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
                IBM_ARCH=rs6000
@@ -595,52 +615,52 @@ EOF
            9000/[678][0-9][0-9])
                if [ -x /usr/bin/getconf ]; then
                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
+                   sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                   case "${sc_cpu_version}" in
+                     523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                     528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                     532)                      # CPU_PA_RISC2_0
+                       case "${sc_kernel_bits}" in
+                         32) HP_ARCH="hppa2.0n" ;;
+                         64) HP_ARCH="hppa2.0w" ;;
                          '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
+                       esac ;;
+                   esac
                fi
                if [ "${HP_ARCH}" = "" ]; then
                    eval $set_cc_for_build
-                   sed 's/^              //' << EOF >$dummy.c
+                   sed 's/^            //' << EOF >$dummy.c
 
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
+               #define _HPUX_SOURCE
+               #include <stdlib.h>
+               #include <unistd.h>
 
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
+               int main ()
+               {
+               #if defined(_SC_KERNEL_BITS)
+                   long bits = sysconf(_SC_KERNEL_BITS);
+               #endif
+                   long cpu  = sysconf (_SC_CPU_VERSION);
 
-                  switch (cpu)
-               {
-               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-               case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-                   switch (bits)
-                       {
-                       case 64: puts ("hppa2.0w"); break;
-                       case 32: puts ("hppa2.0n"); break;
-                       default: puts ("hppa2.0"); break;
-                       } break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-                   puts ("hppa2.0"); break;
-              #endif
-               default: puts ("hppa1.0"); break;
-               }
-                  exit (0);
-              }
+                   switch (cpu)
+                       {
+                       case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+                       case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+                       case CPU_PA_RISC2_0:
+               #if defined(_SC_KERNEL_BITS)
+                           switch (bits)
+                               {
+                               case 64: puts ("hppa2.0w"); break;
+                               case 32: puts ("hppa2.0n"); break;
+                               default: puts ("hppa2.0"); break;
+                               } break;
+               #else  /* !defined(_SC_KERNEL_BITS) */
+                           puts ("hppa2.0"); break;
+               #endif
+                       default: puts ("hppa1.0"); break;
+                       }
+                   exit (0);
+               }
 EOF
                    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
                    test -z "$HP_ARCH" && HP_ARCH=hppa
@@ -731,22 +751,22 @@ EOF
        exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
        echo c1-convex-bsd
-        exit ;;
+       exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
        if getsysinfo -f scalar_acc
        then echo c32-convex-bsd
        else echo c2-convex-bsd
        fi
-        exit ;;
+       exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
        echo c34-convex-bsd
-        exit ;;
+       exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
        echo c38-convex-bsd
-        exit ;;
+       exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
        echo c4-convex-bsd
-        exit ;;
+       exit ;;
     CRAY*Y-MP:*:*:*)
        echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit ;;
@@ -770,14 +790,14 @@ EOF
        exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
        FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit ;;
+       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+       FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+       echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       exit ;;
     5000:UNIX_System_V:4.*:*)
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+       echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@@ -789,30 +809,35 @@ EOF
        echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
        exit ;;
     *:FreeBSD:*:*)
-       case ${UNAME_MACHINE} in
-           pc98)
-               echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+       UNAME_PROCESSOR=`/usr/bin/uname -p`
+       case ${UNAME_PROCESSOR} in
            amd64)
                echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
            *)
-               echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+               echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
        esac
        exit ;;
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
        exit ;;
+    *:MINGW64*:*)
+       echo ${UNAME_MACHINE}-pc-mingw64
+       exit ;;
     *:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
+    *:MSYS*:*)
+       echo ${UNAME_MACHINE}-pc-msys
+       exit ;;
     i*:windows32*:*)
-       # uname -m includes "-pc" on this system.
-       echo ${UNAME_MACHINE}-mingw32
+       # uname -m includes "-pc" on this system.
+       echo ${UNAME_MACHINE}-mingw32
        exit ;;
     i*:PW*:*)
        echo ${UNAME_MACHINE}-pc-pw32
        exit ;;
     *:Interix*:*)
-       case ${UNAME_MACHINE} in
+       case ${UNAME_MACHINE} in
            x86)
                echo i586-pc-interix${UNAME_RELEASE}
                exit ;;
@@ -849,15 +874,22 @@ EOF
        exit ;;
     *:GNU:*:*)
        # the GNU system
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
        exit ;;
     *:GNU/*:*:*)
        # other systems with GNU libc and userland
-       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
        exit ;;
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
        exit ;;
+    aarch64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    aarch64_be:Linux:*:*)
+       UNAME_MACHINE=aarch64_be
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
          EV5)   UNAME_MACHINE=alphaev5 ;;
@@ -867,52 +899,56 @@ EOF
          EV6)   UNAME_MACHINE=alphaev6 ;;
          EV67)  UNAME_MACHINE=alphaev67 ;;
          EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
+       esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
-       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     arm*:Linux:*:*)
        eval $set_cc_for_build
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
-           echo ${UNAME_MACHINE}-unknown-linux-gnu
+           echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        else
-           echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+           if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+               | grep -q __ARM_PCS_VFP
+           then
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+           else
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+           fi
        fi
        exit ;;
     avr32*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     cris:Linux:*:*)
-       echo cris-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
     crisv32:Linux:*:*)
-       echo crisv32-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
     frv:Linux:*:*)
-       echo frv-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    hexagon:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     i*86:Linux:*:*)
-       LIBC=gnu
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #ifdef __dietlibc__
-       LIBC=dietlibc
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-       echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
        exit ;;
     ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     m32r*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
        eval $set_cc_for_build
@@ -931,51 +967,63 @@ EOF
        #endif
 EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
        ;;
-    or32:Linux:*:*)
-       echo or32-unknown-linux-gnu
+    openrisc*:Linux:*:*)
+       echo or1k-unknown-linux-${LIBC}
+       exit ;;
+    or32:Linux:*:* | or1k*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-gnu
+       echo sparc-unknown-linux-${LIBC}
        exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-gnu
+       echo hppa64-unknown-linux-${LIBC}
        exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-gnu ;;
-         PA8*) echo hppa2.0-unknown-linux-gnu ;;
-         *)    echo hppa-unknown-linux-gnu ;;
+         PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+         PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+         *)    echo hppa-unknown-linux-${LIBC} ;;
        esac
        exit ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-gnu
+       echo powerpc64-unknown-linux-${LIBC}
        exit ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-gnu
+       echo powerpc-unknown-linux-${LIBC}
+       exit ;;
+    ppc64le:Linux:*:*)
+       echo powerpc64le-unknown-linux-${LIBC}
+       exit ;;
+    ppcle:Linux:*:*)
+       echo powerpcle-unknown-linux-${LIBC}
        exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux
+       echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
        exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    tile*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     vax:Linux:*:*)
-       echo ${UNAME_MACHINE}-dec-linux-gnu
+       echo ${UNAME_MACHINE}-dec-linux-${LIBC}
        exit ;;
     x86_64:Linux:*:*)
-       echo x86_64-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -984,11 +1032,11 @@ EOF
        echo i386-sequent-sysv4
        exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
+       # Unixware is an offshoot of SVR4, but it has its own version
+       # number series starting with 2...
+       # I am not positive that other SVR4 systems won't match this,
        # I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
+       # Use sysv4.2uw... so that sysv4* matches it.
        echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
        exit ;;
     i*86:OS/2:*:*)
@@ -1020,7 +1068,7 @@ EOF
        fi
        exit ;;
     i*86:*:5:[678]*)
-       # UnixWare 7.x, OpenUNIX and OpenServer 6.
+       # UnixWare 7.x, OpenUNIX and OpenServer 6.
        case `/bin/uname -X | grep "^Machine"` in
            *486*)           UNAME_MACHINE=i486 ;;
            *Pentium)        UNAME_MACHINE=i586 ;;
@@ -1048,13 +1096,13 @@ EOF
        exit ;;
     pc:*:*:*)
        # Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i586.
+       # uname -m prints for DJGPP always 'pc', but it prints nothing about
+       # the processor, so we play safe by assuming i586.
        # Note: whatever this is, it MUST be the same as what config.sub
        # prints for the "djgpp" host, or else GDB configury will decide that
        # this is a cross-build.
        echo i586-pc-msdosdjgpp
-        exit ;;
+       exit ;;
     Intel:Mach:3*:*)
        echo i386-pc-mach3
        exit ;;
@@ -1089,8 +1137,8 @@ EOF
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
          && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && { echo i486-ncr-sysv4; exit; } ;;
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+         && { echo i486-ncr-sysv4; exit; } ;;
     NCR*:*:4.2:* | MPRAS*:*:4.2:*)
        OS_REL='.3'
        test -r /etc/.relid \
@@ -1133,10 +1181,10 @@ EOF
                echo ns32k-sni-sysv
        fi
        exit ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit ;;
+    PENTIUM:*:4.0*:*)  # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                       # says <Richard.M.Bartel@ccMail.Census.GOV>
+       echo i586-unisys-sysv4
+       exit ;;
     *:UNIX_System_V:4*:FTX*)
        # From Gerald Hewes <hewes@openmarket.com>.
        # How about differentiating between stratus architectures? -djm
@@ -1162,11 +1210,11 @@ EOF
        exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
+               echo mips-nec-sysv${UNAME_RELEASE}
        else
-               echo mips-unknown-sysv${UNAME_RELEASE}
+               echo mips-unknown-sysv${UNAME_RELEASE}
        fi
-        exit ;;
+       exit ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
        echo powerpc-be-beos
        exit ;;
@@ -1179,6 +1227,9 @@ EOF
     BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
        echo i586-pc-haiku
        exit ;;
+    x86_64:Haiku:*:*)
+       echo x86_64-unknown-haiku
+       exit ;;
     SX-4:SUPER-UX:*:*)
        echo sx4-nec-superux${UNAME_RELEASE}
        exit ;;
@@ -1205,19 +1256,31 @@ EOF
        exit ;;
     *:Darwin:*:*)
        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       case $UNAME_PROCESSOR in
-           i386)
-               eval $set_cc_for_build
-               if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-                 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-                     (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-                     grep IS_64BIT_ARCH >/dev/null
-                 then
-                     UNAME_PROCESSOR="x86_64"
-                 fi
-               fi ;;
-           unknown) UNAME_PROCESSOR=powerpc ;;
-       esac
+       eval $set_cc_for_build
+       if test "$UNAME_PROCESSOR" = unknown ; then
+           UNAME_PROCESSOR=powerpc
+       fi
+       if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+           if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+               if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+                   (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+                   grep IS_64BIT_ARCH >/dev/null
+               then
+                   case $UNAME_PROCESSOR in
+                       i386) UNAME_PROCESSOR=x86_64 ;;
+                       powerpc) UNAME_PROCESSOR=powerpc64 ;;
+                   esac
+               fi
+           fi
+       elif test "$UNAME_PROCESSOR" = i386 ; then
+           # Avoid executing cc on OS X 10.9, as it ships with a stub
+           # that puts up a graphical alert prompting to install
+           # developer tools.  Any system running Mac OS X 10.7 or
+           # later (Darwin 11 and later) is required to have a 64-bit
+           # processor. This is not true of the ARM version of Darwin
+           # that Apple uses in portable devices.
+           UNAME_PROCESSOR=x86_64
+       fi
        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
        exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1231,7 +1294,10 @@ EOF
     *:QNX:*:4*)
        echo i386-pc-qnx
        exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
+    NEO-?:NONSTOP_KERNEL:*:*)
+       echo neo-tandem-nsk${UNAME_RELEASE}
+       exit ;;
+    NSE-*:NONSTOP_KERNEL:*:*)
        echo nse-tandem-nsk${UNAME_RELEASE}
        exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
@@ -1276,13 +1342,13 @@ EOF
        echo pdp10-unknown-its
        exit ;;
     SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
+       echo mips-sei-seiux${UNAME_RELEASE}
        exit ;;
     *:DragonFly:*:*)
        echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
        exit ;;
     *:*VMS:*:*)
-       UNAME_MACHINE=`(uname -p) 2>/dev/null`
+       UNAME_MACHINE=`(uname -p) 2>/dev/null`
        case "${UNAME_MACHINE}" in
            A*) echo alpha-dec-vms ; exit ;;
            I*) echo ia64-dec-vms ; exit ;;
@@ -1300,158 +1366,10 @@ EOF
     i*86:AROS:*:*)
        echo ${UNAME_MACHINE}-pc-aros
        exit ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-         ""
-#endif
-         ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-       printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-       printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-       { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-       echo c1-convex-bsd
-       exit ;;
-    c2*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-       exit ;;
-    c34*)
-       echo c34-convex-bsd
-       exit ;;
-    c38*)
-       echo c38-convex-bsd
-       exit ;;
-    c4*)
-       echo c4-convex-bsd
+    x86_64:VMkernel:*:*)
+       echo ${UNAME_MACHINE}-unknown-esx
        exit ;;
-    esac
-fi
+esac
 
 cat >&2 <<EOF
 $0: unable to guess system type
index 17298f2..b625621 100755 (executable)
@@ -2,7 +2,7 @@
 # Output a system dependent set of variables, describing how to set the
 # run time search path of shared libraries in an executable.
 #
-#   Copyright 1996-2010 Free Software Foundation, Inc.
+#   Copyright 1996-2014 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
@@ -25,7 +25,7 @@
 #   known workaround is to choose shorter directory names for the build
 #   directory and/or the installation directory.
 
-# All known linkers require a `.a' archive for static linking (except MSVC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
 # which needs '.lib').
 libext=a
 shrext=.so
@@ -57,13 +57,6 @@ else
     aix*)
       wl='-Wl,'
       ;;
-    darwin*)
-      case $cc_basename in
-        xlc*)
-          wl='-Wl,'
-          ;;
-      esac
-      ;;
     mingw* | cygwin* | pw32* | os2* | cegcc*)
       ;;
     hpux9* | hpux10* | hpux11*)
@@ -72,9 +65,7 @@ else
     irix5* | irix6* | nonstopux*)
       wl='-Wl,'
       ;;
-    newsos6)
-      ;;
-    linux* | k*bsd*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
       case $cc_basename in
         ecc*)
           wl='-Wl,'
@@ -85,17 +76,26 @@ else
         lf95*)
           wl='-Wl,'
           ;;
-        pgcc | pgf77 | pgf90)
+        nagfor*)
+          wl='-Wl,-Wl,,'
+          ;;
+        pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
           wl='-Wl,'
           ;;
         ccc*)
           wl='-Wl,'
           ;;
+        xl* | bgxl* | bgf* | mpixl*)
+          wl='-Wl,'
+          ;;
         como)
           wl='-lopt='
           ;;
         *)
           case `$CC -V 2>&1 | sed 5q` in
+            *Sun\ F* | *Sun*Fortran*)
+              wl=
+              ;;
             *Sun\ C*)
               wl='-Wl,'
               ;;
@@ -103,13 +103,24 @@ else
           ;;
       esac
       ;;
+    newsos6)
+      ;;
+    *nto* | *qnx*)
+      ;;
     osf3* | osf4* | osf5*)
       wl='-Wl,'
       ;;
     rdos*)
       ;;
     solaris*)
-      wl='-Wl,'
+      case $cc_basename in
+        f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+          wl='-Qoption ld '
+          ;;
+        *)
+          wl='-Wl,'
+          ;;
+      esac
       ;;
     sunos4*)
       wl='-Qoption ld '
@@ -171,15 +182,14 @@ if test "$with_gnu_ld" = yes; then
       fi
       ;;
     amigaos*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we cannot use
-      # them.
-      ld_shlibs=no
+      case "$host_cpu" in
+        powerpc)
+          ;;
+        m68k)
+          hardcode_libdir_flag_spec='-L$libdir'
+          hardcode_minus_L=yes
+          ;;
+      esac
       ;;
     beos*)
       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
@@ -198,11 +208,13 @@ if test "$with_gnu_ld" = yes; then
         ld_shlibs=no
       fi
       ;;
+    haiku*)
+      ;;
     interix[3-9]*)
       hardcode_direct=no
       hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
       ;;
-    gnu* | linux* | k*bsd*-gnu)
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
         :
       else
@@ -325,10 +337,14 @@ else
       fi
       ;;
     amigaos*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs=no
+      case "$host_cpu" in
+        powerpc)
+          ;;
+        m68k)
+          hardcode_libdir_flag_spec='-L$libdir'
+          hardcode_minus_L=yes
+          ;;
+      esac
       ;;
     bsdi[45]*)
       ;;
@@ -342,29 +358,16 @@ else
       ;;
     darwin* | rhapsody*)
       hardcode_direct=no
-      if test "$GCC" = yes ; then
+      if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
         :
       else
-        case $cc_basename in
-          xlc*)
-            ;;
-          *)
-            ld_shlibs=no
-            ;;
-        esac
+        ld_shlibs=no
       fi
       ;;
     dgux*)
       hardcode_libdir_flag_spec='-L$libdir'
       ;;
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-    freebsd2.2*)
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      ;;
-    freebsd2*)
+    freebsd2.[01]*)
       hardcode_direct=yes
       hardcode_minus_L=yes
       ;;
@@ -420,6 +423,8 @@ else
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
       hardcode_libdir_separator=:
       ;;
+    *nto* | *qnx*)
+      ;;
     openbsd*)
       if test -f /usr/libexec/ld.so; then
         hardcode_direct=yes
@@ -515,7 +520,12 @@ case "$host_os" in
     library_names_spec='$libname$shrext'
     ;;
   amigaos*)
-    library_names_spec='$libname.a'
+    case "$host_cpu" in
+      powerpc*)
+        library_names_spec='$libname$shrext' ;;
+      m68k)
+        library_names_spec='$libname.a' ;;
+    esac
     ;;
   beos*)
     library_names_spec='$libname$shrext'
@@ -534,19 +544,18 @@ case "$host_os" in
   dgux*)
     library_names_spec='$libname$shrext'
     ;;
-  freebsd1*)
+  freebsd[23].*)
+    library_names_spec='$libname$shrext$versuffix'
     ;;
   freebsd* | dragonfly*)
-    case "$host_os" in
-      freebsd[123]*)
-        library_names_spec='$libname$shrext$versuffix' ;;
-      *)
-        library_names_spec='$libname$shrext' ;;
-    esac
+    library_names_spec='$libname$shrext'
     ;;
   gnu*)
     library_names_spec='$libname$shrext'
     ;;
+  haiku*)
+    library_names_spec='$libname$shrext'
+    ;;
   hpux9* | hpux10* | hpux11*)
     case $host_cpu in
       ia64*)
@@ -582,7 +591,7 @@ case "$host_os" in
     ;;
   linux*oldld* | linux*aout* | linux*coff*)
     ;;
-  linux* | k*bsd*-gnu)
+  linux* | k*bsd*-gnu | kopensolaris*-gnu)
     library_names_spec='$libname$shrext'
     ;;
   knetbsd*-gnu)
@@ -594,7 +603,7 @@ case "$host_os" in
   newsos6)
     library_names_spec='$libname$shrext'
     ;;
-  nto-qnx*)
+  *nto* | *qnx*)
     library_names_spec='$libname$shrext'
     ;;
   openbsd*)
@@ -625,6 +634,9 @@ case "$host_os" in
   sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
     library_names_spec='$libname$shrext'
     ;;
+  tpf*)
+    library_names_spec='$libname$shrext'
+    ;;
   uts4*)
     library_names_spec='$libname$shrext'
     ;;
index ae35431..88a0cb4 100755 (executable)
@@ -1,38 +1,31 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-#   Free Software Foundation, Inc.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
 
-timestamp='2010-03-22'
+timestamp='2014-07-28'
 
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -75,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -124,13 +115,18 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
-  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
+  android-linux)
+    os=-linux-android
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    ;;
   *)
     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
     if [ $basic_machine != $1 ]
@@ -153,12 +149,12 @@ case $os in
        -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple | -axis | -knuth | -cray | -microblaze)
+       -apple | -axis | -knuth | -cray | -microblaze*)
                os=
                basic_machine=$1
                ;;
-        -bluegene*)
-               os=-cnk
+       -bluegene*)
+               os=-cnk
                ;;
        -sim | -cisco | -oki | -wec | -winbond)
                os=
@@ -174,10 +170,10 @@ case $os in
                os=-chorusos
                basic_machine=$1
                ;;
-       -chorusrdb)
-               os=-chorusrdb
+       -chorusrdb)
+               os=-chorusrdb
                basic_machine=$1
-               ;;
+               ;;
        -hiux*)
                os=-hiuxwe2
                ;;
@@ -222,6 +218,12 @@ case $os in
        -isc*)
                basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
                ;;
+       -lynx*178)
+               os=-lynxos178
+               ;;
+       -lynx*5)
+               os=-lynxos5
+               ;;
        -lynx*)
                os=-lynxos
                ;;
@@ -246,20 +248,28 @@ case $basic_machine in
        # Some are omitted here because they have special meanings below.
        1750a | 580 \
        | a29k \
+       | aarch64 | aarch64_be \
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
        | am33_2.0 \
-       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+       | arc | arceb \
+       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+       | avr | avr32 \
+       | be32 | be64 \
        | bfin \
-       | c4x | clipper \
+       | c4x | c8051 | clipper \
        | d10v | d30v | dlx | dsp16xx \
+       | epiphany \
        | fido | fr30 | frv \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | hexagon \
        | i370 | i860 | i960 | ia64 \
        | ip2k | iq2000 \
+       | k1om \
+       | le32 | le64 \
        | lm32 \
        | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | maxq | mb | microblaze | mcore | mep | metag \
+       | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
        | mips | mipsbe | mipseb | mipsel | mipsle \
        | mips16 \
        | mips64 | mips64el \
@@ -273,33 +283,37 @@ case $basic_machine in
        | mips64vr5900 | mips64vr5900el \
        | mipsisa32 | mipsisa32el \
        | mipsisa32r2 | mipsisa32r2el \
+       | mipsisa32r6 | mipsisa32r6el \
        | mipsisa64 | mipsisa64el \
        | mipsisa64r2 | mipsisa64r2el \
+       | mipsisa64r6 | mipsisa64r6el \
        | mipsisa64sb1 | mipsisa64sb1el \
        | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipsr5900 | mipsr5900el \
        | mipstx39 | mipstx39el \
        | mn10200 | mn10300 \
        | moxie \
        | mt \
        | msp430 \
-       | nios | nios2 \
+       | nds32 | nds32le | nds32be \
+       | nios | nios2 | nios2eb | nios2el \
        | ns16k | ns32k \
-       | or32 \
+       | open8 | or1k | or1knd | or32 \
        | pdp10 | pdp11 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pyramid \
-       | rx \
+       | rl78 | rx \
        | score \
        | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
        | sh64 | sh64le \
        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu | strongarm \
-       | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+       | spu \
+       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
        | ubicom32 \
-       | v850 | v850e \
+       | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
        | we32k \
-       | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+       | x86 | xc16x | xstormy16 | xtensa \
        | z8k | z80)
                basic_machine=$basic_machine-unknown
                ;;
@@ -312,8 +326,7 @@ case $basic_machine in
        c6x)
                basic_machine=tic6x-unknown
                ;;
-       m6811 | m68hc11 | m6812 | m68hc12 | picochip)
-               # Motorola 68HC11/12.
+       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
                basic_machine=$basic_machine-unknown
                os=-none
                ;;
@@ -323,6 +336,21 @@ case $basic_machine in
                basic_machine=mt-unknown
                ;;
 
+       strongarm | thumb | xscale)
+               basic_machine=arm-unknown
+               ;;
+       xgate)
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       xscaleeb)
+               basic_machine=armeb-unknown
+               ;;
+
+       xscaleel)
+               basic_machine=armel-unknown
+               ;;
+
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
        # (2) the word "unknown" tends to confuse beginning users.
@@ -337,25 +365,31 @@ case $basic_machine in
        # Recognize the basic CPU types with company name.
        580-* \
        | a29k-* \
+       | aarch64-* | aarch64_be-* \
        | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
        | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
        | avr-* | avr32-* \
+       | be32-* | be64-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | clipper-* | craynv-* | cydra-* \
+       | c8051-* | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
        | elxsi-* \
        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
        | h8300-* | h8500-* \
        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+       | hexagon-* \
        | i*86-* | i860-* | i960-* | ia64-* \
        | ip2k-* | iq2000-* \
+       | k1om-* \
+       | le32-* | le64-* \
        | lm32-* \
        | m32c-* | m32r-* | m32rle-* \
        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+       | microblaze-* | microblazeel-* \
        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
        | mips16-* \
        | mips64-* | mips64el-* \
@@ -369,34 +403,41 @@ case $basic_machine in
        | mips64vr5900-* | mips64vr5900el-* \
        | mipsisa32-* | mipsisa32el-* \
        | mipsisa32r2-* | mipsisa32r2el-* \
+       | mipsisa32r6-* | mipsisa32r6el-* \
        | mipsisa64-* | mipsisa64el-* \
        | mipsisa64r2-* | mipsisa64r2el-* \
+       | mipsisa64r6-* | mipsisa64r6el-* \
        | mipsisa64sb1-* | mipsisa64sb1el-* \
        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipsr5900-* | mipsr5900el-* \
        | mipstx39-* | mipstx39el-* \
        | mmix-* \
        | mt-* \
        | msp430-* \
-       | nios-* | nios2-* \
+       | nds32-* | nds32le-* | nds32be-* \
+       | nios-* | nios2-* | nios2eb-* | nios2el-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
+       | open8-* \
+       | or1k*-* \
        | orion-* \
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
        | pyramid-* \
-       | romp-* | rs6000-* | rx-* \
+       | rl78-* | romp-* | rs6000-* | rx-* \
        | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
        | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
        | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
-       | tahoe-* | thumb-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+       | tahoe-* \
        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-       | tile-* | tilegx-* \
+       | tile*-* \
        | tron-* \
        | ubicom32-* \
-       | v850-* | v850e-* | vax-* \
+       | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+       | vax-* \
        | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* \
        | xstormy16-* | xtensa*-* \
        | ymp-* \
        | z8k-* | z80-*)
@@ -421,7 +462,7 @@ case $basic_machine in
                basic_machine=a29k-amd
                os=-udi
                ;;
-       abacus)
+       abacus)
                basic_machine=abacus-unknown
                ;;
        adobe68k)
@@ -504,7 +545,7 @@ case $basic_machine in
                basic_machine=c90-cray
                os=-unicos
                ;;
-        cegcc)
+       cegcc)
                basic_machine=arm-unknown
                os=-cegcc
                ;;
@@ -536,7 +577,7 @@ case $basic_machine in
                basic_machine=craynv-cray
                os=-unicosmp
                ;;
-       cr16)
+       cr16 | cr16-*)
                basic_machine=cr16-unknown
                os=-elf
                ;;
@@ -694,7 +735,6 @@ case $basic_machine in
        i370-ibm* | ibm*)
                basic_machine=i370-ibm
                ;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
        i*86v32)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv32
@@ -752,11 +792,15 @@ case $basic_machine in
                basic_machine=ns32k-utek
                os=-sysv
                ;;
-        microblaze)
+       microblaze*)
                basic_machine=microblaze-xilinx
                ;;
+       mingw64)
+               basic_machine=x86_64-pc
+               os=-mingw64
+               ;;
        mingw32)
-               basic_machine=i386-pc
+               basic_machine=i686-pc
                os=-mingw32
                ;;
        mingw32ce)
@@ -784,6 +828,10 @@ case $basic_machine in
                basic_machine=powerpc-unknown
                os=-morphos
                ;;
+       moxiebox)
+               basic_machine=moxie-unknown
+               os=-moxiebox
+               ;;
        msdos)
                basic_machine=i386-pc
                os=-msdos
@@ -791,10 +839,18 @@ case $basic_machine in
        ms1-*)
                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
                ;;
+       msys)
+               basic_machine=i686-pc
+               os=-msys
+               ;;
        mvs)
                basic_machine=i370-ibm
                os=-mvs
                ;;
+       nacl)
+               basic_machine=le32-unknown
+               os=-nacl
+               ;;
        ncr3000)
                basic_machine=i486-ncr
                os=-sysv4
@@ -859,6 +915,12 @@ case $basic_machine in
        np1)
                basic_machine=np1-gould
                ;;
+       neo-tandem)
+               basic_machine=neo-tandem
+               ;;
+       nse-tandem)
+               basic_machine=nse-tandem
+               ;;
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
@@ -941,9 +1003,10 @@ case $basic_machine in
                ;;
        power)  basic_machine=power-ibm
                ;;
-       ppc)    basic_machine=powerpc-unknown
+       ppc | ppcbe)    basic_machine=powerpc-unknown
                ;;
-       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+       ppc-* | ppcbe-*)
+               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        ppcle | powerpclittle | ppc-le | powerpc-little)
                basic_machine=powerpcle-unknown
@@ -968,7 +1031,11 @@ case $basic_machine in
                basic_machine=i586-unknown
                os=-pw32
                ;;
-       rdos)
+       rdos | rdos64)
+               basic_machine=x86_64-pc
+               os=-rdos
+               ;;
+       rdos32)
                basic_machine=i386-pc
                os=-rdos
                ;;
@@ -1037,6 +1104,9 @@ case $basic_machine in
                basic_machine=i860-stratus
                os=-sysv4
                ;;
+       strongarm-* | thumb-*)
+               basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
        sun2)
                basic_machine=m68000-sun
                ;;
@@ -1093,13 +1163,8 @@ case $basic_machine in
                basic_machine=t90-cray
                os=-unicos
                ;;
-        # This must be matched before tile*.
-        tilegx*)
-               basic_machine=tilegx-unknown
-               os=-linux-gnu
-               ;;
        tile*)
-               basic_machine=tile-unknown
+               basic_machine=$basic_machine-unknown
                os=-linux-gnu
                ;;
        tx39)
@@ -1169,6 +1234,9 @@ case $basic_machine in
        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
+       xscale-* | xscalee[bl]-*)
+               basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+               ;;
        ymp)
                basic_machine=ymp-cray
                os=-unicos
@@ -1266,11 +1334,11 @@ esac
 if [ x"$os" != x"" ]
 then
 case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
+       # First match some system type aliases
+       # that might get confused with valid system types.
        # -solaris* is a basic system type, with this one exception.
-        -auroraux)
-               os=-auroraux
+       -auroraux)
+               os=-auroraux
                ;;
        -solaris1 | -solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -1294,28 +1362,29 @@ case $os in
        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
              | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-             | -sym* | -kopensolaris* \
+             | -sym* | -kopensolaris* | -plan9* \
              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
              | -aos* | -aros* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-             | -openbsd* | -solidbsd* \
+             | -bitrig* | -openbsd* | -solidbsd* \
              | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
              | -chorusos* | -chorusrdb* | -cegcc* \
-             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
-             | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+             | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+             | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
              | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1354,7 +1423,7 @@ case $os in
        -opened*)
                os=-openedition
                ;;
-        -os400*)
+       -os400*)
                os=-os400
                ;;
        -wince*)
@@ -1403,7 +1472,7 @@ case $os in
        -sinix*)
                os=-sysv4
                ;;
-        -tpf*)
+       -tpf*)
                os=-tpf
                ;;
        -triton*)
@@ -1439,17 +1508,14 @@ case $os in
        -aros*)
                os=-aros
                ;;
-       -kaos*)
-               os=-kaos
-               ;;
        -zvmoe)
                os=-zvmoe
                ;;
        -dicos*)
                os=-dicos
                ;;
-        -nacl*)
-               ;;
+       -nacl*)
+               ;;
        -none)
                ;;
        *)
@@ -1472,10 +1538,10 @@ else
 # system, and we'll never get to this point.
 
 case $basic_machine in
-        score-*)
+       score-*)
                os=-elf
                ;;
-        spu-*)
+       spu-*)
                os=-elf
                ;;
        *-acorn)
@@ -1487,8 +1553,14 @@ case $basic_machine in
        arm*-semi)
                os=-aout
                ;;
-        c4x-* | tic4x-*)
-               os=-coff
+       c4x-* | tic4x-*)
+               os=-coff
+               ;;
+       c8051-*)
+               os=-elf
+               ;;
+       hexagon-*)
+               os=-elf
                ;;
        tic54x-*)
                os=-coff
@@ -1517,14 +1589,11 @@ case $basic_machine in
                ;;
        m68000-sun)
                os=-sunos3
-               # This also exists in the configure program, but was not the
-               # default.
-               # os=-sunos4
                ;;
        m68*-cisco)
                os=-aout
                ;;
-        mep-*)
+       mep-*)
                os=-elf
                ;;
        mips*-cisco)
@@ -1551,7 +1620,7 @@ case $basic_machine in
        *-ibm)
                os=-aix
                ;;
-       *-knuth)
+       *-knuth)
                os=-mmixware
                ;;
        *-wec)
index e5f9736..4ebd5b3 100755 (executable)
@@ -1,10 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2007-03-29.01
+scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
-# Foundation, Inc.
+# Copyright (C) 1999-2013 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
@@ -17,9 +16,7 @@ scriptversion=2007-03-29.01
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -30,9 +27,9 @@ scriptversion=2007-03-29.01
 
 case $1 in
   '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
   -h | --h*)
     cat <<\EOF
 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -42,11 +39,11 @@ as side-effects.
 
 Environment variables:
   depmode     Dependency tracking mode.
-  source      Source file read by `PROGRAMS ARGS'.
-  object      Object file output by `PROGRAMS ARGS'.
+  source      Source file read by 'PROGRAMS ARGS'.
+  object      Object file output by 'PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
-  tmpdepfile  Temporary file to use when outputing dependencies.
+  tmpdepfile  Temporary file to use when outputting dependencies.
   libtool     Whether libtool is used (yes/no).
 
 Report bugs to <bug-automake@gnu.org>.
@@ -59,6 +56,66 @@ EOF
     ;;
 esac
 
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
+# A tabulation character.
+tab='  '
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
   exit 1
@@ -71,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
 
 rm -f "$tmpdepfile"
 
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
 # Some modes work just like other modes, but use different flags.  We
 # parameterize here, but still list the modes in the big case below,
 # to make depend.m4 easier to write.  Note that we *cannot* use a case
@@ -82,9 +142,32 @@ if test "$depmode" = hp; then
 fi
 
 if test "$depmode" = dashXmstdout; then
-   # This is just like dashmstdout with a different argument.
-   dashmflag=-xM
-   depmode=dashmstdout
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
+fi
+
+if test "$depmode" = msvc7msys; then
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
 fi
 
 case "$depmode" in
@@ -107,8 +190,7 @@ gcc3)
   done
   "$@"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -116,13 +198,17 @@ gcc3)
   ;;
 
 gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
 ## There are various ways to get dependency output from gcc.  Here's
 ## why we pick this rather obscure method:
 ## - Don't want to use -MD because we'd like the dependencies to end
 ##   up in a subdir.  Having to rename by hand is ugly.
 ##   (We might end up doing this anyway to support other compilers.)
 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
 ## - Using -M directly means running the compiler twice (even worse
 ##   than renaming).
   if test -z "$gccflag"; then
@@ -130,31 +216,31 @@ gcc)
   fi
   "$@" -Wp,"$gccflag$tmpdepfile"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
+  # The second -e expression handles DOS-style file names with drive
+  # letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
+## This next piece of magic avoids the "deleted header file" problem.
 ## The problem is that when a header file which appears in a .P file
 ## is deleted, the dependency causes make to die (because there is
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'.  On the theory
+## Some versions of gcc put a space before the ':'.  On the theory
 ## that the space means something, we add a space to the output as
-## well.
+## well.  hp depmode also adds that space, but also prefixes the VPATH
+## to the object.  Take care to not repeat it in the output.
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -172,8 +258,7 @@ sgi)
     "$@" -MDupdate "$tmpdepfile"
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -181,43 +266,41 @@ sgi)
 
   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
     echo "$object : \\" > "$depfile"
-
     # Clip off the initial element (the dependent).  Don't try to be
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-    # the IRIX cc adds comments like `#:fec' to the end of the
+    # the IRIX cc adds comments like '#:fec' to the end of the
     # dependency line.
-    tr ' ' '
-' < "$tmpdepfile" \
-    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr '
-' ' ' >> $depfile
-    echo >> $depfile
-
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+      | tr "$nl" ' ' >> "$depfile"
+    echo >> "$depfile"
     # The second pass generates a dummy entry for each header file.
-    tr ' ' '
-' < "$tmpdepfile" \
-   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> $depfile
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+      >> "$depfile"
   else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile"
   ;;
 
+xlc)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
 aix)
   # The C for AIX Compiler uses -M and outputs the dependencies
   # in a .u file.  In older versions, this file always lives in the
-  # current directory.  Also, the AIX compiler puts `$object:' at the
+  # current directory.  Also, the AIX compiler puts '$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.u
     tmpdepfile2=$base.u
@@ -230,9 +313,7 @@ aix)
     "$@" -M
   fi
   stat=$?
-
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     exit $stat
   fi
@@ -241,44 +322,100 @@ aix)
   do
     test -f "$tmpdepfile" && break
   done
-  if test -f "$tmpdepfile"; then
-    # Each line is of the form `foo.o: dependent.h'.
-    # Do two passes, one to just change these to
-    # `$object: dependent.h' and one to simply `dependent.h:'.
-    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    # That's a tab and a space in the [].
-    sed -e 's,^.*\.[a-z]*:[     ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-  else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
   fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
-icc)
-  # Intel's C compiler understands `-MD -MF file'.  However on
-  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
-  # ICC 7.0 will fill foo.d with something like
-  #    foo.o: sub/foo.c
-  #    foo.o: sub/foo.h
-  # which is wrong.  We want:
-  #    sub/foo.o: sub/foo.c
-  #    sub/foo.o: sub/foo.h
-  #    sub/foo.c:
-  #    sub/foo.h:
-  # ICC 7.1 will output
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using \ :
+  # and will wrap long lines using '\' :
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
+
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
 
-  "$@" -MD -MF "$tmpdepfile"
-  stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -290,8 +427,8 @@ icc)
   sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
   # Some versions of the HPUX 10.20 sed can't process this invocation
   # correctly.  Breaking it into two sed invocations is a workaround.
-  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
-    sed -e 's/$/ :/' >> "$depfile"
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -302,9 +439,8 @@ hp2)
   # 'foo.d', which lands next to the object file, wherever that
   # happens to be.
   # Much of this is similar to the tru64 case; see comments there.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from  "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.d
     tmpdepfile2=$dir.libs/$base.d
@@ -315,8 +451,7 @@ hp2)
     "$@" +Maked
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
      rm -f "$tmpdepfile1" "$tmpdepfile2"
      exit $stat
   fi
@@ -326,72 +461,107 @@ hp2)
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
-    # Add `dependent.h:' lines.
-    sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add 'dependent.h:' lines.
+    sed -ne '2,${
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
   else
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile" "$tmpdepfile2"
   ;;
 
 tru64)
-   # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
-   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in `foo.d' instead, so we check for that too.
-   # Subdirectories are respected.
-   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-   test "x$dir" = "x$object" && dir=
-   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
-   if test "$libtool" = yes; then
-      # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mechanism is used in libtool 1.4 series to
-      # handle both shared and static libraries in a single compilation.
-      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
-      #
-      # With libtool 1.5 this exception was removed, and libtool now
-      # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in $dir.libs/$base.o.d and
-      # in $dir$base.o.d.  We have to check for both files, because
-      # one of the two compilations can be disabled.  We should prefer
-      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-      # automatically cleaned when .libs/ is deleted, while ignoring
-      # the former would cause a distcleancheck panic.
-      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
-      tmpdepfile2=$dir$base.o.d          # libtool 1.5
-      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
-      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
-      "$@" -Wc,-MD
-   else
-      tmpdepfile1=$dir$base.o.d
-      tmpdepfile2=$dir$base.d
-      tmpdepfile3=$dir$base.d
-      tmpdepfile4=$dir$base.d
-      "$@" -MD
-   fi
-
-   stat=$?
-   if test $stat -eq 0; then :
-   else
-      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-      exit $stat
-   fi
-
-   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-   do
-     test -f "$tmpdepfile" && break
-   done
-   if test -f "$tmpdepfile"; then
-      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      # That's a tab and a space in the [].
-      sed -e 's,^.*\.[a-z]*:[   ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-   else
-      echo "#dummy" > "$depfile"
-   fi
-   rm -f "$tmpdepfile"
-   ;;
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+  # dependencies in 'foo.d' instead, so we check for that too.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
+
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
+
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
+
+msvc7)
+  if test "$libtool" = yes; then
+    showIncludes=-Wc,-showIncludes
+  else
+    showIncludes=-showIncludes
+  fi
+  "$@" $showIncludes > "$tmpdepfile"
+  stat=$?
+  grep -v '^Note: including file: ' "$tmpdepfile"
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The first sed program below extracts the file names and escapes
+  # backslashes for cygpath.  The second sed program outputs the file
+  # name when reading, but also accumulates all include files in the
+  # hold buffer in order to output them again at the end.  This only
+  # works with sed implementations that can handle large buffers.
+  sed < "$tmpdepfile" -n '
+/^Note: including file:  *\(.*\)/ {
+  s//\1/
+  s/\\/\\\\/g
+  p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+  s/.*/'"$tab"'/
+  G
+  p
+}' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
+  rm -f "$tmpdepfile"
+  ;;
+
+msvc7msys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
 
 #nosideeffect)
   # This comment above is used by automake to tell side-effect
@@ -404,13 +574,13 @@ dashmstdout)
 
   # Remove the call to Libtool.
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -430,18 +600,18 @@ dashmstdout)
   done
 
   test -z "$dashmflag" && dashmflag=-M
-  # Require at least two characters before searching for `:'
+  # Require at least two characters before searching for ':'
   # in the target name.  This is to cope with DOS-style filenames:
-  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
   "$@" $dashmflag |
-    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' '
-' < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -455,41 +625,51 @@ makedepend)
   "$@" || exit $?
   # Remove any Libtool call
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
   fi
   # X makedepend
   shift
-  cleared=no
-  for arg in "$@"; do
+  cleared=no eat=no
+  for arg
+  do
     case $cleared in
     no)
       set ""; shift
       cleared=yes ;;
     esac
+    if test $eat = yes; then
+      eat=no
+      continue
+    fi
     case "$arg" in
     -D*|-I*)
       set fnord "$@" "$arg"; shift ;;
     # Strip any option that makedepend may not understand.  Remove
     # the object too, otherwise makedepend will parse it as a source file.
+    -arch)
+      eat=yes ;;
     -*|$object)
       ;;
     *)
       set fnord "$@" "$arg"; shift ;;
     esac
   done
-  obj_suffix="`echo $object | sed 's/^.*\././'`"
+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
   touch "$tmpdepfile"
   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
   rm -f "$depfile"
-  cat < "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' '
-' | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # makedepend may prepend the VPATH from the source file name to the object.
+  # No need to regex-escape $object, excess matching of '.' is harmless.
+  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile" "$tmpdepfile".bak
   ;;
 
@@ -500,13 +680,13 @@ cpp)
 
   # Remove the call to Libtool.
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -525,10 +705,10 @@ cpp)
     esac
   done
 
-  "$@" -E |
-    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
-    sed '$ s: \\$::' > "$tmpdepfile"
+  "$@" -E \
+    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    sed '$ s: \\$::' > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
   cat < "$tmpdepfile" >> "$depfile"
@@ -538,35 +718,56 @@ cpp)
 
 msvisualcpp)
   # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout, regardless of -o,
-  # because we must use -o when running libtool.
+  # always write the preprocessed file to stdout.
   "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
   IFS=" "
   for arg
   do
     case "$arg" in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
-       set fnord "$@"
-       shift
-       shift
-       ;;
+        set fnord "$@"
+        shift
+        shift
+        ;;
     *)
-       set fnord "$@" "$arg"
-       shift
-       shift
-       ;;
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
     esac
   done
-  "$@" -E |
-  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  "$@" -E 2>/dev/null |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::   \1 \\:p' >> "$depfile"
-  echo "       " >> "$depfile"
-  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+  echo "$tab" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
+msvcmsys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
 none)
   exec "$@"
   ;;
@@ -585,5 +786,6 @@ exit 0
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
index a5897de..377bb86 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2006-12-25.00
+scriptversion=2011-11-20.07; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,7 +35,7 @@ scriptversion=2006-12-25.00
 # FSF changes to this file are in the public domain.
 #
 # Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
+# 'make' implicit rules from creating a file called install from it
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
@@ -156,6 +156,10 @@ while test $# -ne 0; do
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
+       # Protect names problematic for 'test' and other utilities.
+       case $dst_arg in
+         -* | [=\(\)!]) dst_arg=./$dst_arg;;
+       esac
        shift;;
 
     -T) no_target_directory=true;;
@@ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
     fi
     shift # arg
     dst_arg=$arg
+    # Protect names problematic for 'test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
   done
 fi
 
@@ -194,13 +202,17 @@ if test $# -eq 0; then
     echo "$0: no input file specified." >&2
     exit 1
   fi
-  # It's OK to call `install-sh -d' without argument.
+  # It's OK to call 'install-sh -d' without argument.
   # This can happen when creating conditional directories.
   exit 0
 fi
 
 if test -z "$dir_arg"; then
-  trap '(exit $?); exit' 1 2 13 15
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
 
   # Set umask so as not to create temps with too-generous modes.
   # However, 'strip' requires both read and write access to temps.
@@ -228,9 +240,9 @@ fi
 
 for src
 do
-  # Protect names starting with `-'.
+  # Protect names problematic for 'test' and other utilities.
   case $src in
-    -*) src=./$src;;
+    -* | [=\(\)!]) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
@@ -252,12 +264,7 @@ do
       echo "$0: no destination specified." >&2
       exit 1
     fi
-
     dst=$dst_arg
-    # Protect names starting with `-'.
-    case $dst in
-      -*) dst=./$dst;;
-    esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
@@ -347,7 +354,7 @@ do
              if test -z "$dir_arg" || {
                   # Check for POSIX incompatibilities with -m.
                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-                  # other-writeable bit of parent directory when it shouldn't.
+                  # other-writable bit of parent directory when it shouldn't.
                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
                   case $ls_ld_tmpdir in
@@ -385,7 +392,7 @@ do
 
       case $dstdir in
        /*) prefix='/';;
-       -*) prefix='./';;
+       [-=\(\)!]*) prefix='./';;
        *)  prefix='';;
       esac
 
@@ -403,7 +410,7 @@ do
 
       for d
       do
-       test -z "$d" && continue
+       test X"$d" = X && continue
 
        prefix=$prefix$d
        if test -d "$prefix"; then
@@ -515,5 +522,6 @@ done
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
index 271873d..63ae69d 100644 (file)
@@ -1,9 +1,9 @@
-# Generated from ltmain.m4sh.
 
-# ltmain.sh (GNU libtool) 2.2.6
+# libtool (GNU libtool) 2.4.2
 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 #
 # Provide generalized library-building support services.
 #
-#     --config             show all configuration variables
-#     --debug              enable verbose shell tracing
-# -n, --dry-run            display commands without modifying any files
-#     --features           display basic configuration information and exit
-#     --mode=MODE          use operation mode MODE
-#     --preserve-dup-deps  don't remove duplicate dependency libraries
-#     --quiet, --silent    don't print informational messages
-#     --tag=TAG            use configuration variables from tag TAG
-# -v, --verbose            print informational messages (default)
-#     --version            print version information
-# -h, --help               print short or long help message
+#       --config             show all configuration variables
+#       --debug              enable verbose shell tracing
+#   -n, --dry-run            display commands without modifying any files
+#       --features           display basic configuration information and exit
+#       --mode=MODE          use operation mode MODE
+#       --preserve-dup-deps  don't remove duplicate dependency libraries
+#       --quiet, --silent    don't print informational messages
+#       --no-quiet, --no-silent
+#                            print informational messages (default)
+#       --no-warn            don't display warning messages
+#       --tag=TAG            use configuration variables from tag TAG
+#   -v, --verbose            print more informational messages than default
+#       --no-verbose         don't print the extra informational messages
+#       --version            print version information
+#   -h, --help, --help-all   print short, long, or detailed help message
 #
 # MODE must be one of the following:
 #
-#       clean              remove files from the build directory
-#       compile            compile a source file into a libtool object
-#       execute            automatically set library path, then run a program
-#       finish             complete the installation of libtool libraries
-#       install            install libraries or executables
-#       link               create a library or an executable
-#       uninstall          remove libraries from an installed directory
+#         clean              remove files from the build directory
+#         compile            compile a source file into a libtool object
+#         execute            automatically set library path, then run a program
+#         finish             complete the installation of libtool libraries
+#         install            install libraries or executables
+#         link               create a library or an executable
+#         uninstall          remove libraries from an installed directory
 #
-# MODE-ARGS vary depending on the MODE.
+# MODE-ARGS vary depending on the MODE.  When passed as first option,
+# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
 #
 # When reporting a bug, please describe a test case to reproduce it and
 # include the following information:
 #
-#       host-triplet:  $host
-#       shell:         $SHELL
-#       compiler:              $LTCC
-#       compiler flags:                $LTCFLAGS
-#       linker:                $LD (gnu? $with_gnu_ld)
-#       $progname:             (GNU libtool) 2.2.6
-#       automake:              $automake_version
-#       autoconf:              $autoconf_version
+#         host-triplet:        $host
+#         shell:               $SHELL
+#         compiler:            $LTCC
+#         compiler flags:              $LTCFLAGS
+#         linker:              $LD (gnu? $with_gnu_ld)
+#         $progname:   (GNU libtool) 2.4.2
+#         automake:    $automake_version
+#         autoconf:    $autoconf_version
 #
 # Report bugs to <bug-libtool@gnu.org>.
+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+# General help using GNU software: <http://www.gnu.org/gethelp/>.
 
-PROGRAM=ltmain.sh
+PROGRAM=libtool
 PACKAGE=libtool
-VERSION=2.2.6
+VERSION=2.4.2
 TIMESTAMP=""
-package_revision=1.3012
+package_revision=1.3337
 
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -91,10 +98,15 @@ fi
 BIN_SH=xpg4; export BIN_SH # for Tru64
 DUALCASE=1; export DUALCASE # for MKS sh
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
 # NLS nuisances: We save the old values to restore during execute mode.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
 lt_user_locale=
 lt_safe_locale=
 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
@@ -107,24 +119,28 @@ do
          lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
        fi"
 done
+LC_ALL=C
+LANGUAGE=C
+export LANGUAGE LC_ALL
 
 $lt_unset CDPATH
 
 
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
 
 
 
 : ${CP="cp -f"}
-: ${ECHO="echo"}
-: ${EGREP="/usr/bin/grep -E"}
-: ${FGREP="/usr/bin/grep -F"}
-: ${GREP="/usr/bin/grep"}
-: ${LN_S="ln -s"}
+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/opt/local/bin/gsed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -144,6 +160,27 @@ IFS="      $lt_nl"
 dirname="s,/[^/]*$,,"
 basename="s,^.*/,,"
 
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+} # func_dirname may be replaced by extended shell implementation
+
+
+# func_basename file
+func_basename ()
+{
+    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+} # func_basename may be replaced by extended shell implementation
+
+
 # func_dirname_and_basename file append nondir_replacement
 # perform func_basename and func_dirname in a single function
 # call:
@@ -158,33 +195,183 @@ basename="s,^.*/,,"
 # those functions but instead duplicate the functionality here.
 func_dirname_and_basename ()
 {
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+    # Extract subdirectory from the argument.
+    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
+} # func_dirname_and_basename may be replaced by extended shell implementation
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+    case ${2} in
+      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+    esac
+} # func_stripname may be replaced by extended shell implementation
+
+
+# These SED scripts presuppose an absolute path with a trailing slash.
+pathcar='s,^/\([^/]*\).*$,\1,'
+pathcdr='s,^/[^/]*,,'
+removedotparts=':dotsl
+               s@/\./@/@g
+               t dotsl
+               s,/\.$,/,'
+collapseslashes='s@/\{1,\}@/@g'
+finalslash='s,/*$,/,'
+
+# func_normal_abspath PATH
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+#             value returned in "$func_normal_abspath_result"
+func_normal_abspath ()
+{
+  # Start from root dir and reassemble the path.
+  func_normal_abspath_result=
+  func_normal_abspath_tpath=$1
+  func_normal_abspath_altnamespace=
+  case $func_normal_abspath_tpath in
+    "")
+      # Empty path, that just means $cwd.
+      func_stripname '' '/' "`pwd`"
+      func_normal_abspath_result=$func_stripname_result
+      return
+    ;;
+    # The next three entries are used to spot a run of precisely
+    # two leading slashes without using negated character classes;
+    # we take advantage of case's first-match behaviour.
+    ///*)
+      # Unusual form of absolute path, do nothing.
+    ;;
+    //*)
+      # Not necessarily an ordinary path; POSIX reserves leading '//'
+      # and for example Cygwin uses it to access remote file shares
+      # over CIFS/SMB, so we conserve a leading double slash if found.
+      func_normal_abspath_altnamespace=/
+    ;;
+    /*)
+      # Absolute path, do nothing.
+    ;;
+    *)
+      # Relative path, prepend $cwd.
+      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+    ;;
+  esac
+  # Cancel out all the simple stuff to save iterations.  We also want
+  # the path to end with a slash for ease of parsing, so make sure
+  # there is one (and only one) here.
+  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
+  while :; do
+    # Processed it all yet?
+    if test "$func_normal_abspath_tpath" = / ; then
+      # If we ascended to the root using ".." the result may be empty now.
+      if test -z "$func_normal_abspath_result" ; then
+        func_normal_abspath_result=/
+      fi
+      break
+    fi
+    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcar"`
+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcdr"`
+    # Figure out what to do with it
+    case $func_normal_abspath_tcomponent in
+      "")
+        # Trailing empty path component, ignore it.
+      ;;
+      ..)
+        # Parent dir; strip last assembled component from result.
+        func_dirname "$func_normal_abspath_result"
+        func_normal_abspath_result=$func_dirname_result
+      ;;
+      *)
+        # Actual path component, append it.
+        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
+      ;;
+    esac
+  done
+  # Restore leading double-slash if one was found on entry.
+  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
 }
 
-# Generated shell functions inserted here.
+# func_relative_path SRCDIR DSTDIR
+# generates a relative path from SRCDIR to DSTDIR, with a trailing
+# slash if non-empty, suitable for immediately appending a filename
+# without needing to append a separator.
+#             value returned in "$func_relative_path_result"
+func_relative_path ()
+{
+  func_relative_path_result=
+  func_normal_abspath "$1"
+  func_relative_path_tlibdir=$func_normal_abspath_result
+  func_normal_abspath "$2"
+  func_relative_path_tbindir=$func_normal_abspath_result
+
+  # Ascend the tree starting from libdir
+  while :; do
+    # check if we have found a prefix of bindir
+    case $func_relative_path_tbindir in
+      $func_relative_path_tlibdir)
+        # found an exact match
+        func_relative_path_tcancelled=
+        break
+        ;;
+      $func_relative_path_tlibdir*)
+        # found a matching prefix
+        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+        func_relative_path_tcancelled=$func_stripname_result
+        if test -z "$func_relative_path_result"; then
+          func_relative_path_result=.
+        fi
+        break
+        ;;
+      *)
+        func_dirname $func_relative_path_tlibdir
+        func_relative_path_tlibdir=${func_dirname_result}
+        if test "x$func_relative_path_tlibdir" = x ; then
+          # Have to descend all the way to the root!
+          func_relative_path_result=../$func_relative_path_result
+          func_relative_path_tcancelled=$func_relative_path_tbindir
+          break
+        fi
+        func_relative_path_result=../$func_relative_path_result
+        ;;
+    esac
+  done
 
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
+  # Now calculate path; take care to avoid doubling-up slashes.
+  func_stripname '' '/' "$func_relative_path_result"
+  func_relative_path_result=$func_stripname_result
+  func_stripname '/' '/' "$func_relative_path_tcancelled"
+  if test "x$func_stripname_result" != x ; then
+    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
+  fi
+
+  # Normalisation. If bindir is libdir, return empty string,
+  # else relative path ending with a slash; either way, target
+  # file name can be directly appended.
+  if test ! -z "$func_relative_path_result"; then
+    func_stripname './' '' "$func_relative_path_result/"
+    func_relative_path_result=$func_stripname_result
+  fi
+}
 
 # The name of this program:
-# In the unlikely event $progname began with a '-', it would play havoc with
-# func_echo (imagine progname=-n), so we prepend ./ in that case:
 func_dirname_and_basename "$progpath"
 progname=$func_basename_result
-case $progname in
-  -*) progname=./$progname ;;
-esac
 
 # Make sure we have an absolute path for reexecution:
 case $progpath in
@@ -196,7 +383,7 @@ case $progpath in
      ;;
   *)
      save_IFS="$IFS"
-     IFS=:
+     IFS=${PATH_SEPARATOR-:}
      for progdir in $PATH; do
        IFS="$save_IFS"
        test -x "$progdir/$progname" && break
@@ -215,6 +402,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
 # Same as above, but do not quote variable references.
 double_quote_subst='s/\(["`\\]\)/\\\1/g'
 
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+
+# Sed substitution that converts a w32 file name or path
+# which contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
 # Re-`\' parameter expansions in output of double_quote_subst that were
 # `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
 # in input to double_quote_subst, that '$' was protected from expansion.
@@ -243,7 +439,7 @@ opt_warning=:
 # name if it has been set yet.
 func_echo ()
 {
-    $ECHO "$progname${mode+: }$mode: $*"
+    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
 }
 
 # func_verbose arg...
@@ -258,18 +454,25 @@ func_verbose ()
     :
 }
 
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
 # func_error arg...
 # Echo program name prefixed message to standard error.
 func_error ()
 {
-    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
+    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
 }
 
 # func_warning arg...
 # Echo program name prefixed warning message to standard error.
 func_warning ()
 {
-    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
 
     # bash bug again:
     :
@@ -326,9 +529,9 @@ func_mkdir_p ()
         case $my_directory_path in */*) ;; *) break ;; esac
 
         # ...otherwise throw away the child directory and loop
-        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
+        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
       done
-      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
+      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
 
       save_mkdir_p_IFS="$IFS"; IFS=':'
       for my_dir in $my_dir_list; do
@@ -378,7 +581,7 @@ func_mktempdir ()
         func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
     fi
 
-    $ECHO "X$my_tmpdir" | $Xsed
+    $ECHO "$my_tmpdir"
 }
 
 
@@ -392,7 +595,7 @@ func_quote_for_eval ()
 {
     case $1 in
       *[\\\`\"\$]*)
-       func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
+       func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
       *)
         func_quote_for_eval_unquoted_result="$1" ;;
     esac
@@ -419,7 +622,7 @@ func_quote_for_expand ()
 {
     case $1 in
       *[\\\`\"]*)
-       my_arg=`$ECHO "X$1" | $Xsed \
+       my_arg=`$ECHO "$1" | $SED \
            -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
       *)
         my_arg="$1" ;;
@@ -488,15 +691,39 @@ func_show_eval_locale ()
     fi
 }
 
-
-
+# func_tr_sh
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result.  All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+  case $1 in
+  [0-9]* | *[!a-zA-Z0-9_]*)
+    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
+    ;;
+  * )
+    func_tr_sh_result=$1
+    ;;
+  esac
+}
 
 
 # func_version
 # Echo version message to standard output and exit.
 func_version ()
 {
-    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
+    $opt_debug
+
+    $SED -n '/(C)/!b go
+       :more
+       /\./!{
+         N
+         s/\n# / /
+         b more
+       }
+       :go
+       /^# '$PROGRAM' (GNU /,/# warranty; / {
         s/^# //
        s/^# *$//
         s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
@@ -509,22 +736,28 @@ func_version ()
 # Echo short help message to standard output and exit.
 func_usage ()
 {
-    $SED -n '/^# Usage:/,/# -h/ {
+    $opt_debug
+
+    $SED -n '/^# Usage:/,/^#  *.*--help/ {
         s/^# //
        s/^# *$//
        s/\$progname/'$progname'/
        p
     }' < "$progpath"
-    $ECHO
+    echo
     $ECHO "run \`$progname --help | more' for full usage"
     exit $?
 }
 
-# func_help
-# Echo long help message to standard output and exit.
+# func_help [NOEXIT]
+# Echo long help message to standard output and exit,
+# unless 'noexit' is passed as argument.
 func_help ()
 {
+    $opt_debug
+
     $SED -n '/^# Usage:/,/# Report bugs to/ {
+       :print
         s/^# //
        s/^# *$//
        s*\$progname*'$progname'*
@@ -534,11 +767,18 @@ func_help ()
        s*\$LTCFLAGS*'"$LTCFLAGS"'*
        s*\$LD*'"$LD"'*
        s/\$with_gnu_ld/'"$with_gnu_ld"'/
-       s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
-       s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+       s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
+       s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
        p
-     }' < "$progpath"
-    exit $?
+       d
+     }
+     /^# .* home page:/b print
+     /^# General help using/b print
+     ' < "$progpath"
+    ret=$?
+    if test -z "$1"; then
+      exit $ret
+    fi
 }
 
 # func_missing_arg argname
@@ -546,63 +786,106 @@ func_help ()
 # exit_cmd.
 func_missing_arg ()
 {
-    func_error "missing argument for $1"
+    $opt_debug
+
+    func_error "missing argument for $1."
     exit_cmd=exit
 }
 
-exit_cmd=:
 
+# func_split_short_opt shortopt
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+func_split_short_opt ()
+{
+    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
+    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
 
+    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
+    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
+} # func_split_short_opt may be replaced by extended shell implementation
+
+
+# func_split_long_opt longopt
+# Set func_split_long_opt_name and func_split_long_opt_arg shell
+# variables after splitting LONGOPT at the `=' sign.
+func_split_long_opt ()
+{
+    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
+    my_sed_long_arg='1s/^--[^=]*=//'
+
+    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
+    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
+} # func_split_long_opt may be replaced by extended shell implementation
+
+exit_cmd=:
 
 
 
-# Check that we have a working $ECHO.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell, and then maybe $ECHO will work.
-  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
-fi
 
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit $EXIT_SUCCESS
-fi
 
 magic="%%%MAGIC variable%%%"
 magic_exe="%%%MAGIC EXE variable%%%"
 
 # Global variables.
-# $mode is unset
 nonopt=
-execute_dlfiles=
 preserve_args=
 lo2o="s/\\.lo\$/.${objext}/"
 o2lo="s/\\.${objext}\$/.lo/"
 extracted_archives=
 extracted_serial=0
 
-opt_dry_run=false
-opt_duplicate_deps=false
-opt_silent=false
-opt_debug=:
-
 # If this variable is set in any of the actions, the command in it
 # will be execed at the end.  This prevents here-documents from being
 # left over by shells.
 exec_cmd=
 
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+    eval "${1}=\$${1}\${2}"
+} # func_append may be replaced by extended shell implementation
+
+# func_append_quoted var value
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+func_append_quoted ()
+{
+    func_quote_for_eval "${2}"
+    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
+} # func_append_quoted may be replaced by extended shell implementation
+
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+    func_arith_result=`expr "${@}"`
+} # func_arith may be replaced by extended shell implementation
+
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
+} # func_len may be replaced by extended shell implementation
+
+
+# func_lo2o object
+func_lo2o ()
+{
+    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+} # func_lo2o may be replaced by extended shell implementation
+
+
+# func_xform libobj-or-source
+func_xform ()
+{
+    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+} # func_xform may be replaced by extended shell implementation
+
+
 # func_fatal_configuration arg...
 # Echo program name prefixed message to standard error, followed by
 # a configuration failure hint, and exit.
@@ -636,16 +919,16 @@ func_config ()
 # Display the features supported by this script.
 func_features ()
 {
-    $ECHO "host: $host"
+    echo "host: $host"
     if test "$build_libtool_libs" = yes; then
-      $ECHO "enable shared libraries"
+      echo "enable shared libraries"
     else
-      $ECHO "disable shared libraries"
+      echo "disable shared libraries"
     fi
     if test "$build_old_libs" = yes; then
-      $ECHO "enable static libraries"
+      echo "enable static libraries"
     else
-      $ECHO "disable static libraries"
+      echo "disable static libraries"
     fi
 
     exit $?
@@ -692,117 +975,209 @@ func_enable_tag ()
   esac
 }
 
-# Parse options once, thoroughly.  This comes as soon as possible in
-# the script to make things like `libtool --version' happen quickly.
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
 {
+  if test "$package_revision" != "$macro_revision"; then
+    if test "$VERSION" != "$macro_version"; then
+      if test -z "$macro_version"; then
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      fi
+    else
+      cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+    fi
+
+    exit $EXIT_MISMATCH
+  fi
+}
+
+
+# Shorthand for --mode=foo, only valid as the first argument
+case $1 in
+clean|clea|cle|cl)
+  shift; set dummy --mode clean ${1+"$@"}; shift
+  ;;
+compile|compil|compi|comp|com|co|c)
+  shift; set dummy --mode compile ${1+"$@"}; shift
+  ;;
+execute|execut|execu|exec|exe|ex|e)
+  shift; set dummy --mode execute ${1+"$@"}; shift
+  ;;
+finish|finis|fini|fin|fi|f)
+  shift; set dummy --mode finish ${1+"$@"}; shift
+  ;;
+install|instal|insta|inst|ins|in|i)
+  shift; set dummy --mode install ${1+"$@"}; shift
+  ;;
+link|lin|li|l)
+  shift; set dummy --mode link ${1+"$@"}; shift
+  ;;
+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+  shift; set dummy --mode uninstall ${1+"$@"}; shift
+  ;;
+esac
+
+
+
+# Option defaults:
+opt_debug=:
+opt_dry_run=false
+opt_config=false
+opt_preserve_dup_deps=false
+opt_features=false
+opt_finish=false
+opt_help=false
+opt_help_all=false
+opt_silent=:
+opt_warning=:
+opt_verbose=:
+opt_silent=false
+opt_verbose=false
 
-  # Shorthand for --mode=foo, only valid as the first argument
-  case $1 in
-  clean|clea|cle|cl)
-    shift; set dummy --mode clean ${1+"$@"}; shift
-    ;;
-  compile|compil|compi|comp|com|co|c)
-    shift; set dummy --mode compile ${1+"$@"}; shift
-    ;;
-  execute|execut|execu|exec|exe|ex|e)
-    shift; set dummy --mode execute ${1+"$@"}; shift
-    ;;
-  finish|finis|fini|fin|fi|f)
-    shift; set dummy --mode finish ${1+"$@"}; shift
-    ;;
-  install|instal|insta|inst|ins|in|i)
-    shift; set dummy --mode install ${1+"$@"}; shift
-    ;;
-  link|lin|li|l)
-    shift; set dummy --mode link ${1+"$@"}; shift
-    ;;
-  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-    shift; set dummy --mode uninstall ${1+"$@"}; shift
-    ;;
-  esac
 
-  # Parse non-mode specific arguments:
-  while test "$#" -gt 0; do
+# Parse options once, thoroughly.  This comes as soon as possible in the
+# script to make things like `--version' happen as quickly as we can.
+{
+  # this just eases exit handling
+  while test $# -gt 0; do
     opt="$1"
     shift
-
     case $opt in
-      --config)                func_config                                     ;;
-
-      --debug)         preserve_args="$preserve_args $opt"
+      --debug|-x)      opt_debug='set -x'
                        func_echo "enabling shell trace mode"
-                       opt_debug='set -x'
                        $opt_debug
                        ;;
-
-      -dlopen)         test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       execute_dlfiles="$execute_dlfiles $1"
-                       shift
+      --dry-run|--dryrun|-n)
+                       opt_dry_run=:
                        ;;
-
-      --dry-run | -n)  opt_dry_run=:                                   ;;
-      --features)       func_features                                  ;;
-      --finish)                mode="finish"                                   ;;
-
-      --mode)          test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       case $1 in
-                         # Valid mode arguments:
-                         clean)        ;;
-                         compile)      ;;
-                         execute)      ;;
-                         finish)       ;;
-                         install)      ;;
-                         link)         ;;
-                         relink)       ;;
-                         uninstall)    ;;
-
-                         # Catch anything else as an error
-                         *) func_error "invalid argument for $opt"
-                            exit_cmd=exit
-                            break
-                            ;;
-                       esac
-
-                       mode="$1"
+      --config)
+                       opt_config=:
+func_config
+                       ;;
+      --dlopen|-dlopen)
+                       optarg="$1"
+                       opt_dlopen="${opt_dlopen+$opt_dlopen
+}$optarg"
                        shift
                        ;;
-
       --preserve-dup-deps)
-                       opt_duplicate_deps=:                            ;;
-
-      --quiet|--silent)        preserve_args="$preserve_args $opt"
-                       opt_silent=:
+                       opt_preserve_dup_deps=:
                        ;;
-
-      --verbose| -v)   preserve_args="$preserve_args $opt"
+      --features)
+                       opt_features=:
+func_features
+                       ;;
+      --finish)
+                       opt_finish=:
+set dummy --mode finish ${1+"$@"}; shift
+                       ;;
+      --help)
+                       opt_help=:
+                       ;;
+      --help-all)
+                       opt_help_all=:
+opt_help=': help-all'
+                       ;;
+      --mode)
+                       test $# = 0 && func_missing_arg $opt && break
+                       optarg="$1"
+                       opt_mode="$optarg"
+case $optarg in
+  # Valid mode arguments:
+  clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+  # Catch anything else as an error
+  *) func_error "invalid argument for $opt"
+     exit_cmd=exit
+     break
+     ;;
+esac
+                       shift
+                       ;;
+      --no-silent|--no-quiet)
                        opt_silent=false
+func_append preserve_args " $opt"
                        ;;
-
-      --tag)           test "$#" -eq 0 && func_missing_arg "$opt" && break
-                       preserve_args="$preserve_args $opt $1"
-                       func_enable_tag "$1"    # tagname is set here
+      --no-warning|--no-warn)
+                       opt_warning=false
+func_append preserve_args " $opt"
+                       ;;
+      --no-verbose)
+                       opt_verbose=false
+func_append preserve_args " $opt"
+                       ;;
+      --silent|--quiet)
+                       opt_silent=:
+func_append preserve_args " $opt"
+        opt_verbose=false
+                       ;;
+      --verbose|-v)
+                       opt_verbose=:
+func_append preserve_args " $opt"
+opt_silent=false
+                       ;;
+      --tag)
+                       test $# = 0 && func_missing_arg $opt && break
+                       optarg="$1"
+                       opt_tag="$optarg"
+func_append preserve_args " $opt $optarg"
+func_enable_tag "$optarg"
                        shift
                        ;;
 
+      -\?|-h)          func_usage                              ;;
+      --help)          func_help                               ;;
+      --version)       func_version                            ;;
+
       # Separate optargs to long options:
-      -dlopen=*|--mode=*|--tag=*)
-                       func_opt_split "$opt"
-                       set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
+      --*=*)
+                       func_split_long_opt "$opt"
+                       set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
                        shift
                        ;;
 
-      -\?|-h)          func_usage                                      ;;
-      --help)          opt_help=:                                      ;;
-      --version)       func_version                                    ;;
-
-      -*)              func_fatal_help "unrecognized option \`$opt'"   ;;
-
-      *)               nonopt="$opt"
-                       break
+      # Separate non-argument short options:
+      -\?*|-h*|-n*|-v*)
+                       func_split_short_opt "$opt"
+                       set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
+                       shift
                        ;;
+
+      --)              break                                   ;;
+      -*)              func_fatal_help "unrecognized option \`$opt'" ;;
+      *)               set dummy "$opt" ${1+"$@"};     shift; break  ;;
     esac
   done
 
+  # Validate options:
+
+  # save first non-option argument
+  if test "$#" -gt 0; then
+    nonopt="$opt"
+    shift
+  fi
+
+  # preserve --debug
+  test "$opt_debug" = : || func_append preserve_args " --debug"
 
   case $host in
     *cygwin* | *mingw* | *pw32* | *cegcc*)
@@ -810,82 +1185,44 @@ func_enable_tag ()
       opt_duplicate_compiler_generated_deps=:
       ;;
     *)
-      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
+      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
       ;;
   esac
 
-  # Having warned about all mis-specified options, bail out if
-  # anything was wrong.
-  $exit_cmd $EXIT_FAILURE
-}
+  $opt_help || {
+    # Sanity checks first:
+    func_check_version_match
 
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
-  if test "$package_revision" != "$macro_revision"; then
-    if test "$VERSION" != "$macro_version"; then
-      if test -z "$macro_version"; then
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      else
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      fi
-    else
-      cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
+    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+      func_fatal_configuration "not configured to build any kind of library"
     fi
 
-    exit $EXIT_MISMATCH
-  fi
-}
-
-
-## ----------- ##
-##    Main.    ##
-## ----------- ##
-
-$opt_help || {
-  # Sanity checks first:
-  func_check_version_match
+    # Darwin sucks
+    eval std_shrext=\"$shrext_cmds\"
 
-  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-    func_fatal_configuration "not configured to build any kind of library"
-  fi
+    # Only execute mode is allowed to have -dlopen flags.
+    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
+      func_error "unrecognized option \`-dlopen'"
+      $ECHO "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
 
-  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
+    # Change the help message to a mode-specific one.
+    generic_help="$help"
+    help="Try \`$progname --help --mode=$opt_mode' for more information."
+  }
 
 
-  # Darwin sucks
-  eval std_shrext=\"$shrext_cmds\"
+  # Bail if the options were screwed
+  $exit_cmd $EXIT_FAILURE
+}
 
 
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    func_error "unrecognized option \`-dlopen'"
-    $ECHO "$help" 1>&2
-    exit $EXIT_FAILURE
-  fi
 
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$progname --help --mode=$mode' for more information."
-}
 
+## ----------- ##
+##    Main.    ##
+## ----------- ##
 
 # func_lalib_p file
 # True iff FILE is a libtool `.la' library or `.lo' object file.
@@ -950,12 +1287,9 @@ func_ltwrapper_executable_p ()
 # temporary ltwrapper_script.
 func_ltwrapper_scriptname ()
 {
-    func_ltwrapper_scriptname_result=""
-    if func_ltwrapper_executable_p "$1"; then
-       func_dirname_and_basename "$1" "" "."
-       func_stripname '' '.exe' "$func_basename_result"
-       func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-    fi
+    func_dirname_and_basename "$1" "" "."
+    func_stripname '' '.exe' "$func_basename_result"
+    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
 }
 
 # func_ltwrapper_p file
@@ -1001,6 +1335,37 @@ func_source ()
 }
 
 
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot.  Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+  func_resolve_sysroot_result=$1
+  case $func_resolve_sysroot_result in
+  =*)
+    func_stripname '=' '' "$func_resolve_sysroot_result"
+    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+    ;;
+  esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+  case "$lt_sysroot:$1" in
+  ?*:"$lt_sysroot"*)
+    func_stripname "$lt_sysroot" '' "$1"
+    func_replace_sysroot_result="=$func_stripname_result"
+    ;;
+  *)
+    # Including no sysroot.
+    func_replace_sysroot_result=$1
+    ;;
+  esac
+}
+
 # func_infer_tag arg
 # Infer tagged configuration to use if any are available and
 # if one wasn't chosen via the "--tag" command line option.
@@ -1013,13 +1378,15 @@ func_infer_tag ()
     if test -n "$available_tags" && test -z "$tagname"; then
       CC_quoted=
       for arg in $CC; do
-        func_quote_for_eval "$arg"
-       CC_quoted="$CC_quoted $func_quote_for_eval_result"
+       func_append_quoted CC_quoted "$arg"
       done
+      CC_expanded=`func_echo_all $CC`
+      CC_quoted_expanded=`func_echo_all $CC_quoted`
       case $@ in
       # Blanks in the command may have been stripped by the calling shell,
       # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
+      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
       # Blanks at the start of $base_compile will cause this to fail
       # if we don't check for them as well.
       *)
@@ -1030,11 +1397,13 @@ func_infer_tag ()
            CC_quoted=
            for arg in $CC; do
              # Double-quote args containing other shell metacharacters.
-             func_quote_for_eval "$arg"
-             CC_quoted="$CC_quoted $func_quote_for_eval_result"
+             func_append_quoted CC_quoted "$arg"
            done
+           CC_expanded=`func_echo_all $CC`
+           CC_quoted_expanded=`func_echo_all $CC_quoted`
            case "$@ " in
-             " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
+           " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+           " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
              # The compiler in the base compile command matches
              # the one in the tagged configuration.
              # Assume this is the tagged configuration we want.
@@ -1097,6 +1466,486 @@ EOF
     }
 }
 
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+  $opt_debug
+  func_convert_core_file_wine_to_w32_result="$1"
+  if test -n "$1"; then
+    # Unfortunately, winepath does not exit with a non-zero error code, so we
+    # are forced to check the contents of stdout. On the other hand, if the
+    # command is not found, the shell will set an exit code of 127 and print
+    # *an error message* to stdout. So we must check for both error code of
+    # zero AND non-empty stdout, which explains the odd construction:
+    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+        $SED -e "$lt_sed_naive_backslashify"`
+    else
+      func_convert_core_file_wine_to_w32_result=
+    fi
+  fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+  $opt_debug
+  # unfortunately, winepath doesn't convert paths, only file names
+  func_convert_core_path_wine_to_w32_result=""
+  if test -n "$1"; then
+    oldIFS=$IFS
+    IFS=:
+    for func_convert_core_path_wine_to_w32_f in $1; do
+      IFS=$oldIFS
+      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+        if test -z "$func_convert_core_path_wine_to_w32_result"; then
+          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+        else
+          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+        fi
+      fi
+    done
+    IFS=$oldIFS
+  fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+  $opt_debug
+  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+    if test "$?" -ne 0; then
+      # on failure, ensure result is empty
+      func_cygpath_result=
+    fi
+  else
+    func_cygpath_result=
+    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+  fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format.  Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+  $opt_debug
+  # awkward: cmd appends spaces to result
+  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+  $opt_debug
+  if test -z "$2" && test -n "$1" ; then
+    func_error "Could not determine host file name corresponding to"
+    func_error "  \`$1'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback:
+    func_to_host_file_result="$1"
+  fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+  $opt_debug
+  if test -z "$4" && test -n "$3"; then
+    func_error "Could not determine the host path corresponding to"
+    func_error "  \`$3'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback.  This is a deliberately simplistic "conversion" and
+    # should not be "improved".  See libtool.info.
+    if test "x$1" != "x$2"; then
+      lt_replace_pathsep_chars="s|$1|$2|g"
+      func_to_host_path_result=`echo "$3" |
+        $SED -e "$lt_replace_pathsep_chars"`
+    else
+      func_to_host_path_result="$3"
+    fi
+  fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+  $opt_debug
+  case $4 in
+  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+    ;;
+  esac
+  case $4 in
+  $2 ) func_append func_to_host_path_result "$3"
+    ;;
+  esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via `$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+  $opt_debug
+  $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result.  If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+  $opt_debug
+  case ,$2, in
+    *,"$to_tool_file_cmd",*)
+      func_to_tool_file_result=$1
+      ;;
+    *)
+      $to_tool_file_cmd "$1"
+      func_to_tool_file_result=$func_to_host_file_result
+      ;;
+  esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+  func_to_host_file_result="$1"
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+    # LT_CYGPATH in this case.
+    func_to_host_file_result=`cygpath -m "$1"`
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format.  Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_file_wine_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+    func_convert_core_file_wine_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via `$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format.  If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+#   file name conversion function    : func_convert_file_X_to_Y ()
+#   path conversion function         : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same.  If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+  $opt_debug
+  if test -z "$to_host_path_cmd"; then
+    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+    to_host_path_cmd="func_convert_path_${func_stripname_result}"
+  fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+  $opt_debug
+  func_init_to_host_path_cmd
+  $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+  func_to_host_path_result="$1"
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from ARG.  MSYS
+    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+    # and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format.  Requires a wine environment and
+# a working winepath.  Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from
+    # ARG. msys behavior is inconsistent here, cygpath turns them
+    # into '.;' and ';.', and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
 # func_mode_compile arg...
 func_mode_compile ()
 {
@@ -1137,12 +1986,12 @@ func_mode_compile ()
          ;;
 
        -pie | -fpie | -fPIE)
-          pie_flag="$pie_flag $arg"
+          func_append pie_flag " $arg"
          continue
          ;;
 
        -shared | -static | -prefer-pic | -prefer-non-pic)
-         later="$later $arg"
+         func_append later " $arg"
          continue
          ;;
 
@@ -1163,15 +2012,14 @@ func_mode_compile ()
          save_ifs="$IFS"; IFS=','
          for arg in $args; do
            IFS="$save_ifs"
-           func_quote_for_eval "$arg"
-           lastarg="$lastarg $func_quote_for_eval_result"
+           func_append_quoted lastarg "$arg"
          done
          IFS="$save_ifs"
          func_stripname ' ' '' "$lastarg"
          lastarg=$func_stripname_result
 
          # Add the arguments to base_compile.
-         base_compile="$base_compile $lastarg"
+         func_append base_compile " $lastarg"
          continue
          ;;
 
@@ -1187,8 +2035,7 @@ func_mode_compile ()
       esac    #  case $arg_mode
 
       # Aesthetically quote the previous argument.
-      func_quote_for_eval "$lastarg"
-      base_compile="$base_compile $func_quote_for_eval_result"
+      func_append_quoted base_compile "$lastarg"
     done # for arg
 
     case $arg_mode in
@@ -1213,7 +2060,7 @@ func_mode_compile ()
     *.[cCFSifmso] | \
     *.ada | *.adb | *.ads | *.asm | \
     *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
+    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
       func_xform "$libobj"
       libobj=$func_xform_result
       ;;
@@ -1288,7 +2135,7 @@ func_mode_compile ()
     # Calculate the filename of the output object if compiler does
     # not support -o with -c
     if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
       lockfile="$output_obj.lock"
     else
       output_obj=
@@ -1319,17 +2166,16 @@ compiler."
        $opt_dry_run || $RM $removelist
        exit $EXIT_FAILURE
       fi
-      removelist="$removelist $output_obj"
+      func_append removelist " $output_obj"
       $ECHO "$srcfile" > "$lockfile"
     fi
 
     $opt_dry_run || $RM $removelist
-    removelist="$removelist $lockfile"
+    func_append removelist " $lockfile"
     trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
 
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
+    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+    srcfile=$func_to_tool_file_result
     func_quote_for_eval "$srcfile"
     qsrcfile=$func_quote_for_eval_result
 
@@ -1349,7 +2195,7 @@ compiler."
 
       if test -z "$output_obj"; then
        # Place PIC objects in $objdir
-       command="$command -o $lobj"
+       func_append command " -o $lobj"
       fi
 
       func_show_eval_locale "$command" \
@@ -1396,11 +2242,11 @@ compiler."
        command="$base_compile $qsrcfile $pic_flag"
       fi
       if test "$compiler_c_o" = yes; then
-       command="$command -o $obj"
+       func_append command " -o $obj"
       fi
 
       # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
+      func_append command "$suppress_output"
       func_show_eval_locale "$command" \
         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 
@@ -1445,13 +2291,13 @@ compiler."
 }
 
 $opt_help || {
-test "$mode" = compile && func_mode_compile ${1+"$@"}
+  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
 }
 
 func_mode_help ()
 {
     # We need to display help for each of the modes.
-    case $mode in
+    case $opt_mode in
       "")
         # Generic help is extracted from the usage comments
         # at the start of this file.
@@ -1482,10 +2328,11 @@ This mode accepts the following additional options:
 
   -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
   -no-suppress      do not suppress compiler output for multiple passes
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
+  -prefer-pic       try to build PIC objects only
+  -prefer-non-pic   try to build non-PIC objects only
   -shared           do not build a \`.o' file suitable for static linking
   -static           only build a \`.o' file suitable for static linking
+  -Wc,FLAG          pass FLAG directly to the compiler
 
 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
 from the given SOURCEFILE.
@@ -1538,7 +2385,7 @@ either the \`install' or \`cp' program.
 
 The following components of INSTALL-COMMAND are treated specially:
 
-  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 
 The rest of the components are interpreted as arguments to that command (only
 BSD-compatible install options are recognized)."
@@ -1558,6 +2405,8 @@ The following components of LINK-COMMAND are treated specially:
 
   -all-static       do not do any dynamic linking at all
   -avoid-version    do not add a version suffix if possible
+  -bindir BINDIR    specify path to binaries directory (for systems where
+                    libraries must be found in the PATH setting at runtime)
   -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
   -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
   -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
@@ -1586,6 +2435,11 @@ The following components of LINK-COMMAND are treated specially:
   -version-info CURRENT[:REVISION[:AGE]]
                     specify library version info [each variable defaults to 0]
   -weak LIBNAME     declare that the target provides the LIBNAME interface
+  -Wc,FLAG
+  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
+  -Wl,FLAG
+  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
+  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
 
 All other options (arguments beginning with \`-') are ignored.
 
@@ -1619,18 +2473,44 @@ Otherwise, only FILE itself is deleted using RM."
         ;;
 
       *)
-        func_fatal_help "invalid operation mode \`$mode'"
+        func_fatal_help "invalid operation mode \`$opt_mode'"
         ;;
     esac
 
-    $ECHO
+    echo
     $ECHO "Try \`$progname --help' for more information about other modes."
-
-    exit $?
 }
 
-  # Now that we've collected a possible --mode arg, show help if necessary
-  $opt_help && func_mode_help
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+  if test "$opt_help" = :; then
+    func_mode_help
+  else
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+       func_mode_help
+      done
+    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+       echo
+       func_mode_help
+      done
+    } |
+    sed '1d
+      /^When reporting/,/^Report/{
+       H
+       d
+      }
+      $x
+      /information about other modes/d
+      /more detailed .*MODE/d
+      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+  fi
+  exit $?
+fi
 
 
 # func_mode_execute arg...
@@ -1643,13 +2523,16 @@ func_mode_execute ()
       func_fatal_help "you must specify a COMMAND"
 
     # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
+    for file in $opt_dlopen; do
       test -f "$file" \
        || func_fatal_help "\`$file' is not a file"
 
       dir=
       case $file in
       *.la)
+       func_resolve_sysroot "$file"
+       file=$func_resolve_sysroot_result
+
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
          || func_fatal_help "\`$lib' is not a valid libtool archive"
@@ -1671,7 +2554,7 @@ func_mode_execute ()
        dir="$func_dirname_result"
 
        if test -f "$dir/$objdir/$dlname"; then
-         dir="$dir/$objdir"
+         func_append dir "/$objdir"
        else
          if test ! -f "$dir/$dlname"; then
            func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
@@ -1712,7 +2595,7 @@ func_mode_execute ()
     for file
     do
       case $file in
-      -*) ;;
+      -* | *.la | *.lo ) ;;
       *)
        # Do a test to see if this is really a libtool program.
        if func_ltwrapper_script_p "$file"; then
@@ -1728,8 +2611,7 @@ func_mode_execute ()
        ;;
       esac
       # Quote arguments (to preserve shell metacharacters).
-      func_quote_for_eval "$file"
-      args="$args $func_quote_for_eval_result"
+      func_append_quoted args "$file"
     done
 
     if test "X$opt_dry_run" = Xfalse; then
@@ -1754,29 +2636,66 @@ func_mode_execute ()
       # Display what would be done.
       if test -n "$shlibpath_var"; then
        eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-       $ECHO "export $shlibpath_var"
+       echo "export $shlibpath_var"
       fi
       $ECHO "$cmd$args"
       exit $EXIT_SUCCESS
     fi
 }
 
-test "$mode" = execute && func_mode_execute ${1+"$@"}
+test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
 
 
-# func_mode_finish arg...
-func_mode_finish ()
-{
-    $opt_debug
-    libdirs="$nonopt"
-    admincmds=
+# func_mode_finish arg...
+func_mode_finish ()
+{
+    $opt_debug
+    libs=
+    libdirs=
+    admincmds=
+
+    for opt in "$nonopt" ${1+"$@"}
+    do
+      if test -d "$opt"; then
+       func_append libdirs " $opt"
+
+      elif test -f "$opt"; then
+       if func_lalib_unsafe_p "$opt"; then
+         func_append libs " $opt"
+       else
+         func_warning "\`$opt' is not a valid libtool archive"
+       fi
+
+      else
+       func_fatal_error "invalid argument \`$opt'"
+      fi
+    done
+
+    if test -n "$libs"; then
+      if test -n "$lt_sysroot"; then
+        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+      else
+        sysroot_cmd=
+      fi
+
+      # Remove sysroot references
+      if $opt_dry_run; then
+        for lib in $libs; do
+          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+        done
+      else
+        tmpdir=`func_mktempdir`
+        for lib in $libs; do
+         sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+           > $tmpdir/tmp-la
+         mv -f $tmpdir/tmp-la $lib
+       done
+        ${RM}r "$tmpdir"
+      fi
+    fi
 
     if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-       libdirs="$libdirs $dir"
-      done
-
       for libdir in $libdirs; do
        if test -n "$finish_cmds"; then
          # Do each command in the finish commands.
@@ -1786,7 +2705,7 @@ func_mode_finish ()
        if test -n "$finish_eval"; then
          # Do the single finish_eval.
          eval cmds=\"$finish_eval\"
-         $opt_dry_run || eval "$cmds" || admincmds="$admincmds
+         $opt_dry_run || eval "$cmds" || func_append admincmds "
        $cmds"
        fi
       done
@@ -1795,53 +2714,55 @@ func_mode_finish ()
     # Exit here if they wanted silent mode.
     $opt_silent && exit $EXIT_SUCCESS
 
-    $ECHO "X----------------------------------------------------------------------" | $Xsed
-    $ECHO "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $ECHO "   $libdir"
-    done
-    $ECHO
-    $ECHO "If you ever happen to want to link against installed libraries"
-    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
-    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    $ECHO "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      $ECHO "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
-      $ECHO "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      echo "----------------------------------------------------------------------"
+      echo "Libraries have been installed in:"
+      for libdir in $libdirs; do
+       $ECHO "   $libdir"
+      done
+      echo
+      echo "If you ever happen to want to link against installed libraries"
+      echo "in a given directory, LIBDIR, you must either use libtool, and"
+      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+      echo "flag during linking and do at least one of the following:"
+      if test -n "$shlibpath_var"; then
+       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+       echo "     during execution"
+      fi
+      if test -n "$runpath_var"; then
+       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+       echo "     during linking"
+      fi
+      if test -n "$hardcode_libdir_flag_spec"; then
+       libdir=LIBDIR
+       eval flag=\"$hardcode_libdir_flag_spec\"
 
-      $ECHO "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $ECHO "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    $ECHO
+       $ECHO "   - use the \`$flag' linker flag"
+      fi
+      if test -n "$admincmds"; then
+       $ECHO "   - have your system administrator run these commands:$admincmds"
+      fi
+      if test -f /etc/ld.so.conf; then
+       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+      fi
+      echo
 
-    $ECHO "See any operating system documentation about shared libraries for"
-    case $host in
-      solaris2.[6789]|solaris2.1[0-9])
-        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-       $ECHO "pages."
-       ;;
-      *)
-        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
-        ;;
-    esac
-    $ECHO "X----------------------------------------------------------------------" | $Xsed
+      echo "See any operating system documentation about shared libraries for"
+      case $host in
+       solaris2.[6789]|solaris2.1[0-9])
+         echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+         echo "pages."
+         ;;
+       *)
+         echo "more information, such as the ld(1) and ld.so(8) manual pages."
+         ;;
+      esac
+      echo "----------------------------------------------------------------------"
+    fi
     exit $EXIT_SUCCESS
 }
 
-test "$mode" = finish && func_mode_finish ${1+"$@"}
+test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
 
 
 # func_mode_install arg...
@@ -1852,7 +2773,7 @@ func_mode_install ()
     # install_prog (especially on Windows NT).
     if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
        # Allow the use of GNU shtool's install command.
-       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
+       case $nonopt in *shtool*) :;; *) false;; esac; then
       # Aesthetically quote it.
       func_quote_for_eval "$nonopt"
       install_prog="$func_quote_for_eval_result "
@@ -1866,7 +2787,12 @@ func_mode_install ()
     # The real first argument should be the name of the installation program.
     # Aesthetically quote it.
     func_quote_for_eval "$arg"
-    install_prog="$install_prog$func_quote_for_eval_result"
+    func_append install_prog "$func_quote_for_eval_result"
+    install_shared_prog=$install_prog
+    case " $install_prog " in
+      *[\\\ /]cp\ *) install_cp=: ;;
+      *) install_cp=false ;;
+    esac
 
     # We need to accept at least all the BSD install flags.
     dest=
@@ -1876,10 +2802,12 @@ func_mode_install ()
     install_type=
     isdir=no
     stripme=
+    no_mode=:
     for arg
     do
+      arg2=
       if test -n "$dest"; then
-       files="$files $dest"
+       func_append files " $dest"
        dest=$arg
        continue
       fi
@@ -1887,10 +2815,9 @@ func_mode_install ()
       case $arg in
       -d) isdir=yes ;;
       -f)
-       case " $install_prog " in
-       *[\\\ /]cp\ *) ;;
-       *) prev=$arg ;;
-       esac
+       if $install_cp; then :; else
+         prev=$arg
+       fi
        ;;
       -g | -m | -o)
        prev=$arg
@@ -1904,6 +2831,10 @@ func_mode_install ()
       *)
        # If the previous option needed an argument, then skip it.
        if test -n "$prev"; then
+         if test "x$prev" = x-m && test -n "$install_override_mode"; then
+           arg2=$install_override_mode
+           no_mode=false
+         fi
          prev=
        else
          dest=$arg
@@ -1914,7 +2845,11 @@ func_mode_install ()
 
       # Aesthetically quote the argument.
       func_quote_for_eval "$arg"
-      install_prog="$install_prog $func_quote_for_eval_result"
+      func_append install_prog " $func_quote_for_eval_result"
+      if test -n "$arg2"; then
+       func_quote_for_eval "$arg2"
+      fi
+      func_append install_shared_prog " $func_quote_for_eval_result"
     done
 
     test -z "$install_prog" && \
@@ -1923,6 +2858,13 @@ func_mode_install ()
     test -n "$prev" && \
       func_fatal_help "the \`$prev' option requires an argument"
 
+    if test -n "$install_override_mode" && $no_mode; then
+      if $install_cp; then :; else
+       func_quote_for_eval "$install_override_mode"
+       func_append install_shared_prog " -m $func_quote_for_eval_result"
+      fi
+    fi
+
     if test -z "$files"; then
       if test -z "$dest"; then
        func_fatal_help "no file or destination specified"
@@ -1977,10 +2919,13 @@ func_mode_install ()
       case $file in
       *.$libext)
        # Do the static libraries later.
-       staticlibs="$staticlibs $file"
+       func_append staticlibs " $file"
        ;;
 
       *.la)
+       func_resolve_sysroot "$file"
+       file=$func_resolve_sysroot_result
+
        # Check to see that this really is a libtool archive.
        func_lalib_unsafe_p "$file" \
          || func_fatal_help "\`$file' is not a valid libtool archive"
@@ -1994,23 +2939,23 @@ func_mode_install ()
        if test "X$destdir" = "X$libdir"; then
          case "$current_libdirs " in
          *" $libdir "*) ;;
-         *) current_libdirs="$current_libdirs $libdir" ;;
+         *) func_append current_libdirs " $libdir" ;;
          esac
        else
          # Note the libdir as a future libdir.
          case "$future_libdirs " in
          *" $libdir "*) ;;
-         *) future_libdirs="$future_libdirs $libdir" ;;
+         *) func_append future_libdirs " $libdir" ;;
          esac
        fi
 
        func_dirname "$file" "/" ""
        dir="$func_dirname_result"
-       dir="$dir$objdir"
+       func_append dir "$objdir"
 
        if test -n "$relink_command"; then
          # Determine the prefix the user has applied to our future dir.
-         inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
+         inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
 
          # Don't allow the user to place us outside of our expected
          # location b/c this prevents finding dependent libraries that
@@ -2023,9 +2968,9 @@ func_mode_install ()
 
          if test -n "$inst_prefix_dir"; then
            # Stick the inst_prefix_dir data into the link command.
-           relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+           relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
          else
-           relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
+           relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
          fi
 
          func_warning "relinking \`$file'"
@@ -2043,7 +2988,7 @@ func_mode_install ()
          test -n "$relink_command" && srcname="$realname"T
 
          # Install the shared library and build the symlinks.
-         func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
+         func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
              'exit $?'
          tstripme="$stripme"
          case $host_os in
@@ -2083,7 +3028,7 @@ func_mode_install ()
        func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 
        # Maybe install the static library, too.
-       test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+       test -n "$old_library" && func_append staticlibs " $dir/$old_library"
        ;;
 
       *.lo)
@@ -2183,7 +3128,7 @@ func_mode_install ()
            if test -f "$lib"; then
              func_source "$lib"
            fi
-           libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+           libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
            if test -n "$libdir" && test ! -f "$libfile"; then
              func_warning "\`$lib' has not been installed in \`$libdir'"
              finalize=no
@@ -2202,7 +3147,7 @@ func_mode_install ()
                file="$func_basename_result"
                outputname="$tmpdir/$file"
                # Replace the output file specification.
-               relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+               relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
 
                $opt_silent || {
                  func_quote_for_expand "$relink_command"
@@ -2221,7 +3166,7 @@ func_mode_install ()
            }
          else
            # Install the binary that we compiled earlier.
-           file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+           file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
          fi
        fi
 
@@ -2257,11 +3202,13 @@ func_mode_install ()
 
       # Set up the ranlib parameters.
       oldlib="$destdir/$name"
+      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+      tool_oldlib=$func_to_tool_file_result
 
       func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
 
       if test -n "$stripme" && test -n "$old_striplib"; then
-       func_show_eval "$old_striplib $oldlib" 'exit $?'
+       func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
       fi
 
       # Do each command in the postinstall commands.
@@ -2280,7 +3227,7 @@ func_mode_install ()
     fi
 }
 
-test "$mode" = install && func_mode_install ${1+"$@"}
+test "$opt_mode" = install && func_mode_install ${1+"$@"}
 
 
 # func_generate_dlsyms outputname originator pic_p
@@ -2323,6 +3270,22 @@ func_generate_dlsyms ()
 extern \"C\" {
 #endif
 
+#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 /* External symbol declarations for the compiler. */\
 "
 
@@ -2332,10 +3295,11 @@ extern \"C\" {
          $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
 
          # Add our own program objects to the symbol list.
-         progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+         progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
          for progfile in $progfiles; do
-           func_verbose "extracting global C symbols from \`$progfile'"
-           $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+           func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+           func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+           $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
          done
 
          if test -n "$exclude_expsyms"; then
@@ -2371,7 +3335,7 @@ extern \"C\" {
              eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
              eval '$MV "$nlist"T "$nlist"'
              case $host in
-               *cygwin | *mingw* | *cegcc* )
+               *cygwin* | *mingw* | *cegcc* )
                  eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
                  eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
                  ;;
@@ -2384,10 +3348,52 @@ extern \"C\" {
          func_verbose "extracting global C symbols from \`$dlprefile'"
          func_basename "$dlprefile"
          name="$func_basename_result"
-         $opt_dry_run || {
-           eval '$ECHO ": $name " >> "$nlist"'
-           eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-         }
+          case $host in
+           *cygwin* | *mingw* | *cegcc* )
+             # if an import library, we need to obtain dlname
+             if func_win32_import_lib_p "$dlprefile"; then
+               func_tr_sh "$dlprefile"
+               eval "curr_lafile=\$libfile_$func_tr_sh_result"
+               dlprefile_dlbasename=""
+               if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+                 # Use subshell, to avoid clobbering current variable values
+                 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+                 if test -n "$dlprefile_dlname" ; then
+                   func_basename "$dlprefile_dlname"
+                   dlprefile_dlbasename="$func_basename_result"
+                 else
+                   # no lafile. user explicitly requested -dlpreopen <import library>.
+                   $sharedlib_from_linklib_cmd "$dlprefile"
+                   dlprefile_dlbasename=$sharedlib_from_linklib_result
+                 fi
+               fi
+               $opt_dry_run || {
+                 if test -n "$dlprefile_dlbasename" ; then
+                   eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+                 else
+                   func_warning "Could not compute DLL name from $name"
+                   eval '$ECHO ": $name " >> "$nlist"'
+                 fi
+                 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+                 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+                   $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+               }
+             else # not an import lib
+               $opt_dry_run || {
+                 eval '$ECHO ": $name " >> "$nlist"'
+                 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+                 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+               }
+             fi
+           ;;
+           *)
+             $opt_dry_run || {
+               eval '$ECHO ": $name " >> "$nlist"'
+               func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+               eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+             }
+           ;;
+          esac
        done
 
        $opt_dry_run || {
@@ -2415,36 +3421,19 @@ extern \"C\" {
          if test -f "$nlist"S; then
            eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
          else
-           $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
+           echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
          fi
 
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
+         echo >> "$output_objdir/$my_dlsyms" "\
 
 /* The mapping between symbol names and symbols.  */
 typedef struct {
   const char *name;
   void *address;
 } lt_dlsymlist;
-"
-         case $host in
-         *cygwin* | *mingw* | *cegcc* )
-           $ECHO >> "$output_objdir/$my_dlsyms" "\
-/* DATA imports from DLLs on WIN32 con't be const, because
-   runtime relocations are performed -- see ld's documentation
-   on pseudo-relocs.  */"
-           lt_dlsym_const= ;;
-         *osf5*)
-           echo >> "$output_objdir/$my_dlsyms" "\
-/* This system does not cope well with relocations in const data */"
-           lt_dlsym_const= ;;
-         *)
-           lt_dlsym_const=const ;;
-         esac
-
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
-extern $lt_dlsym_const lt_dlsymlist
+extern LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[];
-$lt_dlsym_const lt_dlsymlist
+LT_DLSYM_CONST lt_dlsymlist
 lt_${my_prefix}_LTX_preloaded_symbols[] =
 {\
   { \"$my_originator\", (void *) 0 },"
@@ -2457,7 +3446,7 @@ lt_${my_prefix}_LTX_preloaded_symbols[] =
            eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
            ;;
          esac
-         $ECHO >> "$output_objdir/$my_dlsyms" "\
+         echo >> "$output_objdir/$my_dlsyms" "\
   {0, (void *) 0}
 };
 
@@ -2484,7 +3473,7 @@ static const void *lt_preloaded_setup() {
          # linked before any other PIC object.  But we must not use
          # pic_flag when linking with -static.  The problem exists in
          # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-         *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+         *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
            pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
          *-*-hpux*)
            pic_flag_for_symtable=" $pic_flag"  ;;
@@ -2500,7 +3489,7 @@ static const void *lt_preloaded_setup() {
        for arg in $LTCFLAGS; do
          case $arg in
          -pie | -fpie | -fPIE) ;;
-         *) symtab_cflags="$symtab_cflags $arg" ;;
+         *) func_append symtab_cflags " $arg" ;;
          esac
        done
 
@@ -2515,16 +3504,16 @@ static const void *lt_preloaded_setup() {
        case $host in
        *cygwin* | *mingw* | *cegcc* )
          if test -f "$output_objdir/$my_outputname.def"; then
-           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+           compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+           finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
          else
-           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+           compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+           finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
          fi
          ;;
        *)
-         compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
-         finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+         compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+         finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
          ;;
        esac
        ;;
@@ -2538,8 +3527,8 @@ static const void *lt_preloaded_setup() {
       # really was required.
 
       # Nullify the symbol file.
-      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
     fi
 }
 
@@ -2549,6 +3538,7 @@ static const void *lt_preloaded_setup() {
 # Need a lot of goo to handle *both* DLLs and import libs
 # Has to be a shell function in order to 'eat' the argument
 # that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
 func_win32_libid ()
 {
   $opt_debug
@@ -2559,9 +3549,11 @@ func_win32_libid ()
     win32_libid_type="x86 archive import"
     ;;
   *ar\ archive*) # could be an import, or static
+    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
     if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 |
+       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+      func_to_tool_file "$1" func_convert_file_msys_to_w32
+      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
        $SED -n -e '
            1,100{
                / I /{
@@ -2590,6 +3582,131 @@ func_win32_libid ()
   $ECHO "$win32_libid_type"
 }
 
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+  $opt_debug
+  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+  $opt_debug
+  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+    $SED '/^Contents of section '"$match_literal"':/{
+      # Place marker at beginning of archive member dllname section
+      s/.*/====MARK====/
+      p
+      d
+    }
+    # These lines can sometimes be longer than 43 characters, but
+    # are always uninteresting
+    /:[         ]*file format pe[i]\{,1\}-/d
+    /^In archive [^:]*:/d
+    # Ensure marker is printed
+    /^====MARK====/p
+    # Remove all lines with less than 43 characters
+    /^.\{43\}/!d
+    # From remaining lines, remove first 43 characters
+    s/^.\{43\}//' |
+    $SED -n '
+      # Join marker and all lines until next marker into a single line
+      /^====MARK====/ b para
+      H
+      $ b para
+      b
+      :para
+      x
+      s/\n//g
+      # Remove the marker
+      s/^====MARK====//
+      # Remove trailing dots and whitespace
+      s/[\. \t]*$//
+      # Print
+      /./p' |
+    # we now have a list, one entry per line, of the stringified
+    # contents of the appropriate section of all members of the
+    # archive which possess that section. Heuristic: eliminate
+    # all those which have a first or second character that is
+    # a '.' (that is, objdump's representation of an unprintable
+    # character.) This should work for all archives with less than
+    # 0x302f exports -- but will fail for DLLs whose name actually
+    # begins with a literal '.' or a single character followed by
+    # a '.'.
+    #
+    # Of those that remain, print the first one.
+    $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+  $opt_debug
+  if func_cygming_gnu_implib_p "$1" ; then
+    # binutils import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+  elif func_cygming_ms_implib_p "$1" ; then
+    # ms-generated import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+  else
+    # unknown
+    sharedlib_from_linklib_result=""
+  fi
+}
 
 
 # func_extract_an_archive dir oldlib
@@ -2598,7 +3715,18 @@ func_extract_an_archive ()
     $opt_debug
     f_ex_an_ar_dir="$1"; shift
     f_ex_an_ar_oldlib="$1"
-    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
+    if test "$lock_old_archive_extraction" = yes; then
+      lockfile=$f_ex_an_ar_oldlib.lock
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+       func_echo "Waiting for $lockfile to be removed"
+       sleep 2
+      done
+    fi
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+                  'stat=$?; rm -f "$lockfile"; exit $stat'
+    if test "$lock_old_archive_extraction" = yes; then
+      $opt_dry_run || rm -f "$lockfile"
+    fi
     if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
      :
     else
@@ -2669,7 +3797,7 @@ func_extract_archives ()
            darwin_file=
            darwin_files=
            for darwin_file in $darwin_filelist; do
-             darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+             darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
              $LIPO -create -output "$darwin_file" $darwin_files
            done # $darwin_filelist
            $RM -rf unfat-$$
@@ -2684,25 +3812,30 @@ func_extract_archives ()
         func_extract_an_archive "$my_xdir" "$my_xabs"
        ;;
       esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
     done
 
     func_extract_archives_result="$my_oldobjs"
 }
 
 
-
-# func_emit_wrapper_part1 [arg=no]
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
 #
-# Emit the first part of a libtool wrapper script on stdout.
-# For more information, see the description associated with
-# func_emit_wrapper(), below.
-func_emit_wrapper_part1 ()
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
 {
-       func_emit_wrapper_part1_arg1=no
-       if test -n "$1" ; then
-         func_emit_wrapper_part1_arg1=$1
-       fi
+       func_emit_wrapper_arg1=${1-no}
 
        $ECHO "\
 #! $SHELL
@@ -2718,7 +3851,6 @@ func_emit_wrapper_part1 ()
 
 # Sed substitution that helps us do robust quoting.  It backslashifies
 # metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
 sed_quote_subst='$sed_quote_subst'
 
 # Be Bourne compatible
@@ -2749,31 +3881,135 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then
 else
   # When we are sourced in execute mode, \$file and \$ECHO are already set.
   if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    ECHO=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$ECHO works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$ECHO will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
+    file=\"\$0\""
+
+    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+    $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+    ECHO=\"$qECHO\"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=\$0
+  shift
+  for lt_opt
+  do
+    case \"\$lt_opt\" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+        cat \"\$lt_dump_D/\$lt_dump_F\"
+        exit 0
+      ;;
+    --lt-*)
+        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n \"\$lt_option_debug\"; then
+    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
+    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
 "
-       $ECHO "\
+  case $host in
+  # Backslashes separate directories on plain windows
+  *-*-mingw | *-*-os2* | *-cegcc*)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+    ;;
+
+  *)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+    ;;
+  esac
+  $ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  case \" \$* \" in
+  *\\ --lt-*)
+    for lt_wr_arg
+    do
+      case \$lt_wr_arg in
+      --lt-*) ;;
+      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+      esac
+      shift
+    done ;;
+  esac
+  func_exec_program_core \${1+\"\$@\"}
+}
+
+  # Parse options
+  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
 
   # Find the directory that this script lives in.
-  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 
   # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
   while test -n \"\$file\"; do
-    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
 
     # If there was a directory component, then change thisdir.
     if test \"x\$destdir\" != \"x\$file\"; then
@@ -2783,30 +4019,13 @@ else
       esac
     fi
 
-    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
   done
-"
-}
-# end: func_emit_wrapper_part1
-
-# func_emit_wrapper_part2 [arg=no]
-#
-# Emit the second part of a libtool wrapper script on stdout.
-# For more information, see the description associated with
-# func_emit_wrapper(), below.
-func_emit_wrapper_part2 ()
-{
-       func_emit_wrapper_part2_arg1=no
-       if test -n "$1" ; then
-         func_emit_wrapper_part2_arg1=$1
-       fi
-
-       $ECHO "\
 
   # Usually 'no', except on cygwin/mingw when embedded into
   # the cwrapper.
-  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
   if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
     # special case for '.'
     if test \"\$thisdir\" = \".\"; then
@@ -2814,7 +4033,7 @@ func_emit_wrapper_part2 ()
     fi
     # remove .libs from thisdir
     case \"\$thisdir\" in
-    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
     $objdir )   thisdir=. ;;
     esac
   fi
@@ -2869,21 +4088,11 @@ func_emit_wrapper_part2 ()
 
   if test -f \"\$progdir/\$program\"; then"
 
-       # Export our shlibpath_var if we have one.
-       if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-         $ECHO "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-       fi
-
        # fixup the dll searchpath if we need to.
+       #
+       # Fix the DLL searchpath if we need to.  Do this before prepending
+       # to shlibpath, because on Windows, both are PATH and uninstalled
+       # libraries must come first.
        if test -n "$dllsearchpath"; then
          $ECHO "\
     # Add the dll search path components to the executable PATH
@@ -2891,239 +4100,36 @@ func_emit_wrapper_part2 ()
 "
        fi
 
-       $ECHO "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
-       case $host in
-       # Backslashes separate directories on plain windows
-       *-*-mingw | *-*-os2* | *-cegcc*)
-         $ECHO "\
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
-         ;;
-
-       *)
+       # Export our shlibpath_var if we have one.
+       if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
          $ECHO "\
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
-         ;;
-       esac
-       $ECHO "\
-      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
-      exit 1
-    fi
-  else
-    # The program doesn't exist.
-    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
-    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
-    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
-  fi
-fi\
-"
-}
-# end: func_emit_wrapper_part2
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable.  Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory.  This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
-       func_emit_wrapper_arg1=no
-       if test -n "$1" ; then
-         func_emit_wrapper_arg1=$1
-       fi
-
-       # split this up so that func_emit_cwrapperexe_src
-       # can call each part independently.
-       func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
-       func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
-}
-
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
 
-# func_to_host_path arg
-#
-# Convert paths to host format when used with build tools.
-# Intended for use with "native" mingw (where libtool itself
-# is running under the msys shell), or in the following cross-
-# build environments:
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-# where wine is equipped with the `winepath' executable.
-# In the native mingw case, the (msys) shell automatically
-# converts paths for any non-msys applications it launches,
-# but that facility isn't available from inside the cwrapper.
-# Similar accommodations are necessary for $host mingw and
-# $build cygwin.  Calling this function does no harm for other
-# $host/$build combinations not listed above.
-#
-# ARG is the path (on $build) that should be converted to
-# the proper representation for $host. The result is stored
-# in $func_to_host_path_result.
-func_to_host_path ()
-{
-  func_to_host_path_result="$1"
-  if test -n "$1" ; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        case $build in
-          *mingw* ) # actually, msys
-            # awkward: cmd appends spaces to result
-            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
-            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
-              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_path_tmp1=`cygpath -w "$1"`
-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # Unfortunately, winepath does not exit with a non-zero
-            # error code, so we are forced to check the contents of
-            # stdout. On the other hand, if the command is not
-            # found, the shell will set an exit code of 127 and print
-            # *an error message* to stdout. So we must check for both
-            # error code of zero AND non-empty stdout, which explains
-            # the odd construction:
-            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
-            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
-              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
-                $SED -e "$lt_sed_naive_backslashify"`
-            else
-              # Allow warning below.
-              func_to_host_path_result=""
-            fi
-            ;;
-        esac
-        if test -z "$func_to_host_path_result" ; then
-          func_error "Could not determine host path corresponding to"
-          func_error "  '$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback:
-          func_to_host_path_result="$1"
-        fi
-        ;;
-    esac
-  fi
-}
-# end: func_to_host_path
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
 
-# func_to_host_pathlist arg
-#
-# Convert pathlists to host format when used with build tools.
-# See func_to_host_path(), above. This function supports the
-# following $build/$host combinations (but does no harm for
-# combinations not listed here):
-#    $build          $host
-#    mingw (msys)    mingw  [e.g. native]
-#    cygwin          mingw
-#    *nix + wine     mingw
-#
-# Path separators are also converted from $build format to
-# $host format. If ARG begins or ends with a path separator
-# character, it is preserved (but converted to $host format)
-# on output.
-#
-# ARG is a pathlist (on $build) that should be converted to
-# the proper representation on $host. The result is stored
-# in $func_to_host_pathlist_result.
-func_to_host_pathlist ()
-{
-  func_to_host_pathlist_result="$1"
-  if test -n "$1" ; then
-    case $host in
-      *mingw* )
-        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-        # Remove leading and trailing path separator characters from
-        # ARG. msys behavior is inconsistent here, cygpath turns them
-        # into '.;' and ';.', and winepath ignores them completely.
-        func_to_host_pathlist_tmp2="$1"
-        # Once set for this call, this variable should not be
-        # reassigned. It is used in tha fallback case.
-        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
-          $SED -e 's|^:*||' -e 's|:*$||'`
-        case $build in
-          *mingw* ) # Actually, msys.
-            # Awkward: cmd appends spaces to result.
-            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
-            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
-              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          *cygwin* )
-            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
-              $SED -e "$lt_sed_naive_backslashify"`
-            ;;
-          * )
-            # unfortunately, winepath doesn't convert pathlists
-            func_to_host_pathlist_result=""
-            func_to_host_pathlist_oldIFS=$IFS
-            IFS=:
-            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
-              IFS=$func_to_host_pathlist_oldIFS
-              if test -n "$func_to_host_pathlist_f" ; then
-                func_to_host_path "$func_to_host_pathlist_f"
-                if test -n "$func_to_host_path_result" ; then
-                  if test -z "$func_to_host_pathlist_result" ; then
-                    func_to_host_pathlist_result="$func_to_host_path_result"
-                  else
-                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
-                  fi
-                fi
-              fi
-              IFS=:
-            done
-            IFS=$func_to_host_pathlist_oldIFS
-            ;;
-        esac
-        if test -z "$func_to_host_pathlist_result" ; then
-          func_error "Could not determine the host path(s) corresponding to"
-          func_error "  '$1'"
-          func_error "Continuing, but uninstalled executables may not work."
-          # Fallback. This may break if $1 contains DOS-style drive
-          # specifications. The fix is not to complicate the expression
-          # below, but for the user to provide a working wine installation
-          # with winepath so that path translation in the cross-to-mingw
-          # case works properly.
-          lt_replace_pathsep_nix_to_dos="s|:|;|g"
-          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
-            $SED -e "$lt_replace_pathsep_nix_to_dos"`
-        fi
-        # Now, add the leading and trailing path separators back
-        case "$1" in
-          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
-            ;;
-        esac
-        case "$1" in
-          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
-            ;;
-        esac
-        ;;
-    esac
+    export $shlibpath_var
+"
+       fi
+
+       $ECHO "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+      func_exec_program \${1+\"\$@\"}
+    fi
+  else
+    # The program doesn't exist.
+    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
   fi
+fi\
+"
 }
-# end: func_to_host_pathlist
+
 
 # func_emit_cwrapperexe_src
 # emit the source code for a wrapper executable on stdout
@@ -3141,31 +4147,23 @@ func_emit_cwrapperexe_src ()
 
    This wrapper executable should never be moved out of the build directory.
    If it is, it will not operate correctly.
-
-   Currently, it simply execs the wrapper *script* "$SHELL $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
 */
 EOF
            cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #ifdef _MSC_VER
 # include <direct.h>
 # include <process.h>
 # include <io.h>
-# define setmode _setmode
 #else
 # include <unistd.h>
 # include <stdint.h>
 # ifdef __CYGWIN__
 #  include <io.h>
-#  define HAVE_SETENV
-#  ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-#  endif
 # endif
 #endif
 #include <malloc.h>
@@ -3177,6 +4175,44 @@ int setenv (const char *, const char *, int);
 #include <fcntl.h>
 #include <sys/stat.h>
 
+/* declarations of non-ANSI functions */
+#if defined(__MINGW32__)
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined(__CYGWIN__)
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined (other platforms) ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined(_MSC_VER)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+# define S_IXUSR _S_IEXEC
+# ifndef _INTPTR_T_DEFINED
+#  define _INTPTR_T_DEFINED
+#  define intptr_t int
+# endif
+#elif defined(__MINGW32__)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+#elif defined(__CYGWIN__)
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined (other platforms) ... */
+#endif
+
 #if defined(PATH_MAX)
 # define LT_PATHMAX PATH_MAX
 #elif defined(MAXPATHLEN)
@@ -3192,14 +4228,7 @@ int setenv (const char *, const char *, int);
 # define S_IXGRP 0
 #endif
 
-#ifdef _MSC_VER
-# define S_IXUSR _S_IEXEC
-# define stat _stat
-# ifndef _INTPTR_T_DEFINED
-#  define intptr_t int
-# endif
-#endif
-
+/* path handling portability macros */
 #ifndef DIR_SEPARATOR
 # define DIR_SEPARATOR '/'
 # define PATH_SEPARATOR ':'
@@ -3230,10 +4259,6 @@ int setenv (const char *, const char *, int);
 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
 #endif /* PATH_SEPARATOR_2 */
 
-#ifdef __CYGWIN__
-# define FOPEN_WB "wb"
-#endif
-
 #ifndef FOPEN_WB
 # define FOPEN_WB "w"
 #endif
@@ -3246,22 +4271,13 @@ int setenv (const char *, const char *, int);
   if (stale) { free ((void *) stale); stale = 0; } \
 } while (0)
 
-#undef LTWRAPPER_DEBUGPRINTF
-#if defined DEBUGWRAPPER
-# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
-static void
-ltwrapper_debugprintf (const char *fmt, ...)
-{
-    va_list args;
-    va_start (args, fmt);
-    (void) vfprintf (stderr, fmt, args);
-    va_end (args);
-}
+#if defined(LT_DEBUGWRAPPER)
+static int lt_debug = 1;
 #else
-# define LTWRAPPER_DEBUGPRINTF(args)
+static int lt_debug = 0;
 #endif
 
-const char *program_name = NULL;
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
 
 void *xmalloc (size_t num);
 char *xstrdup (const char *string);
@@ -3271,42 +4287,27 @@ char *chase_symlinks (const char *pathspec);
 int make_executable (const char *path);
 int check_executable (const char *path);
 char *strendzap (char *str, const char *pat);
-void lt_fatal (const char *message, ...);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
 void lt_setenv (const char *name, const char *value);
 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_opt_process_env_set (const char *arg);
-void lt_opt_process_env_prepend (const char *arg);
-void lt_opt_process_env_append (const char *arg);
-int lt_split_name_value (const char *arg, char** name, char** value);
 void lt_update_exe_path (const char *name, const char *value);
 void lt_update_lib_path (const char *name, const char *value);
 char **prepare_spawn (char **argv);
-
-static const char *script_text_part1 =
-EOF
-
-           func_emit_wrapper_part1 yes |
-               $SED -e 's/\([\\"]\)/\\\1/g' \
-                    -e 's/^/  "/' -e 's/$/\\n"/'
-           echo ";"
-           cat <<EOF
-
-static const char *script_text_part2 =
+void lt_dump_script (FILE *f);
 EOF
-           func_emit_wrapper_part2 yes |
-               $SED -e 's/\([\\"]\)/\\\1/g' \
-                    -e 's/^/  "/' -e 's/$/\\n"/'
-           echo ";"
 
            cat <<EOF
-const char * MAGIC_EXE = "$magic_exe";
+volatile const char * MAGIC_EXE = "$magic_exe";
 const char * LIB_PATH_VARNAME = "$shlibpath_var";
 EOF
 
            if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-              func_to_host_pathlist "$temp_rpath"
+              func_to_host_path "$temp_rpath"
              cat <<EOF
-const char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
 EOF
            else
              cat <<"EOF"
@@ -3315,10 +4316,10 @@ EOF
            fi
 
            if test -n "$dllsearchpath"; then
-              func_to_host_pathlist "$dllsearchpath:"
+              func_to_host_path "$dllsearchpath:"
              cat <<EOF
 const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
+const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
 EOF
            else
              cat <<"EOF"
@@ -3341,24 +4342,10 @@ EOF
            cat <<"EOF"
 
 #define LTWRAPPER_OPTION_PREFIX         "--lt-"
-#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
 
-static const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-
 static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
-
-static const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
-static const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
-  /* argument is putenv-style "foo=bar", value of foo is set to bar */
-
-static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
-static const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
-  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
-
-static const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
-static const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
-  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
 
 int
 main (int argc, char *argv[])
@@ -3375,10 +4362,13 @@ main (int argc, char *argv[])
   int i;
 
   program_name = (char *) xstrdup (base_name (argv[0]));
-  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
-  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+  newargz = XMALLOC (char *, argc + 1);
 
-  /* very simple arg parsing; don't want to rely on getopt */
+  /* very simple arg parsing; don't want to rely on getopt
+   * also, copy all non cwrapper options to newargz, except
+   * argz[0], which is handled differently
+   */
+  newargc=0;
   for (i = 1; i < argc; i++)
     {
       if (strcmp (argv[i], dumpscript_opt) == 0)
@@ -3392,25 +4382,57 @@ EOF
              esac
 
            cat <<"EOF"
-         printf ("%s", script_text_part1);
-         printf ("%s", script_text_part2);
+         lt_dump_script (stdout);
          return 0;
        }
+      if (strcmp (argv[i], debug_opt) == 0)
+       {
+          lt_debug = 1;
+          continue;
+       }
+      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal (__FILE__, __LINE__,
+                   "unrecognized %s option: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
     }
+  newargz[++newargc] = NULL;
+
+EOF
+           cat <<EOF
+  /* The GNU banner must be the first non-error debug message */
+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+EOF
+           cat <<"EOF"
+  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
 
-  newargz = XMALLOC (char *, argc + 1);
   tmp_pathspec = find_executable (argv[0]);
   if (tmp_pathspec == NULL)
-    lt_fatal ("Couldn't find %s", argv[0]);
-  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
-                         tmp_pathspec));
+    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (before symlink chase) at: %s\n",
+                 tmp_pathspec);
 
   actual_cwrapper_path = chase_symlinks (tmp_pathspec);
-  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
-                         actual_cwrapper_path));
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (after symlink chase) at: %s\n",
+                 actual_cwrapper_path);
   XFREE (tmp_pathspec);
 
-  actual_cwrapper_name = xstrdupbase_name (actual_cwrapper_path));
+  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
   strendzap (actual_cwrapper_path, actual_cwrapper_name);
 
   /* wrapper name transforms */
@@ -3428,8 +4450,9 @@ EOF
   target_name = tmp_pathspec;
   tmp_pathspec = 0;
 
-  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
-                         target_name));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(main) libtool target name: %s\n",
+                 target_name);
 EOF
 
            cat <<EOF
@@ -3479,80 +4502,19 @@ EOF
 
   lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
   lt_setenv ("DUALCASE", "1");  /* for MSK sh */
-  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
+     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+     because on Windows, both *_VARNAMEs are PATH but uninstalled
+     libraries must come first. */
   lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
 
-  newargc=0;
-  for (i = 1; i < argc; i++)
-    {
-      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
-        {
-          if (argv[i][env_set_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_set_opt_len + 1;
-              lt_opt_process_env_set (p);
-            }
-          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_set (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_set_opt);
-          continue;
-        }
-      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
-        {
-          if (argv[i][env_prepend_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_prepend_opt_len + 1;
-              lt_opt_process_env_prepend (p);
-            }
-          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_prepend_opt);
-          continue;
-        }
-      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
-        {
-          if (argv[i][env_append_opt_len] == '=')
-            {
-              const char *p = argv[i] + env_append_opt_len + 1;
-              lt_opt_process_env_append (p);
-            }
-          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
-            {
-              lt_opt_process_env_append (argv[++i]); /* don't copy */
-            }
-          else
-            lt_fatal ("%s missing required argument", env_append_opt);
-          continue;
-        }
-      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
-        {
-          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
-             namespace, but it is not one of the ones we know about and
-             have already dealt with, above (inluding dump-script), then
-             report an error. Otherwise, targets might begin to believe
-             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
-             namespace. The first time any user complains about this, we'll
-             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
-             or a configure.ac-settable value.
-           */
-          lt_fatal ("Unrecognized option in %s namespace: '%s'",
-                    ltwrapper_option_prefix, argv[i]);
-        }
-      /* otherwise ... */
-      newargz[++newargc] = xstrdup (argv[i]);
-    }
-  newargz[++newargc] = NULL;
-
-  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+                 nonnull (lt_argv_zero));
   for (i = 0; i < newargc; i++)
     {
-      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
+      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+                     i, nonnull (newargz[i]));
     }
 
 EOF
@@ -3566,7 +4528,9 @@ EOF
   if (rval == -1)
     {
       /* failed to start process */
-      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
+      lt_debugprintf (__FILE__, __LINE__,
+                     "(main) failed to launch target \"%s\": %s\n",
+                     lt_argv_zero, nonnull (strerror (errno)));
       return 127;
     }
   return rval;
@@ -3588,7 +4552,7 @@ xmalloc (size_t num)
 {
   void *p = (void *) malloc (num);
   if (!p)
-    lt_fatal ("Memory exhausted");
+    lt_fatal (__FILE__, __LINE__, "memory exhausted");
 
   return p;
 }
@@ -3622,8 +4586,8 @@ check_executable (const char *path)
 {
   struct stat st;
 
-  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
-                         path ? (*path ? path : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+                  nonempty (path));
   if ((!path) || (!*path))
     return 0;
 
@@ -3640,8 +4604,8 @@ make_executable (const char *path)
   int rval = 0;
   struct stat st;
 
-  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
-                         path ? (*path ? path : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+                  nonempty (path));
   if ((!path) || (!*path))
     return 0;
 
@@ -3667,8 +4631,8 @@ find_executable (const char *wrapper)
   int tmp_len;
   char *concat_name;
 
-  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
-                         wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
+  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+                  nonempty (wrapper));
 
   if ((wrapper == NULL) || (*wrapper == '\0'))
     return NULL;
@@ -3721,7 +4685,8 @@ find_executable (const char *wrapper)
                {
                  /* empty path: current directory */
                  if (getcwd (tmp, LT_PATHMAX) == NULL)
-                   lt_fatal ("getcwd failed");
+                   lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+                              nonnull (strerror (errno)));
                  tmp_len = strlen (tmp);
                  concat_name =
                    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
@@ -3746,7 +4711,8 @@ find_executable (const char *wrapper)
     }
   /* Relative path | not found in path: prepend cwd */
   if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
+    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+              nonnull (strerror (errno)));
   tmp_len = strlen (tmp);
   concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
   memcpy (concat_name, tmp, tmp_len);
@@ -3772,8 +4738,9 @@ chase_symlinks (const char *pathspec)
   int has_symlinks = 0;
   while (strlen (tmp_pathspec) && !has_symlinks)
     {
-      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
-                             tmp_pathspec));
+      lt_debugprintf (__FILE__, __LINE__,
+                     "checking path component for symlinks: %s\n",
+                     tmp_pathspec);
       if (lstat (tmp_pathspec, &s) == 0)
        {
          if (S_ISLNK (s.st_mode) != 0)
@@ -3795,8 +4762,9 @@ chase_symlinks (const char *pathspec)
        }
       else
        {
-         char *errstr = strerror (errno);
-         lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
+         lt_fatal (__FILE__, __LINE__,
+                   "error accessing file \"%s\": %s",
+                   tmp_pathspec, nonnull (strerror (errno)));
        }
     }
   XFREE (tmp_pathspec);
@@ -3809,7 +4777,8 @@ chase_symlinks (const char *pathspec)
   tmp_pathspec = realpath (pathspec, buf);
   if (tmp_pathspec == 0)
     {
-      lt_fatal ("Could not follow symlinks for %s", pathspec);
+      lt_fatal (__FILE__, __LINE__,
+               "could not follow symlinks for %s", pathspec);
     }
   return xstrdup (tmp_pathspec);
 #endif
@@ -3835,11 +4804,25 @@ strendzap (char *str, const char *pat)
   return str;
 }
 
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+  va_list args;
+  if (lt_debug)
+    {
+      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+      va_start (args, fmt);
+      (void) vfprintf (stderr, fmt, args);
+      va_end (args);
+    }
+}
+
 static void
-lt_error_core (int exit_status, const char *mode,
+lt_error_core (int exit_status, const char *file,
+              int line, const char *mode,
               const char *message, va_list ap)
 {
-  fprintf (stderr, "%s: %s: ", program_name, mode);
+  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
   vfprintf (stderr, message, ap);
   fprintf (stderr, ".\n");
 
@@ -3848,20 +4831,32 @@ lt_error_core (int exit_status, const char *mode,
 }
 
 void
-lt_fatal (const char *message, ...)
+lt_fatal (const char *file, int line, const char *message, ...)
 {
   va_list ap;
   va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
   va_end (ap);
 }
 
+static const char *
+nonnull (const char *s)
+{
+  return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+  return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
 void
 lt_setenv (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_setenv) setting '%s' to '%s'\n",
+                  nonnull (name), nonnull (value));
   {
 #ifdef HAVE_SETENV
     /* always make a copy, for consistency with !HAVE_SETENV */
@@ -3906,95 +4901,12 @@ lt_extend_str (const char *orig_value, const char *add, int to_end)
   return new_value;
 }
 
-int
-lt_split_name_value (const char *arg, char** name, char** value)
-{
-  const char *p;
-  int len;
-  if (!arg || !*arg)
-    return 1;
-
-  p = strchr (arg, (int)'=');
-
-  if (!p)
-    return 1;
-
-  *value = xstrdup (++p);
-
-  len = strlen (arg) - strlen (*value);
-  *name = XMALLOC (char, len);
-  strncpy (*name, arg, len-1);
-  (*name)[len - 1] = '\0';
-
-  return 0;
-}
-
-void
-lt_opt_process_env_set (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
-    }
-
-  lt_setenv (name, value);
-  XFREE (name);
-  XFREE (value);
-}
-
-void
-lt_opt_process_env_prepend (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-  char *new_value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
-    }
-
-  new_value = lt_extend_str (getenv (name), value, 0);
-  lt_setenv (name, new_value);
-  XFREE (new_value);
-  XFREE (name);
-  XFREE (value);
-}
-
-void
-lt_opt_process_env_append (const char *arg)
-{
-  char *name = NULL;
-  char *value = NULL;
-  char *new_value = NULL;
-
-  if (lt_split_name_value (arg, &name, &value) != 0)
-    {
-      XFREE (name);
-      XFREE (value);
-      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
-    }
-
-  new_value = lt_extend_str (getenv (name), value, 1);
-  lt_setenv (name, new_value);
-  XFREE (new_value);
-  XFREE (name);
-  XFREE (value);
-}
-
 void
 lt_update_exe_path (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
 
   if (name && *name && value && *value)
     {
@@ -4013,9 +4925,9 @@ lt_update_exe_path (const char *name, const char *value)
 void
 lt_update_lib_path (const char *name, const char *value)
 {
-  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
-                          (name ? name : "<NULL>"),
-                          (value ? value : "<NULL>")));
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
 
   if (name && *name && value && *value)
     {
@@ -4145,9 +5057,38 @@ prepare_spawn (char **argv)
 EOF
                ;;
            esac
+
+            cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+           func_emit_wrapper yes |
+             $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/  fputs ("\1", f);/p
+g
+D'
+            cat <<"EOF"
+}
+EOF
 }
 # end: func_emit_cwrapperexe_src
 
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+    $opt_debug
+    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+    *import*) : ;;
+    *) false ;;
+    esac
+}
+
 # func_mode_link arg...
 func_mode_link ()
 {
@@ -4192,6 +5133,7 @@ func_mode_link ()
     new_inherited_linker_flags=
 
     avoid_version=no
+    bindir=
     dlfiles=
     dlprefiles=
     dlself=no
@@ -4284,6 +5226,11 @@ func_mode_link ()
        esac
 
        case $prev in
+       bindir)
+         bindir="$arg"
+         prev=
+         continue
+         ;;
        dlfiles|dlprefiles)
          if test "$preload" = no; then
            # Add the symbol object into the linking commands.
@@ -4315,9 +5262,9 @@ func_mode_link ()
            ;;
          *)
            if test "$prev" = dlfiles; then
-             dlfiles="$dlfiles $arg"
+             func_append dlfiles " $arg"
            else
-             dlprefiles="$dlprefiles $arg"
+             func_append dlprefiles " $arg"
            fi
            prev=
            continue
@@ -4341,7 +5288,7 @@ func_mode_link ()
            *-*-darwin*)
              case "$deplibs " in
                *" $qarg.ltframework "*) ;;
-               *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+               *) func_append deplibs " $qarg.ltframework" # this is fixed later
                   ;;
              esac
              ;;
@@ -4360,7 +5307,7 @@ func_mode_link ()
            moreargs=
            for fil in `cat "$save_arg"`
            do
-#            moreargs="$moreargs $fil"
+#            func_append moreargs " $fil"
              arg=$fil
              # A libtool-controlled object.
 
@@ -4389,7 +5336,7 @@ func_mode_link ()
 
                  if test "$prev" = dlfiles; then
                    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-                     dlfiles="$dlfiles $pic_object"
+                     func_append dlfiles " $pic_object"
                      prev=
                      continue
                    else
@@ -4401,7 +5348,7 @@ func_mode_link ()
                  # CHECK ME:  I think I busted this.  -Ossama
                  if test "$prev" = dlprefiles; then
                    # Preload the old-style object.
-                   dlprefiles="$dlprefiles $pic_object"
+                   func_append dlprefiles " $pic_object"
                    prev=
                  fi
 
@@ -4471,12 +5418,12 @@ func_mode_link ()
          if test "$prev" = rpath; then
            case "$rpath " in
            *" $arg "*) ;;
-           *) rpath="$rpath $arg" ;;
+           *) func_append rpath " $arg" ;;
            esac
          else
            case "$xrpath " in
            *" $arg "*) ;;
-           *) xrpath="$xrpath $arg" ;;
+           *) func_append xrpath " $arg" ;;
            esac
          fi
          prev=
@@ -4488,28 +5435,28 @@ func_mode_link ()
          continue
          ;;
        weak)
-         weak_libs="$weak_libs $arg"
+         func_append weak_libs " $arg"
          prev=
          continue
          ;;
        xcclinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $qarg"
+         func_append linker_flags " $qarg"
+         func_append compiler_flags " $qarg"
          prev=
          func_append compile_command " $qarg"
          func_append finalize_command " $qarg"
          continue
          ;;
        xcompiler)
-         compiler_flags="$compiler_flags $qarg"
+         func_append compiler_flags " $qarg"
          prev=
          func_append compile_command " $qarg"
          func_append finalize_command " $qarg"
          continue
          ;;
        xlinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $wl$qarg"
+         func_append linker_flags " $qarg"
+         func_append compiler_flags " $wl$qarg"
          prev=
          func_append compile_command " $wl$qarg"
          func_append finalize_command " $wl$qarg"
@@ -4545,6 +5492,11 @@ func_mode_link ()
        continue
        ;;
 
+      -bindir)
+       prev=bindir
+       continue
+       ;;
+
       -dlopen)
        prev=dlfiles
        continue
@@ -4595,15 +5547,16 @@ func_mode_link ()
        ;;
 
       -L*)
-       func_stripname '-L' '' "$arg"
-       dir=$func_stripname_result
-       if test -z "$dir"; then
+       func_stripname "-L" '' "$arg"
+       if test -z "$func_stripname_result"; then
          if test "$#" -gt 0; then
            func_fatal_error "require no space between \`-L' and \`$1'"
          else
            func_fatal_error "need path for \`-L' option"
          fi
        fi
+       func_resolve_sysroot "$func_stripname_result"
+       dir=$func_resolve_sysroot_result
        # We need an absolute path.
        case $dir in
        [\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -4615,24 +5568,30 @@ func_mode_link ()
          ;;
        esac
        case "$deplibs " in
-       *" -L$dir "*) ;;
+       *" -L$dir "* | *" $arg "*)
+         # Will only happen for absolute or sysroot arguments
+         ;;
        *)
-         deplibs="$deplibs -L$dir"
-         lib_search_path="$lib_search_path $dir"
+         # Preserve sysroot, but never include relative directories
+         case $dir in
+           [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+           *) func_append deplibs " -L$dir" ;;
+         esac
+         func_append lib_search_path " $dir"
          ;;
        esac
        case $host in
        *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-         testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+         testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
          case :$dllsearchpath: in
          *":$dir:"*) ;;
          ::) dllsearchpath=$dir;;
-         *) dllsearchpath="$dllsearchpath:$dir";;
+         *) func_append dllsearchpath ":$dir";;
          esac
          case :$dllsearchpath: in
          *":$testbindir:"*) ;;
          ::) dllsearchpath=$testbindir;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         *) func_append dllsearchpath ":$testbindir";;
          esac
          ;;
        esac
@@ -4642,7 +5601,7 @@ func_mode_link ()
       -l*)
        if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
          case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
            # These systems don't actually have a C or math library (as such)
            continue
            ;;
@@ -4656,7 +5615,7 @@ func_mode_link ()
            ;;
          *-*-rhapsody* | *-*-darwin1.[012])
            # Rhapsody C and math libraries are in the System framework
-           deplibs="$deplibs System.ltframework"
+           func_append deplibs " System.ltframework"
            continue
            ;;
          *-*-sco3.2v5* | *-*-sco5v6*)
@@ -4676,7 +5635,7 @@ func_mode_link ()
           ;;
         esac
        fi
-       deplibs="$deplibs $arg"
+       func_append deplibs " $arg"
        continue
        ;;
 
@@ -4688,21 +5647,22 @@ func_mode_link ()
       # Tru64 UNIX uses -model [arg] to determine the layout of C++
       # classes, name mangling, and exception handling.
       # Darwin uses the -arch flag to determine output architecture.
-      -model|-arch|-isysroot)
-       compiler_flags="$compiler_flags $arg"
+      -model|-arch|-isysroot|--sysroot)
+       func_append compiler_flags " $arg"
        func_append compile_command " $arg"
        func_append finalize_command " $arg"
        prev=xcompiler
        continue
        ;;
 
-      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-       compiler_flags="$compiler_flags $arg"
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+       func_append compiler_flags " $arg"
        func_append compile_command " $arg"
        func_append finalize_command " $arg"
        case "$new_inherited_linker_flags " in
            *" $arg "*) ;;
-           * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+           * ) func_append new_inherited_linker_flags " $arg" ;;
        esac
        continue
        ;;
@@ -4769,13 +5729,17 @@ func_mode_link ()
        # We need an absolute path.
        case $dir in
        [\\/]* | [A-Za-z]:[\\/]*) ;;
+       =*)
+         func_stripname '=' '' "$dir"
+         dir=$lt_sysroot$func_stripname_result
+         ;;
        *)
          func_fatal_error "only absolute run-paths are allowed"
          ;;
        esac
        case "$xrpath " in
        *" $dir "*) ;;
-       *) xrpath="$xrpath $dir" ;;
+       *) func_append xrpath " $dir" ;;
        esac
        continue
        ;;
@@ -4828,8 +5792,8 @@ func_mode_link ()
        for flag in $args; do
          IFS="$save_ifs"
           func_quote_for_eval "$flag"
-         arg="$arg $wl$func_quote_for_eval_result"
-         compiler_flags="$compiler_flags $func_quote_for_eval_result"
+         func_append arg " $func_quote_for_eval_result"
+         func_append compiler_flags " $func_quote_for_eval_result"
        done
        IFS="$save_ifs"
        func_stripname ' ' '' "$arg"
@@ -4844,9 +5808,9 @@ func_mode_link ()
        for flag in $args; do
          IFS="$save_ifs"
           func_quote_for_eval "$flag"
-         arg="$arg $wl$func_quote_for_eval_result"
-         compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
-         linker_flags="$linker_flags $func_quote_for_eval_result"
+         func_append arg " $wl$func_quote_for_eval_result"
+         func_append compiler_flags " $wl$func_quote_for_eval_result"
+         func_append linker_flags " $func_quote_for_eval_result"
        done
        IFS="$save_ifs"
        func_stripname ' ' '' "$arg"
@@ -4874,23 +5838,27 @@ func_mode_link ()
        arg="$func_quote_for_eval_result"
        ;;
 
-      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
-      # -r[0-9][0-9]* specifies the processor on the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
-      # +DA*, +DD* enable 64-bit mode on the HP compiler
-      # -q* pass through compiler args for the IBM compiler
-      # -m*, -t[45]*, -txscale* pass through architecture-specific
-      # compiler args for GCC
-      # -F/path gives path to uninstalled frameworks, gcc on darwin
-      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
-      # @file GCC response files
+      # Flags to be passed through unchanged, with rationale:
+      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
+      # -r[0-9][0-9]*        specify processor for the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+      # +DA*, +DD*           enable 64-bit mode for the HP compiler
+      # -q*                  compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+      # -F/path              path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
+      # @file                GCC response files
+      # -tp=*                Portland pgcc target processor selection
+      # --sysroot=*          for sysroot support
+      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
         func_quote_for_eval "$arg"
        arg="$func_quote_for_eval_result"
         func_append compile_command " $arg"
         func_append finalize_command " $arg"
-        compiler_flags="$compiler_flags $arg"
+        func_append compiler_flags " $arg"
         continue
         ;;
 
@@ -4902,7 +5870,7 @@ func_mode_link ()
 
       *.$objext)
        # A standard object.
-       objs="$objs $arg"
+       func_append objs " $arg"
        ;;
 
       *.lo)
@@ -4933,7 +5901,7 @@ func_mode_link ()
 
            if test "$prev" = dlfiles; then
              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-               dlfiles="$dlfiles $pic_object"
+               func_append dlfiles " $pic_object"
                prev=
                continue
              else
@@ -4945,7 +5913,7 @@ func_mode_link ()
            # CHECK ME:  I think I busted this.  -Ossama
            if test "$prev" = dlprefiles; then
              # Preload the old-style object.
-             dlprefiles="$dlprefiles $pic_object"
+             func_append dlprefiles " $pic_object"
              prev=
            fi
 
@@ -4990,24 +5958,25 @@ func_mode_link ()
 
       *.$libext)
        # An archive.
-       deplibs="$deplibs $arg"
-       old_deplibs="$old_deplibs $arg"
+       func_append deplibs " $arg"
+       func_append old_deplibs " $arg"
        continue
        ;;
 
       *.la)
        # A libtool-controlled library.
 
+       func_resolve_sysroot "$arg"
        if test "$prev" = dlfiles; then
          # This library was specified with -dlopen.
-         dlfiles="$dlfiles $arg"
+         func_append dlfiles " $func_resolve_sysroot_result"
          prev=
        elif test "$prev" = dlprefiles; then
          # The library was specified with -dlpreopen.
-         dlprefiles="$dlprefiles $arg"
+         func_append dlprefiles " $func_resolve_sysroot_result"
          prev=
        else
-         deplibs="$deplibs $arg"
+         func_append deplibs " $func_resolve_sysroot_result"
        fi
        continue
        ;;
@@ -5045,7 +6014,7 @@ func_mode_link ()
 
     if test -n "$shlibpath_var"; then
       # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
     else
       shlib_search_path=
     fi
@@ -5054,6 +6023,8 @@ func_mode_link ()
 
     func_dirname "$output" "/" ""
     output_objdir="$func_dirname_result$objdir"
+    func_to_tool_file "$output_objdir/"
+    tool_output_objdir=$func_to_tool_file_result
     # Create the object directory.
     func_mkdir_p "$output_objdir"
 
@@ -5074,12 +6045,12 @@ func_mode_link ()
     # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do
-      if $opt_duplicate_deps ; then
+      if $opt_preserve_dup_deps ; then
        case "$libs " in
-       *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+       *" $deplib "*) func_append specialdeplibs " $deplib" ;;
        esac
       fi
-      libs="$libs $deplib"
+      func_append libs " $deplib"
     done
 
     if test "$linkmode" = lib; then
@@ -5092,9 +6063,9 @@ func_mode_link ()
       if $opt_duplicate_compiler_generated_deps; then
        for pre_post_dep in $predeps $postdeps; do
          case "$pre_post_deps " in
-         *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+         *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
          esac
-         pre_post_deps="$pre_post_deps $pre_post_dep"
+         func_append pre_post_deps " $pre_post_dep"
        done
       fi
       pre_post_deps=
@@ -5161,17 +6132,19 @@ func_mode_link ()
        for lib in $dlprefiles; do
          # Ignore non-libtool-libs
          dependency_libs=
+         func_resolve_sysroot "$lib"
          case $lib in
-         *.la) func_source "$lib" ;;
+         *.la) func_source "$func_resolve_sysroot_result" ;;
          esac
 
          # Collect preopened libtool deplibs, except any this library
          # has declared as weak libs
          for deplib in $dependency_libs; do
-            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
+           func_basename "$deplib"
+            deplib_base=$func_basename_result
            case " $weak_libs " in
            *" $deplib_base "*) ;;
-           *) deplibs="$deplibs $deplib" ;;
+           *) func_append deplibs " $deplib" ;;
            esac
          done
        done
@@ -5187,16 +6160,17 @@ func_mode_link ()
        lib=
        found=no
        case $deplib in
-       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
          if test "$linkmode,$pass" = "prog,link"; then
            compile_deplibs="$deplib $compile_deplibs"
            finalize_deplibs="$deplib $finalize_deplibs"
          else
-           compiler_flags="$compiler_flags $deplib"
+           func_append compiler_flags " $deplib"
            if test "$linkmode" = lib ; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
-                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+                   * ) func_append new_inherited_linker_flags " $deplib" ;;
                esac
            fi
          fi
@@ -5281,7 +6255,7 @@ func_mode_link ()
            if test "$linkmode" = lib ; then
                case "$new_inherited_linker_flags " in
                    *" $deplib "*) ;;
-                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+                   * ) func_append new_inherited_linker_flags " $deplib" ;;
                esac
            fi
          fi
@@ -5294,7 +6268,8 @@ func_mode_link ()
            test "$pass" = conv && continue
            newdependency_libs="$deplib $newdependency_libs"
            func_stripname '-L' '' "$deplib"
-           newlib_search_path="$newlib_search_path $func_stripname_result"
+           func_resolve_sysroot "$func_stripname_result"
+           func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          prog)
            if test "$pass" = conv; then
@@ -5308,7 +6283,8 @@ func_mode_link ()
              finalize_deplibs="$deplib $finalize_deplibs"
            fi
            func_stripname '-L' '' "$deplib"
-           newlib_search_path="$newlib_search_path $func_stripname_result"
+           func_resolve_sysroot "$func_stripname_result"
+           func_append newlib_search_path " $func_resolve_sysroot_result"
            ;;
          *)
            func_warning "\`-L' is ignored for archives/objects"
@@ -5319,17 +6295,21 @@ func_mode_link ()
        -R*)
          if test "$pass" = link; then
            func_stripname '-R' '' "$deplib"
-           dir=$func_stripname_result
+           func_resolve_sysroot "$func_stripname_result"
+           dir=$func_resolve_sysroot_result
            # Make sure the xrpath contains only unique directories.
            case "$xrpath " in
            *" $dir "*) ;;
-           *) xrpath="$xrpath $dir" ;;
+           *) func_append xrpath " $dir" ;;
            esac
          fi
          deplibs="$deplib $deplibs"
          continue
          ;;
-       *.la) lib="$deplib" ;;
+       *.la)
+         func_resolve_sysroot "$deplib"
+         lib=$func_resolve_sysroot_result
+         ;;
        *.$libext)
          if test "$pass" = conv; then
            deplibs="$deplib $deplibs"
@@ -5347,7 +6327,7 @@ func_mode_link ()
                match_pattern*)
                  set dummy $deplibs_check_method; shift
                  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-                 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
+                 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
                    | $EGREP "$match_pattern_regex" > /dev/null; then
                    valid_a_lib=yes
                  fi
@@ -5357,15 +6337,15 @@ func_mode_link ()
                ;;
              esac
              if test "$valid_a_lib" != yes; then
-               $ECHO
+               echo
                $ECHO "*** Warning: Trying to link with static lib archive $deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because the file extensions .$libext of this argument makes me believe"
-               $ECHO "*** that it is just a static archive that I should not use here."
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because the file extensions .$libext of this argument makes me believe"
+               echo "*** that it is just a static archive that I should not use here."
              else
-               $ECHO
+               echo
                $ECHO "*** Warning: Linking the shared library $output against the"
                $ECHO "*** static library $deplib is not portable!"
                deplibs="$deplib $deplibs"
@@ -5392,11 +6372,11 @@ func_mode_link ()
            if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
              # If there is no dlopen support or we're linking statically,
              # we need to preload.
-             newdlprefiles="$newdlprefiles $deplib"
+             func_append newdlprefiles " $deplib"
              compile_deplibs="$deplib $compile_deplibs"
              finalize_deplibs="$deplib $finalize_deplibs"
            else
-             newdlfiles="$newdlfiles $deplib"
+             func_append newdlfiles " $deplib"
            fi
          fi
          continue
@@ -5438,20 +6418,20 @@ func_mode_link ()
 
        # Convert "-framework foo" to "foo.ltframework"
        if test -n "$inherited_linker_flags"; then
-         tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+         tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
          for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
            case " $new_inherited_linker_flags " in
              *" $tmp_inherited_linker_flag "*) ;;
-             *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+             *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
            esac
          done
        fi
-       dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        if test "$linkmode,$pass" = "lib,link" ||
           test "$linkmode,$pass" = "prog,scan" ||
           { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-         test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-         test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+         test -n "$dlopen" && func_append dlfiles " $dlopen"
+         test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
        fi
 
        if test "$pass" = conv; then
@@ -5462,20 +6442,20 @@ func_mode_link ()
              func_fatal_error "cannot find name of link library for \`$lib'"
            fi
            # It is a libtool convenience library, so add in its objects.
-           convenience="$convenience $ladir/$objdir/$old_library"
-           old_convenience="$old_convenience $ladir/$objdir/$old_library"
+           func_append convenience " $ladir/$objdir/$old_library"
+           func_append old_convenience " $ladir/$objdir/$old_library"
          elif test "$linkmode" != prog && test "$linkmode" != lib; then
            func_fatal_error "\`$lib' is not a convenience library"
          fi
          tmp_libs=
          for deplib in $dependency_libs; do
            deplibs="$deplib $deplibs"
-           if $opt_duplicate_deps ; then
+           if $opt_preserve_dup_deps ; then
              case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             *" $deplib "*) func_append specialdeplibs " $deplib" ;;
              esac
            fi
-           tmp_libs="$tmp_libs $deplib"
+           func_append tmp_libs " $deplib"
          done
          continue
        fi # $pass = conv
@@ -5483,9 +6463,15 @@ func_mode_link ()
 
        # Get the name of the library we link against.
        linklib=
-       for l in $old_library $library_names; do
-         linklib="$l"
-       done
+       if test -n "$old_library" &&
+          { test "$prefer_static_libs" = yes ||
+            test "$prefer_static_libs,$installed" = "built,no"; }; then
+         linklib=$old_library
+       else
+         for l in $old_library $library_names; do
+           linklib="$l"
+         done
+       fi
        if test -z "$linklib"; then
          func_fatal_error "cannot find name of link library for \`$lib'"
        fi
@@ -5502,9 +6488,9 @@ func_mode_link ()
            # statically, we need to preload.  We also need to preload any
            # dependent libraries so libltdl's deplib preloader doesn't
            # bomb out in the load deplibs phase.
-           dlprefiles="$dlprefiles $lib $dependency_libs"
+           func_append dlprefiles " $lib $dependency_libs"
          else
-           newdlfiles="$newdlfiles $lib"
+           func_append newdlfiles " $lib"
          fi
          continue
        fi # $pass = dlopen
@@ -5526,14 +6512,14 @@ func_mode_link ()
 
        # Find the relevant object directory and library name.
        if test "X$installed" = Xyes; then
-         if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+         if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
            func_warning "library \`$lib' was moved."
            dir="$ladir"
            absdir="$abs_ladir"
            libdir="$abs_ladir"
          else
-           dir="$libdir"
-           absdir="$libdir"
+           dir="$lt_sysroot$libdir"
+           absdir="$lt_sysroot$libdir"
          fi
          test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
        else
@@ -5541,12 +6527,12 @@ func_mode_link ()
            dir="$ladir"
            absdir="$abs_ladir"
            # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
+           func_append notinst_path " $abs_ladir"
          else
            dir="$ladir/$objdir"
            absdir="$abs_ladir/$objdir"
            # Remove this search path later
-           notinst_path="$notinst_path $abs_ladir"
+           func_append notinst_path " $abs_ladir"
          fi
        fi # $installed = yes
        func_stripname 'lib' '.la' "$laname"
@@ -5557,20 +6543,46 @@ func_mode_link ()
          if test -z "$libdir" && test "$linkmode" = prog; then
            func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
          fi
-         # Prefer using a static library (so that no silly _DYNAMIC symbols
-         # are required to link).
-         if test -n "$old_library"; then
-           newdlprefiles="$newdlprefiles $dir/$old_library"
-           # Keep a list of preopened convenience libraries to check
-           # that they are being used correctly in the link pass.
-           test -z "$libdir" && \
-               dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
-         # Otherwise, use the dlname, so that lt_dlopen finds it.
-         elif test -n "$dlname"; then
-           newdlprefiles="$newdlprefiles $dir/$dlname"
-         else
-           newdlprefiles="$newdlprefiles $dir/$linklib"
-         fi
+         case "$host" in
+           # special handling for platforms with PE-DLLs.
+           *cygwin* | *mingw* | *cegcc* )
+             # Linker will automatically link against shared library if both
+             # static and shared are present.  Therefore, ensure we extract
+             # symbols from the import library if a shared library is present
+             # (otherwise, the dlopen module name will be incorrect).  We do
+             # this by putting the import library name into $newdlprefiles.
+             # We recover the dlopen module name by 'saving' the la file
+             # name in a special purpose variable, and (later) extracting the
+             # dlname from the la file.
+             if test -n "$dlname"; then
+               func_tr_sh "$dir/$linklib"
+               eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+               func_append newdlprefiles " $dir/$linklib"
+             else
+               func_append newdlprefiles " $dir/$old_library"
+               # Keep a list of preopened convenience libraries to check
+               # that they are being used correctly in the link pass.
+               test -z "$libdir" && \
+                 func_append dlpreconveniencelibs " $dir/$old_library"
+             fi
+           ;;
+           * )
+             # Prefer using a static library (so that no silly _DYNAMIC symbols
+             # are required to link).
+             if test -n "$old_library"; then
+               func_append newdlprefiles " $dir/$old_library"
+               # Keep a list of preopened convenience libraries to check
+               # that they are being used correctly in the link pass.
+               test -z "$libdir" && \
+                 func_append dlpreconveniencelibs " $dir/$old_library"
+             # Otherwise, use the dlname, so that lt_dlopen finds it.
+             elif test -n "$dlname"; then
+               func_append newdlprefiles " $dir/$dlname"
+             else
+               func_append newdlprefiles " $dir/$linklib"
+             fi
+           ;;
+         esac
        fi # $pass = dlpreopen
 
        if test -z "$libdir"; then
@@ -5588,7 +6600,7 @@ func_mode_link ()
 
 
        if test "$linkmode" = prog && test "$pass" != link; then
-         newlib_search_path="$newlib_search_path $ladir"
+         func_append newlib_search_path " $ladir"
          deplibs="$lib $deplibs"
 
          linkalldeplibs=no
@@ -5601,7 +6613,8 @@ func_mode_link ()
          for deplib in $dependency_libs; do
            case $deplib in
            -L*) func_stripname '-L' '' "$deplib"
-                newlib_search_path="$newlib_search_path $func_stripname_result"
+                func_resolve_sysroot "$func_stripname_result"
+                func_append newlib_search_path " $func_resolve_sysroot_result"
                 ;;
            esac
            # Need to link against all dependency_libs?
@@ -5612,12 +6625,12 @@ func_mode_link ()
              # or/and link against static libraries
              newdependency_libs="$deplib $newdependency_libs"
            fi
-           if $opt_duplicate_deps ; then
+           if $opt_preserve_dup_deps ; then
              case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             *" $deplib "*) func_append specialdeplibs " $deplib" ;;
              esac
            fi
-           tmp_libs="$tmp_libs $deplib"
+           func_append tmp_libs " $deplib"
          done # for deplib
          continue
        fi # $linkmode = prog...
@@ -5632,7 +6645,7 @@ func_mode_link ()
              # Make sure the rpath contains only unique directories.
              case "$temp_rpath:" in
              *"$absdir:"*) ;;
-             *) temp_rpath="$temp_rpath$absdir:" ;;
+             *) func_append temp_rpath "$absdir:" ;;
              esac
            fi
 
@@ -5644,7 +6657,7 @@ func_mode_link ()
            *)
              case "$compile_rpath " in
              *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
+             *) func_append compile_rpath " $absdir" ;;
              esac
              ;;
            esac
@@ -5653,7 +6666,7 @@ func_mode_link ()
            *)
              case "$finalize_rpath " in
              *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
+             *) func_append finalize_rpath " $libdir" ;;
              esac
              ;;
            esac
@@ -5678,12 +6691,12 @@ func_mode_link ()
          case $host in
          *cygwin* | *mingw* | *cegcc*)
              # No point in relinking DLLs because paths are not encoded
-             notinst_deplibs="$notinst_deplibs $lib"
+             func_append notinst_deplibs " $lib"
              need_relink=no
            ;;
          *)
            if test "$installed" = no; then
-             notinst_deplibs="$notinst_deplibs $lib"
+             func_append notinst_deplibs " $lib"
              need_relink=yes
            fi
            ;;
@@ -5700,7 +6713,7 @@ func_mode_link ()
            fi
          done
          if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
-           $ECHO
+           echo
            if test "$linkmode" = prog; then
              $ECHO "*** Warning: Linking the executable $output against the loadable module"
            else
@@ -5718,7 +6731,7 @@ func_mode_link ()
            *)
              case "$compile_rpath " in
              *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
+             *) func_append compile_rpath " $absdir" ;;
              esac
              ;;
            esac
@@ -5727,7 +6740,7 @@ func_mode_link ()
            *)
              case "$finalize_rpath " in
              *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
+             *) func_append finalize_rpath " $libdir" ;;
              esac
              ;;
            esac
@@ -5781,7 +6794,7 @@ func_mode_link ()
            linklib=$newlib
          fi # test -n "$old_archive_from_expsyms_cmds"
 
-         if test "$linkmode" = prog || test "$mode" != relink; then
+         if test "$linkmode" = prog || test "$opt_mode" != relink; then
            add_shlibpath=
            add_dir=
            add=
@@ -5803,9 +6816,9 @@ func_mode_link ()
                      if test "X$dlopenmodule" != "X$lib"; then
                        $ECHO "*** Warning: lib $linklib is a module, not a shared library"
                        if test -z "$old_library" ; then
-                         $ECHO
-                         $ECHO "*** And there doesn't seem to be a static archive available"
-                         $ECHO "*** The link will probably fail, sorry"
+                         echo
+                         echo "*** And there doesn't seem to be a static archive available"
+                         echo "*** The link will probably fail, sorry"
                        else
                          add="$dir/$old_library"
                        fi
@@ -5832,12 +6845,12 @@ func_mode_link ()
                 test "$hardcode_direct_absolute" = no; then
                add="$dir/$linklib"
              elif test "$hardcode_minus_L" = yes; then
-               add_dir="-L$dir"
+               add_dir="-L$absdir"
                # Try looking first in the location we're being installed to.
                if test -n "$inst_prefix_dir"; then
                  case $libdir in
                    [\\/]*)
-                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
+                     func_append add_dir " -L$inst_prefix_dir$libdir"
                      ;;
                  esac
                fi
@@ -5859,7 +6872,7 @@ func_mode_link ()
            if test -n "$add_shlibpath"; then
              case :$compile_shlibpath: in
              *":$add_shlibpath:"*) ;;
-             *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+             *) func_append compile_shlibpath "$add_shlibpath:" ;;
              esac
            fi
            if test "$linkmode" = prog; then
@@ -5873,13 +6886,13 @@ func_mode_link ()
                 test "$hardcode_shlibpath_var" = yes; then
                case :$finalize_shlibpath: in
                *":$libdir:"*) ;;
-               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+               *) func_append finalize_shlibpath "$libdir:" ;;
                esac
              fi
            fi
          fi
 
-         if test "$linkmode" = prog || test "$mode" = relink; then
+         if test "$linkmode" = prog || test "$opt_mode" = relink; then
            add_shlibpath=
            add_dir=
            add=
@@ -5893,7 +6906,7 @@ func_mode_link ()
            elif test "$hardcode_shlibpath_var" = yes; then
              case :$finalize_shlibpath: in
              *":$libdir:"*) ;;
-             *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+             *) func_append finalize_shlibpath "$libdir:" ;;
              esac
              add="-l$name"
            elif test "$hardcode_automatic" = yes; then
@@ -5910,7 +6923,7 @@ func_mode_link ()
              if test -n "$inst_prefix_dir"; then
                case $libdir in
                  [\\/]*)
-                   add_dir="$add_dir -L$inst_prefix_dir$libdir"
+                   func_append add_dir " -L$inst_prefix_dir$libdir"
                    ;;
                esac
              fi
@@ -5945,21 +6958,21 @@ func_mode_link ()
 
            # Just print a warning and add the library to dependency_libs so
            # that the program can be linked against the static library.
-           $ECHO
+           echo
            $ECHO "*** Warning: This system can not link to static lib archive $lib."
-           $ECHO "*** I have the capability to make that library automatically link in when"
-           $ECHO "*** you link to this library.  But I can only do this if you have a"
-           $ECHO "*** shared version of the library, which you do not appear to have."
+           echo "*** I have the capability to make that library automatically link in when"
+           echo "*** you link to this library.  But I can only do this if you have a"
+           echo "*** shared version of the library, which you do not appear to have."
            if test "$module" = yes; then
-             $ECHO "*** But as you try to build a module library, libtool will still create "
-             $ECHO "*** a static module, that should work as long as the dlopening application"
-             $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
+             echo "*** But as you try to build a module library, libtool will still create "
+             echo "*** a static module, that should work as long as the dlopening application"
+             echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
              if test -z "$global_symbol_pipe"; then
-               $ECHO
-               $ECHO "*** However, this would only work if libtool was able to extract symbol"
-               $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-               $ECHO "*** not find such a program.  So, this module is probably useless."
-               $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+               echo
+               echo "*** However, this would only work if libtool was able to extract symbol"
+               echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+               echo "*** not find such a program.  So, this module is probably useless."
+               echo "*** \`nm' from GNU binutils and a full rebuild may help."
              fi
              if test "$build_old_libs" = no; then
                build_libtool_libs=module
@@ -5987,37 +7000,46 @@ func_mode_link ()
                   temp_xrpath=$func_stripname_result
                   case " $xrpath " in
                   *" $temp_xrpath "*) ;;
-                  *) xrpath="$xrpath $temp_xrpath";;
+                  *) func_append xrpath " $temp_xrpath";;
                   esac;;
-             *) temp_deplibs="$temp_deplibs $libdir";;
+             *) func_append temp_deplibs " $libdir";;
              esac
            done
            dependency_libs="$temp_deplibs"
          fi
 
-         newlib_search_path="$newlib_search_path $absdir"
+         func_append newlib_search_path " $absdir"
          # Link against this library
          test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
          # ... and its dependency_libs
          tmp_libs=
          for deplib in $dependency_libs; do
            newdependency_libs="$deplib $newdependency_libs"
-           if $opt_duplicate_deps ; then
+           case $deplib in
+              -L*) func_stripname '-L' '' "$deplib"
+                   func_resolve_sysroot "$func_stripname_result";;
+              *) func_resolve_sysroot "$deplib" ;;
+            esac
+           if $opt_preserve_dup_deps ; then
              case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             *" $func_resolve_sysroot_result "*)
+                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
              esac
            fi
-           tmp_libs="$tmp_libs $deplib"
+           func_append tmp_libs " $func_resolve_sysroot_result"
          done
 
          if test "$link_all_deplibs" != no; then
            # Add the search paths of all dependency libraries
            for deplib in $dependency_libs; do
+             path=
              case $deplib in
              -L*) path="$deplib" ;;
              *.la)
+               func_resolve_sysroot "$deplib"
+               deplib=$func_resolve_sysroot_result
                func_dirname "$deplib" "" "."
-               dir="$func_dirname_result"
+               dir=$func_dirname_result
                # We need an absolute path.
                case $dir in
                [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
@@ -6044,8 +7066,8 @@ func_mode_link ()
                       if test -z "$darwin_install_name"; then
                           darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
                       fi
-                     compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-                     linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+                     func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+                     func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
                      path=
                    fi
                  fi
@@ -6078,7 +7100,7 @@ func_mode_link ()
          compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
          finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
        else
-         compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        fi
       fi
       dependency_libs="$newdependency_libs"
@@ -6095,7 +7117,7 @@ func_mode_link ()
          for dir in $newlib_search_path; do
            case "$lib_search_path " in
            *" $dir "*) ;;
-           *) lib_search_path="$lib_search_path $dir" ;;
+           *) func_append lib_search_path " $dir" ;;
            esac
          done
          newlib_search_path=
@@ -6153,10 +7175,10 @@ func_mode_link ()
            -L*)
              case " $tmp_libs " in
              *" $deplib "*) ;;
-             *) tmp_libs="$tmp_libs $deplib" ;;
+             *) func_append tmp_libs " $deplib" ;;
              esac
              ;;
-           *) tmp_libs="$tmp_libs $deplib" ;;
+           *) func_append tmp_libs " $deplib" ;;
            esac
          done
          eval $var=\"$tmp_libs\"
@@ -6172,7 +7194,7 @@ func_mode_link ()
          ;;
        esac
        if test -n "$i" ; then
-         tmp_libs="$tmp_libs $i"
+         func_append tmp_libs " $i"
        fi
       done
       dependency_libs=$tmp_libs
@@ -6213,7 +7235,7 @@ func_mode_link ()
       # Now set the variables for building old libraries.
       build_libtool_libs=no
       oldlibs="$output"
-      objs="$objs$old_deplibs"
+      func_append objs "$old_deplibs"
       ;;
 
     lib)
@@ -6246,10 +7268,10 @@ func_mode_link ()
        if test "$deplibs_check_method" != pass_all; then
          func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
        else
-         $ECHO
+         echo
          $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
          $ECHO "*** objects $objs is not portable!"
-         libobjs="$libobjs $objs"
+         func_append libobjs " $objs"
        fi
       fi
 
@@ -6308,13 +7330,14 @@ func_mode_link ()
          # which has an extra 1 added just for fun
          #
          case $version_type in
+         # correct linux to gnu/linux during the next big refactor
          darwin|linux|osf|windows|none)
            func_arith $number_major + $number_minor
            current=$func_arith_result
            age="$number_minor"
            revision="$number_revision"
            ;;
-         freebsd-aout|freebsd-elf|sunos)
+         freebsd-aout|freebsd-elf|qnx|sunos)
            current="$number_major"
            revision="$number_minor"
            age="0"
@@ -6424,7 +7447,7 @@ func_mode_link ()
          versuffix="$major.$revision"
          ;;
 
-       linux)
+       linux) # correct to gnu/linux during the next big refactor
          func_arith $current - $age
          major=.$func_arith_result
          versuffix="$major.$age.$revision"
@@ -6447,7 +7470,7 @@ func_mode_link ()
          done
 
          # Make executables depend on our current version.
-         verstring="$verstring:${current}.0"
+         func_append verstring ":${current}.0"
          ;;
 
        qnx)
@@ -6515,10 +7538,10 @@ func_mode_link ()
       fi
 
       func_generate_dlsyms "$libname" "$libname" "yes"
-      libobjs="$libobjs $symfileobj"
+      func_append libobjs " $symfileobj"
       test "X$libobjs" = "X " && libobjs=
 
-      if test "$mode" != relink; then
+      if test "$opt_mode" != relink; then
        # Remove our outputs, but don't remove object files since they
        # may have been created when compiling PIC objects.
        removelist=
@@ -6534,7 +7557,7 @@ func_mode_link ()
                   continue
                 fi
               fi
-              removelist="$removelist $p"
+              func_append removelist " $p"
               ;;
            *) ;;
          esac
@@ -6545,27 +7568,28 @@ func_mode_link ()
 
       # Now set the variables for building old libraries.
       if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-       oldlibs="$oldlibs $output_objdir/$libname.$libext"
+       func_append oldlibs " $output_objdir/$libname.$libext"
 
        # Transform .lo files to .o files.
-       oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+       oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
       fi
 
       # Eliminate all temporary directories.
       #for path in $notinst_path; do
-      #        lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
-      #        deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
-      #        dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
+      #        lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+      #        deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+      #        dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
       #done
 
       if test -n "$xrpath"; then
        # If the user specified any rpath flags, then add them.
        temp_xrpath=
        for libdir in $xrpath; do
-         temp_xrpath="$temp_xrpath -R$libdir"
+         func_replace_sysroot "$libdir"
+         func_append temp_xrpath " -R$func_replace_sysroot_result"
          case "$finalize_rpath " in
          *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
+         *) func_append finalize_rpath " $libdir" ;;
          esac
        done
        if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
@@ -6579,7 +7603,7 @@ func_mode_link ()
       for lib in $old_dlfiles; do
        case " $dlprefiles $dlfiles " in
        *" $lib "*) ;;
-       *) dlfiles="$dlfiles $lib" ;;
+       *) func_append dlfiles " $lib" ;;
        esac
       done
 
@@ -6589,19 +7613,19 @@ func_mode_link ()
       for lib in $old_dlprefiles; do
        case "$dlprefiles " in
        *" $lib "*) ;;
-       *) dlprefiles="$dlprefiles $lib" ;;
+       *) func_append dlprefiles " $lib" ;;
        esac
       done
 
       if test "$build_libtool_libs" = yes; then
        if test -n "$rpath"; then
          case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
            # these systems don't actually have a c library (as such)!
            ;;
          *-*-rhapsody* | *-*-darwin1.[012])
            # Rhapsody C library is in the System framework
-           deplibs="$deplibs System.ltframework"
+           func_append deplibs " System.ltframework"
            ;;
          *-*-netbsd*)
            # Don't link with libc until the a.out ld.so is fixed.
@@ -6618,7 +7642,7 @@ func_mode_link ()
          *)
            # Add libc to deplibs on all other systems if necessary.
            if test "$build_libtool_need_lc" = "yes"; then
-             deplibs="$deplibs -lc"
+             func_append deplibs " -lc"
            fi
            ;;
          esac
@@ -6667,7 +7691,7 @@ EOF
                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                  case " $predeps $postdeps " in
                  *" $i "*)
-                   newdeplibs="$newdeplibs $i"
+                   func_append newdeplibs " $i"
                    i=""
                    ;;
                  esac
@@ -6678,21 +7702,21 @@ EOF
                  set dummy $deplib_matches; shift
                  deplib_match=$1
                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                   newdeplibs="$newdeplibs $i"
+                   func_append newdeplibs " $i"
                  else
                    droppeddeps=yes
-                   $ECHO
+                   echo
                    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-                   $ECHO "*** I have the capability to make that library automatically link in when"
-                   $ECHO "*** you link to this library.  But I can only do this if you have a"
-                   $ECHO "*** shared version of the library, which I believe you do not have"
-                   $ECHO "*** because a test_compile did reveal that the linker did not use it for"
-                   $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
+                   echo "*** I have the capability to make that library automatically link in when"
+                   echo "*** you link to this library.  But I can only do this if you have a"
+                   echo "*** shared version of the library, which I believe you do not have"
+                   echo "*** because a test_compile did reveal that the linker did not use it for"
+                   echo "*** its dynamic dependency list that programs get resolved with at runtime."
                  fi
                fi
                ;;
              *)
-               newdeplibs="$newdeplibs $i"
+               func_append newdeplibs " $i"
                ;;
              esac
            done
@@ -6710,7 +7734,7 @@ EOF
                  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                    case " $predeps $postdeps " in
                    *" $i "*)
-                     newdeplibs="$newdeplibs $i"
+                     func_append newdeplibs " $i"
                      i=""
                      ;;
                    esac
@@ -6721,29 +7745,29 @@ EOF
                    set dummy $deplib_matches; shift
                    deplib_match=$1
                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                     newdeplibs="$newdeplibs $i"
+                     func_append newdeplibs " $i"
                    else
                      droppeddeps=yes
-                     $ECHO
+                     echo
                      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-                     $ECHO "*** I have the capability to make that library automatically link in when"
-                     $ECHO "*** you link to this library.  But I can only do this if you have a"
-                     $ECHO "*** shared version of the library, which you do not appear to have"
-                     $ECHO "*** because a test_compile did reveal that the linker did not use this one"
-                     $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+                     echo "*** I have the capability to make that library automatically link in when"
+                     echo "*** you link to this library.  But I can only do this if you have a"
+                     echo "*** shared version of the library, which you do not appear to have"
+                     echo "*** because a test_compile did reveal that the linker did not use this one"
+                     echo "*** as a dynamic dependency that programs can get resolved with at runtime."
                    fi
                  fi
                else
                  droppeddeps=yes
-                 $ECHO
+                 echo
                  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
-                 $ECHO "*** make it link in!  You will probably need to install it or some"
-                 $ECHO "*** library that it depends on before this library will be fully"
-                 $ECHO "*** functional.  Installing it before continuing would be even better."
+                 echo "*** make it link in!  You will probably need to install it or some"
+                 echo "*** library that it depends on before this library will be fully"
+                 echo "*** functional.  Installing it before continuing would be even better."
                fi
                ;;
              *)
-               newdeplibs="$newdeplibs $i"
+               func_append newdeplibs " $i"
                ;;
              esac
            done
@@ -6760,15 +7784,27 @@ EOF
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
+                 func_append newdeplibs " $a_deplib"
                  a_deplib=""
                  ;;
                esac
              fi
              if test -n "$a_deplib" ; then
                libname=`eval "\\$ECHO \"$libname_spec\""`
+               if test -n "$file_magic_glob"; then
+                 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+               else
+                 libnameglob=$libname
+               fi
+               test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+                 if test "$want_nocaseglob" = yes; then
+                   shopt -s nocaseglob
+                   potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+                   $nocaseglob
+                 else
+                   potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+                 fi
                  for potent_lib in $potential_libs; do
                      # Follow soft links.
                      if ls -lLd "$potent_lib" 2>/dev/null |
@@ -6785,13 +7821,13 @@ EOF
                        potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
                        case $potliblink in
                        [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-                       *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+                       *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
                        esac
                      done
                      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
                         $SED -e 10q |
                         $EGREP "$file_magic_regex" > /dev/null; then
-                       newdeplibs="$newdeplibs $a_deplib"
+                       func_append newdeplibs " $a_deplib"
                        a_deplib=""
                        break 2
                      fi
@@ -6800,12 +7836,12 @@ EOF
              fi
              if test -n "$a_deplib" ; then
                droppeddeps=yes
-               $ECHO
+               echo
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because I did check the linker path looking for a file starting"
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because I did check the linker path looking for a file starting"
                if test -z "$potlib" ; then
                  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
                else
@@ -6816,7 +7852,7 @@ EOF
              ;;
            *)
              # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
+             func_append newdeplibs " $a_deplib"
              ;;
            esac
          done # Gone through all deplibs.
@@ -6832,7 +7868,7 @@ EOF
              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
                case " $predeps $postdeps " in
                *" $a_deplib "*)
-                 newdeplibs="$newdeplibs $a_deplib"
+                 func_append newdeplibs " $a_deplib"
                  a_deplib=""
                  ;;
                esac
@@ -6843,9 +7879,9 @@ EOF
                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
                  for potent_lib in $potential_libs; do
                    potlib="$potent_lib" # see symlink-check above in file_magic test
-                   if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
+                   if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
                       $EGREP "$match_pattern_regex" > /dev/null; then
-                     newdeplibs="$newdeplibs $a_deplib"
+                     func_append newdeplibs " $a_deplib"
                      a_deplib=""
                      break 2
                    fi
@@ -6854,12 +7890,12 @@ EOF
              fi
              if test -n "$a_deplib" ; then
                droppeddeps=yes
-               $ECHO
+               echo
                $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-               $ECHO "*** I have the capability to make that library automatically link in when"
-               $ECHO "*** you link to this library.  But I can only do this if you have a"
-               $ECHO "*** shared version of the library, which you do not appear to have"
-               $ECHO "*** because I did check the linker path looking for a file starting"
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because I did check the linker path looking for a file starting"
                if test -z "$potlib" ; then
                  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
                else
@@ -6870,32 +7906,32 @@ EOF
              ;;
            *)
              # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
+             func_append newdeplibs " $a_deplib"
              ;;
            esac
          done # Gone through all deplibs.
          ;;
        none | unknown | *)
          newdeplibs=""
-         tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
-             -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
+         tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
          if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
            for i in $predeps $postdeps ; do
              # can't use Xsed below, because $i might contain '/'
-             tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
+             tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
            done
          fi
-         if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[      ]//g' |
-            $GREP . >/dev/null; then
-           $ECHO
+         case $tmp_deplibs in
+         *[!\  \ ]*)
+           echo
            if test "X$deplibs_check_method" = "Xnone"; then
-             $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
+             echo "*** Warning: inter-library dependencies are not supported in this platform."
            else
-             $ECHO "*** Warning: inter-library dependencies are not known to be supported."
+             echo "*** Warning: inter-library dependencies are not known to be supported."
            fi
-           $ECHO "*** All declared inter-library dependencies are being dropped."
+           echo "*** All declared inter-library dependencies are being dropped."
            droppeddeps=yes
-         fi
+           ;;
+         esac
          ;;
        esac
        versuffix=$versuffix_save
@@ -6907,23 +7943,23 @@ EOF
        case $host in
        *-*-rhapsody* | *-*-darwin1.[012])
          # On Rhapsody replace the C library with the System framework
-         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+         newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
          ;;
        esac
 
        if test "$droppeddeps" = yes; then
          if test "$module" = yes; then
-           $ECHO
-           $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
+           echo
+           echo "*** Warning: libtool could not satisfy all declared inter-library"
            $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
-           $ECHO "*** a static module, that should work as long as the dlopening"
-           $ECHO "*** application is linked with the -dlopen flag."
+           echo "*** a static module, that should work as long as the dlopening"
+           echo "*** application is linked with the -dlopen flag."
            if test -z "$global_symbol_pipe"; then
-             $ECHO
-             $ECHO "*** However, this would only work if libtool was able to extract symbol"
-             $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
-             $ECHO "*** not find such a program.  So, this module is probably useless."
-             $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+             echo
+             echo "*** However, this would only work if libtool was able to extract symbol"
+             echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+             echo "*** not find such a program.  So, this module is probably useless."
+             echo "*** \`nm' from GNU binutils and a full rebuild may help."
            fi
            if test "$build_old_libs" = no; then
              oldlibs="$output_objdir/$libname.$libext"
@@ -6933,16 +7969,16 @@ EOF
              build_libtool_libs=no
            fi
          else
-           $ECHO "*** The inter-library dependencies that have been dropped here will be"
-           $ECHO "*** automatically added whenever a program is linked with this library"
-           $ECHO "*** or is declared to -dlopen it."
+           echo "*** The inter-library dependencies that have been dropped here will be"
+           echo "*** automatically added whenever a program is linked with this library"
+           echo "*** or is declared to -dlopen it."
 
            if test "$allow_undefined" = no; then
-             $ECHO
-             $ECHO "*** Since this library must not contain undefined symbols,"
-             $ECHO "*** because either the platform does not support them or"
-             $ECHO "*** it was explicitly requested with -no-undefined,"
-             $ECHO "*** libtool will only create a static version of it."
+             echo
+             echo "*** Since this library must not contain undefined symbols,"
+             echo "*** because either the platform does not support them or"
+             echo "*** it was explicitly requested with -no-undefined,"
+             echo "*** libtool will only create a static version of it."
              if test "$build_old_libs" = no; then
                oldlibs="$output_objdir/$libname.$libext"
                build_libtool_libs=module
@@ -6959,9 +7995,9 @@ EOF
       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
       case $host in
        *-*-darwin*)
-         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-         new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-         deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+         new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+         deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
          ;;
       esac
 
@@ -6974,7 +8010,7 @@ EOF
        *)
          case " $deplibs " in
          *" -L$path/$objdir "*)
-           new_libs="$new_libs -L$path/$objdir" ;;
+           func_append new_libs " -L$path/$objdir" ;;
          esac
          ;;
        esac
@@ -6984,10 +8020,10 @@ EOF
        -L*)
          case " $new_libs " in
          *" $deplib "*) ;;
-         *) new_libs="$new_libs $deplib" ;;
+         *) func_append new_libs " $deplib" ;;
          esac
          ;;
-       *) new_libs="$new_libs $deplib" ;;
+       *) func_append new_libs " $deplib" ;;
        esac
       done
       deplibs="$new_libs"
@@ -6999,15 +8035,22 @@ EOF
 
       # Test again, we may have decided not to build it any more
       if test "$build_libtool_libs" = yes; then
+       # Remove ${wl} instances when linking with ld.
+       # FIXME: should test the right _cmds variable.
+       case $archive_cmds in
+         *\$LD\ *) wl= ;;
+        esac
        if test "$hardcode_into_libs" = yes; then
          # Hardcode the library paths
          hardcode_libdirs=
          dep_rpath=
          rpath="$finalize_rpath"
-         test "$mode" != relink && rpath="$compile_rpath$rpath"
+         test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
          for libdir in $rpath; do
            if test -n "$hardcode_libdir_flag_spec"; then
              if test -n "$hardcode_libdir_separator"; then
+               func_replace_sysroot "$libdir"
+               libdir=$func_replace_sysroot_result
                if test -z "$hardcode_libdirs"; then
                  hardcode_libdirs="$libdir"
                else
@@ -7016,18 +8059,18 @@ EOF
                  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                    ;;
                  *)
-                   hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+                   func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                    ;;
                  esac
                fi
              else
                eval flag=\"$hardcode_libdir_flag_spec\"
-               dep_rpath="$dep_rpath $flag"
+               func_append dep_rpath " $flag"
              fi
            elif test -n "$runpath_var"; then
              case "$perm_rpath " in
              *" $libdir "*) ;;
-             *) perm_rpath="$perm_rpath $libdir" ;;
+             *) func_append perm_rpath " $libdir" ;;
              esac
            fi
          done
@@ -7035,17 +8078,13 @@ EOF
          if test -n "$hardcode_libdir_separator" &&
             test -n "$hardcode_libdirs"; then
            libdir="$hardcode_libdirs"
-           if test -n "$hardcode_libdir_flag_spec_ld"; then
-             eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-           else
-             eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-           fi
+           eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
          fi
          if test -n "$runpath_var" && test -n "$perm_rpath"; then
            # We should set the runpath_var.
            rpath=
            for dir in $perm_rpath; do
-             rpath="$rpath$dir:"
+             func_append rpath "$dir:"
            done
            eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
          fi
@@ -7053,7 +8092,7 @@ EOF
        fi
 
        shlibpath="$finalize_shlibpath"
-       test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+       test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
        if test -n "$shlibpath"; then
          eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
        fi
@@ -7079,18 +8118,18 @@ EOF
        linknames=
        for link
        do
-         linknames="$linknames $link"
+         func_append linknames " $link"
        done
 
        # Use standard objects if they are pic
-       test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+       test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
        test "X$libobjs" = "X " && libobjs=
 
        delfiles=
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
          $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
          export_symbols="$output_objdir/$libname.uexp"
-         delfiles="$delfiles $export_symbols"
+         func_append delfiles " $export_symbols"
        fi
 
        orig_export_symbols=
@@ -7121,13 +8160,45 @@ EOF
            $opt_dry_run || $RM $export_symbols
            cmds=$export_symbols_cmds
            save_ifs="$IFS"; IFS='~'
-           for cmd in $cmds; do
+           for cmd1 in $cmds; do
              IFS="$save_ifs"
-             eval cmd=\"$cmd\"
-             func_len " $cmd"
-             len=$func_len_result
-             if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+             # Take the normal branch if the nm_file_list_spec branch
+             # doesn't work or if tool conversion is not needed.
+             case $nm_file_list_spec~$to_tool_file_cmd in
+               *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+                 try_normal_branch=yes
+                 eval cmd=\"$cmd1\"
+                 func_len " $cmd"
+                 len=$func_len_result
+                 ;;
+               *)
+                 try_normal_branch=no
+                 ;;
+             esac
+             if test "$try_normal_branch" = yes \
+                && { test "$len" -lt "$max_cmd_len" \
+                     || test "$max_cmd_len" -le -1; }
+             then
+               func_show_eval "$cmd" 'exit $?'
+               skipped_export=false
+             elif test -n "$nm_file_list_spec"; then
+               func_basename "$output"
+               output_la=$func_basename_result
+               save_libobjs=$libobjs
+               save_output=$output
+               output=${output_objdir}/${output_la}.nm
+               func_to_tool_file "$output"
+               libobjs=$nm_file_list_spec$func_to_tool_file_result
+               func_append delfiles " $output"
+               func_verbose "creating $NM input file list: $output"
+               for obj in $save_libobjs; do
+                 func_to_tool_file "$obj"
+                 $ECHO "$func_to_tool_file_result"
+               done > "$output"
+               eval cmd=\"$cmd1\"
                func_show_eval "$cmd" 'exit $?'
+               output=$save_output
+               libobjs=$save_libobjs
                skipped_export=false
              else
                # The command line is too long to execute in one step.
@@ -7149,7 +8220,7 @@ EOF
        if test -n "$export_symbols" && test -n "$include_expsyms"; then
          tmp_export_symbols="$export_symbols"
          test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-         $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+         $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
        fi
 
        if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
@@ -7161,7 +8232,7 @@ EOF
          # global variables. join(1) would be nice here, but unfortunately
          # isn't a blessed tool.
          $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-         delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+         func_append delfiles " $export_symbols $output_objdir/$libname.filter"
          export_symbols=$output_objdir/$libname.def
          $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
        fi
@@ -7171,7 +8242,7 @@ EOF
          case " $convenience " in
          *" $test_deplib "*) ;;
          *)
-           tmp_deplibs="$tmp_deplibs $test_deplib"
+           func_append tmp_deplibs " $test_deplib"
            ;;
          esac
        done
@@ -7191,21 +8262,21 @@ EOF
            test "X$libobjs" = "X " && libobjs=
          else
            gentop="$output_objdir/${outputname}x"
-           generated="$generated $gentop"
+           func_append generated " $gentop"
 
            func_extract_archives $gentop $convenience
-           libobjs="$libobjs $func_extract_archives_result"
+           func_append libobjs " $func_extract_archives_result"
            test "X$libobjs" = "X " && libobjs=
          fi
        fi
 
        if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
          eval flag=\"$thread_safe_flag_spec\"
-         linker_flags="$linker_flags $flag"
+         func_append linker_flags " $flag"
        fi
 
        # Make a backup of the uninstalled library when relinking
-       if test "$mode" = relink; then
+       if test "$opt_mode" = relink; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
        fi
 
@@ -7250,7 +8321,8 @@ EOF
            save_libobjs=$libobjs
          fi
          save_output=$output
-         output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
+         func_basename "$output"
+         output_la=$func_basename_result
 
          # Clear the reloadable object creation command queue and
          # initialize k to one.
@@ -7263,13 +8335,16 @@ EOF
          if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
            output=${output_objdir}/${output_la}.lnkscript
            func_verbose "creating GNU ld script: $output"
-           $ECHO 'INPUT (' > $output
+           echo 'INPUT (' > $output
            for obj in $save_libobjs
            do
-             $ECHO "$obj" >> $output
+             func_to_tool_file "$obj"
+             $ECHO "$func_to_tool_file_result" >> $output
            done
-           $ECHO ')' >> $output
-           delfiles="$delfiles $output"
+           echo ')' >> $output
+           func_append delfiles " $output"
+           func_to_tool_file "$output"
+           output=$func_to_tool_file_result
          elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
            output=${output_objdir}/${output_la}.lnk
            func_verbose "creating linker input file list: $output"
@@ -7283,10 +8358,12 @@ EOF
            fi
            for obj
            do
-             $ECHO "$obj" >> $output
+             func_to_tool_file "$obj"
+             $ECHO "$func_to_tool_file_result" >> $output
            done
-           delfiles="$delfiles $output"
-           output=$firstobj\"$file_list_spec$output\"
+           func_append delfiles " $output"
+           func_to_tool_file "$output"
+           output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
          else
            if test -n "$save_libobjs"; then
              func_verbose "creating reloadable object files..."
@@ -7310,17 +8387,19 @@ EOF
                  # command to the queue.
                  if test "$k" -eq 1 ; then
                    # The first file doesn't have a previous command to add.
-                   eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+                   reload_objs=$objlist
+                   eval concat_cmds=\"$reload_cmds\"
                  else
                    # All subsequent reloadable object files will link in
                    # the last one created.
-                   eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
+                   reload_objs="$objlist $last_robj"
+                   eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
                  fi
                  last_robj=$output_objdir/$output_la-${k}.$objext
                  func_arith $k + 1
                  k=$func_arith_result
                  output=$output_objdir/$output_la-${k}.$objext
-                 objlist=$obj
+                 objlist=" $obj"
                  func_len " $last_robj"
                  func_arith $len0 + $func_len_result
                  len=$func_arith_result
@@ -7330,11 +8409,12 @@ EOF
              # reloadable object file.  All subsequent reloadable object
              # files will link in the last one created.
              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-             eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+             reload_objs="$objlist $last_robj"
+             eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
              if test -n "$last_robj"; then
                eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
              fi
-             delfiles="$delfiles $output"
+             func_append delfiles " $output"
 
            else
              output=
@@ -7368,7 +8448,7 @@ EOF
                lt_exit=$?
 
                # Restore the uninstalled library and exit
-               if test "$mode" = relink; then
+               if test "$opt_mode" = relink; then
                  ( cd "$output_objdir" && \
                    $RM "${realname}T" && \
                    $MV "${realname}U" "$realname" )
@@ -7389,7 +8469,7 @@ EOF
            if test -n "$export_symbols" && test -n "$include_expsyms"; then
              tmp_export_symbols="$export_symbols"
              test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-             $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+             $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
            fi
 
            if test -n "$orig_export_symbols"; then
@@ -7401,7 +8481,7 @@ EOF
              # global variables. join(1) would be nice here, but unfortunately
              # isn't a blessed tool.
              $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-             delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+             func_append delfiles " $export_symbols $output_objdir/$libname.filter"
              export_symbols=$output_objdir/$libname.def
              $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
            fi
@@ -7442,10 +8522,10 @@ EOF
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
-         libobjs="$libobjs $func_extract_archives_result"
+         func_append libobjs " $func_extract_archives_result"
          test "X$libobjs" = "X " && libobjs=
        fi
 
@@ -7461,7 +8541,7 @@ EOF
            lt_exit=$?
 
            # Restore the uninstalled library and exit
-           if test "$mode" = relink; then
+           if test "$opt_mode" = relink; then
              ( cd "$output_objdir" && \
                $RM "${realname}T" && \
                $MV "${realname}U" "$realname" )
@@ -7473,7 +8553,7 @@ EOF
        IFS="$save_ifs"
 
        # Restore the uninstalled library and exit
-       if test "$mode" = relink; then
+       if test "$opt_mode" = relink; then
          $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
          if test -n "$convenience"; then
@@ -7554,18 +8634,21 @@ EOF
       if test -n "$convenience"; then
        if test -n "$whole_archive_flag_spec"; then
          eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-         reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+         reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
        else
          gentop="$output_objdir/${obj}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $convenience
          reload_conv_objs="$reload_objs $func_extract_archives_result"
        fi
       fi
 
+      # If we're not building shared, we need to use non_pic_objs
+      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+
       # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
       output="$obj"
       func_execute_cmds "$reload_cmds" 'exit $?'
@@ -7625,8 +8708,8 @@ EOF
       case $host in
       *-*-rhapsody* | *-*-darwin1.[012])
        # On Rhapsody replace the C library is the System framework
-       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
-       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+       compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+       finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
        ;;
       esac
 
@@ -7637,14 +8720,14 @@ EOF
        if test "$tagname" = CXX ; then
          case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
            10.[0123])
-             compile_command="$compile_command ${wl}-bind_at_load"
-             finalize_command="$finalize_command ${wl}-bind_at_load"
+             func_append compile_command " ${wl}-bind_at_load"
+             func_append finalize_command " ${wl}-bind_at_load"
            ;;
          esac
        fi
        # Time to change all our "foo.ltframework" stuff back to "-framework foo"
-       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+       finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
        ;;
       esac
 
@@ -7658,7 +8741,7 @@ EOF
        *)
          case " $compile_deplibs " in
          *" -L$path/$objdir "*)
-           new_libs="$new_libs -L$path/$objdir" ;;
+           func_append new_libs " -L$path/$objdir" ;;
          esac
          ;;
        esac
@@ -7668,17 +8751,17 @@ EOF
        -L*)
          case " $new_libs " in
          *" $deplib "*) ;;
-         *) new_libs="$new_libs $deplib" ;;
+         *) func_append new_libs " $deplib" ;;
          esac
          ;;
-       *) new_libs="$new_libs $deplib" ;;
+       *) func_append new_libs " $deplib" ;;
        esac
       done
       compile_deplibs="$new_libs"
 
 
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
+      func_append compile_command " $compile_deplibs"
+      func_append finalize_command " $finalize_deplibs"
 
       if test -n "$rpath$xrpath"; then
        # If the user specified any rpath flags, then add them.
@@ -7686,7 +8769,7 @@ EOF
          # This is the magic to use -rpath.
          case "$finalize_rpath " in
          *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
+         *) func_append finalize_rpath " $libdir" ;;
          esac
        done
       fi
@@ -7705,18 +8788,18 @@ EOF
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                ;;
              *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+               func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                ;;
              esac
            fi
          else
            eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
+           func_append rpath " $flag"
          fi
        elif test -n "$runpath_var"; then
          case "$perm_rpath " in
          *" $libdir "*) ;;
-         *) perm_rpath="$perm_rpath $libdir" ;;
+         *) func_append perm_rpath " $libdir" ;;
          esac
        fi
        case $host in
@@ -7725,12 +8808,12 @@ EOF
          case :$dllsearchpath: in
          *":$libdir:"*) ;;
          ::) dllsearchpath=$libdir;;
-         *) dllsearchpath="$dllsearchpath:$libdir";;
+         *) func_append dllsearchpath ":$libdir";;
          esac
          case :$dllsearchpath: in
          *":$testbindir:"*) ;;
          ::) dllsearchpath=$testbindir;;
-         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         *) func_append dllsearchpath ":$testbindir";;
          esac
          ;;
        esac
@@ -7756,18 +8839,18 @@ EOF
              *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
                ;;
              *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+               func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
                ;;
              esac
            fi
          else
            eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
+           func_append rpath " $flag"
          fi
        elif test -n "$runpath_var"; then
          case "$finalize_perm_rpath " in
          *" $libdir "*) ;;
-         *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+         *) func_append finalize_perm_rpath " $libdir" ;;
          esac
        fi
       done
@@ -7781,8 +8864,8 @@ EOF
 
       if test -n "$libobjs" && test "$build_old_libs" = yes; then
        # Transform all the library objects into standard objects.
-       compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-       finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+       compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+       finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
       fi
 
       func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
@@ -7794,15 +8877,15 @@ EOF
 
       wrappers_required=yes
       case $host in
+      *cegcc* | *mingw32ce*)
+        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+        wrappers_required=no
+        ;;
       *cygwin* | *mingw* )
         if test "$build_libtool_libs" != yes; then
           wrappers_required=no
         fi
         ;;
-      *cegcc)
-        # Disable wrappers for cegcc, we are cross compiling anyway.
-        wrappers_required=no
-        ;;
       *)
         if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
           wrappers_required=no
@@ -7811,13 +8894,19 @@ EOF
       esac
       if test "$wrappers_required" = no; then
        # Replace the output file specification.
-       compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+       compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
        link_command="$compile_command$compile_rpath"
 
        # We have no uninstalled library dependencies, so finalize right now.
        exit_status=0
        func_show_eval "$link_command" 'exit_status=$?'
 
+       if test -n "$postlink_cmds"; then
+         func_to_tool_file "$output"
+         postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+         func_execute_cmds "$postlink_cmds" 'exit $?'
+       fi
+
        # Delete the generated files.
        if test -f "$output_objdir/${outputname}S.${objext}"; then
          func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
@@ -7840,7 +8929,7 @@ EOF
          # We should set the runpath_var.
          rpath=
          for dir in $perm_rpath; do
-           rpath="$rpath$dir:"
+           func_append rpath "$dir:"
          done
          compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
        fi
@@ -7848,7 +8937,7 @@ EOF
          # We should set the runpath_var.
          rpath=
          for dir in $finalize_perm_rpath; do
-           rpath="$rpath$dir:"
+           func_append rpath "$dir:"
          done
          finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
        fi
@@ -7858,11 +8947,18 @@ EOF
        # We don't need to create a wrapper script.
        link_command="$compile_var$compile_command$compile_rpath"
        # Replace the output file specification.
-       link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+       link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
        # Delete the old output file.
        $opt_dry_run || $RM $output
        # Link the executable and exit
        func_show_eval "$link_command" 'exit $?'
+
+       if test -n "$postlink_cmds"; then
+         func_to_tool_file "$output"
+         postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+         func_execute_cmds "$postlink_cmds" 'exit $?'
+       fi
+
        exit $EXIT_SUCCESS
       fi
 
@@ -7877,7 +8973,7 @@ EOF
        if test "$fast_install" != no; then
          link_command="$finalize_var$compile_command$finalize_rpath"
          if test "$fast_install" = yes; then
-           relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+           relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
          else
            # fast_install is set to needless
            relink_command=
@@ -7889,13 +8985,19 @@ EOF
       fi
 
       # Replace the output file specification.
-      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
       # Delete the old output files.
       $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 
       func_show_eval "$link_command" 'exit $?'
 
+      if test -n "$postlink_cmds"; then
+       func_to_tool_file "$output_objdir/$outputname"
+       postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+       func_execute_cmds "$postlink_cmds" 'exit $?'
+      fi
+
       # Now create the wrapper script.
       func_verbose "creating $output"
 
@@ -7913,18 +9015,7 @@ EOF
          fi
        done
        relink_command="(cd `pwd`; $relink_command)"
-       relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $ECHO for shipping.
-      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
-       case $progpath in
-       [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
-       *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
-       esac
-       qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-       qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
+       relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       fi
 
       # Only actually do things if not in dry run mode.
@@ -8004,7 +9095,7 @@ EOF
        else
          oldobjs="$old_deplibs $non_pic_objects"
          if test "$preload" = yes && test -f "$symfileobj"; then
-           oldobjs="$oldobjs $symfileobj"
+           func_append oldobjs " $symfileobj"
          fi
        fi
        addlibs="$old_convenience"
@@ -8012,10 +9103,10 @@ EOF
 
       if test -n "$addlibs"; then
        gentop="$output_objdir/${outputname}x"
-       generated="$generated $gentop"
+       func_append generated " $gentop"
 
        func_extract_archives $gentop $addlibs
-       oldobjs="$oldobjs $func_extract_archives_result"
+       func_append oldobjs " $func_extract_archives_result"
       fi
 
       # Do each command in the archive commands.
@@ -8026,10 +9117,10 @@ EOF
        # Add any objects from preloaded convenience libraries
        if test -n "$dlprefiles"; then
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
 
          func_extract_archives $gentop $dlprefiles
-         oldobjs="$oldobjs $func_extract_archives_result"
+         func_append oldobjs " $func_extract_archives_result"
        fi
 
        # POSIX demands no paths to be encoded in archives.  We have
@@ -8045,9 +9136,9 @@ EOF
            done | sort | sort -uc >/dev/null 2>&1); then
          :
        else
-         $ECHO "copying selected object files to avoid basename conflicts..."
+         echo "copying selected object files to avoid basename conflicts..."
          gentop="$output_objdir/${outputname}x"
-         generated="$generated $gentop"
+         func_append generated " $gentop"
          func_mkdir_p "$gentop"
          save_oldobjs=$oldobjs
          oldobjs=
@@ -8071,18 +9162,30 @@ EOF
                esac
              done
              func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-             oldobjs="$oldobjs $gentop/$newobj"
+             func_append oldobjs " $gentop/$newobj"
              ;;
-           *) oldobjs="$oldobjs $obj" ;;
+           *) func_append oldobjs " $obj" ;;
            esac
          done
        fi
+       func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+       tool_oldlib=$func_to_tool_file_result
        eval cmds=\"$old_archive_cmds\"
 
        func_len " $cmds"
        len=$func_len_result
        if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
          cmds=$old_archive_cmds
+       elif test -n "$archiver_list_spec"; then
+         func_verbose "using command file archive linking..."
+         for obj in $oldobjs
+         do
+           func_to_tool_file "$obj"
+           $ECHO "$func_to_tool_file_result"
+         done > $output_objdir/$libname.libcmd
+         func_to_tool_file "$output_objdir/$libname.libcmd"
+         oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+         cmds=$old_archive_cmds
        else
          # the command line is too long to link in one step, link in parts
          func_verbose "using piecewise archive linking..."
@@ -8156,7 +9259,7 @@ EOF
       done
       # Quote the link command for shipping.
       relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
       if test "$hardcode_automatic" = yes ; then
        relink_command=
       fi
@@ -8176,12 +9279,23 @@ EOF
              *.la)
                func_basename "$deplib"
                name="$func_basename_result"
-               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+               func_resolve_sysroot "$deplib"
+               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
                test -z "$libdir" && \
                  func_fatal_error "\`$deplib' is not a valid libtool archive"
-               newdependency_libs="$newdependency_libs $libdir/$name"
+               func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
+               ;;
+             -L*)
+               func_stripname -L '' "$deplib"
+               func_replace_sysroot "$func_stripname_result"
+               func_append newdependency_libs " -L$func_replace_sysroot_result"
                ;;
-             *) newdependency_libs="$newdependency_libs $deplib" ;;
+             -R*)
+               func_stripname -R '' "$deplib"
+               func_replace_sysroot "$func_stripname_result"
+               func_append newdependency_libs " -R$func_replace_sysroot_result"
+               ;;
+             *) func_append newdependency_libs " $deplib" ;;
              esac
            done
            dependency_libs="$newdependency_libs"
@@ -8195,9 +9309,9 @@ EOF
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
                  func_fatal_error "\`$lib' is not a valid libtool archive"
-               newdlfiles="$newdlfiles $libdir/$name"
+               func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
-             *) newdlfiles="$newdlfiles $lib" ;;
+             *) func_append newdlfiles " $lib" ;;
              esac
            done
            dlfiles="$newdlfiles"
@@ -8214,7 +9328,7 @@ EOF
                eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                test -z "$libdir" && \
                  func_fatal_error "\`$lib' is not a valid libtool archive"
-               newdlprefiles="$newdlprefiles $libdir/$name"
+               func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
                ;;
              esac
            done
@@ -8226,7 +9340,7 @@ EOF
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
                *) abs=`pwd`"/$lib" ;;
              esac
-             newdlfiles="$newdlfiles $abs"
+             func_append newdlfiles " $abs"
            done
            dlfiles="$newdlfiles"
            newdlprefiles=
@@ -8235,15 +9349,33 @@ EOF
                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
                *) abs=`pwd`"/$lib" ;;
              esac
-             newdlprefiles="$newdlprefiles $abs"
+             func_append newdlprefiles " $abs"
            done
            dlprefiles="$newdlprefiles"
          fi
          $RM $output
          # place dlname in correct position for cygwin
+         # In fact, it would be nice if we could use this code for all target
+         # systems that can't hard-code library paths into their executables
+         # and that have no shared library path variable independent of PATH,
+         # but it turns out we can't easily determine that from inspecting
+         # libtool variables, so we have to hard-code the OSs to which it
+         # applies here; at the moment, that means platforms that use the PE
+         # object format with DLL files.  See the long comment at the top of
+         # tests/bindir.at for full details.
          tdlname=$dlname
          case $host,$output,$installed,$module,$dlname in
-           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+             # If a -bindir argument was supplied, place the dll there.
+             if test "x$bindir" != x ;
+             then
+               func_relative_path "$install_libdir" "$bindir"
+               tdlname=$func_relative_path_result$dlname
+             else
+               # Otherwise fall back on heuristic.
+               tdlname=../bin/$dlname
+             fi
+             ;;
          esac
          $ECHO > $output "\
 # $outputname - a libtool library file
@@ -8302,7 +9434,7 @@ relink_command=\"$relink_command\""
     exit $EXIT_SUCCESS
 }
 
-{ test "$mode" = link || test "$mode" = relink; } &&
+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
     func_mode_link ${1+"$@"}
 
 
@@ -8322,9 +9454,9 @@ func_mode_uninstall ()
     for arg
     do
       case $arg in
-      -f) RM="$RM $arg"; rmforce=yes ;;
-      -*) RM="$RM $arg" ;;
-      *) files="$files $arg" ;;
+      -f) func_append RM " $arg"; rmforce=yes ;;
+      -*) func_append RM " $arg" ;;
+      *) func_append files " $arg" ;;
       esac
     done
 
@@ -8333,24 +9465,23 @@ func_mode_uninstall ()
 
     rmdirs=
 
-    origobjdir="$objdir"
     for file in $files; do
       func_dirname "$file" "" "."
       dir="$func_dirname_result"
       if test "X$dir" = X.; then
-       objdir="$origobjdir"
+       odir="$objdir"
       else
-       objdir="$dir/$origobjdir"
+       odir="$dir/$objdir"
       fi
       func_basename "$file"
       name="$func_basename_result"
-      test "$mode" = uninstall && objdir="$dir"
+      test "$opt_mode" = uninstall && odir="$dir"
 
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
+      # Remember odir for removal later, being careful to avoid duplicates
+      if test "$opt_mode" = clean; then
        case " $rmdirs " in
-         *" $objdir "*) ;;
-         *) rmdirs="$rmdirs $objdir" ;;
+         *" $odir "*) ;;
+         *) func_append rmdirs " $odir" ;;
        esac
       fi
 
@@ -8376,18 +9507,17 @@ func_mode_uninstall ()
 
          # Delete the libtool libraries and symlinks.
          for n in $library_names; do
-           rmfiles="$rmfiles $objdir/$n"
+           func_append rmfiles " $odir/$n"
          done
-         test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+         test -n "$old_library" && func_append rmfiles " $odir/$old_library"
 
-         case "$mode" in
+         case "$opt_mode" in
          clean)
-           case "  $library_names " in
-           # "  " in the beginning catches empty $dlname
+           case " $library_names " in
            *" $dlname "*) ;;
-           *) rmfiles="$rmfiles $objdir/$dlname" ;;
+           *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
            esac
-           test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+           test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
            ;;
          uninstall)
            if test -n "$library_names"; then
@@ -8415,19 +9545,19 @@ func_mode_uninstall ()
          # Add PIC object to the list of files to remove.
          if test -n "$pic_object" &&
             test "$pic_object" != none; then
-           rmfiles="$rmfiles $dir/$pic_object"
+           func_append rmfiles " $dir/$pic_object"
          fi
 
          # Add non-PIC object to the list of files to remove.
          if test -n "$non_pic_object" &&
             test "$non_pic_object" != none; then
-           rmfiles="$rmfiles $dir/$non_pic_object"
+           func_append rmfiles " $dir/$non_pic_object"
          fi
        fi
        ;;
 
       *)
-       if test "$mode" = clean ; then
+       if test "$opt_mode" = clean ; then
          noexename=$name
          case $file in
          *.exe)
@@ -8437,7 +9567,7 @@ func_mode_uninstall ()
            noexename=$func_stripname_result
            # $file with .exe has already been added to rmfiles,
            # add $file without .exe
-           rmfiles="$rmfiles $file"
+           func_append rmfiles " $file"
            ;;
          esac
          # Do a test to see if this is a libtool program.
@@ -8446,7 +9576,7 @@ func_mode_uninstall ()
              func_ltwrapper_scriptname "$file"
              relink_command=
              func_source $func_ltwrapper_scriptname_result
-             rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+             func_append rmfiles " $func_ltwrapper_scriptname_result"
            else
              relink_command=
              func_source $dir/$noexename
@@ -8454,12 +9584,12 @@ func_mode_uninstall ()
 
            # note $name still contains .exe if it was in $file originally
            # as does the version of $file that was added into $rmfiles
-           rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+           func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
            if test "$fast_install" = yes && test -n "$relink_command"; then
-             rmfiles="$rmfiles $objdir/lt-$name"
+             func_append rmfiles " $odir/lt-$name"
            fi
            if test "X$noexename" != "X$name" ; then
-             rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+             func_append rmfiles " $odir/lt-${noexename}.c"
            fi
          fi
        fi
@@ -8467,7 +9597,6 @@ func_mode_uninstall ()
       esac
       func_show_eval "$RM $rmfiles" 'exit_status=1'
     done
-    objdir="$origobjdir"
 
     # Try to remove the ${objdir}s in the directories where we deleted files
     for dir in $rmdirs; do
@@ -8479,16 +9608,16 @@ func_mode_uninstall ()
     exit $exit_status
 }
 
-{ test "$mode" = uninstall || test "$mode" = clean; } &&
+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
     func_mode_uninstall ${1+"$@"}
 
-test -z "$mode" && {
+test -z "$opt_mode" && {
   help="$generic_help"
   func_fatal_help "you must specify a MODE"
 }
 
 test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$mode'"
+  func_fatal_help "invalid operation mode \`$opt_mode'"
 
 if test -n "$exec_cmd"; then
   eval exec "$exec_cmd"
index 83d2700..b3719cf 100755 (executable)
@@ -1,10 +1,9 @@
 #!/bin/sh
 # Get modification time of a file or directory and pretty-print it.
 
-scriptversion=2007-03-30.02
+scriptversion=2010-08-21.06; # UTC
 
-# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007 Free Software
-# Foundation, Inc.
+# Copyright (C) 1995-2013 Free Software Foundation, Inc.
 # written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
 #
 # This program is free software; you can redistribute it and/or modify
@@ -18,8 +17,7 @@ scriptversion=2007-03-30.02
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -30,16 +28,26 @@ scriptversion=2007-03-30.02
 # bugs to <bug-automake@gnu.org> or send patches to
 # <automake-patches@gnu.org>.
 
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+fi
+
 case $1 in
   '')
-     echo "$0: No file.  Try \`$0 --help' for more information." 1>&2
+     echo "$0: No file.  Try '$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
     cat <<\EOF
 Usage: mdate-sh [--help] [--version] FILE
 
-Pretty-print the modification time of FILE.
+Pretty-print the modification day of FILE, in the format:
+1 January 1970
 
 Report bugs to <bug-automake@gnu.org>.
 EOF
@@ -51,6 +59,13 @@ EOF
     ;;
 esac
 
+error ()
+{
+  echo "$0: $1" >&2
+  exit 1
+}
+
+
 # Prevent date giving response in another language.
 LANG=C
 export LANG
@@ -60,7 +75,7 @@ LC_TIME=C
 export LC_TIME
 
 # GNU ls changes its time format in response to the TIME_STYLE
-# variable.  Since we cannot assume `unset' works, revert this
+# variable.  Since we cannot assume 'unset' works, revert this
 # variable to its documented default.
 if test "${TIME_STYLE+set}" = set; then
   TIME_STYLE=posix-long-iso
@@ -80,14 +95,14 @@ if ls -n /dev/null 1>/dev/null 2>&1; then
   ls_command="$ls_command -n"
 fi
 
-# A `ls -l' line looks as follows on OS/2.
+# A 'ls -l' line looks as follows on OS/2.
 #  drwxrwx---        0 Aug 11  2001 foo
 # This differs from Unix, which adds ownership information.
 #  drwxrwx---   2 root  root      4096 Aug 11  2001 foo
 #
 # To find the date, we split the line on spaces and iterate on words
 # until we find a month.  This cannot work with files whose owner is a
-# user named `Jan', or `Feb', etc.  However, it's unlikely that `/'
+# user named "Jan", or "Feb", etc.  However, it's unlikely that '/'
 # will be owned by a user whose name is a month.  So we first look at
 # the extended ls output of the root directory to decide how many
 # words should be skipped to get the date.
@@ -100,6 +115,7 @@ month=
 command=
 until test $month
 do
+  test $# -gt 0 || error "failed parsing '$ls_command /' output"
   shift
   # Add another shift to the command.
   command="$command shift;"
@@ -119,8 +135,10 @@ do
   esac
 done
 
+test -n "$month" || error "failed parsing '$ls_command /' output"
+
 # Get the extended ls output of the file or directory.
-set dummy x`eval "$ls_command \"\$save_arg1\""`
+set dummy x`eval "$ls_command \"\\\$save_arg1\""`
 
 # Remove all preceding arguments
 eval $command
@@ -201,5 +219,6 @@ echo $day $month $year
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
index 1c8ff70..cdea514 100755 (executable)
@@ -1,11 +1,10 @@
 #! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2006-05-10.23
+scriptversion=2012-06-26.16; # UTC
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
-#   Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # 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
@@ -18,9 +17,7 @@ scriptversion=2006-05-10.23
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -28,66 +25,40 @@ scriptversion=2006-05-10.23
 # the same distribution terms that you use for the rest of that program.
 
 if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
+  echo 1>&2 "Try '$0 --help' for more information"
   exit 1
 fi
 
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
-  configure_ac=configure.ac
-else
-  configure_ac=configure.in
-fi
+case $1 in
 
-msg="missing on your system"
+  --is-lightweight)
+    # Used by our autoconf macros to check whether the available missing
+    # script is modern enough.
+    exit 0
+    ;;
 
-case $1 in
---run)
-  # Try to run requested program, and just exit if it succeeds.
-  run=
-  shift
-  "$@" && exit 0
-  # Exit code 63 means version mismatch.  This often happens
-  # when the user try to use an ancient version of a tool on
-  # a file that requires a minimum version.  In this case we
-  # we should proceed has if the program had been absent, or
-  # if --run hadn't been passed.
-  if test $? = 63; then
-    run=:
-    msg="probably too old"
-  fi
-  ;;
+  --run)
+    # Back-compat with the calling convention used by older automake.
+    shift
+    ;;
 
   -h|--h|--he|--hel|--help)
     echo "\
 $0 [OPTION]... PROGRAM [ARGUMENT]...
 
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
 
 Options:
   -h, --help      display this help and exit
   -v, --version   output version information and exit
-  --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
-  autom4te     touch the output file, or create a stub one
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
-  help2man     touch the output file
-  lex          create \`lex.yy.c', if possible, from existing .c
-  makeinfo     touch the output file
-  tar          try tar, gnutar, gtar, then tar without non-portable flags
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
+  bison     yacc      flex         lex       help2man
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
 
 Send bug reports to <bug-automake@gnu.org>."
     exit $?
@@ -99,269 +70,146 @@ Send bug reports to <bug-automake@gnu.org>."
     ;;
 
   -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
+    echo 1>&2 "$0: unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
     exit 1
     ;;
 
 esac
 
-# Now exit if we have it, but it failed.  Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program).
-case $1 in
-  lex|yacc)
-    # Not GNU programs, they don't have --version.
-    ;;
-
-  tar)
-    if test -n "$run"; then
-       echo 1>&2 "ERROR: \`tar' requires --run"
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       exit 1
-    fi
-    ;;
-
-  *)
-    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
-       # We have it, but it failed.
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       # Could not run --version or --help.  This is probably someone
-       # running `$TOOL --version' or `$TOOL --help' to check whether
-       # $TOOL exists and not knowing $TOOL uses missing.
-       exit 1
-    fi
-    ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $1 in
-  aclocal*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`${configure_ac}'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-         from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
-    test -z "$files" && files="config.h"
-    touch_files=
-    for f in $files; do
-      case $f in
-      *:*) touch_files="$touch_files "`echo "$f" |
-                                      sed -e 's/^[^:]*://' -e 's/:.*//'`;;
-      *) touch_files="$touch_files $f.in";;
-      esac
-    done
-    touch $touch_files
-    ;;
-
-  automake*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
-         You might want to install the \`Automake' and \`Perl' packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print |
-          sed 's/\.am$/.in/' |
-          while read f; do touch "$f"; done
-    ;;
-
-  autom4te)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.
-         You can get \`$1' as part of \`Autoconf' from any GNU
-         archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-       touch $file
-    else
-       test -z "$file" || exec >$file
-       echo "#! /bin/sh"
-       echo "# Created by GNU Automake missing as a replacement of"
-       echo "#  $ $@"
-       echo "exit 0"
-       chmod +x $file
-       exit 1
-    fi
-    ;;
-
-  bison|yacc)
-    echo 1>&2 "\
-WARNING: \`$1' $msg.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
-         in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
-    rm -f y.tab.c y.tab.h
-    if test $# -ne 1; then
-        eval LASTARG="\${$#}"
-       case $LASTARG in
-       *.y)
-           SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-           if test -f "$SRCFILE"; then
-                cp "$SRCFILE" y.tab.c
-           fi
-           SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-           if test -f "$SRCFILE"; then
-                cp "$SRCFILE" y.tab.h
-           fi
-         ;;
-       esac
-    fi
-    if test ! -f y.tab.h; then
-       echo >y.tab.h
-    fi
-    if test ! -f y.tab.c; then
-       echo 'main() { return 0; }' >y.tab.c
-    fi
-    ;;
-
-  lex|flex)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
-         in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
-    rm -f lex.yy.c
-    if test $# -ne 1; then
-        eval LASTARG="\${$#}"
-       case $LASTARG in
-       *.l)
-           SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-           if test -f "$SRCFILE"; then
-                cp "$SRCFILE" lex.yy.c
-           fi
-         ;;
-       esac
-    fi
-    if test ! -f lex.yy.c; then
-       echo 'main() { return 0; }' >lex.yy.c
-    fi
-    ;;
-
-  help2man)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-        you modified a dependency of a manual page.  You may need the
-        \`Help2man' package in order for those modifications to take
-        effect.  You can get \`Help2man' from any GNU archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-       touch $file
-    else
-       test -z "$file" || exec >$file
-       echo ".ab help2man is required to generate this page"
-       exit 1
-    fi
-    ;;
-
-  makeinfo)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
-    # The file to touch is that specified with -o ...
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -z "$file"; then
-      # ... or it is the one specified with @setfilename ...
-      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '
-       /^@setfilename/{
-         s/.* \([^ ]*\) *$/\1/
-         p
-         q
-       }' $infile`
-      # ... or it is derived from the source name (dir/f.texi becomes f.info)
-      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
-    fi
-    # If the file does not exist, the user really needs makeinfo;
-    # let's fail without touching anything.
-    test -f $file || exit 1
-    touch $file
-    ;;
-
-  tar)
-    shift
-
-    # We have already tried tar in the generic part.
-    # Look for gnutar/gtar before invocation to avoid ugly error
-    # messages.
-    if (gnutar --version > /dev/null 2>&1); then
-       gnutar "$@" && exit 0
-    fi
-    if (gtar --version > /dev/null 2>&1); then
-       gtar "$@" && exit 0
-    fi
-    firstarg="$1"
-    if shift; then
-       case $firstarg in
-       *o*)
-           firstarg=`echo "$firstarg" | sed s/o//`
-           tar "$firstarg" "$@" && exit 0
-           ;;
-       esac
-       case $firstarg in
-       *h*)
-           firstarg=`echo "$firstarg" | sed s/h//`
-           tar "$firstarg" "$@" && exit 0
-           ;;
-       esac
-    fi
-
-    echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
-         You may want to install GNU tar or Free paxutils, or check the
-         command line arguments."
-    exit 1
-    ;;
-
-  *)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequisites for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
-    exit 1
-    ;;
-esac
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch.  This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+  msg="probably too old"
+elif test $st -eq 127; then
+  # Program was missing.
+  msg="missing on your system"
+else
+  # Program was found and executed, but failed.  Give up.
+  exit $st
+fi
 
-exit 0
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+  case $1 in
+    aclocal|automake)
+      echo "The '$1' program is part of the GNU Automake package:"
+      echo "<$gnu_software_URL/automake>"
+      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/autoconf>"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+    autoconf|autom4te|autoheader)
+      echo "The '$1' program is part of the GNU Autoconf package:"
+      echo "<$gnu_software_URL/autoconf/>"
+      echo "It also requires GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+  esac
+}
+
+give_advice ()
+{
+  # Normalize program name to check for.
+  normalized_program=`echo "$1" | sed '
+    s/^gnu-//; t
+    s/^gnu//; t
+    s/^g//; t'`
+
+  printf '%s\n' "'$1' is $msg."
+
+  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  case $normalized_program in
+    autoconf*)
+      echo "You should only need it if you modified 'configure.ac',"
+      echo "or m4 files included by it."
+      program_details 'autoconf'
+      ;;
+    autoheader*)
+      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "$configure_deps."
+      program_details 'autoheader'
+      ;;
+    automake*)
+      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "$configure_deps."
+      program_details 'automake'
+      ;;
+    aclocal*)
+      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "$configure_deps."
+      program_details 'aclocal'
+      ;;
+   autom4te*)
+      echo "You might have modified some maintainer files that require"
+      echo "the 'automa4te' program to be rebuilt."
+      program_details 'autom4te'
+      ;;
+    bison*|yacc*)
+      echo "You should only need it if you modified a '.y' file."
+      echo "You may want to install the GNU Bison package:"
+      echo "<$gnu_software_URL/bison/>"
+      ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
+    help2man*)
+      echo "You should only need it if you modified a dependency" \
+           "of a man page."
+      echo "You may want to install the GNU Help2man package:"
+      echo "<$gnu_software_URL/help2man/>"
+    ;;
+    makeinfo*)
+      echo "You should only need it if you modified a '.texi' file, or"
+      echo "any other file indirectly affecting the aspect of the manual."
+      echo "You might want to install the Texinfo package:"
+      echo "<$gnu_software_URL/texinfo/>"
+      echo "The spurious makeinfo call might also be the consequence of"
+      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+      echo "want to install GNU make:"
+      echo "<$gnu_software_URL/make/>"
+      ;;
+    *)
+      echo "You might have modified some files without having the proper"
+      echo "tools for further handling them.  Check the 'README' file, it"
+      echo "often tells you about the needed prerequisites for installing"
+      echo "this package.  You may also peek at any GNU archive site, in"
+      echo "case some other package contains this missing '$1' program."
+      ;;
+  esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+                       -e '2,$s/^/         /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff --git a/build-aux/snippet/_Noreturn.h b/build-aux/snippet/_Noreturn.h
new file mode 100644 (file)
index 0000000..c44ad89
--- /dev/null
@@ -0,0 +1,10 @@
+#if !defined _Noreturn && __STDC_VERSION__ < 201112
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+      || 0x5110 <= __SUNPRO_C)
+#  define _Noreturn __attribute__ ((__noreturn__))
+# elif 1200 <= _MSC_VER
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn
+# endif
+#endif
similarity index 91%
rename from build-aux/arg-nonnull.h
rename to build-aux/snippet/arg-nonnull.h
index 7e3e2db..9ee8b15 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for declaring that specific arguments must not be NULL.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
@@ -9,7 +9,7 @@
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
similarity index 87%
rename from build-aux/c++defs.h
rename to build-aux/snippet/c++defs.h
index 7d71089..67b1233 100644 (file)
@@ -1,5 +1,5 @@
 /* C++ compatible function declaration macros.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
@@ -9,7 +9,7 @@
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
    _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
 # define _GL_CXXALIASWARN_1(func,namespace) \
    _GL_CXXALIASWARN_2 (func, namespace)
-# define _GL_CXXALIASWARN_2(func,namespace) \
-   _GL_WARN_ON_USE (func, \
-                    "The symbol ::" #func " refers to the system function. " \
-                    "Use " #namespace "::" #func " instead.")
+/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+   we enable the warning only when not optimizing.  */
+# if !__OPTIMIZE__
+#  define _GL_CXXALIASWARN_2(func,namespace) \
+    _GL_WARN_ON_USE (func, \
+                     "The symbol ::" #func " refers to the system function. " \
+                     "Use " #namespace "::" #func " instead.")
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+#  define _GL_CXXALIASWARN_2(func,namespace) \
+     extern __typeof__ (func) func
+# else
+#  define _GL_CXXALIASWARN_2(func,namespace) \
+     _GL_EXTERN_C int _gl_cxxalias_dummy
+# endif
 #else
 # define _GL_CXXALIASWARN(func) \
     _GL_EXTERN_C int _gl_cxxalias_dummy
                         GNULIB_NAMESPACE)
 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
    _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
-# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
-   _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
-                        "The symbol ::" #func " refers to the system function. " \
-                        "Use " #namespace "::" #func " instead.")
+/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+   we enable the warning only when not optimizing.  */
+# if !__OPTIMIZE__
+#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+    _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
+                         "The symbol ::" #func " refers to the system function. " \
+                         "Use " #namespace "::" #func " instead.")
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+     extern __typeof__ (func) func
+# else
+#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+     _GL_EXTERN_C int _gl_cxxalias_dummy
+# endif
 #else
 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
     _GL_EXTERN_C int _gl_cxxalias_dummy
similarity index 93%
rename from build-aux/unused-parameter.h
rename to build-aux/snippet/unused-parameter.h
index b6fa325..41d9510 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for declaring that specific function parameters are not used.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
@@ -9,7 +9,7 @@
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
similarity index 96%
rename from build-aux/warn-on-use.h
rename to build-aux/snippet/warn-on-use.h
index 171e599..1c4d7bd 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for emitting warnings if a function is used.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
@@ -9,7 +9,7 @@
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
+   General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
@@ -55,7 +55,7 @@
    rather than issue the nice warning, but the end result of informing
    the developer about their portability problem is still achieved):
    #if HAVE_RAW_DECL_ENVIRON
-   static inline char ***rpl_environ (void) { return &environ; }
+   static char ***rpl_environ (void) { return &environ; }
    _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
    # undef environ
    # define environ (*rpl_environ ())
diff --git a/build-aux/test-driver b/build-aux/test-driver
new file mode 100755 (executable)
index 0000000..32bf39e
--- /dev/null
@@ -0,0 +1,127 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2012-06-27.10; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+  echo "$0: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+              [--expect-failure={yes|no}] [--color-tests={yes|no}]
+              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+# TODO: better error handling in option parsing (in particular, ensure
+# TODO: $log_file, $trs_file and $test_name are defined).
+test_name= # Used for reporting.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "test-driver $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) enable_hard_errors=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+  esac
+  shift
+done
+
+if test $color_tests = yes; then
+  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+  red='\e[0;31m' # Red.
+  grn='\e[0;32m' # Green.
+  lgn='\e[1;32m' # Light green.
+  blu='\e[1;34m' # Blue.
+  mgn='\e[0;35m' # Magenta.
+  std='\e[m'     # No color.
+else
+  red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+  estatus=1
+fi
+
+case $estatus:$expect_failure in
+  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
+  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
+  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
+  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
+  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
index 4bf512d..2c5bc55 100644 (file)
@@ -1,9 +1,5 @@
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
-/* Define if the compiler is building for multiple architectures of Apple
-   platforms at once. */
-#undef AA_APPLE_UNIVERSAL_BUILD
-
 /* Define if building universal (internal helper macro) */
 #undef AC_APPLE_UNIVERSAL_BUILD
 
 /* Define as the word index where to find the sign of 'float'. */
 #undef FLT_SIGNBIT_WORD
 
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fscanf shall be considered present. */
+#undef GNULIB_FSCANF
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module lock shall be considered present. */
+#undef GNULIB_LOCK
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module scanf shall be considered present. */
+#undef GNULIB_SCANF
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module strerror shall be considered present. */
+#undef GNULIB_STRERROR
+
+/* Define to 1 when the gnulib module btowc should be tested. */
+#undef GNULIB_TEST_BTOWC
+
 /* Define to 1 when the gnulib module environ should be tested. */
 #undef GNULIB_TEST_ENVIRON
 
+/* Define to 1 when the gnulib module fdopen should be tested. */
+#undef GNULIB_TEST_FDOPEN
+
+/* Define to 1 when the gnulib module frexp should be tested. */
+#undef GNULIB_TEST_FREXP
+
 /* Define to 1 when the gnulib module frexpl should be tested. */
 #undef GNULIB_TEST_FREXPL
 
 /* Define to 1 when the gnulib module getpagesize should be tested. */
 #undef GNULIB_TEST_GETPAGESIZE
 
+/* Define to 1 when the gnulib module iswblank should be tested. */
+#undef GNULIB_TEST_ISWBLANK
+
 /* Define to 1 when the gnulib module malloc-posix should be tested. */
 #undef GNULIB_TEST_MALLOC_POSIX
 
 /* Define to 1 when the gnulib module mbsnlen should be tested. */
 #undef GNULIB_TEST_MBSNLEN
 
+/* Define to 1 when the gnulib module mbtowc should be tested. */
+#undef GNULIB_TEST_MBTOWC
+
 /* Define to 1 when the gnulib module memchr should be tested. */
 #undef GNULIB_TEST_MEMCHR
 
 /* Define to 1 when the gnulib module setenv should be tested. */
 #undef GNULIB_TEST_SETENV
 
+/* Define to 1 when the gnulib module setlocale should be tested. */
+#undef GNULIB_TEST_SETLOCALE
+
 /* Define to 1 when the gnulib module signbit should be tested. */
 #undef GNULIB_TEST_SIGNBIT
 
 /* Define to 1 when the gnulib module strncat should be tested. */
 #undef GNULIB_TEST_STRNCAT
 
+/* Define to 1 when the gnulib module strstr should be tested. */
+#undef GNULIB_TEST_STRSTR
+
 /* Define to 1 when the gnulib module uninorm/u16-normalize should be tested.
    */
 #undef GNULIB_TEST_UNINORM_U16_NORMALIZE
 /* Define to 1 when the gnulib module unsetenv should be tested. */
 #undef GNULIB_TEST_UNSETENV
 
+/* Define to 1 when the gnulib module wcrtomb should be tested. */
+#undef GNULIB_TEST_WCRTOMB
+
 /* Define to 1 when the gnulib module wctob should be tested. */
 #undef GNULIB_TEST_WCTOB
 
+/* Define to 1 when the gnulib module wctomb should be tested. */
+#undef GNULIB_TEST_WCTOMB
+
 /* Define to 1 when the gnulib module wcwidth should be tested. */
 #undef GNULIB_TEST_WCWIDTH
 
 /* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unigbrk/u16-grapheme-breaks shall be considered
+   present. */
+#undef GNULIB_UNIGBRK_U16_GRAPHEME_BREAKS
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unigbrk/u16-grapheme-next shall be considered
+   present. */
+#undef GNULIB_UNIGBRK_U16_GRAPHEME_NEXT
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unigbrk/u16-grapheme-prev shall be considered
+   present. */
+#undef GNULIB_UNIGBRK_U16_GRAPHEME_PREV
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unigbrk/u32-grapheme-breaks shall be considered
+   present. */
+#undef GNULIB_UNIGBRK_U32_GRAPHEME_BREAKS
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unigbrk/u32-grapheme-next shall be considered
+   present. */
+#undef GNULIB_UNIGBRK_U32_GRAPHEME_NEXT
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unigbrk/u32-grapheme-prev shall be considered
+   present. */
+#undef GNULIB_UNIGBRK_U32_GRAPHEME_PREV
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unigbrk/u8-grapheme-breaks shall be considered
+   present. */
+#undef GNULIB_UNIGBRK_U8_GRAPHEME_BREAKS
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unigbrk/u8-grapheme-next shall be considered
+   present. */
+#undef GNULIB_UNIGBRK_U8_GRAPHEME_NEXT
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unigbrk/u8-grapheme-prev shall be considered
+   present. */
+#undef GNULIB_UNIGBRK_U8_GRAPHEME_PREV
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unigbrk/ulc-grapheme-breaks shall be considered
+   present. */
+#undef GNULIB_UNIGBRK_ULC_GRAPHEME_BREAKS
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
    whether the gnulib module unistr/u16-mbtouc shall be considered present. */
 #undef GNULIB_UNISTR_U16_MBTOUC
 
 /* Define to 1 if you have the <bp-sym.h> header file. */
 #undef HAVE_BP_SYM_H
 
-/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+/* Define to 1 if you have the `btowc' function. */
+#undef HAVE_BTOWC
+
+/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
    CoreFoundation framework. */
 #undef HAVE_CFLOCALECOPYCURRENT
 
-/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
    the CoreFoundation framework. */
 #undef HAVE_CFPREFERENCESCOPYAPPVALUE
 
    don't. */
 #undef HAVE_DECL_GETC_UNLOCKED
 
+/* Define to 1 if you have the declaration of `iswblank', and to 0 if you
+   don't. */
+#undef HAVE_DECL_ISWBLANK
+
+/* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you
+   don't. */
+#undef HAVE_DECL_MBRTOWC
+
+/* Define to 1 if you have the declaration of `mbsinit', and to 0 if you
+   don't. */
+#undef HAVE_DECL_MBSINIT
+
 /* Define to 1 if you have the declaration of `program_invocation_name', and
    to 0 if you don't. */
 #undef HAVE_DECL_PROGRAM_INVOCATION_NAME
    and to 0 if you don't. */
 #undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
 
-/* Define to 1 if you have the declaration of `strerror', and to 0 if you
-   don't. */
-#undef HAVE_DECL_STRERROR
+/* Define to 1 if you have the declaration of `setenv', and to 0 if you don't.
+   */
+#undef HAVE_DECL_SETENV
 
 /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
    don't. */
 #undef HAVE_DECL_STRERROR_R
 
+/* Define to 1 if you have the declaration of `towlower', and to 0 if you
+   don't. */
+#undef HAVE_DECL_TOWLOWER
+
+/* Define to 1 if you have the declaration of `unsetenv', and to 0 if you
+   don't. */
+#undef HAVE_DECL_UNSETENV
+
+/* Define to 1 if you have the declaration of `wcrtomb', and to 0 if you
+   don't. */
+#undef HAVE_DECL_WCRTOMB
+
 /* Define to 1 if you have the declaration of `wctob', and to 0 if you don't.
    */
 #undef HAVE_DECL_WCTOB
    don't. */
 #undef HAVE_DECL_WCWIDTH
 
+/* Define to 1 if you have the declaration of `_putenv', and to 0 if you
+   don't. */
+#undef HAVE_DECL__PUTENV
+
 /* Define to 1 if you have the declaration of `_snprintf', and to 0 if you
    don't. */
 #undef HAVE_DECL__SNPRINTF
 /* Define if you have the declaration of environ. */
 #undef HAVE_ENVIRON_DECL
 
-/* Define to 1 if you have the <errno.h> header file. */
-#undef HAVE_ERRNO_H
-
-/* Define to 1 if you have the <float.h> header file. */
-#undef HAVE_FLOAT_H
+/* Define to 1 if you have the <features.h> header file. */
+#undef HAVE_FEATURES_H
 
 /* Define if the frexpl function is available in libc. */
 #undef HAVE_FREXPL_IN_LIBC
 /* Define if the ldexp function is available in libc. */
 #undef HAVE_LDEXP_IN_LIBC
 
-/* Define to 1 if you have the <locale.h> header file. */
-#undef HAVE_LOCALE_H
-
-/* Define to 1 if the system has the type `long long int'. */
+/* Define to 1 if the system has the type 'long long int'. */
 #undef HAVE_LONG_LONG_INT
 
 /* Define if the 'malloc' function is POSIX compliant. */
 /* Define to 1 if <wchar.h> declares mbstate_t. */
 #undef HAVE_MBSTATE_T
 
-/* Define to 1 if you have the `memchr' function. */
-#undef HAVE_MEMCHR
-
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
 /* Define to 1 if you have the `mprotect' function. */
 #undef HAVE_MPROTECT
 
+/* Define to 1 on MSVC platforms that have the "invalid parameter handler"
+   concept. */
+#undef HAVE_MSVC_INVALID_PARAMETER_HANDLER
+
 /* Define to 1 if you have the `newlocale' function. */
 #undef HAVE_NEWLOCALE
 
 /* Define if the POSIX multithreading library has read/write locks. */
 #undef HAVE_PTHREAD_RWLOCK
 
-/* Define to 1 if you have the <random.h> header file. */
-#undef HAVE_RANDOM_H
+/* Define to 1 if acosf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ACOSF
 
 /* Define to 1 if acosl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_ACOSL
 
+/* Define to 1 if asinf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ASINF
+
 /* Define to 1 if asinl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_ASINL
 
+/* Define to 1 if atanf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ATANF
+
 /* Define to 1 if atanl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_ATANL
 
    macros. */
 #undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
 
+/* Define to 1 if cbrt is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_CBRT
+
+/* Define to 1 if cbrtf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_CBRTF
+
+/* Define to 1 if cbrtl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_CBRTL
+
 /* Define to 1 if ceilf is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_CEILF
 
 /* Define to 1 if ceill is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_CEILL
 
+/* Define to 1 if chdir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_CHDIR
+
 /* Define to 1 if chown is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_CHOWN
 
+/* Define to 1 if copysign is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_COPYSIGN
+
+/* Define to 1 if copysignf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_COPYSIGNF
+
+/* Define to 1 if copysignl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_COPYSIGNL
+
+/* Define to 1 if cosf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_COSF
+
+/* Define to 1 if coshf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_COSHF
+
 /* Define to 1 if cosl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_COSL
 
+/* Define to 1 if dprintf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_DPRINTF
+
+/* Define to 1 if dup is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_DUP
+
 /* Define to 1 if dup2 is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_DUP2
 
 /* Define to 1 if euidaccess is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_EUIDACCESS
 
+/* Define to 1 if exp2 is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_EXP2
+
+/* Define to 1 if exp2f is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_EXP2F
+
+/* Define to 1 if exp2l is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_EXP2L
+
+/* Define to 1 if expf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_EXPF
+
 /* Define to 1 if expl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_EXPL
 
+/* Define to 1 if expm1 is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_EXPM1
+
+/* Define to 1 if expm1f is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_EXPM1F
+
+/* Define to 1 if expm1l is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_EXPM1L
+
+/* Define to 1 if fabsf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FABSF
+
+/* Define to 1 if fabsl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FABSL
+
 /* Define to 1 if faccessat is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FACCESSAT
 
 /* Define to 1 if fchownat is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FCHOWNAT
 
+/* Define to 1 if fdatasync is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FDATASYNC
+
+/* Define to 1 if ffsl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FFSL
+
+/* Define to 1 if ffsll is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FFSLL
+
 /* Define to 1 if floorf is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FLOORF
 
 /* Define to 1 if floorl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FLOORL
 
+/* Define to 1 if fma is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FMA
+
+/* Define to 1 if fmaf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FMAF
+
+/* Define to 1 if fmal is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FMAL
+
+/* Define to 1 if fmod is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FMOD
+
+/* Define to 1 if fmodf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FMODF
+
+/* Define to 1 if fmodl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FMODL
+
+/* Define to 1 if fpurge is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FPURGE
+
+/* Define to 1 if frexpf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FREXPF
+
 /* Define to 1 if frexpl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FREXPL
 
+/* Define to 1 if fseeko is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FSEEKO
+
 /* Define to 1 if fsync is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FSYNC
 
+/* Define to 1 if ftello is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FTELLO
+
 /* Define to 1 if ftruncate is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_FTRUNCATE
 
 /* Define to 1 if getcwd is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GETCWD
 
+/* Define to 1 if getdelim is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_GETDELIM
+
 /* Define to 1 if getdomainname is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GETDOMAINNAME
 
 /* Define to 1 if gethostname is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GETHOSTNAME
 
+/* Define to 1 if getline is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_GETLINE
+
 /* Define to 1 if getloadavg is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GETLOADAVG
 
 /* Define to 1 if getpagesize is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GETPAGESIZE
 
+/* Define to 1 if gets is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_GETS
+
 /* Define to 1 if getsubopt is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GETSUBOPT
 
 /* Define to 1 if grantpt is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GRANTPT
 
-/* Define to 1 if initstat_r is declared even after undefining macros. */
-#undef HAVE_RAW_DECL_INITSTAT_R
+/* Define to 1 if group_member is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_GROUP_MEMBER
+
+/* Define to 1 if hypotf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_HYPOTF
+
+/* Define to 1 if hypotl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_HYPOTL
+
+/* Define to 1 if ilogb is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ILOGB
+
+/* Define to 1 if ilogbf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ILOGBF
+
+/* Define to 1 if ilogbl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ILOGBL
+
+/* Define to 1 if imaxabs is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_IMAXABS
+
+/* Define to 1 if imaxdiv is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_IMAXDIV
+
+/* Define to 1 if initstate is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_INITSTATE
+
+/* Define to 1 if initstate_r is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_INITSTATE_R
+
+/* Define to 1 if isatty is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ISATTY
+
+/* Define to 1 if iswctype is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ISWCTYPE
 
 /* Define to 1 if lchown is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_LCHOWN
 
+/* Define to 1 if ldexpf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LDEXPF
+
 /* Define to 1 if ldexpl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_LDEXPL
 
 /* Define to 1 if linkat is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_LINKAT
 
+/* Define to 1 if log is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOG
+
+/* Define to 1 if log10 is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOG10
+
+/* Define to 1 if log10f is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOG10F
+
+/* Define to 1 if log10l is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOG10L
+
+/* Define to 1 if log1p is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOG1P
+
+/* Define to 1 if log1pf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOG1PF
+
+/* Define to 1 if log1pl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOG1PL
+
+/* Define to 1 if log2 is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOG2
+
+/* Define to 1 if log2f is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOG2F
+
+/* Define to 1 if log2l is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOG2L
+
 /* Define to 1 if logb is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_LOGB
 
+/* Define to 1 if logbf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOGBF
+
+/* Define to 1 if logbl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOGBL
+
+/* Define to 1 if logf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LOGF
+
 /* Define to 1 if logl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_LOGL
 
 /* Define to 1 if mkstemps is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_MKSTEMPS
 
+/* Define to 1 if modf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_MODF
+
+/* Define to 1 if modff is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_MODFF
+
+/* Define to 1 if modfl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_MODFL
+
+/* Define to 1 if pclose is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PCLOSE
+
+/* Define to 1 if pipe is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PIPE
+
 /* Define to 1 if pipe2 is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_PIPE2
 
+/* Define to 1 if popen is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_POPEN
+
+/* Define to 1 if posix_openpt is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_POSIX_OPENPT
+
+/* Define to 1 if powf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_POWF
+
 /* Define to 1 if pread is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_PREAD
 
 /* Define to 1 if ptsname is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_PTSNAME
 
+/* Define to 1 if ptsname_r is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PTSNAME_R
+
+/* Define to 1 if pwrite is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PWRITE
+
+/* Define to 1 if random is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_RANDOM
+
 /* Define to 1 if random_r is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_RANDOM_R
 
 /* Define to 1 if realpath is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_REALPATH
 
+/* Define to 1 if remainder is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_REMAINDER
+
+/* Define to 1 if remainderf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_REMAINDERF
+
+/* Define to 1 if remainderl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_REMAINDERL
+
+/* Define to 1 if renameat is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_RENAMEAT
+
+/* Define to 1 if rint is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_RINT
+
+/* Define to 1 if rintf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_RINTF
+
+/* Define to 1 if rintl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_RINTL
+
 /* Define to 1 if rmdir is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_RMDIR
 
 /* Define to 1 if rpmatch is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_RPMATCH
 
+/* Define to 1 if secure_getenv is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SECURE_GETENV
+
 /* Define to 1 if setenv is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SETENV
 
+/* Define to 1 if sethostname is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SETHOSTNAME
+
+/* Define to 1 if setlocale is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SETLOCALE
+
+/* Define to 1 if setstate is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SETSTATE
+
 /* Define to 1 if setstate_r is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SETSTATE_R
 
 /* Define to 1 if setusershell is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SETUSERSHELL
 
+/* Define to 1 if sinf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SINF
+
+/* Define to 1 if sinhf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SINHF
+
 /* Define to 1 if sinl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SINL
 
 /* Define to 1 if sleep is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SLEEP
 
+/* Define to 1 if snprintf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SNPRINTF
+
+/* Define to 1 if sqrtf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SQRTF
+
 /* Define to 1 if sqrtl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SQRTL
 
+/* Define to 1 if srandom is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SRANDOM
+
 /* Define to 1 if srandom_r is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SRANDOM_R
 
 /* Define to 1 if strdup is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_STRDUP
 
+/* Define to 1 if strerror_r is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_STRERROR_R
+
 /* Define to 1 if strncat is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_STRNCAT
 
 /* Define to 1 if strtod is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_STRTOD
 
+/* Define to 1 if strtoimax is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_STRTOIMAX
+
 /* Define to 1 if strtok_r is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_STRTOK_R
 
 /* Define to 1 if strtoull is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_STRTOULL
 
+/* Define to 1 if strtoumax is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_STRTOUMAX
+
 /* Define to 1 if strverscmp is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_STRVERSCMP
 
 /* Define to 1 if symlinkat is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SYMLINKAT
 
+/* Define to 1 if tanf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_TANF
+
+/* Define to 1 if tanhf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_TANHF
+
 /* Define to 1 if tanl is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_TANL
 
+/* Define to 1 if tmpfile is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_TMPFILE
+
+/* Define to 1 if towctrans is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_TOWCTRANS
+
 /* Define to 1 if trunc is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_TRUNC
 
 /* Define to 1 if usleep is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_USLEEP
 
+/* Define to 1 if vdprintf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_VDPRINTF
+
+/* Define to 1 if vsnprintf is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_VSNPRINTF
+
+/* Define to 1 if wcpcpy is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCPCPY
+
+/* Define to 1 if wcpncpy is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCPNCPY
+
 /* Define to 1 if wcrtomb is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_WCRTOMB
 
+/* Define to 1 if wcscasecmp is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCASECMP
+
+/* Define to 1 if wcscat is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCAT
+
+/* Define to 1 if wcschr is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCHR
+
+/* Define to 1 if wcscmp is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCMP
+
+/* Define to 1 if wcscoll is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCOLL
+
+/* Define to 1 if wcscpy is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCPY
+
+/* Define to 1 if wcscspn is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCSPN
+
+/* Define to 1 if wcsdup is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSDUP
+
+/* Define to 1 if wcslen is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSLEN
+
+/* Define to 1 if wcsncasecmp is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSNCASECMP
+
+/* Define to 1 if wcsncat is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSNCAT
+
+/* Define to 1 if wcsncmp is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSNCMP
+
+/* Define to 1 if wcsncpy is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSNCPY
+
+/* Define to 1 if wcsnlen is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSNLEN
+
 /* Define to 1 if wcsnrtombs is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_WCSNRTOMBS
 
+/* Define to 1 if wcspbrk is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSPBRK
+
+/* Define to 1 if wcsrchr is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSRCHR
+
 /* Define to 1 if wcsrtombs is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_WCSRTOMBS
 
+/* Define to 1 if wcsspn is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSSPN
+
+/* Define to 1 if wcsstr is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSSTR
+
+/* Define to 1 if wcstok is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSTOK
+
+/* Define to 1 if wcswidth is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSWIDTH
+
+/* Define to 1 if wcsxfrm is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSXFRM
+
 /* Define to 1 if wctob is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_WCTOB
 
+/* Define to 1 if wctrans is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCTRANS
+
+/* Define to 1 if wctype is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCTYPE
+
 /* Define to 1 if wcwidth is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_WCWIDTH
 
+/* Define to 1 if wmemchr is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WMEMCHR
+
+/* Define to 1 if wmemcmp is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WMEMCMP
+
+/* Define to 1 if wmemcpy is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WMEMCPY
+
+/* Define to 1 if wmemmove is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WMEMMOVE
+
+/* Define to 1 if wmemset is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WMEMSET
+
+/* Define to 1 if _Exit is declared even after undefining macros. */
+#undef HAVE_RAW_DECL__EXIT
+
+/* Define to 1 if 'long double' and 'double' have the same representation. */
+#undef HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
+
 /* Define to 1 if you have the <search.h> header file. */
 #undef HAVE_SEARCH_H
 
    buffer had been large enough. */
 #undef HAVE_SNPRINTF_RETVAL_C99
 
-/* Define to 1 if stdbool.h conforms to C99. */
-#undef HAVE_STDBOOL_H
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#undef HAVE_STDDEF_H
-
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
 /* Define to 1 if you have the `strnlen' function. */
 #undef HAVE_STRNLEN
 
-/* Define to 1 if the system has the type `struct random_data'. */
-#undef HAVE_STRUCT_RANDOM_DATA
+/* Define to 1 if you have the `symlink' function. */
+#undef HAVE_SYMLINK
 
 /* Define to 1 if you have the <sys/bitypes.h> header file. */
 #undef HAVE_SYS_BITYPES_H
 /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H
 
+/* Define to 1 if you have the `towlower' function. */
+#undef HAVE_TOWLOWER
+
 /* Define to 1 if you have the `tsearch' function. */
 #undef HAVE_TSEARCH
 
 /* Define to 1 if you have the `unsetenv' function. */
 #undef HAVE_UNSETENV
 
-/* Define to 1 if the system has the type `unsigned long long int'. */
+/* Define to 1 if the system has the type 'unsigned long long int'. */
 #undef HAVE_UNSIGNED_LONG_LONG_INT
 
 /* Define to 1 if you have the `uselocale' function. */
 /* Define to 1 if the system has the type `_Bool'. */
 #undef HAVE__BOOL
 
+/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */
+#undef HAVE__SET_INVALID_PARAMETER_HANDLER
+
+/* Define to 1 if you have the `__fseterr' function. */
+#undef HAVE___FSETERR
+
 /* Define as const if the declaration of iconv() needs const. */
 #undef ICONV_CONST
 
 /* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */
 #undef MAP_ANONYMOUS
 
+/* Define if the mbrtowc function does not return (size_t) -2 for empty input.
+   */
+#undef MBRTOWC_EMPTY_INPUT_BUG
+
+/* Define if the mbrtowc function has the NULL pwc argument bug. */
+#undef MBRTOWC_NULL_ARG1_BUG
+
 /* Define if the mbrtowc function has the NULL string argument bug. */
-#undef MBRTOWC_NULL_ARG_BUG
+#undef MBRTOWC_NULL_ARG2_BUG
 
 /* Define if the mbrtowc function does not return 0 for a NUL character. */
 #undef MBRTOWC_NUL_RETVAL_BUG
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
+/* Define if <inttypes.h> exists and defines unusable PRI* macros. */
+#undef PRI_MACROS_BROKEN
+
 /* Define if the pthread_in_use() detection is hard. */
 #undef PTHREAD_IN_USE_DETECTION_HARD
 
    'ptrdiff_t'. */
 #undef PTRDIFF_T_SUFFIX
 
-/* Define this to 1 if strerror is broken. */
-#undef REPLACE_STRERROR
+/* Define to 1 if strerror(0) does not return a message implying success. */
+#undef REPLACE_STRERROR_0
 
 /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
    'sig_atomic_t'. */
    made weak. */
 #undef USE_SOLARIS_THREADS_WEAK
 
-/* Define if the Win32 multithreading API can be used. */
-#undef USE_WIN32_THREADS
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable general extensions on OS X.  */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable X/Open extensions if necessary.  HP-UX 11.11 defines
+   mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
+   whether compiling with -Ae or -D_HPUX_SOURCE=1.  */
+#ifndef _XOPEN_SOURCE
+# undef _XOPEN_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
+/* Define if the native Windows multithreading API can be used. */
+#undef USE_WINDOWS_THREADS
 
 /* Version number of package */
 #undef VERSION
 # endif
 #endif
 
+/* Define to 1 on Solaris. */
+#undef _LCONV_C99
+
 /* Define to 1 if on MINIX. */
 #undef _MINIX
 
+/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */
+#undef _NETBSD_SOURCE
+
+/* The _Noreturn keyword of C11.  */
+#if ! (defined _Noreturn \
+       || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+      || 0x5110 <= __SUNPRO_C)
+#  define _Noreturn __attribute__ ((__noreturn__))
+# elif defined _MSC_VER && 1200 <= _MSC_VER
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn
+# endif
+#endif
+
+
 /* Define to 2 if the system does not provide POSIX.1 features except with
    this defined. */
 #undef _POSIX_1_SOURCE
 
-/* Define to 1 if you need to in order for `stat' and other things to work. */
+/* Define to 1 if you need to in order for 'stat' and other things to work. */
 #undef _POSIX_SOURCE
 
-/* Define to 500 only on HP-UX. */
-#undef _XOPEN_SOURCE
-
-/* Enable extensions on AIX 3, Interix.  */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
+/* Please see the Gnulib manual for how to use these macros.
+
+   Suppress extern inline with HP-UX cc, as it appears to be broken; see
+   <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
+
+   Suppress extern inline with Sun C in standards-conformance mode, as it
+   mishandles inline functions that call each other.  E.g., for 'inline void f
+   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+   'reference to static identifier "f" in extern inline function'.
+   This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
+
+   Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
+   on configurations that mistakenly use 'static inline' to implement
+   functions or macros in standard C headers like <ctype.h>.  For example,
+   if isdigit is mistakenly implemented via a static inline function,
+   a program containing an extern inline function that calls isdigit
+   may not work since the C standard prohibits extern inline functions
+   from calling static functions.  This bug is known to occur on:
+
+     OS X 10.8 and earlier; see:
+     http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html
+
+     DragonFly; see
+     http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
+
+     FreeBSD; see:
+     http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
+
+   OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
+   for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
+   Assume DragonFly and FreeBSD will be similar.  */
+#if (((defined __APPLE__ && defined __MACH__) \
+      || defined __DragonFly__ || defined __FreeBSD__) \
+     && (defined __header_inline \
+         ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
+            && ! defined __clang__) \
+         : ((! defined _DONT_USE_CTYPE_INLINE_ \
+             && (defined __GNUC__ || defined __cplusplus)) \
+            || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
+                && defined __GNUC__ && ! defined __cplusplus))))
+# define _GL_EXTERN_INLINE_STDHEADER_BUG
 #endif
-/* Enable GNU extensions on systems that have them.  */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris.  */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop.  */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
+#if ((__GNUC__ \
+      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+      : (199901L <= __STDC_VERSION__ \
+         && !defined __HP_cc \
+         && !(defined __SUNPRO_C && __STDC__))) \
+     && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+# define _GL_EXTERN_INLINE_IN_USE
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+       && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
+   /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
+#  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
+# else
+#  define _GL_INLINE extern inline
+# endif
+# define _GL_EXTERN_INLINE extern
+# define _GL_EXTERN_INLINE_IN_USE
+#else
+# define _GL_INLINE static _GL_UNUSED
+# define _GL_EXTERN_INLINE static _GL_UNUSED
 #endif
 
+#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+#  define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+#  define _GL_INLINE_HEADER_CONST_PRAGMA \
+     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+  /* Suppress GCC's bogus "no previous prototype for 'FOO'"
+     and "no previous declaration for 'FOO'"  diagnostics,
+     when FOO is an inline function in the header; see
+     <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>.  */
+# define _GL_INLINE_HEADER_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+    _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+    _Pragma ("GCC diagnostic pop")
+#else
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+#endif
 
 /* Define to `__inline__' or `__inline' if that's what the C compiler
    calls it, or to nothing if 'inline' is not supported under any name.  */
 /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
    the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
    earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
-   __APPLE__ && __MACH__ test for MacOS X.
+   __APPLE__ && __MACH__ test for Mac OS X.
    __APPLE_CC__ tests for the Apple compiler and its version.
    __STDC_VERSION__ tests for the C99 mode.  */
 #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
 /* Define to a type if <wchar.h> does not define. */
 #undef mbstate_t
 
+/* Define to `int' if <sys/types.h> does not define. */
+#undef mode_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef pid_t
+
 /* Define as the type of the result of subtracting two pointers, if the system
    doesn't define it. */
 #undef ptrdiff_t
 /* Define to `unsigned int' if <sys/types.h> does not define. */
 #undef size_t
 
+/* Define as a signed type of the same size as size_t. */
+#undef ssize_t
+
 /* Define as a marker that can be attached to declarations that might not
     be used.  This helps to reduce warnings, such as from
     GCC -Wunused-parameter.  */
    is a misnomer outside of parameter lists.  */
 #define _UNUSED_PARAMETER_ _GL_UNUSED
 
+/* gcc supports the "unused" attribute on possibly unused labels, and
+   g++ has since version 4.5.  Note to support C++ as well as C,
+   _GL_UNUSED_LABEL should be used with a trailing ;  */
+#if !defined __cplusplus || __GNUC__ > 4 \
+    || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# define _GL_UNUSED_LABEL _GL_UNUSED
+#else
+# define _GL_UNUSED_LABEL
+#endif
+
+/* The __pure__ attribute was added in gcc 2.96.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
+
index 2488138..bcb2f9b 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,11 +1,9 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65.
+# Generated by GNU Autoconf 2.69.
 #
 #
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -89,6 +87,7 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -133,6 +132,31 @@ export LANGUAGE
 # CDPATH.
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
   as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
@@ -166,12 +190,21 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
 else
   exitcode=1; echo positional parameters were not saved.
 fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
   test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
+test \$(( 1 + 1 )) = 2 || exit 1
+
+  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
   if (eval "$as_required") 2>/dev/null; then :
   as_have_required=yes
 else
@@ -211,14 +244,25 @@ IFS=$as_save_IFS
 
 
       if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-       # neutralization value for shells without unset; and this also
-       # works around shells that cannot unset nonexistent variables.
-       BASH_ENV=/dev/null
-       ENV=/dev/null
-       (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-       export CONFIG_SHELL
-       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
 fi
 
     if test x$as_have_required = xno; then :
@@ -316,10 +360,18 @@ $as_echo X"$as_dir" |
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
 
 
 } # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -356,19 +408,19 @@ else
 fi # as_fn_arith
 
 
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
 as_fn_error ()
 {
-  as_status=$?; test $as_status -eq 0 && as_status=1
-  if test "$3"; then
-    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $1" >&2
+  $as_echo "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -441,6 +493,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
   chmod +x "$as_me.lineno" ||
     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
   # original and so on.  Autoconf is especially sensitive to this).
@@ -475,16 +531,16 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -496,28 +552,8 @@ else
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in #(
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -525,161 +561,14 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 # Sed expression to map a string onto a valid variable name.
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
-
-
-# Check that we are running under the correct shell.
 SHELL=${CONFIG_SHELL-/bin/sh}
 
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-$*
-_LT_EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-        { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-          test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-          echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-         # Cool, printf works
-         :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-         export CONFIG_SHELL
-         SHELL="$CONFIG_SHELL"
-         export SHELL
-         ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         ECHO="$CONFIG_SHELL $0 --fallback-echo"
-        else
-         # maybe with a smaller string...
-         prev=:
-
-         for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-           if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-           then
-             break
-           fi
-           prev="$cmd"
-         done
-
-         if test "$prev" != 'sed 50q "$0"'; then
-           echo_test_string=`eval $prev`
-           export echo_test_string
-           exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-         else
-           # Oops.  We lost completely, so just stick with echo.
-           ECHO=echo
-         fi
-        fi
-      fi
-    fi
-  fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
 
 test -n "$DJDIR" || exec 7<&0 </dev/null
 exec 6>&1
 
 # Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
 # so uname gets run too.
 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 
@@ -741,8 +630,8 @@ ac_includes_default="\
 #endif"
 
 gl_use_threads_default=
-ac_header_list=
 ac_func_list=
+ac_header_list=
 ac_subst_vars='gltests_LTLIBOBJS
 gltests_LIBOBJS
 gl_LTLIBOBJS
@@ -763,27 +652,540 @@ WOE32DLL_FALSE
 WOE32DLL_TRUE
 LIBTESTS_LIBDEPS
 YIELD_LIB
+LOCALE_AR
+HAVE_WINSOCK2_H
+NEXT_AS_FIRST_DIRECTIVE_STDIO_H
+NEXT_STDIO_H
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H
 NEXT_LOCALE_H
 HAVE_XLOCALE_H
+REPLACE_STRUCT_LCONV
 REPLACE_DUPLOCALE
+REPLACE_SETLOCALE
+REPLACE_LOCALECONV
 HAVE_DUPLOCALE
 GNULIB_DUPLOCALE
+GNULIB_SETLOCALE
+GNULIB_LOCALECONV
+NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H
+NEXT_INTTYPES_H
+UINT64_MAX_EQ_ULONG_MAX
+UINT32_MAX_LT_UINTMAX_MAX
+PRIPTR_PREFIX
+PRI_MACROS_BROKEN
+INT64_MAX_EQ_LONG_MAX
+INT32_MAX_LT_INTMAX_MAX
+REPLACE_STRTOUMAX
+REPLACE_STRTOIMAX
+HAVE_DECL_STRTOUMAX
+HAVE_DECL_STRTOIMAX
+HAVE_DECL_IMAXDIV
+HAVE_DECL_IMAXABS
+GNULIB_STRTOUMAX
+GNULIB_STRTOIMAX
+GNULIB_IMAXDIV
+GNULIB_IMAXABS
 LTLIBINTL
 LIBINTL
+HAVE_MSVC_INVALID_PARAMETER_HANDLER
+REPLACE_VSPRINTF
+REPLACE_VSNPRINTF
+REPLACE_VPRINTF
+REPLACE_VFPRINTF
+REPLACE_VDPRINTF
+REPLACE_VASPRINTF
+REPLACE_TMPFILE
+REPLACE_STDIO_WRITE_FUNCS
+REPLACE_STDIO_READ_FUNCS
+REPLACE_SPRINTF
+REPLACE_SNPRINTF
+REPLACE_RENAMEAT
+REPLACE_RENAME
+REPLACE_REMOVE
+REPLACE_PRINTF
+REPLACE_POPEN
+REPLACE_PERROR
+REPLACE_OBSTACK_PRINTF
+REPLACE_GETLINE
+REPLACE_GETDELIM
+REPLACE_FTELLO
+REPLACE_FTELL
+REPLACE_FSEEKO
+REPLACE_FSEEK
+REPLACE_FREOPEN
+REPLACE_FPURGE
+REPLACE_FPRINTF
+REPLACE_FOPEN
+REPLACE_FFLUSH
+REPLACE_FDOPEN
+REPLACE_FCLOSE
+REPLACE_DPRINTF
+HAVE_VDPRINTF
+HAVE_VASPRINTF
+HAVE_RENAMEAT
+HAVE_POPEN
+HAVE_PCLOSE
+HAVE_FTELLO
+HAVE_FSEEKO
+HAVE_DPRINTF
+HAVE_DECL_VSNPRINTF
+HAVE_DECL_SNPRINTF
+HAVE_DECL_OBSTACK_PRINTF
+HAVE_DECL_GETLINE
+HAVE_DECL_GETDELIM
+HAVE_DECL_FTELLO
+HAVE_DECL_FSEEKO
+HAVE_DECL_FPURGE
+GNULIB_VSPRINTF_POSIX
+GNULIB_VSNPRINTF
+GNULIB_VPRINTF_POSIX
+GNULIB_VPRINTF
+GNULIB_VFPRINTF_POSIX
+GNULIB_VFPRINTF
+GNULIB_VDPRINTF
+GNULIB_VSCANF
+GNULIB_VFSCANF
+GNULIB_VASPRINTF
+GNULIB_TMPFILE
+GNULIB_STDIO_H_SIGPIPE
+GNULIB_STDIO_H_NONBLOCKING
+GNULIB_SPRINTF_POSIX
+GNULIB_SNPRINTF
+GNULIB_SCANF
+GNULIB_RENAMEAT
+GNULIB_RENAME
+GNULIB_REMOVE
+GNULIB_PUTS
+GNULIB_PUTCHAR
+GNULIB_PUTC
+GNULIB_PRINTF_POSIX
+GNULIB_PRINTF
+GNULIB_POPEN
+GNULIB_PERROR
+GNULIB_PCLOSE
+GNULIB_OBSTACK_PRINTF_POSIX
+GNULIB_OBSTACK_PRINTF
+GNULIB_GETLINE
+GNULIB_GETDELIM
+GNULIB_GETCHAR
+GNULIB_GETC
+GNULIB_FWRITE
+GNULIB_FTELLO
+GNULIB_FTELL
+GNULIB_FSEEKO
+GNULIB_FSEEK
+GNULIB_FSCANF
+GNULIB_FREOPEN
+GNULIB_FREAD
+GNULIB_FPUTS
+GNULIB_FPUTC
+GNULIB_FPURGE
+GNULIB_FPRINTF_POSIX
+GNULIB_FPRINTF
+GNULIB_FOPEN
+GNULIB_FGETS
+GNULIB_FGETC
+GNULIB_FFLUSH
+GNULIB_FDOPEN
+GNULIB_FCLOSE
+GNULIB_DPRINTF
 LOCALE_TR_UTF8
 LOCALE_FR
 gltests_WITNESS
-REPLACE_ISWCNTRL
-HAVE_WCTYPE_H
-NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H
-NEXT_WCTYPE_H
-HAVE_ISWBLANK
-HAVE_ISWCNTRL
-HAVE_WINT_T
-HAVE_WCHAR_H
 NEXT_AS_FIRST_DIRECTIVE_WCHAR_H
 NEXT_WCHAR_H
+LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE
+LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE
+LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_FALSE
+LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE
+LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_FALSE
+LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE
+LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_FALSE
+LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE
+LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_FALSE
+LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE
+LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_FALSE
+LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE
+LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_FALSE
+LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE
+LIBUNISTRING_UNIWIDTH_H
+LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_FALSE
+LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE
+LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE
+LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE
+LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE
+LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE
+LIBUNISTRING_UNIWBRK_H
+LIBUNISTRING_UNITYPES_H
+LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_SET_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_PREV_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_CPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_CMP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_CHR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_SET_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_PREV_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_CPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_CMP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_CHR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_SET_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_PREV_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_CPY_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_CMP_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_CHR_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE
+LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_FALSE
+LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE
+LIBUNISTRING_UNISTR_H
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE
+HAVE_FEATURES_H
+LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_FALSE
+LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE
+LIBUNISTRING_UNISTDIO_H
 HAVE_UNISTD_H
 NEXT_AS_FIRST_DIRECTIVE_UNISTD_H
 NEXT_UNISTD_H
@@ -798,14 +1200,21 @@ REPLACE_SYMLINK
 REPLACE_SLEEP
 REPLACE_RMDIR
 REPLACE_READLINK
+REPLACE_READ
+REPLACE_PWRITE
 REPLACE_PREAD
 REPLACE_LSEEK
 REPLACE_LINKAT
 REPLACE_LINK
 REPLACE_LCHOWN
+REPLACE_ISATTY
 REPLACE_GETPAGESIZE
 REPLACE_GETGROUPS
+REPLACE_GETLOGIN_R
+REPLACE_GETDTABLESIZE
+REPLACE_GETDOMAINNAME
 REPLACE_GETCWD
+REPLACE_FTRUNCATE
 REPLACE_FCHOWNAT
 REPLACE_DUP2
 REPLACE_DUP
@@ -813,31 +1222,39 @@ REPLACE_CLOSE
 REPLACE_CHOWN
 HAVE_SYS_PARAM_H
 HAVE_OS_H
+HAVE_DECL_TTYNAME_R
+HAVE_DECL_SETHOSTNAME
 HAVE_DECL_GETUSERSHELL
 HAVE_DECL_GETPAGESIZE
 HAVE_DECL_GETLOGIN_R
+HAVE_DECL_GETDOMAINNAME
+HAVE_DECL_FDATASYNC
+HAVE_DECL_FCHDIR
 HAVE_DECL_ENVIRON
 HAVE_USLEEP
 HAVE_UNLINKAT
-HAVE_TTYNAME_R
 HAVE_SYMLINKAT
 HAVE_SYMLINK
 HAVE_SLEEP
+HAVE_SETHOSTNAME
 HAVE_READLINKAT
 HAVE_READLINK
+HAVE_PWRITE
 HAVE_PREAD
 HAVE_PIPE2
+HAVE_PIPE
 HAVE_LINKAT
 HAVE_LINK
 HAVE_LCHOWN
+HAVE_GROUP_MEMBER
 HAVE_GETPAGESIZE
 HAVE_GETLOGIN
 HAVE_GETHOSTNAME
 HAVE_GETGROUPS
 HAVE_GETDTABLESIZE
-HAVE_GETDOMAINNAME
 HAVE_FTRUNCATE
 HAVE_FSYNC
+HAVE_FDATASYNC
 HAVE_FCHOWNAT
 HAVE_FCHDIR
 HAVE_FACCESSAT
@@ -850,20 +1267,26 @@ GNULIB_USLEEP
 GNULIB_UNLINKAT
 GNULIB_UNLINK
 GNULIB_UNISTD_H_SIGPIPE
-GNULIB_UNISTD_H_GETOPT
+GNULIB_UNISTD_H_NONBLOCKING
 GNULIB_TTYNAME_R
 GNULIB_SYMLINKAT
 GNULIB_SYMLINK
 GNULIB_SLEEP
+GNULIB_SETHOSTNAME
 GNULIB_RMDIR
 GNULIB_READLINKAT
 GNULIB_READLINK
+GNULIB_READ
+GNULIB_PWRITE
 GNULIB_PREAD
 GNULIB_PIPE2
+GNULIB_PIPE
 GNULIB_LSEEK
 GNULIB_LINKAT
 GNULIB_LINK
 GNULIB_LCHOWN
+GNULIB_ISATTY
+GNULIB_GROUP_MEMBER
 GNULIB_GETUSERSHELL
 GNULIB_GETPAGESIZE
 GNULIB_GETLOGIN_R
@@ -875,6 +1298,7 @@ GNULIB_GETDOMAINNAME
 GNULIB_GETCWD
 GNULIB_FTRUNCATE
 GNULIB_FSYNC
+GNULIB_FDATASYNC
 GNULIB_FCHOWNAT
 GNULIB_FCHDIR
 GNULIB_FACCESSAT
@@ -882,13 +1306,608 @@ GNULIB_EUIDACCESS
 GNULIB_ENVIRON
 GNULIB_DUP3
 GNULIB_DUP2
+GNULIB_DUP
 GNULIB_CLOSE
 GNULIB_CHOWN
+GNULIB_CHDIR
+LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE
+LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE
+LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE
+LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE
+LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE
+LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE
+LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE
+LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE
+LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE
+LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE
+LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE
+LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_FALSE
+LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE
+LIBUNISTRING_COMPILE_UNINORM_NFKD_FALSE
+LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE
+LIBUNISTRING_COMPILE_UNINORM_NFKC_FALSE
+LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE
+LIBUNISTRING_COMPILE_UNINORM_NFD_FALSE
+LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE
+LIBUNISTRING_COMPILE_UNINORM_NFC_FALSE
+LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE
+LIBUNISTRING_COMPILE_UNINORM_FILTER_FALSE
+LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE
+LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_FALSE
+LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE
+LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_FALSE
+LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE
+LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_FALSE
+LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE
+LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_FALSE
+LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE
+LIBUNISTRING_UNINORM_H
+LIBUNISTRING_COMPILE_UNINAME_UNINAME_FALSE
+LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE
+LIBUNISTRING_UNINAME_H
+LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE
+LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE
+LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE
+LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE
+LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE
+LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE
+LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE
+LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_FALSE
+LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE
+LIBUNISTRING_UNILBRK_H
+LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE
+LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE
+LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE
+LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE
+LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE
+LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE
+LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE
+LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE
+LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE
+LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE
+LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE
+LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_FALSE
+LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE
+LIBUNISTRING_UNIGBRK_H
+LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE
+LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_FALSE
+LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE
+LIBUNISTRING_UNICTYPE_H
+LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE
+LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_FALSE
+LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE
+LIBUNISTRING_UNICONV_H
+LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_FALSE
+LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE
+LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_FALSE
+LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE
+LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_FALSE
+LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE
+LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_FALSE
+LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE
+LIBUNISTRING_COMPILE_UNICASE_TOUPPER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_TOTITLE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_TOLOWER_FALSE
+LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE
+LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_FALSE
+LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE
+LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_FALSE
+LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE
+LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_FALSE
+LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE
+LIBUNISTRING_UNICASE_H
+WINDOWS_64_BIT_OFF_T
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H
+NEXT_SYS_TYPES_H
 NEXT_AS_FIRST_DIRECTIVE_STRING_H
 NEXT_STRING_H
-HAVE_RANDOM_H
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H
 NEXT_STDLIB_H
+GL_GENERATE_STDINT_H_FALSE
+GL_GENERATE_STDINT_H_TRUE
 STDINT_H
 WINT_T_SUFFIX
 WCHAR_T_SUFFIX
@@ -910,14 +1929,19 @@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H
 NEXT_STDINT_H
 HAVE_SYS_TYPES_H
 HAVE_INTTYPES_H
+HAVE_WCHAR_H
 HAVE_UNSIGNED_LONG_LONG_INT
 HAVE_LONG_LONG_INT
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H
 NEXT_STDDEF_H
+GL_GENERATE_STDDEF_H_FALSE
+GL_GENERATE_STDDEF_H_TRUE
 STDDEF_H
 HAVE_WCHAR_T
 REPLACE_NULL
 HAVE__BOOL
+GL_GENERATE_STDBOOL_H_FALSE
+GL_GENERATE_STDBOOL_H_TRUE
 STDBOOL_H
 RELOCATABLE
 APPLE_UNIVERSAL_BUILD
@@ -927,7 +1951,9 @@ REPLACE_STRSIGNAL
 REPLACE_STRNLEN
 REPLACE_STRNDUP
 REPLACE_STRNCAT
+REPLACE_STRERROR_R
 REPLACE_STRERROR
+REPLACE_STRCHRNUL
 REPLACE_STRCASESTR
 REPLACE_STRSTR
 REPLACE_STRDUP
@@ -936,6 +1962,7 @@ REPLACE_MEMMEM
 REPLACE_MEMCHR
 HAVE_STRVERSCMP
 HAVE_DECL_STRSIGNAL
+HAVE_DECL_STRERROR_R
 HAVE_DECL_STRTOK_R
 HAVE_STRCASESTR
 HAVE_STRSEP
@@ -951,9 +1978,12 @@ HAVE_DECL_MEMRCHR
 HAVE_MEMPCPY
 HAVE_DECL_MEMMEM
 HAVE_MEMCHR
+HAVE_FFSLL
+HAVE_FFSL
 HAVE_MBSLEN
 GNULIB_STRVERSCMP
 GNULIB_STRSIGNAL
+GNULIB_STRERROR_R
 GNULIB_STRERROR
 GNULIB_MBSTOK_R
 GNULIB_MBSSEP
@@ -986,9 +2016,12 @@ GNULIB_MEMRCHR
 GNULIB_MEMPCPY
 GNULIB_MEMMEM
 GNULIB_MEMCHR
+GNULIB_FFSLL
+GNULIB_FFSL
 LOCALE_FR_UTF8
 LOCALE_ZH_CN
 LOCALE_JA
+REPLACE_WCSWIDTH
 REPLACE_WCWIDTH
 REPLACE_WCSNRTOMBS
 REPLACE_WCSRTOMBS
@@ -1003,6 +2036,34 @@ REPLACE_BTOWC
 REPLACE_MBSTATE_T
 HAVE_DECL_WCWIDTH
 HAVE_DECL_WCTOB
+HAVE_WCSWIDTH
+HAVE_WCSTOK
+HAVE_WCSSTR
+HAVE_WCSPBRK
+HAVE_WCSSPN
+HAVE_WCSCSPN
+HAVE_WCSRCHR
+HAVE_WCSCHR
+HAVE_WCSDUP
+HAVE_WCSXFRM
+HAVE_WCSCOLL
+HAVE_WCSNCASECMP
+HAVE_WCSCASECMP
+HAVE_WCSNCMP
+HAVE_WCSCMP
+HAVE_WCSNCAT
+HAVE_WCSCAT
+HAVE_WCPNCPY
+HAVE_WCSNCPY
+HAVE_WCPCPY
+HAVE_WCSCPY
+HAVE_WCSNLEN
+HAVE_WCSLEN
+HAVE_WMEMSET
+HAVE_WMEMMOVE
+HAVE_WMEMCPY
+HAVE_WMEMCMP
+HAVE_WMEMCHR
 HAVE_WCSNRTOMBS
 HAVE_WCSRTOMBS
 HAVE_WCRTOMB
@@ -1012,6 +2073,34 @@ HAVE_MBRLEN
 HAVE_MBRTOWC
 HAVE_MBSINIT
 HAVE_BTOWC
+GNULIB_WCSWIDTH
+GNULIB_WCSTOK
+GNULIB_WCSSTR
+GNULIB_WCSPBRK
+GNULIB_WCSSPN
+GNULIB_WCSCSPN
+GNULIB_WCSRCHR
+GNULIB_WCSCHR
+GNULIB_WCSDUP
+GNULIB_WCSXFRM
+GNULIB_WCSCOLL
+GNULIB_WCSNCASECMP
+GNULIB_WCSCASECMP
+GNULIB_WCSNCMP
+GNULIB_WCSCMP
+GNULIB_WCSNCAT
+GNULIB_WCSCAT
+GNULIB_WCPNCPY
+GNULIB_WCSNCPY
+GNULIB_WCPCPY
+GNULIB_WCSCPY
+GNULIB_WCSNLEN
+GNULIB_WCSLEN
+GNULIB_WMEMSET
+GNULIB_WMEMMOVE
+GNULIB_WMEMCPY
+GNULIB_WMEMCMP
+GNULIB_WMEMCHR
 GNULIB_WCWIDTH
 GNULIB_WCSNRTOMBS
 GNULIB_WCSRTOMBS
@@ -1025,26 +2114,39 @@ GNULIB_WCTOB
 GNULIB_BTOWC
 NEXT_AS_FIRST_DIRECTIVE_MATH_H
 NEXT_MATH_H
+REPLACE_WCTOMB
 REPLACE_UNSETENV
 REPLACE_STRTOD
 REPLACE_SETENV
 REPLACE_REALPATH
+REPLACE_REALLOC
+REPLACE_RANDOM_R
 REPLACE_PUTENV
+REPLACE_PTSNAME_R
+REPLACE_PTSNAME
 REPLACE_MKSTEMP
+REPLACE_MBTOWC
+REPLACE_MALLOC
 REPLACE_CANONICALIZE_FILE_NAME
-HAVE_UNSETENV
+REPLACE_CALLOC
+HAVE_DECL_UNSETENV
 HAVE_UNLOCKPT
 HAVE_SYS_LOADAVG_H
 HAVE_STRUCT_RANDOM_DATA
 HAVE_STRTOULL
 HAVE_STRTOLL
 HAVE_STRTOD
+HAVE_DECL_SETENV
 HAVE_SETENV
+HAVE_SECURE_GETENV
 HAVE_RPMATCH
 HAVE_REALPATH
-HAVE_REALLOC_POSIX
 HAVE_RANDOM_R
+HAVE_RANDOM_H
+HAVE_RANDOM
+HAVE_PTSNAME_R
 HAVE_PTSNAME
+HAVE_POSIX_OPENPT
 HAVE_MKSTEMPS
 HAVE_MKSTEMP
 HAVE_MKOSTEMPS
@@ -1054,25 +2156,32 @@ HAVE_GRANTPT
 HAVE_GETSUBOPT
 HAVE_DECL_GETLOADAVG
 HAVE_CANONICALIZE_FILE_NAME
-HAVE_CALLOC_POSIX
 HAVE_ATOLL
+HAVE__EXIT
+GNULIB_WCTOMB
 GNULIB_UNSETENV
 GNULIB_UNLOCKPT
+GNULIB_SYSTEM_POSIX
 GNULIB_STRTOULL
 GNULIB_STRTOLL
 GNULIB_STRTOD
 GNULIB_SETENV
+GNULIB_SECURE_GETENV
 GNULIB_RPMATCH
 GNULIB_REALPATH
 GNULIB_REALLOC_POSIX
 GNULIB_RANDOM_R
+GNULIB_RANDOM
 GNULIB_PUTENV
+GNULIB_PTSNAME_R
 GNULIB_PTSNAME
+GNULIB_POSIX_OPENPT
 GNULIB_MKSTEMPS
 GNULIB_MKSTEMP
 GNULIB_MKOSTEMPS
 GNULIB_MKOSTEMP
 GNULIB_MKDTEMP
+GNULIB_MBTOWC
 GNULIB_MALLOC_POSIX
 GNULIB_GRANTPT
 GNULIB_GETSUBOPT
@@ -1080,7 +2189,7 @@ GNULIB_GETLOADAVG
 GNULIB_CANONICALIZE_FILE_NAME
 GNULIB_CALLOC_POSIX
 GNULIB_ATOLL
-HAVE_MALLOC_POSIX
+GNULIB__EXIT
 LTLIBMULTITHREAD
 LIBMULTITHREAD
 LTLIBTHREAD
@@ -1091,32 +2200,98 @@ LIBPTH
 INTL_MACOSX_LIBS
 LOCALCHARSET_TESTS_ENVIRONMENT
 GLIBC21
+REPLACE_TOWLOWER
+REPLACE_ISWCNTRL
+HAVE_WCTYPE_H
+NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H
+NEXT_WCTYPE_H
+HAVE_WINT_T
+HAVE_ISWCNTRL
+REPLACE_ISWBLANK
+HAVE_WCTRANS_T
+HAVE_WCTYPE_T
+HAVE_ISWBLANK
+GNULIB_TOWCTRANS
+GNULIB_WCTRANS
+GNULIB_ISWCTYPE
+GNULIB_WCTYPE
+GNULIB_ISWBLANK
 NEXT_AS_FIRST_DIRECTIVE_ICONV_H
 NEXT_ICONV_H
+GL_GENERATE_ICONV_H_FALSE
+GL_GENERATE_ICONV_H_TRUE
 ICONV_H
 REPLACE_ICONV_UTF
 REPLACE_ICONV_OPEN
 REPLACE_ICONV
+ICONV_CONST
+GNULIB_ICONV
 LTLIBICONV
 LIBICONV
+HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
 REPLACE_TRUNCL
+REPLACE_TRUNCF
+REPLACE_TRUNC
+REPLACE_SQRTL
 REPLACE_SIGNBIT_USING_GCC
 REPLACE_SIGNBIT
 REPLACE_ROUNDL
 REPLACE_ROUNDF
 REPLACE_ROUND
+REPLACE_REMAINDERL
+REPLACE_REMAINDERF
+REPLACE_REMAINDER
 REPLACE_NAN
+REPLACE_MODFL
+REPLACE_MODFF
+REPLACE_MODF
+REPLACE_LOGBL
+REPLACE_LOGBF
+REPLACE_LOGB
+REPLACE_LOG2L
+REPLACE_LOG2F
+REPLACE_LOG2
+REPLACE_LOG1PL
+REPLACE_LOG1PF
+REPLACE_LOG1P
+REPLACE_LOG10L
+REPLACE_LOG10F
+REPLACE_LOG10
+REPLACE_LOGL
+REPLACE_LOGF
+REPLACE_LOG
 REPLACE_LDEXPL
 REPLACE_ISNAN
 REPLACE_ISINF
 REPLACE_ISFINITE
+REPLACE_ILOGBF
+REPLACE_ILOGB
+REPLACE_HYPOTL
+REPLACE_HYPOTF
+REPLACE_HYPOT
 REPLACE_HUGE_VAL
 REPLACE_FREXPL
 REPLACE_FREXP
+REPLACE_FREXPF
+REPLACE_FMODL
+REPLACE_FMODF
+REPLACE_FMOD
+REPLACE_FMAL
+REPLACE_FMAF
+REPLACE_FMA
 REPLACE_FLOORL
 REPLACE_FLOORF
+REPLACE_FLOOR
+REPLACE_FABSL
+REPLACE_EXP2L
+REPLACE_EXP2
+REPLACE_EXPM1F
+REPLACE_EXPM1
 REPLACE_CEILL
 REPLACE_CEILF
+REPLACE_CEIL
+REPLACE_CBRTL
+REPLACE_CBRTF
 HAVE_DECL_TRUNCL
 HAVE_DECL_TRUNCF
 HAVE_DECL_TRUNC
@@ -1126,61 +2301,191 @@ HAVE_DECL_SINL
 HAVE_DECL_ROUNDL
 HAVE_DECL_ROUNDF
 HAVE_DECL_ROUND
-HAVE_DECL_LOGL
+HAVE_DECL_RINTF
+HAVE_DECL_REMAINDERL
+HAVE_DECL_REMAINDER
 HAVE_DECL_LOGB
+HAVE_DECL_LOG2L
+HAVE_DECL_LOG2F
+HAVE_DECL_LOG2
+HAVE_DECL_LOG10L
+HAVE_DECL_LOGL
 HAVE_DECL_LDEXPL
 HAVE_DECL_FREXPL
 HAVE_DECL_FLOORL
 HAVE_DECL_FLOORF
+HAVE_DECL_EXPM1L
+HAVE_DECL_EXP2L
+HAVE_DECL_EXP2F
+HAVE_DECL_EXP2
 HAVE_DECL_EXPL
 HAVE_DECL_COSL
+HAVE_DECL_COPYSIGNF
 HAVE_DECL_CEILL
 HAVE_DECL_CEILF
+HAVE_DECL_CBRTL
+HAVE_DECL_CBRTF
 HAVE_DECL_ATANL
 HAVE_DECL_ASINL
 HAVE_DECL_ACOSL
+HAVE_TANHF
 HAVE_TANL
+HAVE_TANF
 HAVE_SQRTL
+HAVE_SQRTF
+HAVE_SINHF
 HAVE_SINL
+HAVE_SINF
+HAVE_RINTL
+HAVE_RINT
+HAVE_REMAINDERF
+HAVE_REMAINDER
+HAVE_POWF
+HAVE_MODFL
+HAVE_MODFF
+HAVE_LOGBL
+HAVE_LOGBF
+HAVE_LOG1PL
+HAVE_LOG1PF
+HAVE_LOG1P
+HAVE_LOG10L
+HAVE_LOG10F
 HAVE_LOGL
+HAVE_LOGF
+HAVE_LDEXPF
 HAVE_ISNANL
 HAVE_ISNAND
 HAVE_ISNANF
+HAVE_ILOGBL
+HAVE_ILOGBF
+HAVE_ILOGB
+HAVE_HYPOTL
+HAVE_HYPOTF
+HAVE_FREXPF
+HAVE_FMODL
+HAVE_FMODF
+HAVE_FMAL
+HAVE_FMAF
+HAVE_FMA
+HAVE_FABSL
+HAVE_FABSF
+HAVE_EXPM1F
+HAVE_EXPM1
 HAVE_EXPL
+HAVE_EXPF
+HAVE_COSHF
 HAVE_COSL
+HAVE_COSF
+HAVE_COPYSIGNL
+HAVE_COPYSIGN
+HAVE_CBRTL
+HAVE_CBRTF
+HAVE_CBRT
+HAVE_ATAN2F
 HAVE_ATANL
+HAVE_ATANF
 HAVE_ASINL
+HAVE_ASINF
 HAVE_ACOSL
+HAVE_ACOSF
 GNULIB_TRUNCL
 GNULIB_TRUNCF
 GNULIB_TRUNC
+GNULIB_TANHF
 GNULIB_TANL
+GNULIB_TANF
 GNULIB_SQRTL
+GNULIB_SQRTF
+GNULIB_SINHF
 GNULIB_SINL
+GNULIB_SINF
 GNULIB_SIGNBIT
 GNULIB_ROUNDL
 GNULIB_ROUNDF
 GNULIB_ROUND
-GNULIB_LOGL
+GNULIB_RINTL
+GNULIB_RINTF
+GNULIB_RINT
+GNULIB_REMAINDERL
+GNULIB_REMAINDERF
+GNULIB_REMAINDER
+GNULIB_POWF
+GNULIB_MODFL
+GNULIB_MODFF
+GNULIB_MODF
+GNULIB_LOGBL
+GNULIB_LOGBF
 GNULIB_LOGB
+GNULIB_LOG2L
+GNULIB_LOG2F
+GNULIB_LOG2
+GNULIB_LOG1PL
+GNULIB_LOG1PF
+GNULIB_LOG1P
+GNULIB_LOG10L
+GNULIB_LOG10F
+GNULIB_LOG10
+GNULIB_LOGL
+GNULIB_LOGF
+GNULIB_LOG
 GNULIB_LDEXPL
+GNULIB_LDEXPF
 GNULIB_ISNANL
 GNULIB_ISNAND
 GNULIB_ISNANF
 GNULIB_ISNAN
 GNULIB_ISINF
 GNULIB_ISFINITE
+GNULIB_ILOGBL
+GNULIB_ILOGBF
+GNULIB_ILOGB
+GNULIB_HYPOTL
+GNULIB_HYPOTF
+GNULIB_HYPOT
 GNULIB_FREXPL
 GNULIB_FREXP
+GNULIB_FREXPF
+GNULIB_FMODL
+GNULIB_FMODF
+GNULIB_FMOD
+GNULIB_FMAL
+GNULIB_FMAF
+GNULIB_FMA
 GNULIB_FLOORL
 GNULIB_FLOORF
+GNULIB_FLOOR
+GNULIB_FABSL
+GNULIB_FABSF
+GNULIB_EXPM1L
+GNULIB_EXPM1F
+GNULIB_EXPM1
+GNULIB_EXP2L
+GNULIB_EXP2F
+GNULIB_EXP2
 GNULIB_EXPL
+GNULIB_EXPF
+GNULIB_COSHF
 GNULIB_COSL
+GNULIB_COSF
+GNULIB_COPYSIGNL
+GNULIB_COPYSIGNF
+GNULIB_COPYSIGN
 GNULIB_CEILL
 GNULIB_CEILF
+GNULIB_CEIL
+GNULIB_CBRTL
+GNULIB_CBRTF
+GNULIB_CBRT
+GNULIB_ATAN2F
 GNULIB_ATANL
+GNULIB_ATANF
 GNULIB_ASINL
+GNULIB_ASINF
 GNULIB_ACOSL
+GNULIB_ACOSF
+REPLACE_ITOLD
+GL_GENERATE_FLOAT_H_FALSE
+GL_GENERATE_FLOAT_H_TRUE
 FLOAT_H
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H
 NEXT_FLOAT_H
@@ -1190,12 +2495,20 @@ ENOLINK_VALUE
 ENOLINK_HIDDEN
 EMULTIHOP_VALUE
 EMULTIHOP_HIDDEN
+GL_GENERATE_ERRNO_H_FALSE
+GL_GENERATE_ERRNO_H_TRUE
 ERRNO_H
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H
 NEXT_ERRNO_H
+PRAGMA_COLUMNS
 PRAGMA_SYSTEM_HEADER
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE
 INCLUDE_NEXT
+pkglibexecdir
+runstatedir
+lispdir
+GL_GENERATE_ALLOCA_H_FALSE
+GL_GENERATE_ALLOCA_H_TRUE
 ALLOCA_H
 ALLOCA
 GL_COND_LIBTOOL_FALSE
@@ -1208,8 +2521,8 @@ OTOOL
 LIPO
 NMEDIT
 DSYMUTIL
-lt_ECHO
-AR
+MANIFEST_TOOL
+ac_ct_AR
 LN_S
 NM
 ac_ct_DUMPBIN
@@ -1221,9 +2534,11 @@ LIBTOOL
 OBJDUMP
 DLLTOOL
 AS
+RANLIB
+ARFLAGS
+AR
 EGREP
 GREP
-RANLIB
 host_os
 host_vendor
 host_cpu
@@ -1236,6 +2551,7 @@ CPP
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
 CCDEPMODE
+am__nodep
 AMDEPBACKSLASH
 AMDEP_FALSE
 AMDEP_TRUE
@@ -1251,6 +2567,8 @@ CFLAGS
 CC
 AM_BACKSLASH
 AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
 am__untar
 am__tar
 AMTAR
@@ -1323,6 +2641,7 @@ enable_static
 with_pic
 enable_fast_install
 with_gnu_ld
+with_sysroot
 enable_libtool_lock
 enable_rpath
 with_libiconv_prefix
@@ -1401,8 +2720,9 @@ do
   fi
 
   case $ac_option in
-  *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *)   ac_optarg=yes ;;
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
   esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1447,9 +2767,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed -e 's/[+]/x/g' -e 's/[-.]/_/g'`
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -1473,9 +2793,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed -e 's/[+]/x/g' -e 's/[-.]/_/g'`
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -1677,9 +2997,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed -e 's/[+]/x/g' -e 's/[-.]/_/g'`
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1693,9 +3013,9 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed -e 's/[+]/x/g' -e 's/[-.]/_/g'`
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1723,8 +3043,8 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) as_fn_error "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information."
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
     ;;
 
   *=*)
@@ -1732,7 +3052,7 @@ Try \`$0 --help' for more information."
     # Reject names that are not valid shell variable names.
     case $ac_envvar in #(
       '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
     esac
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
@@ -1742,7 +3062,7 @@ Try \`$0 --help' for more information."
     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
   esac
@@ -1750,13 +3070,13 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error "missing argument to $ac_option"
+  as_fn_error $? "missing argument to $ac_option"
 fi
 
 if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
-    fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
@@ -1779,7 +3099,7 @@ do
     [\\/$]* | ?:[\\/]* )  continue;;
     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
-  as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -1793,8 +3113,6 @@ target=$target_alias
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1809,9 +3127,9 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  as_fn_error "working directory cannot be determined"
+  as_fn_error $? "working directory cannot be determined"
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error "pwd does not report name of working directory"
+  as_fn_error $? "pwd does not report name of working directory"
 
 
 # Find the source files, if location was not specified.
@@ -1850,11 +3168,11 @@ else
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-       cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+       cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
        pwd)`
 # When building in place, set srcdir=.
 if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1894,7 +3212,7 @@ Configuration:
       --help=short        display options specific to this package
       --help=recursive    display the short help of all the included packages
   -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
+  -q, --quiet, --silent   do not print \`checking ...' messages
       --cache-file=FILE   cache test results in FILE [disabled]
   -C, --config-cache      alias for \`--cache-file=config.cache'
   -n, --no-create         do not create output files
@@ -1956,11 +3274,13 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
-  --enable-threads={posix|solaris|pth|win32}
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
+  --enable-threads={posix|solaris|pth|windows}
                           specify multithreading API
   --disable-threads       build without multithread safety
   --enable-shared[=PKGS]  build shared libraries [default=yes]
@@ -1976,10 +3296,12 @@ Optional Features:
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pic              try to use only PIC/non-PIC objects [default=use
+  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                           both]
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-gnu-ld           assume the C compiler uses GNU ld default=no
+  --with-sysroot=DIR Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
   --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
   --without-libiconv-prefix     don't search for libiconv in includedir and libdir
   --with-libpth-prefix[=DIR]  search for libpth in DIR/include and DIR/lib
@@ -2062,9 +3384,9 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 configure
-generated by GNU Autoconf 2.65
+generated by GNU Autoconf 2.69
 
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -2108,7 +3430,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
        ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_compile
@@ -2134,7 +3456,7 @@ $as_echo "$ac_try_echo"; } >&5
     mv -f conftest.er1 conftest.err
   fi
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } >/dev/null && {
+  test $ac_status = 0; } > conftest.i && {
         test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
         test ! -s conftest.err
        }; then :
@@ -2145,7 +3467,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_cpp
@@ -2158,10 +3480,10 @@ fi
 ac_fn_c_check_header_mongrel ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  if eval \${$3+:} false; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 fi
 eval ac_res=\$$3
@@ -2197,7 +3519,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
 else
   ac_header_preproc=no
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
 $as_echo "$ac_header_preproc" >&6; }
 
@@ -2224,7 +3546,7 @@ $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=\$ac_header_compiler"
@@ -2233,7 +3555,7 @@ eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_mongrel
 
@@ -2274,7 +3596,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
        ac_retval=$ac_status
 fi
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_run
@@ -2288,7 +3610,7 @@ ac_fn_c_check_header_compile ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2306,7 +3628,7 @@ fi
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_compile
 
@@ -2337,7 +3659,7 @@ $as_echo "$ac_try_echo"; } >&5
         test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
         test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
+        test -x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -2351,7 +3673,7 @@ fi
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_link
@@ -2364,7 +3686,7 @@ ac_fn_c_check_func ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_func
 
-# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-# --------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_c_compute_int ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if test "$cross_compiling" = yes; then
-    # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid; break
-else
-  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_lo=$ac_mid; break
-else
-  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  ac_lo= ac_hi=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid
-else
-  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in #((
-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-'') ac_retval=1 ;;
-esac
-  else
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (($2) < 0)
-    {
-      long int i = longval ();
-      if (i != ($2))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ($2))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else
-  ac_retval=1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-rm -f conftest.val
-
-  fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_compute_int
-
-# ac_fn_c_check_decl LINENO SYMBOL VAR
-# ------------------------------------
-# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
-ac_fn_c_check_decl ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5
-$as_echo_n "checking whether $2 is declared... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-#ifndef $2
-  (void) $2;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
-
-} # ac_fn_c_check_decl
-
 # ac_fn_c_check_type LINENO TYPE VAR INCLUDES
 # -------------------------------------------
 # Tests whether TYPE exists after having included INCLUDES, setting cache
@@ -2649,7 +3754,7 @@ ac_fn_c_check_type ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=no"
 eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_type
+
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if test "$cross_compiling" = yes; then
+    # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid; break
+else
+  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+                       if test $ac_lo -le $ac_mid; then
+                         ac_lo= ac_hi=
+                         break
+                       fi
+                       as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=$ac_mid; break
+else
+  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+                       if test $ac_mid -le $ac_hi; then
+                         ac_lo= ac_hi=
+                         break
+                       fi
+                       as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid
+else
+  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if (($2) < 0)
+    {
+      long int i = longval ();
+      if (i != ($2))
+       return 1;
+      fprintf (f, "%ld", i);
+    }
+  else
+    {
+      unsigned long int i = ulongval ();
+      if (i != ($2))
+       return 1;
+      fprintf (f, "%lu", i);
+    }
+  /* Do not output a trailing newline, as this causes \r\n confusion
+     on some platforms.  */
+  return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+  ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+  fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_compute_int
+
+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+# ---------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly.
+ac_fn_c_check_decl ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  as_decl_name=`echo $2|sed 's/ *(.*//'`
+  as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+  (void) $as_decl_use;
+#else
+  (void) $as_decl_name;
+#endif
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_decl
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.65.  Invocation command line was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
 
@@ -2808,11 +4142,9 @@ trap 'exit_status=$?
   {
     echo
 
-    cat <<\_ASBOX
-## ---------------- ##
+    $as_echo "## ---------------- ##
 ## Cache variables. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
     echo
     # The following way of writing the cache mishandles newlines in values,
 (
@@ -2846,11 +4178,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 )
     echo
 
-    cat <<\_ASBOX
-## ----------------- ##
+    $as_echo "## ----------------- ##
 ## Output variables. ##
-## ----------------- ##
-_ASBOX
+## ----------------- ##"
     echo
     for ac_var in $ac_subst_vars
     do
@@ -2863,11 +4193,9 @@ _ASBOX
     echo
 
     if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------------- ##
+      $as_echo "## ------------------- ##
 ## File substitutions. ##
-## ------------------- ##
-_ASBOX
+## ------------------- ##"
       echo
       for ac_var in $ac_subst_files
       do
@@ -2881,11 +4209,9 @@ _ASBOX
     fi
 
     if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
+      $as_echo "## ----------- ##
 ## confdefs.h. ##
-## ----------- ##
-_ASBOX
+## ----------- ##"
       echo
       cat confdefs.h
       echo
@@ -2940,7 +4266,12 @@ _ACEOF
 ac_site_file1=NONE
 ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  ac_site_file1=$CONFIG_SITE
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
 elif test "x$prefix" != xNONE; then
   ac_site_file1=$prefix/share/config.site
   ac_site_file2=$prefix/etc/config.site
@@ -2955,7 +4286,11 @@ do
     { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
 $as_echo "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
   fi
 done
 
@@ -2976,33 +4311,34 @@ $as_echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
-as_fn_append ac_header_list " errno.h"
-as_fn_append ac_header_list " float.h"
+as_fn_append ac_func_list " __fseterr"
 as_fn_append ac_header_list " iconv.h"
+as_fn_append ac_func_list " iswcntrl"
+as_fn_append ac_header_list " wctype.h"
+as_fn_append ac_func_list " iswblank"
+as_fn_append ac_header_list " unistd.h"
+as_fn_append ac_func_list " symlink"
 as_fn_append ac_header_list " math.h"
 as_fn_append ac_func_list " mbsinit"
 as_fn_append ac_func_list " mbrtowc"
 as_fn_append ac_header_list " sys/mman.h"
 as_fn_append ac_func_list " mprotect"
-as_fn_append ac_func_list " memchr"
 gl_printf_safe=yes
-as_fn_append ac_header_list " stddef.h"
-as_fn_append ac_header_list " stdint.h"
 as_fn_append ac_header_list " wchar.h"
-as_fn_append ac_header_list " stdlib.h"
-as_fn_append ac_header_list " string.h"
-as_fn_append ac_header_list " unistd.h"
+as_fn_append ac_header_list " stdint.h"
+as_fn_append ac_header_list " features.h"
+as_fn_append ac_func_list " snprintf"
 as_fn_append ac_func_list " stpcpy"
 as_fn_append ac_func_list " strdup"
-as_fn_append ac_func_list " iswcntrl"
-as_fn_append ac_func_list " iswblank"
-as_fn_append ac_header_list " wctype.h"
 as_fn_append ac_func_list " wcwidth"
+as_fn_append ac_func_list " btowc"
+as_fn_append ac_func_list " _set_invalid_parameter_handler"
+as_fn_append ac_header_list " inttypes.h"
 as_fn_append ac_header_list " xlocale.h"
-as_fn_append ac_header_list " locale.h"
 as_fn_append ac_func_list " newlocale"
 as_fn_append ac_func_list " setenv"
 as_fn_append ac_header_list " sys/socket.h"
+as_fn_append ac_func_list " wcrtomb"
 as_fn_append ac_func_list " wctob"
 # Check that the precious variables saved in the cache have kept the same
 # value.
@@ -3059,7 +4395,7 @@ if $ac_cache_corrupted; then
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
   { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
 fi
 ## -------------------- ##
 ## Main body of script. ##
@@ -3075,16 +4411,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 ac_aux_dir=
 for ac_dir in build-aux "$srcdir"/build-aux; do
-  for ac_t in install-sh install.sh shtool; do
-    if test -f "$ac_dir/$ac_t"; then
-      ac_aux_dir=$ac_dir
-      ac_install_sh="$ac_aux_dir/$ac_t -c"
-      break 2
-    fi
-  done
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
 done
 if test -z "$ac_aux_dir"; then
-  as_fn_error "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
 fi
 
 # These three variables are undocumented and unsupported,
@@ -3102,7 +4444,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
 
-am__api_version='1.11'
+am__api_version='1.13'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -3121,7 +4463,7 @@ am__api_version='1.11'
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
+if ${ac_cv_path_install+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3141,7 +4483,7 @@ case $as_dir/ in #((
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-       if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+       if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
          if test $ac_prog = install &&
            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
            # AIX install.  It has an incompatible calling convention.
@@ -3199,56 +4541,71 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
 '
 case `pwd` in
   *[\\\"\#\$\&\'\`$am_lf]*)
-    as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \    ]*)
-    as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      as_fn_error "ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" "$LINENO" 5
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+       # -L didn't work.
+       set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+       && test "$*" != "X conftest.file $srcdir/configure"; then
+
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$2" = conftest.file
    )
 then
    # Ok.
    :
 else
-   as_fn_error "newly created file is older than distributed files!
+   as_fn_error $? "newly created file is older than distributed files!
 Check your system clock" "$LINENO" 5
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
@@ -3271,12 +4628,12 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
 if test x"${install_sh}" != xset; then
@@ -3288,17 +4645,17 @@ if test x"${install_sh}" != xset; then
   esac
 fi
 
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
+# will honor the 'STRIP' environment variable to overrule this program.
 if test "$cross_compiling" != no; then
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -3310,7 +4667,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3338,7 +4695,7 @@ if test -z "$ac_cv_prog_STRIP"; then
 set dummy strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -3350,7 +4707,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_STRIP="strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3391,7 +4748,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then :
+  if ${ac_cv_path_mkdir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3401,7 +4758,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_prog in mkdir gmkdir; do
         for ac_exec_ext in '' $ac_executable_extensions; do
-          { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+          as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
           case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
             'mkdir (GNU coreutils) '* | \
             'mkdir (coreutils) '* | \
@@ -3430,20 +4787,13 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
-
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
+if ${ac_cv_prog_AWK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -3455,7 +4805,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AWK="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3483,7 +4833,7 @@ done
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -3491,7 +4841,7 @@ SHELL = /bin/sh
 all:
        @echo '@@@%%%=$(MAKE)=@@@%%%'
 _ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
 case `${MAKE-make} -f conftest.make 2>/dev/null` in
   *@@@%%%=?*=@@@%%%*)
     eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -3524,11 +4874,38 @@ if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=1;;
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
 esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+       @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
 AM_BACKSLASH='\'
 
 
@@ -3539,7 +4916,7 @@ AM_BACKSLASH='\'
   am__isrc=' -I$(srcdir)'
   # test to see if srcdir already configured
   if test -f $srcdir/config.status; then
-    as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
   fi
 fi
 
@@ -3574,13 +4951,24 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
-# Always define AMTAR for backward compatibility.
+# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
 
-AMTAR=${AMTAR-"${am_missing_run}tar"}
 
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar  pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
 
 
 
@@ -3619,7 +5007,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3631,7 +5019,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3659,7 +5047,7 @@ if test -z "$ac_cv_prog_CC"; then
 set dummy gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3671,7 +5059,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3712,7 +5100,7 @@ if test -z "$CC"; then
 set dummy ${ac_tool_prefix}cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3724,7 +5112,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3752,7 +5140,7 @@ if test -z "$CC"; then
 set dummy cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3765,7 +5153,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -3811,7 +5199,7 @@ if test -z "$CC"; then
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3823,7 +5211,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3855,7 +5243,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3867,7 +5255,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3909,8 +5297,8 @@ fi
 
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "no acceptable C compiler found in \$PATH
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -4024,9 +5412,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "C compiler cannot create executables
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -4068,8 +5455,8 @@ done
 else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4126,9 +5513,9 @@ $as_echo "$ac_try_echo"; } >&5
     else
        { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot run C compiled programs.
+as_fn_error $? "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
@@ -4139,7 +5526,7 @@ rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
 ac_clean_files=$ac_clean_files_save
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
+if ${ac_cv_objext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4179,8 +5566,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
 
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
@@ -4190,7 +5577,7 @@ OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4227,7 +5614,7 @@ ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -4305,7 +5692,7 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -4314,8 +5701,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
 FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -4418,7 +5804,7 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -4451,6 +5837,7 @@ fi
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
  if test "x$enable_dependency_tracking" != xno; then
   AMDEP_TRUE=
@@ -4466,15 +5853,16 @@ depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -4508,16 +5896,16 @@ else
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -4526,16 +5914,16 @@ else
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
        continue
       else
        break
       fi
       ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -4601,7 +5989,7 @@ if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then :
+  if ${ac_cv_prog_CPP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -4631,7 +6019,7 @@ else
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -4647,11 +6035,11 @@ else
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
   break
 fi
@@ -4690,7 +6078,7 @@ else
   # Broken: fails on valid input.
 continue
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
@@ -4706,18 +6094,18 @@ else
 ac_preproc_ok=:
 break
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then :
 
 else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -4732,27 +6120,27 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
+if ${ac_cv_build+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
   ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 test "x$ac_build_alias" = x &&
-  as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
 $as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
 esac
 build=$ac_cv_build
 ac_save_IFS=$IFS; IFS='-'
@@ -4770,14 +6158,14 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 $as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
+if ${ac_cv_host+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
   ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
 fi
 
 fi
@@ -4785,7 +6173,7 @@ fi
 $as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
 esac
 host=$ac_cv_host
 ac_save_IFS=$IFS; IFS='-'
@@ -4803,12 +6191,286 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
 
-if test -n "$ac_tool_prefix"; then
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5
+$as_echo_n "checking for Minix Amsterdam compiler... " >&6; }
+if ${gl_cv_c_amsterdam_compiler+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#ifdef __ACK__
+Amsterdam
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Amsterdam" >/dev/null 2>&1; then :
+  gl_cv_c_amsterdam_compiler=yes
+else
+  gl_cv_c_amsterdam_compiler=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5
+$as_echo "$gl_cv_c_amsterdam_compiler" >&6; }
+  if test -z "$AR"; then
+    if test $gl_cv_c_amsterdam_compiler = yes; then
+      AR='cc -c.a'
+      if test -z "$ARFLAGS"; then
+        ARFLAGS='-o'
+      fi
+    else
+                  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="ar"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_AR" = x; then
+    AR="ar"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+else
+  AR="$ac_cv_prog_AR"
+fi
+
+      if test -z "$ARFLAGS"; then
+        ARFLAGS='cru'
+      fi
+    fi
+  else
+    if test -z "$ARFLAGS"; then
+      ARFLAGS='cru'
+    fi
+  fi
+
+
+  if test -z "$RANLIB"; then
+    if test $gl_cv_c_amsterdam_compiler = yes; then
+      RANLIB=':'
+    else
+            if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -4820,7 +6482,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4848,7 +6510,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
 set dummy ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -4860,7 +6522,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4895,6 +6557,10 @@ else
   RANLIB="$ac_cv_prog_RANLIB"
 fi
 
+    fi
+  fi
+
+
 if test "x$CC" != xcc; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
@@ -4904,7 +6570,7 @@ $as_echo_n "checking whether cc understands -c and -o together... " >&6; }
 fi
 set dummy $CC; ac_cc=`$as_echo "$2" |
                      sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5021,141 +6687,9 @@ if test "$am_t" != yes; then
 fi
 
 
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5272,8 +6806,7 @@ do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 "
-eval as_val=\$$as_ac_Header
-   if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -5284,10 +6817,8 @@ done
 
 
 
-
-
   ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = x""yes; then :
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
   MINIX=yes
 else
   MINIX=
@@ -5304,20 +6835,15 @@ $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
 
 $as_echo "#define _MINIX 1" >>confdefs.h
 
-  fi
-
-        case "$host_os" in
-    hpux*)
 
-$as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h
+$as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h
 
-      ;;
-  esac
+  fi
 
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if test "${ac_cv_safe_to_define___extensions__+set}" = set; then :
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5347,12 +6873,62 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
 
   $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
 
+  $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h
+
   $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
 
   $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
 
   $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
+$as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; }
+if ${ac_cv_should_define__xopen_source+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_should_define__xopen_source=no
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+          #include <wchar.h>
+          mbstate_t x;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+             #define _XOPEN_SOURCE 500
+             #include <wchar.h>
+             mbstate_t x;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_should_define__xopen_source=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
+$as_echo "$ac_cv_should_define__xopen_source" >&6; }
+  test $ac_cv_should_define__xopen_source = yes &&
+    $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h
+
 
 
 
@@ -5373,9 +6949,11 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
       # <http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/0600____.HTM>
       if test -n "$GCC"; then
         # GCC has the option -mieee.
+        # For full IEEE compliance (rarely needed), use option -mieee-with-inexact.
         CPPFLAGS="$CPPFLAGS -mieee"
       else
-        # Compaq (ex-DEC) C has the option -ieee.
+        # Compaq (ex-DEC) C has the option -ieee, equivalent to -ieee_with_no_inexact.
+        # For full IEEE compliance (rarely needed), use option -ieee_with_inexact.
         CPPFLAGS="$CPPFLAGS -ieee"
       fi
       ;;
@@ -5421,7 +6999,7 @@ fi
         # groks <pthread.h>. cc also understands the flag -pthread, but
         # we don't use it because 1. gcc-2.95 doesn't understand -pthread,
         # 2. putting a flag into CPPFLAGS that has an effect on the linker
-        # causes the AC_TRY_LINK test below to succeed unexpectedly,
+        # causes the AC_LINK_IFELSE test below to succeed unexpectedly,
         # leading to wrong values of LIBTHREAD and LTLIBTHREAD.
         CPPFLAGS="$CPPFLAGS -D_REENTRANT"
         ;;
@@ -5438,12 +7016,14 @@ fi
 
 
 
+  # Code from module absolute-header:
   # Code from module alloca-opt:
   # Code from module alloca-opt-tests:
-  # Code from module arg-nonnull:
+  # Code from module amemxfrm:
   # Code from module array-mergesort:
   # Code from module array-mergesort-tests:
-  # Code from module c++defs:
+  # Code from module btowc:
+  # Code from module btowc-tests:
   # Code from module c-ctype:
   # Code from module c-ctype-tests:
   # Code from module c-strcase:
@@ -5458,14 +7038,24 @@ fi
   # Code from module exitfail:
   # Code from module extensions:
 
+  # Code from module extern-inline:
+  # Code from module fdopen:
+  # Code from module fdopen-tests:
+  # Code from module fgetc-tests:
   # Code from module float:
+  # Code from module float-tests:
   # Code from module fpieee:
 
   # Code from module fpucw:
+  # Code from module fputc-tests:
+  # Code from module fread-tests:
+  # Code from module frexp-nolibm:
+  # Code from module frexp-nolibm-tests:
   # Code from module frexpl-nolibm:
   # Code from module frexpl-nolibm-tests:
   # Code from module fseterr:
   # Code from module fseterr-tests:
+  # Code from module fwrite-tests:
   # Code from module getpagesize:
   # Code from module gettext-h:
   # Code from module gperf:
@@ -5478,12 +7068,18 @@ fi
   # Code from module include_next:
   # Code from module inline:
   # Code from module intprops:
+  # Code from module intprops-tests:
+  # Code from module inttypes:
+  # Code from module inttypes-incomplete:
+  # Code from module inttypes-tests:
   # Code from module isnand-nolibm:
   # Code from module isnand-nolibm-tests:
   # Code from module isnanf-nolibm:
   # Code from module isnanf-nolibm-tests:
   # Code from module isnanl-nolibm:
   # Code from module isnanl-nolibm-tests:
+  # Code from module iswblank:
+  # Code from module iswblank-tests:
   # Code from module localcharset:
   # Code from module locale:
   # Code from module locale-tests:
@@ -5503,11 +7099,13 @@ fi
   # Code from module mbsinit:
   # Code from module mbsinit-tests:
   # Code from module mbsnlen:
+  # Code from module mbtowc:
   # Code from module memchr:
   # Code from module memchr-tests:
   # Code from module memcmp2:
-  # Code from module memxfrm:
   # Code from module minmax:
+  # Code from module msvc-inval:
+  # Code from module msvc-nothrow:
   # Code from module multiarch:
   # Code from module nocrash:
   # Code from module printf-frexp:
@@ -5520,19 +7118,30 @@ fi
   # Code from module relocatable-lib-lgpl:
   # Code from module setenv:
   # Code from module setenv-tests:
+  # Code from module setlocale:
+  # Code from module setlocale-tests:
   # Code from module signbit:
   # Code from module signbit-tests:
   # Code from module size_max:
+  # Code from module snippet/_Noreturn:
+  # Code from module snippet/arg-nonnull:
+  # Code from module snippet/c++defs:
+  # Code from module snippet/unused-parameter:
+  # Code from module snippet/warn-on-use:
+  # Code from module ssize_t:
   # Code from module stdbool:
   # Code from module stdbool-tests:
   # Code from module stddef:
   # Code from module stddef-tests:
   # Code from module stdint:
   # Code from module stdint-tests:
+  # Code from module stdio:
+  # Code from module stdio-tests:
   # Code from module stdlib:
   # Code from module stdlib-tests:
   # Code from module streq:
   # Code from module strerror:
+  # Code from module strerror-override:
   # Code from module strerror-tests:
   # Code from module striconveh:
   # Code from module striconveh-tests:
@@ -5542,7 +7151,15 @@ fi
   # Code from module string-tests:
   # Code from module strncat:
   # Code from module strncat-tests:
+  # Code from module strstr:
+  # Code from module strstr-simple:
+  # Code from module strstr-tests:
+  # Code from module sys_types:
+  # Code from module sys_types-tests:
+  # Code from module test-framework-sh:
+  # Code from module test-framework-sh-tests:
   # Code from module thread:
+  # Code from module thread-tests:
   # Code from module threadlib:
 
 
@@ -5688,15 +7305,17 @@ fi
   # Code from module uniconv/u8-strconv-to-enc-tests:
   # Code from module uniconv/u8-strconv-to-locale:
   # Code from module unictype/base:
-  # Code from module unictype/bidicategory-all:
-  # Code from module unictype/bidicategory-byname:
-  # Code from module unictype/bidicategory-byname-tests:
-  # Code from module unictype/bidicategory-name:
-  # Code from module unictype/bidicategory-name-tests:
-  # Code from module unictype/bidicategory-of:
-  # Code from module unictype/bidicategory-of-tests:
-  # Code from module unictype/bidicategory-test:
-  # Code from module unictype/bidicategory-test-tests:
+  # Code from module unictype/bidiclass-all:
+  # Code from module unictype/bidiclass-byname:
+  # Code from module unictype/bidiclass-byname-tests:
+  # Code from module unictype/bidiclass-longname:
+  # Code from module unictype/bidiclass-longname-tests:
+  # Code from module unictype/bidiclass-name:
+  # Code from module unictype/bidiclass-name-tests:
+  # Code from module unictype/bidiclass-of:
+  # Code from module unictype/bidiclass-of-tests:
+  # Code from module unictype/bidiclass-test:
+  # Code from module unictype/bidiclass-test-tests:
   # Code from module unictype/block-all:
   # Code from module unictype/block-list:
   # Code from module unictype/block-list-tests:
@@ -5718,6 +7337,8 @@ fi
   # Code from module unictype/category-Cs-tests:
   # Code from module unictype/category-L:
   # Code from module unictype/category-L-tests:
+  # Code from module unictype/category-LC:
+  # Code from module unictype/category-LC-tests:
   # Code from module unictype/category-Ll:
   # Code from module unictype/category-Ll-tests:
   # Code from module unictype/category-Lm:
@@ -5785,6 +7406,8 @@ fi
   # Code from module unictype/category-and-tests:
   # Code from module unictype/category-byname:
   # Code from module unictype/category-byname-tests:
+  # Code from module unictype/category-longname:
+  # Code from module unictype/category-longname-tests:
   # Code from module unictype/category-name:
   # Code from module unictype/category-name-tests:
   # Code from module unictype/category-none:
@@ -5797,6 +7420,13 @@ fi
   # Code from module unictype/category-test-withtable:
   # Code from module unictype/category-test-withtable-tests:
   # Code from module unictype/combining-class:
+  # Code from module unictype/combining-class-all:
+  # Code from module unictype/combining-class-byname:
+  # Code from module unictype/combining-class-byname-tests:
+  # Code from module unictype/combining-class-longname:
+  # Code from module unictype/combining-class-longname-tests:
+  # Code from module unictype/combining-class-name:
+  # Code from module unictype/combining-class-name-tests:
   # Code from module unictype/combining-class-tests:
   # Code from module unictype/ctype-alnum:
   # Code from module unictype/ctype-alnum-tests:
@@ -5826,6 +7456,22 @@ fi
   # Code from module unictype/decimal-digit-tests:
   # Code from module unictype/digit:
   # Code from module unictype/digit-tests:
+  # Code from module unictype/joininggroup-all:
+  # Code from module unictype/joininggroup-byname:
+  # Code from module unictype/joininggroup-byname-tests:
+  # Code from module unictype/joininggroup-name:
+  # Code from module unictype/joininggroup-name-tests:
+  # Code from module unictype/joininggroup-of:
+  # Code from module unictype/joininggroup-of-tests:
+  # Code from module unictype/joiningtype-all:
+  # Code from module unictype/joiningtype-byname:
+  # Code from module unictype/joiningtype-byname-tests:
+  # Code from module unictype/joiningtype-longname:
+  # Code from module unictype/joiningtype-longname-tests:
+  # Code from module unictype/joiningtype-name:
+  # Code from module unictype/joiningtype-name-tests:
+  # Code from module unictype/joiningtype-of:
+  # Code from module unictype/joiningtype-of-tests:
   # Code from module unictype/mirror:
   # Code from module unictype/mirror-tests:
   # Code from module unictype/numeric:
@@ -5871,6 +7517,20 @@ fi
   # Code from module unictype/property-bidi-whitespace-tests:
   # Code from module unictype/property-byname:
   # Code from module unictype/property-byname-tests:
+  # Code from module unictype/property-case-ignorable:
+  # Code from module unictype/property-case-ignorable-tests:
+  # Code from module unictype/property-cased:
+  # Code from module unictype/property-cased-tests:
+  # Code from module unictype/property-changes-when-casefolded:
+  # Code from module unictype/property-changes-when-casefolded-tests:
+  # Code from module unictype/property-changes-when-casemapped:
+  # Code from module unictype/property-changes-when-casemapped-tests:
+  # Code from module unictype/property-changes-when-lowercased:
+  # Code from module unictype/property-changes-when-lowercased-tests:
+  # Code from module unictype/property-changes-when-titlecased:
+  # Code from module unictype/property-changes-when-titlecased-tests:
+  # Code from module unictype/property-changes-when-uppercased:
+  # Code from module unictype/property-changes-when-uppercased-tests:
   # Code from module unictype/property-combining:
   # Code from module unictype/property-combining-tests:
   # Code from module unictype/property-composite:
@@ -6004,6 +7664,31 @@ fi
   # Code from module unictype/syntax-java-ident-tests:
   # Code from module unictype/syntax-java-whitespace:
   # Code from module unictype/syntax-java-whitespace-tests:
+  # Code from module unigbrk/base:
+  # Code from module unigbrk/u16-grapheme-breaks:
+  # Code from module unigbrk/u16-grapheme-breaks-tests:
+  # Code from module unigbrk/u16-grapheme-next:
+  # Code from module unigbrk/u16-grapheme-next-tests:
+  # Code from module unigbrk/u16-grapheme-prev:
+  # Code from module unigbrk/u16-grapheme-prev-tests:
+  # Code from module unigbrk/u32-grapheme-breaks:
+  # Code from module unigbrk/u32-grapheme-breaks-tests:
+  # Code from module unigbrk/u32-grapheme-next:
+  # Code from module unigbrk/u32-grapheme-next-tests:
+  # Code from module unigbrk/u32-grapheme-prev:
+  # Code from module unigbrk/u32-grapheme-prev-tests:
+  # Code from module unigbrk/u8-grapheme-breaks:
+  # Code from module unigbrk/u8-grapheme-breaks-tests:
+  # Code from module unigbrk/u8-grapheme-next:
+  # Code from module unigbrk/u8-grapheme-next-tests:
+  # Code from module unigbrk/u8-grapheme-prev:
+  # Code from module unigbrk/u8-grapheme-prev-tests:
+  # Code from module unigbrk/uc-gbrk-prop:
+  # Code from module unigbrk/uc-gbrk-prop-tests:
+  # Code from module unigbrk/uc-is-grapheme-break:
+  # Code from module unigbrk/uc-is-grapheme-break-tests:
+  # Code from module unigbrk/ulc-grapheme-breaks:
+  # Code from module unigbrk/ulc-grapheme-breaks-tests:
   # Code from module unilbrk/base:
   # Code from module unilbrk/tables:
   # Code from module unilbrk/u16-possible-linebreaks:
@@ -6193,6 +7878,7 @@ fi
   # Code from module unistr/u16-strcat:
   # Code from module unistr/u16-strcat-tests:
   # Code from module unistr/u16-strchr:
+  # Code from module unistr/u16-strchr-tests:
   # Code from module unistr/u16-strcmp:
   # Code from module unistr/u16-strcmp-tests:
   # Code from module unistr/u16-strcoll:
@@ -6220,6 +7906,7 @@ fi
   # Code from module unistr/u16-strrchr:
   # Code from module unistr/u16-strspn:
   # Code from module unistr/u16-strstr:
+  # Code from module unistr/u16-strstr-tests:
   # Code from module unistr/u16-strtok:
   # Code from module unistr/u16-to-u32:
   # Code from module unistr/u16-to-u32-tests:
@@ -6266,6 +7953,7 @@ fi
   # Code from module unistr/u32-strcat:
   # Code from module unistr/u32-strcat-tests:
   # Code from module unistr/u32-strchr:
+  # Code from module unistr/u32-strchr-tests:
   # Code from module unistr/u32-strcmp:
   # Code from module unistr/u32-strcmp-tests:
   # Code from module unistr/u32-strcoll:
@@ -6293,6 +7981,7 @@ fi
   # Code from module unistr/u32-strrchr:
   # Code from module unistr/u32-strspn:
   # Code from module unistr/u32-strstr:
+  # Code from module unistr/u32-strstr-tests:
   # Code from module unistr/u32-strtok:
   # Code from module unistr/u32-to-u16:
   # Code from module unistr/u32-to-u16-tests:
@@ -6339,6 +8028,7 @@ fi
   # Code from module unistr/u8-strcat:
   # Code from module unistr/u8-strcat-tests:
   # Code from module unistr/u8-strchr:
+  # Code from module unistr/u8-strchr-tests:
   # Code from module unistr/u8-strcmp:
   # Code from module unistr/u8-strcmp-tests:
   # Code from module unistr/u8-strcoll:
@@ -6366,6 +8056,7 @@ fi
   # Code from module unistr/u8-strrchr:
   # Code from module unistr/u8-strspn:
   # Code from module unistr/u8-strstr:
+  # Code from module unistr/u8-strstr-tests:
   # Code from module unistr/u8-strtok:
   # Code from module unistr/u8-to-u16:
   # Code from module unistr/u8-to-u16-tests:
@@ -6402,19 +8093,22 @@ fi
   # Code from module uniwidth/width-tests:
   # Code from module unsetenv:
   # Code from module unsetenv-tests:
-  # Code from module unused-parameter:
   # Code from module verify:
-  # Code from module warn-on-use:
+  # Code from module verify-tests:
   # Code from module wchar:
   # Code from module wchar-tests:
+  # Code from module wcrtomb:
+  # Code from module wcrtomb-tests:
   # Code from module wctob:
-  # Code from module wctype:
-  # Code from module wctype-tests:
+  # Code from module wctomb:
+  # Code from module wctype-h:
+  # Code from module wctype-h-tests:
   # Code from module wcwidth:
   # Code from module wcwidth-tests:
   # Code from module xalloc:
   # Code from module xalloc-die:
   # Code from module xalloc-die-tests:
+  # Code from module xalloc-oversized:
   # Code from module xsize:
   # Code from module yield:
 
@@ -6430,7 +8124,7 @@ fi
     mingw* | cygwin*)
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for auto-import of symbols" >&5
 $as_echo_n "checking for auto-import of symbols... " >&6; }
-      if test "${gl_cv_ld_autoimport+set}" = set; then :
+      if ${gl_cv_ld_autoimport+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6474,8 +8168,8 @@ esac
 
 
 
-macro_version='2.2.6'
-macro_revision='1.3012'
+macro_version='2.4.2'
+macro_revision='1.3337'
 
 
 
@@ -6491,9 +8185,78 @@ macro_revision='1.3012'
 
 ltmain="$ac_aux_dir/ltmain.sh"
 
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO ""
+}
+
+case "$ECHO" in
+  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
+if ${ac_cv_path_SED+:} false; then :
   $as_echo_n "(cached) " >&6
 else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -6513,7 +8276,7 @@ do
     for ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+      as_fn_executable_p "$ac_path_SED" || continue
 # Check for GNU ac_path_SED and select it if it is found.
   # Check for GNU $ac_path_SED
 case `"$ac_path_SED" --version 2>&1` in
@@ -6548,7 +8311,7 @@ esac
   done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_SED"; then
-    as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
   fi
 else
   ac_cv_path_SED=$SED
@@ -6575,7 +8338,7 @@ Xsed="$SED -e 1s/^X//"
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
 $as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then :
+if ${ac_cv_path_FGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
@@ -6592,7 +8355,7 @@ do
     for ac_prog in fgrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+      as_fn_executable_p "$ac_path_FGREP" || continue
 # Check for GNU ac_path_FGREP and select it if it is found.
   # Check for GNU $ac_path_FGREP
 case `"$ac_path_FGREP" --version 2>&1` in
@@ -6627,7 +8390,7 @@ esac
   done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_FGREP"; then
-    as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_FGREP=$FGREP
@@ -6706,7 +8469,7 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then :
+if ${lt_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -6743,10 +8506,10 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+if ${lt_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -6773,7 +8536,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then :
+if ${lt_cv_path_NM+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NM"; then
@@ -6839,7 +8602,7 @@ else
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
+if ${ac_cv_prog_DUMPBIN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DUMPBIN"; then
@@ -6851,7 +8614,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6883,7 +8646,7 @@ do
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DUMPBIN"; then
@@ -6895,7 +8658,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6955,18 +8718,18 @@ test -z "$NM" && NM=nm
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then :
+if ${lt_cv_nm_interface+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:6963: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:6966: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:6969: output\"" >&5)
+  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -6990,7 +8753,7 @@ fi
 # find the maximum length of command line arguments
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
+if ${lt_cv_sys_max_cmd_len+:} false; then :
   $as_echo_n "(cached) " >&6
 else
     i=0
@@ -7023,6 +8786,11 @@ else
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -7048,6 +8816,11 @@ else
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -7087,8 +8860,8 @@ else
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-                = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
              test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
@@ -7130,8 +8903,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
@@ -7180,9 +8953,83 @@ esac
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
 $as_echo_n "checking for $LD option to reload object files... " >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then :
+if ${lt_cv_ld_reload_flag+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_reload_flag='-r'
@@ -7196,6 +9043,11 @@ case $reload_flag in
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -7218,7 +9070,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -7230,7 +9082,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7258,7 +9110,7 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
 set dummy objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -7270,7 +9122,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7314,7 +9166,7 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then :
+if ${lt_cv_deplibs_check_method+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_file_magic_cmd='$MAGIC_CMD'
@@ -7356,16 +9208,18 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
 
-cegcc)
+cegcc*)
   # use the weaker test based on 'objdump'. See mingw*.
   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
   lt_cv_file_magic_cmd='$OBJDUMP -f'
@@ -7395,6 +9249,10 @@ gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
   case $host_cpu in
@@ -7403,11 +9261,11 @@ hpux10.20* | hpux11*)
     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
     ;;
   hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
     ;;
   *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
     lt_cv_file_magic_test_file=/usr/lib/libc.sl
     ;;
   esac
@@ -7428,8 +9286,8 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu)
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -7510,6 +9368,21 @@ esac
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
 $as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -7525,12 +9398,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 
 
 
+
+
+
+
+
+
+
+
+
+
 if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+  ac_ct_DLLTOOL=$DLLTOOL
+  # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DLLTOOL"; then
+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DLLTOOL" = x; then
+    DLLTOOL="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DLLTOOL=$ac_ct_DLLTOOL
+  fi
+else
+  DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in ar
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AR"; then
@@ -7542,8 +9565,8 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -7563,14 +9586,18 @@ $as_echo "no" >&6; }
 fi
 
 
+    test -n "$AR" && break
+  done
 fi
-if test -z "$ac_cv_prog_AR"; then
+if test -z "$AR"; then
   ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
+  for ac_prog in ar
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
@@ -7582,8 +9609,8 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="ar"
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -7602,6 +9629,10 @@ else
 $as_echo "no" >&6; }
 fi
 
+
+  test -n "$ac_ct_AR" && break
+done
+
   if test "x$ac_ct_AR" = x; then
     AR="false"
   else
@@ -7613,12 +9644,13 @@ ac_tool_warned=yes ;;
 esac
     AR=$ac_ct_AR
   fi
-else
-  AR="$ac_cv_prog_AR"
 fi
 
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
 
 
 
@@ -7627,6 +9659,61 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ar_at_file=no
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
 
 
 
@@ -7635,7 +9722,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -7647,7 +9734,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7675,7 +9762,7 @@ if test -z "$ac_cv_prog_STRIP"; then
 set dummy strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -7687,7 +9774,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_STRIP="strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7734,7 +9821,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -7746,7 +9833,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7774,7 +9861,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
 set dummy ranlib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -7786,7 +9873,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7836,15 +9923,27 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
 
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
 
 
 
@@ -7891,7 +9990,7 @@ compiler=$CC
 # Check for command to grab the raw symbol name followed by C symbol from nm.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -7952,8 +10051,8 @@ esac
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -7977,6 +10076,7 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -7989,6 +10089,7 @@ for ac_symprfx in "" "_"; do
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[     ]\($symcode$symcode*\)[         ][      ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -8014,8 +10115,8 @@ _LT_EOF
   test $ac_status = 0; }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s "$nlist"; then
@@ -8030,6 +10131,18 @@ _LT_EOF
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -8041,7 +10154,7 @@ _LT_EOF
          cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -8067,8 +10180,8 @@ static const void *lt_preloaded_setup() {
 _LT_EOF
          # Now try linking the two files.
          mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
+         lt_globsym_save_LIBS=$LIBS
+         lt_globsym_save_CFLAGS=$CFLAGS
          LIBS="conftstm.$ac_objext"
          CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
          if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
@@ -8078,8 +10191,8 @@ _LT_EOF
   test $ac_status = 0; } && test -s conftest${ac_exeext}; then
            pipe_works=yes
          fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
+         LIBS=$lt_globsym_save_LIBS
+         CFLAGS=$lt_globsym_save_CFLAGS
        else
          echo "cannot find nm_test_func in $nlist" >&5
        fi
@@ -8116,6 +10229,15 @@ else
 $as_echo "ok" >&6; }
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
+
+
 
 
 
@@ -8137,6 +10259,46 @@ fi
 
 
 
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+  withval=$with_sysroot;
+else
+  with_sysroot=no
+fi
+
+
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
+$as_echo "${with_sysroot}" >&6; }
+   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+   ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
 # Check whether --enable-libtool-lock was given.
 if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
@@ -8168,7 +10330,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 8171 "configure"' > conftest.$ac_ext
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -8262,7 +10424,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   CFLAGS="$CFLAGS -belf"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then :
+if ${lt_cv_cc_needs_belf+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_ext=c
@@ -8303,7 +10465,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
@@ -8314,7 +10476,20 @@ sparc*-*solaris*)
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
          LD="${LD-ld} -64"
@@ -8330,6 +10505,123 @@ esac
 
 need_locks="$enable_libtool_lock"
 
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MANIFEST_TOOL"; then
+  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+  # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_MANIFEST_TOOL"; then
+  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_MANIFEST_TOOL" = x; then
+    MANIFEST_TOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+  fi
+else
+  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&5
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+
+
+
+
+
 
   case $host_os in
     rhapsody* | darwin*)
@@ -8338,7 +10630,7 @@ need_locks="$enable_libtool_lock"
 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DSYMUTIL"; then
@@ -8350,7 +10642,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8378,7 +10670,7 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then
 set dummy dsymutil; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DSYMUTIL"; then
@@ -8390,7 +10682,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8430,7 +10722,7 @@ fi
 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then :
+if ${ac_cv_prog_NMEDIT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NMEDIT"; then
@@ -8442,7 +10734,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8470,7 +10762,7 @@ if test -z "$ac_cv_prog_NMEDIT"; then
 set dummy nmedit; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_NMEDIT"; then
@@ -8482,7 +10774,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_NMEDIT="nmedit"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8522,7 +10814,7 @@ fi
 set dummy ${ac_tool_prefix}lipo; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then :
+if ${ac_cv_prog_LIPO+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$LIPO"; then
@@ -8534,7 +10826,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8562,7 +10854,7 @@ if test -z "$ac_cv_prog_LIPO"; then
 set dummy lipo; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_LIPO"; then
@@ -8574,7 +10866,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_LIPO="lipo"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8614,7 +10906,7 @@ fi
 set dummy ${ac_tool_prefix}otool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then :
+if ${ac_cv_prog_OTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL"; then
@@ -8626,7 +10918,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8654,7 +10946,7 @@ if test -z "$ac_cv_prog_OTOOL"; then
 set dummy otool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL"; then
@@ -8666,7 +10958,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OTOOL="otool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8706,7 +10998,7 @@ fi
 set dummy ${ac_tool_prefix}otool64; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then :
+if ${ac_cv_prog_OTOOL64+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL64"; then
@@ -8718,7 +11010,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8746,7 +11038,7 @@ if test -z "$ac_cv_prog_OTOOL64"; then
 set dummy otool64; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL64"; then
@@ -8758,7 +11050,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OTOOL64="otool64"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8821,7 +11113,7 @@ fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
 $as_echo_n "checking for -single_module linker flag... " >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
+if ${lt_cv_apple_cc_single_mod+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_apple_cc_single_mod=no
@@ -8837,7 +11129,13 @@ else
        $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
          -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-       if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+       # If there is a non-empty error log, and "single_module"
+       # appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+         cat conftest.err >&5
+       # Otherwise, if the output was created with a 0 exit code from
+       # the compiler, it worked.
+       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&5
@@ -8848,9 +11146,10 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_exported_symbols_list=no
@@ -8880,6 +11179,41 @@ rm -f core conftest.err conftest.$ac_objext \
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+      echo "$AR cru libconftest.a conftest.o" >&5
+      $AR cru libconftest.a conftest.o 2>&5
+      echo "$RANLIB libconftest.a" >&5
+      $RANLIB libconftest.a 2>&5
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+       cat conftest.err >&5
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+       lt_cv_ld_force_load=yes
+      else
+       cat conftest.err >&5
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -8907,7 +11241,7 @@ $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -8919,7 +11253,7 @@ for ac_header in dlfcn.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
 "
-if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_DLFCN_H 1
 _ACEOF
@@ -8930,17 +11264,19 @@ done
 
 
 
+
+
 # Set options
 enable_win32_dll=yes
 
 case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
 set dummy ${ac_tool_prefix}as; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AS+set}" = set; then :
+if ${ac_cv_prog_AS+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AS"; then
@@ -8952,7 +11288,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_AS="${ac_tool_prefix}as"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8980,7 +11316,7 @@ if test -z "$ac_cv_prog_AS"; then
 set dummy as; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AS+set}" = set; then :
+if ${ac_cv_prog_ac_ct_AS+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AS"; then
@@ -8992,7 +11328,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_AS="as"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9032,7 +11368,7 @@ fi
 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
+if ${ac_cv_prog_DLLTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DLLTOOL"; then
@@ -9044,7 +11380,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9072,7 +11408,7 @@ if test -z "$ac_cv_prog_DLLTOOL"; then
 set dummy dlltool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DLLTOOL"; then
@@ -9084,7 +11420,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DLLTOOL="dlltool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9124,7 +11460,7 @@ fi
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -9136,7 +11472,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9164,7 +11500,7 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
 set dummy objdump; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -9176,7 +11512,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9303,7 +11639,22 @@ fi
 
 # Check whether --with-pic was given.
 if test "${with_pic+set}" = set; then :
-  withval=$with_pic; pic_mode="$withval"
+  withval=$with_pic; lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+       IFS="$lt_save_ifs"
+       if test "X$lt_pkg" = "X$lt_p"; then
+         pic_mode=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
 else
   pic_mode=default
 fi
@@ -9380,6 +11731,11 @@ LIBTOOL="${CONFIG_SHELL-$SHELL} "'$(top_builddir)/libtool'
 
 
 
+
+
+
+
+
 test -z "$LN_S" && LN_S="ln -s"
 
 
@@ -9401,7 +11757,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
 $as_echo_n "checking for objdir... " >&6; }
-if test "${lt_cv_objdir+set}" = set; then :
+if ${lt_cv_objdir+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   rm -f .libs 2>/dev/null
@@ -9429,19 +11785,6 @@ _ACEOF
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
 case $host_os in
 aix3*)
   # AIX sometimes has problems with the GCC collect2 program.  For some
@@ -9454,23 +11797,6 @@ aix3*)
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
@@ -9499,7 +11825,7 @@ for cc_temp in $compiler""; do
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 
 
 # Only perform the check for file, if the check method requires it
@@ -9509,7 +11835,7 @@ file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -9575,7 +11901,7 @@ if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
 $as_echo_n "checking for file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -9708,11 +12034,16 @@ if test -n "$compiler"; then
 lt_prog_compiler_no_builtin_flag=
 
 if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+  case $cc_basename in
+  nvcc*)
+    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+  *)
+    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+  esac
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
@@ -9728,15 +12059,15 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9731: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9735: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_rtti_exceptions=yes
@@ -9765,8 +12096,6 @@ fi
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl='-Wl,'
@@ -9814,6 +12143,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
@@ -9856,6 +12191,15 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      lt_prog_compiler_wl='-Xlinker '
+      if test -n "$lt_prog_compiler_pic"; then
+        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+      fi
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
@@ -9897,7 +12241,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -9918,7 +12262,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
        lt_prog_compiler_pic='--shared'
        lt_prog_compiler_static='--static'
        ;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+       # NAG Fortran compiler
+       lt_prog_compiler_wl='-Wl,-Wl,,'
+       lt_prog_compiler_pic='-PIC'
+       lt_prog_compiler_static='-Bstatic'
+       ;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
        lt_prog_compiler_wl='-Wl,'
@@ -9930,25 +12280,40 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
         # All Alpha code is PIC.
         lt_prog_compiler_static='-non_shared'
         ;;
-      xl*)
-       # IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+       # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
        lt_prog_compiler_wl='-Wl,'
        lt_prog_compiler_pic='-qpic'
        lt_prog_compiler_static='-qstaticlink'
        ;;
       *)
        case `$CC -V 2>&1 | sed 5q` in
+       *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+         # Sun Fortran 8.3 passes all unrecognized flags to the linker
+         lt_prog_compiler_pic='-KPIC'
+         lt_prog_compiler_static='-Bstatic'
+         lt_prog_compiler_wl=''
+         ;;
+       *Sun\ F* | *Sun*Fortran*)
+         lt_prog_compiler_pic='-KPIC'
+         lt_prog_compiler_static='-Bstatic'
+         lt_prog_compiler_wl='-Qoption ld '
+         ;;
        *Sun\ C*)
          # Sun C 5.9
          lt_prog_compiler_pic='-KPIC'
          lt_prog_compiler_static='-Bstatic'
          lt_prog_compiler_wl='-Wl,'
          ;;
-       *Sun\ F*)
-         # Sun Fortran 8.3 passes all unrecognized flags to the linker
-         lt_prog_compiler_pic='-KPIC'
+        *Intel*\ [CF]*Compiler*)
+         lt_prog_compiler_wl='-Wl,'
+         lt_prog_compiler_pic='-fPIC'
+         lt_prog_compiler_static='-static'
+         ;;
+       *Portland\ Group*)
+         lt_prog_compiler_wl='-Wl,'
+         lt_prog_compiler_pic='-fpic'
          lt_prog_compiler_static='-Bstatic'
-         lt_prog_compiler_wl=''
          ;;
        esac
        ;;
@@ -9980,7 +12345,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
       lt_prog_compiler_pic='-KPIC'
       lt_prog_compiler_static='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
        lt_prog_compiler_wl='-Qoption ld ';;
       *)
        lt_prog_compiler_wl='-Wl,';;
@@ -10037,13 +12402,17 @@ case $host_os in
     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
-
-
-
-
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
 
 #
 # Check to make sure the PIC flag actually works.
@@ -10051,7 +12420,7 @@ $as_echo "$lt_prog_compiler_pic" >&6; }
 if test -n "$lt_prog_compiler_pic"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_pic_works=no
@@ -10067,15 +12436,15 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10070: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:10074: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_pic_works=yes
 
 
 
+
+
+
+
+
 #
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
+if ${lt_cv_prog_compiler_static_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works=no
@@ -10123,7 +12497,7 @@ else
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          lt_cv_prog_compiler_static_works=yes
@@ -10153,7 +12527,7 @@ fi
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -10172,16 +12546,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10175: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:10179: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
@@ -10208,7 +12582,7 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+if ${lt_cv_prog_compiler_c_o+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -10227,16 +12601,16 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10230: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:10234: \$? = $ac_status" >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
@@ -10302,7 +12676,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   hardcode_direct=no
   hardcode_direct_absolute=no
   hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
   hardcode_libdir_separator=
   hardcode_minus_L=no
   hardcode_shlibpath_var=unsupported
@@ -10349,7 +12722,33 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   esac
 
   ld_shlibs=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+       # The AIX port of GNU ld has always aspired to compatibility
+       # with the native linker.  However, as the warning in the GNU ld
+       # block says, versions before 2.19.5* couldn't really create working
+       # shared libraries, regardless of the interface used.
+       case `$LD -v 2>&1` in
+         *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+         *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+         *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+         *)
+           lt_use_gnu_ld_interface=yes
+           ;;
+       esac
+       ;;
+      *)
+       lt_use_gnu_ld_interface=yes
+       ;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
@@ -10367,6 +12766,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
     fi
     supports_anon_versioning=no
     case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
       *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
@@ -10382,11 +12782,12 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
        ld_shlibs=no
        cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
@@ -10422,10 +12823,12 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
       # as there is no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
+      export_dynamic_flag_spec='${wl}--export-all-symbols'
       allow_undefined_flag=unsupported
       always_export_symbols=no
       enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -10443,6 +12846,11 @@ _LT_EOF
       fi
       ;;
 
+    haiku*)
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      link_all_deplibs=yes
+      ;;
+
     interix[3-9]*)
       hardcode_direct=no
       hardcode_shlibpath_var=no
@@ -10458,7 +12866,7 @@ _LT_EOF
       archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
-    gnu* | linux* | tpf* | k*bsd*-gnu)
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
       if test "$host_os" = linux-dietlibc; then
        case $cc_basename in
@@ -10468,15 +12876,16 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
         && test "$tmp_diet" = no
       then
-       tmp_addflag=
+       tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag'
          ;;
-       pgf77* | pgf90* | pgf95*)       # Portland Group f77 and f90 compilers
-         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+       pgf77* | pgf90* | pgf95* | pgfortran*)
+                                       # Portland Group f77 and f90 compilers
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag -Mnomain' ;;
        ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
          tmp_addflag=' -i_dynamic' ;;
@@ -10487,13 +12896,17 @@ _LT_EOF
        lf95*)                          # Lahey Fortran 8.1
          whole_archive_flag_spec=
          tmp_sharedflag='--shared' ;;
-       xl[cC]*)                        # IBM XL C 8.0 on PPC (deal with xlf below)
+       xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
          tmp_sharedflag='-qmkshrobj'
          tmp_addflag= ;;
+       nvcc*)  # Cuda Compiler Driver 2.2
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         compiler_needs_object=yes
+         ;;
        esac
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)                       # Sun C 5.9
-         whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          compiler_needs_object=yes
          tmp_sharedflag='-G' ;;
        *Sun\ F*)                       # Sun Fortran 8.3
@@ -10509,17 +12922,16 @@ _LT_EOF
         fi
 
        case $cc_basename in
-       xlf*)
+       xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-         hardcode_libdir_flag_spec=
-         hardcode_libdir_flag_spec_ld='-rpath $libdir'
-         archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+         hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+         archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
          if test "x$supports_anon_versioning" = xyes; then
            archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
              echo "local: *; };" >> $output_objdir/$libname.ver~
-             $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
          fi
          ;;
        esac
@@ -10533,8 +12945,8 @@ _LT_EOF
        archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -10552,8 +12964,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
@@ -10599,8 +13011,8 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        ld_shlibs=no
       fi
@@ -10640,8 +13052,10 @@ _LT_EOF
       else
        # If we're using GNU nm, then we don't want the "-C" option.
        # -C means demangle to AIX nm, but means don't demangle with GNU nm
+       # Also, AIX nm treats weak defined symbols like other global
+       # defined symbols, whereas GNU nm marks them as "W".
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        else
          export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        fi
@@ -10728,7 +13142,13 @@ _LT_EOF
        allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10741,25 +13161,32 @@ main ()
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
        if test "$host_cpu" = ia64; then
          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
@@ -10768,7 +13195,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10781,30 +13214,42 @@ main ()
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
 
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
          # -berok will link without error, but may produce a broken library.
          no_undefined_flag=' ${wl}-bernotok'
          allow_undefined_flag=' ${wl}-berok'
-         # Exported symbols can be pulled into shared objects from archives
-         whole_archive_flag_spec='$convenience'
+         if test "$with_gnu_ld" = yes; then
+           # We only use this code for GNU lds that support --whole-archive.
+           whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+         else
+           # Exported symbols can be pulled into shared objects from archives
+           whole_archive_flag_spec='$convenience'
+         fi
          archive_cmds_need_lc=yes
          # This is similar to how AIX traditionally builds its shared libraries.
          archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
@@ -10836,20 +13281,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_from_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
+      case $cc_basename in
+      cl*)
+       # Native MSVC
+       hardcode_libdir_flag_spec=' '
+       allow_undefined_flag=unsupported
+       always_export_symbols=yes
+       file_list_spec='@'
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+         else
+           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+         fi~
+         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+         linknames='
+       # The linker will not automatically build a static lib if we build a DLL.
+       # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+       enable_shared_with_static_runtimes=yes
+       exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+       export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+       # Don't use ranlib
+       old_postinstall_cmds='chmod 644 $oldlib'
+       postlink_cmds='lt_outputfile="@OUTPUT@"~
+         lt_tool_outputfile="@TOOL_OUTPUT@"~
+         case $lt_outputfile in
+           *.exe|*.EXE) ;;
+           *)
+             lt_outputfile="$lt_outputfile.exe"
+             lt_tool_outputfile="$lt_tool_outputfile.exe"
+             ;;
+         esac~
+         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+           $RM "$lt_outputfile.manifest";
+         fi'
+       ;;
+      *)
+       # Assume MSVC wrapper
+       hardcode_libdir_flag_spec=' '
+       allow_undefined_flag=unsupported
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+       # The linker will automatically build a .lib file if we build a DLL.
+       old_archive_from_new_cmds='true'
+       # FIXME: Should let the user specify the lib program.
+       old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       enable_shared_with_static_runtimes=yes
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -10859,7 +13348,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
   hardcode_direct=no
   hardcode_automatic=yes
   hardcode_shlibpath_var=unsupported
-  whole_archive_flag_spec=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+  else
+    whole_archive_flag_spec=''
+  fi
   link_all_deplibs=yes
   allow_undefined_flag="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -10867,7 +13361,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -10885,10 +13379,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       hardcode_shlibpath_var=no
       ;;
 
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -10901,7 +13391,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       hardcode_direct=yes
       hardcode_minus_L=yes
@@ -10910,7 +13400,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
       hardcode_shlibpath_var=no
@@ -10918,7 +13408,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     hpux9*)
       if test "$GCC" = yes; then
-       archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
        archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -10933,14 +13423,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
       if test "$with_gnu_ld" = no; then
        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-       hardcode_libdir_flag_spec_ld='+b $libdir'
        hardcode_libdir_separator=:
        hardcode_direct=yes
        hardcode_direct_absolute=yes
@@ -10952,16 +13441,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       ;;
 
     hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
        case $host_cpu in
        hppa*64*)
          archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
@@ -10973,7 +13462,46 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
          archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+
+         # Older versions of the 11.00 compiler do not understand -b yet
+         # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler__b=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS -b"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler__b=yes
+       fi
+     else
+       lt_cv_prog_compiler__b=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test x"$lt_cv_prog_compiler__b" = xyes; then
+    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
          ;;
        esac
       fi
@@ -11001,26 +13529,39 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+       # This should be the same for all languages, so no per-tag cache variable.
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  save_LDFLAGS="$LDFLAGS"
+          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-int foo(void) {}
+int foo (void) { return 0; }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-
+  lt_cv_irix_exported_symbol=yes
+else
+  lt_cv_irix_exported_symbol=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
+           LDFLAGS="$save_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+       if test "$lt_cv_irix_exported_symbol" = yes; then
+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       fi
       else
-       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
       fi
       archive_cmds_need_lc='no'
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -11082,17 +13623,17 @@ rm -f core conftest.err conftest.$ac_objext \
       hardcode_libdir_flag_spec='-L$libdir'
       hardcode_minus_L=yes
       allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
       old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
       ;;
 
     osf3*)
       if test "$GCC" = yes; then
        allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
       else
        allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
       fi
       archive_cmds_need_lc='no'
       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
@@ -11102,13 +13643,13 @@ rm -f core conftest.err conftest.$ac_objext \
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
        allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
       else
        allow_undefined_flag=' -expect_unresolved \*'
-       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
        archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
 
        # Both c and cxx compiler support -rpath directly
        hardcode_libdir_flag_spec='-rpath $libdir'
@@ -11121,9 +13662,9 @@ rm -f core conftest.err conftest.$ac_objext \
       no_undefined_flag=' -z defs'
       if test "$GCC" = yes; then
        wlarc='${wl}'
-       archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
        archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
@@ -11311,44 +13852,50 @@ x|xyes)
       # to ld, don't add -lc before -lgcc.
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl
-       pic_flag=$lt_prog_compiler_pic
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag
-        allow_undefined_flag=
-        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+         soname=conftest
+         lib=conftest
+         libobjs=conftest.$ac_objext
+         deplibs=
+         wl=$lt_prog_compiler_wl
+         pic_flag=$lt_prog_compiler_pic
+         compiler_flags=-v
+         linker_flags=-v
+         verstring=
+         output_objdir=.
+         libname=conftest
+         lt_save_allow_undefined_flag=$allow_undefined_flag
+         allow_undefined_flag=
+         if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
-        then
-         archive_cmds_need_lc=no
-        else
-         archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
-$as_echo "$archive_cmds_need_lc" >&6; }
+         then
+           lt_cv_archive_cmds_need_lc=no
+         else
+           lt_cv_archive_cmds_need_lc=yes
+         fi
+         allow_undefined_flag=$lt_save_allow_undefined_flag
+       else
+         cat conftest.err 1>&5
+       fi
+       $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
       ;;
     esac
   fi
@@ -11506,11 +14053,6 @@ esac
 
 
 
-
-
-
-
-
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
@@ -11519,16 +14061,23 @@ if test "$GCC" = yes; then
     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
     *) lt_awk_arg="/^libraries:/" ;;
   esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
   # Ok, now we have the path, separated by spaces, we can step through it
   # and add multilib dir if necessary.
   lt_tmp_lt_search_path_spec=
@@ -11541,7 +14090,7 @@ if test "$GCC" = yes; then
        lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
 BEGIN {RS=" "; FS="/|\n";} {
   lt_foo="";
   lt_count=0;
@@ -11561,7 +14110,13 @@ BEGIN {RS=" "; FS="/|\n";} {
   if (lt_foo != "") { lt_freq[lt_foo]++; }
   if (lt_freq[lt_foo] == 1) { print lt_foo; }
 }'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi
@@ -11587,7 +14142,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -11596,7 +14151,7 @@ aix3*)
   ;;
 
 aix[4-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -11649,7 +14204,7 @@ amigaos*)
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -11661,7 +14216,7 @@ beos*)
   ;;
 
 bsdi[45]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -11680,8 +14235,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -11702,36 +14258,83 @@ cygwin* | mingw* | pw32* | cegcc*)
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -11752,7 +14355,7 @@ darwin* | rhapsody*)
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -11760,10 +14363,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -11771,7 +14370,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[123]*) objformat=aout ;;
+    freebsd[23].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -11789,7 +14388,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[01]* | freebsdelf3.[01]*)
@@ -11809,12 +14408,26 @@ freebsd* | dragonfly*)
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
 
@@ -11860,12 +14473,14 @@ hpux9* | hpux10* | hpux11*)
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[3-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -11881,7 +14496,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
        if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
+               version_type=linux # correct to gnu/linux during the next big refactor
        else
                version_type=irix
        fi ;;
@@ -11918,9 +14533,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu)
-  version_type=linux
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -11928,12 +14543,17 @@ linux* | k*bsd*-gnu)
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-       LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+        LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -11946,13 +14566,17 @@ main ()
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
   if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  shlibpath_overrides_runpath=yes
+  lt_cv_shlibpath_overrides_runpath=yes
 fi
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -11961,7 +14585,7 @@ rm -f core conftest.err conftest.$ac_objext \
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[      ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[      ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -11993,7 +14617,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -12062,7 +14686,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -12087,7 +14711,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -12111,7 +14735,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -12142,7 +14766,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -12152,7 +14776,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
 
 
 
+
+
+
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
@@ -12336,7 +14965,7 @@ else
   # if libdl is installed we need to link against it
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+if ${ac_cv_lib_dl_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -12370,7 +14999,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
 
 
   *)
     ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = x""yes; then :
+if test "x$ac_cv_func_shl_load" = xyes; then :
   lt_cv_dlopen="shl_load"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
 $as_echo_n "checking for shl_load in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
+if ${ac_cv_lib_dld_shl_load+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -12423,16 +15052,16 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
   lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
   ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = x""yes; then :
+if test "x$ac_cv_func_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+if ${ac_cv_lib_dl_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -12466,12 +15095,12 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
+if ${ac_cv_lib_svld_dlopen+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -12505,12 +15134,12 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
 $as_echo_n "checking for dld_link in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
+if ${ac_cv_lib_dld_dld_link+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -12544,7 +15173,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
   lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
 
@@ -12585,7 +15214,7 @@ fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then :
+if ${lt_cv_dlopen_self+:} false; then :
   $as_echo_n "(cached) " >&6
 else
          if test "$cross_compiling" = yes; then :
@@ -12594,7 +15223,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12597 "configure"
+#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12635,7 +15264,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -12644,7 +15279,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
       /* dlclose (self); */
     }
   else
@@ -12681,7 +15320,7 @@ $as_echo "$lt_cv_dlopen_self" >&6; }
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then :
+if ${lt_cv_dlopen_self_static+:} false; then :
   $as_echo_n "(cached) " >&6
 else
          if test "$cross_compiling" = yes; then :
@@ -12690,7 +15329,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12693 "configure"
+#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12731,7 +15370,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -12740,7 +15385,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
       /* dlclose (self); */
     }
   else
@@ -12909,6 +15558,8 @@ CC="$lt_save_CC"
 
 
 
+
+
         ac_config_commands="$ac_config_commands libtool"
 
 
@@ -12923,7 +15574,7 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}windres; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RC+set}" = set; then :
+if ${ac_cv_prog_RC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RC"; then
@@ -12935,7 +15586,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_RC="${ac_tool_prefix}windres"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -12963,7 +15614,7 @@ if test -z "$ac_cv_prog_RC"; then
 set dummy windres; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RC"; then
@@ -12975,7 +15626,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_RC="windres"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -13059,9 +15710,11 @@ $RM -r conftest*
 
 # Allow CC to be a program name with arguments.
 lt_save_CC="$CC"
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=
 CC=${RC-"windres"}
+CFLAGS=
 compiler=$CC
 compiler_RC=$CC
 for cc_temp in $compiler""; do
@@ -13072,7 +15725,7 @@ for cc_temp in $compiler""; do
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 
 lt_cv_prog_compiler_c_o_RC=yes
 
@@ -13090,7 +15743,8 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 
 
 case "$host_os" in
 
 
 
+
           LIBC_FATAL_STDERR_=1
   export LIBC_FATAL_STDERR_
 
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
+
+fi
+
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
 $as_echo_n "checking for working alloca.h... " >&6; }
-if test "${ac_cv_working_alloca_h+set}" = set; then :
+if ${ac_cv_working_alloca_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13151,7 +15817,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
 $as_echo_n "checking for alloca... " >&6; }
-if test "${ac_cv_func_alloca_works+set}" = set; then :
+if ${ac_cv_func_alloca_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13170,7 +15836,7 @@ else
  #pragma alloca
 #   else
 #    ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
+void *alloca (size_t);
 #    endif
 #   endif
 #  endif
@@ -13218,7 +15884,7 @@ $as_echo "#define C_ALLOCA 1" >>confdefs.h
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-if test "${ac_cv_os_cray+set}" = set; then :
+if ${ac_cv_os_cray+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13245,8 +15911,7 @@ if test $ac_cv_os_cray = yes; then
   for ac_func in _getb67 GETB67 getb67; do
     as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
-   if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
 
 cat >>confdefs.h <<_ACEOF
 #define CRAY_STACKSEG_END $ac_func
@@ -13260,7 +15925,7 @@ fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
 $as_echo_n "checking stack direction for C alloca... " >&6; }
-if test "${ac_cv_c_stack_direction+set}" = set; then :
+if ${ac_cv_c_stack_direction+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then :
@@ -13270,23 +15935,20 @@ else
 /* end confdefs.h.  */
 $ac_includes_default
 int
-find_stack_direction ()
+find_stack_direction (int *addr, int depth)
 {
-  static char *addr = 0;
-  auto char dummy;
-  if (addr == 0)
-    {
-      addr = &dummy;
-      return find_stack_direction ();
-    }
-  else
-    return (&dummy > addr) ? 1 : -1;
+  int dir, dummy = 0;
+  if (! addr)
+    addr = &dummy;
+  *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+  dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+  return dir + dummy;
 }
 
 int
-main ()
+main (int argc, char **argv)
 {
-  return find_stack_direction () < 0;
+  return find_stack_direction (0, argc + !argv + 20) < 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
@@ -13312,7 +15974,7 @@ fi
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5
 $as_echo_n "checking whether the preprocessor supports include_next... " >&6; }
-if test "${gl_cv_have_include_next+set}" = set; then :
+if ${gl_cv_have_include_next+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   rm -rf conftestd1a conftestd1b conftestd2
@@ -13390,32 +16052,43 @@ $as_echo "$gl_cv_have_include_next" >&6; }
 
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5
+$as_echo_n "checking whether system header files limit the line length... " >&6; }
+if ${gl_cv_pragma_columns+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#ifdef __TANDEM
+choke me
+#endif
 
-
-
-  for ac_header in $ac_header_list
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-eval as_val=\$$as_ac_Header
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
-
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "choke me" >/dev/null 2>&1; then :
+  gl_cv_pragma_columns=yes
+else
+  gl_cv_pragma_columns=no
 fi
+rm -f conftest*
 
-done
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5
+$as_echo "$gl_cv_pragma_columns" >&6; }
+  if test $gl_cv_pragma_columns = yes; then
+    PRAGMA_COLUMNS="#pragma COLUMNS 10000"
+  else
+    PRAGMA_COLUMNS=
+  fi
 
 
 
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5
 $as_echo_n "checking for complete errno.h... " >&6; }
-if test "${gl_cv_header_errno_h_complete+set}" = set; then :
+if ${gl_cv_header_errno_h_complete+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -13423,6 +16096,9 @@ else
 /* end confdefs.h.  */
 
 #include <errno.h>
+#if !defined ETXTBSY
+booboo
+#endif
 #if !defined ENOMSG
 booboo
 #endif
@@ -13447,12 +16123,30 @@ booboo
 #if !defined ENOTSUP
 booboo
 #endif
+#if !defined ENETRESET
+booboo
+#endif
+#if !defined ECONNABORTED
+booboo
+#endif
 #if !defined ESTALE
 booboo
 #endif
+#if !defined EDQUOT
+booboo
+#endif
 #if !defined ECANCELED
 booboo
 #endif
+#if !defined EOWNERDEAD
+booboo
+#endif
+#if !defined ENOTRECOVERABLE
+booboo
+#endif
+#if !defined EILSEQ
+booboo
+#endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
@@ -13476,35 +16170,52 @@ $as_echo "$gl_cv_header_errno_h_complete" >&6; }
 
 
 
+
+
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_errno_h='<'errno.h'>'
      else
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <errno.h>" >&5
 $as_echo_n "checking absolute name of <errno.h>... " >&6; }
-if test "${gl_cv_next_errno_h+set}" = set; then :
+if ${gl_cv_next_errno_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-          if test $ac_cv_header_errno_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <errno.h>
-
 _ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/errno.h#{
-                 s#.*"\(.*/errno.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
-          else
-            gl_cv_next_errno_h='<'errno.h'>'
-          fi
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'errno.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_errno_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_errno_h
+           gl_cv_next_errno_h='"'$gl_header'"'
+
 
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5
@@ -13523,14 +16234,23 @@ $as_echo "$gl_cv_next_errno_h" >&6; }
 
 
 
+
     ERRNO_H='errno.h'
   fi
 
+   if test -n "$ERRNO_H"; then
+  GL_GENERATE_ERRNO_H_TRUE=
+  GL_GENERATE_ERRNO_H_FALSE='#'
+else
+  GL_GENERATE_ERRNO_H_TRUE='#'
+  GL_GENERATE_ERRNO_H_FALSE=
+fi
+
 
   if test -n "$ERRNO_H"; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5
 $as_echo_n "checking for EMULTIHOP value... " >&6; }
-if test "${gl_cv_header_errno_h_EMULTIHOP+set}" = set; then :
+if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -13601,7 +16321,7 @@ $as_echo "$gl_cv_header_errno_h_EMULTIHOP" >&6; }
   if test -n "$ERRNO_H"; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5
 $as_echo_n "checking for ENOLINK value... " >&6; }
-if test "${gl_cv_header_errno_h_ENOLINK+set}" = set; then :
+if ${gl_cv_header_errno_h_ENOLINK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -13672,7 +16392,7 @@ $as_echo "$gl_cv_header_errno_h_ENOLINK" >&6; }
   if test -n "$ERRNO_H"; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5
 $as_echo_n "checking for EOVERFLOW value... " >&6; }
-if test "${gl_cv_header_errno_h_EOVERFLOW+set}" = set; then :
+if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -13743,61 +16463,189 @@ $as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; }
 
 
 
+
+  GNULIB_ACOSF=0;
   GNULIB_ACOSL=0;
+  GNULIB_ASINF=0;
   GNULIB_ASINL=0;
+  GNULIB_ATANF=0;
   GNULIB_ATANL=0;
+  GNULIB_ATAN2F=0;
+  GNULIB_CBRT=0;
+  GNULIB_CBRTF=0;
+  GNULIB_CBRTL=0;
+  GNULIB_CEIL=0;
   GNULIB_CEILF=0;
   GNULIB_CEILL=0;
+  GNULIB_COPYSIGN=0;
+  GNULIB_COPYSIGNF=0;
+  GNULIB_COPYSIGNL=0;
+  GNULIB_COSF=0;
   GNULIB_COSL=0;
+  GNULIB_COSHF=0;
+  GNULIB_EXPF=0;
   GNULIB_EXPL=0;
+  GNULIB_EXP2=0;
+  GNULIB_EXP2F=0;
+  GNULIB_EXP2L=0;
+  GNULIB_EXPM1=0;
+  GNULIB_EXPM1F=0;
+  GNULIB_EXPM1L=0;
+  GNULIB_FABSF=0;
+  GNULIB_FABSL=0;
+  GNULIB_FLOOR=0;
   GNULIB_FLOORF=0;
   GNULIB_FLOORL=0;
+  GNULIB_FMA=0;
+  GNULIB_FMAF=0;
+  GNULIB_FMAL=0;
+  GNULIB_FMOD=0;
+  GNULIB_FMODF=0;
+  GNULIB_FMODL=0;
+  GNULIB_FREXPF=0;
   GNULIB_FREXP=0;
   GNULIB_FREXPL=0;
+  GNULIB_HYPOT=0;
+  GNULIB_HYPOTF=0;
+  GNULIB_HYPOTL=0;
+  GNULIB_ILOGB=0;
+  GNULIB_ILOGBF=0;
+  GNULIB_ILOGBL=0;
   GNULIB_ISFINITE=0;
   GNULIB_ISINF=0;
   GNULIB_ISNAN=0;
   GNULIB_ISNANF=0;
   GNULIB_ISNAND=0;
   GNULIB_ISNANL=0;
+  GNULIB_LDEXPF=0;
   GNULIB_LDEXPL=0;
-  GNULIB_LOGB=0;
+  GNULIB_LOG=0;
+  GNULIB_LOGF=0;
   GNULIB_LOGL=0;
+  GNULIB_LOG10=0;
+  GNULIB_LOG10F=0;
+  GNULIB_LOG10L=0;
+  GNULIB_LOG1P=0;
+  GNULIB_LOG1PF=0;
+  GNULIB_LOG1PL=0;
+  GNULIB_LOG2=0;
+  GNULIB_LOG2F=0;
+  GNULIB_LOG2L=0;
+  GNULIB_LOGB=0;
+  GNULIB_LOGBF=0;
+  GNULIB_LOGBL=0;
+  GNULIB_MODF=0;
+  GNULIB_MODFF=0;
+  GNULIB_MODFL=0;
+  GNULIB_POWF=0;
+  GNULIB_REMAINDER=0;
+  GNULIB_REMAINDERF=0;
+  GNULIB_REMAINDERL=0;
+  GNULIB_RINT=0;
+  GNULIB_RINTF=0;
+  GNULIB_RINTL=0;
   GNULIB_ROUND=0;
   GNULIB_ROUNDF=0;
   GNULIB_ROUNDL=0;
   GNULIB_SIGNBIT=0;
+  GNULIB_SINF=0;
   GNULIB_SINL=0;
+  GNULIB_SINHF=0;
+  GNULIB_SQRTF=0;
   GNULIB_SQRTL=0;
+  GNULIB_TANF=0;
   GNULIB_TANL=0;
+  GNULIB_TANHF=0;
   GNULIB_TRUNC=0;
   GNULIB_TRUNCF=0;
   GNULIB_TRUNCL=0;
-    HAVE_ACOSL=1;
+    HAVE_ACOSF=1;
+  HAVE_ACOSL=1;
+  HAVE_ASINF=1;
   HAVE_ASINL=1;
+  HAVE_ATANF=1;
   HAVE_ATANL=1;
+  HAVE_ATAN2F=1;
+  HAVE_CBRT=1;
+  HAVE_CBRTF=1;
+  HAVE_CBRTL=1;
+  HAVE_COPYSIGN=1;
+  HAVE_COPYSIGNL=1;
+  HAVE_COSF=1;
   HAVE_COSL=1;
+  HAVE_COSHF=1;
+  HAVE_EXPF=1;
   HAVE_EXPL=1;
+  HAVE_EXPM1=1;
+  HAVE_EXPM1F=1;
+  HAVE_FABSF=1;
+  HAVE_FABSL=1;
+  HAVE_FMA=1;
+  HAVE_FMAF=1;
+  HAVE_FMAL=1;
+  HAVE_FMODF=1;
+  HAVE_FMODL=1;
+  HAVE_FREXPF=1;
+  HAVE_HYPOTF=1;
+  HAVE_HYPOTL=1;
+  HAVE_ILOGB=1;
+  HAVE_ILOGBF=1;
+  HAVE_ILOGBL=1;
   HAVE_ISNANF=1;
   HAVE_ISNAND=1;
   HAVE_ISNANL=1;
+  HAVE_LDEXPF=1;
+  HAVE_LOGF=1;
   HAVE_LOGL=1;
+  HAVE_LOG10F=1;
+  HAVE_LOG10L=1;
+  HAVE_LOG1P=1;
+  HAVE_LOG1PF=1;
+  HAVE_LOG1PL=1;
+  HAVE_LOGBF=1;
+  HAVE_LOGBL=1;
+  HAVE_MODFF=1;
+  HAVE_MODFL=1;
+  HAVE_POWF=1;
+  HAVE_REMAINDER=1;
+  HAVE_REMAINDERF=1;
+  HAVE_RINT=1;
+  HAVE_RINTL=1;
+  HAVE_SINF=1;
   HAVE_SINL=1;
+  HAVE_SINHF=1;
+  HAVE_SQRTF=1;
   HAVE_SQRTL=1;
+  HAVE_TANF=1;
   HAVE_TANL=1;
+  HAVE_TANHF=1;
   HAVE_DECL_ACOSL=1;
   HAVE_DECL_ASINL=1;
   HAVE_DECL_ATANL=1;
+  HAVE_DECL_CBRTF=1;
+  HAVE_DECL_CBRTL=1;
   HAVE_DECL_CEILF=1;
   HAVE_DECL_CEILL=1;
+  HAVE_DECL_COPYSIGNF=1;
   HAVE_DECL_COSL=1;
   HAVE_DECL_EXPL=1;
+  HAVE_DECL_EXP2=1;
+  HAVE_DECL_EXP2F=1;
+  HAVE_DECL_EXP2L=1;
+  HAVE_DECL_EXPM1L=1;
   HAVE_DECL_FLOORF=1;
   HAVE_DECL_FLOORL=1;
   HAVE_DECL_FREXPL=1;
   HAVE_DECL_LDEXPL=1;
-  HAVE_DECL_LOGB=1;
   HAVE_DECL_LOGL=1;
+  HAVE_DECL_LOG10L=1;
+  HAVE_DECL_LOG2=1;
+  HAVE_DECL_LOG2F=1;
+  HAVE_DECL_LOG2L=1;
+  HAVE_DECL_LOGB=1;
+  HAVE_DECL_REMAINDER=1;
+  HAVE_DECL_REMAINDERL=1;
+  HAVE_DECL_RINTF=1;
   HAVE_DECL_ROUND=1;
   HAVE_DECL_ROUNDF=1;
   HAVE_DECL_ROUNDL=1;
@@ -13807,26 +16655,172 @@ $as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; }
   HAVE_DECL_TRUNC=1;
   HAVE_DECL_TRUNCF=1;
   HAVE_DECL_TRUNCL=1;
+  REPLACE_CBRTF=0;
+  REPLACE_CBRTL=0;
+  REPLACE_CEIL=0;
   REPLACE_CEILF=0;
   REPLACE_CEILL=0;
+  REPLACE_EXPM1=0;
+  REPLACE_EXPM1F=0;
+  REPLACE_EXP2=0;
+  REPLACE_EXP2L=0;
+  REPLACE_FABSL=0;
+  REPLACE_FLOOR=0;
   REPLACE_FLOORF=0;
   REPLACE_FLOORL=0;
+  REPLACE_FMA=0;
+  REPLACE_FMAF=0;
+  REPLACE_FMAL=0;
+  REPLACE_FMOD=0;
+  REPLACE_FMODF=0;
+  REPLACE_FMODL=0;
+  REPLACE_FREXPF=0;
   REPLACE_FREXP=0;
   REPLACE_FREXPL=0;
   REPLACE_HUGE_VAL=0;
+  REPLACE_HYPOT=0;
+  REPLACE_HYPOTF=0;
+  REPLACE_HYPOTL=0;
+  REPLACE_ILOGB=0;
+  REPLACE_ILOGBF=0;
   REPLACE_ISFINITE=0;
   REPLACE_ISINF=0;
   REPLACE_ISNAN=0;
   REPLACE_LDEXPL=0;
+  REPLACE_LOG=0;
+  REPLACE_LOGF=0;
+  REPLACE_LOGL=0;
+  REPLACE_LOG10=0;
+  REPLACE_LOG10F=0;
+  REPLACE_LOG10L=0;
+  REPLACE_LOG1P=0;
+  REPLACE_LOG1PF=0;
+  REPLACE_LOG1PL=0;
+  REPLACE_LOG2=0;
+  REPLACE_LOG2F=0;
+  REPLACE_LOG2L=0;
+  REPLACE_LOGB=0;
+  REPLACE_LOGBF=0;
+  REPLACE_LOGBL=0;
+  REPLACE_MODF=0;
+  REPLACE_MODFF=0;
+  REPLACE_MODFL=0;
   REPLACE_NAN=0;
+  REPLACE_REMAINDER=0;
+  REPLACE_REMAINDERF=0;
+  REPLACE_REMAINDERL=0;
   REPLACE_ROUND=0;
   REPLACE_ROUNDF=0;
   REPLACE_ROUNDL=0;
   REPLACE_SIGNBIT=0;
   REPLACE_SIGNBIT_USING_GCC=0;
+  REPLACE_SQRTL=0;
+  REPLACE_TRUNC=0;
+  REPLACE_TRUNCF=0;
   REPLACE_TRUNCL=0;
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp() can be used without linking with libm" >&5
+$as_echo_n "checking whether frexp() can be used without linking with libm... " >&6; }
+if ${gl_cv_func_frexp_no_libm+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+             double x;
+int
+main ()
+{
+int e; return frexp (x, &e) > 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_frexp_no_libm=yes
+else
+  gl_cv_func_frexp_no_libm=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_no_libm" >&5
+$as_echo "$gl_cv_func_frexp_no_libm" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default"
+if test "x$ac_cv_have_decl_alarm" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ALARM $ac_have_decl
+_ACEOF
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether long double and double are the same" >&5
+$as_echo_n "checking whether long double and double are the same... " >&6; }
+if ${gl_cv_long_double_equals_double+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <float.h>
+int
+main ()
+{
+typedef int check[sizeof (long double) == sizeof (double)
+                              && LDBL_MANT_DIG == DBL_MANT_DIG
+                              && LDBL_MAX_EXP == DBL_MAX_EXP
+                              && LDBL_MIN_EXP == DBL_MIN_EXP
+                              ? 1 : -1];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_long_double_equals_double=yes
+else
+  gl_cv_long_double_equals_double=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_long_double_equals_double" >&5
+$as_echo "$gl_cv_long_double_equals_double" >&6; }
+  if test $gl_cv_long_double_equals_double = yes; then
+
+$as_echo "#define HAVE_SAME_LONG_DOUBLE_AS_DOUBLE 1" >>confdefs.h
+
+    HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=1
+  else
+    HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=0
+  fi
+
+
+
+
+
+  for ac_func in $ac_func_list
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
       if test "X$prefix" = "XNONE"; then
     acl_final_prefix="$ac_default_prefix"
   else
@@ -13843,6 +16837,7 @@ $as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; }
   prefix="$acl_save_prefix"
 
 
+
 # Check whether --with-gnu-ld was given.
 if test "${with_gnu_ld+set}" = set; then :
   withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 # Prepare PATH_SEPARATOR.
 # The user is always right.
 if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
+  # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+  # contains only /bin. Note that ksh looks also at the FPATH variable,
+  # so we have to set that as well for the test.
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+    && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+           || PATH_SEPARATOR=';'
+       }
 fi
+
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5
-$as_echo_n "checking for ld used by GCC... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
     # gcc leaves a trailing carriage return which upsets mingw
@@ -13877,11 +16872,11 @@ $as_echo_n "checking for ld used by GCC... " >&6; }
   esac
   case $ac_prog in
     # Accept absolute paths.
-    [\\/]* | [A-Za-z]:[\\/]*)
+    [\\/]* | ?:[\\/]*)
       re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+      # Canonicalize the pathname of ld
+      ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
+      while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
         ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
       done
       test -z "$LD" && LD="$ac_prog"
@@ -13902,27 +16897,30 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${acl_cv_path_LD+set}" = set; then :
+if ${acl_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
+    IFS="$acl_save_ifs"
     test -z "$ac_dir" && ac_dir=.
     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
       acl_cv_path_LD="$ac_dir/$ac_prog"
       # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
+      # but apparently some variants of GNU ld only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
       *GNU* | *'with BFD'*)
-        test "$with_gnu_ld" != no && break ;;
+        test "$with_gnu_ld" != no && break
+        ;;
       *)
-        test "$with_gnu_ld" != yes && break ;;
+        test "$with_gnu_ld" != yes && break
+        ;;
       esac
     fi
   done
-  IFS="$ac_save_ifs"
+  IFS="$acl_save_ifs"
 else
   acl_cv_path_LD="$LD" # Let the user override the test with a path.
 fi
@@ -13936,18 +16934,20 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${acl_cv_prog_gnu_ld+set}" = set; then :
+if ${acl_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
 case `$LD -v 2>&1 </dev/null` in
 *GNU* | *'with BFD'*)
-  acl_cv_prog_gnu_ld=yes ;;
+  acl_cv_prog_gnu_ld=yes
+  ;;
 *)
-  acl_cv_prog_gnu_ld=no ;;
+  acl_cv_prog_gnu_ld=no
+  ;;
 esac
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
@@ -13959,7 +16959,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld
 
                                                 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
 $as_echo_n "checking for shared library run path origin... " >&6; }
-if test "${acl_cv_rpath+set}" = set; then :
+if ${acl_cv_rpath+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -13997,7 +16997,7 @@ fi
     solaris*)
                                     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
 $as_echo_n "checking for 64-bit host... " >&6; }
-if test "${gl_cv_solaris_64bit+set}" = set; then :
+if ${gl_cv_solaris_64bit+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14130,7 +17130,7 @@ fi
       done
       if test -z "$already_handled"; then
         names_already_handled="$names_already_handled $name"
-                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
         eval value=\"\$HAVE_LIB$uppername\"
         if test -n "$value"; then
           if test "$value" = yes; then
 
 
 
-    REPLACE_ICONV=0;
+  GNULIB_ICONV=0;
+    ICONV_CONST=;
+  REPLACE_ICONV=0;
   REPLACE_ICONV_OPEN=0;
   REPLACE_ICONV_UTF=0;
   ICONV_H='';
+   if test -n "$ICONV_H"; then
+  GL_GENERATE_ICONV_H_TRUE=
+  GL_GENERATE_ICONV_H_FALSE='#'
+else
+  GL_GENERATE_ICONV_H_TRUE='#'
+  GL_GENERATE_ICONV_H_FALSE=
+fi
+
+
+
+
+
+
+
+          am_save_CPPFLAGS="$CPPFLAGS"
+
+  for element in $INCICONV; do
+    haveit=
+    for x in $CPPFLAGS; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if ${am_cv_func_iconv+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    am_cv_func_iconv="no, consider installing GNU libiconv"
+    am_cv_lib_iconv=no
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+           iconv(cd,NULL,NULL,NULL,NULL);
+           iconv_close(cd);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    if test "$am_cv_func_iconv" != yes; then
+      am_save_LIBS="$LIBS"
+      LIBS="$LIBS $LIBICONV"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+             iconv(cd,NULL,NULL,NULL,NULL);
+             iconv_close(cd);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  am_cv_lib_iconv=yes
+        am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+      LIBS="$am_save_LIBS"
+    fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+  if test "$am_cv_func_iconv" = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
+$as_echo_n "checking for working iconv... " >&6; }
+if ${am_cv_func_iconv_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+                  am_save_LIBS="$LIBS"
+      if test $am_cv_lib_iconv = yes; then
+        LIBS="$LIBS $LIBICONV"
+      fi
+      if test "$cross_compiling" = yes; then :
+
+         case "$host_os" in
+           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+           *)            am_cv_func_iconv_works="guessing yes" ;;
+         esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+  int result = 0;
+  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+     returns.  */
+  {
+    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+    if (cd_utf8_to_88591 != (iconv_t)(-1))
+      {
+        static const char input[] = "\342\202\254"; /* EURO SIGN */
+        char buf[10];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_utf8_to_88591,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res == 0)
+          result |= 1;
+        iconv_close (cd_utf8_to_88591);
+      }
+  }
+  /* Test against Solaris 10 bug: Failures are not distinguishable from
+     successful returns.  */
+  {
+    iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
+    if (cd_ascii_to_88591 != (iconv_t)(-1))
+      {
+        static const char input[] = "\263";
+        char buf[10];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_ascii_to_88591,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res == 0)
+          result |= 2;
+        iconv_close (cd_ascii_to_88591);
+      }
+  }
+  /* Test against AIX 6.1..7.1 bug: Buffer overrun.  */
+  {
+    iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+    if (cd_88591_to_utf8 != (iconv_t)(-1))
+      {
+        static const char input[] = "\304";
+        static char buf[2] = { (char)0xDE, (char)0xAD };
+        const char *inptr = input;
+        size_t inbytesleft = 1;
+        char *outptr = buf;
+        size_t outbytesleft = 1;
+        size_t res = iconv (cd_88591_to_utf8,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
+          result |= 4;
+        iconv_close (cd_88591_to_utf8);
+      }
+  }
+#if 0 /* This bug could be worked around by the caller.  */
+  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
+  {
+    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+    if (cd_88591_to_utf8 != (iconv_t)(-1))
+      {
+        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+        char buf[50];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_88591_to_utf8,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if ((int)res > 0)
+          result |= 8;
+        iconv_close (cd_88591_to_utf8);
+      }
+  }
+#endif
+  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+     provided.  */
+  if (/* Try standardized names.  */
+      iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+      /* Try IRIX, OSF/1 names.  */
+      && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+      /* Try AIX names.  */
+      && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+      /* Try HP-UX names.  */
+      && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+    result |= 16;
+  return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  am_cv_func_iconv_works=yes
+else
+  am_cv_func_iconv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+      LIBS="$am_save_LIBS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
+$as_echo "$am_cv_func_iconv_works" >&6; }
+    case "$am_cv_func_iconv_works" in
+      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+      *)   am_func_iconv=yes ;;
+    esac
+  else
+    am_func_iconv=no am_cv_lib_iconv=no
+  fi
+  if test "$am_func_iconv" = yes; then
+
+$as_echo "#define HAVE_ICONV 1" >>confdefs.h
+
+  fi
+  if test "$am_cv_lib_iconv" = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+  else
+            CPPFLAGS="$am_save_CPPFLAGS"
+    LIBICONV=
+    LTLIBICONV=
+  fi
+
+
+
+  if test "$am_cv_func_iconv" = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
+    if ${am_cv_proto_iconv+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  am_cv_proto_iconv_arg1=""
+else
+  am_cv_proto_iconv_arg1="const"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
+fi
+
+    am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result:
+         $am_cv_proto_iconv" >&5
+$as_echo "
+         $am_cv_proto_iconv" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define ICONV_CONST $am_cv_proto_iconv_arg1
+_ACEOF
+
+
+       if test -n "$am_cv_proto_iconv_arg1"; then
+         ICONV_CONST="const"
+       fi
+
+  fi
+
+
+
+
+  for ac_header in $ac_header_list
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
 
 
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
 $as_echo_n "checking for inline... " >&6; }
-if test "${ac_cv_c_inline+set}" = set; then :
+if ${ac_cv_c_inline+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_inline=no
@@ -14569,9 +17902,355 @@ _ACEOF
 esac
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
+$as_echo_n "checking where to find the exponent in a 'double'... " >&6; }
+if ${gl_cv_cc_double_expbit0+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      if test "$cross_compiling" = yes; then :
+
+                                                                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#if defined arm || defined __arm || defined __arm__
+  mixed_endianness
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "mixed_endianness" >/dev/null 2>&1; then :
+  gl_cv_cc_double_expbit0="unknown"
+else
+
+                                                         :
+if ${ac_cv_c_bigendian+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+              not a universal capable compiler
+            #endif
+            typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+       # Check for potential -arch flags.  It is not universal unless
+       # there are at least two -arch flags with different values.
+       ac_arch=
+       ac_prev=
+       for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+        if test -n "$ac_prev"; then
+          case $ac_word in
+            i?86 | x86_64 | ppc | ppc64)
+              if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+                ac_arch=$ac_word
+              else
+                ac_cv_c_bigendian=universal
+                break
+              fi
+              ;;
+          esac
+          ac_prev=
+        elif test "x$ac_word" = "x-arch"; then
+          ac_prev=arch
+        fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+            #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+                    && LITTLE_ENDIAN)
+             bogus endian macros
+            #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+               #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+                not big endian
+               #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+             bogus endian macros
+            #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+                not big endian
+               #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then :
+  # Try to guess by grepping values from an object file.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+short int ascii_mm[] =
+                 { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+               short int ascii_ii[] =
+                 { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+               int use_ascii (int i) {
+                 return ascii_mm[i] + ascii_ii[i];
+               }
+               short int ebcdic_ii[] =
+                 { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+               short int ebcdic_mm[] =
+                 { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+               int use_ebcdic (int i) {
+                 return ebcdic_mm[i] + ebcdic_ii[i];
+               }
+               extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+             ac_cv_c_bigendian=yes
+           fi
+           if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+             if test "$ac_cv_c_bigendian" = unknown; then
+               ac_cv_c_bigendian=no
+             else
+               # finding both strings is unlikely to happen, but who knows?
+               ac_cv_c_bigendian=unknown
+             fi
+           fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+            /* Are we little or big endian?  From Harbison&Steele.  */
+            union
+            {
+              long int l;
+              char c[sizeof (long int)];
+            } u;
+            u.l = 1;
+            return u.c[sizeof (long int) - 1] == 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_c_bigendian=no
+else
+  ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+    fi
+fi
+:
+ case $ac_cv_c_bigendian in #(
+   yes)
+     gl_cv_cc_double_expbit0="word 0 bit 20";; #(
+   no)
+     gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
+   universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+     ;; #(
+   *)
+     gl_cv_cc_double_expbit0="unknown" ;;
+ esac
+
+
+fi
+rm -f conftest*
+
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
+{
+  memory_double m;
+  size_t i;
+  /* Clear it first, in case sizeof (double) < sizeof (memory_double).  */
+  memset (&m, 0, sizeof (memory_double));
+  m.value = x;
+  for (i = 0; i < NWORDS; i++)
+    {
+      ored_words[i] |= m.word[i];
+      anded_words[i] &= m.word[i];
+    }
+}
+int main ()
+{
+  size_t j;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  for (j = 0; j < NWORDS; j++)
+    anded_words[j] = ~ (unsigned int) 0;
+  add_to_ored_words (0.25);
+  add_to_ored_words (0.5);
+  add_to_ored_words (1.0);
+  add_to_ored_words (2.0);
+  add_to_ored_words (4.0);
+  /* Remove bits that are common (e.g. if representation of the first mantissa
+     bit is explicit).  */
+  for (j = 0; j < NWORDS; j++)
+    ored_words[j] &= ~anded_words[j];
+  /* Now find the nonzero word.  */
+  for (j = 0; j < NWORDS; j++)
+    if (ored_words[j] != 0)
+      break;
+  if (j < NWORDS)
+    {
+      size_t i;
+      for (i = j + 1; i < NWORDS; i++)
+        if (ored_words[i] != 0)
+          {
+            fprintf (fp, "unknown");
+            return (fclose (fp) != 0);
+          }
+      for (i = 0; ; i++)
+        if ((ored_words[j] >> i) & 1)
+          {
+            fprintf (fp, "word %d bit %d", (int) j, (int) i);
+            return (fclose (fp) != 0);
+          }
+    }
+  fprintf (fp, "unknown");
+  return (fclose (fp) != 0);
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_cc_double_expbit0=`cat conftest.out`
+else
+  gl_cv_cc_double_expbit0="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+      rm -f conftest.out
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
+$as_echo "$gl_cv_cc_double_expbit0" >&6; }
+  case "$gl_cv_cc_double_expbit0" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
+
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_WORD $word
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_BIT $bit
+_ACEOF
+
+      ;;
+  esac
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'float'" >&5
 $as_echo_n "checking where to find the exponent in a 'float'... " >&6; }
-if test "${gl_cv_cc_float_expbit0+set}" = set; then :
+if ${gl_cv_cc_float_expbit0+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -14680,7 +18359,7 @@ _ACEOF
 
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
 $as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then :
+if ${ac_cv_c_bigendian+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_bigendian=unknown
@@ -14898,208 +18577,683 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 
      ;; #(
    *)
-     as_fn_error "unknown endianness
+     as_fn_error $? "unknown endianness
  presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
  esac
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
-$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
-if test "${am_cv_langinfo_codeset+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <langinfo.h>
-int
-main ()
-{
-char* cs = nl_langinfo(CODESET); return !cs;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  am_cv_langinfo_codeset=yes
-else
-  am_cv_langinfo_codeset=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
-$as_echo "$am_cv_langinfo_codeset" >&6; }
-  if test $am_cv_langinfo_codeset = yes; then
-
-$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
+  GNULIB_ISWBLANK=0;
+  GNULIB_WCTYPE=0;
+  GNULIB_ISWCTYPE=0;
+  GNULIB_WCTRANS=0;
+  GNULIB_TOWCTRANS=0;
+    HAVE_ISWBLANK=1;
+  HAVE_WCTYPE_T=1;
+  HAVE_WCTRANS_T=1;
+  REPLACE_ISWBLANK=0;
 
-  fi
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5
-$as_echo_n "checking for working fcntl.h... " >&6; }
-if test "${gl_cv_header_working_fcntl_h+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
+$as_echo_n "checking for wint_t... " >&6; }
+if ${gt_cv_c_wint_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
-  gl_cv_header_working_fcntl_h=cross-compiling
-else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-           #include <sys/stat.h>
-           #include <unistd.h>
-           #include <fcntl.h>
-           #ifndef O_NOATIME
-            #define O_NOATIME 0
-           #endif
-           #ifndef O_NOFOLLOW
-            #define O_NOFOLLOW 0
-           #endif
-           static int const constants[] =
-            {
-              O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND,
-              O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY
-            };
 
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+   before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+            wint_t foo = (wchar_t)'\0';
 int
 main ()
 {
 
-            int status = !constants;
-            {
-              static char const sym[] = "conftest.sym";
-              if (symlink (".", sym) != 0
-                  || close (open (sym, O_RDONLY | O_NOFOLLOW)) == 0)
-                status |= 32;
-              unlink (sym);
-            }
-            {
-              static char const file[] = "confdefs.h";
-              int fd = open (file, O_RDONLY | O_NOATIME);
-              char c;
-              struct stat st0, st1;
-              if (fd < 0
-                  || fstat (fd, &st0) != 0
-                  || sleep (1) != 0
-                  || read (fd, &c, 1) != 1
-                  || close (fd) != 0
-                  || stat (file, &st1) != 0
-                  || st0.st_atime != st1.st_atime)
-                status |= 64;
-            }
-            return status;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_header_working_fcntl_h=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_c_wint_t=yes
 else
-  case $? in #(
-        32) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
-        64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
-        96) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
-         *) gl_cv_header_working_fcntl_h='no';;
-        esac
+  gt_cv_c_wint_t=no
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5
+$as_echo "$gt_cv_c_wint_t" >&6; }
+  if test $gt_cv_c_wint_t = yes; then
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5
-$as_echo "$gl_cv_header_working_fcntl_h" >&6; }
+$as_echo "#define HAVE_WINT_T 1" >>confdefs.h
 
-  case $gl_cv_header_working_fcntl_h in #(
-  *O_NOATIME* | no | cross-compiling) ac_val=0;; #(
-  *) ac_val=1;;
-  esac
+  fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WORKING_O_NOATIME $ac_val
-_ACEOF
 
 
-  case $gl_cv_header_working_fcntl_h in #(
-  *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #(
-  *) ac_val=1;;
-  esac
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_WORKING_O_NOFOLLOW $ac_val
-_ACEOF
 
 
-ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
-_ACEOF
 
+  if test $ac_cv_func_iswcntrl = yes; then
+    HAVE_ISWCNTRL=1
+  else
+    HAVE_ISWCNTRL=0
+  fi
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2.1 or newer" >&5
-$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; }
-if test "${ac_cv_gnu_library_2_1+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
-  Lucky GNU user
- #endif
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky GNU user" >/dev/null 2>&1; then :
-  ac_cv_gnu_library_2_1=yes
-else
-  ac_cv_gnu_library_2_1=no
-fi
-rm -f conftest*
+  if test $gt_cv_c_wint_t = yes; then
+    HAVE_WINT_T=1
+  else
+    HAVE_WINT_T=0
+  fi
 
 
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5
-$as_echo "$ac_cv_gnu_library_2_1" >&6; }
 
-    GLIBC21="$ac_cv_gnu_library_2_1"
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
-$as_echo_n "checking for LC_MESSAGES... " >&6; }
-if test "${gt_cv_val_LC_MESSAGES+set}" = set; then :
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_wctype_h='<'wctype.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
+$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
+if ${gl_cv_next_wctype_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
+
+             if test $ac_cv_header_wctype_h = yes; then
+
+
+
+
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <locale.h>
-int
-main ()
-{
-return LC_MESSAGES
-  ;
-  return 0;
-}
+#include <wctype.h>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gt_cv_val_LC_MESSAGES=yes
-else
-  gt_cv_val_LC_MESSAGES=no
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'wctype.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_wctype_h
+           gl_cv_next_wctype_h='"'$gl_header'"'
+          else
+               gl_cv_next_wctype_h='<'wctype.h'>'
+             fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5
+$as_echo "$gl_cv_next_wctype_h" >&6; }
+     fi
+     NEXT_WCTYPE_H=$gl_cv_next_wctype_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'wctype.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_wctype_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive
+
+
+
+
+  if test $ac_cv_header_wctype_h = yes; then
+    if test $ac_cv_func_iswcntrl = yes; then
+                  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
+$as_echo_n "checking whether iswcntrl works... " >&6; }
+if ${gl_cv_func_iswcntrl_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+          if test "$cross_compiling" = yes; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+                          #if __GNU_LIBRARY__ == 1
+                          Linux libc5 i18n is broken.
+                          #endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_iswcntrl_works="guessing yes"
+else
+  gl_cv_func_iswcntrl_works="guessing no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+               /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+                  included before <wchar.h>.
+                  BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+                  must be included before <wchar.h>.  */
+               #include <stddef.h>
+               #include <stdio.h>
+               #include <time.h>
+               #include <wchar.h>
+               #include <wctype.h>
+               int main () { return iswprint ('x') == 0; }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_iswcntrl_works=yes
+else
+  gl_cv_func_iswcntrl_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
+$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
+    fi
+    HAVE_WCTYPE_H=1
+  else
+    HAVE_WCTYPE_H=0
+  fi
+
+
+  case "$gl_cv_func_iswcntrl_works" in
+    *yes) REPLACE_ISWCNTRL=0 ;;
+    *)    REPLACE_ISWCNTRL=1 ;;
+  esac
+
+
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+        :
+  fi
+
+  if test $REPLACE_ISWCNTRL = 1; then
+    REPLACE_TOWLOWER=1
+  else
+    for ac_func in towlower
+do :
+  ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower"
+if test "x$ac_cv_func_towlower" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TOWLOWER 1
+_ACEOF
+
+fi
+done
+
+    if test $ac_cv_func_towlower = yes; then
+      REPLACE_TOWLOWER=0
+    else
+      ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+             included before <wchar.h>.
+             BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+             must be included before <wchar.h>.  */
+          #include <stddef.h>
+          #include <stdio.h>
+          #include <time.h>
+          #include <wchar.h>
+          #if HAVE_WCTYPE_H
+          # include <wctype.h>
+          #endif
+
+"
+if test "x$ac_cv_have_decl_towlower" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_TOWLOWER $ac_have_decl
+_ACEOF
+
+      if test $ac_cv_have_decl_towlower = yes; then
+                                REPLACE_TOWLOWER=1
+      else
+        REPLACE_TOWLOWER=0
+      fi
+    fi
+  fi
+
+
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+        :
+  fi
+
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
+$as_echo_n "checking for wctype_t... " >&6; }
+if ${gl_cv_type_wctype_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+               included before <wchar.h>.
+               BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+               must be included before <wchar.h>.  */
+            #include <stddef.h>
+            #include <stdio.h>
+            #include <time.h>
+            #include <wchar.h>
+            #if HAVE_WCTYPE_H
+            # include <wctype.h>
+            #endif
+            wctype_t a;
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_type_wctype_t=yes
+else
+  gl_cv_type_wctype_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5
+$as_echo "$gl_cv_type_wctype_t" >&6; }
+  if test $gl_cv_type_wctype_t = no; then
+    HAVE_WCTYPE_T=0
+  fi
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
+$as_echo_n "checking for wctrans_t... " >&6; }
+if ${gl_cv_type_wctrans_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+               included before <wchar.h>.
+               BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+               must be included before <wchar.h>.  */
+            #include <stddef.h>
+            #include <stdio.h>
+            #include <time.h>
+            #include <wchar.h>
+            #include <wctype.h>
+            wctrans_t a;
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_type_wctrans_t=yes
+else
+  gl_cv_type_wctrans_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5
+$as_echo "$gl_cv_type_wctrans_t" >&6; }
+  if test $gl_cv_type_wctrans_t = no; then
+    HAVE_WCTRANS_T=0
+  fi
+
+
+    for gl_func in wctype iswctype wctrans towctrans     ; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+
+int
+main ()
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
+$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
+if ${am_cv_langinfo_codeset+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET); return !cs;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  am_cv_langinfo_codeset=yes
+else
+  am_cv_langinfo_codeset=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
+$as_echo "$am_cv_langinfo_codeset" >&6; }
+  if test $am_cv_langinfo_codeset = yes; then
+
+$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
+
+  fi
+
+
+
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5
+$as_echo_n "checking for working fcntl.h... " >&6; }
+if ${gl_cv_header_working_fcntl_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  gl_cv_header_working_fcntl_h=cross-compiling
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+           #include <sys/stat.h>
+           #if HAVE_UNISTD_H
+           # include <unistd.h>
+           #else /* on Windows with MSVC */
+           # include <io.h>
+           # include <stdlib.h>
+           # defined sleep(n) _sleep ((n) * 1000)
+           #endif
+           #include <fcntl.h>
+           #ifndef O_NOATIME
+            #define O_NOATIME 0
+           #endif
+           #ifndef O_NOFOLLOW
+            #define O_NOFOLLOW 0
+           #endif
+           static int const constants[] =
+            {
+              O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND,
+              O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY
+            };
+
+int
+main ()
+{
+
+            int result = !constants;
+            #if HAVE_SYMLINK
+            {
+              static char const sym[] = "conftest.sym";
+              if (symlink ("/dev/null", sym) != 0)
+                result |= 2;
+              else
+                {
+                  int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0);
+                  if (fd >= 0)
+                    {
+                      close (fd);
+                      result |= 4;
+                    }
+                }
+              if (unlink (sym) != 0 || symlink (".", sym) != 0)
+                result |= 2;
+              else
+                {
+                  int fd = open (sym, O_RDONLY | O_NOFOLLOW);
+                  if (fd >= 0)
+                    {
+                      close (fd);
+                      result |= 4;
+                    }
+                }
+              unlink (sym);
+            }
+            #endif
+            {
+              static char const file[] = "confdefs.h";
+              int fd = open (file, O_RDONLY | O_NOATIME);
+              if (fd < 0)
+                result |= 8;
+              else
+                {
+                  struct stat st0;
+                  if (fstat (fd, &st0) != 0)
+                    result |= 16;
+                  else
+                    {
+                      char c;
+                      sleep (1);
+                      if (read (fd, &c, 1) != 1)
+                        result |= 24;
+                      else
+                        {
+                          if (close (fd) != 0)
+                            result |= 32;
+                          else
+                            {
+                              struct stat st1;
+                              if (stat (file, &st1) != 0)
+                                result |= 40;
+                              else
+                                if (st0.st_atime != st1.st_atime)
+                                  result |= 64;
+                            }
+                        }
+                    }
+                }
+            }
+            return result;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_header_working_fcntl_h=yes
+else
+  case $? in #(
+        4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
+        64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
+        68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
+         *) gl_cv_header_working_fcntl_h='no';;
+        esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5
+$as_echo "$gl_cv_header_working_fcntl_h" >&6; }
+
+  case $gl_cv_header_working_fcntl_h in #(
+  *O_NOATIME* | no | cross-compiling) ac_val=0;; #(
+  *) ac_val=1;;
+  esac
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_WORKING_O_NOATIME $ac_val
+_ACEOF
+
+
+  case $gl_cv_header_working_fcntl_h in #(
+  *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #(
+  *) ac_val=1;;
+  esac
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_WORKING_O_NOFOLLOW $ac_val
+_ACEOF
+
+
+ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
+_ACEOF
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5
+$as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; }
+if ${ac_cv_gnu_library_2_1+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+  Lucky GNU user
+ #endif
+#endif
+#ifdef __UCLIBC__
+ Lucky user
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky" >/dev/null 2>&1; then :
+  ac_cv_gnu_library_2_1=yes
+else
+  ac_cv_gnu_library_2_1=no
+fi
+rm -f conftest*
+
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5
+$as_echo "$ac_cv_gnu_library_2_1" >&6; }
+
+    GLIBC21="$ac_cv_gnu_library_2_1"
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
+$as_echo_n "checking for LC_MESSAGES... " >&6; }
+if ${gt_cv_val_LC_MESSAGES+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <locale.h>
+int
+main ()
+{
+return LC_MESSAGES
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_val_LC_MESSAGES=yes
+else
+  gt_cv_val_LC_MESSAGES=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
@@ -15115,7 +19269,7 @@ $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
-if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then :
+if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
@@ -15149,7 +19303,7 @@ $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
   fi
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
-if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then :
+if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
@@ -15197,7 +19351,7 @@ $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
   if test "$gl_use_threads" != no; then
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5
 $as_echo_n "checking whether imported symbols can be declared weak... " >&6; }
-if test "${gl_cv_have_weak+set}" = set; then :
+if ${gl_cv_have_weak+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   gl_cv_have_weak=no
@@ -15265,7 +19419,7 @@ $as_echo "$gl_cv_have_weak" >&6; }
       # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
       # it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY.
       ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
-if test "x$ac_cv_header_pthread_h" = x""yes; then :
+if test "x$ac_cv_header_pthread_h" = xyes; then :
   gl_have_pthread_h=yes
 else
   gl_have_pthread_h=no
@@ -15287,7 +19441,7 @@ int
 main ()
 {
 pthread_mutex_lock((pthread_mutex_t*)0);
-           pthread_mutexattr_init((pthread_mutexattr_t*)0);
+               pthread_mutexattr_init((pthread_mutexattr_t*)0);
   ;
   return 0;
 }
@@ -15304,7 +19458,7 @@ rm -f core conftest.err conftest.$ac_objext \
           # need to link with libpthread in order to create multiple threads.
           { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5
 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; }
-if test "${ac_cv_lib_pthread_pthread_kill+set}" = set; then :
+if ${ac_cv_lib_pthread_pthread_kill+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -15338,7 +19492,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5
 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; }
-if test "x$ac_cv_lib_pthread_pthread_kill" = x""yes; then :
+if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then :
   LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread
              # On Solaris and HP-UX, most pthread functions exist also in libc.
              # Therefore pthread_in_use() needs to actually try to create a
@@ -15357,7 +19511,7 @@ fi
           # Some library is needed. Try libpthread and libc_r.
           { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5
 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; }
-if test "${ac_cv_lib_pthread_pthread_kill+set}" = set; then :
+if ${ac_cv_lib_pthread_pthread_kill+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -15391,7 +19545,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5
 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; }
-if test "x$ac_cv_lib_pthread_pthread_kill" = x""yes; then :
+if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then :
   gl_have_pthread=yes
              LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread
              LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread
@@ -15401,7 +19555,7 @@ fi
             # For FreeBSD 4.
             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5
 $as_echo_n "checking for pthread_kill in -lc_r... " >&6; }
-if test "${ac_cv_lib_c_r_pthread_kill+set}" = set; then :
+if ${ac_cv_lib_c_r_pthread_kill+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -15435,7 +19589,7 @@ LIBS=$ac_check_lib_save_LIBS
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5
 $as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; }
-if test "x$ac_cv_lib_c_r_pthread_kill" = x""yes; then :
+if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then :
   gl_have_pthread=yes
                LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r
                LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r
@@ -15467,8 +19621,10 @@ $as_echo "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h
         LIBS="$LIBS -lthread"
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+
 #include <thread.h>
 #include <synch.h>
+
 int
 main ()
 {
@@ -15511,7 +19667,7 @@ $as_echo "#define USE_SOLARIS_THREADS_WEAK 1" >>confdefs.h
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libpth" >&5
 $as_echo_n "checking how to link with libpth... " >&6; }
-if test "${ac_cv_libpth_libs+set}" = set; then :
+if ${ac_cv_libpth_libs+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -15589,7 +19745,7 @@ fi
       done
       if test -z "$already_handled"; then
         names_already_handled="$names_already_handled $name"
-                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
         eval value=\"\$HAVE_LIB$uppername\"
         if test -n "$value"; then
           if test "$value" = yes; then
@@ -16020,7 +20176,7 @@ $as_echo "$ac_cv_libpth_libs" >&6; }
 
       gl_have_pth=
       gl_save_LIBS="$LIBS"
-      LIBS="$LIBS -lpth"
+      LIBS="$LIBS $LIBPTH"
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pth.h>
@@ -16061,18 +20217,20 @@ $as_echo "#define USE_PTH_THREADS_WEAK 1" >>confdefs.h
       fi
     fi
     if test -z "$gl_have_pthread"; then
-      if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then
-        if { case "$host_os" in
-               mingw*) true;;
-               *) false;;
-             esac
-           }; then
-          gl_threads_api=win32
+      case "$gl_use_threads" in
+        yes | windows | win32) # The 'win32' is for backward compatibility.
+          if { case "$host_os" in
+                 mingw*) true;;
+                 *) false;;
+               esac
+             }; then
+            gl_threads_api=windows
 
-$as_echo "#define USE_WIN32_THREADS 1" >>confdefs.h
+$as_echo "#define USE_WINDOWS_THREADS 1" >>confdefs.h
 
-        fi
-      fi
+          fi
+          ;;
+      esac
     fi
   fi
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for multithread API to use" >&5
@@ -16089,38 +20247,7 @@ $as_echo "$gl_threads_api" >&6; }
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5
-$as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; }
-if test "${gl_cv_func_malloc_posix+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-
-                        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-         choke me
-         #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_func_malloc_posix=yes
-else
-  gl_cv_func_malloc_posix=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5
-$as_echo "$gl_cv_func_malloc_posix" >&6; }
-
-
+  GNULIB__EXIT=0;
   GNULIB_ATOLL=0;
   GNULIB_CALLOC_POSIX=0;
   GNULIB_CANONICALIZE_FILE_NAME=0;
@@ -16128,61 +20255,113 @@ $as_echo "$gl_cv_func_malloc_posix" >&6; }
   GNULIB_GETSUBOPT=0;
   GNULIB_GRANTPT=0;
   GNULIB_MALLOC_POSIX=0;
+  GNULIB_MBTOWC=0;
   GNULIB_MKDTEMP=0;
   GNULIB_MKOSTEMP=0;
   GNULIB_MKOSTEMPS=0;
   GNULIB_MKSTEMP=0;
   GNULIB_MKSTEMPS=0;
+  GNULIB_POSIX_OPENPT=0;
   GNULIB_PTSNAME=0;
+  GNULIB_PTSNAME_R=0;
   GNULIB_PUTENV=0;
+  GNULIB_RANDOM=0;
   GNULIB_RANDOM_R=0;
   GNULIB_REALLOC_POSIX=0;
   GNULIB_REALPATH=0;
   GNULIB_RPMATCH=0;
+  GNULIB_SECURE_GETENV=0;
   GNULIB_SETENV=0;
   GNULIB_STRTOD=0;
   GNULIB_STRTOLL=0;
   GNULIB_STRTOULL=0;
+  GNULIB_SYSTEM_POSIX=0;
   GNULIB_UNLOCKPT=0;
   GNULIB_UNSETENV=0;
-    HAVE_ATOLL=1;
-  HAVE_CALLOC_POSIX=1;
+  GNULIB_WCTOMB=0;
+    HAVE__EXIT=1;
+  HAVE_ATOLL=1;
   HAVE_CANONICALIZE_FILE_NAME=1;
   HAVE_DECL_GETLOADAVG=1;
   HAVE_GETSUBOPT=1;
   HAVE_GRANTPT=1;
-  HAVE_MALLOC_POSIX=1;
   HAVE_MKDTEMP=1;
   HAVE_MKOSTEMP=1;
   HAVE_MKOSTEMPS=1;
   HAVE_MKSTEMP=1;
   HAVE_MKSTEMPS=1;
+  HAVE_POSIX_OPENPT=1;
   HAVE_PTSNAME=1;
+  HAVE_PTSNAME_R=1;
+  HAVE_RANDOM=1;
+  HAVE_RANDOM_H=1;
   HAVE_RANDOM_R=1;
-  HAVE_REALLOC_POSIX=1;
   HAVE_REALPATH=1;
   HAVE_RPMATCH=1;
+  HAVE_SECURE_GETENV=1;
   HAVE_SETENV=1;
+  HAVE_DECL_SETENV=1;
   HAVE_STRTOD=1;
   HAVE_STRTOLL=1;
   HAVE_STRTOULL=1;
   HAVE_STRUCT_RANDOM_DATA=1;
   HAVE_SYS_LOADAVG_H=0;
   HAVE_UNLOCKPT=1;
-  HAVE_UNSETENV=1;
+  HAVE_DECL_UNSETENV=1;
+  REPLACE_CALLOC=0;
   REPLACE_CANONICALIZE_FILE_NAME=0;
+  REPLACE_MALLOC=0;
+  REPLACE_MBTOWC=0;
   REPLACE_MKSTEMP=0;
+  REPLACE_PTSNAME=0;
+  REPLACE_PTSNAME_R=0;
   REPLACE_PUTENV=0;
+  REPLACE_RANDOM_R=0;
+  REPLACE_REALLOC=0;
   REPLACE_REALPATH=0;
   REPLACE_SETENV=0;
   REPLACE_STRTOD=0;
   REPLACE_UNSETENV=0;
+  REPLACE_WCTOMB=0;
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5
+$as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; }
+if ${gl_cv_func_malloc_posix+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+                        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+             choke me
+             #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_malloc_posix=yes
+else
+  gl_cv_func_malloc_posix=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5
+$as_echo "$gl_cv_func_malloc_posix" >&6; }
 
-  for ac_header in stdlib.h
+
+
+      for ac_header in stdlib.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = x""yes; then :
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_STDLIB_H 1
 _ACEOF
 
 done
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
 $as_echo_n "checking for GNU libc compatible malloc... " >&6; }
-if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then :
+if ${ac_cv_func_malloc_0_nonnull+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then :
-  ac_cv_func_malloc_0_nonnull=no
+  case "$host_os" in
+          # Guess yes on platforms where we know the result.
+          *-gnu* | freebsd* | netbsd* | openbsd* \
+          | hpux* | solaris* | cygwin* | mingw*)
+            ac_cv_func_malloc_0_nonnull=yes ;;
+          # If we don't know, assume the worst.
+          *) ac_cv_func_malloc_0_nonnull=no ;;
+        esac
+
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *malloc ();
-#endif
+            # include <stdlib.h>
+            #else
+            char *malloc ();
+            #endif
 
 int
 main ()
@@ -16214,6 +20401,7 @@ return ! malloc (0);
   ;
   return 0;
 }
+
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
   ac_cv_func_malloc_0_nonnull=yes
@@ -16224,10 +20412,11 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
-if test $ac_cv_func_malloc_0_nonnull = yes; then :
+  if test $ac_cv_func_malloc_0_nonnull = yes; then :
   gl_cv_func_malloc_0_nonnull=1
 else
   gl_cv_func_malloc_0_nonnull=0
@@ -16240,12 +20429,14 @@ _ACEOF
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
-$as_echo_n "checking for long long int... " >&6; }
-if test "${ac_cv_type_long_long_int+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
+$as_echo_n "checking for unsigned long long int... " >&6; }
+if ${ac_cv_type_unsigned_long_long_int+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_cv_type_unsigned_long_long_int=yes
+     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
   /* For now, do not test the preprocessor; as of 2007 there are too many
@@ -16278,37 +20469,64 @@ main ()
 
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-                          if test "$cross_compiling" = yes; then :
+
+else
+  ac_cv_type_unsigned_long_long_int=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
+$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+
+$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
+
+  fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
+$as_echo_n "checking for long long int... " >&6; }
+if ${ac_cv_type_long_long_int+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
   ac_cv_type_long_long_int=yes
+      if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+        ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
+        if test $ac_cv_type_long_long_int = yes; then
+                                        if test "$cross_compiling" = yes; then :
+  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <limits.h>
-               #ifndef LLONG_MAX
-               # define HALF \
-                        (1LL << (sizeof (long long int) * CHAR_BIT - 2))
-               # define LLONG_MAX (HALF - 1 + HALF)
-               #endif
+                 #ifndef LLONG_MAX
+                 # define HALF \
+                          (1LL << (sizeof (long long int) * CHAR_BIT - 2))
+                 # define LLONG_MAX (HALF - 1 + HALF)
+                 #endif
 int
 main ()
 {
 long long int n = 1;
-               int i;
-               for (i = 0; ; i++)
-                 {
-                   long long int m = n << i;
-                   if (m >> i != n)
-                     return 1;
-                   if (LLONG_MAX / 2 < m)
-                     break;
-                 }
-               return 0;
+                 int i;
+                 for (i = 0; ; i++)
+                   {
+                     long long int m = n << i;
+                     if (m >> i != n)
+                       return 1;
+                     if (LLONG_MAX / 2 < m)
+                       break;
+                   }
+                 return 0;
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_type_long_long_int=yes
+
 else
   ac_cv_type_long_long_int=no
 fi
@@ -16316,11 +20534,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-else
-  ac_cv_type_long_long_int=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+        fi
+      fi
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
 $as_echo "$ac_cv_type_long_long_int" >&6; }
@@ -16336,13 +20551,20 @@ $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
 
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
 $as_echo_n "checking for mbstate_t... " >&6; }
-if test "${ac_cv_type_mbstate_t+set}" = set; then :
+if ${ac_cv_type_mbstate_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
-#           include <wchar.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
 int
 main ()
 {
@@ -16371,43 +20593,6 @@ $as_echo "#define mbstate_t int" >>confdefs.h
    fi
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc and mbstate_t are properly declared" >&5
-$as_echo_n "checking whether mbrtowc and mbstate_t are properly declared... " >&6; }
-if test "${ac_cv_func_mbrtowc+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <wchar.h>
-int
-main ()
-{
-wchar_t wc;
-             char const s[] = "";
-             size_t n = 1;
-             mbstate_t state;
-             return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_func_mbrtowc=yes
-else
-  ac_cv_func_mbrtowc=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mbrtowc" >&5
-$as_echo "$ac_cv_func_mbrtowc" >&6; }
-  if test $ac_cv_func_mbrtowc = yes; then
-
-$as_echo "#define HAVE_MBRTOWC 1" >>confdefs.h
-
-  fi
-
-
   GNULIB_BTOWC=0;
   GNULIB_WCTOB=0;
   GNULIB_MBSINIT=0;
@@ -16419,6 +20604,34 @@ $as_echo "#define HAVE_MBRTOWC 1" >>confdefs.h
   GNULIB_WCSRTOMBS=0;
   GNULIB_WCSNRTOMBS=0;
   GNULIB_WCWIDTH=0;
+  GNULIB_WMEMCHR=0;
+  GNULIB_WMEMCMP=0;
+  GNULIB_WMEMCPY=0;
+  GNULIB_WMEMMOVE=0;
+  GNULIB_WMEMSET=0;
+  GNULIB_WCSLEN=0;
+  GNULIB_WCSNLEN=0;
+  GNULIB_WCSCPY=0;
+  GNULIB_WCPCPY=0;
+  GNULIB_WCSNCPY=0;
+  GNULIB_WCPNCPY=0;
+  GNULIB_WCSCAT=0;
+  GNULIB_WCSNCAT=0;
+  GNULIB_WCSCMP=0;
+  GNULIB_WCSNCMP=0;
+  GNULIB_WCSCASECMP=0;
+  GNULIB_WCSNCASECMP=0;
+  GNULIB_WCSCOLL=0;
+  GNULIB_WCSXFRM=0;
+  GNULIB_WCSDUP=0;
+  GNULIB_WCSCHR=0;
+  GNULIB_WCSRCHR=0;
+  GNULIB_WCSCSPN=0;
+  GNULIB_WCSSPN=0;
+  GNULIB_WCSPBRK=0;
+  GNULIB_WCSSTR=0;
+  GNULIB_WCSTOK=0;
+  GNULIB_WCSWIDTH=0;
     HAVE_BTOWC=1;
   HAVE_MBSINIT=1;
   HAVE_MBRTOWC=1;
@@ -16428,6 +20641,34 @@ $as_echo "#define HAVE_MBRTOWC 1" >>confdefs.h
   HAVE_WCRTOMB=1;
   HAVE_WCSRTOMBS=1;
   HAVE_WCSNRTOMBS=1;
+  HAVE_WMEMCHR=1;
+  HAVE_WMEMCMP=1;
+  HAVE_WMEMCPY=1;
+  HAVE_WMEMMOVE=1;
+  HAVE_WMEMSET=1;
+  HAVE_WCSLEN=1;
+  HAVE_WCSNLEN=1;
+  HAVE_WCSCPY=1;
+  HAVE_WCPCPY=1;
+  HAVE_WCSNCPY=1;
+  HAVE_WCPNCPY=1;
+  HAVE_WCSCAT=1;
+  HAVE_WCSNCAT=1;
+  HAVE_WCSCMP=1;
+  HAVE_WCSNCMP=1;
+  HAVE_WCSCASECMP=1;
+  HAVE_WCSNCASECMP=1;
+  HAVE_WCSCOLL=1;
+  HAVE_WCSXFRM=1;
+  HAVE_WCSDUP=1;
+  HAVE_WCSCHR=1;
+  HAVE_WCSRCHR=1;
+  HAVE_WCSCSPN=1;
+  HAVE_WCSSPN=1;
+  HAVE_WCSPBRK=1;
+  HAVE_WCSSTR=1;
+  HAVE_WCSTOK=1;
+  HAVE_WCSWIDTH=1;
   HAVE_DECL_WCTOB=1;
   HAVE_DECL_WCWIDTH=1;
   REPLACE_MBSTATE_T=0;
@@ -16442,22 +20683,7 @@ $as_echo "#define HAVE_MBRTOWC 1" >>confdefs.h
   REPLACE_WCSRTOMBS=0;
   REPLACE_WCSNRTOMBS=0;
   REPLACE_WCWIDTH=0;
-
-
-
-
-  for ac_func in $ac_func_list
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
+  REPLACE_WCSWIDTH=0;
 
 
 
@@ -16468,7 +20694,7 @@ done
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
 $as_echo_n "checking for a traditional japanese locale... " >&6; }
-if test "${gt_cv_locale_ja+set}" = set; then :
+if ${gt_cv_locale_ja+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -16488,17 +20714,30 @@ int main ()
 {
   const char *p;
   /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
   if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
 #if HAVE_LANGINFO_CODESET
   {
     const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
       return 1;
   }
 #endif
@@ -16513,7 +20752,7 @@ int main ()
   if (MB_CUR_MAX == 1)
     return 1;
   /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding.  */
+     This excludes the UTF-8 encoding (except on MirBSD).  */
   t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
   if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
   for (p = buf; *p != '\0'; p++)
@@ -16528,42 +20767,58 @@ _ACEOF
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the AIX locale name.
-      if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_ja=ja_JP
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_ja=ja_JP.EUC-JP
-        else
-          # Test for the HP-UX, OSF/1, NetBSD locale name.
-          if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_ja=ja_JP.eucJP
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Note that on native Windows, the Japanese locale is
+          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+          # cannot use it here.
+          gt_cv_locale_ja=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the AIX locale name.
+          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_ja=ja_JP
           else
-            # Test for the IRIX, FreeBSD locale name.
-            if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_ja=ja_JP.EUC
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_ja=ja_JP.EUC-JP
             else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_ja=ja
+              # Test for the HP-UX, OSF/1, NetBSD locale name.
+              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_ja=ja_JP.eucJP
               else
-                # Special test for NetBSD 1.6.
-                if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
-                  gt_cv_locale_ja=ja_JP.eucJP
+                # Test for the IRIX, FreeBSD locale name.
+                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_ja=ja_JP.EUC
                 else
-                  # None found.
-                  gt_cv_locale_ja=none
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_ja=ja
+                  else
+                    # Special test for NetBSD 1.6.
+                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+                      gt_cv_locale_ja=ja_JP.eucJP
+                    else
+                      # None found.
+                      gt_cv_locale_ja=none
+                    fi
+                  fi
                 fi
               fi
             fi
           fi
-        fi
-      fi
+          ;;
+      esac
     fi
     rm -fr conftest*
 
@@ -16578,7 +20833,7 @@ $as_echo "$gt_cv_locale_ja" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
 $as_echo_n "checking for a transitional chinese locale... " >&6; }
-if test "${gt_cv_locale_zh_CN+set}" = set; then :
+if ${gt_cv_locale_zh_CN+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -16599,17 +20854,30 @@ int main ()
 {
   const char *p;
   /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
   if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
 #if HAVE_LANGINFO_CODESET
   {
     const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
       return 1;
   }
 #endif
@@ -16620,7 +20888,7 @@ int main ()
   if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
 #endif
   /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding.  */
+     This excludes the UTF-8 encoding (except on MirBSD).  */
   t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
   if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
   for (p = buf; *p != '\0'; p++)
@@ -16639,22 +20907,47 @@ _ACEOF
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the locale name without encoding suffix.
-      if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_zh_CN=zh_CN
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_zh_CN=zh_CN.GB18030
-        else
-          # None found.
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=Chinese_China.54936
+          else
+            # None found.
+            gt_cv_locale_zh_CN=none
+          fi
+          ;;
+        solaris2.8)
+          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
           gt_cv_locale_zh_CN=none
-        fi
-      fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the locale name without encoding suffix.
+          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=zh_CN
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_zh_CN=zh_CN.GB18030
+            else
+              # None found.
+              gt_cv_locale_zh_CN=none
+            fi
+          fi
+          ;;
+      esac
     else
       # If there was a link error, due to mblen(), the system is so old that
       # it certainly doesn't have a chinese locale.
@@ -16672,7 +20965,7 @@ $as_echo "$gt_cv_locale_zh_CN" >&6; }
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
 $as_echo_n "checking for a french Unicode locale... " >&6; }
-if test "${gt_cv_locale_fr_utf8+set}" = set; then :
+if ${gt_cv_locale_fr_utf8+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -16694,9 +20987,19 @@ int main () {
      variables, and all locales use the UTF-8 encoding.  */
 #if !(defined __BEOS__ || defined __HAIKU__)
   /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
   if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
@@ -16722,10 +21025,12 @@ int main () {
       || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
     return 1;
 #endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
   /* Check whether the decimal separator is a comma.
      On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
      are nl_langinfo(RADIXCHAR) are both ".".  */
   if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
   return 0;
 }
 
@@ -16735,27 +21040,46 @@ _ACEOF
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr_utf8=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr.UTF-8
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
           else
             # None found.
             gt_cv_locale_fr_utf8=none
           fi
-        fi
-      fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
     fi
     rm -fr conftest*
 
@@ -16766,6 +21090,8 @@ $as_echo "$gt_cv_locale_fr_utf8" >&6; }
 
 
 
+  GNULIB_FFSL=0;
+  GNULIB_FFSLL=0;
   GNULIB_MEMCHR=0;
   GNULIB_MEMMEM=0;
   GNULIB_MEMPCPY=0;
@@ -16798,10 +21124,13 @@ $as_echo "$gt_cv_locale_fr_utf8" >&6; }
   GNULIB_MBSSEP=0;
   GNULIB_MBSTOK_R=0;
   GNULIB_STRERROR=0;
+  GNULIB_STRERROR_R=0;
   GNULIB_STRSIGNAL=0;
   GNULIB_STRVERSCMP=0;
   HAVE_MBSLEN=0;
-    HAVE_MEMCHR=1;
+    HAVE_FFSL=1;
+  HAVE_FFSLL=1;
+  HAVE_MEMCHR=1;
   HAVE_DECL_MEMMEM=1;
   HAVE_MEMPCPY=1;
   HAVE_DECL_MEMRCHR=1;
@@ -16816,6 +21145,7 @@ $as_echo "$gt_cv_locale_fr_utf8" >&6; }
   HAVE_STRSEP=1;
   HAVE_STRCASESTR=1;
   HAVE_DECL_STRTOK_R=1;
+  HAVE_DECL_STRERROR_R=1;
   HAVE_DECL_STRSIGNAL=1;
   HAVE_STRVERSCMP=1;
   REPLACE_MEMCHR=0;
@@ -16824,7 +21154,9 @@ $as_echo "$gt_cv_locale_fr_utf8" >&6; }
   REPLACE_STRDUP=0;
   REPLACE_STRSTR=0;
   REPLACE_STRCASESTR=0;
+  REPLACE_STRCHRNUL=0;
   REPLACE_STRERROR=0;
+  REPLACE_STRERROR_R=0;
   REPLACE_STRNCAT=0;
   REPLACE_STRNDUP=0;
   REPLACE_STRNLEN=0;
@@ -16840,16 +21172,11 @@ $as_echo "$gt_cv_locale_fr_utf8" >&6; }
 
 
 
-
-
-
-
-
   # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
   # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
   # irrelevant for anonymous mappings.
   ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
+if test "x$ac_cv_func_mmap" = xyes; then :
   gl_have_mmap=yes
 else
   gl_have_mmap=no
@@ -16866,12 +21193,12 @@ $as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
 
 #include <sys/mman.h>
 #ifdef MAP_ANONYMOUS
-    I cant identify this map.
+    I cannot identify this map
 #endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
   gl_have_mmap_anonymous=yes
 fi
 rm -f conftest*
@@ -16882,12 +21209,12 @@ rm -f conftest*
 
 #include <sys/mman.h>
 #ifdef MAP_ANON
-    I cant identify this map.
+    I cannot identify this map
 #endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
 
 $as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
@@ -16910,7 +21237,7 @@ $as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
 
 
-  if test $ac_cv_func_memchr = yes; then
+  if test $HAVE_MEMCHR = 1; then
     # Detect platform-specific bugs in some versions of glibc:
     # memchr should not dereference anything with length 0
     #   http://bugzilla.redhat.com/499689
@@ -16920,7 +21247,7 @@ $as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
     # Assume that memchr works on platforms that lack mprotect.
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5
 $as_echo_n "checking whether memchr works... " >&6; }
-if test "${gl_cv_func_memchr_works+set}" = set; then :
+if ${gl_cv_func_memchr_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then :
@@ -16944,6 +21271,7 @@ int
 main ()
 {
 
+  int result = 0;
   char *fence = NULL;
 #if HAVE_SYS_MMAN_H && HAVE_MPROTECT
 # if HAVE_MAP_ANONYMOUS
@@ -16967,12 +21295,14 @@ main ()
   if (fence)
     {
       if (memchr (fence, 0, 0))
-        return 1;
+        result |= 1;
       strcpy (fence - 9, "12345678");
       if (memchr (fence - 9, 0, 79) != fence - 1)
-        return 2;
+        result |= 2;
+      if (memchr (fence - 1, 0, 3) != fence - 1)
+        result |= 4;
     }
-  return 0;
+  return result;
 
   ;
   return 0;
@@ -16993,34 +21323,6 @@ $as_echo "$gl_cv_func_memchr_works" >&6; }
     if test "$gl_cv_func_memchr_works" != yes; then
       REPLACE_MEMCHR=1
     fi
-  else
-    HAVE_MEMCHR=0
-  fi
-  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext"
-
-
-  for ac_header in bp-sym.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default"
-if test "x$ac_cv_header_bp_sym_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_BP_SYM_H 1
-_ACEOF
-
-fi
-
-done
-
-
   fi
 
 
@@ -17029,13 +21331,13 @@ done
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <limits.h> defines MIN and MAX" >&5
 $as_echo_n "checking whether <limits.h> defines MIN and MAX... " >&6; }
-if test "${gl_cv_minmax_in_limits_h+set}" = set; then :
+if ${gl_cv_minmax_in_limits_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <limits.h>
-int x = MIN (42, 17);
+            int x = MIN (42, 17);
 int
 main ()
 {
@@ -17066,13 +21368,13 @@ $as_echo "#define HAVE_MINMAX_IN_LIMITS_H 1" >>confdefs.h
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <sys/param.h> defines MIN and MAX" >&5
 $as_echo_n "checking whether <sys/param.h> defines MIN and MAX... " >&6; }
-if test "${gl_cv_minmax_in_sys_param_h+set}" = set; then :
+if ${gl_cv_minmax_in_sys_param_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/param.h>
-int x = MIN (42, 17);
+            int x = MIN (42, 17);
 int
 main ()
 {
@@ -17135,9 +21437,6 @@ if ac_fn_c_try_compile "$LINENO"; then :
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   if test $gl_cv_c_multiarch = yes; then
-
-$as_echo "#define AA_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
-
     APPLE_UNIVERSAL_BUILD=1
   else
     APPLE_UNIVERSAL_BUILD=0
@@ -17183,82 +21482,66 @@ $as_echo "#define ENABLE_RELOCATABLE 1" >>confdefs.h
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
-if test "${ac_cv_header_stdbool_h+set}" = set; then :
+if ${ac_cv_header_stdbool_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-          #include <stdbool.h>
-          #ifndef bool
-           "error: bool is not defined"
-          #endif
-          #ifndef false
-           "error: false is not defined"
-          #endif
-          #if false
-           "error: false is not 0"
-          #endif
-          #ifndef true
-           "error: true is not defined"
-          #endif
-          #if true != 1
-           "error: true is not 1"
-          #endif
-          #ifndef __bool_true_false_are_defined
-           "error: __bool_true_false_are_defined is not defined"
-          #endif
+             #include <stdbool.h>
+             #ifndef bool
+              "error: bool is not defined"
+             #endif
+             #ifndef false
+              "error: false is not defined"
+             #endif
+             #if false
+              "error: false is not 0"
+             #endif
+             #ifndef true
+              "error: true is not defined"
+             #endif
+             #if true != 1
+              "error: true is not 1"
+             #endif
+             #ifndef __bool_true_false_are_defined
+              "error: __bool_true_false_are_defined is not defined"
+             #endif
 
-          struct s { _Bool s: 1; _Bool t; } s;
-
-          char a[true == 1 ? 1 : -1];
-          char b[false == 0 ? 1 : -1];
-          char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-          char d[(bool) 0.5 == true ? 1 : -1];
-          bool e = &s;
-          char f[(_Bool) 0.0 == false ? 1 : -1];
-          char g[true];
-          char h[sizeof (_Bool)];
-          char i[sizeof s.t];
-          enum { j = false, k = true, l = false * true, m = true * 256 };
-          _Bool n[m];
-          char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-          char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-          #if defined __xlc__ || defined __GNUC__
-           /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
-              reported by James Lemley on 2005-10-05; see
-              http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
-              This test is not quite right, since xlc is allowed to
-              reject this program, as the initializer for xlcbug is
-              not one of the forms that C requires support for.
-              However, doing the test right would require a run-time
-              test, and that would make cross-compilation harder.
-              Let us hope that IBM fixes the xlc bug, and also adds
-              support for this kind of constant expression.  In the
-              meantime, this test will reject xlc, which is OK, since
-              our stdbool.h substitute should suffice.  We also test
-              this with GCC, where it should work, to detect more
-              quickly whether someone messes up the test in the
-              future.  */
-           char digs[] = "0123456789";
-           int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
-          #endif
-          /* Catch a bug in an HP-UX C compiler.  See
-             http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-             http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-           */
-          _Bool q = true;
-          _Bool *pq = &q;
+             struct s { _Bool s: 1; _Bool t; } s;
+
+             char a[true == 1 ? 1 : -1];
+             char b[false == 0 ? 1 : -1];
+             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+             char d[(bool) 0.5 == true ? 1 : -1];
+             /* See body of main program for 'e'.  */
+             char f[(_Bool) 0.0 == false ? 1 : -1];
+             char g[true];
+             char h[sizeof (_Bool)];
+             char i[sizeof s.t];
+             enum { j = false, k = true, l = false * true, m = true * 256 };
+             /* The following fails for
+                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+             _Bool n[m];
+             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+             char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+             /* Catch a bug in an HP-UX C compiler.  See
+                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+              */
+             _Bool q = true;
+             _Bool *pq = &q;
 
 int
 main ()
 {
 
-          *pq |= q;
-          *pq |= ! q;
-          /* Refer to every declared value, to avoid compiler optimizations.  */
-          return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
-                  + !m + !n + !o + !p + !q + !pq);
+             bool e = &s;
+             *pq |= q;
+             *pq |= ! q;
+             /* Refer to every declared value, to avoid compiler optimizations.  */
+             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+                     + !m + !n + !o + !p + !q + !pq);
 
   ;
   return 0;
@@ -17274,7 +21557,7 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
 $as_echo "$ac_cv_header_stdbool_h" >&6; }
    ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
-if test "x$ac_cv_type__Bool" = x""yes; then :
+if test "x$ac_cv_type__Bool" = xyes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE__BOOL 1
@@ -17283,26 +21566,21 @@ _ACEOF
 
 fi
 
-   if test $ac_cv_header_stdbool_h = yes; then
-
-$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
 
-   fi
 
     REPLACE_NULL=0;
   HAVE_WCHAR_T=1;
-  STDDEF_H='';
 
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
 $as_echo_n "checking for wchar_t... " >&6; }
-if test "${gt_cv_c_wchar_t+set}" = set; then :
+if ${gt_cv_c_wchar_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stddef.h>
-       wchar_t foo = (wchar_t)'\0';
+            wchar_t foo = (wchar_t)'\0';
 int
 main ()
 {
@@ -17329,111 +21607,44 @@ $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
-$as_echo_n "checking for unsigned long long int... " >&6; }
-if test "${ac_cv_type_unsigned_long_long_int+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-  /* For now, do not test the preprocessor; as of 2007 there are too many
-         implementations with broken preprocessors.  Perhaps this can
-         be revisited in 2012.  In the meantime, code should not expect
-         #if to work with literals wider than 32 bits.  */
-      /* Test literals.  */
-      long long int ll = 9223372036854775807ll;
-      long long int nll = -9223372036854775807LL;
-      unsigned long long int ull = 18446744073709551615ULL;
-      /* Test constant expressions.   */
-      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-                     ? 1 : -1)];
-      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
-                     ? 1 : -1)];
-      int i = 63;
-int
-main ()
-{
-/* Test availability of runtime routines for shift and division.  */
-      long long int llmax = 9223372036854775807ll;
-      unsigned long long int ullmax = 18446744073709551615ull;
-      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-              | (llmax / ll) | (llmax % ll)
-              | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
-              | (ullmax / ull) | (ullmax % ull));
-  ;
-  return 0;
-}
 
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_type_unsigned_long_long_int=yes
-else
-  ac_cv_type_unsigned_long_long_int=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
-$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
 
-$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
 
+  if test $ac_cv_type_long_long_int = yes; then
+    HAVE_LONG_LONG_INT=1
+  else
+    HAVE_LONG_LONG_INT=0
   fi
 
 
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+    HAVE_UNSIGNED_LONG_LONG_INT=1
+  else
+    HAVE_UNSIGNED_LONG_LONG_INT=0
+  fi
 
 
 
+  if test $ac_cv_header_wchar_h = yes; then
+    HAVE_WCHAR_H=1
+  else
+    HAVE_WCHAR_H=0
+  fi
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
-$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
-if test "${ac_cv_c_restrict+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_restrict=no
-   # The order here caters to the fact that C++ does not require restrict.
-   for ac_kw in __restrict __restrict__ _Restrict restrict; do
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-typedef int * int_ptr;
-       int foo (int_ptr $ac_kw ip) {
-       return ip[0];
-       }
-int
-main ()
-{
-int s[1];
-       int * $ac_kw t = s;
-       t[0] = 0;
-       return foo(t)
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_restrict=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     test "$ac_cv_c_restrict" != no && break
-   done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
-$as_echo "$ac_cv_c_restrict" >&6; }
+      if test $ac_cv_header_inttypes_h = yes; then
+    HAVE_INTTYPES_H=1
+  else
+    HAVE_INTTYPES_H=0
+  fi
 
- case $ac_cv_c_restrict in
-   restrict) ;;
-   no) $as_echo "#define restrict /**/" >>confdefs.h
- ;;
-   *)  cat >>confdefs.h <<_ACEOF
-#define restrict $ac_cv_c_restrict
-_ACEOF
- ;;
- esac
 
+      if test $ac_cv_header_sys_types_h = yes; then
+    HAVE_SYS_TYPES_H=1
+  else
+    HAVE_SYS_TYPES_H=0
+  fi
 
 
 
@@ -17446,407 +21657,489 @@ _ACEOF
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_string_h='<'string.h'>'
+       gl_cv_next_stdint_h='<'stdint.h'>'
      else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <string.h>" >&5
-$as_echo_n "checking absolute name of <string.h>... " >&6; }
-if test "${gl_cv_next_string_h+set}" = set; then :
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5
+$as_echo_n "checking absolute name of <stdint.h>... " >&6; }
+if ${gl_cv_next_stdint_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-          if test $ac_cv_header_string_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
+             if test $ac_cv_header_stdint_h = yes; then
+
 
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdint.h>
 _ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/string.h#{
-                 s#.*"\(.*/string.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'stdint.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_stdint_h
+           gl_cv_next_stdint_h='"'$gl_header'"'
           else
-            gl_cv_next_string_h='<'string.h'>'
-          fi
+               gl_cv_next_stdint_h='<'stdint.h'>'
+             fi
+
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5
-$as_echo "$gl_cv_next_string_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5
+$as_echo "$gl_cv_next_stdint_h" >&6; }
      fi
-     NEXT_STRING_H=$gl_cv_next_string_h
+     NEXT_STDINT_H=$gl_cv_next_stdint_h
 
      if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'string.h'>'
+       gl_next_as_first_directive='<'stdint.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_string_h
+       gl_next_as_first_directive=$gl_cv_next_stdint_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive
+     NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive
 
 
 
 
+  if test $ac_cv_header_stdint_h = yes; then
+    HAVE_STDINT_H=1
+  else
+    HAVE_STDINT_H=0
+  fi
+
 
-    for gl_func in memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup      strncat strndup strnlen strpbrk strsep strcasestr strtok_r strsignal      strverscmp; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
+    if test $ac_cv_header_stdint_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5
+$as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
+if ${gl_cv_header_working_stdint_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  gl_cv_header_working_stdint_h=no
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <string.h>
 
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
-else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     eval as_val=\$$as_gl_Symbol
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
 
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-      done
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+#endif
+
 
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
 
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
+#else
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+#endif
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
+#endif
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
+#endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
 
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+  ((t) ((t) 0 < (t) -1 \
+        ? (t) -1 \
+        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+struct s {
+  int check_PTRDIFF:
+      PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+      && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+      ? 1 : -1;
+  /* Detect bug in FreeBSD 6.0 / ia64.  */
+  int check_SIG_ATOMIC:
+      SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+      && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+      ? 1 : -1;
+  int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+  int check_WCHAR:
+      WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+      && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+      ? 1 : -1;
+  /* Detect bug in mingw.  */
+  int check_WINT:
+      WINT_MIN == TYPE_MINIMUM (wint_t)
+      && WINT_MAX == TYPE_MAXIMUM (wint_t)
+      ? 1 : -1;
 
+  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
+  int check_UINT8_C:
+        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+  int check_UINT16_C:
+        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
 
+  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
+#ifdef UINT8_MAX
+  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
 
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+                                                    if test "$cross_compiling" = yes; then :
+                 gl_cv_header_working_stdint_h=yes
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
 
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
-else
-  gl_have_mmap=no
-fi
 
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
+#include <stdio.h>
+#include <string.h>
+#define MVAL(macro) MVAL1(macro)
+#define MVAL1(expression) #expression
+static const char *macro_values[] =
+  {
+#ifdef INT8_MAX
+    MVAL (INT8_MAX),
+#endif
+#ifdef INT16_MAX
+    MVAL (INT16_MAX),
+#endif
+#ifdef INT32_MAX
+    MVAL (INT32_MAX),
+#endif
+#ifdef INT64_MAX
+    MVAL (INT64_MAX),
+#endif
+#ifdef UINT8_MAX
+    MVAL (UINT8_MAX),
+#endif
+#ifdef UINT16_MAX
+    MVAL (UINT16_MAX),
+#endif
+#ifdef UINT32_MAX
+    MVAL (UINT32_MAX),
 #endif
+#ifdef UINT64_MAX
+    MVAL (UINT64_MAX),
+#endif
+    NULL
+  };
+
+int
+main ()
+{
+
+  const char **mv;
+  for (mv = macro_values; *mv != NULL; mv++)
+    {
+      const char *value = *mv;
+      /* Test whether it looks like a cast expression.  */
+      if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0
+          || strncmp (value, "((unsigned short)"/*)*/, 17) == 0
+          || strncmp (value, "((unsigned char)"/*)*/, 16) == 0
+          || strncmp (value, "((int)"/*)*/, 6) == 0
+          || strncmp (value, "((signed short)"/*)*/, 15) == 0
+          || strncmp (value, "((signed char)"/*)*/, 14) == 0)
+        return mv - macro_values + 1;
+    }
+  return 0;
 
+  ;
+  return 0;
+}
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_header_working_stdint_h=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f conftest*
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5
+$as_echo "$gl_cv_header_working_stdint_h" >&6; }
+  fi
+  if test "$gl_cv_header_working_stdint_h" = yes; then
+    STDINT_H=
+  else
+            for ac_header in sys/inttypes.h sys/bitypes.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
-
-         gl_have_mmap_anonymous=yes
 fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
+done
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+    if test $ac_cv_header_sys_inttypes_h = yes; then
+      HAVE_SYS_INTTYPES_H=1
+    else
+      HAVE_SYS_INTTYPES_H=0
+    fi
 
+    if test $ac_cv_header_sys_bitypes_h = yes; then
+      HAVE_SYS_BITYPES_H=1
+    else
+      HAVE_SYS_BITYPES_H=0
     fi
-  fi
 
 
 
 
-          { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strncat works" >&5
-$as_echo_n "checking whether strncat works... " >&6; }
-if test "${gl_cv_func_strncat_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
 
-        case "$host_os" in
-                    # Guess no on Solaris.
-          solaris*) gl_cv_func_strncat_works="guessing no";;
-                    # Guess yes otherwise.
-          *)        gl_cv_func_strncat_works="guessing yes";;
-        esac
 
+  for gltype in ptrdiff_t size_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <string.h>
-#if HAVE_SYS_MMAN_H
-# include <fcntl.h>
-# include <unistd.h>
-# include <sys/types.h>
-# include <sys/mman.h>
-# ifndef MAP_FILE
-#  define MAP_FILE 0
-# endif
-#endif
-
-int
-main ()
-{
-
-  char *fence = NULL;
-#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
-# if HAVE_MAP_ANONYMOUS
-  const int flags = MAP_ANONYMOUS | MAP_PRIVATE;
-  const int fd = -1;
-# else /* !HAVE_MAP_ANONYMOUS */
-  const int flags = MAP_FILE | MAP_PRIVATE;
-  int fd = open ("/dev/zero", O_RDONLY, 0666);
-  if (fd >= 0)
-# endif
-    {
-      int pagesize = getpagesize ();
-      char *two_pages =
-        (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
-                       flags, fd, 0);
-      if (two_pages != (char *)(-1)
-          && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
-        fence = two_pages + pagesize;
-    }
-#endif
-  if (fence)
-    {
-      char dest[8];
-
-      dest[0] = '*';
-      dest[1] = 'a';
-      dest[2] = '\0';
-      dest[3] = 'w';
-      dest[4] = 'x';
-      dest[5] = 'y';
-      dest[6] = 'z';
-
-      *(fence - 3) = '7';
-      *(fence - 2) = '2';
-      *(fence - 1) = '9';
+  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
-      if (strncat (dest + 1, fence - 3, 3) != dest + 1)
-        return 1;
-      if (dest[0] != '*')
-        return 2;
-      if (dest[1] != 'a'
-          || dest[2] != '7' || dest[3] != '2' || dest[4] != '9'
-          || dest[5] != '\0')
-        return 3;
-      if (dest[6] != 'z')
-        return 4;
-    }
-  return 0;
+#include <limits.h>"; then :
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_strncat_works=yes
 else
-  gl_cv_func_strncat_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  result=unknown
 fi
 
+       eval gl_cv_bitsizeof_${gltype}=\$result
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strncat_works" >&5
-$as_echo "$gl_cv_func_strncat_works" >&6; }
-  case "$gl_cv_func_strncat_works" in
-    *yes) ;;
-    *)
-      REPLACE_STRNCAT=1
-
-
-
-
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    eval result=\$gl_cv_bitsizeof_${gltype}
+    if test $result = unknown; then
+                                                result=0
+    fi
+    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    cat >>confdefs.h <<_ACEOF
+#define BITSIZEOF_${GLTYPE} $result
+_ACEOF
 
+    eval BITSIZEOF_${GLTYPE}=\$result
+  done
 
 
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS strncat.$ac_objext"
 
+  for gltype in sig_atomic_t wchar_t wint_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
 
-  :
+#include <limits.h>"; then :
 
-      ;;
-  esac
+else
+  result=unknown
+fi
 
+       eval gl_cv_bitsizeof_${gltype}=\$result
 
-  GNULIB_CHOWN=0;
-  GNULIB_CLOSE=0;
-  GNULIB_DUP2=0;
-  GNULIB_DUP3=0;
-  GNULIB_ENVIRON=0;
-  GNULIB_EUIDACCESS=0;
-  GNULIB_FACCESSAT=0;
-  GNULIB_FCHDIR=0;
-  GNULIB_FCHOWNAT=0;
-  GNULIB_FSYNC=0;
-  GNULIB_FTRUNCATE=0;
-  GNULIB_GETCWD=0;
-  GNULIB_GETDOMAINNAME=0;
-  GNULIB_GETDTABLESIZE=0;
-  GNULIB_GETGROUPS=0;
-  GNULIB_GETHOSTNAME=0;
-  GNULIB_GETLOGIN=0;
-  GNULIB_GETLOGIN_R=0;
-  GNULIB_GETPAGESIZE=0;
-  GNULIB_GETUSERSHELL=0;
-  GNULIB_LCHOWN=0;
-  GNULIB_LINK=0;
-  GNULIB_LINKAT=0;
-  GNULIB_LSEEK=0;
-  GNULIB_PIPE2=0;
-  GNULIB_PREAD=0;
-  GNULIB_READLINK=0;
-  GNULIB_READLINKAT=0;
-  GNULIB_RMDIR=0;
-  GNULIB_SLEEP=0;
-  GNULIB_SYMLINK=0;
-  GNULIB_SYMLINKAT=0;
-  GNULIB_TTYNAME_R=0;
-  GNULIB_UNISTD_H_GETOPT=0;
-  GNULIB_UNISTD_H_SIGPIPE=0;
-  GNULIB_UNLINK=0;
-  GNULIB_UNLINKAT=0;
-  GNULIB_USLEEP=0;
-  GNULIB_WRITE=0;
-    HAVE_CHOWN=1;
-  HAVE_DUP2=1;
-  HAVE_DUP3=1;
-  HAVE_EUIDACCESS=1;
-  HAVE_FACCESSAT=1;
-  HAVE_FCHDIR=1;
-  HAVE_FCHOWNAT=1;
-  HAVE_FSYNC=1;
-  HAVE_FTRUNCATE=1;
-  HAVE_GETDOMAINNAME=1;
-  HAVE_GETDTABLESIZE=1;
-  HAVE_GETGROUPS=1;
-  HAVE_GETHOSTNAME=1;
-  HAVE_GETLOGIN=1;
-  HAVE_GETPAGESIZE=1;
-  HAVE_LCHOWN=1;
-  HAVE_LINK=1;
-  HAVE_LINKAT=1;
-  HAVE_PIPE2=1;
-  HAVE_PREAD=1;
-  HAVE_READLINK=1;
-  HAVE_READLINKAT=1;
-  HAVE_SLEEP=1;
-  HAVE_SYMLINK=1;
-  HAVE_SYMLINKAT=1;
-  HAVE_TTYNAME_R=1;
-  HAVE_UNLINKAT=1;
-  HAVE_USLEEP=1;
-  HAVE_DECL_ENVIRON=1;
-  HAVE_DECL_GETLOGIN_R=1;
-  HAVE_DECL_GETPAGESIZE=1;
-  HAVE_DECL_GETUSERSHELL=1;
-  HAVE_OS_H=0;
-  HAVE_SYS_PARAM_H=0;
-  REPLACE_CHOWN=0;
-  REPLACE_CLOSE=0;
-  REPLACE_DUP=0;
-  REPLACE_DUP2=0;
-  REPLACE_FCHOWNAT=0;
-  REPLACE_GETCWD=0;
-  REPLACE_GETGROUPS=0;
-  REPLACE_GETPAGESIZE=0;
-  REPLACE_LCHOWN=0;
-  REPLACE_LINK=0;
-  REPLACE_LINKAT=0;
-  REPLACE_LSEEK=0;
-  REPLACE_PREAD=0;
-  REPLACE_READLINK=0;
-  REPLACE_RMDIR=0;
-  REPLACE_SLEEP=0;
-  REPLACE_SYMLINK=0;
-  REPLACE_TTYNAME_R=0;
-  REPLACE_UNLINK=0;
-  REPLACE_UNLINKAT=0;
-  REPLACE_USLEEP=0;
-  REPLACE_WRITE=0;
-  UNISTD_H_HAVE_WINSOCK2_H=0;
-  UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
+fi
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    eval result=\$gl_cv_bitsizeof_${gltype}
+    if test $result = unknown; then
+                                                result=0
+    fi
+    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    cat >>confdefs.h <<_ACEOF
+#define BITSIZEOF_${GLTYPE} $result
+_ACEOF
 
+    eval BITSIZEOF_${GLTYPE}=\$result
+  done
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
-$as_echo_n "checking for wint_t... " >&6; }
-if test "${gt_cv_c_wint_t+set}" = set; then :
+  for gltype in sig_atomic_t wchar_t wint_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5
+$as_echo_n "checking whether $gltype is signed... " >&6; }
+if eval \${gl_cv_type_${gltype}_signed+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-   before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-       wint_t foo = (wchar_t)'\0';
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
+
+            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
 int
 main ()
 {
@@ -17856,221 +22149,354 @@ main ()
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_c_wint_t=yes
+  result=yes
 else
-  gt_cv_c_wint_t=no
+  result=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5
-$as_echo "$gt_cv_c_wint_t" >&6; }
-  if test $gt_cv_c_wint_t = yes; then
-
-$as_echo "#define HAVE_WINT_T 1" >>confdefs.h
-
-  fi
+       eval gl_cv_type_${gltype}_signed=\$result
 
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = x""yes; then :
+fi
+eval ac_res=\$gl_cv_type_${gltype}_signed
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    eval result=\$gl_cv_type_${gltype}_signed
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    if test "$result" = yes; then
+      cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGNED_${GLTYPE} 1
+_ACEOF
 
-else
+      eval HAVE_SIGNED_${GLTYPE}=1
+    else
+      eval HAVE_SIGNED_${GLTYPE}=0
+    fi
+  done
 
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
 
-fi
+  gl_cv_type_ptrdiff_t_signed=yes
+  gl_cv_type_size_t_signed=no
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
-$as_echo_n "checking for inttypes.h... " >&6; }
-if test "${gl_cv_header_inttypes_h+set}" = set; then :
+  for gltype in ptrdiff_t size_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  eval gl_cv_type_${gltype}_suffix=no
+       eval result=\$gl_cv_type_${gltype}_signed
+       if test "$result" = yes; then
+         glsufu=
+       else
+         glsufu=u
+       fi
+       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+         case $glsuf in
+           '')  gltype1='int';;
+           l)   gltype1='long int';;
+           ll)  gltype1='long long int';;
+           i64) gltype1='__int64';;
+           u)   gltype1='unsigned int';;
+           ul)  gltype1='unsigned long int';;
+           ull) gltype1='unsigned long long int';;
+           ui64)gltype1='unsigned __int64';;
+         esac
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-#include <inttypes.h>
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
+
+              extern $gltype foo;
+              extern $gltype1 foo;
 int
 main ()
 {
-uintmax_t i = (uintmax_t) -1; return !i;
+
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_inttypes_h=yes
-else
-  gl_cv_header_inttypes_h=no
+  eval gl_cv_type_${gltype}_suffix=\$glsuf
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+         eval result=\$gl_cv_type_${gltype}_suffix
+         test "$result" != no && break
+       done
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5
-$as_echo "$gl_cv_header_inttypes_h" >&6; }
-  if test $gl_cv_header_inttypes_h = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_INTTYPES_H_WITH_UINTMAX 1
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    eval result=\$gl_cv_type_${gltype}_suffix
+    test "$result" = no && result=
+    eval ${GLTYPE}_SUFFIX=\$result
+    cat >>confdefs.h <<_ACEOF
+#define ${GLTYPE}_SUFFIX $result
 _ACEOF
 
+  done
+
+
   fi
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
-$as_echo_n "checking for stdint.h... " >&6; }
-if test "${gl_cv_header_stdint_h+set}" = set; then :
+  for gltype in sig_atomic_t wchar_t wint_t ; do
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  eval gl_cv_type_${gltype}_suffix=no
+       eval result=\$gl_cv_type_${gltype}_signed
+       if test "$result" = yes; then
+         glsufu=
+       else
+         glsufu=u
+       fi
+       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+         case $glsuf in
+           '')  gltype1='int';;
+           l)   gltype1='long int';;
+           ll)  gltype1='long long int';;
+           i64) gltype1='__int64';;
+           u)   gltype1='unsigned int';;
+           ul)  gltype1='unsigned long int';;
+           ull) gltype1='unsigned long long int';;
+           ui64)gltype1='unsigned __int64';;
+         esac
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-#include <stdint.h>
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
+
+              extern $gltype foo;
+              extern $gltype1 foo;
 int
 main ()
 {
-uintmax_t i = (uintmax_t) -1; return !i;
+
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_stdint_h=yes
-else
-  gl_cv_header_stdint_h=no
+  eval gl_cv_type_${gltype}_suffix=\$glsuf
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+         eval result=\$gl_cv_type_${gltype}_suffix
+         test "$result" != no && break
+       done
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5
-$as_echo "$gl_cv_header_stdint_h" >&6; }
-  if test $gl_cv_header_stdint_h = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STDINT_H_WITH_UINTMAX 1
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    eval result=\$gl_cv_type_${gltype}_suffix
+    test "$result" = no && result=
+    eval ${GLTYPE}_SUFFIX=\$result
+    cat >>confdefs.h <<_ACEOF
+#define ${GLTYPE}_SUFFIX $result
 _ACEOF
 
+  done
+
+
+
+          if test $BITSIZEOF_WINT_T -lt 32; then
+    BITSIZEOF_WINT_T=32
   fi
 
+    STDINT_H=stdint.h
+  fi
 
+   if test -n "$STDINT_H"; then
+  GL_GENERATE_STDINT_H_TRUE=
+  GL_GENERATE_STDINT_H_FALSE='#'
+else
+  GL_GENERATE_STDINT_H_TRUE='#'
+  GL_GENERATE_STDINT_H_FALSE=
+fi
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
-$as_echo_n "checking for intmax_t... " >&6; }
-if test "${gt_cv_c_intmax_t+set}" = set; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
+$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
+if ${ac_cv_c_restrict+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_cv_c_restrict=no
+   # The order here caters to the fact that C++ does not require restrict.
+   for ac_kw in __restrict __restrict__ _Restrict restrict; do
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#include <stddef.h>
-#include <stdlib.h>
-#if HAVE_STDINT_H_WITH_UINTMAX
-#include <stdint.h>
-#endif
-#if HAVE_INTTYPES_H_WITH_UINTMAX
-#include <inttypes.h>
-#endif
-
+typedef int * int_ptr;
+       int foo (int_ptr $ac_kw ip) {
+       return ip[0];
+       }
 int
 main ()
 {
-intmax_t x = -1; return !x;
+int s[1];
+       int * $ac_kw t = s;
+       t[0] = 0;
+       return foo(t)
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_c_intmax_t=yes
-else
-  gt_cv_c_intmax_t=no
+  ac_cv_c_restrict=$ac_kw
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     test "$ac_cv_c_restrict" != no && break
+   done
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5
-$as_echo "$gt_cv_c_intmax_t" >&6; }
-  if test $gt_cv_c_intmax_t = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
+$as_echo "$ac_cv_c_restrict" >&6; }
 
-$as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h
+ case $ac_cv_c_restrict in
+   restrict) ;;
+   no) $as_echo "#define restrict /**/" >>confdefs.h
+ ;;
+   *)  cat >>confdefs.h <<_ACEOF
+#define restrict $ac_cv_c_restrict
+_ACEOF
+ ;;
+ esac
 
-  else
 
-    test $ac_cv_type_long_long_int = yes \
-      && ac_type='long long' \
-      || ac_type='long'
 
-cat >>confdefs.h <<_ACEOF
-#define intmax_t $ac_type
-_ACEOF
 
-  fi
 
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5
-$as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; }
-if test "${gl_cv_func_snprintf_retval_c99+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-      if test "$cross_compiling" = yes; then :
 
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on FreeBSD >= 5.
-         freebsd[1-4]*)        gl_cv_func_snprintf_retval_c99="guessing no";;
-         freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on MacOS X >= 10.3.
-         darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
-         darwin*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on OpenBSD >= 3.9.
-         openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
-                               gl_cv_func_snprintf_retval_c99="guessing no";;
-         openbsd*)             gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on Solaris >= 2.6.
-         solaris2.[0-5]*)      gl_cv_func_snprintf_retval_c99="guessing no";;
-         solaris*)             gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on AIX >= 4.
-         aix[1-3]*)            gl_cv_func_snprintf_retval_c99="guessing no";;
-         aix*)                 gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on NetBSD >= 3.
-         netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                               gl_cv_func_snprintf_retval_c99="guessing no";;
-         netbsd*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on BeOS.
-         beos*)                gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_snprintf_retval_c99="guessing no";;
-       esac
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <stdio.h>
-#include <string.h>
-static char buf[100];
-int main ()
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_string_h='<'string.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <string.h>" >&5
+$as_echo_n "checking absolute name of <string.h>... " >&6; }
+if ${gl_cv_next_string_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'string.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_string_h
+           gl_cv_next_string_h='"'$gl_header'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5
+$as_echo "$gl_cv_next_string_h" >&6; }
+     fi
+     NEXT_STRING_H=$gl_cv_next_string_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'string.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_string_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive
+
+
+
+
+
+
+    for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul      strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r      strerror_r strsignal strverscmp; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+int
+main ()
 {
-  strcpy (buf, "ABCDEF");
-  if (snprintf (buf, 3, "%d %d", 4567, 89) != 7)
-    return 1;
+#undef $gl_func
+  (void) $gl_func;
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_snprintf_retval_c99=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  gl_cv_func_snprintf_retval_c99=no
+  eval "$as_gl_Symbol=no"
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
 
-
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5
-$as_echo "$gl_cv_func_snprintf_retval_c99" >&6; }
+      done
 
 
 
@@ -18078,84 +22504,161 @@ $as_echo "$gl_cv_func_snprintf_retval_c99" >&6; }
 
 
 
-  for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-fi
-done
 
-      ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include <stdio.h>
-"
-if test "x$ac_cv_have_decl__snprintf" = x""yes; then :
-  ac_have_decl=1
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
 else
-  ac_have_decl=0
+  gl_have_mmap=no
 fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL__SNPRINTF $ac_have_decl
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
 _ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
 
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  case "$gl_cv_func_snprintf_retval_c99" in
-    *yes)
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
 
-$as_echo "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
 
-      ;;
-  esac
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
 
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
+    fi
+  fi
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports 'long double' arguments" >&5
-$as_echo_n "checking whether printf supports 'long double' arguments... " >&6; }
-if test "${gl_cv_func_printf_long_double+set}" = set; then :
+
+
+
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strncat works" >&5
+$as_echo_n "checking whether strncat works... " >&6; }
+if ${gl_cv_func_strncat_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
+  if test "$cross_compiling" = yes; then :
 
-      if test "$cross_compiling" = yes; then :
-
-       case "$host_os" in
-         beos*)        gl_cv_func_printf_long_double="guessing no";;
-         mingw* | pw*) gl_cv_func_printf_long_double="guessing no";;
-         *)            gl_cv_func_printf_long_double="guessing yes";;
-       esac
+        case "$host_os" in
+                    # Guess no on Solaris.
+          solaris*) gl_cv_func_strncat_works="guessing no";;
+                    # Guess yes otherwise.
+          *)        gl_cv_func_strncat_works="guessing yes";;
+        esac
 
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <stdio.h>
 #include <string.h>
-static char buf[10000];
-int main ()
+#if HAVE_SYS_MMAN_H
+# include <fcntl.h>
+# include <unistd.h>
+# include <sys/types.h>
+# include <sys/mman.h>
+# ifndef MAP_FILE
+#  define MAP_FILE 0
+# endif
+#endif
+
+int
+main ()
 {
-  buf[0] = '\0';
-  if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0
-      || strcmp (buf, "1.750000 33") != 0)
-    return 1;
-  buf[0] = '\0';
-  if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0
-      || strcmp (buf, "1.750000e+00 33") != 0)
-    return 1;
-  buf[0] = '\0';
-  if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0
-      || strcmp (buf, "1.75 33") != 0)
-    return 1;
+
+  char *fence = NULL;
+#if HAVE_SYS_MMAN_H && HAVE_MPROTECT
+# if HAVE_MAP_ANONYMOUS
+  const int flags = MAP_ANONYMOUS | MAP_PRIVATE;
+  const int fd = -1;
+# else /* !HAVE_MAP_ANONYMOUS */
+  const int flags = MAP_FILE | MAP_PRIVATE;
+  int fd = open ("/dev/zero", O_RDONLY, 0666);
+  if (fd >= 0)
+# endif
+    {
+      int pagesize = getpagesize ();
+      char *two_pages =
+        (char *) mmap (NULL, 2 * pagesize, PROT_READ | PROT_WRITE,
+                       flags, fd, 0);
+      if (two_pages != (char *)(-1)
+          && mprotect (two_pages + pagesize, pagesize, PROT_NONE) == 0)
+        fence = two_pages + pagesize;
+    }
+#endif
+  if (fence)
+    {
+      char dest[8];
+
+      dest[0] = '*';
+      dest[1] = 'a';
+      dest[2] = '\0';
+      dest[3] = 'w';
+      dest[4] = 'x';
+      dest[5] = 'y';
+      dest[6] = 'z';
+
+      *(fence - 3) = '7';
+      *(fence - 2) = '2';
+      *(fence - 1) = '9';
+
+      if (strncat (dest + 1, fence - 3, 3) != dest + 1)
+        return 1;
+      if (dest[0] != '*')
+        return 2;
+      if (dest[1] != 'a'
+          || dest[2] != '7' || dest[3] != '2' || dest[4] != '9'
+          || dest[5] != '\0')
+        return 3;
+      if (dest[6] != 'z')
+        return 4;
+    }
+  return 0;
+
+  ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_printf_long_double=yes
+  gl_cv_func_strncat_works=yes
 else
-  gl_cv_func_printf_long_double=no
+  gl_cv_func_strncat_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_long_double" >&5
-$as_echo "$gl_cv_func_printf_long_double" >&6; }
-
-
-
-  case "$gl_cv_func_printf_long_double" in
-    *yes)
-      ;;
-    *)
-
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
-
-      ;;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strncat_works" >&5
+$as_echo "$gl_cv_func_strncat_works" >&6; }
+  case "$gl_cv_func_strncat_works" in
+    *yes) ;;
+    *) REPLACE_STRNCAT=1 ;;
   esac
 
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports infinite 'double' arguments" >&5
-$as_echo_n "checking whether printf supports infinite 'double' arguments... " >&6; }
-if test "${gl_cv_func_printf_infinite+set}" = set; then :
+
+  if test "$gl_cv_func_memchr_works" != yes; then
+    REPLACE_STRSTR=1
+  else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works" >&5
+$as_echo_n "checking whether strstr works... " >&6; }
+if ${gl_cv_func_strstr_works_always+:} false; then :
   $as_echo_n "(cached) " >&6
 else
+  if test "$cross_compiling" = yes; then :
+                                               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-      if test "$cross_compiling" = yes; then :
+#ifdef __GNU_LIBRARY__
+ #include <features.h>
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     || defined __UCLIBC__
+  Lucky user
+ #endif
+#elif defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
+  Lucky user
+ #endif
+#else
+  Lucky user
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky user" >/dev/null 2>&1; then :
+  gl_cv_func_strstr_works_always="guessing yes"
+else
+  gl_cv_func_strstr_works_always="guessing no"
+fi
+rm -f conftest*
 
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_printf_infinite="guessing yes";;
-                               # Guess yes on FreeBSD >= 6.
-         freebsd[1-5]*)        gl_cv_func_printf_infinite="guessing no";;
-         freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
-                               # Guess yes on MacOS X >= 10.3.
-         darwin[1-6].*)        gl_cv_func_printf_infinite="guessing no";;
-         darwin*)              gl_cv_func_printf_infinite="guessing yes";;
-                               # Guess yes on HP-UX >= 11.
-         hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";;
-         hpux*)                gl_cv_func_printf_infinite="guessing yes";;
-                               # Guess yes on NetBSD >= 3.
-         netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                               gl_cv_func_printf_infinite="guessing no";;
-         netbsd*)              gl_cv_func_printf_infinite="guessing yes";;
-                               # Guess yes on BeOS.
-         beos*)                gl_cv_func_printf_infinite="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_printf_infinite="guessing no";;
-       esac
 
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <stdio.h>
-#include <string.h>
-static int
-strisnan (const char *string, size_t start_index, size_t end_index)
-{
-  if (start_index < end_index)
-    {
-      if (string[start_index] == '-')
-        start_index++;
-      if (start_index + 3 <= end_index
-          && memcmp (string + start_index, "nan", 3) == 0)
-        {
-          start_index += 3;
-          if (start_index == end_index
-              || (string[start_index] == '(' && string[end_index - 1] == ')'))
-            return 1;
-        }
-    }
-  return 0;
-}
-static int
-have_minus_zero ()
-{
-  static double plus_zero = 0.0;
-  double minus_zero = - plus_zero;
-  return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0;
-}
-static char buf[10000];
-static double zero = 0.0;
-int main ()
+#include <string.h> /* for strstr */
+#define P "_EF_BF_BD"
+#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P
+#define NEEDLE P P P P P
+
+int
+main ()
 {
-  if (sprintf (buf, "%f", 1.0 / 0.0) < 0
-      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%f", -1.0 / 0.0) < 0
-      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%f", zero / zero) < 0
-      || !strisnan (buf, 0, strlen (buf)))
-    return 1;
-  if (sprintf (buf, "%e", 1.0 / 0.0) < 0
-      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%e", -1.0 / 0.0) < 0
-      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%e", zero / zero) < 0
-      || !strisnan (buf, 0, strlen (buf)))
-    return 1;
-  if (sprintf (buf, "%g", 1.0 / 0.0) < 0
-      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%g", -1.0 / 0.0) < 0
-      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%g", zero / zero) < 0
-      || !strisnan (buf, 0, strlen (buf)))
-    return 1;
-  /* This test fails on HP-UX 10.20.  */
-  if (have_minus_zero ())
-    if (sprintf (buf, "%g", - zero) < 0
-        || strcmp (buf, "-0") != 0)
-    return 1;
+return !!strstr (HAYSTACK, NEEDLE);
+
+  ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_printf_infinite=yes
+  gl_cv_func_strstr_works_always=yes
 else
-  gl_cv_func_printf_infinite=no
+  gl_cv_func_strstr_works_always=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_infinite" >&5
-$as_echo "$gl_cv_func_printf_infinite" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_works_always" >&5
+$as_echo "$gl_cv_func_strstr_works_always" >&6; }
+    case "$gl_cv_func_strstr_works_always" in
+      *yes) ;;
+      *)
+        REPLACE_STRSTR=1
+        ;;
+    esac
+  fi
 
 
 
+ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
+if test "x$ac_cv_type_pid_t" = xyes; then :
 
+else
 
-         if test -n "$gl_printf_safe"; then
+cat >>confdefs.h <<_ACEOF
+#define pid_t int
+_ACEOF
 
-$as_echo "#define CHECK_PRINTF_SAFE 1" >>confdefs.h
+fi
+
+ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
+if test "x$ac_cv_type_mode_t" = xyes; then :
 
-  fi
-  case "$gl_cv_func_printf_long_double" in
-    *yes)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports infinite 'long double' arguments" >&5
-$as_echo_n "checking whether printf supports infinite 'long double' arguments... " >&6; }
-if test "${gl_cv_func_printf_infinite_long_double+set}" = set; then :
-  $as_echo_n "(cached) " >&6
 else
 
-          if test "$cross_compiling" = yes; then :
+cat >>confdefs.h <<_ACEOF
+#define mode_t int
+_ACEOF
+
+fi
+
+
+
+    WINDOWS_64_BIT_OFF_T=0
+
+
 
-           case "$host_cpu" in
-                                   # Guess no on ia64, x86_64, i386.
-             ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";;
-             *)
-               case "$host_os" in
-                                       # Guess yes on glibc systems.
-                 *-gnu*)               gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                       # Guess yes on FreeBSD >= 6.
-                 freebsd[1-5]*)        gl_cv_func_printf_infinite_long_double="guessing no";;
-                 freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                       # Guess yes on MacOS X >= 10.3.
-                 darwin[1-6].*)        gl_cv_func_printf_infinite_long_double="guessing no";;
-                 darwin*)              gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                       # Guess yes on HP-UX >= 11.
-                 hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
-                 hpux*)                gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                       # Guess yes on NetBSD >= 3.
-                 netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                                       gl_cv_func_printf_infinite_long_double="guessing no";;
-                 netbsd*)              gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                       # If we don't know, assume the worst.
-                 *)                    gl_cv_func_printf_infinite_long_double="guessing no";;
-               esac
-               ;;
-           esac
 
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_sys_types_h='<'sys/types.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5
+$as_echo_n "checking absolute name of <sys/types.h>... " >&6; }
+if ${gl_cv_next_sys_types_h+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
+
+
+
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <sys/types.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'sys/types.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
 
-#include <stdlib.h>
-#if defined __MACH__ && defined __APPLE__
-/* Avoid a crash on MacOS X.  */
-#include <mach/mach.h>
-#include <mach/mach_error.h>
-#include <mach/thread_status.h>
-#include <mach/exception.h>
-#include <mach/task.h>
-#include <pthread.h>
-/* The exception port on which our thread listens.  */
-static mach_port_t our_exception_port;
-/* The main function of the thread listening for exceptions of type
-   EXC_BAD_ACCESS.  */
-static void *
-mach_exception_thread (void *arg)
-{
-  /* Buffer for a message to be received.  */
-  struct {
-    mach_msg_header_t head;
-    mach_msg_body_t msgh_body;
-    char data[1024];
-  } msg;
-  mach_msg_return_t retval;
-  /* Wait for a message on the exception port.  */
-  retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
-                     our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
-  if (retval != MACH_MSG_SUCCESS)
-    abort ();
-  exit (1);
-}
-static void
-nocrash_init (void)
-{
-  mach_port_t self = mach_task_self ();
-  /* Allocate a port on which the thread shall listen for exceptions.  */
-  if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
-      == KERN_SUCCESS) {
-    /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html.  */
-    if (mach_port_insert_right (self, our_exception_port, our_exception_port,
-                                MACH_MSG_TYPE_MAKE_SEND)
-        == KERN_SUCCESS) {
-      /* The exceptions we want to catch.  Only EXC_BAD_ACCESS is interesting
-         for us.  */
-      exception_mask_t mask = EXC_MASK_BAD_ACCESS;
-      /* Create the thread listening on the exception port.  */
-      pthread_attr_t attr;
-      pthread_t thread;
-      if (pthread_attr_init (&attr) == 0
-          && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
-          && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
-        pthread_attr_destroy (&attr);
-        /* Replace the exception port info for these exceptions with our own.
-           Note that we replace the exception port for the entire task, not only
-           for a particular thread.  This has the effect that when our exception
-           port gets the message, the thread specific exception port has already
-           been asked, and we don't need to bother about it.
-           See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html.  */
-        task_set_exception_ports (self, mask, our_exception_port,
-                                  EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
-      }
-    }
-  }
-}
-#else
-/* Avoid a crash on POSIX systems.  */
-#include <signal.h>
-/* A POSIX signal handler.  */
-static void
-exception_handler (int sig)
-{
-  exit (1);
-}
-static void
-nocrash_init (void)
-{
-#ifdef SIGSEGV
-  signal (SIGSEGV, exception_handler);
-#endif
-#ifdef SIGBUS
-  signal (SIGBUS, exception_handler);
-#endif
-}
-#endif
+        gl_cv_absolute_sys_types_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
 
-#include <float.h>
-#include <stdio.h>
-#include <string.h>
-static int
-strisnan (const char *string, size_t start_index, size_t end_index)
-{
-  if (start_index < end_index)
-    {
-      if (string[start_index] == '-')
-        start_index++;
-      if (start_index + 3 <= end_index
-          && memcmp (string + start_index, "nan", 3) == 0)
-        {
-          start_index += 3;
-          if (start_index == end_index
-              || (string[start_index] == '(' && string[end_index - 1] == ')'))
-            return 1;
-        }
-    }
-  return 0;
-}
-static char buf[10000];
-static long double zeroL = 0.0L;
-int main ()
+           gl_header=$gl_cv_absolute_sys_types_h
+           gl_cv_next_sys_types_h='"'$gl_header'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5
+$as_echo "$gl_cv_next_sys_types_h" >&6; }
+     fi
+     NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'sys/types.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_sys_types_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+
+
+  if test "$HAVE_LIBUNISTRING" = yes; then
+    LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"`
+    LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"`
+    LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
+  fi
+
+
+  GNULIB_CHDIR=0;
+  GNULIB_CHOWN=0;
+  GNULIB_CLOSE=0;
+  GNULIB_DUP=0;
+  GNULIB_DUP2=0;
+  GNULIB_DUP3=0;
+  GNULIB_ENVIRON=0;
+  GNULIB_EUIDACCESS=0;
+  GNULIB_FACCESSAT=0;
+  GNULIB_FCHDIR=0;
+  GNULIB_FCHOWNAT=0;
+  GNULIB_FDATASYNC=0;
+  GNULIB_FSYNC=0;
+  GNULIB_FTRUNCATE=0;
+  GNULIB_GETCWD=0;
+  GNULIB_GETDOMAINNAME=0;
+  GNULIB_GETDTABLESIZE=0;
+  GNULIB_GETGROUPS=0;
+  GNULIB_GETHOSTNAME=0;
+  GNULIB_GETLOGIN=0;
+  GNULIB_GETLOGIN_R=0;
+  GNULIB_GETPAGESIZE=0;
+  GNULIB_GETUSERSHELL=0;
+  GNULIB_GROUP_MEMBER=0;
+  GNULIB_ISATTY=0;
+  GNULIB_LCHOWN=0;
+  GNULIB_LINK=0;
+  GNULIB_LINKAT=0;
+  GNULIB_LSEEK=0;
+  GNULIB_PIPE=0;
+  GNULIB_PIPE2=0;
+  GNULIB_PREAD=0;
+  GNULIB_PWRITE=0;
+  GNULIB_READ=0;
+  GNULIB_READLINK=0;
+  GNULIB_READLINKAT=0;
+  GNULIB_RMDIR=0;
+  GNULIB_SETHOSTNAME=0;
+  GNULIB_SLEEP=0;
+  GNULIB_SYMLINK=0;
+  GNULIB_SYMLINKAT=0;
+  GNULIB_TTYNAME_R=0;
+  GNULIB_UNISTD_H_NONBLOCKING=0;
+  GNULIB_UNISTD_H_SIGPIPE=0;
+  GNULIB_UNLINK=0;
+  GNULIB_UNLINKAT=0;
+  GNULIB_USLEEP=0;
+  GNULIB_WRITE=0;
+    HAVE_CHOWN=1;
+  HAVE_DUP2=1;
+  HAVE_DUP3=1;
+  HAVE_EUIDACCESS=1;
+  HAVE_FACCESSAT=1;
+  HAVE_FCHDIR=1;
+  HAVE_FCHOWNAT=1;
+  HAVE_FDATASYNC=1;
+  HAVE_FSYNC=1;
+  HAVE_FTRUNCATE=1;
+  HAVE_GETDTABLESIZE=1;
+  HAVE_GETGROUPS=1;
+  HAVE_GETHOSTNAME=1;
+  HAVE_GETLOGIN=1;
+  HAVE_GETPAGESIZE=1;
+  HAVE_GROUP_MEMBER=1;
+  HAVE_LCHOWN=1;
+  HAVE_LINK=1;
+  HAVE_LINKAT=1;
+  HAVE_PIPE=1;
+  HAVE_PIPE2=1;
+  HAVE_PREAD=1;
+  HAVE_PWRITE=1;
+  HAVE_READLINK=1;
+  HAVE_READLINKAT=1;
+  HAVE_SETHOSTNAME=1;
+  HAVE_SLEEP=1;
+  HAVE_SYMLINK=1;
+  HAVE_SYMLINKAT=1;
+  HAVE_UNLINKAT=1;
+  HAVE_USLEEP=1;
+  HAVE_DECL_ENVIRON=1;
+  HAVE_DECL_FCHDIR=1;
+  HAVE_DECL_FDATASYNC=1;
+  HAVE_DECL_GETDOMAINNAME=1;
+  HAVE_DECL_GETLOGIN_R=1;
+  HAVE_DECL_GETPAGESIZE=1;
+  HAVE_DECL_GETUSERSHELL=1;
+  HAVE_DECL_SETHOSTNAME=1;
+  HAVE_DECL_TTYNAME_R=1;
+  HAVE_OS_H=0;
+  HAVE_SYS_PARAM_H=0;
+  REPLACE_CHOWN=0;
+  REPLACE_CLOSE=0;
+  REPLACE_DUP=0;
+  REPLACE_DUP2=0;
+  REPLACE_FCHOWNAT=0;
+  REPLACE_FTRUNCATE=0;
+  REPLACE_GETCWD=0;
+  REPLACE_GETDOMAINNAME=0;
+  REPLACE_GETDTABLESIZE=0;
+  REPLACE_GETLOGIN_R=0;
+  REPLACE_GETGROUPS=0;
+  REPLACE_GETPAGESIZE=0;
+  REPLACE_ISATTY=0;
+  REPLACE_LCHOWN=0;
+  REPLACE_LINK=0;
+  REPLACE_LINKAT=0;
+  REPLACE_LSEEK=0;
+  REPLACE_PREAD=0;
+  REPLACE_PWRITE=0;
+  REPLACE_READ=0;
+  REPLACE_READLINK=0;
+  REPLACE_RMDIR=0;
+  REPLACE_SLEEP=0;
+  REPLACE_SYMLINK=0;
+  REPLACE_TTYNAME_R=0;
+  REPLACE_UNLINK=0;
+  REPLACE_UNLINKAT=0;
+  REPLACE_USLEEP=0;
+  REPLACE_WRITE=0;
+  UNISTD_H_HAVE_WINSOCK2_H=0;
+  UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
+
+
+
+
+
+
+  if test $ac_cv_header_features_h = yes; then
+    HAVE_FEATURES_H=1
+  else
+    HAVE_FEATURES_H=0
+  fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
+$as_echo_n "checking for inttypes.h... " >&6; }
+if ${gl_cv_header_inttypes_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/types.h>
+#include <inttypes.h>
+
+int
+main ()
 {
-  nocrash_init();
-  if (sprintf (buf, "%Lf", 1.0L / 0.0L) < 0
-      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%Lf", -1.0L / 0.0L) < 0
-      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%Lf", zeroL / zeroL) < 0
-      || !strisnan (buf, 0, strlen (buf)))
-    return 1;
-  if (sprintf (buf, "%Le", 1.0L / 0.0L) < 0
-      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%Le", -1.0L / 0.0L) < 0
-      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%Le", zeroL / zeroL) < 0
-      || !strisnan (buf, 0, strlen (buf)))
-    return 1;
-  if (sprintf (buf, "%Lg", 1.0L / 0.0L) < 0
-      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%Lg", -1.0L / 0.0L) < 0
-      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%Lg", zeroL / zeroL) < 0
-      || !strisnan (buf, 0, strlen (buf)))
-    return 1;
-#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
-/* Representation of an 80-bit 'long double' as an initializer for a sequence
-   of 'unsigned int' words.  */
-# ifdef WORDS_BIGENDIAN
-#  define LDBL80_WORDS(exponent,manthi,mantlo) \
-     { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \
-       ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16),    \
-       (unsigned int) (mantlo) << 16                                        \
-     }
-# else
-#  define LDBL80_WORDS(exponent,manthi,mantlo) \
-     { mantlo, manthi, exponent }
-# endif
-  { /* Quiet NaN.  */
-    static union { unsigned int word[4]; long double value; } x =
-      { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-  }
-  {
-    /* Signalling NaN.  */
-    static union { unsigned int word[4]; long double value; } x =
-      { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-  }
-  { /* Pseudo-NaN.  */
-    static union { unsigned int word[4]; long double value; } x =
-      { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-  }
-  { /* Pseudo-Infinity.  */
-    static union { unsigned int word[4]; long double value; } x =
-      { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-  }
-  { /* Pseudo-Zero.  */
-    static union { unsigned int word[4]; long double value; } x =
-      { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-  }
-  { /* Unnormalized number.  */
-    static union { unsigned int word[4]; long double value; } x =
-      { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-  }
-  { /* Pseudo-Denormal.  */
-    static union { unsigned int word[4]; long double value; } x =
-      { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
-      return 1;
-  }
-#endif
+uintmax_t i = (uintmax_t) -1; return !i;
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_printf_infinite_long_double=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_inttypes_h=yes
 else
-  gl_cv_func_printf_infinite_long_double=no
+  gl_cv_header_inttypes_h=no
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5
+$as_echo "$gl_cv_header_inttypes_h" >&6; }
+  if test $gl_cv_header_inttypes_h = yes; then
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_INTTYPES_H_WITH_UINTMAX 1
+_ACEOF
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_infinite_long_double" >&5
-$as_echo "$gl_cv_func_printf_infinite_long_double" >&6; }
-      ;;
-    *)
-      gl_cv_func_printf_infinite_long_double="irrelevant"
-      ;;
-  esac
-
+  fi
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'a' and 'A' directives" >&5
-$as_echo_n "checking whether printf supports the 'a' and 'A' directives... " >&6; }
-if test "${gl_cv_func_printf_directive_a+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
+$as_echo_n "checking for stdint.h... " >&6; }
+if ${gl_cv_header_stdint_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-
-      if test "$cross_compiling" = yes; then :
-
-       case "$host_os" in
-                               # Guess yes on glibc >= 2.5 systems.
-         *-gnu*)
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-             #include <features.h>
-             #ifdef __GNU_LIBRARY__
-              #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)
-               BZ2908
-              #endif
-             #endif
-
+#include <sys/types.h>
+            #include <stdint.h>
+int
+main ()
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+  ;
+  return 0;
+}
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "BZ2908" >/dev/null 2>&1; then :
-  gl_cv_func_printf_directive_a="guessing yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_stdint_h=yes
 else
-  gl_cv_func_printf_directive_a="guessing no"
+  gl_cv_header_stdint_h=no
 fi
-rm -f conftest*
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5
+$as_echo "$gl_cv_header_stdint_h" >&6; }
+  if test $gl_cv_header_stdint_h = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STDINT_H_WITH_UINTMAX 1
+_ACEOF
+
+  fi
+
 
-           ;;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_printf_directive_a="guessing no";;
-       esac
 
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
+$as_echo_n "checking for intmax_t... " >&6; }
+if ${gt_cv_c_intmax_t+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <stdio.h>
-#include <string.h>
-static char buf[100];
-int main ()
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+
+int
+main ()
 {
-  if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0
-      || (strcmp (buf, "0x1.922p+1 33") != 0
-          && strcmp (buf, "0x3.244p+0 33") != 0
-          && strcmp (buf, "0x6.488p-1 33") != 0
-          && strcmp (buf, "0xc.91p-2 33") != 0))
-    return 1;
-  if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0
-      || (strcmp (buf, "-0X1.922P+1 33") != 0
-          && strcmp (buf, "-0X3.244P+0 33") != 0
-          && strcmp (buf, "-0X6.488P-1 33") != 0
-          && strcmp (buf, "-0XC.91P-2 33") != 0))
-    return 1;
-  /* This catches a FreeBSD 6.1 bug: it doesn't round.  */
-  if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0
-      || (strcmp (buf, "0x1.83p+0 33") != 0
-          && strcmp (buf, "0x3.05p-1 33") != 0
-          && strcmp (buf, "0x6.0ap-2 33") != 0
-          && strcmp (buf, "0xc.14p-3 33") != 0))
-    return 1;
-  /* This catches a FreeBSD 6.1 bug.  See
-     <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-  if (sprintf (buf, "%010a %d", 1.0 / 0.0, 33, 44, 55) < 0
-      || buf[0] == '0')
-    return 1;
-  /* This catches a MacOS X 10.3.9 (Darwin 7.9) bug.  */
-  if (sprintf (buf, "%.1a", 1.999) < 0
-      || (strcmp (buf, "0x1.0p+1") != 0
-          && strcmp (buf, "0x2.0p+0") != 0
-          && strcmp (buf, "0x4.0p-1") != 0
-          && strcmp (buf, "0x8.0p-2") != 0))
-    return 1;
-  /* This catches the same MacOS X 10.3.9 (Darwin 7.9) bug and also a
-     glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>.  */
-  if (sprintf (buf, "%.1La", 1.999L) < 0
-      || (strcmp (buf, "0x1.0p+1") != 0
-          && strcmp (buf, "0x2.0p+0") != 0
-          && strcmp (buf, "0x4.0p-1") != 0
-          && strcmp (buf, "0x8.0p-2") != 0))
-    return 1;
+intmax_t x = -1; return !x;
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_printf_directive_a=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_c_intmax_t=yes
 else
-  gl_cv_func_printf_directive_a=no
+  gt_cv_c_intmax_t=no
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5
+$as_echo "$gt_cv_c_intmax_t" >&6; }
+  if test $gt_cv_c_intmax_t = yes; then
 
+$as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_directive_a" >&5
-$as_echo "$gl_cv_func_printf_directive_a" >&6; }
+  else
+
+    test $ac_cv_type_long_long_int = yes \
+      && ac_type='long long' \
+      || ac_type='long'
+
+cat >>confdefs.h <<_ACEOF
+#define intmax_t $ac_type
+_ACEOF
 
+  fi
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'F' directive" >&5
-$as_echo_n "checking whether printf supports the 'F' directive... " >&6; }
-if test "${gl_cv_func_printf_directive_f+set}" = set; then :
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5
+$as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; }
+if ${gl_cv_func_snprintf_retval_c99+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
       if test "$cross_compiling" = yes; then :
 
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_printf_directive_f="guessing yes";;
-                               # Guess yes on FreeBSD >= 6.
-         freebsd[1-5]*)        gl_cv_func_printf_directive_f="guessing no";;
-         freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
-                               # Guess yes on MacOS X >= 10.3.
-         darwin[1-6].*)        gl_cv_func_printf_directive_f="guessing no";;
-         darwin*)              gl_cv_func_printf_directive_f="guessing yes";;
-                               # Guess yes on Solaris >= 2.10.
-         solaris2.[0-9]*)      gl_cv_func_printf_directive_f="guessing no";;
-         solaris*)             gl_cv_func_printf_directive_f="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_printf_directive_f="guessing no";;
-       esac
+         case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu*)               gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on FreeBSD >= 5.
+           freebsd[1-4].*)       gl_cv_func_snprintf_retval_c99="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
+           darwin*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on OpenBSD >= 3.9.
+           openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+                                 gl_cv_func_snprintf_retval_c99="guessing no";;
+           openbsd*)             gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on Solaris >= 2.10.
+           solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+           solaris*)             gl_cv_func_printf_sizes_c99="guessing no";;
+                                 # Guess yes on AIX >= 4.
+           aix[1-3]*)            gl_cv_func_snprintf_retval_c99="guessing no";;
+           aix*)                 gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on NetBSD >= 3.
+           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+                                 gl_cv_func_snprintf_retval_c99="guessing no";;
+           netbsd*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on BeOS.
+           beos*)                gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_snprintf_retval_c99="guessing no";;
+         esac
 
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -18743,26 +23202,37 @@ else
 
 #include <stdio.h>
 #include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
 static char buf[100];
 int main ()
 {
-  if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0
-      || strcmp (buf, "1234567.000000 33") != 0)
-    return 1;
-  if (sprintf (buf, "%F", 1.0 / 0.0) < 0
-      || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0))
-    return 1;
-  /* This catches a Cygwin 1.5.x bug.  */
-  if (sprintf (buf, "%.F", 1234.0) < 0
-      || strcmp (buf, "1234") != 0)
+  strcpy (buf, "ABCDEF");
+  if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7)
     return 1;
+  if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7)
+    return 2;
+  if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
+    return 3;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_printf_directive_f=yes
+  gl_cv_func_snprintf_retval_c99=yes
 else
-  gl_cv_func_printf_directive_f=no
+  gl_cv_func_snprintf_retval_c99=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_directive_f" >&5
-$as_echo "$gl_cv_func_printf_directive_f" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5
+$as_echo "$gl_cv_func_snprintf_retval_c99" >&6; }
 
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'ls' directive" >&5
-$as_echo_n "checking whether printf supports the 'ls' directive... " >&6; }
-if test "${gl_cv_func_printf_directive_ls+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-      if test "$cross_compiling" = yes; then :
 
-       case "$host_os" in
-         openbsd*)        gl_cv_func_printf_directive_ls="guessing no";;
-         irix*)           gl_cv_func_printf_directive_ls="guessing no";;
-         solaris*)        gl_cv_func_printf_directive_ls="guessing no";;
-         cygwin*)         gl_cv_func_printf_directive_ls="guessing no";;
-         beos* | haiku*)  gl_cv_func_printf_directive_ls="guessing no";;
-         *)               gl_cv_func_printf_directive_ls="guessing yes";;
-       esac
 
+  for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+      ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include <stdio.h>
+"
+if test "x$ac_cv_have_decl__snprintf" = xyes; then :
+  ac_have_decl=1
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  ac_have_decl=0
+fi
 
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-   included before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-#include <string.h>
-int main ()
-{
-  char buf[100];
-  /* Test whether %ls works at all.
-     This test fails on OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Haiku, but not on
-     Cygwin 1.5.  */
-  {
-    static const wchar_t wstring[] = { 'a', 'b', 'c', 0 };
-    buf[0] = '\0';
-    if (sprintf (buf, "%ls", wstring) < 0
-        || strcmp (buf, "abc") != 0)
-      return 1;
-  }
-  /* This test fails on IRIX 6.5, Solaris 2.6, Cygwin 1.5, Haiku (with an
-     assertion failure inside libc), but not on OpenBSD 4.0.  */
-  {
-    static const wchar_t wstring[] = { 'a', 0 };
-    buf[0] = '\0';
-    if (sprintf (buf, "%ls", wstring) < 0
-        || strcmp (buf, "a") != 0)
-      return 1;
-  }
-  /* Test whether precisions in %ls are supported as specified in ISO C 99
-     section 7.19.6.1:
-       "If a precision is specified, no more than that many bytes are written
-        (including shift sequences, if any), and the array shall contain a
-        null wide character if, to equal the multibyte character sequence
-        length given by the precision, the function would need to access a
-        wide character one past the end of the array."
-     This test fails on Solaris 10.  */
-  {
-    static const wchar_t wstring[] = { 'a', 'b', (wchar_t) 0xfdfdfdfd, 0 };
-    buf[0] = '\0';
-    if (sprintf (buf, "%.2ls", wstring) < 0
-        || strcmp (buf, "ab") != 0)
-      return 1;
-  }
-  return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL__SNPRINTF $ac_have_decl
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_printf_directive_ls=yes
-else
-  gl_cv_func_printf_directive_ls=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_directive_ls" >&5
-$as_echo "$gl_cv_func_printf_directive_ls" >&6; }
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the grouping flag" >&5
-$as_echo_n "checking whether printf supports the grouping flag... " >&6; }
-if test "${gl_cv_func_printf_flag_grouping+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-
-      if test "$cross_compiling" = yes; then :
 
-       case "$host_os" in
-         cygwin*)      gl_cv_func_printf_flag_grouping="guessing no";;
-         netbsd*)      gl_cv_func_printf_flag_grouping="guessing no";;
-         mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
-         *)            gl_cv_func_printf_flag_grouping="guessing yes";;
-       esac
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <stdio.h>
-#include <string.h>
-static char buf[100];
-int main ()
-{
-  if (sprintf (buf, "%'d %d", 1234567, 99) < 0
-      || buf[strlen (buf) - 1] != '9')
-    return 1;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_printf_flag_grouping=yes
-else
-  gl_cv_func_printf_flag_grouping=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+  case "$gl_cv_func_snprintf_retval_c99" in
+    *yes)
 
+$as_echo "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_flag_grouping" >&5
-$as_echo "$gl_cv_func_printf_flag_grouping" >&6; }
+      ;;
+  esac
 
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the left-adjust flag correctly" >&5
-$as_echo_n "checking whether printf supports the left-adjust flag correctly... " >&6; }
-if test "${gl_cv_func_printf_flag_leftadjust+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports 'long double' arguments" >&5
+$as_echo_n "checking whether printf supports 'long double' arguments... " >&6; }
+if ${gl_cv_func_printf_long_double+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
       if test "$cross_compiling" = yes; then :
 
          case "$host_os" in
-                    # Guess yes on HP-UX 11.
-           hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
-                    # Guess no on HP-UX 10 and older.
-           hpux*)   gl_cv_func_printf_flag_leftadjust="guessing no";;
-                    # Guess yes otherwise.
-           *)       gl_cv_func_printf_flag_leftadjust="guessing yes";;
+           beos*)        gl_cv_func_printf_long_double="guessing no";;
+           mingw* | pw*) gl_cv_func_printf_long_double="guessing no";;
+           *)            gl_cv_func_printf_long_double="guessing yes";;
          esac
 
 else
@@ -18930,20 +23304,29 @@ else
 
 #include <stdio.h>
 #include <string.h>
-static char buf[100];
+static char buf[10000];
 int main ()
 {
-  /* Check that a '-' flag is not annihilated by a negative width.  */
-  if (sprintf (buf, "a%-*sc", -3, "b") < 0
-      || strcmp (buf, "ab  c") != 0)
-    return 1;
-  return 0;
+  int result = 0;
+  buf[0] = '\0';
+  if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0
+      || strcmp (buf, "1.750000 33") != 0)
+    result |= 1;
+  buf[0] = '\0';
+  if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0
+      || strcmp (buf, "1.750000e+00 33") != 0)
+    result |= 2;
+  buf[0] = '\0';
+  if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0
+      || strcmp (buf, "1.75 33") != 0)
+    result |= 4;
+  return result;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_printf_flag_leftadjust=yes
+  gl_cv_func_printf_long_double=yes
 else
-  gl_cv_func_printf_flag_leftadjust=no
+  gl_cv_func_printf_long_double=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_flag_leftadjust" >&5
-$as_echo "$gl_cv_func_printf_flag_leftadjust" >&6; }
-
-
-
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the zero flag correctly" >&5
-$as_echo_n "checking whether printf supports the zero flag correctly... " >&6; }
-if test "${gl_cv_func_printf_flag_zero+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-
-      if test "$cross_compiling" = yes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_long_double" >&5
+$as_echo "$gl_cv_func_printf_long_double" >&6; }
 
-       case "$host_os" in
-                 # Guess yes on glibc systems.
-         *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
-                 # Guess yes on BeOS.
-         beos*)  gl_cv_func_printf_flag_zero="guessing yes";;
-                 # If we don't know, assume the worst.
-         *)      gl_cv_func_printf_flag_zero="guessing no";;
-       esac
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <stdio.h>
-#include <string.h>
-static char buf[100];
-int main ()
-{
-  if (sprintf (buf, "%010f", 1.0 / 0.0, 33, 44, 55) < 0
-      || (strcmp (buf, "       inf") != 0
-          && strcmp (buf, "  infinity") != 0))
-    return 1;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_printf_flag_zero=yes
-else
-  gl_cv_func_printf_flag_zero=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+  case "$gl_cv_func_printf_long_double" in
+    *yes)
+      ;;
+    *)
 
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_flag_zero" >&5
-$as_echo "$gl_cv_func_printf_flag_zero" >&6; }
+      ;;
+  esac
 
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports large precisions" >&5
-$as_echo_n "checking whether printf supports large precisions... " >&6; }
-if test "${gl_cv_func_printf_precision+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports infinite 'double' arguments" >&5
+$as_echo_n "checking whether printf supports infinite 'double' arguments... " >&6; }
+if ${gl_cv_func_printf_infinite+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
       if test "$cross_compiling" = yes; then :
 
-       case "$host_os" in
-         # Guess no only on native Win32 and BeOS systems.
-         mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
-         beos*)        gl_cv_func_printf_precision="guessing no" ;;
-         *)            gl_cv_func_printf_precision="guessing yes" ;;
-       esac
+         case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu*)               gl_cv_func_printf_infinite="guessing yes";;
+                                 # Guess yes on FreeBSD >= 6.
+           freebsd[1-5].*)       gl_cv_func_printf_infinite="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_printf_infinite="guessing no";;
+           darwin*)              gl_cv_func_printf_infinite="guessing yes";;
+                                 # Guess yes on HP-UX >= 11.
+           hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";;
+           hpux*)                gl_cv_func_printf_infinite="guessing yes";;
+                                 # Guess yes on NetBSD >= 3.
+           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+                                 gl_cv_func_printf_infinite="guessing no";;
+           netbsd*)              gl_cv_func_printf_infinite="guessing yes";;
+                                 # Guess yes on BeOS.
+           beos*)                gl_cv_func_printf_infinite="guessing yes";;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_printf_infinite="guessing no";;
+         esac
 
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19026,22 +23387,75 @@ else
 
 #include <stdio.h>
 #include <string.h>
-static char buf[5000];
-int main ()
+static int
+strisnan (const char *string, size_t start_index, size_t end_index)
 {
-#ifdef __BEOS__
-  /* On BeOS, this would crash and show a dialog box.  Avoid the crash.  */
-  return 1;
-#endif
-  if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3)
-    return 1;
+  if (start_index < end_index)
+    {
+      if (string[start_index] == '-')
+        start_index++;
+      if (start_index + 3 <= end_index
+          && memcmp (string + start_index, "nan", 3) == 0)
+        {
+          start_index += 3;
+          if (start_index == end_index
+              || (string[start_index] == '(' && string[end_index - 1] == ')'))
+            return 1;
+        }
+    }
   return 0;
 }
+static int
+have_minus_zero ()
+{
+  static double plus_zero = 0.0;
+  double minus_zero = - plus_zero;
+  return memcmp (&plus_zero, &minus_zero, sizeof (double)) != 0;
+}
+static char buf[10000];
+static double zero = 0.0;
+int main ()
+{
+  int result = 0;
+  if (sprintf (buf, "%f", 1.0 / zero) < 0
+      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+    result |= 1;
+  if (sprintf (buf, "%f", -1.0 / zero) < 0
+      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+    result |= 1;
+  if (sprintf (buf, "%f", zero / zero) < 0
+      || !strisnan (buf, 0, strlen (buf)))
+    result |= 2;
+  if (sprintf (buf, "%e", 1.0 / zero) < 0
+      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+    result |= 4;
+  if (sprintf (buf, "%e", -1.0 / zero) < 0
+      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+    result |= 4;
+  if (sprintf (buf, "%e", zero / zero) < 0
+      || !strisnan (buf, 0, strlen (buf)))
+    result |= 8;
+  if (sprintf (buf, "%g", 1.0 / zero) < 0
+      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+    result |= 16;
+  if (sprintf (buf, "%g", -1.0 / zero) < 0
+      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+    result |= 16;
+  if (sprintf (buf, "%g", zero / zero) < 0
+      || !strisnan (buf, 0, strlen (buf)))
+    result |= 32;
+  /* This test fails on HP-UX 10.20.  */
+  if (have_minus_zero ())
+    if (sprintf (buf, "%g", - zero) < 0
+        || strcmp (buf, "-0") != 0)
+    result |= 64;
+  return result;
+}
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_printf_precision=yes
+  gl_cv_func_printf_infinite=yes
 else
-  gl_cv_func_printf_precision=no
+  gl_cv_func_printf_infinite=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_precision" >&5
-$as_echo "$gl_cv_func_printf_precision" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_infinite" >&5
+$as_echo "$gl_cv_func_printf_infinite" >&6; }
 
 
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf survives out-of-memory conditions" >&5
-$as_echo_n "checking whether printf survives out-of-memory conditions... " >&6; }
-if test "${gl_cv_func_printf_enomem+set}" = set; then :
+
+
+         if test -n "$gl_printf_safe"; then
+
+$as_echo "#define CHECK_PRINTF_SAFE 1" >>confdefs.h
+
+  fi
+  case "$gl_cv_func_printf_long_double" in
+    *yes)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports infinite 'long double' arguments" >&5
+$as_echo_n "checking whether printf supports infinite 'long double' arguments... " >&6; }
+if ${gl_cv_func_printf_infinite_long_double+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      gl_cv_func_printf_enomem="guessing no"
-      if test "$cross_compiling" = no; then
-        if test $APPLE_UNIVERSAL_BUILD = 0; then
-          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+          if test "$cross_compiling" = yes; then :
+
+             case "$host_cpu" in
+                                     # Guess no on ia64, x86_64, i386.
+               ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";;
+               *)
+                 case "$host_os" in
+                                         # Guess yes on glibc systems.
+                   *-gnu*)               gl_cv_func_printf_infinite_long_double="guessing yes";;
+                                         # Guess yes on FreeBSD >= 6.
+                   freebsd[1-5].*)       gl_cv_func_printf_infinite_long_double="guessing no";;
+                   freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+                                         # Guess yes on HP-UX >= 11.
+                   hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
+                   hpux*)                gl_cv_func_printf_infinite_long_double="guessing yes";;
+                                         # If we don't know, assume the worst.
+                   *)                    gl_cv_func_printf_infinite_long_double="guessing no";;
+                 esac
+                 ;;
+             esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
 #include <stdlib.h>
 #if defined __MACH__ && defined __APPLE__
-/* Avoid a crash on MacOS X.  */
+/* Avoid a crash on Mac OS X.  */
 #include <mach/mach.h>
 #include <mach/mach_error.h>
 #include <mach/thread_status.h>
@@ -19088,7 +23530,7 @@ mach_exception_thread (void *arg)
   struct {
     mach_msg_header_t head;
     mach_msg_body_t msgh_body;
-    char data1024;
+    char data[1024];
   } msg;
   mach_msg_return_t retval;
   /* Wait for a message on the exception port.  */
@@ -19131,6 +23573,34 @@ nocrash_init (void)
     }
   }
 }
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows.  */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+  switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+    {
+    case EXCEPTION_ACCESS_VIOLATION:
+    case EXCEPTION_IN_PAGE_ERROR:
+    case EXCEPTION_STACK_OVERFLOW:
+    case EXCEPTION_GUARD_PAGE:
+    case EXCEPTION_PRIV_INSTRUCTION:
+    case EXCEPTION_ILLEGAL_INSTRUCTION:
+    case EXCEPTION_DATATYPE_MISALIGNMENT:
+    case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+    case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+      exit (1);
+    }
+  return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+  SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
 #else
 /* Avoid a crash on POSIX systems.  */
 #include <signal.h>
@@ -19152,467 +23622,578 @@ nocrash_init (void)
 }
 #endif
 
+#include <float.h>
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <errno.h>
-int main()
+#include <string.h>
+static int
+strisnan (const char *string, size_t start_index, size_t end_index)
 {
-  struct rlimit limit;
-  int ret;
-  nocrash_init ();
-  /* Some printf implementations allocate temporary space with malloc.  */
-  /* On BSD systems, malloc() is limited by RLIMIT_DATA.  */
-#ifdef RLIMIT_DATA
-  if (getrlimit (RLIMIT_DATA, &limit) < 0)
-    return 77;
-  if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
-    limit.rlim_max = 5000000;
-  limit.rlim_cur = limit.rlim_max;
-  if (setrlimit (RLIMIT_DATA, &limit) < 0)
-    return 77;
-#endif
-  /* On Linux systems, malloc() is limited by RLIMIT_AS.  */
-#ifdef RLIMIT_AS
-  if (getrlimit (RLIMIT_AS, &limit) < 0)
-    return 77;
-  if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
-    limit.rlim_max = 5000000;
-  limit.rlim_cur = limit.rlim_max;
-  if (setrlimit (RLIMIT_AS, &limit) < 0)
-    return 77;
-#endif
-  /* Some printf implementations allocate temporary space on the stack.  */
-#ifdef RLIMIT_STACK
-  if (getrlimit (RLIMIT_STACK, &limit) < 0)
-    return 77;
-  if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
-    limit.rlim_max = 5000000;
-  limit.rlim_cur = limit.rlim_max;
-  if (setrlimit (RLIMIT_STACK, &limit) < 0)
-    return 77;
+  if (start_index < end_index)
+    {
+      if (string[start_index] == '-')
+        start_index++;
+      if (start_index + 3 <= end_index
+          && memcmp (string + start_index, "nan", 3) == 0)
+        {
+          start_index += 3;
+          if (start_index == end_index
+              || (string[start_index] == '(' && string[end_index - 1] == ')'))
+            return 1;
+        }
+    }
+  return 0;
+}
+static char buf[10000];
+static long double zeroL = 0.0L;
+int main ()
+{
+  int result = 0;
+  nocrash_init();
+  if (sprintf (buf, "%Lf", 1.0L / zeroL) < 0
+      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+    result |= 1;
+  if (sprintf (buf, "%Lf", -1.0L / zeroL) < 0
+      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+    result |= 1;
+  if (sprintf (buf, "%Lf", zeroL / zeroL) < 0
+      || !strisnan (buf, 0, strlen (buf)))
+    result |= 1;
+  if (sprintf (buf, "%Le", 1.0L / zeroL) < 0
+      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+    result |= 1;
+  if (sprintf (buf, "%Le", -1.0L / zeroL) < 0
+      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+    result |= 1;
+  if (sprintf (buf, "%Le", zeroL / zeroL) < 0
+      || !strisnan (buf, 0, strlen (buf)))
+    result |= 1;
+  if (sprintf (buf, "%Lg", 1.0L / zeroL) < 0
+      || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+    result |= 1;
+  if (sprintf (buf, "%Lg", -1.0L / zeroL) < 0
+      || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+    result |= 1;
+  if (sprintf (buf, "%Lg", zeroL / zeroL) < 0
+      || !strisnan (buf, 0, strlen (buf)))
+    result |= 1;
+#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
+/* Representation of an 80-bit 'long double' as an initializer for a sequence
+   of 'unsigned int' words.  */
+# ifdef WORDS_BIGENDIAN
+#  define LDBL80_WORDS(exponent,manthi,mantlo) \
+     { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \
+       ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16),    \
+       (unsigned int) (mantlo) << 16                                        \
+     }
+# else
+#  define LDBL80_WORDS(exponent,manthi,mantlo) \
+     { mantlo, manthi, exponent }
+# endif
+  { /* Quiet NaN.  */
+    static union { unsigned int word[4]; long double value; } x =
+      { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
+    if (sprintf (buf, "%Lf", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 2;
+    if (sprintf (buf, "%Le", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 2;
+    if (sprintf (buf, "%Lg", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 2;
+  }
+  {
+    /* Signalling NaN.  */
+    static union { unsigned int word[4]; long double value; } x =
+      { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
+    if (sprintf (buf, "%Lf", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 2;
+    if (sprintf (buf, "%Le", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 2;
+    if (sprintf (buf, "%Lg", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 2;
+  }
+  { /* Pseudo-NaN.  */
+    static union { unsigned int word[4]; long double value; } x =
+      { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
+    if (sprintf (buf, "%Lf", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 4;
+    if (sprintf (buf, "%Le", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 4;
+    if (sprintf (buf, "%Lg", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 4;
+  }
+  { /* Pseudo-Infinity.  */
+    static union { unsigned int word[4]; long double value; } x =
+      { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
+    if (sprintf (buf, "%Lf", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 8;
+    if (sprintf (buf, "%Le", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 8;
+    if (sprintf (buf, "%Lg", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 8;
+  }
+  { /* Pseudo-Zero.  */
+    static union { unsigned int word[4]; long double value; } x =
+      { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
+    if (sprintf (buf, "%Lf", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 16;
+    if (sprintf (buf, "%Le", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 16;
+    if (sprintf (buf, "%Lg", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 16;
+  }
+  { /* Unnormalized number.  */
+    static union { unsigned int word[4]; long double value; } x =
+      { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
+    if (sprintf (buf, "%Lf", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 32;
+    if (sprintf (buf, "%Le", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 32;
+    if (sprintf (buf, "%Lg", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 32;
+  }
+  { /* Pseudo-Denormal.  */
+    static union { unsigned int word[4]; long double value; } x =
+      { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
+    if (sprintf (buf, "%Lf", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 64;
+    if (sprintf (buf, "%Le", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 64;
+    if (sprintf (buf, "%Lg", x.value) < 0
+        || !strisnan (buf, 0, strlen (buf)))
+      result |= 64;
+  }
 #endif
-  ret = printf ("%.5000000f", 1.0);
-  return !(ret == 5000002 || (ret < 0 && errno == ENOMEM));
+  return result;
 }
-
 _ACEOF
-          if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-            (./conftest
-             result=$?
-             if test $result != 0 && test $result != 77; then result=1; fi
-             exit $result
-            ) >/dev/null 2>/dev/null
-            case $? in
-              0) gl_cv_func_printf_enomem="yes" ;;
-              77) gl_cv_func_printf_enomem="guessing no" ;;
-              *) gl_cv_func_printf_enomem="no" ;;
-            esac
-          else
-            gl_cv_func_printf_enomem="guessing no"
-          fi
-          rm -fr conftest*
-        else
-                                        gl_cv_func_printf_enomem="guessing no"
-        fi
-      fi
-      if test "$gl_cv_func_printf_enomem" = "guessing no"; then
-        case "$host_os" in
-                    # Guess yes on glibc systems.
-          *-gnu*)   gl_cv_func_printf_enomem="guessing yes";;
-                    # Guess yes on Solaris.
-          solaris*) gl_cv_func_printf_enomem="guessing yes";;
-                    # Guess yes on AIX.
-          aix*)     gl_cv_func_printf_enomem="guessing yes";;
-                    # Guess yes on HP-UX/hppa.
-          hpux*)    case "$host_cpu" in
-                      hppa*) gl_cv_func_printf_enomem="guessing yes";;
-                      *)     gl_cv_func_printf_enomem="guessing no";;
-                    esac
-                    ;;
-                    # Guess yes on IRIX.
-          irix*)    gl_cv_func_printf_enomem="guessing yes";;
-                    # Guess yes on OSF/1.
-          osf*)     gl_cv_func_printf_enomem="guessing yes";;
-                    # Guess yes on BeOS.
-          beos*)    gl_cv_func_printf_enomem="guessing yes";;
-                    # Guess yes on Haiku.
-          haiku*)   gl_cv_func_printf_enomem="guessing yes";;
-                    # If we don't know, assume the worst.
-          *)        gl_cv_func_printf_enomem="guessing no";;
-        esac
-      fi
-
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_printf_infinite_long_double=yes
+else
+  gl_cv_func_printf_infinite_long_double=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_enomem" >&5
-$as_echo "$gl_cv_func_printf_enomem" >&6; }
-
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_infinite_long_double" >&5
+$as_echo "$gl_cv_func_printf_infinite_long_double" >&6; }
+      ;;
+    *)
+      gl_cv_func_printf_infinite_long_double="irrelevant"
+      ;;
+  esac
 
 
 
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5
-$as_echo_n "checking whether <wchar.h> uses 'inline' correctly... " >&6; }
-if test "${gl_cv_header_wchar_h_correct_inline+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'a' and 'A' directives" >&5
+$as_echo_n "checking whether printf supports the 'a' and 'A' directives... " >&6; }
+if ${gl_cv_func_printf_directive_a+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  gl_cv_header_wchar_h_correct_inline=yes
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-       #define wcstod renamed_wcstod
-#include <wchar.h>
-extern int zero (void);
-int main () { return zero(); }
+      if test "$cross_compiling" = yes; then :
 
-_ACEOF
-     if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-       mv conftest.$ac_objext conftest1.$ac_objext
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+         case "$host_os" in
+                                 # Guess yes on glibc >= 2.5 systems.
+           *-gnu*)
+             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-         #define wcstod renamed_wcstod
-#include <wchar.h>
-int zero (void) { return 0; }
+               #include <features.h>
+               #ifdef __GNU_LIBRARY__
+                #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)) && !defined __UCLIBC__
+                 BZ2908
+                #endif
+               #endif
 
 _ACEOF
-       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-         mv conftest.$ac_objext conftest2.$ac_objext
-         if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then
-           :
-         else
-           gl_cv_header_wchar_h_correct_inline=no
-         fi
-       fi
-     fi
-     rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext
-
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "BZ2908" >/dev/null 2>&1; then :
+  gl_cv_func_printf_directive_a="guessing yes"
+else
+  gl_cv_func_printf_directive_a="guessing no"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5
-$as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; }
-  if test $gl_cv_header_wchar_h_correct_inline = no; then
-    as_fn_error "<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS).
-This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in
-C99 mode. You have four options:
-  - Add the flag -fgnu89-inline to CC and reconfigure, or
-  - Fix your include files, using parts of
-    <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or
-  - Use a gcc version older than 4.3, or
-  - Don't use the flags -std=c99 or -std=gnu99.
-Configuration aborted." "$LINENO" 5
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
+rm -f conftest*
 
+             ;;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_printf_directive_a="guessing no";;
+         esac
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5
-$as_echo_n "checking if environ is properly declared... " >&6; }
-  if test "${gt_cv_var_environ_declaration+set}" = set; then :
-  $as_echo_n "(cached) " >&6
 else
-
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <unistd.h>
-      extern struct { int foo; } environ;
-int
-main ()
+
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+static double zero = 0.0;
+int main ()
 {
-environ.foo = 1;
-  ;
-  return 0;
+  int result = 0;
+  if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0
+      || (strcmp (buf, "0x1.922p+1 33") != 0
+          && strcmp (buf, "0x3.244p+0 33") != 0
+          && strcmp (buf, "0x6.488p-1 33") != 0
+          && strcmp (buf, "0xc.91p-2 33") != 0))
+    result |= 1;
+  if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0
+      || (strcmp (buf, "-0X1.922P+1 33") != 0
+          && strcmp (buf, "-0X3.244P+0 33") != 0
+          && strcmp (buf, "-0X6.488P-1 33") != 0
+          && strcmp (buf, "-0XC.91P-2 33") != 0))
+    result |= 2;
+  /* This catches a FreeBSD 6.1 bug: it doesn't round.  */
+  if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0
+      || (strcmp (buf, "0x1.83p+0 33") != 0
+          && strcmp (buf, "0x3.05p-1 33") != 0
+          && strcmp (buf, "0x6.0ap-2 33") != 0
+          && strcmp (buf, "0xc.14p-3 33") != 0))
+    result |= 4;
+  /* This catches a FreeBSD 6.1 bug.  See
+     <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
+  if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0
+      || buf[0] == '0')
+    result |= 8;
+  /* This catches a Mac OS X 10.3.9 (Darwin 7.9) bug.  */
+  if (sprintf (buf, "%.1a", 1.999) < 0
+      || (strcmp (buf, "0x1.0p+1") != 0
+          && strcmp (buf, "0x2.0p+0") != 0
+          && strcmp (buf, "0x4.0p-1") != 0
+          && strcmp (buf, "0x8.0p-2") != 0))
+    result |= 16;
+  /* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a
+     glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>.  */
+  if (sprintf (buf, "%.1La", 1.999L) < 0
+      || (strcmp (buf, "0x1.0p+1") != 0
+          && strcmp (buf, "0x2.0p+0") != 0
+          && strcmp (buf, "0x4.0p-1") != 0
+          && strcmp (buf, "0x8.0p-2") != 0))
+    result |= 32;
+  return result;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_var_environ_declaration=no
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_printf_directive_a=yes
 else
-  gt_cv_var_environ_declaration=yes
+  gl_cv_func_printf_directive_a=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5
-$as_echo "$gt_cv_var_environ_declaration" >&6; }
-  if test $gt_cv_var_environ_declaration = yes; then
-
-$as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h
-
-  fi
-
 
-  if test $gt_cv_var_environ_declaration != yes; then
-    HAVE_DECL_ENVIRON=0
-  fi
-
-ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strerror_r" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_directive_a" >&5
+$as_echo "$gl_cv_func_printf_directive_a" >&6; }
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRERROR_R $ac_have_decl
-_ACEOF
-
-for ac_func in strerror_r
-do :
-  ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
-if test "x$ac_cv_func_strerror_r" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STRERROR_R 1
-_ACEOF
 
-fi
-done
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
-$as_echo_n "checking whether strerror_r returns char *... " >&6; }
-if test "${ac_cv_func_strerror_r_char_p+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'F' directive" >&5
+$as_echo_n "checking whether printf supports the 'F' directive... " >&6; }
+if ${gl_cv_func_printf_directive_f+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-    ac_cv_func_strerror_r_char_p=no
-    if test $ac_cv_have_decl_strerror_r = yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
+      if test "$cross_compiling" = yes; then :
 
-         char buf[100];
-         char x = *strerror_r (0, buf, sizeof buf);
-         char *p = strerror_r (0, buf, sizeof buf);
-         return !p || x;
+         case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu*)               gl_cv_func_printf_directive_f="guessing yes";;
+                                 # Guess yes on FreeBSD >= 6.
+           freebsd[1-5].*)       gl_cv_func_printf_directive_f="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_printf_directive_f="guessing no";;
+           darwin*)              gl_cv_func_printf_directive_f="guessing yes";;
+                                 # Guess yes on Solaris >= 2.10.
+           solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+           solaris*)             gl_cv_func_printf_sizes_c99="guessing no";;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_printf_directive_f="guessing no";;
+         esac
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_func_strerror_r_char_p=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    else
-      # strerror_r is not declared.  Choose between
-      # systems that have relatively inaccessible declarations for the
-      # function.  BeOS and DEC UNIX 4.0 fall in this category, but the
-      # former has a strerror_r that returns char*, while the latter
-      # has a strerror_r that returns `int'.
-      # This test should segfault on the DEC system.
-      if test "$cross_compiling" = yes; then :
-  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-       extern char *strerror_r ();
-int
-main ()
+
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+static double zero = 0.0;
+int main ()
 {
-char buf[100];
-         char x = *strerror_r (0, buf, sizeof buf);
-         return ! isalpha (x);
-  ;
-  return 0;
+  int result = 0;
+  if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0
+      || strcmp (buf, "1234567.000000 33") != 0)
+    result |= 1;
+  if (sprintf (buf, "%F", 1.0 / zero) < 0
+      || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0))
+    result |= 2;
+  /* This catches a Cygwin 1.5.x bug.  */
+  if (sprintf (buf, "%.F", 1234.0) < 0
+      || strcmp (buf, "1234") != 0)
+    result |= 4;
+  return result;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_func_strerror_r_char_p=yes
+  gl_cv_func_printf_directive_f=yes
+else
+  gl_cv_func_printf_directive_f=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-    fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5
-$as_echo "$ac_cv_func_strerror_r_char_p" >&6; }
-if test $ac_cv_func_strerror_r_char_p = yes; then
-
-$as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_directive_f" >&5
+$as_echo "$gl_cv_func_printf_directive_f" >&6; }
 
 
-  XGETTEXT_EXTRA_OPTIONS=
-
 
-  GNULIB_DUPLOCALE=0;
-    HAVE_DUPLOCALE=1;
-  REPLACE_DUPLOCALE=0;
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the 'ls' directive" >&5
+$as_echo_n "checking whether printf supports the 'ls' directive... " >&6; }
+if ${gl_cv_func_printf_directive_ls+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+      if test "$cross_compiling" = yes; then :
 
+         case "$host_os" in
+           openbsd*)        gl_cv_func_printf_directive_ls="guessing no";;
+           irix*)           gl_cv_func_printf_directive_ls="guessing no";;
+           solaris*)        gl_cv_func_printf_directive_ls="guessing no";;
+           cygwin*)         gl_cv_func_printf_directive_ls="guessing no";;
+           beos* | haiku*)  gl_cv_func_printf_directive_ls="guessing no";;
+           *)               gl_cv_func_printf_directive_ls="guessing yes";;
+         esac
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+#include <string.h>
+int main ()
+{
+  int result = 0;
+  char buf[100];
+  /* Test whether %ls works at all.
+     This test fails on OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Haiku, but not on
+     Cygwin 1.5.  */
+  {
+    static const wchar_t wstring[] = { 'a', 'b', 'c', 0 };
+    buf[0] = '\0';
+    if (sprintf (buf, "%ls", wstring) < 0
+        || strcmp (buf, "abc") != 0)
+      result |= 1;
+  }
+  /* This test fails on IRIX 6.5, Solaris 2.6, Cygwin 1.5, Haiku (with an
+     assertion failure inside libc), but not on OpenBSD 4.0.  */
+  {
+    static const wchar_t wstring[] = { 'a', 0 };
+    buf[0] = '\0';
+    if (sprintf (buf, "%ls", wstring) < 0
+        || strcmp (buf, "a") != 0)
+      result |= 2;
+  }
+  /* Test whether precisions in %ls are supported as specified in ISO C 99
+     section 7.19.6.1:
+       "If a precision is specified, no more than that many bytes are written
+        (including shift sequences, if any), and the array shall contain a
+        null wide character if, to equal the multibyte character sequence
+        length given by the precision, the function would need to access a
+        wide character one past the end of the array."
+     This test fails on Solaris 10.  */
+  {
+    static const wchar_t wstring[] = { 'a', 'b', (wchar_t) 0xfdfdfdfd, 0 };
+    buf[0] = '\0';
+    if (sprintf (buf, "%.2ls", wstring) < 0
+        || strcmp (buf, "ab") != 0)
+      result |= 8;
+  }
+  return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_printf_directive_ls=yes
+else
+  gl_cv_func_printf_directive_ls=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_directive_ls" >&5
+$as_echo "$gl_cv_func_printf_directive_ls" >&6; }
 
 
 
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the grouping flag" >&5
+$as_echo_n "checking whether printf supports the grouping flag... " >&6; }
+if ${gl_cv_func_printf_flag_grouping+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+      if test "$cross_compiling" = yes; then :
 
+         case "$host_os" in
+           cygwin*)      gl_cv_func_printf_flag_grouping="guessing no";;
+           netbsd*)      gl_cv_func_printf_flag_grouping="guessing no";;
+           mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
+           *)            gl_cv_func_printf_flag_grouping="guessing yes";;
+         esac
 
-  if test $ac_cv_func_setenv = no; then
-    HAVE_SETENV=0
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5
-$as_echo_n "checking whether setenv validates arguments... " >&6; }
-if test "${gl_cv_func_setenv_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  gl_cv_func_setenv_works="guessing no"
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-       #include <stdlib.h>
-       #include <errno.h>
-       #include <string.h>
-
-int
-main ()
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+int main ()
 {
-
-       if (setenv ("", "", 0) != -1) return 1;
-       if (errno != EINVAL) return 2;
-       if (setenv ("a", "=", 1) != 0) return 3;
-       if (strcmp (getenv ("a"), "=") != 0) return 4;
-
-  ;
+  if (sprintf (buf, "%'d %d", 1234567, 99) < 0
+      || buf[strlen (buf) - 1] != '9')
+    return 1;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_setenv_works=yes
+  gl_cv_func_printf_flag_grouping=yes
 else
-  gl_cv_func_setenv_works=no
+  gl_cv_func_printf_flag_grouping=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setenv_works" >&5
-$as_echo "$gl_cv_func_setenv_works" >&6; }
-    if test "$gl_cv_func_setenv_works" != yes; then
-      REPLACE_SETENV=1
-
-
-
-
-
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_flag_grouping" >&5
+$as_echo "$gl_cv_func_printf_flag_grouping" >&6; }
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS setenv.$ac_objext"
 
-    fi
-  fi
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the left-adjust flag correctly" >&5
+$as_echo_n "checking whether printf supports the left-adjust flag correctly... " >&6; }
+if ${gl_cv_func_printf_flag_leftadjust+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+      if test "$cross_compiling" = yes; then :
 
+         case "$host_os" in
+                    # Guess yes on HP-UX 11.
+           hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
+                    # Guess no on HP-UX 10 and older.
+           hpux*)   gl_cv_func_printf_flag_leftadjust="guessing no";;
+                    # Guess yes otherwise.
+           *)       gl_cv_func_printf_flag_leftadjust="guessing yes";;
+         esac
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  for ac_header in search.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default"
-if test "x$ac_cv_header_search_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SEARCH_H 1
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+int main ()
+{
+  /* Check that a '-' flag is not annihilated by a negative width.  */
+  if (sprintf (buf, "a%-*sc", -3, "b") < 0
+      || strcmp (buf, "ab  c") != 0)
+    return 1;
+  return 0;
+}
 _ACEOF
-
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_printf_flag_leftadjust=yes
+else
+  gl_cv_func_printf_flag_leftadjust=no
 fi
-
-done
-
-  for ac_func in tsearch
-do :
-  ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch"
-if test "x$ac_cv_func_tsearch" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_TSEARCH 1
-_ACEOF
-
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-done
-
-
-
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_flag_leftadjust" >&5
+$as_echo "$gl_cv_func_printf_flag_leftadjust" >&6; }
 
 
 
-  if test -z "$ERRNO_H"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5
-$as_echo_n "checking for working strerror function... " >&6; }
-if test "${gl_cv_func_working_strerror+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports the zero flag correctly" >&5
+$as_echo_n "checking whether printf supports the zero flag correctly... " >&6; }
+if ${gl_cv_func_printf_flag_zero+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
-           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
 
-int
-main ()
-{
-return !*strerror (-2);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_func_working_strerror=yes
-else
-  gl_cv_func_working_strerror=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      if test "$cross_compiling" = yes; then :
+
+         case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
+                   # Guess yes on BeOS.
+           beos*)  gl_cv_func_printf_flag_zero="guessing yes";;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_printf_flag_zero="guessing no";;
+         esac
 
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <string.h>
 
-int
-main ()
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+static double zero = 0.0;
+int main ()
 {
-return !*strerror (-2);
-  ;
+  if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0
+      || (strcmp (buf, "       inf") != 0
+          && strcmp (buf, "  infinity") != 0))
+    return 1;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_working_strerror=yes
+  gl_cv_func_printf_flag_zero=yes
 else
-  gl_cv_func_working_strerror=no
+  gl_cv_func_printf_flag_zero=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5
-$as_echo "$gl_cv_func_working_strerror" >&6; }
-    if test $gl_cv_func_working_strerror = no; then
-                  REPLACE_STRERROR=1
-    fi
-  else
-            REPLACE_STRERROR=1
-  fi
-  if test $REPLACE_STRERROR = 1; then
-
-  ac_fn_c_check_decl "$LINENO" "strerror" "ac_cv_have_decl_strerror" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strerror" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRERROR $ac_have_decl
-_ACEOF
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_flag_zero" >&5
+$as_echo "$gl_cv_func_printf_flag_zero" >&6; }
 
-  if test $ac_cv_header_sys_socket_h != yes; then
-                    for ac_header in winsock2.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
-if test "x$ac_cv_header_winsock2_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_WINSOCK2_H 1
-_ACEOF
 
-fi
 
-done
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports large precisions" >&5
+$as_echo_n "checking whether printf supports large precisions... " >&6; }
+if ${gl_cv_func_printf_precision+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-  fi
+      if test "$cross_compiling" = yes; then :
 
-  fi
+         case "$host_os" in
+           # Guess no only on Solaris, native Windows, and BeOS systems.
+           solaris*)     gl_cv_func_printf_precision="guessing no" ;;
+           mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
+           beos*)        gl_cv_func_printf_precision="guessing no" ;;
+           *)            gl_cv_func_printf_precision="guessing yes" ;;
+         esac
 
-ac_fn_c_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default"
-if test "x$ac_cv_have_decl_alarm" = x""yes; then :
-  ac_have_decl=1
 else
-  ac_have_decl=0
-fi
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ALARM $ac_have_decl
+#include <stdio.h>
+#include <string.h>
+static char buf[5000];
+int main ()
+{
+  int result = 0;
+#ifdef __BEOS__
+  /* On BeOS, this would crash and show a dialog box.  Avoid the crash.  */
+  return 1;
+#endif
+  if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3)
+    result |= 1;
+  if (sprintf (buf, "%.4000f %d", 1.0, 33, 44) < 4000 + 5)
+    result |= 2;
+  if (sprintf (buf, "%.511f %d", 1.0, 33, 44) < 511 + 5
+      || buf[0] != '1')
+    result |= 4;
+  if (sprintf (buf, "%.999f %d", 1.0, 33, 44) < 999 + 5
+      || buf[0] != '1')
+    result |= 4;
+  return result;
+}
 _ACEOF
-
-
-
-
-   if true; then
-  GL_COND_LIBTOOL_TRUE=
-  GL_COND_LIBTOOL_FALSE='#'
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_printf_precision=yes
 else
-  GL_COND_LIBTOOL_TRUE='#'
-  GL_COND_LIBTOOL_FALSE=
+  gl_cv_func_printf_precision=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-
-  gl_cond_libtool=true
-  gl_m4_base='gnulib-m4'
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_precision" >&5
+$as_echo "$gl_cv_func_printf_precision" >&6; }
 
 
 
 
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf survives out-of-memory conditions" >&5
+$as_echo_n "checking whether printf survives out-of-memory conditions... " >&6; }
+if ${gl_cv_func_printf_enomem+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+      gl_cv_func_printf_enomem="guessing no"
+      if test "$cross_compiling" = no; then
+        if test $APPLE_UNIVERSAL_BUILD = 0; then
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
 
-  gl_source_base='lib'
-  # Code from module alloca-opt:
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on Mac OS X.  */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens.  */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+   EXC_BAD_ACCESS.  */
+static void *
+mach_exception_thread (void *arg)
+{
+  /* Buffer for a message to be received.  */
+  struct {
+    mach_msg_header_t head;
+    mach_msg_body_t msgh_body;
+    char data1024;
+  } msg;
+  mach_msg_return_t retval;
+  /* Wait for a message on the exception port.  */
+  retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+                     our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+  if (retval != MACH_MSG_SUCCESS)
+    abort ();
+  exit (1);
+}
+static void
+nocrash_init (void)
+{
+  mach_port_t self = mach_task_self ();
+  /* Allocate a port on which the thread shall listen for exceptions.  */
+  if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+      == KERN_SUCCESS) {
+    /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html.  */
+    if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+                                MACH_MSG_TYPE_MAKE_SEND)
+        == KERN_SUCCESS) {
+      /* The exceptions we want to catch.  Only EXC_BAD_ACCESS is interesting
+         for us.  */
+      exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+      /* Create the thread listening on the exception port.  */
+      pthread_attr_t attr;
+      pthread_t thread;
+      if (pthread_attr_init (&attr) == 0
+          && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+          && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+        pthread_attr_destroy (&attr);
+        /* Replace the exception port info for these exceptions with our own.
+           Note that we replace the exception port for the entire task, not only
+           for a particular thread.  This has the effect that when our exception
+           port gets the message, the thread specific exception port has already
+           been asked, and we don't need to bother about it.
+           See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html.  */
+        task_set_exception_ports (self, mask, our_exception_port,
+                                  EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+      }
+    }
+  }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows.  */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+  switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+    {
+    case EXCEPTION_ACCESS_VIOLATION:
+    case EXCEPTION_IN_PAGE_ERROR:
+    case EXCEPTION_STACK_OVERFLOW:
+    case EXCEPTION_GUARD_PAGE:
+    case EXCEPTION_PRIV_INSTRUCTION:
+    case EXCEPTION_ILLEGAL_INSTRUCTION:
+    case EXCEPTION_DATATYPE_MISALIGNMENT:
+    case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+    case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+      exit (1);
+    }
+  return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+  SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems.  */
+#include <signal.h>
+/* A POSIX signal handler.  */
+static void
+exception_handler (int sig)
+{
+  exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+  signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+  signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <errno.h>
+int main()
+{
+  struct rlimit limit;
+  int ret;
+  nocrash_init ();
+  /* Some printf implementations allocate temporary space with malloc.  */
+  /* On BSD systems, malloc() is limited by RLIMIT_DATA.  */
+#ifdef RLIMIT_DATA
+  if (getrlimit (RLIMIT_DATA, &limit) < 0)
+    return 77;
+  if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
+    limit.rlim_max = 5000000;
+  limit.rlim_cur = limit.rlim_max;
+  if (setrlimit (RLIMIT_DATA, &limit) < 0)
+    return 77;
+#endif
+  /* On Linux systems, malloc() is limited by RLIMIT_AS.  */
+#ifdef RLIMIT_AS
+  if (getrlimit (RLIMIT_AS, &limit) < 0)
+    return 77;
+  if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
+    limit.rlim_max = 5000000;
+  limit.rlim_cur = limit.rlim_max;
+  if (setrlimit (RLIMIT_AS, &limit) < 0)
+    return 77;
+#endif
+  /* Some printf implementations allocate temporary space on the stack.  */
+#ifdef RLIMIT_STACK
+  if (getrlimit (RLIMIT_STACK, &limit) < 0)
+    return 77;
+  if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
+    limit.rlim_max = 5000000;
+  limit.rlim_cur = limit.rlim_max;
+  if (setrlimit (RLIMIT_STACK, &limit) < 0)
+    return 77;
+#endif
+  ret = printf ("%.5000000f", 1.0);
+  return !(ret == 5000002 || (ret < 0 && errno == ENOMEM));
+}
+
+_ACEOF
+          if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+            (./conftest 2>&5
+             result=$?
+             $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $result" >&5
+             if test $result != 0 && test $result != 77; then result=1; fi
+             exit $result
+            ) >/dev/null 2>/dev/null
+            case $? in
+              0) gl_cv_func_printf_enomem="yes" ;;
+              77) gl_cv_func_printf_enomem="guessing no" ;;
+              *) gl_cv_func_printf_enomem="no" ;;
+            esac
+          else
+            gl_cv_func_printf_enomem="guessing no"
+          fi
+          rm -fr conftest*
+        else
+                                        gl_cv_func_printf_enomem="guessing no"
+        fi
+      fi
+      if test "$gl_cv_func_printf_enomem" = "guessing no"; then
+        case "$host_os" in
+                    # Guess yes on glibc systems.
+          *-gnu*)   gl_cv_func_printf_enomem="guessing yes";;
+                    # Guess yes on Solaris.
+          solaris*) gl_cv_func_printf_enomem="guessing yes";;
+                    # Guess yes on AIX.
+          aix*)     gl_cv_func_printf_enomem="guessing yes";;
+                    # Guess yes on HP-UX/hppa.
+          hpux*)    case "$host_cpu" in
+                      hppa*) gl_cv_func_printf_enomem="guessing yes";;
+                      *)     gl_cv_func_printf_enomem="guessing no";;
+                    esac
+                    ;;
+                    # Guess yes on IRIX.
+          irix*)    gl_cv_func_printf_enomem="guessing yes";;
+                    # Guess yes on OSF/1.
+          osf*)     gl_cv_func_printf_enomem="guessing yes";;
+                    # Guess yes on BeOS.
+          beos*)    gl_cv_func_printf_enomem="guessing yes";;
+                    # Guess yes on Haiku.
+          haiku*)   gl_cv_func_printf_enomem="guessing yes";;
+                    # If we don't know, assume the worst.
+          *)        gl_cv_func_printf_enomem="guessing no";;
+        esac
+      fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_enomem" >&5
+$as_echo "$gl_cv_func_printf_enomem" >&6; }
 
 
 
 
-  if test $ac_cv_func_alloca_works = no; then
-    :
-  fi
 
-  # Define an additional variable used in the Makefile substitution.
-  if test $ac_cv_working_alloca_h = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5
-$as_echo_n "checking for alloca as a compiler built-in... " >&6; }
-if test "${gl_cv_rpl_alloca+set}" = set; then :
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5
+$as_echo_n "checking whether <wchar.h> uses 'inline' correctly... " >&6; }
+if ${gl_cv_header_wchar_h_correct_inline+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  gl_cv_header_wchar_h_correct_inline=yes
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#if defined __GNUC__ || defined _AIX || defined _MSC_VER
-        Need own alloca
-#endif
+       #define wcstod renamed_wcstod
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+extern int zero (void);
+int main () { return zero(); }
 
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Need own alloca" >/dev/null 2>&1; then :
-  gl_cv_rpl_alloca=yes
-else
-  gl_cv_rpl_alloca=no
-fi
-rm -f conftest*
-
+     if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+       mv conftest.$ac_objext conftest1.$ac_objext
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5
-$as_echo "$gl_cv_rpl_alloca" >&6; }
-    if test $gl_cv_rpl_alloca = yes; then
+         #define wcstod renamed_wcstod
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int zero (void) { return 0; }
 
-$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
+_ACEOF
+       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+         mv conftest.$ac_objext conftest2.$ac_objext
+         if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then
+           :
+         else
+           gl_cv_header_wchar_h_correct_inline=no
+         fi
+       fi
+     fi
+     rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext
 
-      ALLOCA_H=alloca.h
-    else
-                  ALLOCA_H=
-    fi
-  else
-    ALLOCA_H=alloca.h
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5
+$as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; }
+  if test $gl_cv_header_wchar_h_correct_inline = no; then
+    as_fn_error $? "<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS).
+This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in
+C99 mode. You have four options:
+  - Add the flag -fgnu89-inline to CC and reconfigure, or
+  - Fix your include files, using parts of
+    <http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=b037a293a48718af30d706c2e18c929d0e69a621>, or
+  - Use a gcc version older than 4.3, or
+  - Don't use the flags -std=c99 or -std=gnu99.
+Configuration aborted." "$LINENO" 5
   fi
 
 
-  # Code from module arg-nonnull:
-  # Code from module array-mergesort:
-  # Code from module c++defs:
-  # Code from module c-ctype:
-  # Code from module c-strcase:
-  # Code from module c-strcaseeq:
-  # Code from module configmake:
-  # Code from module errno:
-
-  # Code from module extensions:
-  # Code from module float:
-
-
-
-  FLOAT_H=
-  case "$host_os" in
-    beos* | openbsd*)
-      FLOAT_H=float.h
 
 
 
 
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_float_h='<'float.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <float.h>" >&5
-$as_echo_n "checking absolute name of <float.h>... " >&6; }
-if test "${gl_cv_next_float_h+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-          if test $ac_cv_header_float_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <float.h>
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
 
 _ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/float.h#{
-                 s#.*"\(.*/float.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
           else
-            gl_cv_next_float_h='<'float.h'>'
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
           fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5
-$as_echo "$gl_cv_next_float_h" >&6; }
-     fi
-     NEXT_FLOAT_H=$gl_cv_next_float_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'float.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_float_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
 
 
 
-      ;;
-  esac
 
 
-  # Code from module fpieee:
-  # Code from module fpucw:
-  # Code from module frexpl-nolibm:
 
 
-      ac_fn_c_check_decl "$LINENO" "frexpl" "ac_cv_have_decl_frexpl" "#include <math.h>
-"
-if test "x$ac_cv_have_decl_frexpl" = x""yes; then :
 
-else
-  HAVE_DECL_FREXPL=0
-fi
 
-  if test $HAVE_DECL_FREXPL = 1; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl() can be used without linking with libm" >&5
-$as_echo_n "checking whether frexpl() can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_frexpl_no_libm+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5
+$as_echo_n "checking if environ is properly declared... " >&6; }
+  if ${gt_cv_var_environ_declaration+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <math.h>
-                     long double x;
+#if HAVE_UNISTD_H
+     #include <unistd.h>
+     #endif
+     /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>.  */
+     #include <stdlib.h>
+
+           extern struct { int foo; } environ;
 int
 main ()
 {
-int e; return frexpl (x, &e) > 0;
+environ.foo = 1;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_frexpl_no_libm=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_var_environ_declaration=no
 else
-  gl_cv_func_frexpl_no_libm=no
+  gt_cv_var_environ_declaration=yes
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5
+$as_echo "$gt_cv_var_environ_declaration" >&6; }
+  if test $gt_cv_var_environ_declaration = yes; then
+
+$as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h
+
+  fi
+
+
+  if test $gt_cv_var_environ_declaration != yes; then
+    HAVE_DECL_ENVIRON=0
+  fi
 
+ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strerror_r" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_no_libm" >&5
-$as_echo "$gl_cv_func_frexpl_no_libm" >&6; }
-    if test $gl_cv_func_frexpl_no_libm = yes; then
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRERROR_R $ac_have_decl
+_ACEOF
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl works" >&5
-$as_echo_n "checking whether frexpl works... " >&6; }
-if test "${gl_cv_func_frexpl_works+set}" = set; then :
+for ac_func in strerror_r
+do :
+  ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
+if test "x$ac_cv_func_strerror_r" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STRERROR_R 1
+_ACEOF
+
+fi
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
+$as_echo_n "checking whether strerror_r returns char *... " >&6; }
+if ${ac_cv_func_strerror_r_char_p+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-         aix* | beos* | darwin* | irix* | mingw* | pw*)
-            gl_cv_func_frexpl_works="guessing no";;
-         *) gl_cv_func_frexpl_works="guessing yes";;
-       esac
+    ac_cv_func_strerror_r_char_p=no
+    if test $ac_cv_have_decl_strerror_r = yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+         char buf[100];
+         char x = *strerror_r (0, buf, sizeof buf);
+         char *p = strerror_r (0, buf, sizeof buf);
+         return !p || x;
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_func_strerror_r_char_p=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    else
+      # strerror_r is not declared.  Choose between
+      # systems that have relatively inaccessible declarations for the
+      # function.  BeOS and DEC UNIX 4.0 fall in this category, but the
+      # former has a strerror_r that returns char*, while the latter
+      # has a strerror_r that returns `int'.
+      # This test should segfault on the DEC system.
+      if test "$cross_compiling" = yes; then :
+  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#include <float.h>
-#include <math.h>
-/* Override the values of <float.h>, like done in float.in.h.  */
-#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
-# undef LDBL_MIN_EXP
-# define LDBL_MIN_EXP    (-16381)
-#endif
-extern long double frexpl (long double, int *);
-int main()
-{
-  volatile long double x;
-  /* Test on finite numbers that fails on AIX 5.1.  */
-  x = 16.0L;
-  {
-    int exp = -9999;
-    frexpl (x, &exp);
-    if (exp != 5)
-      return 1;
-  }
-  /* Test on finite numbers that fails on MacOS X 10.4, because its frexpl
-     function returns an invalid (incorrectly normalized) value: it returns
-               y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 }
-     but the correct result is
-          0.505L = { 0x3fe028f5, 0xc28f5c29, 0xbc547ae1, 0x47ae1480 }  */
-  x = 1.01L;
-  {
-    int exp = -9999;
-    long double y = frexpl (x, &exp);
-    if (!(exp == 1 && y == 0.505L))
-      return 1;
-  }
-  /* Test on large finite numbers.  This fails on BeOS at i = 16322, while
-     LDBL_MAX_EXP = 16384.
-     In the loop end test, we test x against Infinity, rather than comparing
-     i with LDBL_MAX_EXP, because BeOS <float.h> has a wrong LDBL_MAX_EXP.  */
-  {
-    int i;
-    for (i = 1, x = 1.0L; x != x + x; i++, x *= 2.0L)
-      {
-        int exp = -9999;
-        frexpl (x, &exp);
-        if (exp != i)
-          return 1;
-      }
-  }
-  /* Test on denormalized numbers.  */
-  {
-    int i;
-    for (i = 1, x = 1.0L; i >= LDBL_MIN_EXP; i--, x *= 0.5L)
-      ;
-    if (x > 0.0L)
-      {
-        int exp;
-        long double y = frexpl (x, &exp);
-        /* On machines with IEEE854 arithmetic: x = 1.68105e-4932,
-           exp = -16382, y = 0.5.  On MacOS X 10.5: exp = -16384, y = 0.5.  */
-        if (exp != LDBL_MIN_EXP - 1)
-          return 1;
-      }
-  }
-  /* Test on infinite numbers.  */
-  x = 1.0L / 0.0L;
-  {
-    int exp;
-    long double y = frexpl (x, &exp);
-    if (y != x)
-      return 1;
-  }
+$ac_includes_default
+       extern char *strerror_r ();
+int
+main ()
+{
+char buf[100];
+         char x = *strerror_r (0, buf, sizeof buf);
+         return ! isalpha (x);
+  ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_frexpl_works=yes
-else
-  gl_cv_func_frexpl_works=no
+  ac_cv_func_strerror_r_char_p=yes
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+    fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_works" >&5
-$as_echo "$gl_cv_func_frexpl_works" >&6; }
-
-      case "$gl_cv_func_frexpl_works" in
-        *yes) gl_func_frexpl_no_libm=yes ;;
-        *)    gl_func_frexpl_no_libm=no; REPLACE_FREXPL=1 ;;
-      esac
-    else
-      gl_func_frexpl_no_libm=no
-            REPLACE_FREXPL=1
-    fi
-    if test $gl_func_frexpl_no_libm = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5
+$as_echo "$ac_cv_func_strerror_r_char_p" >&6; }
+if test $ac_cv_func_strerror_r_char_p = yes; then
 
-$as_echo "#define HAVE_FREXPL_IN_LIBC 1" >>confdefs.h
+$as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h
 
-    fi
-  fi
-  if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then
+fi
 
 
+  XGETTEXT_EXTRA_OPTIONS=
 
 
+  GNULIB_DPRINTF=0;
+  GNULIB_FCLOSE=0;
+  GNULIB_FDOPEN=0;
+  GNULIB_FFLUSH=0;
+  GNULIB_FGETC=0;
+  GNULIB_FGETS=0;
+  GNULIB_FOPEN=0;
+  GNULIB_FPRINTF=0;
+  GNULIB_FPRINTF_POSIX=0;
+  GNULIB_FPURGE=0;
+  GNULIB_FPUTC=0;
+  GNULIB_FPUTS=0;
+  GNULIB_FREAD=0;
+  GNULIB_FREOPEN=0;
+  GNULIB_FSCANF=0;
+  GNULIB_FSEEK=0;
+  GNULIB_FSEEKO=0;
+  GNULIB_FTELL=0;
+  GNULIB_FTELLO=0;
+  GNULIB_FWRITE=0;
+  GNULIB_GETC=0;
+  GNULIB_GETCHAR=0;
+  GNULIB_GETDELIM=0;
+  GNULIB_GETLINE=0;
+  GNULIB_OBSTACK_PRINTF=0;
+  GNULIB_OBSTACK_PRINTF_POSIX=0;
+  GNULIB_PCLOSE=0;
+  GNULIB_PERROR=0;
+  GNULIB_POPEN=0;
+  GNULIB_PRINTF=0;
+  GNULIB_PRINTF_POSIX=0;
+  GNULIB_PUTC=0;
+  GNULIB_PUTCHAR=0;
+  GNULIB_PUTS=0;
+  GNULIB_REMOVE=0;
+  GNULIB_RENAME=0;
+  GNULIB_RENAMEAT=0;
+  GNULIB_SCANF=0;
+  GNULIB_SNPRINTF=0;
+  GNULIB_SPRINTF_POSIX=0;
+  GNULIB_STDIO_H_NONBLOCKING=0;
+  GNULIB_STDIO_H_SIGPIPE=0;
+  GNULIB_TMPFILE=0;
+  GNULIB_VASPRINTF=0;
+  GNULIB_VFSCANF=0;
+  GNULIB_VSCANF=0;
+  GNULIB_VDPRINTF=0;
+  GNULIB_VFPRINTF=0;
+  GNULIB_VFPRINTF_POSIX=0;
+  GNULIB_VPRINTF=0;
+  GNULIB_VPRINTF_POSIX=0;
+  GNULIB_VSNPRINTF=0;
+  GNULIB_VSPRINTF_POSIX=0;
+    HAVE_DECL_FPURGE=1;
+  HAVE_DECL_FSEEKO=1;
+  HAVE_DECL_FTELLO=1;
+  HAVE_DECL_GETDELIM=1;
+  HAVE_DECL_GETLINE=1;
+  HAVE_DECL_OBSTACK_PRINTF=1;
+  HAVE_DECL_SNPRINTF=1;
+  HAVE_DECL_VSNPRINTF=1;
+  HAVE_DPRINTF=1;
+  HAVE_FSEEKO=1;
+  HAVE_FTELLO=1;
+  HAVE_PCLOSE=1;
+  HAVE_POPEN=1;
+  HAVE_RENAMEAT=1;
+  HAVE_VASPRINTF=1;
+  HAVE_VDPRINTF=1;
+  REPLACE_DPRINTF=0;
+  REPLACE_FCLOSE=0;
+  REPLACE_FDOPEN=0;
+  REPLACE_FFLUSH=0;
+  REPLACE_FOPEN=0;
+  REPLACE_FPRINTF=0;
+  REPLACE_FPURGE=0;
+  REPLACE_FREOPEN=0;
+  REPLACE_FSEEK=0;
+  REPLACE_FSEEKO=0;
+  REPLACE_FTELL=0;
+  REPLACE_FTELLO=0;
+  REPLACE_GETDELIM=0;
+  REPLACE_GETLINE=0;
+  REPLACE_OBSTACK_PRINTF=0;
+  REPLACE_PERROR=0;
+  REPLACE_POPEN=0;
+  REPLACE_PRINTF=0;
+  REPLACE_REMOVE=0;
+  REPLACE_RENAME=0;
+  REPLACE_RENAMEAT=0;
+  REPLACE_SNPRINTF=0;
+  REPLACE_SPRINTF=0;
+  REPLACE_STDIO_READ_FUNCS=0;
+  REPLACE_STDIO_WRITE_FUNCS=0;
+  REPLACE_TMPFILE=0;
+  REPLACE_VASPRINTF=0;
+  REPLACE_VDPRINTF=0;
+  REPLACE_VFPRINTF=0;
+  REPLACE_VPRINTF=0;
+  REPLACE_VSNPRINTF=0;
+  REPLACE_VSPRINTF=0;
+
+
+
+
+
+  if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+
+$as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
 
+  else
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+  fi
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS frexpl.$ac_objext"
 
-  fi
 
+  GNULIB_IMAXABS=0;
+  GNULIB_IMAXDIV=0;
+  GNULIB_STRTOIMAX=0;
+  GNULIB_STRTOUMAX=0;
+    HAVE_DECL_IMAXABS=1;
+  HAVE_DECL_IMAXDIV=1;
+  HAVE_DECL_STRTOIMAX=1;
+  HAVE_DECL_STRTOUMAX=1;
+  REPLACE_STRTOIMAX=0;
+  REPLACE_STRTOUMAX=0;
+  INT32_MAX_LT_INTMAX_MAX=1;
+  INT64_MAX_EQ_LONG_MAX='defined _LP64';
+  PRI_MACROS_BROKEN=0;
+  PRIPTR_PREFIX=__PRIPTR_PREFIX;
+  UINT32_MAX_LT_UINTMAX_MAX=1;
+  UINT64_MAX_EQ_ULONG_MAX='defined _LP64';
 
 
 
-  GNULIB_FREXPL=1
 
 
 
-$as_echo "#define GNULIB_TEST_FREXPL 1" >>confdefs.h
 
 
 
-  # Code from module fseterr:
-  # Code from module gperf:
-  # Code from module havelib:
-  # Code from module iconv:
 
 
 
 
 
-          am_save_CPPFLAGS="$CPPFLAGS"
 
-  for element in $INCICONV; do
-    haveit=
-    for x in $CPPFLAGS; do
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_inttypes_h='<'inttypes.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <inttypes.h>" >&5
+$as_echo_n "checking absolute name of <inttypes.h>... " >&6; }
+if ${gl_cv_next_inttypes_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
+             if test $ac_cv_header_inttypes_h = yes; then
 
-      if test "X$x" = "X$element"; then
-        haveit=yes
-        break
-      fi
-    done
-    if test -z "$haveit"; then
-      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
-    fi
-  done
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
-$as_echo_n "checking for iconv... " >&6; }
-if test "${am_cv_func_iconv+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-    am_cv_func_iconv="no, consider installing GNU libiconv"
-    am_cv_lib_iconv=no
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
-       iconv(cd,NULL,NULL,NULL,NULL);
-       iconv_close(cd);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  am_cv_func_iconv=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    if test "$am_cv_func_iconv" != yes; then
-      am_save_LIBS="$LIBS"
-      LIBS="$LIBS $LIBICONV"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
-         iconv(cd,NULL,NULL,NULL,NULL);
-         iconv_close(cd);
-  ;
-  return 0;
-}
+#include <inttypes.h>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  am_cv_lib_iconv=yes
-        am_cv_func_iconv=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-      LIBS="$am_save_LIBS"
-    fi
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'inttypes.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_inttypes_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_inttypes_h
+           gl_cv_next_inttypes_h='"'$gl_header'"'
+          else
+               gl_cv_next_inttypes_h='<'inttypes.h'>'
+             fi
+
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
-$as_echo "$am_cv_func_iconv" >&6; }
-  if test "$am_cv_func_iconv" = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
-$as_echo_n "checking for working iconv... " >&6; }
-if test "${am_cv_func_iconv_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_inttypes_h" >&5
+$as_echo "$gl_cv_next_inttypes_h" >&6; }
+     fi
+     NEXT_INTTYPES_H=$gl_cv_next_inttypes_h
 
-            am_save_LIBS="$LIBS"
-      if test $am_cv_lib_iconv = yes; then
-        LIBS="$LIBS $LIBICONV"
-      fi
-      if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
-           *)            am_cv_func_iconv_works="guessing yes" ;;
-         esac
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'inttypes.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_inttypes_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+
+    for gl_func in imaxabs imaxdiv strtoimax strtoumax; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <inttypes.h>
 
-#include <iconv.h>
-#include <string.h>
-int main ()
+int
+main ()
 {
-  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
-     returns.  */
-  {
-    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
-    if (cd_utf8_to_88591 != (iconv_t)(-1))
-      {
-        static const char input[] = "\342\202\254"; /* EURO SIGN */
-        char buf[10];
-        const char *inptr = input;
-        size_t inbytesleft = strlen (input);
-        char *outptr = buf;
-        size_t outbytesleft = sizeof (buf);
-        size_t res = iconv (cd_utf8_to_88591,
-                            (char **) &inptr, &inbytesleft,
-                            &outptr, &outbytesleft);
-        if (res == 0)
-          return 1;
-      }
-  }
-  /* Test against Solaris 10 bug: Failures are not distinguishable from
-     successful returns.  */
-  {
-    iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
-    if (cd_ascii_to_88591 != (iconv_t)(-1))
-      {
-        static const char input[] = "\263";
-        char buf[10];
-        const char *inptr = input;
-        size_t inbytesleft = strlen (input);
-        char *outptr = buf;
-        size_t outbytesleft = sizeof (buf);
-        size_t res = iconv (cd_ascii_to_88591,
-                            (char **) &inptr, &inbytesleft,
-                            &outptr, &outbytesleft);
-        if (res == 0)
-          return 1;
-      }
-  }
-#if 0 /* This bug could be worked around by the caller.  */
-  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
-  {
-    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
-    if (cd_88591_to_utf8 != (iconv_t)(-1))
-      {
-        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
-        char buf[50];
-        const char *inptr = input;
-        size_t inbytesleft = strlen (input);
-        char *outptr = buf;
-        size_t outbytesleft = sizeof (buf);
-        size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
-                            &outptr, &outbytesleft);
-        if ((int)res > 0)
-          return 1;
-      }
-  }
-#endif
-  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
-     provided.  */
-  if (/* Try standardized names.  */
-      iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
-      /* Try IRIX, OSF/1 names.  */
-      && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
-      /* Try AIX names.  */
-      && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
-      /* Try HP-UX names.  */
-      && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
-    return 1;
+#undef $gl_func
+  (void) $gl_func;
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  am_cv_func_iconv_works=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  am_cv_func_iconv_works=no
+  eval "$as_gl_Symbol=no"
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
 
-      LIBS="$am_save_LIBS"
-
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
-$as_echo "$am_cv_func_iconv_works" >&6; }
-    case "$am_cv_func_iconv_works" in
-      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
-      *)   am_func_iconv=yes ;;
-    esac
-  else
-    am_func_iconv=no am_cv_lib_iconv=no
-  fi
-  if test "$am_func_iconv" = yes; then
+      done
 
-$as_echo "#define HAVE_ICONV 1" >>confdefs.h
 
-  fi
-  if test "$am_cv_lib_iconv" = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
-$as_echo_n "checking how to link with libiconv... " >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
-$as_echo "$LIBICONV" >&6; }
-  else
-            CPPFLAGS="$am_save_CPPFLAGS"
-    LIBICONV=
-    LTLIBICONV=
-  fi
 
+  for ac_header in inttypes.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
+if test "x$ac_cv_header_inttypes_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_INTTYPES_H 1
+_ACEOF
+
+fi
 
+done
 
-  if test "$am_cv_func_iconv" = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
-$as_echo_n "checking for iconv declaration... " >&6; }
-    if test "${am_cv_proto_iconv+set}" = set; then :
+  if test $ac_cv_header_inttypes_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5
+$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; }
+if ${gt_cv_inttypes_pri_broken+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <stdlib.h>
-#include <iconv.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-#else
-size_t iconv();
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
 #endif
 
 int
@@ -20261,236 +25156,180 @@ main ()
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  am_cv_proto_iconv_arg1=""
+  gt_cv_inttypes_pri_broken=no
 else
-  am_cv_proto_iconv_arg1="const"
+  gt_cv_inttypes_pri_broken=yes
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
-fi
 
-    am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:
-         $am_cv_proto_iconv" >&5
-$as_echo "
-         $am_cv_proto_iconv" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5
+$as_echo "$gt_cv_inttypes_pri_broken" >&6; }
+  fi
+  if test "$gt_cv_inttypes_pri_broken" = yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define ICONV_CONST $am_cv_proto_iconv_arg1
+#define PRI_MACROS_BROKEN 1
 _ACEOF
 
+    PRI_MACROS_BROKEN=1
+  else
+    PRI_MACROS_BROKEN=0
   fi
 
-  # Code from module iconv-h:
-
-
 
 
+  GNULIB_LOCALECONV=0;
+  GNULIB_SETLOCALE=0;
+  GNULIB_DUPLOCALE=0;
+    HAVE_DUPLOCALE=1;
+  REPLACE_LOCALECONV=0;
+  REPLACE_SETLOCALE=0;
+  REPLACE_DUPLOCALE=0;
+  REPLACE_STRUCT_LCONV=0;
 
 
 
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_iconv_h='<'iconv.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <iconv.h>" >&5
-$as_echo_n "checking absolute name of <iconv.h>... " >&6; }
-if test "${gl_cv_next_iconv_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_setenv" = xyes; then :
+  ac_have_decl=1
 else
-
-          if test $ac_cv_header_iconv_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <iconv.h>
-
-_ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_iconv_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/iconv.h#{
-                 s#.*"\(.*/iconv.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
-          else
-            gl_cv_next_iconv_h='<'iconv.h'>'
-          fi
-
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_iconv_h" >&5
-$as_echo "$gl_cv_next_iconv_h" >&6; }
-     fi
-     NEXT_ICONV_H=$gl_cv_next_iconv_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'iconv.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_iconv_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_ICONV_H=$gl_next_as_first_directive
-
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SETENV $ac_have_decl
+_ACEOF
 
 
-  # Code from module iconv_open:
 
 
 
 
-  if test "$am_cv_func_iconv" = yes; then
+  if test $ac_cv_have_decl_setenv = no; then
+    HAVE_DECL_SETENV=0
+  fi
 
 
-  ICONV_H='iconv.h'
 
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-      #include <iconv.h>
-      #if defined _LIBICONV_VERSION || defined __GLIBC__
-       gnu_iconv
-      #endif
 
+  for ac_header in search.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default"
+if test "x$ac_cv_header_search_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SEARCH_H 1
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "gnu_iconv" >/dev/null 2>&1; then :
-  gl_func_iconv_gnu=yes
-else
-  gl_func_iconv_gnu=no
+
 fi
-rm -f conftest*
 
-    if test $gl_func_iconv_gnu = no; then
-      iconv_flavor=
-      case "$host_os" in
-        aix*)     iconv_flavor=ICONV_FLAVOR_AIX ;;
-        irix*)    iconv_flavor=ICONV_FLAVOR_IRIX ;;
-        hpux*)    iconv_flavor=ICONV_FLAVOR_HPUX ;;
-        osf*)     iconv_flavor=ICONV_FLAVOR_OSF ;;
-        solaris*) iconv_flavor=ICONV_FLAVOR_SOLARIS ;;
-      esac
-      if test -n "$iconv_flavor"; then
+done
 
-cat >>confdefs.h <<_ACEOF
-#define ICONV_FLAVOR $iconv_flavor
+  for ac_func in tsearch
+do :
+  ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch"
+if test "x$ac_cv_func_tsearch" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TSEARCH 1
 _ACEOF
 
+fi
+done
 
 
 
-  ICONV_H='iconv.h'
-
-  REPLACE_ICONV_OPEN=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS iconv_open.$ac_objext"
-
-
-      fi
-    fi
-  fi
-
-  # Code from module include_next:
-  # Code from module inline:
-
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generally respects inline" >&5
-$as_echo_n "checking whether the compiler generally respects inline... " >&6; }
-if test "${gl_cv_c_inline_effective+set}" = set; then :
+     REPLACE_STRERROR_0=0
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5
+$as_echo_n "checking whether strerror(0) succeeds... " >&6; }
+if ${gl_cv_func_strerror_0_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test $ac_cv_c_inline = no; then
-       gl_cv_c_inline_effective=no
-     else
-                                          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_strerror_0_works="guessing no" ;;
+       esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <string.h>
+           #include <errno.h>
 
 int
 main ()
 {
-#ifdef __NO_INLINE__
-               #error "inline is not effective"
-             #endif
+int result = 0;
+           char *str;
+           errno = 0;
+           str = strerror (0);
+           if (!*str) result |= 1;
+           if (errno) result |= 2;
+           if (strstr (str, "nknown") || strstr (str, "ndefined"))
+             result |= 4;
+           return result;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_c_inline_effective=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_strerror_0_works=yes
 else
-  gl_cv_c_inline_effective=no
+  gl_cv_func_strerror_0_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
+
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_inline_effective" >&5
-$as_echo "$gl_cv_c_inline_effective" >&6; }
-  if test $gl_cv_c_inline_effective = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5
+$as_echo "$gl_cv_func_strerror_0_works" >&6; }
+  case "$gl_cv_func_strerror_0_works" in
+    *yes) ;;
+    *)
+      REPLACE_STRERROR_0=1
 
-$as_echo "#define HAVE_INLINE 1" >>confdefs.h
+$as_echo "#define REPLACE_STRERROR_0 1" >>confdefs.h
 
-  fi
+      ;;
+  esac
 
-  # Code from module isnand-nolibm:
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(double) can be used without linking with libm" >&5
-$as_echo_n "checking whether isnan(double) can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_isnand_no_libm+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+ac_fn_c_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_unsetenv" = xyes; then :
+  ac_have_decl=1
 else
+  ac_have_decl=0
+fi
 
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <math.h>
-                   #if __GNUC__ >= 4
-                   # undef isnand
-                   # define isnand(x) __builtin_isnan ((double)(x))
-                   #else
-                   # undef isnand
-                   # define isnand(x) isnan ((double)(x))
-                   #endif
-                   double x;
-int
-main ()
-{
-return isnand (x);
-  ;
-  return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_UNSETENV $ac_have_decl
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_isnand_no_libm=yes
-else
-  gl_cv_func_isnand_no_libm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnand_no_libm" >&5
-$as_echo "$gl_cv_func_isnand_no_libm" >&6; }
 
-  if test $gl_cv_func_isnand_no_libm = yes; then
 
-$as_echo "#define HAVE_ISNAND_IN_LIBC 1" >>confdefs.h
 
-  else
 
 
+   if true; then
+  GL_COND_LIBTOOL_TRUE=
+  GL_COND_LIBTOOL_FALSE='#'
+else
+  GL_COND_LIBTOOL_TRUE='#'
+  GL_COND_LIBTOOL_FALSE=
+fi
+
+  gl_cond_libtool=true
+  gl_m4_base='gnulib-m4'
+
 
 
 
@@ -20498,471 +25337,417 @@ $as_echo "#define HAVE_ISNAND_IN_LIBC 1" >>confdefs.h
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS isnand.$ac_objext"
+
+  gl_source_base='lib'
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
-$as_echo_n "checking where to find the exponent in a 'double'... " >&6; }
-if test "${gl_cv_cc_double_expbit0+set}" = set; then :
+  if test $ac_cv_func_alloca_works = no; then
+    :
+  fi
+
+  # Define an additional variable used in the Makefile substitution.
+  if test $ac_cv_working_alloca_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5
+$as_echo_n "checking for alloca as a compiler built-in... " >&6; }
+if ${gl_cv_rpl_alloca+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
-
-                                                            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#if defined arm || defined __arm || defined __arm__
-  mixed_endianness
+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
+        Need own alloca
 #endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "mixed_endianness" >/dev/null 2>&1; then :
-  gl_cv_cc_double_expbit0="unknown"
-else
-
-                                                         :
-if test "${ac_cv_c_bigendian+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+  $EGREP "Need own alloca" >/dev/null 2>&1; then :
+  gl_cv_rpl_alloca=yes
 else
-  ac_cv_c_bigendian=unknown
-    # See if we're dealing with a universal compiler.
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-              not a universal capable compiler
-            #endif
-            typedef int dummy;
+  gl_cv_rpl_alloca=no
+fi
+rm -f conftest*
 
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
 
-       # Check for potential -arch flags.  It is not universal unless
-       # there are at least two -arch flags with different values.
-       ac_arch=
-       ac_prev=
-       for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
-        if test -n "$ac_prev"; then
-          case $ac_word in
-            i?86 | x86_64 | ppc | ppc64)
-              if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
-                ac_arch=$ac_word
-              else
-                ac_cv_c_bigendian=universal
-                break
-              fi
-              ;;
-          esac
-          ac_prev=
-        elif test "x$ac_word" = "x-arch"; then
-          ac_prev=arch
-        fi
-       done
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if sys/param.h defines the BYTE_ORDER macro.
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-            #include <sys/param.h>
-
-int
-main ()
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
-                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
-                    && LITTLE_ENDIAN)
-             bogus endian macros
-            #endif
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5
+$as_echo "$gl_cv_rpl_alloca" >&6; }
+    if test $gl_cv_rpl_alloca = yes; then
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-               #include <sys/param.h>
+$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
 
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
-                not big endian
-               #endif
+      ALLOCA_H=alloca.h
+    else
+                  ALLOCA_H=
+    fi
+  else
+    ALLOCA_H=alloca.h
+  fi
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
+   if test -n "$ALLOCA_H"; then
+  GL_GENERATE_ALLOCA_H_TRUE=
+  GL_GENERATE_ALLOCA_H_FALSE='#'
 else
-  ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  GL_GENERATE_ALLOCA_H_TRUE='#'
+  GL_GENERATE_ALLOCA_H_FALSE=
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
 
-int
-main ()
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
-             bogus endian macros
-            #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to _BIG_ENDIAN or not.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
 
-int
-main ()
-{
-#ifndef _BIG_ENDIAN
-                not big endian
-               #endif
+          if test "x$datarootdir" = x; then
+    datarootdir='${datadir}'
 
-  ;
-  return 0;
-}
+  fi
+    if test "x$docdir" = x; then
+    docdir='${datarootdir}/doc/${PACKAGE}'
+
+  fi
+    if test "x$htmldir" = x; then
+    htmldir='${docdir}'
+
+  fi
+  if test "x$dvidir" = x; then
+    dvidir='${docdir}'
+
+  fi
+  if test "x$pdfdir" = x; then
+    pdfdir='${docdir}'
+
+  fi
+  if test "x$psdir" = x; then
+    psdir='${docdir}'
+
+  fi
+  if test "x$lispdir" = x; then
+    lispdir='${datarootdir}/emacs/site-lisp'
+
+  fi
+  if test "x$localedir" = x; then
+    localedir='${datarootdir}/locale'
+
+  fi
+    if test "x$runstatedir" = x; then
+    runstatedir='${localstatedir}/run'
+
+  fi
+
+      pkglibexecdir='${libexecdir}/${PACKAGE}'
+
+
+
+
+
+
+
+  FLOAT_H=
+  REPLACE_FLOAT_LDBL=0
+  case "$host_os" in
+    aix* | beos* | openbsd* | mirbsd* | irix*)
+      FLOAT_H=float.h
+      ;;
+    freebsd*)
+      case "$host_cpu" in
+        i[34567]86 )
+          FLOAT_H=float.h
+          ;;
+        x86_64 )
+          # On x86_64 systems, the C compiler may still be generating
+          # 32-bit code.
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+             yes
+             #endif
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then :
+
 else
-  ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  FLOAT_H=float.h
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # Compile a test program.
+rm -f conftest*
+
+          ;;
+      esac
+      ;;
+    linux*)
+      case "$host_cpu" in
+        powerpc*)
+          FLOAT_H=float.h
+          ;;
+      esac
+      ;;
+  esac
+  case "$host_os" in
+    aix* | freebsd* | linux*)
+      if test -n "$FLOAT_H"; then
+        REPLACE_FLOAT_LDBL=1
+      fi
+      ;;
+  esac
+
+    REPLACE_ITOLD=0
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5
+$as_echo_n "checking whether conversion from 'int' to 'long double' works... " >&6; }
+if ${gl_cv_func_itold_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
       if test "$cross_compiling" = yes; then :
-  # Try to guess by grepping values from an object file.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  case "$host" in
+           sparc*-*-linux*)
+             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-short int ascii_mm[] =
-                 { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-               short int ascii_ii[] =
-                 { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-               int use_ascii (int i) {
-                 return ascii_mm[i] + ascii_ii[i];
-               }
-               short int ebcdic_ii[] =
-                 { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-               short int ebcdic_mm[] =
-                 { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-               int use_ebcdic (int i) {
-                 return ebcdic_mm[i] + ebcdic_ii[i];
-               }
-               extern int foo;
-
-int
-main ()
-{
-return use_ascii (foo) == use_ebcdic (foo);
-  ;
-  return 0;
-}
+#if defined __LP64__ || defined __arch64__
+                yes
+                #endif
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
-             ac_cv_c_bigendian=yes
-           fi
-           if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-             if test "$ac_cv_c_bigendian" = unknown; then
-               ac_cv_c_bigendian=no
-             else
-               # finding both strings is unlikely to happen, but who knows?
-               ac_cv_c_bigendian=unknown
-             fi
-           fi
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then :
+  gl_cv_func_itold_works="guessing no"
+else
+  gl_cv_func_itold_works="guessing yes"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest*
+
+             ;;
+           *) gl_cv_func_itold_works="guessing yes" ;;
+         esac
+
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-
-            /* Are we little or big endian?  From Harbison&Steele.  */
-            union
-            {
-              long int l;
-              char c[sizeof (long int)];
-            } u;
-            u.l = 1;
-            return u.c[sizeof (long int) - 1] == 1;
 
-  ;
+int i = -1;
+volatile long double ld;
+int main ()
+{
+  ld += i * 1.0L;
+  if (ld > 0)
+    return 1;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_c_bigendian=no
+  gl_cv_func_itold_works=yes
 else
-  ac_cv_c_bigendian=yes
+  gl_cv_func_itold_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-    fi
+
 fi
-:
- case $ac_cv_c_bigendian in #(
-   yes)
-     gl_cv_cc_double_expbit0="word 0 bit 20";; #(
-   no)
-     gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
-   universal)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5
+$as_echo "$gl_cv_func_itold_works" >&6; }
+  case "$gl_cv_func_itold_works" in
+    *no)
+      REPLACE_ITOLD=1
+                  FLOAT_H=float.h
+      ;;
+  esac
 
-$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+  if test -n "$FLOAT_H"; then
 
-     ;; #(
-   *)
-     gl_cv_cc_double_expbit0="unknown" ;;
- esac
 
 
-fi
-rm -f conftest*
 
 
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_float_h='<'float.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <float.h>" >&5
+$as_echo_n "checking absolute name of <float.h>... " >&6; }
+if ${gl_cv_next_float_h+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
+
+
+
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
 #include <float.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#define NWORDS \
-  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { double value; unsigned int word[NWORDS]; } memory_double;
-static unsigned int ored_words[NWORDS];
-static unsigned int anded_words[NWORDS];
-static void add_to_ored_words (double x)
-{
-  memory_double m;
-  size_t i;
-  /* Clear it first, in case sizeof (double) < sizeof (memory_double).  */
-  memset (&m, 0, sizeof (memory_double));
-  m.value = x;
-  for (i = 0; i < NWORDS; i++)
-    {
-      ored_words[i] |= m.word[i];
-      anded_words[i] &= m.word[i];
-    }
-}
-int main ()
-{
-  size_t j;
-  FILE *fp = fopen ("conftest.out", "w");
-  if (fp == NULL)
-    return 1;
-  for (j = 0; j < NWORDS; j++)
-    anded_words[j] = ~ (unsigned int) 0;
-  add_to_ored_words (0.25);
-  add_to_ored_words (0.5);
-  add_to_ored_words (1.0);
-  add_to_ored_words (2.0);
-  add_to_ored_words (4.0);
-  /* Remove bits that are common (e.g. if representation of the first mantissa
-     bit is explicit).  */
-  for (j = 0; j < NWORDS; j++)
-    ored_words[j] &= ~anded_words[j];
-  /* Now find the nonzero word.  */
-  for (j = 0; j < NWORDS; j++)
-    if (ored_words[j] != 0)
-      break;
-  if (j < NWORDS)
-    {
-      size_t i;
-      for (i = j + 1; i < NWORDS; i++)
-        if (ored_words[i] != 0)
-          {
-            fprintf (fp, "unknown");
-            return (fclose (fp) != 0);
-          }
-      for (i = 0; ; i++)
-        if ((ored_words[j] >> i) & 1)
-          {
-            fprintf (fp, "word %d bit %d", (int) j, (int) i);
-            return (fclose (fp) != 0);
-          }
-    }
-  fprintf (fp, "unknown");
-  return (fclose (fp) != 0);
-}
-
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_cc_double_expbit0=`cat conftest.out`
-else
-  gl_cv_cc_double_expbit0="unknown"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'float.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_float_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_float_h
+           gl_cv_next_float_h='"'$gl_header'"'
+
+
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_float_h" >&5
+$as_echo "$gl_cv_next_float_h" >&6; }
+     fi
+     NEXT_FLOAT_H=$gl_cv_next_float_h
 
-      rm -f conftest.out
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'float.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_float_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_FLOAT_H=$gl_next_as_first_directive
+
+
+
+
+  fi
 
+   if test -n "$FLOAT_H"; then
+  GL_GENERATE_FLOAT_H_TRUE=
+  GL_GENERATE_FLOAT_H_FALSE='#'
+else
+  GL_GENERATE_FLOAT_H_TRUE='#'
+  GL_GENERATE_FLOAT_H_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
-$as_echo "$gl_cv_cc_double_expbit0" >&6; }
-  case "$gl_cv_cc_double_expbit0" in
-    word*bit*)
-      word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
-      bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
 
-cat >>confdefs.h <<_ACEOF
-#define DBL_EXPBIT0_WORD $word
-_ACEOF
 
 
-cat >>confdefs.h <<_ACEOF
-#define DBL_EXPBIT0_BIT $bit
-_ACEOF
+  if test $REPLACE_FLOAT_LDBL = 1; then
 
-      ;;
-  esac
 
 
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext"
+
   fi
+  if test $REPLACE_ITOLD = 1; then
 
-  # Code from module isnanf-nolibm:
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(float) can be used without linking with libm" >&5
-$as_echo_n "checking whether isnan(float) can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_isnanf_no_libm+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <math.h>
-                   #if __GNUC__ >= 4
-                   # undef isnanf
-                   # define isnanf(x) __builtin_isnanf ((float)(x))
-                   #elif defined isnan
-                   # undef isnanf
-                   # define isnanf(x) isnan ((float)(x))
-                   #endif
-                   float x;
-int
-main ()
-{
-return isnanf (x);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_isnanf_no_libm=yes
-else
-  gl_cv_func_isnanf_no_libm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanf_no_libm" >&5
-$as_echo "$gl_cv_func_isnanf_no_libm" >&6; }
 
-  if test $gl_cv_func_isnanf_no_libm = yes; then
 
 
+  gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext"
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(float) works" >&5
-$as_echo_n "checking whether isnan(float) works... " >&6; }
-if test "${gl_cv_func_isnanf_works+set}" = set; then :
+  fi
+
+
+
+  if test $gl_cv_func_frexp_no_libm = yes; then
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp works" >&5
+$as_echo_n "checking whether frexp works... " >&6; }
+if ${gl_cv_func_frexp_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
       if test "$cross_compiling" = yes; then :
   case "$host_os" in
-           irix* | solaris*) gl_cv_func_isnanf_works="guessing no";;
-           *)                gl_cv_func_isnanf_works="guessing yes";;
+           netbsd* | irix* | mingw*) gl_cv_func_frexp_works="guessing no";;
+           *)                        gl_cv_func_frexp_works="guessing yes";;
          esac
 
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
+#include <float.h>
 #include <math.h>
-#if __GNUC__ >= 4
-# undef isnanf
-# define isnanf(x) __builtin_isnanf ((float)(x))
-#elif defined isnan
-# undef isnanf
-# define isnanf(x) isnan ((float)(x))
+#include <string.h>
+#if HAVE_DECL_ALARM
+# include <signal.h>
+# include <unistd.h>
 #endif
-/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0.  */
-#ifdef __DECC
-static float
-NaN ()
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
+   to PowerPC on Mac OS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static double
+compute_minus_zero (void)
 {
-  static float zero = 0.0f;
-  return zero / zero;
+  return -DBL_MIN * DBL_MIN;
 }
+# define minus_zero compute_minus_zero ()
 #else
-# define NaN() (0.0f / 0.0f)
+double minus_zero = -0.0;
 #endif
-#define NWORDS \
-  ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { unsigned int word[NWORDS]; float value; } memory_float;
 int main()
 {
-  memory_float m;
-
-  if (isnanf (1.0f / 0.0f))
-    return 1;
-
-  if (!isnanf (NaN ()))
-    return 1;
-
-#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
-  /* The isnanf function should be immune against changes in the sign bit and
-     in the mantissa bits.  The xor operation twiddles a bit that can only be
-     a sign bit or a mantissa bit.  */
-  if (FLT_EXPBIT0_WORD == 0 && FLT_EXPBIT0_BIT > 0)
+  int result = 0;
+  int i;
+  volatile double x;
+  double zero = 0.0;
+#if HAVE_DECL_ALARM
+  /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite
+     number.  Let the test fail in this case.  */
+  signal (SIGALRM, SIG_DFL);
+  alarm (5);
+#endif
+  /* Test on denormalized numbers.  */
+  for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5)
+    ;
+  if (x > 0.0)
     {
-      m.value = NaN ();
-      /* Set the bits below the exponent to 01111...111.  */
-      m.word[0] &= -1U << FLT_EXPBIT0_BIT;
-      m.word[0] |= 1U << (FLT_EXPBIT0_BIT - 1) - 1;
-      if (!isnanf (m.value))
-        return 1;
+      int exp;
+      double y = frexp (x, &exp);
+      /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022.
+         On NetBSD: y = 0.75. Correct: y = 0.5.  */
+      if (y != 0.5)
+        result |= 1;
     }
-#endif
-
-  return 0;
+  /* Test on infinite numbers.  */
+  x = 1.0 / zero;
+  {
+    int exp;
+    double y = frexp (x, &exp);
+    if (y != x)
+      result |= 2;
+  }
+  /* Test on negative zero.  */
+  x = minus_zero;
+  {
+    int exp;
+    double y = frexp (x, &exp);
+    if (memcmp (&y, &x, sizeof x))
+      result |= 4;
+  }
+  return result;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_isnanf_works=yes
+  gl_cv_func_frexp_works=yes
 else
-  gl_cv_func_isnanf_works=no
+  gl_cv_func_frexp_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanf_works" >&5
-$as_echo "$gl_cv_func_isnanf_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_works" >&5
+$as_echo "$gl_cv_func_frexp_works" >&6; }
 
+    case "$gl_cv_func_frexp_works" in
+      *yes) gl_func_frexp_no_libm=yes ;;
+      *)    gl_func_frexp_no_libm=no; REPLACE_FREXP=1 ;;
+    esac
+  else
+    gl_func_frexp_no_libm=no
+        REPLACE_FREXP=1
   fi
-  if test $gl_cv_func_isnanf_no_libm = yes \
-     && { case "$gl_cv_func_isnanf_works" in
-            *yes) true;;
-            *) false;;
-          esac
-        }; then
+  if test $gl_func_frexp_no_libm = yes; then
 
-$as_echo "#define HAVE_ISNANF_IN_LIBC 1" >>confdefs.h
+$as_echo "#define HAVE_FREXP_IN_LIBC 1" >>confdefs.h
 
-  else
+  fi
 
+  if test $gl_func_frexp_no_libm != yes; then
 
 
 
@@ -20993,303 +25781,185 @@ $as_echo "#define HAVE_ISNANF_IN_LIBC 1" >>confdefs.h
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS isnanf.$ac_objext"
+  gl_LIBOBJS="$gl_LIBOBJS frexp.$ac_objext"
 
+  fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'float'" >&5
-$as_echo_n "checking where to find the exponent in a 'float'... " >&6; }
-if test "${gl_cv_cc_float_expbit0+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-      if test "$cross_compiling" = yes; then :
-  gl_cv_cc_float_expbit0="word 0 bit 23"
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <float.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#define NWORDS \
-  ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { float value; unsigned int word[NWORDS]; } memory_float;
-static unsigned int ored_words[NWORDS];
-static unsigned int anded_words[NWORDS];
-static void add_to_ored_words (float x)
-{
-  memory_float m;
-  size_t i;
-  /* Clear it first, in case
-     sizeof (float) < sizeof (memory_float).  */
-  memset (&m, 0, sizeof (memory_float));
-  m.value = x;
-  for (i = 0; i < NWORDS; i++)
-    {
-      ored_words[i] |= m.word[i];
-      anded_words[i] &= m.word[i];
-    }
-}
-int main ()
-{
-  size_t j;
-  FILE *fp = fopen ("conftest.out", "w");
-  if (fp == NULL)
-    return 1;
-  for (j = 0; j < NWORDS; j++)
-    anded_words[j] = ~ (unsigned int) 0;
-  add_to_ored_words (0.25f);
-  add_to_ored_words (0.5f);
-  add_to_ored_words (1.0f);
-  add_to_ored_words (2.0f);
-  add_to_ored_words (4.0f);
-  /* Remove bits that are common (e.g. if representation of the first mantissa
-     bit is explicit).  */
-  for (j = 0; j < NWORDS; j++)
-    ored_words[j] &= ~anded_words[j];
-  /* Now find the nonzero word.  */
-  for (j = 0; j < NWORDS; j++)
-    if (ored_words[j] != 0)
-      break;
-  if (j < NWORDS)
-    {
-      size_t i;
-      for (i = j + 1; i < NWORDS; i++)
-        if (ored_words[i] != 0)
-          {
-            fprintf (fp, "unknown");
-            return (fclose (fp) != 0);
-          }
-      for (i = 0; ; i++)
-        if ((ored_words[j] >> i) & 1)
-          {
-            fprintf (fp, "word %d bit %d", (int) j, (int) i);
-            return (fclose (fp) != 0);
-          }
-    }
-  fprintf (fp, "unknown");
-  return (fclose (fp) != 0);
-}
 
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_cc_float_expbit0=`cat conftest.out`
-else
-  gl_cv_cc_float_expbit0="unknown"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-      rm -f conftest.out
+          GNULIB_FREXP=1
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_expbit0" >&5
-$as_echo "$gl_cv_cc_float_expbit0" >&6; }
-  case "$gl_cv_cc_float_expbit0" in
-    word*bit*)
-      word=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
-      bit=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word.*bit //'`
 
-cat >>confdefs.h <<_ACEOF
-#define FLT_EXPBIT0_WORD $word
-_ACEOF
 
 
-cat >>confdefs.h <<_ACEOF
-#define FLT_EXPBIT0_BIT $bit
-_ACEOF
 
-      ;;
-  esac
+$as_echo "#define GNULIB_TEST_FREXP 1" >>confdefs.h
 
 
-  fi
 
-  # Code from module isnanl-nolibm:
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(long double) can be used without linking with libm" >&5
-$as_echo_n "checking whether isnan(long double) can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_isnanl_no_libm+set}" = set; then :
+
+      ac_fn_c_check_decl "$LINENO" "frexpl" "ac_cv_have_decl_frexpl" "#include <math.h>
+"
+if test "x$ac_cv_have_decl_frexpl" = xyes; then :
+
+else
+  HAVE_DECL_FREXPL=0
+fi
+
+  if test $HAVE_DECL_FREXPL = 1; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl() can be used without linking with libm" >&5
+$as_echo_n "checking whether frexpl() can be used without linking with libm... " >&6; }
+if ${gl_cv_func_frexpl_no_libm+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <math.h>
-                   #if __GNUC__ >= 4
-                   # undef isnanl
-                   # define isnanl(x) __builtin_isnanl ((long double)(x))
-                   #elif defined isnan
-                   # undef isnanl
-                   # define isnanl(x) isnan ((long double)(x))
-                   #endif
-                   long double x;
+             long double x;
 int
 main ()
 {
-return isnanl (x);
+int e; return frexpl (x, &e) > 0;
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_isnanl_no_libm=yes
+  gl_cv_func_frexpl_no_libm=yes
 else
-  gl_cv_func_isnanl_no_libm=no
+  gl_cv_func_frexpl_no_libm=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanl_no_libm" >&5
-$as_echo "$gl_cv_func_isnanl_no_libm" >&6; }
-
-  gl_func_isnanl_no_libm=$gl_cv_func_isnanl_no_libm
-  if test $gl_func_isnanl_no_libm = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_no_libm" >&5
+$as_echo "$gl_cv_func_frexpl_no_libm" >&6; }
 
+    if test $gl_cv_func_frexpl_no_libm = yes; then
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnanl works" >&5
-$as_echo_n "checking whether isnanl works... " >&6; }
-if test "${gl_cv_func_isnanl_works+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl works" >&5
+$as_echo_n "checking whether frexpl works... " >&6; }
+if ${gl_cv_func_frexpl_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
       if test "$cross_compiling" = yes; then :
-  case "$host_cpu" in
-                               # Guess no on ia64, x86_64, i386.
-         ia64 | x86_64 | i*86) gl_cv_func_isnanl_works="guessing no";;
-         *)
-           case "$host_os" in
-             netbsd*) gl_cv_func_isnanl_works="guessing no";;
-             *)       gl_cv_func_isnanl_works="guessing yes";;
-           esac
-           ;;
-       esac
+
+         case "$host_os" in
+           aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*)
+              gl_cv_func_frexpl_works="guessing no";;
+           *) gl_cv_func_frexpl_works="guessing yes";;
+         esac
 
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <float.h>
-#include <limits.h>
 #include <math.h>
-#if __GNUC__ >= 4
-# undef isnanl
-# define isnanl(x) __builtin_isnanl ((long double)(x))
-#elif defined isnan
-# undef isnanl
-# define isnanl(x) isnan ((long double)(x))
+/* Override the values of <float.h>, like done in float.in.h.  */
+#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP    (-16381)
 #endif
-#define NWORDS \
-  ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { unsigned int word[NWORDS]; long double value; }
-        memory_long_double;
-/* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the
-   runtime type conversion.  */
-#ifdef __sgi
-static long double NaNl ()
-{
-  double zero = 0.0;
-  return zero / zero;
-}
-#else
-# define NaNl() (0.0L / 0.0L)
+#if defined __i386__ && defined __FreeBSD__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP    (-16381)
 #endif
-int main ()
-{
-  memory_long_double m;
-  unsigned int i;
-
-  if (!isnanl (NaNl ()))
-    return 1;
-
-  /* The isnanl function should be immune against changes in the sign bit and
-     in the mantissa bits.  The xor operation twiddles a bit that can only be
-     a sign bit or a mantissa bit (since the exponent never extends to
-     bit 31).  */
-  m.value = NaNl ();
-  m.word[NWORDS / 2] ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
-  for (i = 0; i < NWORDS; i++)
-    m.word[i] |= 1;
-  if (!isnanl (m.value))
-    return 1;
-
-#if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
-/* Representation of an 80-bit 'long double' as an initializer for a sequence
-   of 'unsigned int' words.  */
-# ifdef WORDS_BIGENDIAN
-#  define LDBL80_WORDS(exponent,manthi,mantlo) \
-     { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \
-       ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16),    \
-       (unsigned int) (mantlo) << 16                                        \
-     }
-# else
-#  define LDBL80_WORDS(exponent,manthi,mantlo) \
-     { mantlo, manthi, exponent }
+#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+#endif
+#if defined __sgi && (LDBL_MANT_DIG >= 106)
+# if defined __GNUC__
+#  undef LDBL_MIN_EXP
+#  define LDBL_MIN_EXP DBL_MIN_EXP
 # endif
-  { /* Quiet NaN.  */
-    static memory_long_double x =
-      { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
-    if (!isnanl (x.value))
-      return 1;
-  }
+#endif
+extern
+#ifdef __cplusplus
+"C"
+#endif
+long double frexpl (long double, int *);
+int main()
+{
+  int result = 0;
+  volatile long double x;
+  /* Test on finite numbers that fails on AIX 5.1.  */
+  x = 16.0L;
   {
-    /* Signalling NaN.  */
-    static memory_long_double x =
-      { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
-    if (!isnanl (x.value))
-      return 1;
-  }
-  /* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities,
-     Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
-       Intel IA-64 Architecture Software Developer's Manual, Volume 1:
-       Application Architecture.
-       Table 5-2 "Floating-Point Register Encodings"
-       Figure 5-6 "Memory to Floating-Point Register Data Translation"
-   */
-  { /* Pseudo-NaN.  */
-    static memory_long_double x =
-      { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
-    if (!isnanl (x.value))
-      return 1;
+    int exp = -9999;
+    frexpl (x, &exp);
+    if (exp != 5)
+      result |= 1;
   }
-  { /* Pseudo-Infinity.  */
-    static memory_long_double x =
-      { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
-    if (!isnanl (x.value))
-      return 1;
+  /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl
+     function returns an invalid (incorrectly normalized) value: it returns
+               y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 }
+     but the correct result is
+          0.505L = { 0x3fe028f5, 0xc28f5c29, 0xbc547ae1, 0x47ae1480 }  */
+  x = 1.01L;
+  {
+    int exp = -9999;
+    long double y = frexpl (x, &exp);
+    if (!(exp == 1 && y == 0.505L))
+      result |= 2;
   }
-  { /* Pseudo-Zero.  */
-    static memory_long_double x =
-      { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
-    if (!isnanl (x.value))
-      return 1;
+  /* Test on large finite numbers.  This fails on BeOS at i = 16322, while
+     LDBL_MAX_EXP = 16384.
+     In the loop end test, we test x against Infinity, rather than comparing
+     i with LDBL_MAX_EXP, because BeOS <float.h> has a wrong LDBL_MAX_EXP.  */
+  {
+    int i;
+    for (i = 1, x = 1.0L; x != x + x; i++, x *= 2.0L)
+      {
+        int exp = -9999;
+        frexpl (x, &exp);
+        if (exp != i)
+          {
+            result |= 4;
+            break;
+          }
+      }
   }
-  { /* Unnormalized number.  */
-    static memory_long_double x =
-      { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
-    if (!isnanl (x.value))
-      return 1;
+  /* Test on denormalized numbers.  */
+  {
+    int i;
+    for (i = 1, x = 1.0L; i >= LDBL_MIN_EXP; i--, x *= 0.5L)
+      ;
+    if (x > 0.0L)
+      {
+        int exp;
+        long double y = frexpl (x, &exp);
+        /* On machines with IEEE854 arithmetic: x = 1.68105e-4932,
+           exp = -16382, y = 0.5.  On Mac OS X 10.5: exp = -16384, y = 0.5.  */
+        if (exp != LDBL_MIN_EXP - 1)
+          result |= 8;
+      }
   }
-  { /* Pseudo-Denormal.  */
-    static memory_long_double x =
-      { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
-    if (!isnanl (x.value))
-      return 1;
+  /* Test on infinite numbers.  */
+  x = 1.0L / 0.0L;
+  {
+    int exp;
+    long double y = frexpl (x, &exp);
+    if (y != x)
+      result |= 16;
   }
-#endif
-
-  return 0;
+  return result;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_isnanl_works=yes
+  gl_cv_func_frexpl_works=yes
 else
-  gl_cv_func_isnanl_works=no
+  gl_cv_func_frexpl_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanl_works" >&5
-$as_echo "$gl_cv_func_isnanl_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_works" >&5
+$as_echo "$gl_cv_func_frexpl_works" >&6; }
 
-    case "$gl_cv_func_isnanl_works" in
-      *yes) ;;
-      *)    gl_func_isnanl_no_libm=no ;;
-    esac
+      case "$gl_cv_func_frexpl_works" in
+        *yes) gl_func_frexpl_no_libm=yes ;;
+        *)    gl_func_frexpl_no_libm=no; REPLACE_FREXPL=1 ;;
+      esac
+    else
+      gl_func_frexpl_no_libm=no
+            REPLACE_FREXPL=1
+    fi
+    if test $gl_func_frexpl_no_libm = yes; then
+
+$as_echo "#define HAVE_FREXPL_IN_LIBC 1" >>confdefs.h
+
+    fi
   fi
-  if test $gl_func_isnanl_no_libm = yes; then
 
-$as_echo "#define HAVE_ISNANL_IN_LIBC 1" >>confdefs.h
+  if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then
 
-  else
 
 
 
@@ -21317,415 +25994,323 @@ $as_echo "#define HAVE_ISNANL_IN_LIBC 1" >>confdefs.h
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS frexpl.$ac_objext"
 
+  fi
 
-  gl_LIBOBJS="$gl_LIBOBJS isnanl.$ac_objext"
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'long double'" >&5
-$as_echo_n "checking where to find the exponent in a 'long double'... " >&6; }
-if test "${gl_cv_cc_long_double_expbit0+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-      if test "$cross_compiling" = yes; then :
+          GNULIB_FREXPL=1
 
-                              gl_cv_cc_long_double_expbit0="unknown"
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <float.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#define NWORDS \
-  ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { long double value; unsigned int word[NWORDS]; }
-        memory_long_double;
-static unsigned int ored_words[NWORDS];
-static unsigned int anded_words[NWORDS];
-static void add_to_ored_words (long double x)
-{
-  memory_long_double m;
-  size_t i;
-  /* Clear it first, in case
-     sizeof (long double) < sizeof (memory_long_double).  */
-  memset (&m, 0, sizeof (memory_long_double));
-  m.value = x;
-  for (i = 0; i < NWORDS; i++)
-    {
-      ored_words[i] |= m.word[i];
-      anded_words[i] &= m.word[i];
-    }
-}
-int main ()
-{
-  size_t j;
-  FILE *fp = fopen ("conftest.out", "w");
-  if (fp == NULL)
-    return 1;
-  for (j = 0; j < NWORDS; j++)
-    anded_words[j] = ~ (unsigned int) 0;
-  add_to_ored_words (0.25L);
-  add_to_ored_words (0.5L);
-  add_to_ored_words (1.0L);
-  add_to_ored_words (2.0L);
-  add_to_ored_words (4.0L);
-  /* Remove bits that are common (e.g. if representation of the first mantissa
-     bit is explicit).  */
-  for (j = 0; j < NWORDS; j++)
-    ored_words[j] &= ~anded_words[j];
-  /* Now find the nonzero word.  */
-  for (j = 0; j < NWORDS; j++)
-    if (ored_words[j] != 0)
-      break;
-  if (j < NWORDS)
-    {
-      size_t i;
-      for (i = j + 1; i < NWORDS; i++)
-        if (ored_words[i] != 0)
-          {
-            fprintf (fp, "unknown");
-            return (fclose (fp) != 0);
-          }
-      for (i = 0; ; i++)
-        if ((ored_words[j] >> i) & 1)
-          {
-            fprintf (fp, "word %d bit %d", (int) j, (int) i);
-            return (fclose (fp) != 0);
-          }
-    }
-  fprintf (fp, "unknown");
-  return (fclose (fp) != 0);
-}
 
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_cc_long_double_expbit0=`cat conftest.out`
-else
-  gl_cv_cc_long_double_expbit0="unknown"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-      rm -f conftest.out
+$as_echo "#define GNULIB_TEST_FREXPL 1" >>confdefs.h
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_long_double_expbit0" >&5
-$as_echo "$gl_cv_cc_long_double_expbit0" >&6; }
-  case "$gl_cv_cc_long_double_expbit0" in
-    word*bit*)
-      word=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
-      bit=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word.*bit //'`
 
-cat >>confdefs.h <<_ACEOF
-#define LDBL_EXPBIT0_WORD $word
-_ACEOF
 
 
-cat >>confdefs.h <<_ACEOF
-#define LDBL_EXPBIT0_BIT $bit
-_ACEOF
 
-      ;;
-  esac
 
+  if test $ac_cv_func___fseterr = no; then
 
-  fi
 
-  # Code from module localcharset:
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS fseterr.$ac_objext"
 
+  fi
 
-  LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\""
 
-  # Code from module localename:
 
 
 
-  for ac_func in setlocale uselocale
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-fi
-done
+          GNULIB_ICONV=1
 
 
-  # Code from module lock:
 
 
-  if test "$gl_threads_api" = posix; then
-    # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the
-    # pthread_rwlock_* functions.
-    ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include <pthread.h>
-"
-if test "x$ac_cv_type_pthread_rwlock_t" = x""yes; then :
 
-$as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h
 
-fi
 
-    # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_iconv_h='<'iconv.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <iconv.h>" >&5
+$as_echo_n "checking absolute name of <iconv.h>... " >&6; }
+if ${gl_cv_next_iconv_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+             if test $ac_cv_header_iconv_h = yes; then
+
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <pthread.h>
-int
-main ()
-{
-#if __FreeBSD__ == 4
-error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
-#else
-int x = (int)PTHREAD_MUTEX_RECURSIVE;
-return !x;
-#endif
-  ;
-  return 0;
-}
+#include <iconv.h>
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'iconv.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_iconv_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_iconv_h
+           gl_cv_next_iconv_h='"'$gl_header'"'
+          else
+               gl_cv_next_iconv_h='<'iconv.h'>'
+             fi
 
-$as_echo "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_iconv_h" >&5
+$as_echo "$gl_cv_next_iconv_h" >&6; }
+     fi
+     NEXT_ICONV_H=$gl_cv_next_iconv_h
 
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'iconv.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_iconv_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_ICONV_H=$gl_next_as_first_directive
 
 
 
-  # Code from module malloc-posix:
 
 
-  if test $gl_cv_func_malloc_posix = yes; then
-    HAVE_MALLOC_POSIX=1
 
-$as_echo "#define HAVE_MALLOC_POSIX 1" >>confdefs.h
 
-  else
 
 
+  if test "$am_cv_func_iconv" = yes; then
 
 
+  ICONV_H='iconv.h'
+   if test -n "$ICONV_H"; then
+  GL_GENERATE_ICONV_H_TRUE=
+  GL_GENERATE_ICONV_H_FALSE='#'
+else
+  GL_GENERATE_ICONV_H_TRUE='#'
+  GL_GENERATE_ICONV_H_FALSE=
+fi
 
 
+            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+      #include <iconv.h>
+      #if defined _LIBICONV_VERSION || (defined __GLIBC__ && !defined __UCLIBC__)
+       gnu_iconv
+      #endif
 
-  gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "gnu_iconv" >/dev/null 2>&1; then :
+  gl_func_iconv_gnu=yes
+else
+  gl_func_iconv_gnu=no
+fi
+rm -f conftest*
 
-    HAVE_MALLOC_POSIX=0
-  fi
+    if test $gl_func_iconv_gnu = no; then
+      iconv_flavor=
+      case "$host_os" in
+        aix*)     iconv_flavor=ICONV_FLAVOR_AIX ;;
+        irix*)    iconv_flavor=ICONV_FLAVOR_IRIX ;;
+        hpux*)    iconv_flavor=ICONV_FLAVOR_HPUX ;;
+        osf*)     iconv_flavor=ICONV_FLAVOR_OSF ;;
+        solaris*) iconv_flavor=ICONV_FLAVOR_SOLARIS ;;
+      esac
+      if test -n "$iconv_flavor"; then
 
+cat >>confdefs.h <<_ACEOF
+#define ICONV_FLAVOR $iconv_flavor
+_ACEOF
 
 
 
 
-  GNULIB_MALLOC_POSIX=1
+  ICONV_H='iconv.h'
+   if test -n "$ICONV_H"; then
+  GL_GENERATE_ICONV_H_TRUE=
+  GL_GENERATE_ICONV_H_FALSE='#'
+else
+  GL_GENERATE_ICONV_H_TRUE='#'
+  GL_GENERATE_ICONV_H_FALSE=
+fi
 
 
+  REPLACE_ICONV_OPEN=1
 
-$as_echo "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h
+      fi
+    fi
 
+  fi
 
+  if test $REPLACE_ICONV_OPEN = 1; then
 
-  # Code from module malloca:
 
 
 
 
-  # Code from module math:
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS iconv_open.$ac_objext"
 
+  fi
+  if test $REPLACE_ICONV = 1; then
 
 
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_math_h='<'math.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <math.h>" >&5
-$as_echo_n "checking absolute name of <math.h>... " >&6; }
-if test "${gl_cv_next_math_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-          if test $ac_cv_header_math_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <math.h>
 
-_ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_math_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/math.h#{
-                 s#.*"\(.*/math.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
-          else
-            gl_cv_next_math_h='<'math.h'>'
-          fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_math_h" >&5
-$as_echo "$gl_cv_next_math_h" >&6; }
-     fi
-     NEXT_MATH_H=$gl_cv_next_math_h
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'math.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_math_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_MATH_H=$gl_next_as_first_directive
+  gl_LIBOBJS="$gl_LIBOBJS iconv.$ac_objext"
 
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NAN macro works" >&5
-$as_echo_n "checking whether NAN macro works... " >&6; }
-if test "${gl_cv_header_math_nan_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <math.h>
-int
-main ()
-{
-/* Solaris 10 has a broken definition of NAN.  Other platforms
-        fail to provide NAN, or provide it only in C99 mode; this
-        test only needs to fail when NAN is provided but wrong.  */
-         float f = 1.0f;
-#ifdef NAN
-         f = NAN;
-#endif
-         return f == 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_math_nan_works=yes
-else
-  gl_cv_header_math_nan_works=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_nan_works" >&5
-$as_echo "$gl_cv_header_math_nan_works" >&6; }
-  if test $gl_cv_header_math_nan_works = no; then
-    REPLACE_NAN=1
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS iconv_close.$ac_objext"
+
   fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether HUGE_VAL works" >&5
-$as_echo_n "checking whether HUGE_VAL works... " >&6; }
-if test "${gl_cv_header_math_huge_val_works+set}" = set; then :
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generally respects inline" >&5
+$as_echo_n "checking whether the compiler generally respects inline... " >&6; }
+if ${gl_cv_c_inline_effective+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if test $ac_cv_c_inline = no; then
+       gl_cv_c_inline_effective=no
+     else
+                                          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <math.h>
+
 int
 main ()
 {
-/* Solaris 10 has a broken definition of HUGE_VAL.  */
-         double d = HUGE_VAL;
-         return d == 0;
+#ifdef __NO_INLINE__
+               #error "inline is not effective"
+             #endif
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_math_huge_val_works=yes
+  gl_cv_c_inline_effective=yes
 else
-  gl_cv_header_math_huge_val_works=no
+  gl_cv_c_inline_effective=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     fi
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_huge_val_works" >&5
-$as_echo "$gl_cv_header_math_huge_val_works" >&6; }
-  if test $gl_cv_header_math_huge_val_works = no; then
-    REPLACE_HUGE_VAL=1
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_inline_effective" >&5
+$as_echo "$gl_cv_c_inline_effective" >&6; }
+  if test $gl_cv_c_inline_effective = yes; then
+
+$as_echo "#define HAVE_INLINE 1" >>confdefs.h
+
   fi
 
 
-    for gl_func in acosl asinl atanl ceilf ceill cosl expl floorf floorl frexpl     ldexpl logb logl round roundf roundl sinl sqrtl tanl trunc truncf truncl; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(double) can be used without linking with libm" >&5
+$as_echo_n "checking whether isnan(double) can be used without linking with libm... " >&6; }
+if ${gl_cv_func_isnand_no_libm+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <math.h>
-
+             #if __GNUC__ >= 4
+             # undef isnand
+             # define isnand(x) __builtin_isnan ((double)(x))
+             #else
+             # undef isnand
+             # define isnand(x) isnan ((double)(x))
+             #endif
+             double x;
 int
 main ()
 {
-#undef $gl_func
-  (void) $gl_func;
+return isnand (x);
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_isnand_no_libm=yes
 else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  gl_cv_func_isnand_no_libm=no
 fi
-eval ac_res=\$$as_gl_Symbol
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     eval as_val=\$$as_gl_Symbol
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-                     eval ac_cv_have_decl_$gl_func=yes
 fi
-      done
-
-
-  # Code from module mbchar:
-
-
-
-
-  # Code from module mbiter:
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnand_no_libm" >&5
+$as_echo "$gl_cv_func_isnand_no_libm" >&6; }
 
+  gl_func_isnand_no_libm=$gl_cv_func_isnand_no_libm
+  if test $gl_cv_func_isnand_no_libm = yes; then
 
+$as_echo "#define HAVE_ISNAND_IN_LIBC 1" >>confdefs.h
 
+  fi
 
-  :
+  if test $gl_func_isnand_no_libm != yes; then
 
-  # Code from module mbrtowc:
 
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS isnand.$ac_objext"
 
 
 
-  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
 
+  fi
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
-$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
-if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(float) can be used without linking with libm" >&5
+$as_echo_n "checking whether isnan(float) can be used without linking with libm... " >&6; }
+if ${gl_cv_func_isnanf_no_libm+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-                  case "$host_os" in
-              # Guess no on AIX and OSF/1.
-        osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-              # Guess yes otherwise.
-        *)    gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
+#include <math.h>
+             #if __GNUC__ >= 4
+             # undef isnanf
+             # define isnanf(x) __builtin_isnanf ((float)(x))
+             #elif defined isnan
+             # undef isnanf
+             # define isnanf(x) isnan ((float)(x))
+             #endif
+             float x;
+int
+main ()
 {
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
-    {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 1;
-    }
+return isnanf (x);
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_isnanf_no_libm=yes
 else
-  gl_cv_func_mbrtowc_incomplete_state=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  gl_cv_func_isnanf_no_libm=no
 fi
-
-      fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanf_no_libm" >&5
+$as_echo "$gl_cv_func_isnanf_no_libm" >&6; }
 
+  if test $gl_cv_func_isnanf_no_libm = yes; then
 
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
-$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(float) works" >&5
+$as_echo_n "checking whether isnan(float) works... " >&6; }
+if ${gl_cv_func_isnanf_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
-  :
+      if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+           irix* | solaris*) gl_cv_func_isnanf_works="guessing no";;
+           *)                gl_cv_func_isnanf_works="guessing yes";;
+         esac
+
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
+#include <math.h>
+#if __GNUC__ >= 4
+# undef isnanf
+# define isnanf(x) __builtin_isnanf ((float)(x))
+#elif defined isnan
+# undef isnanf
+# define isnanf(x) isnan ((float)(x))
+#endif
+/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0.  */
+#ifdef __DECC
+static float
+NaN ()
 {
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+  static float zero = 0.0f;
+  return zero / zero;
+}
+#else
+# define NaN() (0.0f / 0.0f)
+#endif
+#define NWORDS \
+  ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { unsigned int word[NWORDS]; float value; } memory_float;
+int main()
+{
+  int result = 0;
+
+  if (isnanf (1.0f / 0.0f))
+    result |= 1;
+
+  if (!isnanf (NaN ()))
+    result |= 2;
+
+#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
+  /* The isnanf function should be immune against changes in the sign bit and
+     in the mantissa bits.  The xor operation twiddles a bit that can only be
+     a sign bit or a mantissa bit.  */
+  if (FLT_EXPBIT0_WORD == 0 && FLT_EXPBIT0_BIT > 0)
     {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
+      memory_float m;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 1;
+      m.value = NaN ();
+      /* Set the bits below the exponent to 01111...111.  */
+      m.word[0] &= -1U << FLT_EXPBIT0_BIT;
+      m.word[0] |= 1U << (FLT_EXPBIT0_BIT - 1) - 1;
+      if (!isnanf (m.value))
+        result |= 4;
     }
-  return 0;
+#endif
+
+  return result;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_sanitycheck=yes
+  gl_cv_func_isnanf_works=yes
 else
-  gl_cv_func_mbrtowc_sanitycheck=no
+  gl_cv_func_isnanf_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-      fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
-
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
-  if test $REPLACE_MBSTATE_T = 1; then
-
-    :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanf_works" >&5
+$as_echo "$gl_cv_func_isnanf_works" >&6; }
 
   fi
+  if test $gl_cv_func_isnanf_no_libm = yes \
+     && { case "$gl_cv_func_isnanf_works" in
+            *yes) true;;
+            *) false;;
+          esac
+        }; then
+    gl_func_isnanf_no_libm=yes
 
+$as_echo "#define HAVE_ISNANF_IN_LIBC 1" >>confdefs.h
 
-
-  if test $ac_cv_func_mbrtowc = no; then
-    HAVE_MBRTOWC=0
   else
-    if test $REPLACE_MBSTATE_T = 1; then
-      REPLACE_MBRTOWC=1
-    else
-
+    gl_func_isnanf_no_libm=no
+  fi
 
+  if test $gl_func_isnanf_no_libm != yes; then
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5
-$as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; }
-if test "${gl_cv_func_mbrtowc_null_arg+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-                  case "$host_os" in
-              # Guess no on OSF/1.
-        osf*) gl_cv_func_mbrtowc_null_arg="guessing no" ;;
-              # Guess yes otherwise.
-        *)    gl_cv_func_mbrtowc_null_arg="guessing yes" ;;
-      esac
-      if test $LOCALE_FR_UTF8 != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      mbstate_t state;
-      wchar_t wc;
-      int ret;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      wc = (wchar_t) 0xBADFACE;
-      mbrtowc (&wc, NULL, 5, &state);
-      /* Check that wc was not modified.  */
-      if (wc != (wchar_t) 0xBADFACE)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_null_arg=yes
-else
-  gl_cv_func_mbrtowc_null_arg=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
-      fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg" >&5
-$as_echo "$gl_cv_func_mbrtowc_null_arg" >&6; }
 
 
+  gl_LIBOBJS="$gl_LIBOBJS isnanf.$ac_objext"
 
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5
-$as_echo_n "checking whether mbrtowc has a correct return value... " >&6; }
-if test "${gl_cv_func_mbrtowc_retval+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'float'" >&5
+$as_echo_n "checking where to find the exponent in a 'float'... " >&6; }
+if ${gl_cv_cc_float_expbit0+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-                  case "$host_os" in
-                          # Guess no on HP-UX and Solaris.
-        hpux* | solaris*) gl_cv_func_mbrtowc_retval="guessing no" ;;
-                          # Guess yes otherwise.
-        *)                gl_cv_func_mbrtowc_retval="guessing yes" ;;
-      esac
-      if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then :
-  :
+      if test "$cross_compiling" = yes; then :
+  gl_cv_cc_float_expbit0="word 0 bit 23"
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
 #include <string.h>
-#include <wchar.h>
-int main ()
+#define NWORDS \
+  ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { float value; unsigned int word[NWORDS]; } memory_float;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (float x)
 {
-  /* This fails on Solaris.  */
-  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
-    {
-      char input[] = "B\303\274\303\237er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        {
-          input[1] = '\0';
-          if (mbrtowc (&wc, input + 2, 5, &state) != 1)
-            return 1;
-        }
+  memory_float m;
+  size_t i;
+  /* Clear it first, in case
+     sizeof (float) < sizeof (memory_float).  */
+  memset (&m, 0, sizeof (memory_float));
+  m.value = x;
+  for (i = 0; i < NWORDS; i++)
+    {
+      ored_words[i] |= m.word[i];
+      anded_words[i] &= m.word[i];
     }
-  /* This fails on HP-UX 11.11.  */
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+}
+int main ()
+{
+  size_t j;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  for (j = 0; j < NWORDS; j++)
+    anded_words[j] = ~ (unsigned int) 0;
+  add_to_ored_words (0.25f);
+  add_to_ored_words (0.5f);
+  add_to_ored_words (1.0f);
+  add_to_ored_words (2.0f);
+  add_to_ored_words (4.0f);
+  /* Remove bits that are common (e.g. if representation of the first mantissa
+     bit is explicit).  */
+  for (j = 0; j < NWORDS; j++)
+    ored_words[j] &= ~anded_words[j];
+  /* Now find the nonzero word.  */
+  for (j = 0; j < NWORDS; j++)
+    if (ored_words[j] != 0)
+      break;
+  if (j < NWORDS)
     {
-      char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        {
-          input[1] = '\0';
-          if (mbrtowc (&wc, input + 2, 5, &state) != 2)
-            return 1;
-        }
+      size_t i;
+      for (i = j + 1; i < NWORDS; i++)
+        if (ored_words[i] != 0)
+          {
+            fprintf (fp, "unknown");
+            return (fclose (fp) != 0);
+          }
+      for (i = 0; ; i++)
+        if ((ored_words[j] >> i) & 1)
+          {
+            fprintf (fp, "word %d bit %d", (int) j, (int) i);
+            return (fclose (fp) != 0);
+          }
     }
-  return 0;
+  fprintf (fp, "unknown");
+  return (fclose (fp) != 0);
 }
+
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_retval=yes
+  gl_cv_cc_float_expbit0=`cat conftest.out`
 else
-  gl_cv_func_mbrtowc_retval=no
+  gl_cv_cc_float_expbit0="unknown"
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-      fi
+      rm -f conftest.out
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5
-$as_echo "$gl_cv_func_mbrtowc_retval" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_expbit0" >&5
+$as_echo "$gl_cv_cc_float_expbit0" >&6; }
+  case "$gl_cv_cc_float_expbit0" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word.*bit //'`
+
+cat >>confdefs.h <<_ACEOF
+#define FLT_EXPBIT0_WORD $word
+_ACEOF
 
 
+cat >>confdefs.h <<_ACEOF
+#define FLT_EXPBIT0_BIT $bit
+_ACEOF
+
+      ;;
+  esac
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5
-$as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; }
-if test "${gl_cv_func_mbrtowc_nul_retval+set}" = set; then :
+  fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnan(long double) can be used without linking with libm" >&5
+$as_echo_n "checking whether isnan(long double) can be used without linking with libm... " >&6; }
+if ${gl_cv_func_isnanl_no_libm+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-                  case "$host_os" in
-                       # Guess no on Solaris 8 and 9.
-        solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;;
-                       # Guess yes otherwise.
-        *)             gl_cv_func_mbrtowc_nul_retval="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
+#include <math.h>
+             #if __GNUC__ >= 4
+             # undef isnanl
+             # define isnanl(x) __builtin_isnanl ((long double)(x))
+             #elif defined isnan
+             # undef isnanl
+             # define isnanl(x) isnan ((long double)(x))
+             #endif
+             long double x;
+int
+main ()
 {
-  /* This fails on Solaris 8 and 9.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, "", 1, &state) != 0)
-        return 1;
-    }
+return isnanl (x);
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_nul_retval=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_isnanl_no_libm=yes
 else
-  gl_cv_func_mbrtowc_nul_retval=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  gl_cv_func_isnanl_no_libm=no
 fi
-
-      fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5
-$as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; }
-
-      case "$gl_cv_func_mbrtowc_null_arg" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_NULL_ARG_BUG 1" >>confdefs.h
-
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_retval" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanl_no_libm" >&5
+$as_echo "$gl_cv_func_isnanl_no_libm" >&6; }
 
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-      case "$gl_cv_func_mbrtowc_nul_retval" in
-        *yes) ;;
-        *)
-$as_echo "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h
+  gl_func_isnanl_no_libm=$gl_cv_func_isnanl_no_libm
+  if test $gl_func_isnanl_no_libm = yes; then
 
-           REPLACE_MBRTOWC=1
-           ;;
-      esac
-    fi
-  fi
-  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
 
-    :
 
 
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isnanl works" >&5
+$as_echo_n "checking whether isnanl works... " >&6; }
+if ${gl_cv_func_isnanl_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+      if test "$cross_compiling" = yes; then :
+  case "$host_cpu" in
+                                 # Guess no on ia64, x86_64, i386.
+           ia64 | x86_64 | i*86) gl_cv_func_isnanl_works="guessing no";;
+           *)
+             case "$host_os" in
+               netbsd*) gl_cv_func_isnanl_works="guessing no";;
+               *)       gl_cv_func_isnanl_works="guessing yes";;
+             esac
+             ;;
+         esac
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <float.h>
+#include <limits.h>
+#include <math.h>
+#if __GNUC__ >= 4
+# undef isnanl
+# define isnanl(x) __builtin_isnanl ((long double)(x))
+#elif defined isnan
+# undef isnanl
+# define isnanl(x) isnan ((long double)(x))
+#endif
+#define NWORDS \
+  ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { unsigned int word[NWORDS]; long double value; }
+        memory_long_double;
+/* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the
+   runtime type conversion.  */
+#ifdef __sgi
+static long double NaNl ()
+{
+  double zero = 0.0;
+  return zero / zero;
+}
+#else
+# define NaNl() (0.0L / 0.0L)
+#endif
+int main ()
+{
+  int result = 0;
 
+  if (!isnanl (NaNl ()))
+    result |= 1;
 
+  {
+    memory_long_double m;
+    unsigned int i;
+
+    /* The isnanl function should be immune against changes in the sign bit and
+       in the mantissa bits.  The xor operation twiddles a bit that can only be
+       a sign bit or a mantissa bit (since the exponent never extends to
+       bit 31).  */
+    m.value = NaNl ();
+    m.word[NWORDS / 2] ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
+    for (i = 0; i < NWORDS; i++)
+      m.word[i] |= 1;
+    if (!isnanl (m.value))
+      result |= 1;
+  }
 
+#if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
+/* Representation of an 80-bit 'long double' as an initializer for a sequence
+   of 'unsigned int' words.  */
+# ifdef WORDS_BIGENDIAN
+#  define LDBL80_WORDS(exponent,manthi,mantlo) \
+     { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \
+       ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16),    \
+       (unsigned int) (mantlo) << 16                                        \
+     }
+# else
+#  define LDBL80_WORDS(exponent,manthi,mantlo) \
+     { mantlo, manthi, exponent }
+# endif
+  { /* Quiet NaN.  */
+    static memory_long_double x =
+      { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
+    if (!isnanl (x.value))
+      result |= 2;
+  }
+  {
+    /* Signalling NaN.  */
+    static memory_long_double x =
+      { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
+    if (!isnanl (x.value))
+      result |= 2;
+  }
+  /* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities,
+     Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
+       Intel IA-64 Architecture Software Developer's Manual, Volume 1:
+       Application Architecture.
+       Table 5-2 "Floating-Point Register Encodings"
+       Figure 5-6 "Memory to Floating-Point Register Data Translation"
+   */
+  { /* Pseudo-NaN.  */
+    static memory_long_double x =
+      { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
+    if (!isnanl (x.value))
+      result |= 4;
+  }
+  { /* Pseudo-Infinity.  */
+    static memory_long_double x =
+      { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
+    if (!isnanl (x.value))
+      result |= 8;
+  }
+  { /* Pseudo-Zero.  */
+    static memory_long_double x =
+      { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
+    if (!isnanl (x.value))
+      result |= 16;
+  }
+  { /* Unnormalized number.  */
+    static memory_long_double x =
+      { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
+    if (!isnanl (x.value))
+      result |= 32;
+  }
+  { /* Pseudo-Denormal.  */
+    static memory_long_double x =
+      { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
+    if (!isnanl (x.value))
+      result |= 64;
+  }
+#endif
 
-  gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
+  return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_isnanl_works=yes
+else
+  gl_cv_func_isnanl_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
 
-  :
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_isnanl_works" >&5
+$as_echo "$gl_cv_func_isnanl_works" >&6; }
 
+    case "$gl_cv_func_isnanl_works" in
+      *yes) ;;
+      *)    gl_func_isnanl_no_libm=no ;;
+    esac
   fi
+  if test $gl_func_isnanl_no_libm = yes; then
 
+$as_echo "#define HAVE_ISNANL_IN_LIBC 1" >>confdefs.h
 
+  fi
 
-
-  GNULIB_MBRTOWC=1
-
-
-
-$as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
-
-
-
-  # Code from module mbsinit:
-
+  if test $gl_func_isnanl_no_libm != yes; then
 
 
 
@@ -22134,154 +26804,171 @@ $as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS isnanl.$ac_objext"
 
-  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
 
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
-$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
-if test "${gl_cv_func_mbrtowc_incomplete_state+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'long double'" >&5
+$as_echo_n "checking where to find the exponent in a 'long double'... " >&6; }
+if ${gl_cv_cc_long_double_expbit0+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-                  case "$host_os" in
-              # Guess no on AIX and OSF/1.
-        osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-              # Guess yes otherwise.
-        *)    gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
-      esac
-      if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then :
-  :
+      if test "$cross_compiling" = yes; then :
+
+                              gl_cv_cc_long_double_expbit0="unknown"
+
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <locale.h>
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
 #include <string.h>
-#include <wchar.h>
+#define NWORDS \
+  ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { long double value; unsigned int word[NWORDS]; }
+        memory_long_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (long double x)
+{
+  memory_long_double m;
+  size_t i;
+  /* Clear it first, in case
+     sizeof (long double) < sizeof (memory_long_double).  */
+  memset (&m, 0, sizeof (memory_long_double));
+  m.value = x;
+  for (i = 0; i < NWORDS; i++)
+    {
+      ored_words[i] |= m.word[i];
+      anded_words[i] &= m.word[i];
+    }
+}
 int main ()
 {
-  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+  size_t j;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  for (j = 0; j < NWORDS; j++)
+    anded_words[j] = ~ (unsigned int) 0;
+  add_to_ored_words (0.25L);
+  add_to_ored_words (0.5L);
+  add_to_ored_words (1.0L);
+  add_to_ored_words (2.0L);
+  add_to_ored_words (4.0L);
+  /* Remove bits that are common (e.g. if representation of the first mantissa
+     bit is explicit).  */
+  for (j = 0; j < NWORDS; j++)
+    ored_words[j] &= ~anded_words[j];
+  /* Now find the nonzero word.  */
+  for (j = 0; j < NWORDS; j++)
+    if (ored_words[j] != 0)
+      break;
+  if (j < NWORDS)
     {
-      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
-
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
-        if (mbsinit (&state))
-          return 1;
+      size_t i;
+      for (i = j + 1; i < NWORDS; i++)
+        if (ored_words[i] != 0)
+          {
+            fprintf (fp, "unknown");
+            return (fclose (fp) != 0);
+          }
+      for (i = 0; ; i++)
+        if ((ored_words[j] >> i) & 1)
+          {
+            fprintf (fp, "word %d bit %d", (int) j, (int) i);
+            return (fclose (fp) != 0);
+          }
     }
-  return 0;
+  fprintf (fp, "unknown");
+  return (fclose (fp) != 0);
 }
+
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_incomplete_state=yes
+  gl_cv_cc_long_double_expbit0=`cat conftest.out`
 else
-  gl_cv_func_mbrtowc_incomplete_state=no
+  gl_cv_cc_long_double_expbit0="unknown"
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-      fi
+      rm -f conftest.out
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
-$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_long_double_expbit0" >&5
+$as_echo "$gl_cv_cc_long_double_expbit0" >&6; }
+  case "$gl_cv_cc_long_double_expbit0" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word.*bit //'`
 
+cat >>confdefs.h <<_ACEOF
+#define LDBL_EXPBIT0_WORD $word
+_ACEOF
 
 
+cat >>confdefs.h <<_ACEOF
+#define LDBL_EXPBIT0_BIT $bit
+_ACEOF
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
-$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
-if test "${gl_cv_func_mbrtowc_sanitycheck+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
+      ;;
+  esac
 
-                  case "$host_os" in
-                    # Guess no on Solaris 8.
-        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
-                    # Guess yes otherwise.
-        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
-      esac
-      if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  /* This fails on Solaris 8:
-     mbrtowc returns 2, and sets wc to 0x00F0.
-     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
-  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
-    {
-      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
-      mbstate_t state;
-      wchar_t wc;
 
-      memset (&state, '\0', sizeof (mbstate_t));
-      if (mbrtowc (&wc, input + 3, 6, &state) != 4
-          && mbtowc (&wc, input + 3, 6) == 4)
-        return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_mbrtowc_sanitycheck=yes
-else
-  gl_cv_func_mbrtowc_sanitycheck=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+  fi
 
-      fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
-$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
-    REPLACE_MBSTATE_T=0
-    case "$gl_cv_func_mbrtowc_incomplete_state" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-    case "$gl_cv_func_mbrtowc_sanitycheck" in
-      *yes) ;;
-      *) REPLACE_MBSTATE_T=1 ;;
-    esac
-  else
-    REPLACE_MBSTATE_T=1
-  fi
-  if test $REPLACE_MBSTATE_T = 1; then
 
-    :
 
-  fi
+  ac_fn_c_check_decl "$LINENO" "iswblank" "ac_cv_have_decl_iswblank" "
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+   before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
 
+"
+if test "x$ac_cv_have_decl_iswblank" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISWBLANK $ac_have_decl
+_ACEOF
 
-  if test $ac_cv_func_mbsinit = no; then
-    HAVE_MBSINIT=0
+  if test $ac_cv_func_iswblank = no; then
+    HAVE_ISWBLANK=0
+    if test $ac_cv_have_decl_iswblank = yes; then
+      REPLACE_ISWBLANK=1
+    fi
+  fi
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+        :
   else
-    if test $REPLACE_MBSTATE_T = 1; then
-      REPLACE_MBSINIT=1
+    if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+            :
     fi
   fi
-  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
 
+
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
     :
+  else
+    if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
 
 
 
@@ -22290,467 +26977,340 @@ $as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS iswblank.$ac_objext"
 
-  gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext"
+    fi
+  fi
 
 
-  :
-
-  fi
-
 
 
 
-  GNULIB_MBSINIT=1
-
-
-
-$as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h
+          GNULIB_ISWBLANK=1
 
 
 
-  # Code from module mbsnlen:
 
 
+$as_echo "#define GNULIB_TEST_ISWBLANK 1" >>confdefs.h
 
-  GNULIB_MBSNLEN=1
 
 
 
-$as_echo "#define GNULIB_TEST_MBSNLEN 1" >>confdefs.h
 
 
 
-  # Code from module memchr:
 
 
 
 
-  GNULIB_MEMCHR=1
+  LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
 
 
 
-$as_echo "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h
 
+  for ac_func in setlocale uselocale
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
+fi
+done
 
-  # Code from module memcmp2:
-  # Code from module memxfrm:
-  # Code from module minmax:
 
 
 
-  # Code from module multiarch:
+  if test "$gl_threads_api" = posix; then
+    # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the
+    # pthread_rwlock_* functions.
+    ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include <pthread.h>
+"
+if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then :
 
-  # Code from module nocrash:
-  # Code from module printf-frexp:
+$as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp can be used without linking with libm" >&5
-$as_echo_n "checking whether frexp can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_frexp_no_libm+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
+fi
 
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+    # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <math.h>
-                   double x;
-                   int y;
+
+      #include <pthread.h>
 int
 main ()
 {
-return frexp (x, &y) < 1;
+
+#if __FreeBSD__ == 4
+error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
+#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \
+       && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070)
+error "No, in Mac OS X < 10.7 recursive mutexes actually don't work."
+#else
+int x = (int)PTHREAD_MUTEX_RECURSIVE;
+return !x;
+#endif
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_frexp_no_libm=yes
-else
-  gl_cv_func_frexp_no_libm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+if ac_fn_c_try_compile "$LINENO"; then :
+
+$as_echo "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_no_libm" >&5
-$as_echo "$gl_cv_func_frexp_no_libm" >&6; }
-  if test $gl_cv_func_frexp_no_libm = yes; then
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  fi
+  :
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp works" >&5
-$as_echo_n "checking whether frexp works... " >&6; }
-if test "${gl_cv_func_frexp_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-      if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-         netbsd* | irix* | mingw*) gl_cv_func_frexp_works="guessing no";;
-         *)                        gl_cv_func_frexp_works="guessing yes";;
-       esac
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_LOCK 1
+_ACEOF
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <float.h>
-#include <math.h>
-#include <string.h>
-int main()
-{
-  int i;
-  volatile double x;
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zero instead.  */
-  double zero = 0.0;
-  /* Test on denormalized numbers.  */
-  for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5)
-    ;
-  if (x > 0.0)
-    {
-      int exp;
-      double y = frexp (x, &exp);
-      /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022.
-         On NetBSD: y = 0.75. Correct: y = 0.5.  */
-      if (y != 0.5)
-        return 1;
-    }
-  /* Test on infinite numbers.  */
-  x = 1.0 / 0.0;
-  {
-    int exp;
-    double y = frexp (x, &exp);
-    if (y != x)
-      return 1;
-  }
-  /* Test on negative zero.  */
-  x = -zero;
-  {
-    int exp;
-    double y = frexp (x, &exp);
-    if (memcmp (&y, &x, sizeof x))
-      return 1;
-  }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_frexp_works=yes
-else
-  gl_cv_func_frexp_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_works" >&5
-$as_echo "$gl_cv_func_frexp_works" >&6; }
 
-    case "$gl_cv_func_frexp_works" in
-      *yes)
+  if test $gl_cv_func_malloc_posix = yes; then
 
-$as_echo "#define HAVE_FREXP_IN_LIBC 1" >>confdefs.h
+$as_echo "#define HAVE_MALLOC_POSIX 1" >>confdefs.h
 
-        ;;
-    esac
+  else
+    REPLACE_MALLOC=1
   fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexp can be used without linking with libm" >&5
-$as_echo_n "checking whether ldexp can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_ldexp_no_libm+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
+  if test $REPLACE_MALLOC = 1; then
+
+
 
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <math.h>
-                   double x;
-                   int y;
-int
-main ()
-{
-return ldexp (x, y) < 1;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_ldexp_no_libm=yes
-else
-  gl_cv_func_ldexp_no_libm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ldexp_no_libm" >&5
-$as_echo "$gl_cv_func_ldexp_no_libm" >&6; }
-  if test $gl_cv_func_ldexp_no_libm = yes; then
 
-$as_echo "#define HAVE_LDEXP_IN_LIBC 1" >>confdefs.h
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
 
   fi
 
-  # Code from module printf-frexpl:
 
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl can be used without linking with libm" >&5
-$as_echo_n "checking whether frexpl can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_frexpl_no_libm+set}" = set; then :
+
+
+          GNULIB_MALLOC_POSIX=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_math_h='<'math.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <math.h>" >&5
+$as_echo_n "checking absolute name of <math.h>... " >&6; }
+if ${gl_cv_next_math_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+             if test $ac_cv_header_math_h = yes; then
+
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <math.h>
-                   long double x;
-                   int y;
-int
-main ()
-{
-return frexpl (x, &y) < 1;
-  ;
-  return 0;
-}
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_frexpl_no_libm=yes
-else
-  gl_cv_func_frexpl_no_libm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'math.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_math_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_math_h
+           gl_cv_next_math_h='"'$gl_header'"'
+          else
+               gl_cv_next_math_h='<'math.h'>'
+             fi
+
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_no_libm" >&5
-$as_echo "$gl_cv_func_frexpl_no_libm" >&6; }
-  if test $gl_cv_func_frexpl_no_libm = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_math_h" >&5
+$as_echo "$gl_cv_next_math_h" >&6; }
+     fi
+     NEXT_MATH_H=$gl_cv_next_math_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'math.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_math_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_MATH_H=$gl_next_as_first_directive
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl works" >&5
-$as_echo_n "checking whether frexpl works... " >&6; }
-if test "${gl_cv_func_frexpl_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-      if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-         aix* | beos* | darwin* | irix* | mingw* | pw*)
-            gl_cv_func_frexpl_works="guessing no";;
-         *) gl_cv_func_frexpl_works="guessing yes";;
-       esac
 
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NAN macro works" >&5
+$as_echo_n "checking whether NAN macro works... " >&6; }
+if ${gl_cv_header_math_nan_works+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#include <float.h>
 #include <math.h>
-/* Override the values of <float.h>, like done in float.in.h.  */
-#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
-# undef LDBL_MIN_EXP
-# define LDBL_MIN_EXP    (-16381)
-#endif
-extern long double frexpl (long double, int *);
-int main()
+int
+main ()
 {
-  volatile long double x;
-  /* Test on finite numbers that fails on AIX 5.1.  */
-  x = 16.0L;
-  {
-    int exp = -9999;
-    frexpl (x, &exp);
-    if (exp != 5)
-      return 1;
-  }
-  /* Test on finite numbers that fails on MacOS X 10.4, because its frexpl
-     function returns an invalid (incorrectly normalized) value: it returns
-               y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 }
-     but the correct result is
-          0.505L = { 0x3fe028f5, 0xc28f5c29, 0xbc547ae1, 0x47ae1480 }  */
-  x = 1.01L;
-  {
-    int exp = -9999;
-    long double y = frexpl (x, &exp);
-    if (!(exp == 1 && y == 0.505L))
-      return 1;
-  }
-  /* Test on large finite numbers.  This fails on BeOS at i = 16322, while
-     LDBL_MAX_EXP = 16384.
-     In the loop end test, we test x against Infinity, rather than comparing
-     i with LDBL_MAX_EXP, because BeOS <float.h> has a wrong LDBL_MAX_EXP.  */
-  {
-    int i;
-    for (i = 1, x = 1.0L; x != x + x; i++, x *= 2.0L)
-      {
-        int exp = -9999;
-        frexpl (x, &exp);
-        if (exp != i)
-          return 1;
-      }
-  }
-  /* Test on denormalized numbers.  */
-  {
-    int i;
-    for (i = 1, x = 1.0L; i >= LDBL_MIN_EXP; i--, x *= 0.5L)
-      ;
-    if (x > 0.0L)
-      {
-        int exp;
-        long double y = frexpl (x, &exp);
-        /* On machines with IEEE854 arithmetic: x = 1.68105e-4932,
-           exp = -16382, y = 0.5.  On MacOS X 10.5: exp = -16384, y = 0.5.  */
-        if (exp != LDBL_MIN_EXP - 1)
-          return 1;
-      }
-  }
-  /* Test on infinite numbers.  */
-  x = 1.0L / 0.0L;
-  {
-    int exp;
-    long double y = frexpl (x, &exp);
-    if (y != x)
-      return 1;
-  }
+/* Solaris 10 has a broken definition of NAN.  Other platforms
+        fail to provide NAN, or provide it only in C99 mode; this
+        test only needs to fail when NAN is provided but wrong.  */
+         float f = 1.0f;
+#ifdef NAN
+         f = NAN;
+#endif
+         return f == 0;
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_frexpl_works=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_math_nan_works=yes
 else
-  gl_cv_func_frexpl_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
+  gl_cv_header_math_nan_works=no
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_works" >&5
-$as_echo "$gl_cv_func_frexpl_works" >&6; }
-
-    case "$gl_cv_func_frexpl_works" in
-      *yes) gl_func_frexpl_no_libm=yes ;;
-      *)    gl_func_frexpl_no_libm=no; REPLACE_FREXPL=1 ;;
-    esac
-  else
-    gl_func_frexpl_no_libm=no
-        REPLACE_FREXPL=1
-  fi
-  if test $gl_func_frexpl_no_libm = yes; then
-
-$as_echo "#define HAVE_FREXPL_IN_LIBC 1" >>confdefs.h
-
-            ac_fn_c_check_decl "$LINENO" "frexpl" "ac_cv_have_decl_frexpl" "#include <math.h>
-"
-if test "x$ac_cv_have_decl_frexpl" = x""yes; then :
-
-else
-  HAVE_DECL_FREXPL=0
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_nan_works" >&5
+$as_echo "$gl_cv_header_math_nan_works" >&6; }
+  if test $gl_cv_header_math_nan_works = no; then
+    REPLACE_NAN=1
   fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexpl can be used without linking with libm" >&5
-$as_echo_n "checking whether ldexpl can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_ldexpl_no_libm+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether HUGE_VAL works" >&5
+$as_echo_n "checking whether HUGE_VAL works... " >&6; }
+if ${gl_cv_header_math_huge_val_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <math.h>
-                   long double x;
-                   int y;
 int
 main ()
 {
-return ldexpl (x, y) < 1;
+/* Solaris 10 has a broken definition of HUGE_VAL.  */
+         double d = HUGE_VAL;
+         return d == 0;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_ldexpl_no_libm=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_math_huge_val_works=yes
 else
-  gl_cv_func_ldexpl_no_libm=no
+  gl_cv_header_math_huge_val_works=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ldexpl_no_libm" >&5
-$as_echo "$gl_cv_func_ldexpl_no_libm" >&6; }
-  if test $gl_cv_func_ldexpl_no_libm = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_math_huge_val_works" >&5
+$as_echo "$gl_cv_header_math_huge_val_works" >&6; }
+  if test $gl_cv_header_math_huge_val_works = no; then
+    REPLACE_HUGE_VAL=1
+  fi
 
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexpl works" >&5
-$as_echo_n "checking whether ldexpl works... " >&6; }
-if test "${gl_cv_func_ldexpl_works+set}" = set; then :
+    for gl_func in acosf acosl asinf asinl atanf atanl      cbrt cbrtf cbrtl ceilf ceill copysign copysignf copysignl cosf cosl coshf      expf expl exp2 exp2f exp2l expm1 expm1f expm1l      fabsf fabsl floorf floorl fma fmaf fmal      fmod fmodf fmodl frexpf frexpl hypotf hypotl      ilogb ilogbf ilogbl      ldexpf ldexpl      log logf logl log10 log10f log10l log1p log1pf log1pl log2 log2f log2l      logb logbf logbl      modf modff modfl powf      remainder remainderf remainderl      rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl      tanf tanl tanhf trunc truncf truncl; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-
-      if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-         aix*) gl_cv_func_ldexpl_works="guessing no";;
-         *)    gl_cv_func_ldexpl_works="guessing yes";;
-       esac
-
-else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
 #include <math.h>
-extern long double ldexpl (long double, int);
-int main()
+int
+main ()
 {
-  volatile long double x1 = 1.0;
-  volatile long double y1 = ldexpl (x1, -1);
-  volatile long double x2 = 1.73205L;
-  volatile long double y2 = ldexpl (x2, 0);
-  return (y1 != 0.5L) || (y2 != x2);
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_ldexpl_works=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
 else
-  gl_cv_func_ldexpl_works=no
+  eval "$as_gl_Symbol=no"
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
 
-
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ldexpl_works" >&5
-$as_echo "$gl_cv_func_ldexpl_works" >&6; }
+      done
 
-    case "$gl_cv_func_ldexpl_works" in
-      *yes)
 
-$as_echo "#define HAVE_LDEXPL_IN_LIBC 1" >>confdefs.h
 
-                        ac_fn_c_check_decl "$LINENO" "ldexpl" "ac_cv_have_decl_ldexpl" "#include <math.h>
-"
-if test "x$ac_cv_have_decl_ldexpl" = x""yes; then :
 
-else
-  HAVE_DECL_LDEXPL=0
-fi
 
-        ;;
-    esac
-  fi
 
-  # Code from module printf-safe:
 
-  # Code from module relocatable-lib-lgpl:
+  :
 
 
-  if test $RELOCATABLE = yes; then
 
 
 
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS relocatable.$ac_objext"
 
-  fi
+  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
 
-  # Code from module signbit:
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for signbit macro" >&5
-$as_echo_n "checking for signbit macro... " >&6; }
-if test "${gl_cv_func_signbit+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
-  gl_cv_func_signbit="guessing no"
+                  case "$host_os" in
+                     # Guess no on AIX and OSF/1.
+        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+                     # Guess yes otherwise.
+        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+      esac
+      if test $LOCALE_JA != none; then
+        if test "$cross_compiling" = yes; then :
+  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <math.h>
-/* If signbit is defined as a function, don't use it, since calling it for
-   'float' or 'long double' arguments would involve conversions.
-   If signbit is not declared at all but exists as a library function, don't
-   use it, since the prototype may not match.
-   If signbit is not declared at all but exists as a compiler built-in, don't
-   use it, since it's preferable to use __builtin_signbit* (no warnings,
-   no conversions).  */
-#ifndef signbit
-# error "signbit should be a macro"
-#endif
+#include <locale.h>
 #include <string.h>
-
-/* Global variables.
-   Needed because GCC 4 constant-folds __builtin_signbitl (literal)
-   but cannot constant-fold            __builtin_signbitl (variable).  */
-float vf;
-double vd;
-long double vl;
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
 int main ()
 {
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -p0f and -p0d instead.  */
-float p0f = 0.0f;
-float m0f = -p0f;
-double p0d = 0.0;
-double m0d = -p0d;
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use another constant expression instead.
-   But that expression does not work on other platforms, such as when
-   cross-compiling to PowerPC on MacOS X 10.5.  */
-long double p0l = 0.0L;
-#if defined __hpux || defined __sgi
-long double m0l = -LDBL_MIN * LDBL_MIN;
-#else
-long double m0l = -p0l;
-#endif
-  if (signbit (vf))
-    vf++;
-  {
-    float plus_inf = 1.0f / p0f;
-    float minus_inf = -1.0f / p0f;
-    if (!(!signbit (255.0f)
-          && signbit (-255.0f)
-          && !signbit (p0f)
-          && (memcmp (&m0f, &p0f, sizeof (float)) == 0 || signbit (m0f))
-          && !signbit (plus_inf)
-          && signbit (minus_inf)))
-      return 1;
-  }
-  if (signbit (vd))
-    vd++;
-  {
-    double plus_inf = 1.0 / p0d;
-    double minus_inf = -1.0 / p0d;
-    if (!(!signbit (255.0)
-          && signbit (-255.0)
-          && !signbit (p0d)
-          && (memcmp (&m0d, &p0d, sizeof (double)) == 0 || signbit (m0d))
-          && !signbit (plus_inf)
-          && signbit (minus_inf)))
-      return 1;
-  }
-  if (signbit (vl))
-    vl++;
-  {
-    long double plus_inf = 1.0L / p0l;
-    long double minus_inf = -1.0L / p0l;
-    if (!(!signbit (255.0L)
-          && signbit (-255.0L)
-          && !signbit (p0l)
-          && (memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l))
-          && !signbit (plus_inf)
-          && signbit (minus_inf)))
-      return 1;
-  }
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
+        if (mbsinit (&state))
+          return 1;
+    }
   return 0;
 }
-
-
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_signbit=yes
+  gl_cv_func_mbrtowc_incomplete_state=yes
 else
-  gl_cv_func_signbit=no
+  gl_cv_func_mbrtowc_incomplete_state=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+      fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_signbit" >&5
-$as_echo "$gl_cv_func_signbit" >&6; }
-          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for signbit compiler built-ins" >&5
-$as_echo_n "checking for signbit compiler built-ins... " >&6; }
-if test "${gl_cv_func_signbit_gcc+set}" = set; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
-  gl_cv_func_signbit_gcc="guessing no"
+                  case "$host_os" in
+                    # Guess no on Solaris 8.
+        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
+                    # Guess yes otherwise.
+        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
+      esac
+      if test $LOCALE_ZH_CN != none; then
+        if test "$cross_compiling" = yes; then :
+  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#if __GNUC__ >= 4
-# define signbit(x) \
-   (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
-    sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
-    __builtin_signbitf (x))
-#else
-# error "signbit should be three compiler built-ins"
-#endif
+#include <locale.h>
+#include <stdlib.h>
 #include <string.h>
-
-/* Global variables.
-   Needed because GCC 4 constant-folds __builtin_signbitl (literal)
-   but cannot constant-fold            __builtin_signbitl (variable).  */
-float vf;
-double vd;
-long double vl;
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
 int main ()
 {
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -p0f and -p0d instead.  */
-float p0f = 0.0f;
-float m0f = -p0f;
-double p0d = 0.0;
-double m0d = -p0d;
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use another constant expression instead.
-   But that expression does not work on other platforms, such as when
-   cross-compiling to PowerPC on MacOS X 10.5.  */
-long double p0l = 0.0L;
-#if defined __hpux || defined __sgi
-long double m0l = -LDBL_MIN * LDBL_MIN;
-#else
-long double m0l = -p0l;
-#endif
-  if (signbit (vf))
-    vf++;
-  {
-    float plus_inf = 1.0f / p0f;
-    float minus_inf = -1.0f / p0f;
-    if (!(!signbit (255.0f)
-          && signbit (-255.0f)
-          && !signbit (p0f)
-          && (memcmp (&m0f, &p0f, sizeof (float)) == 0 || signbit (m0f))
-          && !signbit (plus_inf)
-          && signbit (minus_inf)))
-      return 1;
-  }
-  if (signbit (vd))
-    vd++;
-  {
-    double plus_inf = 1.0 / p0d;
-    double minus_inf = -1.0 / p0d;
-    if (!(!signbit (255.0)
-          && signbit (-255.0)
-          && !signbit (p0d)
-          && (memcmp (&m0d, &p0d, sizeof (double)) == 0 || signbit (m0d))
-          && !signbit (plus_inf)
-          && signbit (minus_inf)))
-      return 1;
-  }
-  if (signbit (vl))
-    vl++;
-  {
-    long double plus_inf = 1.0L / p0l;
-    long double minus_inf = -1.0L / p0l;
-    if (!(!signbit (255.0L)
-          && signbit (-255.0L)
-          && !signbit (p0l)
-          && (memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l))
-          && !signbit (plus_inf)
-          && signbit (minus_inf)))
-      return 1;
-  }
+  /* This fails on Solaris 8:
+     mbrtowc returns 2, and sets wc to 0x00F0.
+     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 6, &state) != 4
+          && mbtowc (&wc, input + 3, 6) == 4)
+        return 1;
+    }
   return 0;
 }
-
-
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_signbit_gcc=yes
+  gl_cv_func_mbrtowc_sanitycheck=yes
 else
-  gl_cv_func_signbit_gcc=no
+  gl_cv_func_mbrtowc_sanitycheck=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+      fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_signbit_gcc" >&5
-$as_echo "$gl_cv_func_signbit_gcc" >&6; }
-      if test "$gl_cv_func_signbit_gcc" = yes; then
-    REPLACE_SIGNBIT_USING_GCC=1
-  else
-    if test "$gl_cv_func_signbit" != yes; then
-      REPLACE_SIGNBIT=1
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS signbitf.$ac_objext"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
+$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
+    REPLACE_MBSTATE_T=0
+    case "$gl_cv_func_mbrtowc_incomplete_state" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+    case "$gl_cv_func_mbrtowc_sanitycheck" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+  else
+    REPLACE_MBSTATE_T=1
+  fi
 
 
 
+  if test $ac_cv_func_mbrtowc = no; then
+    HAVE_MBRTOWC=0
+    ac_fn_c_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" "
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
 
+"
+if test "x$ac_cv_have_decl_mbrtowc" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MBRTOWC $ac_have_decl
+_ACEOF
 
+    if test $ac_cv_have_decl_mbrtowc = yes; then
+                        REPLACE_MBRTOWC=1
+    fi
+  else
+    if test $REPLACE_MBSTATE_T = 1; then
+      REPLACE_MBRTOWC=1
+    else
 
 
-  gl_LIBOBJS="$gl_LIBOBJS signbitd.$ac_objext"
 
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5
+$as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; }
+if ${gl_cv_func_mbrtowc_null_arg1+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+                  case "$host_os" in
+                  # Guess no on Solaris.
+        solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;;
+                  # Guess yes otherwise.
+        *)        gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
+      esac
+      if test $LOCALE_FR_UTF8 != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  int result = 0;
 
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      char input[] = "\303\237er";
+      mbstate_t state;
+      wchar_t wc;
+      size_t ret;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      wc = (wchar_t) 0xBADFACE;
+      ret = mbrtowc (&wc, input, 5, &state);
+      if (ret != 2)
+        result |= 1;
+      if (!mbsinit (&state))
+        result |= 2;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      ret = mbrtowc (NULL, input, 5, &state);
+      if (ret != 2) /* Solaris 7 fails here: ret is -1.  */
+        result |= 4;
+      if (!mbsinit (&state))
+        result |= 8;
+    }
+  return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_null_arg1=yes
+else
+  gl_cv_func_mbrtowc_null_arg1=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
+      fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5
+$as_echo "$gl_cv_func_mbrtowc_null_arg1" >&6; }
 
-  gl_LIBOBJS="$gl_LIBOBJS signbitl.$ac_objext"
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'float'" >&5
-$as_echo_n "checking where to find the sign bit in a 'float'... " >&6; }
-if test "${gl_cv_cc_float_signbit+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5
+$as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; }
+if ${gl_cv_func_mbrtowc_null_arg2+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
-
-                              gl_cv_cc_float_signbit="unknown"
-
+                  case "$host_os" in
+              # Guess no on OSF/1.
+        osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
+              # Guess yes otherwise.
+        *)    gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
+      esac
+      if test $LOCALE_FR_UTF8 != none; then
+        if test "$cross_compiling" = yes; then :
+  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
 #include <stddef.h>
 #include <stdio.h>
-#define NWORDS \
-  ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { float value; unsigned int word[NWORDS]; }
-        memory_float;
-static memory_float plus = { 1.0f };
-static memory_float minus = { -1.0f };
+#include <time.h>
+#include <wchar.h>
 int main ()
 {
-  size_t j, k, i;
-  unsigned int m;
-  FILE *fp = fopen ("conftest.out", "w");
-  if (fp == NULL)
-    return 1;
-  /* Find the different bit.  */
-  k = 0; m = 0;
-  for (j = 0; j < NWORDS; j++)
-    {
-      unsigned int x = plus.word[j] ^ minus.word[j];
-      if ((x & (x - 1)) || (x && m))
-        {
-          /* More than one bit difference.  */
-          fprintf (fp, "unknown");
-          return 1;
-        }
-      if (x)
-        {
-          k = j;
-          m = x;
-        }
-    }
-  if (m == 0)
-    {
-      /* No difference.  */
-      fprintf (fp, "unknown");
-      return 1;
-    }
-  /* Now m = plus.word[k] ^ ~minus.word[k].  */
-  if (plus.word[k] & ~minus.word[k])
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
     {
-      /* Oh? The sign bit is set in the positive and cleared in the negative
-         numbers?  */
-      fprintf (fp, "unknown");
-      return 1;
+      mbstate_t state;
+      wchar_t wc;
+      int ret;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      wc = (wchar_t) 0xBADFACE;
+      mbrtowc (&wc, NULL, 5, &state);
+      /* Check that wc was not modified.  */
+      if (wc != (wchar_t) 0xBADFACE)
+        return 1;
     }
-  for (i = 0; ; i++)
-    if ((m >> i) & 1)
-      break;
-  fprintf (fp, "word %d bit %d", (int) k, (int) i);
-  return (fclose (fp) != 0);
+  return 0;
 }
-
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_cc_float_signbit=`cat conftest.out`
+  gl_cv_func_mbrtowc_null_arg2=yes
 else
-  gl_cv_cc_float_signbit="unknown"
+  gl_cv_func_mbrtowc_null_arg2=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-      rm -f conftest.out
+      fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_signbit" >&5
-$as_echo "$gl_cv_cc_float_signbit" >&6; }
-  case "$gl_cv_cc_float_signbit" in
-    word*bit*)
-      word=`echo "$gl_cv_cc_float_signbit" | sed -e 's/word //' -e 's/ bit.*//'`
-      bit=`echo "$gl_cv_cc_float_signbit" | sed -e 's/word.*bit //'`
-
-cat >>confdefs.h <<_ACEOF
-#define FLT_SIGNBIT_WORD $word
-_ACEOF
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5
+$as_echo "$gl_cv_func_mbrtowc_null_arg2" >&6; }
 
-cat >>confdefs.h <<_ACEOF
-#define FLT_SIGNBIT_BIT $bit
-_ACEOF
 
-      ;;
-  esac
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'double'" >&5
-$as_echo_n "checking where to find the sign bit in a 'double'... " >&6; }
-if test "${gl_cv_cc_double_signbit+set}" = set; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5
+$as_echo_n "checking whether mbrtowc has a correct return value... " >&6; }
+if ${gl_cv_func_mbrtowc_retval+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
-
-                              gl_cv_cc_double_signbit="unknown"
-
+                  case "$host_os" in
+                                   # Guess no on HP-UX, Solaris, native Windows.
+        hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;;
+                                   # Guess yes otherwise.
+        *)                         gl_cv_func_mbrtowc_retval="guessing yes" ;;
+      esac
+      if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \
+         || { case "$host_os" in mingw*) true;; *) false;; esac; }; then
+        if test "$cross_compiling" = yes; then :
+  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
 #include <stddef.h>
 #include <stdio.h>
-#define NWORDS \
-  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { double value; unsigned int word[NWORDS]; }
-        memory_float;
-static memory_float plus = { 1.0 };
-static memory_float minus = { -1.0 };
+#include <time.h>
+#include <wchar.h>
 int main ()
 {
-  size_t j, k, i;
-  unsigned int m;
-  FILE *fp = fopen ("conftest.out", "w");
-  if (fp == NULL)
-    return 1;
-  /* Find the different bit.  */
-  k = 0; m = 0;
-  for (j = 0; j < NWORDS; j++)
+  int result = 0;
+  int found_some_locale = 0;
+  /* This fails on Solaris.  */
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
     {
-      unsigned int x = plus.word[j] ^ minus.word[j];
-      if ((x & (x - 1)) || (x && m))
+      char input[] = "B\303\274\303\237er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
         {
-          /* More than one bit difference.  */
-          fprintf (fp, "unknown");
-          return 1;
+          input[1] = '\0';
+          if (mbrtowc (&wc, input + 2, 5, &state) != 1)
+            result |= 1;
         }
-      if (x)
+      found_some_locale = 1;
+    }
+  /* This fails on HP-UX 11.11.  */
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
         {
-          k = j;
-          m = x;
+          input[1] = '\0';
+          if (mbrtowc (&wc, input + 2, 5, &state) != 2)
+            result |= 2;
         }
+      found_some_locale = 1;
     }
-  if (m == 0)
+  /* This fails on native Windows.  */
+  if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
     {
-      /* No difference.  */
-      fprintf (fp, "unknown");
-      return 1;
+      char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+        {
+          input[3] = '\0';
+          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+            result |= 4;
+        }
+      found_some_locale = 1;
     }
-  /* Now m = plus.word[k] ^ ~minus.word[k].  */
-  if (plus.word[k] & ~minus.word[k])
+  if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
     {
-      /* Oh? The sign bit is set in the positive and cleared in the negative
-         numbers?  */
-      fprintf (fp, "unknown");
-      return 1;
+      char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+        {
+          input[3] = '\0';
+          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+            result |= 8;
+        }
+      found_some_locale = 1;
     }
-  for (i = 0; ; i++)
-    if ((m >> i) & 1)
-      break;
-  fprintf (fp, "word %d bit %d", (int) k, (int) i);
-  return (fclose (fp) != 0);
-}
+  if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
+    {
+      char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */
+      mbstate_t state;
+      wchar_t wc;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+        {
+          input[3] = '\0';
+          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+            result |= 16;
+        }
+      found_some_locale = 1;
+    }
+  return (found_some_locale ? result : 77);
+}
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_cc_double_signbit=`cat conftest.out`
+  gl_cv_func_mbrtowc_retval=yes
 else
-  gl_cv_cc_double_signbit="unknown"
+  if test $? != 77; then
+             gl_cv_func_mbrtowc_retval=no
+           fi
+
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-      rm -f conftest.out
+      fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_signbit" >&5
-$as_echo "$gl_cv_cc_double_signbit" >&6; }
-  case "$gl_cv_cc_double_signbit" in
-    word*bit*)
-      word=`echo "$gl_cv_cc_double_signbit" | sed -e 's/word //' -e 's/ bit.*//'`
-      bit=`echo "$gl_cv_cc_double_signbit" | sed -e 's/word.*bit //'`
-
-cat >>confdefs.h <<_ACEOF
-#define DBL_SIGNBIT_WORD $word
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define DBL_SIGNBIT_BIT $bit
-_ACEOF
-
-      ;;
-  esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5
+$as_echo "$gl_cv_func_mbrtowc_retval" >&6; }
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'long double'" >&5
-$as_echo_n "checking where to find the sign bit in a 'long double'... " >&6; }
-if test "${gl_cv_cc_long_double_signbit+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5
+$as_echo_n "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; }
+if ${gl_cv_func_mbrtowc_nul_retval+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
-
-                              gl_cv_cc_long_double_signbit="unknown"
-
+                  case "$host_os" in
+                       # Guess no on Solaris 8 and 9.
+        solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;;
+                       # Guess yes otherwise.
+        *)             gl_cv_func_mbrtowc_nul_retval="guessing yes" ;;
+      esac
+      if test $LOCALE_ZH_CN != none; then
+        if test "$cross_compiling" = yes; then :
+  :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
 #include <stddef.h>
 #include <stdio.h>
-#define NWORDS \
-  ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { long double value; unsigned int word[NWORDS]; }
-        memory_float;
-static memory_float plus = { 1.0L };
-static memory_float minus = { -1.0L };
+#include <time.h>
+#include <wchar.h>
 int main ()
 {
-  size_t j, k, i;
-  unsigned int m;
-  FILE *fp = fopen ("conftest.out", "w");
-  if (fp == NULL)
-    return 1;
-  /* Find the different bit.  */
-  k = 0; m = 0;
-  for (j = 0; j < NWORDS; j++)
-    {
-      unsigned int x = plus.word[j] ^ minus.word[j];
-      if ((x & (x - 1)) || (x && m))
-        {
-          /* More than one bit difference.  */
-          fprintf (fp, "unknown");
-          return 1;
-        }
-      if (x)
-        {
-          k = j;
-          m = x;
-        }
-    }
-  if (m == 0)
-    {
-      /* No difference.  */
-      fprintf (fp, "unknown");
-      return 1;
-    }
-  /* Now m = plus.word[k] ^ ~minus.word[k].  */
-  if (plus.word[k] & ~minus.word[k])
+  /* This fails on Solaris 8 and 9.  */
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
     {
-      /* Oh? The sign bit is set in the positive and cleared in the negative
-         numbers?  */
-      fprintf (fp, "unknown");
-      return 1;
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, "", 1, &state) != 0)
+        return 1;
     }
-  for (i = 0; ; i++)
-    if ((m >> i) & 1)
-      break;
-  fprintf (fp, "word %d bit %d", (int) k, (int) i);
-  return (fclose (fp) != 0);
+  return 0;
 }
-
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_cc_long_double_signbit=`cat conftest.out`
+  gl_cv_func_mbrtowc_nul_retval=yes
 else
-  gl_cv_cc_long_double_signbit="unknown"
+  gl_cv_func_mbrtowc_nul_retval=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-      rm -f conftest.out
+      fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_long_double_signbit" >&5
-$as_echo "$gl_cv_cc_long_double_signbit" >&6; }
-  case "$gl_cv_cc_long_double_signbit" in
-    word*bit*)
-      word=`echo "$gl_cv_cc_long_double_signbit" | sed -e 's/word //' -e 's/ bit.*//'`
-      bit=`echo "$gl_cv_cc_long_double_signbit" | sed -e 's/word.*bit //'`
-
-cat >>confdefs.h <<_ACEOF
-#define LDBL_SIGNBIT_WORD $word
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define LDBL_SIGNBIT_BIT $bit
-_ACEOF
-
-      ;;
-  esac
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5
+$as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; }
 
-      if test "$gl_cv_cc_float_signbit" = unknown; then
-                ac_fn_c_check_decl "$LINENO" "copysignf" "ac_cv_have_decl_copysignf" "#include <math.h>
-"
-if test "x$ac_cv_have_decl_copysignf" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_COPYSIGNF $ac_have_decl
-_ACEOF
 
-        if test "$ac_cv_have_decl_copysignf" = yes; then
-                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysignf can be used without linking with libm" >&5
-$as_echo_n "checking whether copysignf can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_copysignf_no_libm+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works on empty input" >&5
+$as_echo_n "checking whether mbrtowc works on empty input... " >&6; }
+if ${gl_cv_func_mbrtowc_empty_input+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <math.h>
-                           float x, y;
-int
-main ()
-{
-return copysignf (x, y) < 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_copysignf_no_libm=yes
-else
-  gl_cv_func_copysignf_no_libm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_copysignf_no_libm" >&5
-$as_echo "$gl_cv_func_copysignf_no_libm" >&6; }
-          if test $gl_cv_func_copysignf_no_libm = yes; then
-
-$as_echo "#define HAVE_COPYSIGNF_IN_LIBC 1" >>confdefs.h
-
-          fi
-        fi
-      fi
-      if test "$gl_cv_cc_double_signbit" = unknown; then
-                ac_fn_c_check_decl "$LINENO" "copysign" "ac_cv_have_decl_copysign" "#include <math.h>
-"
-if test "x$ac_cv_have_decl_copysign" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_COPYSIGN $ac_have_decl
-_ACEOF
-
-        if test "$ac_cv_have_decl_copysign" = yes; then
-                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysign can be used without linking with libm" >&5
-$as_echo_n "checking whether copysign can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_copysign_no_libm+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+                  case "$host_os" in
+                     # Guess no on AIX and glibc systems.
+        aix* | *-gnu*)
+                    gl_cv_func_mbrtowc_empty_input="guessing no" ;;
+        *)          gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
+      esac
+      if test "$cross_compiling" = yes; then :
+  :
 else
-
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <math.h>
-                           double x, y;
-int
-main ()
-{
-return copysign (x, y) < 0;
-  ;
-  return 0;
-}
+
+           #include <wchar.h>
+           static wchar_t wc;
+           static mbstate_t mbs;
+           int
+           main (void)
+           {
+             return mbrtowc (&wc, "", 0, &mbs) == (size_t) -2;
+           }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_copysign_no_libm=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_empty_input=no
 else
-  gl_cv_func_copysign_no_libm=no
+  gl_cv_func_mbrtowc_empty_input=yes
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_copysign_no_libm" >&5
-$as_echo "$gl_cv_func_copysign_no_libm" >&6; }
-          if test $gl_cv_func_copysign_no_libm = yes; then
 
-$as_echo "#define HAVE_COPYSIGN_IN_LIBC 1" >>confdefs.h
 
-          fi
-        fi
-      fi
-      if test "$gl_cv_cc_long_double_signbit" = unknown; then
-                ac_fn_c_check_decl "$LINENO" "copysignl" "ac_cv_have_decl_copysignl" "#include <math.h>
-"
-if test "x$ac_cv_have_decl_copysignl" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_empty_input" >&5
+$as_echo "$gl_cv_func_mbrtowc_empty_input" >&6; }
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_COPYSIGNL $ac_have_decl
-_ACEOF
+      case "$gl_cv_func_mbrtowc_null_arg1" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h
 
-        if test "$ac_cv_have_decl_copysignl" = yes; then
-                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysignl can be used without linking with libm" >&5
-$as_echo_n "checking whether copysignl can be used without linking with libm... " >&6; }
-if test "${gl_cv_func_copysignl_no_libm+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_null_arg2" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h
 
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <math.h>
-                           long double x, y;
-int
-main ()
-{
-return copysignl (x, y) < 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gl_cv_func_copysignl_no_libm=yes
-else
-  gl_cv_func_copysignl_no_libm=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_retval" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_copysignl_no_libm" >&5
-$as_echo "$gl_cv_func_copysignl_no_libm" >&6; }
-          if test $gl_cv_func_copysignl_no_libm = yes; then
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_nul_retval" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h
 
-$as_echo "#define HAVE_COPYSIGNL_IN_LIBC 1" >>confdefs.h
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_empty_input" in
+        *yes) ;;
+        *)
+$as_echo "#define MBRTOWC_EMPTY_INPUT_BUG 1" >>confdefs.h
 
-          fi
-        fi
-      fi
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
     fi
   fi
 
+  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
 
 
 
-  GNULIB_SIGNBIT=1
-
 
 
-$as_echo "#define GNULIB_TEST_SIGNBIT 1" >>confdefs.h
 
 
 
-  # Code from module size_max:
+  gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
 
-  for ac_header in stdint.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdint_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STDINT_H 1
-_ACEOF
 
-fi
+  :
 
-done
+  fi
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5
-$as_echo_n "checking for SIZE_MAX... " >&6; }
-if test "${gl_cv_size_max+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-    gl_cv_size_max=
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <limits.h>
-#if HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef SIZE_MAX
-Found it
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Found it" >/dev/null 2>&1; then :
-  gl_cv_size_max=yes
-fi
-rm -f conftest*
 
-    if test -z "$gl_cv_size_max"; then
-                        if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1"        "#include <stddef.h>
-#include <limits.h>"; then :
+          GNULIB_MBRTOWC=1
 
-else
-  size_t_bits_minus_1=
-fi
 
-      if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint"        "#include <stddef.h>"; then :
 
-else
-  fits_in_uint=
-fi
 
-      if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
-        if test $fits_in_uint = 1; then
-                              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stddef.h>
-            extern size_t foo;
-            extern unsigned long foo;
 
-int
-main ()
-{
+$as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  fits_in_uint=0
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-        fi
-                                if test $fits_in_uint = 1; then
-          gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
-        else
-          gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
-        fi
-      else
-                gl_cv_size_max='((size_t)~(size_t)0)'
-      fi
-    fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5
-$as_echo "$gl_cv_size_max" >&6; }
-  if test "$gl_cv_size_max" != yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define SIZE_MAX $gl_cv_size_max
-_ACEOF
 
-  fi
 
 
-  # Code from module stdbool:
 
 
 
-  # Define two additional variables used in the Makefile substitution.
 
-  if test "$ac_cv_header_stdbool_h" = yes; then
-    STDBOOL_H=''
-  else
-    STDBOOL_H='stdbool.h'
-  fi
 
 
-  if test "$ac_cv_type__Bool" = yes; then
-    HAVE__BOOL=1
-  else
-    HAVE__BOOL=0
-  fi
 
 
-  # Code from module stddef:
+  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
 
 
 
-  if test $gt_cv_c_wchar_t = no; then
-    HAVE_WCHAR_T=0
-    STDDEF_H=stddef.h
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
-$as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; }
-if test "${gl_cv_decl_null_works+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
   $as_echo_n "(cached) " >&6
 else
+
+                  case "$host_os" in
+                     # Guess no on AIX and OSF/1.
+        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+                     # Guess yes otherwise.
+        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+      esac
+      if test $LOCALE_JA != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stddef.h>
-      int test[2 * (sizeof NULL == sizeof (void *)) -1];
 
-int
-main ()
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
 {
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
 
-  ;
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
+        if (mbsinit (&state))
+          return 1;
+    }
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_decl_null_works=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_incomplete_state=yes
 else
-  gl_cv_decl_null_works=no
+  gl_cv_func_mbrtowc_incomplete_state=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5
-$as_echo "$gl_cv_decl_null_works" >&6; }
-  if test $gl_cv_decl_null_works = no; then
-    REPLACE_NULL=1
-    STDDEF_H=stddef.h
-  fi
-  if test -n "$STDDEF_H"; then
 
+      fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
 
 
 
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stddef_h='<'stddef.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
-$as_echo_n "checking absolute name of <stddef.h>... " >&6; }
-if test "${gl_cv_next_stddef_h+set}" = set; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-          if test $ac_cv_header_stddef_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+                  case "$host_os" in
+                    # Guess no on Solaris 8.
+        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
+                    # Guess yes otherwise.
+        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
+      esac
+      if test $LOCALE_ZH_CN != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
 #include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  /* This fails on Solaris 8:
+     mbrtowc returns 2, and sets wc to 0x00F0.
+     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
 
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 6, &state) != 4
+          && mbtowc (&wc, input + 3, 6) == 4)
+        return 1;
+    }
+  return 0;
+}
 _ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/stddef.h#{
-                 s#.*"\(.*/stddef.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
-          else
-            gl_cv_next_stddef_h='<'stddef.h'>'
-          fi
-
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_sanitycheck=yes
+else
+  gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5
-$as_echo "$gl_cv_next_stddef_h" >&6; }
-     fi
-     NEXT_STDDEF_H=$gl_cv_next_stddef_h
-
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'stddef.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stddef_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive
 
+      fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
+$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 
+    REPLACE_MBSTATE_T=0
+    case "$gl_cv_func_mbrtowc_incomplete_state" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+    case "$gl_cv_func_mbrtowc_sanitycheck" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+  else
+    REPLACE_MBSTATE_T=1
   fi
 
-  # Code from module stdint:
 
 
+  if test $ac_cv_func_mbsinit = no; then
+    HAVE_MBSINIT=0
+    ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" "
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
 
-  if test $ac_cv_type_long_long_int = yes; then
-    HAVE_LONG_LONG_INT=1
-  else
-    HAVE_LONG_LONG_INT=0
-  fi
+"
+if test "x$ac_cv_have_decl_mbsinit" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MBSINIT $ac_have_decl
+_ACEOF
 
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-    HAVE_UNSIGNED_LONG_LONG_INT=1
+    if test $ac_cv_have_decl_mbsinit = yes; then
+                        REPLACE_MBSINIT=1
+    fi
   else
-    HAVE_UNSIGNED_LONG_LONG_INT=0
+    if test $REPLACE_MBSTATE_T = 1; then
+      REPLACE_MBSINIT=1
+    else
+                        case "$host_os" in
+        mingw*) REPLACE_MBSINIT=1 ;;
+      esac
+    fi
   fi
 
+  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
 
-      if test $ac_cv_header_inttypes_h = yes; then
-    HAVE_INTTYPES_H=1
-  else
-    HAVE_INTTYPES_H=0
-  fi
 
 
-      if test $ac_cv_header_sys_types_h = yes; then
-    HAVE_SYS_TYPES_H=1
-  else
-    HAVE_SYS_TYPES_H=0
-  fi
 
 
 
 
 
+  gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext"
 
 
+  :
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stdint_h='<'stdint.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5
-$as_echo_n "checking absolute name of <stdint.h>... " >&6; }
-if test "${gl_cv_next_stdint_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
+  fi
 
-          if test $ac_cv_header_stdint_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdint.h>
 
-_ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/stdint.h#{
-                 s#.*"\(.*/stdint.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
-          else
-            gl_cv_next_stdint_h='<'stdint.h'>'
-          fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5
-$as_echo "$gl_cv_next_stdint_h" >&6; }
-     fi
-     NEXT_STDINT_H=$gl_cv_next_stdint_h
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'stdint.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stdint_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive
 
+          GNULIB_MBSINIT=1
 
 
-  if test $ac_cv_header_stdint_h = yes; then
-    HAVE_STDINT_H=1
-  else
-    HAVE_STDINT_H=0
-  fi
 
 
-    if test $ac_cv_header_stdint_h = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5
-$as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
-if test "${gl_cv_header_working_stdint_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  gl_cv_header_working_stdint_h=no
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
+$as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h
 
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
-#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
-#include <stdint.h>
-/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
-#if !(defined WCHAR_MIN && defined WCHAR_MAX)
-#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
-#endif
 
 
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
 
 
-#ifdef INT8_MAX
-int8_t a1 = INT8_MAX;
-int8_t a1min = INT8_MIN;
-#endif
-#ifdef INT16_MAX
-int16_t a2 = INT16_MAX;
-int16_t a2min = INT16_MIN;
-#endif
-#ifdef INT32_MAX
-int32_t a3 = INT32_MAX;
-int32_t a3min = INT32_MIN;
-#endif
-#ifdef INT64_MAX
-int64_t a4 = INT64_MAX;
-int64_t a4min = INT64_MIN;
-#endif
-#ifdef UINT8_MAX
-uint8_t b1 = UINT8_MAX;
-#else
-typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
-#endif
-#ifdef UINT16_MAX
-uint16_t b2 = UINT16_MAX;
-#endif
-#ifdef UINT32_MAX
-uint32_t b3 = UINT32_MAX;
-#endif
-#ifdef UINT64_MAX
-uint64_t b4 = UINT64_MAX;
-#endif
-int_least8_t c1 = INT8_C (0x7f);
-int_least8_t c1max = INT_LEAST8_MAX;
-int_least8_t c1min = INT_LEAST8_MIN;
-int_least16_t c2 = INT16_C (0x7fff);
-int_least16_t c2max = INT_LEAST16_MAX;
-int_least16_t c2min = INT_LEAST16_MIN;
-int_least32_t c3 = INT32_C (0x7fffffff);
-int_least32_t c3max = INT_LEAST32_MAX;
-int_least32_t c3min = INT_LEAST32_MIN;
-int_least64_t c4 = INT64_C (0x7fffffffffffffff);
-int_least64_t c4max = INT_LEAST64_MAX;
-int_least64_t c4min = INT_LEAST64_MIN;
-uint_least8_t d1 = UINT8_C (0xff);
-uint_least8_t d1max = UINT_LEAST8_MAX;
-uint_least16_t d2 = UINT16_C (0xffff);
-uint_least16_t d2max = UINT_LEAST16_MAX;
-uint_least32_t d3 = UINT32_C (0xffffffff);
-uint_least32_t d3max = UINT_LEAST32_MAX;
-uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
-uint_least64_t d4max = UINT_LEAST64_MAX;
-int_fast8_t e1 = INT_FAST8_MAX;
-int_fast8_t e1min = INT_FAST8_MIN;
-int_fast16_t e2 = INT_FAST16_MAX;
-int_fast16_t e2min = INT_FAST16_MIN;
-int_fast32_t e3 = INT_FAST32_MAX;
-int_fast32_t e3min = INT_FAST32_MIN;
-int_fast64_t e4 = INT_FAST64_MAX;
-int_fast64_t e4min = INT_FAST64_MIN;
-uint_fast8_t f1 = UINT_FAST8_MAX;
-uint_fast16_t f2 = UINT_FAST16_MAX;
-uint_fast32_t f3 = UINT_FAST32_MAX;
-uint_fast64_t f4 = UINT_FAST64_MAX;
-#ifdef INTPTR_MAX
-intptr_t g = INTPTR_MAX;
-intptr_t gmin = INTPTR_MIN;
-#endif
-#ifdef UINTPTR_MAX
-uintptr_t h = UINTPTR_MAX;
-#endif
-intmax_t i = INTMAX_MAX;
-uintmax_t j = UINTMAX_MAX;
 
-#include <limits.h> /* for CHAR_BIT */
-#define TYPE_MINIMUM(t) \
-  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
-#define TYPE_MAXIMUM(t) \
-  ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
-struct s {
-  int check_PTRDIFF:
-      PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
-      && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
-      ? 1 : -1;
-  /* Detect bug in FreeBSD 6.0 / ia64.  */
-  int check_SIG_ATOMIC:
-      SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
-      && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
-      ? 1 : -1;
-  int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
-  int check_WCHAR:
-      WCHAR_MIN == TYPE_MINIMUM (wchar_t)
-      && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
-      ? 1 : -1;
-  /* Detect bug in mingw.  */
-  int check_WINT:
-      WINT_MIN == TYPE_MINIMUM (wint_t)
-      && WINT_MAX == TYPE_MAXIMUM (wint_t)
-      ? 1 : -1;
 
-  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
-  int check_UINT8_C:
-        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
-  int check_UINT16_C:
-        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
 
-  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
-#ifdef UINT8_MAX
-  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
-#endif
-#ifdef UINT16_MAX
-  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
-#endif
-#ifdef UINT32_MAX
-  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
-#endif
-#ifdef UINT64_MAX
-  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
-#endif
-  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
-  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
-  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
-  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
-  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
-  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
-  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
-  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
-  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
-  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
-  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
-};
+          GNULIB_MBSNLEN=1
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-                                                    if test "$cross_compiling" = yes; then :
-                 gl_cv_header_working_stdint_h=yes
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
 
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
-#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
-#include <stdint.h>
+$as_echo "#define GNULIB_TEST_MBSNLEN 1" >>confdefs.h
 
 
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
 
 
-#include <stdio.h>
-#include <string.h>
-#define MVAL(macro) MVAL1(macro)
-#define MVAL1(expression) #expression
-static const char *macro_values[] =
-  {
-#ifdef INT8_MAX
-    MVAL (INT8_MAX),
-#endif
-#ifdef INT16_MAX
-    MVAL (INT16_MAX),
-#endif
-#ifdef INT32_MAX
-    MVAL (INT32_MAX),
-#endif
-#ifdef INT64_MAX
-    MVAL (INT64_MAX),
-#endif
-#ifdef UINT8_MAX
-    MVAL (UINT8_MAX),
-#endif
-#ifdef UINT16_MAX
-    MVAL (UINT16_MAX),
-#endif
-#ifdef UINT32_MAX
-    MVAL (UINT32_MAX),
-#endif
-#ifdef UINT64_MAX
-    MVAL (UINT64_MAX),
-#endif
-    NULL
-  };
+  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
 
-int
-main ()
-{
 
-  const char **mv;
-  for (mv = macro_values; *mv != NULL; mv++)
-    {
-      const char *value = *mv;
-      /* Test whether it looks like a cast expression.  */
-      if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0
-          || strncmp (value, "((unsigned short)"/*)*/, 17) == 0
-          || strncmp (value, "((unsigned char)"/*)*/, 16) == 0
-          || strncmp (value, "((int)"/*)*/, 6) == 0
-          || strncmp (value, "((signed short)"/*)*/, 15) == 0
-          || strncmp (value, "((signed char)"/*)*/, 14) == 0)
-        return 1;
-    }
-  return 0;
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_header_working_stdint_h=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
 
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5
-$as_echo "$gl_cv_header_working_stdint_h" >&6; }
-  fi
-  if test "$gl_cv_header_working_stdint_h" = yes; then
-    STDINT_H=
-  else
-            for ac_header in sys/inttypes.h sys/bitypes.h
+
+
+  gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext"
+
+
+  for ac_header in bp-sym.h
 do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
-   if test "x$as_val" = x""yes; then :
+  ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default"
+if test "x$ac_cv_header_bp_sym_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_BP_SYM_H 1
 _ACEOF
 
 fi
 
 done
 
-    if test $ac_cv_header_sys_inttypes_h = yes; then
-      HAVE_SYS_INTTYPES_H=1
-    else
-      HAVE_SYS_INTTYPES_H=0
-    fi
 
-    if test $ac_cv_header_sys_bitypes_h = yes; then
-      HAVE_SYS_BITYPES_H=1
-    else
-      HAVE_SYS_BITYPES_H=0
-    fi
+  fi
 
 
 
 
 
+          GNULIB_MEMCHR=1
 
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
 
 
-  for gltype in ptrdiff_t size_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
-$as_echo_n "checking for bit size of $gltype... " >&6; }
-if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then :
+
+
+$as_echo "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+  if test $gl_cv_func_frexp_no_libm = yes; then
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexp works" >&5
+$as_echo_n "checking whether frexp works... " >&6; }
+if ${gl_cv_func_frexp_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
 
-#include <limits.h>"; then :
+      if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+           netbsd* | irix* | mingw*) gl_cv_func_frexp_works="guessing no";;
+           *)                        gl_cv_func_frexp_works="guessing yes";;
+         esac
 
 else
-  result=unknown
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <float.h>
+#include <math.h>
+#include <string.h>
+#if HAVE_DECL_ALARM
+# include <signal.h>
+# include <unistd.h>
+#endif
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
+   to PowerPC on Mac OS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static double
+compute_minus_zero (void)
+{
+  return -DBL_MIN * DBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
+#else
+double minus_zero = -0.0;
+#endif
+int main()
+{
+  int result = 0;
+  int i;
+  volatile double x;
+  double zero = 0.0;
+#if HAVE_DECL_ALARM
+  /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite
+     number.  Let the test fail in this case.  */
+  signal (SIGALRM, SIG_DFL);
+  alarm (5);
+#endif
+  /* Test on denormalized numbers.  */
+  for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5)
+    ;
+  if (x > 0.0)
+    {
+      int exp;
+      double y = frexp (x, &exp);
+      /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022.
+         On NetBSD: y = 0.75. Correct: y = 0.5.  */
+      if (y != 0.5)
+        result |= 1;
+    }
+  /* Test on infinite numbers.  */
+  x = 1.0 / zero;
+  {
+    int exp;
+    double y = frexp (x, &exp);
+    if (y != x)
+      result |= 2;
+  }
+  /* Test on negative zero.  */
+  x = minus_zero;
+  {
+    int exp;
+    double y = frexp (x, &exp);
+    if (memcmp (&y, &x, sizeof x))
+      result |= 4;
+  }
+  return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_frexp_works=yes
+else
+  gl_cv_func_frexp_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-       eval gl_cv_bitsizeof_${gltype}=\$result
 
 fi
-eval ac_res=\$gl_cv_bitsizeof_${gltype}
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_bitsizeof_${gltype}
-    if test $result = unknown; then
-                                                result=0
-    fi
-    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    cat >>confdefs.h <<_ACEOF
-#define BITSIZEOF_${GLTYPE} $result
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexp_works" >&5
+$as_echo "$gl_cv_func_frexp_works" >&6; }
 
-    eval BITSIZEOF_${GLTYPE}=\$result
-  done
+    case "$gl_cv_func_frexp_works" in
+      *yes)
 
+$as_echo "#define HAVE_FREXP_IN_LIBC 1" >>confdefs.h
 
+        ;;
+    esac
   fi
 
-
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
-$as_echo_n "checking for bit size of $gltype... " >&6; }
-if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexp can be used without linking with libm" >&5
+$as_echo_n "checking whether ldexp can be used without linking with libm... " >&6; }
+if ${gl_cv_func_ldexp_no_libm+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
-
-#include <limits.h>"; then :
 
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+             double x;
+             int y;
+int
+main ()
+{
+return ldexp (x, y) < 1;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_ldexp_no_libm=yes
 else
-  result=unknown
+  gl_cv_func_ldexp_no_libm=no
 fi
-
-       eval gl_cv_bitsizeof_${gltype}=\$result
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 fi
-eval ac_res=\$gl_cv_bitsizeof_${gltype}
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_bitsizeof_${gltype}
-    if test $result = unknown; then
-                                                result=0
-    fi
-    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    cat >>confdefs.h <<_ACEOF
-#define BITSIZEOF_${GLTYPE} $result
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ldexp_no_libm" >&5
+$as_echo "$gl_cv_func_ldexp_no_libm" >&6; }
+  if test $gl_cv_func_ldexp_no_libm = yes; then
 
-    eval BITSIZEOF_${GLTYPE}=\$result
-  done
+$as_echo "#define HAVE_LDEXP_IN_LIBC 1" >>confdefs.h
 
+  fi
 
 
 
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5
-$as_echo_n "checking whether $gltype is signed... " >&6; }
-if { as_var=gl_cv_type_${gltype}_signed; eval "test \"\${$as_var+set}\" = set"; }; then :
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl() can be used without linking with libm" >&5
+$as_echo_n "checking whether frexpl() can be used without linking with libm... " >&6; }
+if ${gl_cv_func_frexpl_no_libm+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
 
-            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+             long double x;
 int
 main ()
 {
-
+int e; return frexpl (x, &e) > 0;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  result=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_frexpl_no_libm=yes
 else
-  result=no
+  gl_cv_func_frexpl_no_libm=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       eval gl_cv_type_${gltype}_signed=\$result
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 fi
-eval ac_res=\$gl_cv_type_${gltype}_signed
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    eval result=\$gl_cv_type_${gltype}_signed
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    if test "$result" = yes; then
-      cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGNED_${GLTYPE} 1
-_ACEOF
-
-      eval HAVE_SIGNED_${GLTYPE}=1
-    else
-      eval HAVE_SIGNED_${GLTYPE}=0
-    fi
-  done
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_no_libm" >&5
+$as_echo "$gl_cv_func_frexpl_no_libm" >&6; }
 
-  gl_cv_type_ptrdiff_t_signed=yes
-  gl_cv_type_size_t_signed=no
-  if test $APPLE_UNIVERSAL_BUILD = 0; then
+  if test $gl_cv_func_frexpl_no_libm = yes; then
 
 
-  for gltype in ptrdiff_t size_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
-$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
-if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether frexpl works" >&5
+$as_echo_n "checking whether frexpl works... " >&6; }
+if ${gl_cv_func_frexpl_works+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  eval gl_cv_type_${gltype}_suffix=no
-       eval result=\$gl_cv_type_${gltype}_signed
-       if test "$result" = yes; then
-         glsufu=
-       else
-         glsufu=u
-       fi
-       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
-         case $glsuf in
-           '')  gltype1='int';;
-           l)   gltype1='long int';;
-           ll)  gltype1='long long int';;
-           i64) gltype1='__int64';;
-           u)   gltype1='unsigned int';;
-           ul)  gltype1='unsigned long int';;
-           ull) gltype1='unsigned long long int';;
-           ui64)gltype1='unsigned __int64';;
+
+      if test "$cross_compiling" = yes; then :
+
+         case "$host_os" in
+           aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*)
+              gl_cv_func_frexpl_works="guessing no";;
+           *) gl_cv_func_frexpl_works="guessing yes";;
          esac
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-              extern $gltype foo;
-              extern $gltype1 foo;
-int
-main ()
+#include <float.h>
+#include <math.h>
+/* Override the values of <float.h>, like done in float.in.h.  */
+#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP    (-16381)
+#endif
+#if defined __i386__ && defined __FreeBSD__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP    (-16381)
+#endif
+#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+#endif
+#if defined __sgi && (LDBL_MANT_DIG >= 106)
+# if defined __GNUC__
+#  undef LDBL_MIN_EXP
+#  define LDBL_MIN_EXP DBL_MIN_EXP
+# endif
+#endif
+extern
+#ifdef __cplusplus
+"C"
+#endif
+long double frexpl (long double, int *);
+int main()
 {
-
-  ;
-  return 0;
+  int result = 0;
+  volatile long double x;
+  /* Test on finite numbers that fails on AIX 5.1.  */
+  x = 16.0L;
+  {
+    int exp = -9999;
+    frexpl (x, &exp);
+    if (exp != 5)
+      result |= 1;
+  }
+  /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl
+     function returns an invalid (incorrectly normalized) value: it returns
+               y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 }
+     but the correct result is
+          0.505L = { 0x3fe028f5, 0xc28f5c29, 0xbc547ae1, 0x47ae1480 }  */
+  x = 1.01L;
+  {
+    int exp = -9999;
+    long double y = frexpl (x, &exp);
+    if (!(exp == 1 && y == 0.505L))
+      result |= 2;
+  }
+  /* Test on large finite numbers.  This fails on BeOS at i = 16322, while
+     LDBL_MAX_EXP = 16384.
+     In the loop end test, we test x against Infinity, rather than comparing
+     i with LDBL_MAX_EXP, because BeOS <float.h> has a wrong LDBL_MAX_EXP.  */
+  {
+    int i;
+    for (i = 1, x = 1.0L; x != x + x; i++, x *= 2.0L)
+      {
+        int exp = -9999;
+        frexpl (x, &exp);
+        if (exp != i)
+          {
+            result |= 4;
+            break;
+          }
+      }
+  }
+  /* Test on denormalized numbers.  */
+  {
+    int i;
+    for (i = 1, x = 1.0L; i >= LDBL_MIN_EXP; i--, x *= 0.5L)
+      ;
+    if (x > 0.0L)
+      {
+        int exp;
+        long double y = frexpl (x, &exp);
+        /* On machines with IEEE854 arithmetic: x = 1.68105e-4932,
+           exp = -16382, y = 0.5.  On Mac OS X 10.5: exp = -16384, y = 0.5.  */
+        if (exp != LDBL_MIN_EXP - 1)
+          result |= 8;
+      }
+  }
+  /* Test on infinite numbers.  */
+  x = 1.0L / 0.0L;
+  {
+    int exp;
+    long double y = frexpl (x, &exp);
+    if (y != x)
+      result |= 16;
+  }
+  return result;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval gl_cv_type_${gltype}_suffix=\$glsuf
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_frexpl_works=yes
+else
+  gl_cv_func_frexpl_works=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         eval result=\$gl_cv_type_${gltype}_suffix
-         test "$result" != no && break
-       done
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-eval ac_res=\$gl_cv_type_${gltype}_suffix
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    eval result=\$gl_cv_type_${gltype}_suffix
-    test "$result" = no && result=
-    eval ${GLTYPE}_SUFFIX=\$result
-    cat >>confdefs.h <<_ACEOF
-#define ${GLTYPE}_SUFFIX $result
-_ACEOF
 
-  done
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_frexpl_works" >&5
+$as_echo "$gl_cv_func_frexpl_works" >&6; }
 
+    case "$gl_cv_func_frexpl_works" in
+      *yes) gl_func_frexpl_no_libm=yes ;;
+      *)    gl_func_frexpl_no_libm=no; REPLACE_FREXPL=1 ;;
+    esac
+  else
+    gl_func_frexpl_no_libm=no
+        REPLACE_FREXPL=1
   fi
+  if test $gl_func_frexpl_no_libm = yes; then
 
+$as_echo "#define HAVE_FREXPL_IN_LIBC 1" >>confdefs.h
+
+            ac_fn_c_check_decl "$LINENO" "frexpl" "ac_cv_have_decl_frexpl" "#include <math.h>
+"
+if test "x$ac_cv_have_decl_frexpl" = xyes; then :
 
-  for gltype in sig_atomic_t wchar_t wint_t ; do
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
-$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
-if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
 else
-  eval gl_cv_type_${gltype}_suffix=no
-       eval result=\$gl_cv_type_${gltype}_signed
-       if test "$result" = yes; then
-         glsufu=
-       else
-         glsufu=u
-       fi
-       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
-         case $glsuf in
-           '')  gltype1='int';;
-           l)   gltype1='long int';;
-           ll)  gltype1='long long int';;
-           i64) gltype1='__int64';;
-           u)   gltype1='unsigned int';;
-           ul)  gltype1='unsigned long int';;
-           ull) gltype1='unsigned long long int';;
-           ui64)gltype1='unsigned __int64';;
-         esac
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  HAVE_DECL_FREXPL=0
+fi
 
-  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
-     included before <wchar.h>.  */
-  #include <stddef.h>
-  #include <signal.h>
-  #if HAVE_WCHAR_H
-  # include <stdio.h>
-  # include <time.h>
-  # include <wchar.h>
-  #endif
+  fi
 
-              extern $gltype foo;
-              extern $gltype1 foo;
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexpl() can be used without linking with libm" >&5
+$as_echo_n "checking whether ldexpl() can be used without linking with libm... " >&6; }
+if ${gl_cv_func_ldexpl_no_libm+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+             long double x;
 int
 main ()
 {
-
+return ldexpl (x, -1) > 0;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval gl_cv_type_${gltype}_suffix=\$glsuf
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         eval result=\$gl_cv_type_${gltype}_suffix
-         test "$result" != no && break
-       done
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_ldexpl_no_libm=yes
+else
+  gl_cv_func_ldexpl_no_libm=no
 fi
-eval ac_res=\$gl_cv_type_${gltype}_suffix
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
-    eval result=\$gl_cv_type_${gltype}_suffix
-    test "$result" = no && result=
-    eval ${GLTYPE}_SUFFIX=\$result
-    cat >>confdefs.h <<_ACEOF
-#define ${GLTYPE}_SUFFIX $result
-_ACEOF
-
-  done
-
-
-
-    STDINT_H=stdint.h
-  fi
-
-
-  # Code from module stdlib:
-
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ldexpl_no_libm" >&5
+$as_echo "$gl_cv_func_ldexpl_no_libm" >&6; }
 
+  if test $gl_cv_func_ldexpl_no_libm = yes; then
 
 
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ldexpl works" >&5
+$as_echo_n "checking whether ldexpl works... " >&6; }
+if ${gl_cv_func_ldexpl_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+      if test "$cross_compiling" = yes; then :
 
+         case "$host_os" in
+           aix | aix[3-6]*) gl_cv_func_ldexpl_works="guessing no";;
+           *)               gl_cv_func_ldexpl_works="guessing yes";;
+         esac
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_stdlib_h='<'stdlib.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdlib.h>" >&5
-$as_echo_n "checking absolute name of <stdlib.h>... " >&6; }
-if test "${gl_cv_next_stdlib_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
 else
-
-          if test $ac_cv_header_stdlib_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdlib.h>
 
+#include <math.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+long double ldexpl (long double, int);
+int main()
+{
+  int result = 0;
+  {
+    volatile long double x = 1.0;
+    volatile long double y = ldexpl (x, -1);
+    if (y != 0.5L)
+      result |= 1;
+  }
+  {
+    volatile long double x = 1.73205L;
+    volatile long double y = ldexpl (x, 0);
+    if (y != x)
+      result |= 2;
+  }
+  return result;
+}
 _ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/stdlib.h#{
-                 s#.*"\(.*/stdlib.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
-          else
-            gl_cv_next_stdlib_h='<'stdlib.h'>'
-          fi
-
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_ldexpl_works=yes
+else
+  gl_cv_func_ldexpl_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5
-$as_echo "$gl_cv_next_stdlib_h" >&6; }
-     fi
-     NEXT_STDLIB_H=$gl_cv_next_stdlib_h
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'stdlib.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_stdlib_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_ldexpl_works" >&5
+$as_echo "$gl_cv_func_ldexpl_works" >&6; }
+
+    case "$gl_cv_func_ldexpl_works" in
+      *yes)
 
+$as_echo "#define HAVE_LDEXPL_IN_LIBC 1" >>confdefs.h
 
-  for ac_header in random.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "random.h" "ac_cv_header_random_h" "$ac_includes_default
+                        ac_fn_c_check_decl "$LINENO" "ldexpl" "ac_cv_have_decl_ldexpl" "#include <math.h>
 "
-if test "x$ac_cv_header_random_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_RANDOM_H 1
-_ACEOF
+if test "x$ac_cv_have_decl_ldexpl" = xyes; then :
 
+else
+  HAVE_DECL_LDEXPL=0
 fi
 
-done
-
-  if test $ac_cv_header_random_h = yes; then
-    HAVE_RANDOM_H=1
-  else
-    HAVE_RANDOM_H=0
+        ;;
+    esac
   fi
 
-  ac_fn_c_check_type "$LINENO" "struct random_data" "ac_cv_type_struct_random_data" "#include <stdlib.h>
-      #if HAVE_RANDOM_H
-      # include <random.h>
-      #endif
-
-"
-if test "x$ac_cv_type_struct_random_data" = x""yes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_RANDOM_DATA 1
-_ACEOF
 
 
-else
-  HAVE_STRUCT_RANDOM_DATA=0
-fi
 
 
 
-    for gl_func in atoll canonicalize_file_name getloadavg getsubopt grantpt mkdtemp     mkostemp mkostemps mkstemp mkstemps ptsname random_r initstat_r srandom_r     setstate_r realpath rpmatch setenv strtod strtoll strtoull unlockpt     unsetenv; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for signbit macro" >&5
+$as_echo_n "checking for signbit macro... " >&6; }
+if ${gl_cv_func_signbit+:} false; then :
   $as_echo_n "(cached) " >&6
 else
+
+      if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_signbit="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_signbit="guessing no" ;;
+         esac
+
+else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdlib.h>
-#if HAVE_SYS_LOADAVG_H
-# include <sys/loadavg.h>
-#endif
-#if HAVE_RANDOM_H
-# include <random.h>
+
+#include <math.h>
+/* If signbit is defined as a function, don't use it, since calling it for
+   'float' or 'long double' arguments would involve conversions.
+   If signbit is not declared at all but exists as a library function, don't
+   use it, since the prototype may not match.
+   If signbit is not declared at all but exists as a compiler built-in, don't
+   use it, since it's preferable to use __builtin_signbit* (no warnings,
+   no conversions).  */
+#ifndef signbit
+# error "signbit should be a macro"
 #endif
+#include <string.h>
 
-int
-main ()
+/* Global variables.
+   Needed because GCC 4 constant-folds __builtin_signbitl (literal)
+   but cannot constant-fold            __builtin_signbitl (variable).  */
+float vf;
+double vd;
+long double vl;
+int main ()
 {
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+   So we use -p0f and -p0d instead.  */
+float p0f = 0.0f;
+float m0f = -p0f;
+double p0d = 0.0;
+double m0d = -p0d;
+/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
+   So we use another constant expression instead.
+   But that expression does not work on other platforms, such as when
+   cross-compiling to PowerPC on Mac OS X 10.5.  */
+long double p0l = 0.0L;
+#if defined __hpux || defined __sgi
+long double m0l = -LDBL_MIN * LDBL_MIN;
+#else
+long double m0l = -p0l;
+#endif
+  int result = 0;
+  if (signbit (vf)) /* link check */
+    vf++;
+  {
+    float plus_inf = 1.0f / p0f;
+    float minus_inf = -1.0f / p0f;
+    if (!(!signbit (255.0f)
+          && signbit (-255.0f)
+          && !signbit (p0f)
+          && (memcmp (&m0f, &p0f, sizeof (float)) == 0 || signbit (m0f))
+          && !signbit (plus_inf)
+          && signbit (minus_inf)))
+      result |= 1;
+  }
+  if (signbit (vd)) /* link check */
+    vd++;
+  {
+    double plus_inf = 1.0 / p0d;
+    double minus_inf = -1.0 / p0d;
+    if (!(!signbit (255.0)
+          && signbit (-255.0)
+          && !signbit (p0d)
+          && (memcmp (&m0d, &p0d, sizeof (double)) == 0 || signbit (m0d))
+          && !signbit (plus_inf)
+          && signbit (minus_inf)))
+      result |= 2;
+  }
+  if (signbit (vl)) /* link check */
+    vl++;
+  {
+    long double plus_inf = 1.0L / p0l;
+    long double minus_inf = -1.0L / p0l;
+    if (signbit (255.0L))
+      result |= 4;
+    if (!signbit (-255.0L))
+      result |= 4;
+    if (signbit (p0l))
+      result |= 8;
+    if (!(memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l)))
+      result |= 16;
+    if (signbit (plus_inf))
+      result |= 32;
+    if (!signbit (minus_inf))
+      result |= 64;
+  }
+  return result;
 }
+
+
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_signbit=yes
 else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  gl_cv_func_signbit=no
 fi
-eval ac_res=\$$as_gl_Symbol
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     eval as_val=\$$as_gl_Symbol
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
-
-                     eval ac_cv_have_decl_$gl_func=yes
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-      done
-
-
-  # Code from module streq:
-  # Code from module striconveh:
-  if test $gl_cond_libtool = false; then
-    gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV"
-    gl_libdeps="$gl_libdeps $LIBICONV"
-  fi
-  # Code from module striconveha:
-  # Code from module string:
-
 
 
-  # Code from module strncat:
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_signbit" >&5
+$as_echo "$gl_cv_func_signbit" >&6; }
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for signbit compiler built-ins" >&5
+$as_echo_n "checking for signbit compiler built-ins... " >&6; }
+if ${gl_cv_func_signbit_gcc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+      if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_signbit_gcc="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_signbit_gcc="guessing no" ;;
+         esac
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#if __GNUC__ >= 4
+# define signbit(x) \
+   (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
+    sizeof (x) == sizeof (double) ? __builtin_signbit (x) : \
+    __builtin_signbitf (x))
+#else
+# error "signbit should be three compiler built-ins"
+#endif
+#include <string.h>
 
-  GNULIB_STRNCAT=1
+/* Global variables.
+   Needed because GCC 4 constant-folds __builtin_signbitl (literal)
+   but cannot constant-fold            __builtin_signbitl (variable).  */
+float vf;
+double vd;
+long double vl;
+int main ()
+{
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+   So we use -p0f and -p0d instead.  */
+float p0f = 0.0f;
+float m0f = -p0f;
+double p0d = 0.0;
+double m0d = -p0d;
+/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
+   So we use another constant expression instead.
+   But that expression does not work on other platforms, such as when
+   cross-compiling to PowerPC on Mac OS X 10.5.  */
+long double p0l = 0.0L;
+#if defined __hpux || defined __sgi
+long double m0l = -LDBL_MIN * LDBL_MIN;
+#else
+long double m0l = -p0l;
+#endif
+  int result = 0;
+  if (signbit (vf)) /* link check */
+    vf++;
+  {
+    float plus_inf = 1.0f / p0f;
+    float minus_inf = -1.0f / p0f;
+    if (!(!signbit (255.0f)
+          && signbit (-255.0f)
+          && !signbit (p0f)
+          && (memcmp (&m0f, &p0f, sizeof (float)) == 0 || signbit (m0f))
+          && !signbit (plus_inf)
+          && signbit (minus_inf)))
+      result |= 1;
+  }
+  if (signbit (vd)) /* link check */
+    vd++;
+  {
+    double plus_inf = 1.0 / p0d;
+    double minus_inf = -1.0 / p0d;
+    if (!(!signbit (255.0)
+          && signbit (-255.0)
+          && !signbit (p0d)
+          && (memcmp (&m0d, &p0d, sizeof (double)) == 0 || signbit (m0d))
+          && !signbit (plus_inf)
+          && signbit (minus_inf)))
+      result |= 2;
+  }
+  if (signbit (vl)) /* link check */
+    vl++;
+  {
+    long double plus_inf = 1.0L / p0l;
+    long double minus_inf = -1.0L / p0l;
+    if (signbit (255.0L))
+      result |= 4;
+    if (!signbit (-255.0L))
+      result |= 4;
+    if (signbit (p0l))
+      result |= 8;
+    if (!(memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l)))
+      result |= 16;
+    if (signbit (plus_inf))
+      result |= 32;
+    if (!signbit (minus_inf))
+      result |= 64;
+  }
+  return result;
+}
 
 
-
-$as_echo "#define GNULIB_TEST_STRNCAT 1" >>confdefs.h
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_signbit_gcc=yes
+else
+  gl_cv_func_signbit_gcc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_signbit_gcc" >&5
+$as_echo "$gl_cv_func_signbit_gcc" >&6; }
+      case "$gl_cv_func_signbit_gcc" in
+    *yes)
+      REPLACE_SIGNBIT_USING_GCC=1
+      ;;
+    *)
+      case "$gl_cv_func_signbit" in
+        *yes) ;;
+        *)
+                    REPLACE_SIGNBIT=1
 
-  # Code from module threadlib:
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'float'" >&5
+$as_echo_n "checking where to find the sign bit in a 'float'... " >&6; }
+if ${gl_cv_cc_float_signbit+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+      if test "$cross_compiling" = yes; then :
 
+                              gl_cv_cc_float_signbit="unknown"
 
-  # Code from module unicase/base:
-  # Code from module unicase/cased:
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  # Code from module unicase/empty-prefix-context:
-  # Code from module unicase/empty-suffix-context:
-  # Code from module unicase/ignorable:
+#include <stddef.h>
+#include <stdio.h>
+#define NWORDS \
+  ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { float value; unsigned int word[NWORDS]; }
+        memory_float;
+static memory_float plus = { 1.0f };
+static memory_float minus = { -1.0f };
+int main ()
+{
+  size_t j, k, i;
+  unsigned int m;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  /* Find the different bit.  */
+  k = 0; m = 0;
+  for (j = 0; j < NWORDS; j++)
+    {
+      unsigned int x = plus.word[j] ^ minus.word[j];
+      if ((x & (x - 1)) || (x && m))
+        {
+          /* More than one bit difference.  */
+          fprintf (fp, "unknown");
+          return 2;
+        }
+      if (x)
+        {
+          k = j;
+          m = x;
+        }
+    }
+  if (m == 0)
+    {
+      /* No difference.  */
+      fprintf (fp, "unknown");
+      return 3;
+    }
+  /* Now m = plus.word[k] ^ ~minus.word[k].  */
+  if (plus.word[k] & ~minus.word[k])
+    {
+      /* Oh? The sign bit is set in the positive and cleared in the negative
+         numbers?  */
+      fprintf (fp, "unknown");
+      return 4;
+    }
+  for (i = 0; ; i++)
+    if ((m >> i) & 1)
+      break;
+  fprintf (fp, "word %d bit %d", (int) k, (int) i);
+  if (fclose (fp) != 0)
+    return 5;
+  return 0;
+}
 
-  # Code from module unicase/locale-language:
-  # Code from module unicase/special-casing:
-  # Code from module unicase/tocasefold:
-  # Code from module unicase/tolower:
-  # Code from module unicase/totitle:
-  # Code from module unicase/toupper:
-  # Code from module unicase/u16-casecmp:
-  # Code from module unicase/u16-casecoll:
-  # Code from module unicase/u16-casefold:
-  # Code from module unicase/u16-casemap:
-  # Code from module unicase/u16-casexfrm:
-  # Code from module unicase/u16-ct-casefold:
-  # Code from module unicase/u16-ct-tolower:
-  # Code from module unicase/u16-ct-totitle:
-  # Code from module unicase/u16-ct-toupper:
-  # Code from module unicase/u16-is-cased:
-  # Code from module unicase/u16-is-casefolded:
-  # Code from module unicase/u16-is-invariant:
-  # Code from module unicase/u16-is-lowercase:
-  # Code from module unicase/u16-is-titlecase:
-  # Code from module unicase/u16-is-uppercase:
-  # Code from module unicase/u16-tolower:
-  # Code from module unicase/u16-totitle:
-  # Code from module unicase/u16-toupper:
-  # Code from module unicase/u32-casecmp:
-  # Code from module unicase/u32-casecoll:
-  # Code from module unicase/u32-casefold:
-  # Code from module unicase/u32-casemap:
-  # Code from module unicase/u32-casexfrm:
-  # Code from module unicase/u32-ct-casefold:
-  # Code from module unicase/u32-ct-tolower:
-  # Code from module unicase/u32-ct-totitle:
-  # Code from module unicase/u32-ct-toupper:
-  # Code from module unicase/u32-is-cased:
-  # Code from module unicase/u32-is-casefolded:
-  # Code from module unicase/u32-is-invariant:
-  # Code from module unicase/u32-is-lowercase:
-  # Code from module unicase/u32-is-titlecase:
-  # Code from module unicase/u32-is-uppercase:
-  # Code from module unicase/u32-tolower:
-  # Code from module unicase/u32-totitle:
-  # Code from module unicase/u32-toupper:
-  # Code from module unicase/u8-casecmp:
-  # Code from module unicase/u8-casecoll:
-  # Code from module unicase/u8-casefold:
-  # Code from module unicase/u8-casemap:
-  # Code from module unicase/u8-casexfrm:
-  # Code from module unicase/u8-ct-casefold:
-  # Code from module unicase/u8-ct-tolower:
-  # Code from module unicase/u8-ct-totitle:
-  # Code from module unicase/u8-ct-toupper:
-  # Code from module unicase/u8-is-cased:
-  # Code from module unicase/u8-is-casefolded:
-  # Code from module unicase/u8-is-invariant:
-  # Code from module unicase/u8-is-lowercase:
-  # Code from module unicase/u8-is-titlecase:
-  # Code from module unicase/u8-is-uppercase:
-  # Code from module unicase/u8-tolower:
-  # Code from module unicase/u8-totitle:
-  # Code from module unicase/u8-toupper:
-  # Code from module unicase/ulc-casecmp:
-  # Code from module unicase/ulc-casecoll:
-  # Code from module unicase/ulc-casexfrm:
-  # Code from module uniconv/base:
-  # Code from module uniconv/u16-conv-from-enc:
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_cc_float_signbit=`cat conftest.out`
+else
+  gl_cv_cc_float_signbit="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-  # Code from module uniconv/u16-conv-to-enc:
+      rm -f conftest.out
 
-  # Code from module uniconv/u16-strconv-from-enc:
-  # Code from module uniconv/u16-strconv-from-locale:
-  # Code from module uniconv/u16-strconv-to-enc:
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_signbit" >&5
+$as_echo "$gl_cv_cc_float_signbit" >&6; }
+  case "$gl_cv_cc_float_signbit" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_float_signbit" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_float_signbit" | sed -e 's/word.*bit //'`
 
-  # Code from module uniconv/u16-strconv-to-locale:
-  # Code from module uniconv/u32-conv-from-enc:
-  # Code from module uniconv/u32-conv-to-enc:
-  # Code from module uniconv/u32-strconv-from-enc:
-  # Code from module uniconv/u32-strconv-from-locale:
-  # Code from module uniconv/u32-strconv-to-enc:
-  # Code from module uniconv/u32-strconv-to-locale:
-  # Code from module uniconv/u8-conv-from-enc:
-  # Code from module uniconv/u8-conv-to-enc:
-  # Code from module uniconv/u8-strconv-from-enc:
-  # Code from module uniconv/u8-strconv-from-locale:
-  # Code from module uniconv/u8-strconv-to-enc:
-  # Code from module uniconv/u8-strconv-to-locale:
-  # Code from module unictype/base:
-  # Code from module unictype/bidicategory-all:
-  # Code from module unictype/bidicategory-byname:
-  # Code from module unictype/bidicategory-name:
-  # Code from module unictype/bidicategory-of:
-  # Code from module unictype/bidicategory-test:
-  # Code from module unictype/block-all:
-  # Code from module unictype/block-list:
-  # Code from module unictype/block-of:
-  # Code from module unictype/block-test:
-  # Code from module unictype/category-C:
-  # Code from module unictype/category-Cc:
-  # Code from module unictype/category-Cf:
-  # Code from module unictype/category-Cn:
-  # Code from module unictype/category-Co:
-  # Code from module unictype/category-Cs:
-  # Code from module unictype/category-L:
-  # Code from module unictype/category-Ll:
-  # Code from module unictype/category-Lm:
-  # Code from module unictype/category-Lo:
-  # Code from module unictype/category-Lt:
-  # Code from module unictype/category-Lu:
-  # Code from module unictype/category-M:
-  # Code from module unictype/category-Mc:
-  # Code from module unictype/category-Me:
-  # Code from module unictype/category-Mn:
-  # Code from module unictype/category-N:
-  # Code from module unictype/category-Nd:
-  # Code from module unictype/category-Nl:
-  # Code from module unictype/category-No:
-  # Code from module unictype/category-P:
-  # Code from module unictype/category-Pc:
-  # Code from module unictype/category-Pd:
-  # Code from module unictype/category-Pe:
-  # Code from module unictype/category-Pf:
-  # Code from module unictype/category-Pi:
-  # Code from module unictype/category-Po:
-  # Code from module unictype/category-Ps:
-  # Code from module unictype/category-S:
-  # Code from module unictype/category-Sc:
-  # Code from module unictype/category-Sk:
-  # Code from module unictype/category-Sm:
-  # Code from module unictype/category-So:
-  # Code from module unictype/category-Z:
-  # Code from module unictype/category-Zl:
-  # Code from module unictype/category-Zp:
-  # Code from module unictype/category-Zs:
-  # Code from module unictype/category-all:
-  # Code from module unictype/category-and:
-  # Code from module unictype/category-and-not:
-  # Code from module unictype/category-byname:
-  # Code from module unictype/category-name:
-  # Code from module unictype/category-none:
-  # Code from module unictype/category-of:
+cat >>confdefs.h <<_ACEOF
+#define FLT_SIGNBIT_WORD $word
+_ACEOF
 
-  # Code from module unictype/category-or:
-  # Code from module unictype/category-test:
 
-  # Code from module unictype/category-test-withtable:
-  # Code from module unictype/combining-class:
-  # Code from module unictype/ctype-alnum:
+cat >>confdefs.h <<_ACEOF
+#define FLT_SIGNBIT_BIT $bit
+_ACEOF
 
-  # Code from module unictype/ctype-alpha:
+      ;;
+  esac
 
-  # Code from module unictype/ctype-blank:
 
-  # Code from module unictype/ctype-cntrl:
 
-  # Code from module unictype/ctype-digit:
 
-  # Code from module unictype/ctype-graph:
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'double'" >&5
+$as_echo_n "checking where to find the sign bit in a 'double'... " >&6; }
+if ${gl_cv_cc_double_signbit+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-  # Code from module unictype/ctype-lower:
+      if test "$cross_compiling" = yes; then :
 
-  # Code from module unictype/ctype-print:
+                              gl_cv_cc_double_signbit="unknown"
 
-  # Code from module unictype/ctype-punct:
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  # Code from module unictype/ctype-space:
+#include <stddef.h>
+#include <stdio.h>
+#define NWORDS \
+  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; }
+        memory_float;
+static memory_float plus = { 1.0 };
+static memory_float minus = { -1.0 };
+int main ()
+{
+  size_t j, k, i;
+  unsigned int m;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  /* Find the different bit.  */
+  k = 0; m = 0;
+  for (j = 0; j < NWORDS; j++)
+    {
+      unsigned int x = plus.word[j] ^ minus.word[j];
+      if ((x & (x - 1)) || (x && m))
+        {
+          /* More than one bit difference.  */
+          fprintf (fp, "unknown");
+          return 2;
+        }
+      if (x)
+        {
+          k = j;
+          m = x;
+        }
+    }
+  if (m == 0)
+    {
+      /* No difference.  */
+      fprintf (fp, "unknown");
+      return 3;
+    }
+  /* Now m = plus.word[k] ^ ~minus.word[k].  */
+  if (plus.word[k] & ~minus.word[k])
+    {
+      /* Oh? The sign bit is set in the positive and cleared in the negative
+         numbers?  */
+      fprintf (fp, "unknown");
+      return 4;
+    }
+  for (i = 0; ; i++)
+    if ((m >> i) & 1)
+      break;
+  fprintf (fp, "word %d bit %d", (int) k, (int) i);
+  if (fclose (fp) != 0)
+    return 5;
+  return 0;
+}
 
-  # Code from module unictype/ctype-upper:
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_cc_double_signbit=`cat conftest.out`
+else
+  gl_cv_cc_double_signbit="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-  # Code from module unictype/ctype-xdigit:
+      rm -f conftest.out
 
-  # Code from module unictype/decimal-digit:
-  # Code from module unictype/digit:
-  # Code from module unictype/mirror:
-  # Code from module unictype/numeric:
-  # Code from module unictype/property-all:
-  # Code from module unictype/property-alphabetic:
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_signbit" >&5
+$as_echo "$gl_cv_cc_double_signbit" >&6; }
+  case "$gl_cv_cc_double_signbit" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_double_signbit" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_double_signbit" | sed -e 's/word.*bit //'`
 
-  # Code from module unictype/property-ascii-hex-digit:
+cat >>confdefs.h <<_ACEOF
+#define DBL_SIGNBIT_WORD $word
+_ACEOF
 
-  # Code from module unictype/property-bidi-arabic-digit:
 
-  # Code from module unictype/property-bidi-arabic-right-to-left:
+cat >>confdefs.h <<_ACEOF
+#define DBL_SIGNBIT_BIT $bit
+_ACEOF
 
-  # Code from module unictype/property-bidi-block-separator:
+      ;;
+  esac
 
-  # Code from module unictype/property-bidi-boundary-neutral:
 
-  # Code from module unictype/property-bidi-common-separator:
 
-  # Code from module unictype/property-bidi-control:
 
-  # Code from module unictype/property-bidi-embedding-or-override:
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the sign bit in a 'long double'" >&5
+$as_echo_n "checking where to find the sign bit in a 'long double'... " >&6; }
+if ${gl_cv_cc_long_double_signbit+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-  # Code from module unictype/property-bidi-eur-num-separator:
+      if test "$cross_compiling" = yes; then :
 
-  # Code from module unictype/property-bidi-eur-num-terminator:
+                              gl_cv_cc_long_double_signbit="unknown"
 
-  # Code from module unictype/property-bidi-european-digit:
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  # Code from module unictype/property-bidi-hebrew-right-to-left:
+#include <stddef.h>
+#include <stdio.h>
+#define NWORDS \
+  ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { long double value; unsigned int word[NWORDS]; }
+        memory_float;
+static memory_float plus = { 1.0L };
+static memory_float minus = { -1.0L };
+int main ()
+{
+  size_t j, k, i;
+  unsigned int m;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  /* Find the different bit.  */
+  k = 0; m = 0;
+  for (j = 0; j < NWORDS; j++)
+    {
+      unsigned int x = plus.word[j] ^ minus.word[j];
+      if ((x & (x - 1)) || (x && m))
+        {
+          /* More than one bit difference.  */
+          fprintf (fp, "unknown");
+          return 2;
+        }
+      if (x)
+        {
+          k = j;
+          m = x;
+        }
+    }
+  if (m == 0)
+    {
+      /* No difference.  */
+      fprintf (fp, "unknown");
+      return 3;
+    }
+  /* Now m = plus.word[k] ^ ~minus.word[k].  */
+  if (plus.word[k] & ~minus.word[k])
+    {
+      /* Oh? The sign bit is set in the positive and cleared in the negative
+         numbers?  */
+      fprintf (fp, "unknown");
+      return 4;
+    }
+  for (i = 0; ; i++)
+    if ((m >> i) & 1)
+      break;
+  fprintf (fp, "word %d bit %d", (int) k, (int) i);
+  if (fclose (fp) != 0)
+    return 5;
+  return 0;
+}
 
-  # Code from module unictype/property-bidi-left-to-right:
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_cc_long_double_signbit=`cat conftest.out`
+else
+  gl_cv_cc_long_double_signbit="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-  # Code from module unictype/property-bidi-non-spacing-mark:
+      rm -f conftest.out
 
-  # Code from module unictype/property-bidi-other-neutral:
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_long_double_signbit" >&5
+$as_echo "$gl_cv_cc_long_double_signbit" >&6; }
+  case "$gl_cv_cc_long_double_signbit" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_long_double_signbit" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_long_double_signbit" | sed -e 's/word.*bit //'`
 
-  # Code from module unictype/property-bidi-pdf:
+cat >>confdefs.h <<_ACEOF
+#define LDBL_SIGNBIT_WORD $word
+_ACEOF
 
-  # Code from module unictype/property-bidi-segment-separator:
 
-  # Code from module unictype/property-bidi-whitespace:
+cat >>confdefs.h <<_ACEOF
+#define LDBL_SIGNBIT_BIT $bit
+_ACEOF
 
-  # Code from module unictype/property-byname:
-  # Code from module unictype/property-combining:
+      ;;
+  esac
 
-  # Code from module unictype/property-composite:
 
-  # Code from module unictype/property-currency-symbol:
+          if test "$gl_cv_cc_float_signbit" = unknown; then
+                        ac_fn_c_check_decl "$LINENO" "copysignf" "ac_cv_have_decl_copysignf" "#include <math.h>
+"
+if test "x$ac_cv_have_decl_copysignf" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-  # Code from module unictype/property-dash:
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_COPYSIGNF $ac_have_decl
+_ACEOF
 
-  # Code from module unictype/property-decimal-digit:
+            if test "$ac_cv_have_decl_copysignf" = yes; then
+                            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysignf can be used without linking with libm" >&5
+$as_echo_n "checking whether copysignf can be used without linking with libm... " >&6; }
+if ${gl_cv_func_copysignf_no_libm+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-  # Code from module unictype/property-default-ignorable-code-point:
+                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+                         float x, y;
+int
+main ()
+{
+return copysignf (x, y) < 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_copysignf_no_libm=yes
+else
+  gl_cv_func_copysignf_no_libm=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-  # Code from module unictype/property-deprecated:
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_copysignf_no_libm" >&5
+$as_echo "$gl_cv_func_copysignf_no_libm" >&6; }
+              if test $gl_cv_func_copysignf_no_libm = yes; then
 
-  # Code from module unictype/property-diacritic:
+$as_echo "#define HAVE_COPYSIGNF_IN_LIBC 1" >>confdefs.h
 
-  # Code from module unictype/property-extender:
+              fi
+            fi
+          fi
+          if test "$gl_cv_cc_double_signbit" = unknown; then
+                        ac_fn_c_check_decl "$LINENO" "copysign" "ac_cv_have_decl_copysign" "#include <math.h>
+"
+if test "x$ac_cv_have_decl_copysign" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-  # Code from module unictype/property-format-control:
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_COPYSIGN $ac_have_decl
+_ACEOF
 
-  # Code from module unictype/property-grapheme-base:
+            if test "$ac_cv_have_decl_copysign" = yes; then
+                            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysign can be used without linking with libm" >&5
+$as_echo_n "checking whether copysign can be used without linking with libm... " >&6; }
+if ${gl_cv_func_copysign_no_libm+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-  # Code from module unictype/property-grapheme-extend:
+                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+                         double x, y;
+int
+main ()
+{
+return copysign (x, y) < 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_copysign_no_libm=yes
+else
+  gl_cv_func_copysign_no_libm=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-  # Code from module unictype/property-grapheme-link:
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_copysign_no_libm" >&5
+$as_echo "$gl_cv_func_copysign_no_libm" >&6; }
+              if test $gl_cv_func_copysign_no_libm = yes; then
 
-  # Code from module unictype/property-hex-digit:
+$as_echo "#define HAVE_COPYSIGN_IN_LIBC 1" >>confdefs.h
 
-  # Code from module unictype/property-hyphen:
+              fi
+            fi
+          fi
+          if test "$gl_cv_cc_long_double_signbit" = unknown; then
+                        ac_fn_c_check_decl "$LINENO" "copysignl" "ac_cv_have_decl_copysignl" "#include <math.h>
+"
+if test "x$ac_cv_have_decl_copysignl" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
-  # Code from module unictype/property-id-continue:
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_COPYSIGNL $ac_have_decl
+_ACEOF
 
-  # Code from module unictype/property-id-start:
+            if test "$ac_cv_have_decl_copysignl" = yes; then
+                            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether copysignl can be used without linking with libm" >&5
+$as_echo_n "checking whether copysignl can be used without linking with libm... " >&6; }
+if ${gl_cv_func_copysignl_no_libm+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-  # Code from module unictype/property-ideographic:
+                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+                         long double x, y;
+int
+main ()
+{
+return copysignl (x, y) < 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gl_cv_func_copysignl_no_libm=yes
+else
+  gl_cv_func_copysignl_no_libm=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-  # Code from module unictype/property-ids-binary-operator:
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_copysignl_no_libm" >&5
+$as_echo "$gl_cv_func_copysignl_no_libm" >&6; }
+              if test $gl_cv_func_copysignl_no_libm = yes; then
 
-  # Code from module unictype/property-ids-trinary-operator:
+$as_echo "#define HAVE_COPYSIGNL_IN_LIBC 1" >>confdefs.h
 
-  # Code from module unictype/property-ignorable-control:
+              fi
+            fi
+          fi
+          ;;
+      esac
+      ;;
+  esac
 
-  # Code from module unictype/property-iso-control:
+  if test $REPLACE_SIGNBIT = 1; then
 
-  # Code from module unictype/property-join-control:
 
-  # Code from module unictype/property-left-of-pair:
 
-  # Code from module unictype/property-line-separator:
 
-  # Code from module unictype/property-logical-order-exception:
 
-  # Code from module unictype/property-lowercase:
 
-  # Code from module unictype/property-math:
 
-  # Code from module unictype/property-non-break:
 
-  # Code from module unictype/property-not-a-character:
+  gl_LIBOBJS="$gl_LIBOBJS signbitf.$ac_objext"
 
-  # Code from module unictype/property-numeric:
 
-  # Code from module unictype/property-other-alphabetic:
 
-  # Code from module unictype/property-other-default-ignorable-code-point:
 
-  # Code from module unictype/property-other-grapheme-extend:
 
-  # Code from module unictype/property-other-id-continue:
 
-  # Code from module unictype/property-other-id-start:
 
-  # Code from module unictype/property-other-lowercase:
 
-  # Code from module unictype/property-other-math:
 
-  # Code from module unictype/property-other-uppercase:
+  gl_LIBOBJS="$gl_LIBOBJS signbitd.$ac_objext"
 
-  # Code from module unictype/property-paired-punctuation:
 
-  # Code from module unictype/property-paragraph-separator:
 
-  # Code from module unictype/property-pattern-syntax:
 
-  # Code from module unictype/property-pattern-white-space:
 
-  # Code from module unictype/property-private-use:
 
-  # Code from module unictype/property-punctuation:
 
-  # Code from module unictype/property-quotation-mark:
 
-  # Code from module unictype/property-radical:
 
-  # Code from module unictype/property-sentence-terminal:
+  gl_LIBOBJS="$gl_LIBOBJS signbitl.$ac_objext"
 
-  # Code from module unictype/property-soft-dotted:
+  fi
 
-  # Code from module unictype/property-space:
 
-  # Code from module unictype/property-terminal-punctuation:
 
-  # Code from module unictype/property-test:
-  # Code from module unictype/property-titlecase:
 
-  # Code from module unictype/property-unassigned-code-value:
 
-  # Code from module unictype/property-unified-ideograph:
+          GNULIB_SIGNBIT=1
 
-  # Code from module unictype/property-uppercase:
 
-  # Code from module unictype/property-variation-selector:
 
-  # Code from module unictype/property-white-space:
 
-  # Code from module unictype/property-xid-continue:
 
-  # Code from module unictype/property-xid-start:
+$as_echo "#define GNULIB_TEST_SIGNBIT 1" >>confdefs.h
 
-  # Code from module unictype/property-zero-width:
 
-  # Code from module unictype/scripts:
-  # Code from module unictype/scripts-all:
-  # Code from module unictype/syntax-c-ident:
 
-  # Code from module unictype/syntax-c-whitespace:
-  # Code from module unictype/syntax-java-ident:
 
-  # Code from module unictype/syntax-java-whitespace:
-  # Code from module unilbrk/base:
-  # Code from module unilbrk/tables:
+  for ac_header in stdint.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STDINT_H 1
+_ACEOF
 
-  # Code from module unilbrk/u16-possible-linebreaks:
-  # Code from module unilbrk/u16-width-linebreaks:
-  # Code from module unilbrk/u32-possible-linebreaks:
-  # Code from module unilbrk/u32-width-linebreaks:
-  # Code from module unilbrk/u8-possible-linebreaks:
-  # Code from module unilbrk/u8-width-linebreaks:
-  # Code from module unilbrk/ulc-common:
-  # Code from module unilbrk/ulc-possible-linebreaks:
-  # Code from module unilbrk/ulc-width-linebreaks:
-  # Code from module uniname/base:
-  # Code from module uniname/uniname:
-  # Code from module uninorm/base:
-  # Code from module uninorm/canonical-decomposition:
-  # Code from module uninorm/compat-decomposition:
-  # Code from module uninorm/composition:
-  # Code from module uninorm/decompose-internal:
-  # Code from module uninorm/decomposing-form:
-  # Code from module uninorm/decomposition:
-  # Code from module uninorm/decomposition-table:
+fi
 
-  # Code from module uninorm/filter:
-  # Code from module uninorm/nfc:
-  # Code from module uninorm/nfd:
-  # Code from module uninorm/nfkc:
-  # Code from module uninorm/nfkd:
-  # Code from module uninorm/u16-normalize:
+done
 
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5
+$as_echo_n "checking for SIZE_MAX... " >&6; }
+if ${gl_cv_size_max+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
-$as_echo "#define GNULIB_TEST_UNINORM_U16_NORMALIZE 1" >>confdefs.h
+    gl_cv_size_max=
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
 
-  # Code from module uninorm/u16-normcmp:
-  # Code from module uninorm/u16-normcoll:
-  # Code from module uninorm/u16-normxfrm:
-  # Code from module uninorm/u32-normalize:
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Found it" >/dev/null 2>&1; then :
+  gl_cv_size_max=yes
+fi
+rm -f conftest*
 
+    if test -z "$gl_cv_size_max"; then
+                        if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1"        "#include <stddef.h>
+#include <limits.h>"; then :
 
-$as_echo "#define GNULIB_TEST_UNINORM_U32_NORMALIZE 1" >>confdefs.h
+else
+  size_t_bits_minus_1=
+fi
 
+      if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint"        "#include <stddef.h>"; then :
 
-  # Code from module uninorm/u32-normcmp:
-  # Code from module uninorm/u32-normcoll:
-  # Code from module uninorm/u32-normxfrm:
-  # Code from module uninorm/u8-normalize:
+else
+  fits_in_uint=
+fi
+
+      if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
+        if test $fits_in_uint = 1; then
+                              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stddef.h>
+                 extern size_t foo;
+                 extern unsigned long foo;
 
+int
+main ()
+{
 
-$as_echo "#define GNULIB_TEST_UNINORM_U8_NORMALIZE 1" >>confdefs.h
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  fits_in_uint=0
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        fi
+                                if test $fits_in_uint = 1; then
+          gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
+        else
+          gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
+        fi
+      else
+                gl_cv_size_max='((size_t)~(size_t)0)'
+      fi
+    fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5
+$as_echo "$gl_cv_size_max" >&6; }
+  if test "$gl_cv_size_max" != yes; then
 
-  # Code from module uninorm/u8-normcmp:
-  # Code from module uninorm/u8-normcoll:
-  # Code from module uninorm/u8-normxfrm:
-  # Code from module unistd:
+cat >>confdefs.h <<_ACEOF
+#define SIZE_MAX $gl_cv_size_max
+_ACEOF
+
+  fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
+$as_echo_n "checking for ssize_t... " >&6; }
+if ${gt_cv_ssize_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+int
+main ()
+{
+int x = sizeof (ssize_t *) + sizeof (ssize_t);
+            return !x;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_ssize_t=yes
+else
+  gt_cv_ssize_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5
+$as_echo "$gt_cv_ssize_t" >&6; }
+  if test $gt_cv_ssize_t = no; then
+
+$as_echo "#define ssize_t int" >>confdefs.h
+
+  fi
+
+
+
+
+  # Define two additional variables used in the Makefile substitution.
+
+  if test "$ac_cv_header_stdbool_h" = yes; then
+    STDBOOL_H=''
+  else
+    STDBOOL_H='stdbool.h'
+  fi
+
+   if test -n "$STDBOOL_H"; then
+  GL_GENERATE_STDBOOL_H_TRUE=
+  GL_GENERATE_STDBOOL_H_FALSE='#'
+else
+  GL_GENERATE_STDBOOL_H_TRUE='#'
+  GL_GENERATE_STDBOOL_H_FALSE=
+fi
+
+
+  if test "$ac_cv_type__Bool" = yes; then
+    HAVE__BOOL=1
+  else
+    HAVE__BOOL=0
+  fi
+
+
+
+
+
+  STDDEF_H=
+  if test $gt_cv_c_wchar_t = no; then
+    HAVE_WCHAR_T=0
+    STDDEF_H=stddef.h
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
+$as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; }
+if ${gl_cv_decl_null_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stddef.h>
+      int test[2 * (sizeof NULL == sizeof (void *)) -1];
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_decl_null_works=yes
+else
+  gl_cv_decl_null_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5
+$as_echo "$gl_cv_decl_null_works" >&6; }
+  if test $gl_cv_decl_null_works = no; then
+    REPLACE_NULL=1
+    STDDEF_H=stddef.h
+  fi
 
+   if test -n "$STDDEF_H"; then
+  GL_GENERATE_STDDEF_H_TRUE=
+  GL_GENERATE_STDDEF_H_FALSE='#'
+else
+  GL_GENERATE_STDDEF_H_TRUE='#'
+  GL_GENERATE_STDDEF_H_FALSE=
+fi
 
+  if test -n "$STDDEF_H"; then
 
 
 
@@ -24967,80 +29649,161 @@ $as_echo "#define GNULIB_TEST_UNINORM_U8_NORMALIZE 1" >>confdefs.h
 
 
      if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_unistd_h='<'unistd.h'>'
+       gl_cv_next_stddef_h='<'stddef.h'>'
      else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <unistd.h>" >&5
-$as_echo_n "checking absolute name of <unistd.h>... " >&6; }
-if test "${gl_cv_next_unistd_h+set}" = set; then :
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
+$as_echo_n "checking absolute name of <stddef.h>... " >&6; }
+if ${gl_cv_next_stddef_h+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
-          if test $ac_cv_header_unistd_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <unistd.h>
 
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stddef.h>
 _ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/unistd.h#{
-                 s#.*"\(.*/unistd.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
-          else
-            gl_cv_next_unistd_h='<'unistd.h'>'
-          fi
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'stddef.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_stddef_h
+           gl_cv_next_stddef_h='"'$gl_header'"'
+
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5
-$as_echo "$gl_cv_next_unistd_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5
+$as_echo "$gl_cv_next_stddef_h" >&6; }
      fi
-     NEXT_UNISTD_H=$gl_cv_next_unistd_h
+     NEXT_STDDEF_H=$gl_cv_next_stddef_h
 
      if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'unistd.h'>'
+       gl_next_as_first_directive='<'stddef.h'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_unistd_h
+       gl_next_as_first_directive=$gl_cv_next_stddef_h
      fi
-     NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive
-
+     NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive
 
 
 
 
-  if test $ac_cv_header_unistd_h = yes; then
-    HAVE_UNISTD_H=1
-  else
-    HAVE_UNISTD_H=0
   fi
 
 
 
-    for gl_func in chown dup2 dup3 environ euidaccess faccessat fchdir fchownat     fsync ftruncate getcwd getdomainname getdtablesize getgroups     gethostname getlogin getlogin_r getpagesize getusershell setusershell     endusershell lchown link linkat lseek pipe2 pread readlink readlinkat     rmdir sleep symlink symlinkat ttyname_r unlink unlinkat usleep; do
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_stdlib_h='<'stdlib.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdlib.h>" >&5
+$as_echo_n "checking absolute name of <stdlib.h>... " >&6; }
+if ${gl_cv_next_stdlib_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'stdlib.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_stdlib_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_stdlib_h
+           gl_cv_next_stdlib_h='"'$gl_header'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5
+$as_echo "$gl_cv_next_stdlib_h" >&6; }
+     fi
+     NEXT_STDLIB_H=$gl_cv_next_stdlib_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'stdlib.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_stdlib_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive
+
+
+
+
+
+
+    for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt     initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps     posix_openpt ptsname ptsname_r random random_r realpath rpmatch     secure_getenv setenv setstate setstate_r srandom srandom_r     strtod strtoll strtoull unlockpt unsetenv; do
     as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$as_gl_Symbol+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <unistd.h>
-/* Some systems declare various items in the wrong headers.  */
-#ifndef __GLIBC__
-# include <fcntl.h>
-# include <stdio.h>
-# include <stdlib.h>
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-#  include <io.h>
-# endif
+#include <stdlib.h>
+#if HAVE_SYS_LOADAVG_H
+# include <sys/loadavg.h>
+#endif
+#if HAVE_RANDOM_H
+# include <random.h>
 #endif
 
 int
@@ -25062,8 +29825,7 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-     eval as_val=\$$as_gl_Symbol
-   if test "x$as_val" = x""yes; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
       done
 
 
-  # Code from module unistdio/base:
-  # Code from module unistdio/u-printf-args:
-
-
-
+  if test $gl_cond_libtool = false; then
+    gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV"
+    gl_libdeps="$gl_libdeps $LIBICONV"
+  fi
 
 
-  # Code from module unistdio/u16-asnprintf:
-  # Code from module unistdio/u16-asprintf:
-  # Code from module unistdio/u16-printf-parse:
 
 
+  if test $REPLACE_STRNCAT = 1; then
 
 
 
-  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then :
 
-else
 
-$as_echo "#define ptrdiff_t long" >>confdefs.h
 
 
-fi
 
+  gl_LIBOBJS="$gl_LIBOBJS strncat.$ac_objext"
 
 
-  # Code from module unistdio/u16-snprintf:
-  # Code from module unistdio/u16-sprintf:
-  # Code from module unistdio/u16-u16-asnprintf:
-  # Code from module unistdio/u16-u16-asprintf:
-  # Code from module unistdio/u16-u16-snprintf:
-  # Code from module unistdio/u16-u16-sprintf:
-  # Code from module unistdio/u16-u16-vasnprintf:
+  :
 
+  fi
 
 
 
 
-  case "$gl_cv_func_printf_infinite" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
+          GNULIB_STRNCAT=1
 
-      ;;
-  esac
 
 
 
 
-  case "$gl_cv_func_printf_long_double" in
-    *yes)
-      case "$gl_cv_func_printf_infinite_long_double" in
-        *yes)
-          ;;
-        *)
+$as_echo "#define GNULIB_TEST_STRNCAT 1" >>confdefs.h
 
-$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
 
-          ;;
-      esac
-      ;;
-  esac
 
 
 
-  case "$gl_cv_func_printf_directive_a" in
-    *yes)
-      ;;
-    *)
+  if test $REPLACE_STRSTR = 0; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works in linear time" >&5
+$as_echo_n "checking whether strstr works in linear time... " >&6; }
+if ${gl_cv_func_strstr_linear+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+                             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     && !(defined __i386__ || defined __x86_64__) \
+     && !defined __UCLIBC__
+  Lucky user
+ #endif
+#endif
+#ifdef __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
+  Lucky user
+ #endif
+#endif
 
-      for ac_func in nl_langinfo
-do :
-  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
-if test "x$ac_cv_func_nl_langinfo" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_NL_LANGINFO 1
 _ACEOF
-
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky user" >/dev/null 2>&1; then :
+  gl_cv_func_strstr_linear="guessing yes"
+else
+  gl_cv_func_strstr_linear="guessing no"
 fi
-done
-
-      ;;
-  esac
-
+rm -f conftest*
 
 
-  case "$gl_cv_func_printf_directive_f" in
-    *yes)
-      ;;
-    *)
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
+#include <signal.h> /* for signal */
+#include <string.h> /* for strstr */
+#include <stdlib.h> /* for malloc */
+#include <unistd.h> /* for alarm */
+static void quit (int sig) { exit (sig + 128); }
 
-      ;;
-  esac
+int
+main ()
+{
 
+    int result = 0;
+    size_t m = 1000000;
+    char *haystack = (char *) malloc (2 * m + 2);
+    char *needle = (char *) malloc (m + 2);
+    /* Failure to compile this test due to missing alarm is okay,
+       since all such platforms (mingw) also have quadratic strstr.  */
+    signal (SIGALRM, quit);
+    alarm (5);
+    /* Check for quadratic performance.  */
+    if (haystack && needle)
+      {
+        memset (haystack, 'A', 2 * m);
+        haystack[2 * m] = 'B';
+        haystack[2 * m + 1] = 0;
+        memset (needle, 'A', m);
+        needle[m] = 'B';
+        needle[m + 1] = 0;
+        if (!strstr (haystack, needle))
+          result |= 1;
+      }
+    return result;
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_strstr_linear=yes
+else
+  gl_cv_func_strstr_linear=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-  case "$gl_cv_func_printf_directive_ls" in
-    *yes)
-      ;;
-    *)
-
-$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
 
-      ;;
-  esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_linear" >&5
+$as_echo "$gl_cv_func_strstr_linear" >&6; }
+    case "$gl_cv_func_strstr_linear" in
+      *yes) ;;
+      *)
+        REPLACE_STRSTR=1
+        ;;
+    esac
+  fi
 
+  if test $REPLACE_STRSTR = 1; then
 
 
-  case "$gl_cv_func_printf_flag_grouping" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
 
-      ;;
-  esac
 
 
 
-  case "$gl_cv_func_printf_flag_leftadjust" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
+  gl_LIBOBJS="$gl_LIBOBJS strstr.$ac_objext"
 
-      ;;
-  esac
+  fi
 
 
 
-  case "$gl_cv_func_printf_flag_zero" in
-    *yes)
-      ;;
-    *)
+  if test "$gl_cv_func_memchr_works" != yes; then
+    REPLACE_STRSTR=1
+  else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strstr works" >&5
+$as_echo_n "checking whether strstr works... " >&6; }
+if ${gl_cv_func_strstr_works_always+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+                                               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
+#ifdef __GNU_LIBRARY__
+ #include <features.h>
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     || defined __UCLIBC__
+  Lucky user
+ #endif
+#elif defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
+  Lucky user
+ #endif
+#else
+  Lucky user
+#endif
 
-      ;;
-  esac
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky user" >/dev/null 2>&1; then :
+  gl_cv_func_strstr_works_always="guessing yes"
+else
+  gl_cv_func_strstr_works_always="guessing no"
+fi
+rm -f conftest*
 
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  case "$gl_cv_func_printf_precision" in
-    *yes)
-      ;;
-    *)
+#include <string.h> /* for strstr */
+#define P "_EF_BF_BD"
+#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P
+#define NEEDLE P P P P P
 
-$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
+int
+main ()
+{
+return !!strstr (HAYSTACK, NEEDLE);
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_strstr_works_always=yes
+else
+  gl_cv_func_strstr_works_always=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strstr_works_always" >&5
+$as_echo "$gl_cv_func_strstr_works_always" >&6; }
+    case "$gl_cv_func_strstr_works_always" in
+      *yes) ;;
+      *)
+        REPLACE_STRSTR=1
+        ;;
+    esac
+  fi
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+  if test $REPLACE_STRSTR = 1; then
 
-      ;;
-  esac
 
 
 
-  case "$gl_cv_func_printf_enomem" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
+  gl_LIBOBJS="$gl_LIBOBJS strstr.$ac_objext"
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+  fi
 
-      ;;
-  esac
 
 
-  # Code from module unistdio/u16-u16-vasprintf:
-  # Code from module unistdio/u16-u16-vsnprintf:
-  # Code from module unistdio/u16-u16-vsprintf:
-  # Code from module unistdio/u16-vasnprintf:
 
 
+          GNULIB_STRSTR=1
 
 
 
-  case "$gl_cv_func_printf_infinite" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
+$as_echo "#define GNULIB_TEST_STRSTR 1" >>confdefs.h
 
 
 
 
-  case "$gl_cv_func_printf_long_double" in
-    *yes)
-      case "$gl_cv_func_printf_infinite_long_double" in
-        *yes)
-          ;;
-        *)
 
-$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
 
-          ;;
-      esac
-      ;;
-  esac
 
 
 
-  case "$gl_cv_func_printf_directive_a" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
 
-      for ac_func in nl_langinfo
-do :
-  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
-if test "x$ac_cv_func_nl_langinfo" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_NL_LANGINFO 1
-_ACEOF
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-fi
-done
 
-      ;;
-  esac
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 1
+                         }
+                    }
+               }
 
 
-  case "$gl_cv_func_printf_directive_f" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
 
-      ;;
-  esac
+       }
+  }; then
+    LIBUNISTRING_UNICASE_H='unicase.h'
+  else
+    LIBUNISTRING_UNICASE_H=
+  fi
 
 
 
-  case "$gl_cv_func_printf_directive_ls" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
 
-      ;;
-  esac
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  case "$gl_cv_func_printf_flag_grouping" in
-    *yes)
-      ;;
-    *)
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 1
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
 
-      ;;
-  esac
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_FALSE=
+fi
 
-  case "$gl_cv_func_printf_flag_leftadjust" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
 
-      ;;
-  esac
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
-  case "$gl_cv_func_printf_flag_zero" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 1
+                         }
+                    }
+               }
 
-      ;;
-  esac
 
 
 
-  case "$gl_cv_func_printf_precision" in
-    *yes)
-      ;;
-    *)
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_FALSE=
+fi
 
-$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-      ;;
-  esac
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 3
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_enomem" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_FALSE=
+fi
 
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  # Code from module unistdio/u16-vasprintf:
-  # Code from module unistdio/u16-vsnprintf:
-  # Code from module unistdio/u16-vsprintf:
-  # Code from module unistdio/u32-asnprintf:
-  # Code from module unistdio/u32-asprintf:
-  # Code from module unistdio/u32-printf-parse:
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then :
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_TOLOWER_FALSE='#'
 else
-
-$as_echo "#define ptrdiff_t long" >>confdefs.h
-
-
+  LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_TOLOWER_FALSE=
 fi
 
 
 
-  # Code from module unistdio/u32-snprintf:
-  # Code from module unistdio/u32-sprintf:
-  # Code from module unistdio/u32-u32-asnprintf:
-  # Code from module unistdio/u32-u32-asprintf:
-  # Code from module unistdio/u32-u32-snprintf:
-  # Code from module unistdio/u32-u32-sprintf:
-  # Code from module unistdio/u32-u32-vasnprintf:
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_infinite" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_TOTITLE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_TOTITLE_FALSE=
+fi
 
 
 
-  case "$gl_cv_func_printf_long_double" in
-    *yes)
-      case "$gl_cv_func_printf_infinite_long_double" in
-        *yes)
-          ;;
-        *)
 
-$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-          ;;
-      esac
-      ;;
-  esac
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_directive_a" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
 
-      for ac_func in nl_langinfo
-do :
-  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
-if test "x$ac_cv_func_nl_langinfo" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_NL_LANGINFO 1
-_ACEOF
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_TOUPPER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_TOUPPER_FALSE=
 fi
-done
 
-      ;;
-  esac
 
 
 
-  case "$gl_cv_func_printf_directive_f" in
-    *yes)
-      ;;
-    *)
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
 
-      ;;
-  esac
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-  case "$gl_cv_func_printf_directive_ls" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
 
-      ;;
-  esac
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_FALSE=
+fi
 
 
 
-  case "$gl_cv_func_printf_flag_grouping" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-      ;;
-  esac
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_flag_leftadjust" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
 
-      ;;
-  esac
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_FALSE=
+fi
 
 
-  case "$gl_cv_func_printf_flag_zero" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
 
-      ;;
-  esac
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  case "$gl_cv_func_printf_precision" in
-    *yes)
-      ;;
-    *)
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_FALSE=
+fi
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  case "$gl_cv_func_printf_enomem" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_FALSE=
+fi
 
 
-  # Code from module unistdio/u32-u32-vasprintf:
-  # Code from module unistdio/u32-u32-vsnprintf:
-  # Code from module unistdio/u32-u32-vsprintf:
-  # Code from module unistdio/u32-vasnprintf:
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  case "$gl_cv_func_printf_infinite" in
-    *yes)
-      ;;
-    *)
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_FALSE=
+fi
 
 
-  case "$gl_cv_func_printf_long_double" in
-    *yes)
-      case "$gl_cv_func_printf_infinite_long_double" in
-        *yes)
-          ;;
-        *)
 
-$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
 
-          ;;
-      esac
-      ;;
-  esac
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  case "$gl_cv_func_printf_directive_a" in
-    *yes)
-      ;;
-    *)
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
 
-      for ac_func in nl_langinfo
-do :
-  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
-if test "x$ac_cv_func_nl_langinfo" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_NL_LANGINFO 1
-_ACEOF
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_FALSE=
 fi
-done
 
-      ;;
-  esac
 
 
 
-  case "$gl_cv_func_printf_directive_f" in
-    *yes)
-      ;;
-    *)
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
 
-      ;;
-  esac
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-  case "$gl_cv_func_printf_directive_ls" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
 
-      ;;
-  esac
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_FALSE=
+fi
 
 
 
-  case "$gl_cv_func_printf_flag_grouping" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-      ;;
-  esac
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_flag_leftadjust" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
 
-      ;;
-  esac
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_FALSE=
+fi
 
 
-  case "$gl_cv_func_printf_flag_zero" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
 
-      ;;
-  esac
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  case "$gl_cv_func_printf_precision" in
-    *yes)
-      ;;
-    *)
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_FALSE=
+fi
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  case "$gl_cv_func_printf_enomem" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_FALSE=
+fi
 
 
-  # Code from module unistdio/u32-vasprintf:
-  # Code from module unistdio/u32-vsnprintf:
-  # Code from module unistdio/u32-vsprintf:
-  # Code from module unistdio/u8-asnprintf:
-  # Code from module unistdio/u8-asprintf:
-  # Code from module unistdio/u8-printf-parse:
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-else
 
-$as_echo "#define ptrdiff_t long" >>confdefs.h
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_FALSE=
 fi
 
 
 
-  # Code from module unistdio/u8-snprintf:
-  # Code from module unistdio/u8-sprintf:
-  # Code from module unistdio/u8-u8-asnprintf:
-  # Code from module unistdio/u8-u8-asprintf:
-  # Code from module unistdio/u8-u8-snprintf:
-  # Code from module unistdio/u8-u8-sprintf:
-  # Code from module unistdio/u8-u8-vasnprintf:
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_infinite" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_FALSE=
+fi
 
 
 
-  case "$gl_cv_func_printf_long_double" in
-    *yes)
-      case "$gl_cv_func_printf_infinite_long_double" in
-        *yes)
-          ;;
-        *)
 
-$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-          ;;
-      esac
-      ;;
-  esac
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_directive_a" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
 
-      for ac_func in nl_langinfo
-do :
-  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
-if test "x$ac_cv_func_nl_langinfo" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_NL_LANGINFO 1
-_ACEOF
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_FALSE=
 fi
-done
 
-      ;;
-  esac
 
 
 
-  case "$gl_cv_func_printf_directive_f" in
-    *yes)
-      ;;
-    *)
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
 
-      ;;
-  esac
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-  case "$gl_cv_func_printf_directive_ls" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
 
-      ;;
-  esac
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_FALSE=
+fi
 
 
 
-  case "$gl_cv_func_printf_flag_grouping" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-      ;;
-  esac
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_flag_leftadjust" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
 
-      ;;
-  esac
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_FALSE=
+fi
 
 
-  case "$gl_cv_func_printf_flag_zero" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
 
-      ;;
-  esac
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  case "$gl_cv_func_printf_precision" in
-    *yes)
-      ;;
-    *)
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_FALSE=
+fi
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  case "$gl_cv_func_printf_enomem" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_FALSE=
+fi
 
 
-  # Code from module unistdio/u8-u8-vasprintf:
-  # Code from module unistdio/u8-u8-vsnprintf:
-  # Code from module unistdio/u8-u8-vsprintf:
-  # Code from module unistdio/u8-vasnprintf:
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  case "$gl_cv_func_printf_infinite" in
-    *yes)
-      ;;
-    *)
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_FALSE=
+fi
 
 
-  case "$gl_cv_func_printf_long_double" in
-    *yes)
-      case "$gl_cv_func_printf_infinite_long_double" in
-        *yes)
-          ;;
-        *)
 
-$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
 
-          ;;
-      esac
-      ;;
-  esac
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  case "$gl_cv_func_printf_directive_a" in
-    *yes)
-      ;;
-    *)
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
 
-      for ac_func in nl_langinfo
-do :
-  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
-if test "x$ac_cv_func_nl_langinfo" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_NL_LANGINFO 1
-_ACEOF
 
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_FALSE=
 fi
-done
 
-      ;;
-  esac
 
 
 
-  case "$gl_cv_func_printf_directive_f" in
-    *yes)
-      ;;
-    *)
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
 
-      ;;
-  esac
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-  case "$gl_cv_func_printf_directive_ls" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
 
-      ;;
-  esac
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_FALSE=
+fi
 
 
 
-  case "$gl_cv_func_printf_flag_grouping" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-      ;;
-  esac
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_flag_leftadjust" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
 
-      ;;
-  esac
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_FALSE=
+fi
 
 
-  case "$gl_cv_func_printf_flag_zero" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
 
-      ;;
-  esac
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  case "$gl_cv_func_printf_precision" in
-    *yes)
-      ;;
-    *)
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_FALSE=
+fi
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  case "$gl_cv_func_printf_enomem" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_FALSE=
+fi
 
 
-  # Code from module unistdio/u8-vasprintf:
-  # Code from module unistdio/u8-vsnprintf:
-  # Code from module unistdio/u8-vsprintf:
-  # Code from module unistdio/ulc-asnprintf:
-  # Code from module unistdio/ulc-asprintf:
-  # Code from module unistdio/ulc-fprintf:
-  # Code from module unistdio/ulc-printf-parse:
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-else
 
-$as_echo "#define ptrdiff_t long" >>confdefs.h
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_FALSE=
 fi
 
 
 
-  # Code from module unistdio/ulc-snprintf:
-  # Code from module unistdio/ulc-sprintf:
-  # Code from module unistdio/ulc-vasnprintf:
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_infinite" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_FALSE=
+fi
 
 
 
-  case "$gl_cv_func_printf_long_double" in
-    *yes)
-      case "$gl_cv_func_printf_infinite_long_double" in
-        *yes)
-          ;;
-        *)
 
-$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-          ;;
-      esac
-      ;;
-  esac
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_directive_a" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
 
-      for ac_func in nl_langinfo
-do :
-  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
-if test "x$ac_cv_func_nl_langinfo" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_NL_LANGINFO 1
-_ACEOF
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_FALSE=
 fi
-done
 
-      ;;
-  esac
 
 
 
-  case "$gl_cv_func_printf_directive_f" in
-    *yes)
-      ;;
-    *)
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
 
-      ;;
-  esac
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-  case "$gl_cv_func_printf_directive_ls" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
 
-      ;;
-  esac
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_FALSE=
+fi
 
 
 
-  case "$gl_cv_func_printf_flag_grouping" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-      ;;
-  esac
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  case "$gl_cv_func_printf_flag_leftadjust" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
 
-      ;;
-  esac
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_FALSE=
+fi
 
 
-  case "$gl_cv_func_printf_flag_zero" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
 
-      ;;
-  esac
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  case "$gl_cv_func_printf_precision" in
-    *yes)
-      ;;
-    *)
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_FALSE=
+fi
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  case "$gl_cv_func_printf_enomem" in
-    *yes)
-      ;;
-    *)
 
-$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
 
 
-$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
 
-      ;;
-  esac
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_FALSE=
+fi
 
 
-  # Code from module unistdio/ulc-vasprintf:
-  # Code from module unistdio/ulc-vfprintf:
-  # Code from module unistdio/ulc-vsnprintf:
-  # Code from module unistdio/ulc-vsprintf:
-  # Code from module unistr/base:
-  # Code from module unistr/u16-check:
-  # Code from module unistr/u16-chr:
-  # Code from module unistr/u16-cmp:
-  # Code from module unistr/u16-cmp2:
-  # Code from module unistr/u16-cpy:
-  # Code from module unistr/u16-cpy-alloc:
-  # Code from module unistr/u16-endswith:
-  # Code from module unistr/u16-mblen:
-  # Code from module unistr/u16-mbsnlen:
-  # Code from module unistr/u16-mbtouc:
 
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U16_MBTOUC 1
-_ACEOF
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
-  # Code from module unistr/u16-mbtouc-unsafe:
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U16_MBTOUC_UNSAFE 1
-_ACEOF
 
 
-  # Code from module unistr/u16-mbtoucr:
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_FALSE=
+fi
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U16_MBTOUCR 1
-_ACEOF
 
 
-  # Code from module unistr/u16-move:
-  # Code from module unistr/u16-next:
-  # Code from module unistr/u16-prev:
-  # Code from module unistr/u16-set:
-  # Code from module unistr/u16-startswith:
-  # Code from module unistr/u16-stpcpy:
-  # Code from module unistr/u16-stpncpy:
-  # Code from module unistr/u16-strcat:
-  # Code from module unistr/u16-strchr:
-  # Code from module unistr/u16-strcmp:
-  # Code from module unistr/u16-strcoll:
-  # Code from module unistr/u16-strcpy:
-  # Code from module unistr/u16-strcspn:
-  # Code from module unistr/u16-strdup:
-  # Code from module unistr/u16-strlen:
-  # Code from module unistr/u16-strmblen:
-  # Code from module unistr/u16-strmbtouc:
-  # Code from module unistr/u16-strncat:
-  # Code from module unistr/u16-strncmp:
-  # Code from module unistr/u16-strncpy:
-  # Code from module unistr/u16-strnlen:
-  # Code from module unistr/u16-strpbrk:
-  # Code from module unistr/u16-strrchr:
-  # Code from module unistr/u16-strspn:
-  # Code from module unistr/u16-strstr:
-  # Code from module unistr/u16-strtok:
-  # Code from module unistr/u16-to-u32:
-  # Code from module unistr/u16-to-u8:
-  # Code from module unistr/u16-uctomb:
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U16_UCTOMB 1
-_ACEOF
 
 
-  # Code from module unistr/u32-check:
-  # Code from module unistr/u32-chr:
-  # Code from module unistr/u32-cmp:
-  # Code from module unistr/u32-cmp2:
-  # Code from module unistr/u32-cpy:
-  # Code from module unistr/u32-cpy-alloc:
-  # Code from module unistr/u32-endswith:
-  # Code from module unistr/u32-mblen:
-  # Code from module unistr/u32-mbsnlen:
-  # Code from module unistr/u32-mbtouc:
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U32_MBTOUC 1
-_ACEOF
 
 
-  # Code from module unistr/u32-mbtouc-unsafe:
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_FALSE=
+fi
 
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U32_MBTOUC_UNSAFE 1
-_ACEOF
 
 
-  # Code from module unistr/u32-mbtoucr:
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U32_MBTOUCR 1
-_ACEOF
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  # Code from module unistr/u32-move:
-  # Code from module unistr/u32-next:
-  # Code from module unistr/u32-prev:
-  # Code from module unistr/u32-set:
-  # Code from module unistr/u32-startswith:
-  # Code from module unistr/u32-stpcpy:
-  # Code from module unistr/u32-stpncpy:
-  # Code from module unistr/u32-strcat:
-  # Code from module unistr/u32-strchr:
-  # Code from module unistr/u32-strcmp:
-  # Code from module unistr/u32-strcoll:
-  # Code from module unistr/u32-strcpy:
-  # Code from module unistr/u32-strcspn:
-  # Code from module unistr/u32-strdup:
-  # Code from module unistr/u32-strlen:
-  # Code from module unistr/u32-strmblen:
-  # Code from module unistr/u32-strmbtouc:
-  # Code from module unistr/u32-strncat:
-  # Code from module unistr/u32-strncmp:
-  # Code from module unistr/u32-strncpy:
-  # Code from module unistr/u32-strnlen:
-  # Code from module unistr/u32-strpbrk:
-  # Code from module unistr/u32-strrchr:
-  # Code from module unistr/u32-strspn:
-  # Code from module unistr/u32-strstr:
-  # Code from module unistr/u32-strtok:
-  # Code from module unistr/u32-to-u16:
-  # Code from module unistr/u32-to-u8:
-  # Code from module unistr/u32-uctomb:
 
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U32_UCTOMB 1
-_ACEOF
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_FALSE=
+fi
 
 
-  # Code from module unistr/u8-check:
-  # Code from module unistr/u8-chr:
-  # Code from module unistr/u8-cmp:
-  # Code from module unistr/u8-cmp2:
-  # Code from module unistr/u8-cpy:
-  # Code from module unistr/u8-cpy-alloc:
-  # Code from module unistr/u8-endswith:
-  # Code from module unistr/u8-mblen:
-  # Code from module unistr/u8-mbsnlen:
-  # Code from module unistr/u8-mbtouc:
 
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U8_MBTOUC 1
-_ACEOF
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
-  # Code from module unistr/u8-mbtouc-unsafe:
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U8_MBTOUC_UNSAFE 1
-_ACEOF
 
 
-  # Code from module unistr/u8-mbtoucr:
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_FALSE=
+fi
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U8_MBTOUCR 1
-_ACEOF
 
 
-  # Code from module unistr/u8-move:
-  # Code from module unistr/u8-next:
-  # Code from module unistr/u8-prev:
-  # Code from module unistr/u8-set:
-  # Code from module unistr/u8-startswith:
-  # Code from module unistr/u8-stpcpy:
 
-  # Code from module unistr/u8-stpncpy:
-  # Code from module unistr/u8-strcat:
-  # Code from module unistr/u8-strchr:
-  # Code from module unistr/u8-strcmp:
-  # Code from module unistr/u8-strcoll:
-  # Code from module unistr/u8-strcpy:
-  # Code from module unistr/u8-strcspn:
-  # Code from module unistr/u8-strdup:
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  # Code from module unistr/u8-strlen:
-  # Code from module unistr/u8-strmblen:
-  # Code from module unistr/u8-strmbtouc:
-  # Code from module unistr/u8-strncat:
-  # Code from module unistr/u8-strncmp:
-  # Code from module unistr/u8-strncpy:
-  # Code from module unistr/u8-strnlen:
-  # Code from module unistr/u8-strpbrk:
-  # Code from module unistr/u8-strrchr:
-  # Code from module unistr/u8-strspn:
-  # Code from module unistr/u8-strstr:
-  # Code from module unistr/u8-strtok:
-  # Code from module unistr/u8-to-u16:
-  # Code from module unistr/u8-to-u32:
-  # Code from module unistr/u8-uctomb:
 
 
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_UNISTR_U8_UCTOMB 1
-_ACEOF
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-  # Code from module unitypes:
-  # Code from module uniwbrk/base:
-  # Code from module uniwbrk/table:
-  # Code from module uniwbrk/u16-wordbreaks:
-  # Code from module uniwbrk/u32-wordbreaks:
-  # Code from module uniwbrk/u8-wordbreaks:
-  # Code from module uniwbrk/ulc-wordbreaks:
-  # Code from module uniwbrk/wordbreak-property:
-  # Code from module uniwidth/base:
-  # Code from module uniwidth/u16-strwidth:
-  # Code from module uniwidth/u16-width:
-  # Code from module uniwidth/u32-strwidth:
-  # Code from module uniwidth/u32-width:
-  # Code from module uniwidth/u8-strwidth:
-  # Code from module uniwidth/u8-width:
-  # Code from module uniwidth/width:
-  # Code from module unused-parameter:
-  # Code from module verify:
-  # Code from module warn-on-use:
-  # Code from module wchar:
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_FALSE=
+fi
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_wchar_h='<'wchar.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wchar.h>" >&5
-$as_echo_n "checking absolute name of <wchar.h>... " >&6; }
-if test "${gl_cv_next_wchar_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-          if test $ac_cv_header_wchar_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <wchar.h>
 
-_ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/wchar.h#{
-                 s#.*"\(.*/wchar.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
-          else
-            gl_cv_next_wchar_h='<'wchar.h'>'
-          fi
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5
-$as_echo "$gl_cv_next_wchar_h" >&6; }
-     fi
-     NEXT_WCHAR_H=$gl_cv_next_wchar_h
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'wchar.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_wchar_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive
 
 
 
-  if test $ac_cv_header_wchar_h = yes; then
-    HAVE_WCHAR_H=1
-  else
-    HAVE_WCHAR_H=0
-  fi
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  if test $gt_cv_c_wint_t = yes; then
-    HAVE_WINT_T=1
-  else
-    HAVE_WINT_T=0
-  fi
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-    for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb     wcsrtombs wcsnrtombs wcwidth; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_FALSE='#'
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_FALSE=
+fi
 
-/* Some systems require additional headers.  */
-#ifndef __GLIBC__
-# include <stddef.h>
-# include <stdio.h>
-# include <time.h>
-#endif
-#include <wchar.h>
 
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
-else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$as_gl_Symbol
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     eval as_val=\$$as_gl_Symbol
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
 
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-      done
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  # Code from module wctype:
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-  if test $ac_cv_func_iswcntrl = yes; then
-    HAVE_ISWCNTRL=1
-  else
-    HAVE_ISWCNTRL=0
-  fi
 
 
-  if test $ac_cv_func_iswblank = yes; then
-    HAVE_ISWBLANK=1
-  else
-    HAVE_ISWBLANK=0
-  fi
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_FALSE=
+fi
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  if test $gt_cv_c_wint_t = yes; then
-    HAVE_WINT_T=1
-  else
-    HAVE_WINT_T=0
-  fi
 
 
-  if test $ac_cv_header_wctype_h = yes; then
-    if test $ac_cv_func_iswcntrl = yes; then
-                  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
-$as_echo_n "checking whether iswcntrl works... " >&6; }
-if test "${gl_cv_func_iswcntrl_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-          if test "$cross_compiling" = yes; then :
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-                          #if __GNU_LIBRARY__ == 1
-                          Linux libc5 i18n is broken.
-                          #endif
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_func_iswcntrl_works=yes
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_FALSE='#'
 else
-  gl_cv_func_iswcntrl_works=no
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_FALSE=
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-                            #include <stddef.h>
-                            #include <stdio.h>
-                            #include <time.h>
-                            #include <wchar.h>
-                            #include <wctype.h>
-                            int main () { return iswprint ('x') == 0; }
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_iswcntrl_works=yes
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_FALSE='#'
 else
-  gl_cv_func_iswcntrl_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_FALSE=
 fi
 
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
-$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
-    fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_wctype_h='<'wctype.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
-$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
-if test "${gl_cv_next_wctype_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-          if test $ac_cv_header_wctype_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <wctype.h>
 
-_ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/wctype.h#{
-                 s#.*"\(.*/wctype.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
-          else
-            gl_cv_next_wctype_h='<'wctype.h'>'
-          fi
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5
-$as_echo "$gl_cv_next_wctype_h" >&6; }
-     fi
-     NEXT_WCTYPE_H=$gl_cv_next_wctype_h
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'wctype.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_wctype_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive
 
 
 
-    HAVE_WCTYPE_H=1
-  else
-    HAVE_WCTYPE_H=0
-  fi
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
-  if test "$gl_cv_func_iswcntrl_works" = no; then
-    REPLACE_ISWCNTRL=1
-  else
-    REPLACE_ISWCNTRL=0
-  fi
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  # Code from module wcwidth:
 
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_FALSE=
+fi
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  ac_fn_c_check_decl "$LINENO" "wcwidth" "ac_cv_have_decl_wcwidth" "
-/* AIX 3.2.5 declares wcwidth in <string.h>. */
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-   before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
 
-"
-if test "x$ac_cv_have_decl_wcwidth" = x""yes; then :
-  ac_have_decl=1
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_FALSE='#'
 else
-  ac_have_decl=0
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_FALSE=
 fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_WCWIDTH $ac_have_decl
-_ACEOF
 
-  if test $ac_cv_have_decl_wcwidth != yes; then
-    HAVE_DECL_WCWIDTH=0
-  fi
 
-  if test $ac_cv_func_wcwidth = yes; then
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcwidth works reasonably in UTF-8 locales" >&5
-$as_echo_n "checking whether wcwidth works reasonably in UTF-8 locales... " >&6; }
-if test "${gl_cv_func_wcwidth_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-        if test "$cross_compiling" = yes; then :
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-           case "$host_os" in
-                     # Guess yes on glibc systems.
-             *-gnu*) gl_cv_func_wcwidth_works="guessing yes";;
-             *)      gl_cv_func_wcwidth_works="guessing no";;
-           esac
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-/* AIX 3.2.5 declares wcwidth in <string.h>. */
-#include <string.h>
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-   before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-#if !HAVE_DECL_WCWIDTH
-extern
-# ifdef __cplusplus
-"C"
-# endif
-int wcwidth (int);
-#endif
-int main ()
-{
-  if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
-    if (wcwidth (0x0301) > 0 || wcwidth (0x200B) > 0)
-      return 1;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_wcwidth_works=yes
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_FALSE='#'
 else
-  gl_cv_func_wcwidth_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_FALSE=
 fi
 
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcwidth_works" >&5
-$as_echo "$gl_cv_func_wcwidth_works" >&6; }
-    case "$gl_cv_func_wcwidth_works" in
-      *yes) ;;
-      *no) REPLACE_WCWIDTH=1 ;;
-    esac
-  fi
-  if test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1; then
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext"
 
-  fi
-  if test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1 \
-     || test $HAVE_DECL_WCWIDTH = 0; then
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_FALSE=
+fi
 
-    :
 
-  fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
-  GNULIB_WCWIDTH=1
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-$as_echo "#define GNULIB_TEST_WCWIDTH 1" >>confdefs.h
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_FALSE=
+fi
 
-  # Code from module xsize:
 
 
 
-  for ac_header in stdint.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdint_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STDINT_H 1
-_ACEOF
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-fi
 
-done
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  # End of code from modules
 
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_FALSE=
+fi
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
-  gltests_libdeps=
-  gltests_ltlibdeps=
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_FALSE=
+fi
 
 
 
 
-  gl_source_base='tests'
-  gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  gl_module_indicator_condition=$gltests_WITNESS
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-$as_echo_n "checking for a traditional french locale... " >&6; }
-if test "${gt_cv_locale_fr+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr=fr_FR.ISO-8859-1
-        else
-          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR.ISO8859-1
-          else
-            # Test for the HP-UX locale name.
-            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.iso88591
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr
-              else
-                # None found.
-                gt_cv_locale_fr=none
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a turkish Unicode locale" >&5
-$as_echo_n "checking for a turkish Unicode locale... " >&6; }
-if test "${gt_cv_locale_tr_utf8+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  But BeOS does not
-     implement the Turkish upper-/lowercase mappings.  Therefore, let this
-     program return 1 on BeOS.  */
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the eighth month, the second
-     character (should be U+011F: LATIN SMALL LETTER G WITH BREVE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1992 - 1900; t.tm_mon = 8 - 1; t.tm_mday = 19;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc4 || buf[2] != (char) 0x9f)
-    return 1;
-  /* Check whether the upper-/lowercase mappings are as expected for
-     Turkish.  */
-  if (towupper ('i') != 0x0130 || towlower (0x0130) != 'i'
-      || towupper(0x0131) != 'I' || towlower ('I') != 0x0131)
-    return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_tr_utf8=tr_TR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_tr_utf8=tr_TR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_tr_utf8=tr.UTF-8
-          else
-            # None found.
-            gt_cv_locale_tr_utf8=none
-          fi
-        fi
-      fi
-    else
-      gt_cv_locale_tr_utf8=none
-    fi
-    rm -fr conftest*
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_tr_utf8" >&5
-$as_echo "$gt_cv_locale_tr_utf8" >&6; }
-  LOCALE_TR_UTF8=$gt_cv_locale_tr_utf8
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  GNULIB_ENVIRON=$gl_module_indicator_condition
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE=
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_FALSE=
+fi
 
 
-$as_echo "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h
 
 
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
 
 
+       }
+  }; then
+    LIBUNISTRING_UNICONV_H='uniconv.h'
+  else
+    LIBUNISTRING_UNICONV_H=
+  fi
 
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
-$as_echo_n "checking for error_at_line... " >&6; }
-if test "${ac_cv_lib_error_at_line+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <error.h>
-int
-main ()
-{
-error_at_line (0, 0, "", 0, "an error occurred");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_error_at_line=yes
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_FALSE='#'
 else
-  ac_cv_lib_error_at_line=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
-$as_echo "$ac_cv_lib_error_at_line" >&6; }
-if test $ac_cv_lib_error_at_line = no; then
 
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS error.$ac_objext"
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_FALSE=
 fi
 
 
 
 
-  :
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format"
 
 
 
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format"
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_FALSE=
+fi
 
 
 
 
-  for ac_func in getpagesize
-do :
-  ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
-if test "x$ac_cv_func_getpagesize" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GETPAGESIZE 1
-_ACEOF
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-fi
-done
 
-  if test $ac_cv_func_getpagesize = no; then
-    HAVE_GETPAGESIZE=0
-    for ac_header in OS.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "OS.h" "ac_cv_header_OS_h" "$ac_includes_default"
-if test "x$ac_cv_header_OS_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_OS_H 1
-_ACEOF
 
-fi
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-done
 
-    if test $ac_cv_header_OS_h = yes; then
-      HAVE_OS_H=1
-    fi
-    for ac_header in sys/param.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_param_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_PARAM_H 1
-_ACEOF
 
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_FALSE=
 fi
 
-done
 
-    if test $ac_cv_header_sys_param_h = yes; then
-      HAVE_SYS_PARAM_H=1
-    fi
-  fi
-  case "$host_os" in
-    mingw*)
-      REPLACE_GETPAGESIZE=1
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS getpagesize.$ac_objext"
 
-      ;;
-  esac
-      ac_fn_c_check_decl "$LINENO" "getpagesize" "ac_cv_have_decl_getpagesize" "$ac_includes_default"
-if test "x$ac_cv_have_decl_getpagesize" = x""yes; then :
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_FALSE='#'
 else
-  HAVE_DECL_GETPAGESIZE=0
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_FALSE=
 fi
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  GNULIB_GETPAGESIZE=$gl_module_indicator_condition
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-$as_echo "#define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h
 
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_FALSE=
+fi
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
-$as_echo_n "checking where to find the exponent in a 'double'... " >&6; }
-if test "${gl_cv_cc_double_expbit0+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-      if test "$cross_compiling" = yes; then :
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-                                                            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#if defined arm || defined __arm || defined __arm__
-  mixed_endianness
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "mixed_endianness" >/dev/null 2>&1; then :
-  gl_cv_cc_double_expbit0="unknown"
-else
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-                                                         :
-if test "${ac_cv_c_bigendian+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_FALSE='#'
 else
-  ac_cv_c_bigendian=unknown
-    # See if we're dealing with a universal compiler.
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-              not a universal capable compiler
-            #endif
-            typedef int dummy;
+  LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_FALSE=
+fi
 
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
 
-       # Check for potential -arch flags.  It is not universal unless
-       # there are at least two -arch flags with different values.
-       ac_arch=
-       ac_prev=
-       for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
-        if test -n "$ac_prev"; then
-          case $ac_word in
-            i?86 | x86_64 | ppc | ppc64)
-              if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
-                ac_arch=$ac_word
-              else
-                ac_cv_c_bigendian=universal
-                break
-              fi
-              ;;
-          esac
-          ac_prev=
-        elif test "x$ac_word" = "x-arch"; then
-          ac_prev=arch
-        fi
-       done
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if sys/param.h defines the BYTE_ORDER macro.
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-            #include <sys/param.h>
 
-int
-main ()
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
-                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
-                    && LITTLE_ENDIAN)
-             bogus endian macros
-            #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-               #include <sys/param.h>
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
-                not big endian
-               #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
-else
-  ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
 
-int
-main ()
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
-             bogus endian macros
-            #endif
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to _BIG_ENDIAN or not.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
 
-int
-main ()
-{
-#ifndef _BIG_ENDIAN
-                not big endian
-               #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_FALSE='#'
 else
-  ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_FALSE=
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # Compile a test program.
-      if test "$cross_compiling" = yes; then :
-  # Try to guess by grepping values from an object file.
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-short int ascii_mm[] =
-                 { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-               short int ascii_ii[] =
-                 { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-               int use_ascii (int i) {
-                 return ascii_mm[i] + ascii_ii[i];
-               }
-               short int ebcdic_ii[] =
-                 { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-               short int ebcdic_mm[] =
-                 { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-               int use_ebcdic (int i) {
-                 return ebcdic_mm[i] + ebcdic_ii[i];
-               }
-               extern int foo;
 
-int
-main ()
-{
-return use_ascii (foo) == use_ebcdic (foo);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
-             ac_cv_c_bigendian=yes
-           fi
-           if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-             if test "$ac_cv_c_bigendian" = unknown; then
-               ac_cv_c_bigendian=no
-             else
-               # finding both strings is unlikely to happen, but who knows?
-               ac_cv_c_bigendian=unknown
-             fi
-           fi
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
 
-            /* Are we little or big endian?  From Harbison&Steele.  */
-            union
-            {
-              long int l;
-              char c[sizeof (long int)];
-            } u;
-            u.l = 1;
-            return u.c[sizeof (long int) - 1] == 1;
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_c_bigendian=no
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_FALSE='#'
 else
-  ac_cv_c_bigendian=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_FALSE=
 fi
 
-    fi
-fi
-:
- case $ac_cv_c_bigendian in #(
-   yes)
-     gl_cv_cc_double_expbit0="word 0 bit 20";; #(
-   no)
-     gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
-   universal)
 
-$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 
-     ;; #(
-   *)
-     gl_cv_cc_double_expbit0="unknown" ;;
- esac
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-fi
-rm -f conftest*
 
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-#include <float.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#define NWORDS \
-  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { double value; unsigned int word[NWORDS]; } memory_double;
-static unsigned int ored_words[NWORDS];
-static unsigned int anded_words[NWORDS];
-static void add_to_ored_words (double x)
-{
-  memory_double m;
-  size_t i;
-  /* Clear it first, in case sizeof (double) < sizeof (memory_double).  */
-  memset (&m, 0, sizeof (memory_double));
-  m.value = x;
-  for (i = 0; i < NWORDS; i++)
-    {
-      ored_words[i] |= m.word[i];
-      anded_words[i] &= m.word[i];
-    }
-}
-int main ()
-{
-  size_t j;
-  FILE *fp = fopen ("conftest.out", "w");
-  if (fp == NULL)
-    return 1;
-  for (j = 0; j < NWORDS; j++)
-    anded_words[j] = ~ (unsigned int) 0;
-  add_to_ored_words (0.25);
-  add_to_ored_words (0.5);
-  add_to_ored_words (1.0);
-  add_to_ored_words (2.0);
-  add_to_ored_words (4.0);
-  /* Remove bits that are common (e.g. if representation of the first mantissa
-     bit is explicit).  */
-  for (j = 0; j < NWORDS; j++)
-    ored_words[j] &= ~anded_words[j];
-  /* Now find the nonzero word.  */
-  for (j = 0; j < NWORDS; j++)
-    if (ored_words[j] != 0)
-      break;
-  if (j < NWORDS)
-    {
-      size_t i;
-      for (i = j + 1; i < NWORDS; i++)
-        if (ored_words[i] != 0)
-          {
-            fprintf (fp, "unknown");
-            return (fclose (fp) != 0);
-          }
-      for (i = 0; ; i++)
-        if ((ored_words[j] >> i) & 1)
-          {
-            fprintf (fp, "word %d bit %d", (int) j, (int) i);
-            return (fclose (fp) != 0);
-          }
-    }
-  fprintf (fp, "unknown");
-  return (fclose (fp) != 0);
-}
 
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_cc_double_expbit0=`cat conftest.out`
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_FALSE='#'
 else
-  gl_cv_cc_double_expbit0="unknown"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_FALSE=
 fi
 
-      rm -f conftest.out
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
-$as_echo "$gl_cv_cc_double_expbit0" >&6; }
-  case "$gl_cv_cc_double_expbit0" in
-    word*bit*)
-      word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
-      bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
 
-cat >>confdefs.h <<_ACEOF
-#define DBL_EXPBIT0_WORD $word
-_ACEOF
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-cat >>confdefs.h <<_ACEOF
-#define DBL_EXPBIT0_BIT $bit
-_ACEOF
 
-      ;;
-  esac
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'float'" >&5
-$as_echo_n "checking where to find the exponent in a 'float'... " >&6; }
-if test "${gl_cv_cc_float_expbit0+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-      if test "$cross_compiling" = yes; then :
-  gl_cv_cc_float_expbit0="word 0 bit 23"
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <float.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#define NWORDS \
-  ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { float value; unsigned int word[NWORDS]; } memory_float;
-static unsigned int ored_words[NWORDS];
-static unsigned int anded_words[NWORDS];
-static void add_to_ored_words (float x)
-{
-  memory_float m;
-  size_t i;
-  /* Clear it first, in case
-     sizeof (float) < sizeof (memory_float).  */
-  memset (&m, 0, sizeof (memory_float));
-  m.value = x;
-  for (i = 0; i < NWORDS; i++)
-    {
-      ored_words[i] |= m.word[i];
-      anded_words[i] &= m.word[i];
-    }
-}
-int main ()
-{
-  size_t j;
-  FILE *fp = fopen ("conftest.out", "w");
-  if (fp == NULL)
-    return 1;
-  for (j = 0; j < NWORDS; j++)
-    anded_words[j] = ~ (unsigned int) 0;
-  add_to_ored_words (0.25f);
-  add_to_ored_words (0.5f);
-  add_to_ored_words (1.0f);
-  add_to_ored_words (2.0f);
-  add_to_ored_words (4.0f);
-  /* Remove bits that are common (e.g. if representation of the first mantissa
-     bit is explicit).  */
-  for (j = 0; j < NWORDS; j++)
-    ored_words[j] &= ~anded_words[j];
-  /* Now find the nonzero word.  */
-  for (j = 0; j < NWORDS; j++)
-    if (ored_words[j] != 0)
-      break;
-  if (j < NWORDS)
-    {
-      size_t i;
-      for (i = j + 1; i < NWORDS; i++)
-        if (ored_words[i] != 0)
-          {
-            fprintf (fp, "unknown");
-            return (fclose (fp) != 0);
-          }
-      for (i = 0; ; i++)
-        if ((ored_words[j] >> i) & 1)
-          {
-            fprintf (fp, "word %d bit %d", (int) j, (int) i);
-            return (fclose (fp) != 0);
-          }
-    }
-  fprintf (fp, "unknown");
-  return (fclose (fp) != 0);
-}
 
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_cc_float_expbit0=`cat conftest.out`
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_FALSE='#'
 else
-  gl_cv_cc_float_expbit0="unknown"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_FALSE=
 fi
 
-      rm -f conftest.out
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_expbit0" >&5
-$as_echo "$gl_cv_cc_float_expbit0" >&6; }
-  case "$gl_cv_cc_float_expbit0" in
-    word*bit*)
-      word=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
-      bit=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word.*bit //'`
 
-cat >>confdefs.h <<_ACEOF
-#define FLT_EXPBIT0_WORD $word
-_ACEOF
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-cat >>confdefs.h <<_ACEOF
-#define FLT_EXPBIT0_BIT $bit
-_ACEOF
 
-      ;;
-  esac
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'long double'" >&5
-$as_echo_n "checking where to find the exponent in a 'long double'... " >&6; }
-if test "${gl_cv_cc_long_double_expbit0+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_FALSE=
+fi
 
-      if test "$cross_compiling" = yes; then :
 
-                              gl_cv_cc_long_double_expbit0="unknown"
 
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <float.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#define NWORDS \
-  ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
-typedef union { long double value; unsigned int word[NWORDS]; }
-        memory_long_double;
-static unsigned int ored_words[NWORDS];
-static unsigned int anded_words[NWORDS];
-static void add_to_ored_words (long double x)
-{
-  memory_long_double m;
-  size_t i;
-  /* Clear it first, in case
-     sizeof (long double) < sizeof (memory_long_double).  */
-  memset (&m, 0, sizeof (memory_long_double));
-  m.value = x;
-  for (i = 0; i < NWORDS; i++)
-    {
-      ored_words[i] |= m.word[i];
-      anded_words[i] &= m.word[i];
-    }
-}
-int main ()
-{
-  size_t j;
-  FILE *fp = fopen ("conftest.out", "w");
-  if (fp == NULL)
-    return 1;
-  for (j = 0; j < NWORDS; j++)
-    anded_words[j] = ~ (unsigned int) 0;
-  add_to_ored_words (0.25L);
-  add_to_ored_words (0.5L);
-  add_to_ored_words (1.0L);
-  add_to_ored_words (2.0L);
-  add_to_ored_words (4.0L);
-  /* Remove bits that are common (e.g. if representation of the first mantissa
-     bit is explicit).  */
-  for (j = 0; j < NWORDS; j++)
-    ored_words[j] &= ~anded_words[j];
-  /* Now find the nonzero word.  */
-  for (j = 0; j < NWORDS; j++)
-    if (ored_words[j] != 0)
-      break;
-  if (j < NWORDS)
-    {
-      size_t i;
-      for (i = j + 1; i < NWORDS; i++)
-        if (ored_words[i] != 0)
-          {
-            fprintf (fp, "unknown");
-            return (fclose (fp) != 0);
-          }
-      for (i = 0; ; i++)
-        if ((ored_words[j] >> i) & 1)
-          {
-            fprintf (fp, "word %d bit %d", (int) j, (int) i);
-            return (fclose (fp) != 0);
-          }
-    }
-  fprintf (fp, "unknown");
-  return (fclose (fp) != 0);
-}
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_cc_long_double_expbit0=`cat conftest.out`
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_FALSE='#'
 else
-  gl_cv_cc_long_double_expbit0="unknown"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_FALSE=
 fi
 
-      rm -f conftest.out
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_long_double_expbit0" >&5
-$as_echo "$gl_cv_cc_long_double_expbit0" >&6; }
-  case "$gl_cv_cc_long_double_expbit0" in
-    word*bit*)
-      word=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
-      bit=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word.*bit //'`
 
-cat >>confdefs.h <<_ACEOF
-#define LDBL_EXPBIT0_WORD $word
-_ACEOF
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-cat >>confdefs.h <<_ACEOF
-#define LDBL_EXPBIT0_BIT $bit
-_ACEOF
 
-      ;;
-  esac
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_FALSE=
+fi
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5
-$as_echo_n "checking whether locale.h conforms to POSIX:2001... " >&6; }
-if test "${gl_cv_header_locale_h_posix2001+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <locale.h>
-int x = LC_MESSAGES;
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_locale_h_posix2001=yes
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_FALSE='#'
 else
-  gl_cv_header_locale_h_posix2001=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5
-$as_echo "$gl_cv_header_locale_h_posix2001" >&6; }
 
 
-  if test $ac_cv_header_xlocale_h = yes; then
-    HAVE_XLOCALE_H=1
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5
-$as_echo_n "checking whether locale.h defines locale_t... " >&6; }
-if test "${gl_cv_header_locale_has_locale_t+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_FALSE='#'
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <locale.h>
-locale_t x;
-int
-main ()
-{
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_FALSE=
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gl_cv_header_locale_has_locale_t=yes
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_FALSE='#'
 else
-  gl_cv_header_locale_has_locale_t=no
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_FALSE=
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE=
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5
-$as_echo "$gl_cv_header_locale_has_locale_t" >&6; }
-    if test $gl_cv_header_locale_has_locale_t = yes; then
-      gl_cv_header_locale_h_needs_xlocale_h=no
-    else
-      gl_cv_header_locale_h_needs_xlocale_h=yes
-    fi
+
+
+
+
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+    LIBUNISTRING_UNICTYPE_H='unictype.h'
   else
-    HAVE_XLOCALE_H=0
-    gl_cv_header_locale_h_needs_xlocale_h=no
+    LIBUNISTRING_UNICTYPE_H=
   fi
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-     if test $gl_cv_have_include_next = yes; then
-       gl_cv_next_locale_h='<'locale.h'>'
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <locale.h>" >&5
-$as_echo_n "checking absolute name of <locale.h>... " >&6; }
-if test "${gl_cv_next_locale_h+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-          if test $ac_cv_header_locale_h = yes; then
-            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <locale.h>
 
-_ACEOF
-                                                                                                case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-                                                gl_cv_next_locale_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-               sed -n '\#/locale.h#{
-                 s#.*"\(.*/locale.h\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'
-          else
-            gl_cv_next_locale_h='<'locale.h'>'
-          fi
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5
-$as_echo "$gl_cv_next_locale_h" >&6; }
-     fi
-     NEXT_LOCALE_H=$gl_cv_next_locale_h
 
-     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
-       gl_next_as_first_directive='<'locale.h'>'
-     else
-       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=$gl_cv_next_locale_h
-     fi
-     NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  if test -n "$STDDEF_H" \
-     || test $gl_cv_header_locale_h_posix2001 = no \
-     || test $gl_cv_header_locale_h_needs_xlocale_h = yes; then
 
-    :
 
-  fi
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-    for gl_func in duplocale; do
-    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
-$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
-if { as_var=$as_gl_Symbol; eval "test \"\${$as_var+set}\" = set"; }; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <locale.h>
-/* Some systems provide declarations in a non-standard header.  */
-#if HAVE_XLOCALE_H
-# include <xlocale.h>
-#endif
 
-int
-main ()
-{
-#undef $gl_func
-  (void) $gl_func;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_gl_Symbol=yes"
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_FALSE='#'
 else
-  eval "$as_gl_Symbol=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_FALSE=
 fi
-eval ac_res=\$$as_gl_Symbol
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-     eval as_val=\$$as_gl_Symbol
-   if test "x$as_val" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
-_ACEOF
 
-                     eval ac_cv_have_decl_$gl_func=yes
-fi
-      done
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-$as_echo_n "checking for a traditional french locale... " >&6; }
-if test "${gt_cv_locale_fr+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr=fr_FR.ISO-8859-1
-        else
-          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR.ISO8859-1
-          else
-            # Test for the HP-UX locale name.
-            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.iso88591
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr
-              else
-                # None found.
-                gt_cv_locale_fr=none
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-$as_echo_n "checking for a french Unicode locale... " >&6; }
-if test "${gt_cv_locale_fr_utf8+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr_utf8=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr.UTF-8
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-$as_echo "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
-$as_echo_n "checking for a traditional japanese locale... " >&6; }
-if test "${gt_cv_locale_ja+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  const char *p;
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
-     on Cygwin 1.5.x.  */
-  if (MB_CUR_MAX == 1)
-    return 1;
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-  for (p = buf; *p != '\0'; p++)
-    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-      return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the AIX locale name.
-      if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_ja=ja_JP
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_ja=ja_JP.EUC-JP
-        else
-          # Test for the HP-UX, OSF/1, NetBSD locale name.
-          if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_ja=ja_JP.eucJP
-          else
-            # Test for the IRIX, FreeBSD locale name.
-            if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_ja=ja_JP.EUC
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_ja=ja
-              else
-                # Special test for NetBSD 1.6.
-                if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
-                  gt_cv_locale_ja=ja_JP.eucJP
-                else
-                  # None found.
-                  gt_cv_locale_ja=none
-                fi
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
-$as_echo "$gt_cv_locale_ja" >&6; }
-  LOCALE_JA=$gt_cv_locale_ja
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
-$as_echo_n "checking for a transitional chinese locale... " >&6; }
-if test "${gt_cv_locale_zh_CN+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  const char *p;
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-  for (p = buf; *p != '\0'; p++)
-    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-      return 1;
-  /* Check whether a typical GB18030 multibyte sequence is recognized as a
-     single wide character.  This excludes the GB2312 and GBK encodings.  */
-  if (mblen ("\203\062\332\066", 5) != 4)
-    return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the locale name without encoding suffix.
-      if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_zh_CN=zh_CN
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_zh_CN=zh_CN.GB18030
-        else
-          # None found.
-          gt_cv_locale_zh_CN=none
-        fi
-      fi
-    else
-      # If there was a link error, due to mblen(), the system is so old that
-      # it certainly doesn't have a chinese locale.
-      gt_cv_locale_zh_CN=none
-    fi
-    rm -fr conftest*
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
-$as_echo "$gt_cv_locale_zh_CN" >&6; }
-  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-$as_echo_n "checking for a french Unicode locale... " >&6; }
-if test "${gt_cv_locale_fr_utf8+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr_utf8=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr.UTF-8
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-$as_echo "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
-  ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
-"
-if test "x$ac_cv_have_decl_program_invocation_name" = x""yes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl
-_ACEOF
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
-"
-if test "x$ac_cv_have_decl_program_invocation_short_name" = x""yes; then :
-  ac_have_decl=1
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_FALSE='#'
 else
-  ac_have_decl=0
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_FALSE=
 fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl
-_ACEOF
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for putenv compatible with GNU and SVID" >&5
-$as_echo_n "checking for putenv compatible with GNU and SVID... " >&6; }
-if test "${gl_cv_func_svid_putenv+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-               gl_cv_func_svid_putenv=no
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    /* Put it in env.  */
-    if (putenv ("CONFTEST_putenv=val"))
-      return 1;
 
-    /* Try to remove it.  */
-    if (putenv ("CONFTEST_putenv"))
-      return 1;
 
-    /* Make sure it was deleted.  */
-    if (getenv ("CONFTEST_putenv") != 0)
-      return 1;
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-    return 0;
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_svid_putenv=yes
-else
-  gl_cv_func_svid_putenv=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_svid_putenv" >&5
-$as_echo "$gl_cv_func_svid_putenv" >&6; }
-  if test $gl_cv_func_svid_putenv = no; then
-    REPLACE_PUTENV=1
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-  gltests_LIBOBJS="$gltests_LIBOBJS putenv.$ac_objext"
 
-  fi
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_FALSE=
+fi
 
 
-  GNULIB_PUTENV=$gl_module_indicator_condition
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-$as_echo "#define GNULIB_TEST_PUTENV 1" >>confdefs.h
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
 
-  if test $HAVE_SETENV$REPLACE_SETENV != 10; then
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_FALSE=
+fi
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS setenv.$ac_objext"
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  fi
 
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_FALSE=
+fi
 
-  GNULIB_SETENV=$gl_module_indicator_condition
 
 
 
-$as_echo "#define GNULIB_TEST_SETENV 1" >>confdefs.h
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
-$as_echo_n "checking for wchar_t... " >&6; }
-if test "${gt_cv_c_wchar_t+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_FALSE='#'
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stddef.h>
-       wchar_t foo = (wchar_t)'\0';
-int
-main ()
-{
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_FALSE=
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_c_wchar_t=yes
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_FALSE='#'
 else
-  gt_cv_c_wchar_t=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5
-$as_echo "$gt_cv_c_wchar_t" >&6; }
-  if test $gt_cv_c_wchar_t = yes; then
 
-$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
 
-  fi
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
-$as_echo_n "checking for wint_t... " >&6; }
-if test "${gt_cv_c_wint_t+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-   before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
-       wint_t foo = (wchar_t)'\0';
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_c_wint_t=yes
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_FALSE='#'
 else
-  gt_cv_c_wint_t=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_FALSE=
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5
-$as_echo "$gt_cv_c_wint_t" >&6; }
-  if test $gt_cv_c_wint_t = yes; then
 
-$as_echo "#define HAVE_WINT_T 1" >>confdefs.h
 
-  fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  if test $REPLACE_STRERROR = 1; then
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_FALSE=
+fi
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS strerror.$ac_objext"
 
 
-cat >>confdefs.h <<_ACEOF
-#define REPLACE_STRERROR $REPLACE_STRERROR
-_ACEOF
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  fi
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
-  GNULIB_STRERROR=$gl_module_indicator_condition
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_FALSE=
+fi
 
-$as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_FALSE=
 fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
-  fi
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  if test $gl_threads_api = posix; then
-    gl_save_LIBS="$LIBS"
-    LIBS="$LIBS $LIBMULTITHREAD"
-    for ac_func in pthread_atfork
-do :
-  ac_fn_c_check_func "$LINENO" "pthread_atfork" "ac_cv_func_pthread_atfork"
-if test "x$ac_cv_func_pthread_atfork" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_PTHREAD_ATFORK 1
-_ACEOF
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_FALSE=
 fi
-done
 
-    LIBS="$gl_save_LIBS"
-  fi
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-$as_echo_n "checking for a traditional french locale... " >&6; }
-if test "${gt_cv_locale_fr+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr=fr_FR.ISO-8859-1
-        else
-          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR.ISO8859-1
-          else
-            # Test for the HP-UX locale name.
-            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.iso88591
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr
-              else
-                # None found.
-                gt_cv_locale_fr=none
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-$as_echo_n "checking for a french Unicode locale... " >&6; }
-if test "${gt_cv_locale_fr_utf8+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr_utf8=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr.UTF-8
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
 
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-$as_echo "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
-$as_echo_n "checking for a traditional japanese locale... " >&6; }
-if test "${gt_cv_locale_ja+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  const char *p;
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
-     on Cygwin 1.5.x.  */
-  if (MB_CUR_MAX == 1)
-    return 1;
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-  for (p = buf; *p != '\0'; p++)
-    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-      return 1;
-  return 0;
-}
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the AIX locale name.
-      if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_ja=ja_JP
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_ja=ja_JP.EUC-JP
-        else
-          # Test for the HP-UX, OSF/1, NetBSD locale name.
-          if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_ja=ja_JP.eucJP
-          else
-            # Test for the IRIX, FreeBSD locale name.
-            if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_ja=ja_JP.EUC
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_ja=ja
-              else
-                # Special test for NetBSD 1.6.
-                if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
-                  gt_cv_locale_ja=ja_JP.eucJP
-                else
-                  # None found.
-                  gt_cv_locale_ja=none
-                fi
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
-$as_echo "$gt_cv_locale_ja" >&6; }
-  LOCALE_JA=$gt_cv_locale_ja
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a turkish Unicode locale" >&5
-$as_echo_n "checking for a turkish Unicode locale... " >&6; }
-if test "${gt_cv_locale_tr_utf8+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  But BeOS does not
-     implement the Turkish upper-/lowercase mappings.  Therefore, let this
-     program return 1 on BeOS.  */
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the eighth month, the second
-     character (should be U+011F: LATIN SMALL LETTER G WITH BREVE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1992 - 1900; t.tm_mon = 8 - 1; t.tm_mday = 19;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc4 || buf[2] != (char) 0x9f)
-    return 1;
-  /* Check whether the upper-/lowercase mappings are as expected for
-     Turkish.  */
-  if (towupper ('i') != 0x0130 || towlower (0x0130) != 'i'
-      || towupper(0x0131) != 'I' || towlower ('I') != 0x0131)
-    return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_tr_utf8=tr_TR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_tr_utf8=tr_TR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_tr_utf8=tr.UTF-8
-          else
-            # None found.
-            gt_cv_locale_tr_utf8=none
-          fi
-        fi
-      fi
-    else
-      gt_cv_locale_tr_utf8=none
-    fi
-    rm -fr conftest*
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_tr_utf8" >&5
-$as_echo "$gt_cv_locale_tr_utf8" >&6; }
-  LOCALE_TR_UTF8=$gt_cv_locale_tr_utf8
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
-$as_echo_n "checking for a transitional chinese locale... " >&6; }
-if test "${gt_cv_locale_zh_CN+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <stdlib.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main ()
-{
-  const char *p;
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
-  for (p = buf; *p != '\0'; p++)
-    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
-      return 1;
-  /* Check whether a typical GB18030 multibyte sequence is recognized as a
-     single wide character.  This excludes the GB2312 and GBK encodings.  */
-  if (mblen ("\203\062\332\066", 5) != 4)
-    return 1;
-  return 0;
-}
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the locale name without encoding suffix.
-      if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_zh_CN=zh_CN
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_zh_CN=zh_CN.GB18030
-        else
-          # None found.
-          gt_cv_locale_zh_CN=none
-        fi
-      fi
-    else
-      # If there was a link error, due to mblen(), the system is so old that
-      # it certainly doesn't have a chinese locale.
-      gt_cv_locale_zh_CN=none
-    fi
-    rm -fr conftest*
 
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
-$as_echo "$gt_cv_locale_zh_CN" >&6; }
-  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-$as_echo_n "checking for a traditional french locale... " >&6; }
-if test "${gt_cv_locale_fr+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr=fr_FR.ISO-8859-1
-        else
-          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR.ISO8859-1
-          else
-            # Test for the HP-UX locale name.
-            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.iso88591
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr
-              else
-                # None found.
-                gt_cv_locale_fr=none
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-$as_echo_n "checking for a french Unicode locale... " >&6; }
-if test "${gt_cv_locale_fr_utf8+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr_utf8=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr.UTF-8
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-$as_echo "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-$as_echo_n "checking for a traditional french locale... " >&6; }
-if test "${gt_cv_locale_fr+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr=fr_FR.ISO-8859-1
-        else
-          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR.ISO8859-1
-          else
-            # Test for the HP-UX locale name.
-            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.iso88591
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr
-              else
-                # None found.
-                gt_cv_locale_fr=none
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-$as_echo_n "checking for a french Unicode locale... " >&6; }
-if test "${gt_cv_locale_fr_utf8+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr_utf8=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr.UTF-8
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-$as_echo "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-$as_echo_n "checking for a traditional french locale... " >&6; }
-if test "${gt_cv_locale_fr+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr=fr_FR.ISO-8859-1
-        else
-          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR.ISO8859-1
-          else
-            # Test for the HP-UX locale name.
-            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.iso88591
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr
-              else
-                # None found.
-                gt_cv_locale_fr=none
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-$as_echo_n "checking for a french Unicode locale... " >&6; }
-if test "${gt_cv_locale_fr_utf8+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr_utf8=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr.UTF-8
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-$as_echo "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-$as_echo_n "checking for a traditional french locale... " >&6; }
-if test "${gt_cv_locale_fr+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr=fr_FR.ISO-8859-1
-        else
-          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR.ISO8859-1
-          else
-            # Test for the HP-UX locale name.
-            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.iso88591
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr
-              else
-                # None found.
-                gt_cv_locale_fr=none
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-$as_echo_n "checking for a french Unicode locale... " >&6; }
-if test "${gt_cv_locale_fr_utf8+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr_utf8=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr.UTF-8
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-$as_echo "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-$as_echo_n "checking for a traditional french locale... " >&6; }
-if test "${gt_cv_locale_fr+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr=fr_FR.ISO-8859-1
-        else
-          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR.ISO8859-1
-          else
-            # Test for the HP-UX locale name.
-            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.iso88591
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr
-              else
-                # None found.
-                gt_cv_locale_fr=none
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
 
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-$as_echo_n "checking for a french Unicode locale... " >&6; }
-if test "${gt_cv_locale_fr_utf8+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr_utf8=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr.UTF-8
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-$as_echo "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-$as_echo_n "checking for a traditional french locale... " >&6; }
-if test "${gt_cv_locale_fr+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_FALSE=
+fi
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
-
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr=fr_FR.ISO-8859-1
-        else
-          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR.ISO8859-1
-          else
-            # Test for the HP-UX locale name.
-            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.iso88591
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr
-              else
-                # None found.
-                gt_cv_locale_fr=none
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
-$as_echo_n "checking for a french Unicode locale... " >&6; }
-if test "${gt_cv_locale_fr_utf8+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
-     imitates locale dependent behaviour by looking at the environment
-     variables, and all locales use the UTF-8 encoding.  */
-#if !(defined __BEOS__ || defined __HAIKU__)
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-# if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-# endif
-# ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-# endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
-     two bytes long, with UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 4
-      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
-    return 1;
-#endif
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr_utf8=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr.UTF-8
-          else
-            # None found.
-            gt_cv_locale_fr_utf8=none
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
-$as_echo "$gt_cv_locale_fr_utf8" >&6; }
-  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_FALSE=
+fi
 
-    fi
-  fi
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE_FALSE=
 fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
-  fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_FALSE=
 fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
-  fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_FALSE=
+fi
 
-    fi
-  fi
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_FALSE=
+fi
 
-    fi
-  fi
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-         gl_have_mmap_anonymous=yes
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_FALSE=
 fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
-  fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-         gl_have_mmap_anonymous=yes
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_FALSE=
 fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
-  fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-         gl_have_mmap_anonymous=yes
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_FALSE=
 fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
-  fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-         gl_have_mmap_anonymous=yes
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_FALSE=
 fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
-  fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-         gl_have_mmap_anonymous=yes
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_FALSE=
 fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
-  fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-         gl_have_mmap_anonymous=yes
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_FALSE=
 fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
-  fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_FALSE=
+fi
 
-    fi
-  fi
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_FALSE=
+fi
 
-    fi
-  fi
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_FALSE=
+fi
 
-    fi
-  fi
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_FALSE=
+fi
 
-    fi
-  fi
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_FALSE=
+fi
 
-    fi
-  fi
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
-         gl_have_mmap_anonymous=yes
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_FALSE=
 fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
-  fi
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
-  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
-  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
-  # irrelevant for anonymous mappings.
-  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = x""yes; then :
-  gl_have_mmap=yes
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_FALSE='#'
 else
-  gl_have_mmap=no
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_FALSE=
 fi
 
 
-  # Try to allow MAP_ANONYMOUS.
-  gl_have_mmap_anonymous=no
-  if test $gl_have_mmap = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
-$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/mman.h>
-#ifdef MAP_ANONYMOUS
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
-  gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    if test $gl_have_mmap_anonymous != yes; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-#include <sys/mman.h>
-#ifdef MAP_ANON
-    I cant identify this map.
-#endif
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cant identify this map." >/dev/null 2>&1; then :
 
-$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-         gl_have_mmap_anonymous=yes
-fi
-rm -f conftest*
 
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
-$as_echo "$gl_have_mmap_anonymous" >&6; }
-    if test $gl_have_mmap_anonymous = yes; then
 
-$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
-    fi
-  fi
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_FALSE=
+fi
 
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
-$as_echo_n "checking for a traditional french locale... " >&6; }
-if test "${gt_cv_locale_fr+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <time.h>
-#if HAVE_LANGINFO_CODESET
-# include <langinfo.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-struct tm t;
-char buf[16];
-int main () {
-  /* Check whether the given locale name is recognized by the system.  */
-  if (setlocale (LC_ALL, "") == NULL) return 1;
-  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
-     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
-     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
-     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
-#if HAVE_LANGINFO_CODESET
-  {
-    const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
-      return 1;
-  }
-#endif
-#ifdef __CYGWIN__
-  /* On Cygwin, avoid locale names without encoding suffix, because the
-     locale_charset() function relies on the encoding suffix.  Note that
-     LC_ALL is set on the command line.  */
-  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
-#endif
-  /* Check whether in the abbreviation of the second month, the second
-     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
-     one byte long. This excludes the UTF-8 encoding.  */
-  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
-  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
-  /* Check whether the decimal separator is a comma.
-     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
-     are nl_langinfo(RADIXCHAR) are both ".".  */
-  if (localeconv () ->decimal_point[0] != ',') return 1;
-  return 0;
-}
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-_ACEOF
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr=fr_FR.ISO-8859-1
-        else
-          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR.ISO8859-1
-          else
-            # Test for the HP-UX locale name.
-            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.iso88591
-            else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr
-              else
-                # None found.
-                gt_cv_locale_fr=none
-              fi
-            fi
-          fi
-        fi
-      fi
-    fi
-    rm -fr conftest*
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
-$as_echo "$gt_cv_locale_fr" >&6; }
-  LOCALE_FR=$gt_cv_locale_fr
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_FALSE=
+fi
 
 
-  for ac_func in unsetenv
-do :
-  ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv"
-if test "x$ac_cv_func_unsetenv" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_UNSETENV 1
-_ACEOF
 
-fi
-done
 
-  if test $ac_cv_func_unsetenv = no; then
-    HAVE_UNSETENV=0
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS unsetenv.$ac_objext"
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_FALSE=
+fi
 
 
 
 
 
-  else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5
-$as_echo_n "checking for unsetenv() return type... " >&6; }
-if test "${gt_cv_func_unsetenv_ret+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-int unsetenv (const char *name);
-#else
-int unsetenv();
-#endif
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_func_unsetenv_ret='int'
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_FALSE='#'
 else
-  gt_cv_func_unsetenv_ret='void'
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_unsetenv_ret" >&5
-$as_echo "$gt_cv_func_unsetenv_ret" >&6; }
-    if test $gt_cv_func_unsetenv_ret = 'void'; then
 
-$as_echo "#define VOID_UNSETENV 1" >>confdefs.h
 
-      REPLACE_UNSETENV=1
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS unsetenv.$ac_objext"
 
-    fi
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unsetenv works on duplicates" >&5
-$as_echo_n "checking whether unsetenv works on duplicates... " >&6; }
-if test "${gl_cv_func_unsetenv_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  gl_cv_func_unsetenv_works="guessing no"
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_FALSE='#'
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_FALSE=
+fi
 
-       #include <stdlib.h>
 
-int
-main ()
-{
 
-       char entry[] = "b=2";
-       if (putenv ((char *) "a=1")) return 1;
-       if (putenv (entry)) return 2;
-       entry[0] = 'a';
-       unsetenv ("a");
-       if (getenv ("a")) return 3;
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_unsetenv_works=yes
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_FALSE='#'
 else
-  gl_cv_func_unsetenv_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_FALSE=
 fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unsetenv_works" >&5
-$as_echo "$gl_cv_func_unsetenv_works" >&6; }
-    if test "$gl_cv_func_unsetenv_works" != yes; then
-      REPLACE_UNSETENV=1
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-  gltests_LIBOBJS="$gltests_LIBOBJS unsetenv.$ac_objext"
 
-    fi
-  fi
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_FALSE=
+fi
 
 
-  GNULIB_UNSETENV=$gl_module_indicator_condition
 
 
 
-$as_echo "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
 
 
-  if test $ac_cv_func_wctob = no; then
-    HAVE_DECL_WCTOB=0
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_FALSE=
+fi
 
-    :
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS wctob.$ac_objext"
 
 
-  :
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_FALSE=
+fi
 
-  else
 
 
 
-         { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wctob works" >&5
-$as_echo_n "checking whether wctob works... " >&6; }
-if test "${gl_cv_func_wctob_works+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
 
-                        case "$host_os" in
-            # Guess no on Solaris <= 9 and Cygwin.
-          solaris2.[1-9] | solaris2.[1-9].* | cygwin*)
-            gl_cv_func_wctob_works="guessing no" ;;
-            # Guess yes otherwise.
-          *) gl_cv_func_wctob_works="guessing yes" ;;
-        esac
-        case "$host_os" in
-          cygwin*)
-            if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-#include <locale.h>
-#include <wchar.h>
 
-register long global __asm__ ("%ebx");
 
-int main ()
-{
-  setlocale (LC_ALL, "en_US.UTF-8");
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-  global = 0x12345678;
-  if (wctob (0x00FC) != -1)
-    return 1;
-  if (global != 0x12345678)
-    return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  :
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_FALSE='#'
 else
-  gl_cv_func_wctob_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_FALSE=
 fi
 
-            ;;
-        esac
-        if test "$gl_cv_func_wctob_works" != no && test $LOCALE_FR != none; then
-          if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <locale.h>
-#include <string.h>
-#include <wchar.h>
-int main ()
-{
-  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
-    {
-      wchar_t wc;
 
-      if (mbtowc (&wc, "\374", 1) == 1)
-        if (wctob (wc) != (unsigned char) '\374')
-          return 1;
-    }
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_wctob_works=yes
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_FALSE='#'
 else
-  gl_cv_func_wctob_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_FALSE=
 fi
 
-        fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wctob_works" >&5
-$as_echo "$gl_cv_func_wctob_works" >&6; }
-    case "$gl_cv_func_wctob_works" in
-      *yes) ;;
-      *) REPLACE_WCTOB=1 ;;
-    esac
-    if test $REPLACE_WCTOB = 1; then
 
-    :
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS wctob.$ac_objext"
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_FALSE=
+fi
 
 
-  :
 
-    else
 
-            ac_fn_c_check_decl "$LINENO" "wctob" "ac_cv_have_decl_wctob" "
-/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
-   <wchar.h>.
-   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
-   before <wchar.h>.  */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
 
-"
-if test "x$ac_cv_have_decl_wctob" = x""yes; then :
-  ac_have_decl=1
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_FALSE='#'
 else
-  ac_have_decl=0
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_FALSE=
 fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_WCTOB $ac_have_decl
-_ACEOF
 
-      if test $ac_cv_have_decl_wctob != yes; then
-        HAVE_DECL_WCTOB=0
 
-    :
 
-      fi
-    fi
-  fi
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
-  GNULIB_WCTOB=$gl_module_indicator_condition
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-$as_echo "#define GNULIB_TEST_WCTOB 1" >>confdefs.h
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_FALSE=
+fi
 
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS xmalloc.$ac_objext"
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_FALSE=
+fi
 
 
 
-  :
 
 
-  :
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
 
-    YIELD_LIB=
-  if test $gl_threads_api = posix; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
-$as_echo_n "checking for sched_yield in -lrt... " >&6; }
-if test "${ac_cv_lib_rt_sched_yield+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lrt  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sched_yield ();
-int
-main ()
-{
-return sched_yield ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_rt_sched_yield=yes
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_FALSE='#'
 else
-  ac_cv_lib_rt_sched_yield=no
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_FALSE=
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5
-$as_echo "$ac_cv_lib_rt_sched_yield" >&6; }
-if test "x$ac_cv_lib_rt_sched_yield" = x""yes; then :
-  YIELD_LIB=-lrt
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_FALSE='#'
 else
-         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5
-$as_echo_n "checking for sched_yield in -lposix4... " >&6; }
-if test "${ac_cv_lib_posix4_sched_yield+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_FALSE='#'
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lposix4  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_FALSE=
+fi
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char sched_yield ();
-int
-main ()
-{
-return sched_yield ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_posix4_sched_yield=yes
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_FALSE='#'
 else
-  ac_cv_lib_posix4_sched_yield=no
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_FALSE=
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5
-$as_echo "$ac_cv_lib_posix4_sched_yield" >&6; }
-if test "x$ac_cv_lib_posix4_sched_yield" = x""yes; then :
-  YIELD_LIB=-lposix4
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_FALSE=
 fi
 
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_FALSE=
 fi
 
-  fi
 
 
 
 
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
 
 
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
 
 
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_FALSE=
+fi
 
 
-  LIBTESTS_LIBDEPS="$gltests_libdeps"
 
 
 
-if test "$enable_shared" = yes; then
-  case "$host_os" in
-    mingw* | cygwin*) is_woe32dll=yes ;;
-    *) is_woe32dll=no ;;
-  esac
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_FALSE='#'
 else
-  is_woe32dll=no
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_FALSE=
 fi
- if test $is_woe32dll = yes; then
-  WOE32DLL_TRUE=
-  WOE32DLL_FALSE='#'
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_FALSE='#'
 else
-  WOE32DLL_TRUE='#'
-  WOE32DLL_FALSE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_FALSE=
 fi
 
-if test $is_woe32dll = yes; then
-  DLL_VARIABLE='__declspec (dllimport)'
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_FALSE='#'
 else
-  DLL_VARIABLE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_FALSE=
 fi
 
-if test $is_woe32dll = yes; then
 
-$as_echo "#define WOE32DLL 1" >>confdefs.h
 
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_FALSE=
 fi
 
-# Check whether --enable-namespacing was given.
-if test "${enable_namespacing+set}" = set; then :
-  enableval=$enable_namespacing; :
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_FALSE='#'
 else
-  enable_namespacing=yes
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_FALSE=
 fi
 
-if test "$enable_namespacing" != no; then
-  NAMESPACING=yes
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_FALSE='#'
 else
-  NAMESPACING=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_FALSE=
 fi
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_FALSE='#'
 else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_FALSE='#'
 else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" \
-     && { test "$build" = "$host" \
-          || { test "$build_os" = cygwin && test "$host_os" = mingw32; }; \
-        }; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-       # Check to see if the nm accepts a BSD-compat flag.
-       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-       #   nm: unknown option "B" ignored
-       # Tru64's nm complains that /dev/null is an invalid object file
-       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-       */dev/null* | *'Invalid file or object type'*)
-         lt_cv_path_NM="$tmp_nm -B"
-         break
-         ;;
-       *)
-         case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-         */dev/null*)
-           lt_cv_path_NM="$tmp_nm -p"
-           break
-           ;;
-         *)
-           lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-           continue # so that we can try to find one that supports BSD flags
-           ;;
-         esac
-         ;;
-       esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$DUMPBIN"; then :
-    # Let the user override the test.
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in dumpbin "link -dump"
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DUMPBIN"; then
-  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_FALSE=
 fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_FALSE='#'
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_FALSE=
 fi
 
 
-    test -n "$DUMPBIN" && break
-  done
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_FALSE=
 fi
-if test -z "$DUMPBIN"; then
-  ac_ct_DUMPBIN=$DUMPBIN
-  for ac_prog in dumpbin "link -dump"
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_FALSE='#'
 else
-  if test -n "$ac_ct_DUMPBIN"; then
-  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_FALSE='#'
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_FALSE=
+fi
+
+
+
 
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_FALSE=
 fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_FALSE=
 fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_FALSE='#'
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_FALSE=
 fi
 
 
-  test -n "$ac_ct_DUMPBIN" && break
-done
 
-  if test "x$ac_ct_DUMPBIN" = x; then
-    DUMPBIN=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DUMPBIN=$ac_ct_DUMPBIN
-  fi
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_FALSE=
 fi
 
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
-    *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
-      ;;
-    *)
-      DUMPBIN=:
-      ;;
-    esac
-  fi
 
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_FALSE=
 fi
-test -z "$NM" && NM=nm
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_FALSE='#'
 else
-  lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:32582: $ac_compile\"" >&5)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:32585: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:32588: output\"" >&5)
-  cat conftest.out >&5
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_FALSE='#'
 else
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-     for ac_i in 1 2 3 4 5 6 7; do
-       ac_script="$ac_script$as_nl$ac_script"
-     done
-     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     { ac_script=; unset ac_script;}
-     if test -z "$SED"; then
-  ac_path_SED_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
-# Check for GNU ac_path_SED and select it if it is found.
-  # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
-  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo '' >> "conftest.nl"
-    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_SED_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_SED="$ac_path_SED"
-      ac_path_SED_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_FALSE=
+fi
 
-      $ac_path_SED_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_SED"; then
-    as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
-  fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_FALSE='#'
 else
-  ac_cv_path_SED=$SED
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_FALSE=
 fi
 
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_FALSE=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
-  rm -f conftest.sed
 
 
 
 
 
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_FALSE='#'
 else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_FALSE=
+fi
 
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
 
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
 
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
 
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
 
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
 
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-linux* | k*bsd*-gnu)
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDGIRSTW]'
-    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[BCDEGRST]'
-  ;;
-osf*)
-  symcode='[BCDEGQRST]'
-  ;;
-solaris*)
-  symcode='[BDRT]'
-  ;;
-sco3.2v5*)
-  symcode='[DT]'
-  ;;
-sysv4.2uw2*)
-  symcode='[DT]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[ABDT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
 
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
 
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
-esac
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
 
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
 
-  # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[      ]\($symcode$symcode*\)[         ][      ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
 
-  # Check to see that the pipe works correctly.
-  pipe_works=no
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_FALSE=
+fi
 
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
 
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-       mv -f "$nlist"T "$nlist"
-      else
-       rm -f "$nlist"T
-      fi
 
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-       if grep ' nm_test_func$' "$nlist" >/dev/null; then
-         cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
 
-EOF
-         # Now generate the symbol file.
-         eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
 
-         cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
 
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-         cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
 
-#ifdef __cplusplus
-}
-#endif
-EOF
-         # Now try linking the two files.
-         mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
-         LIBS="conftstm.$ac_objext"
-         CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-         if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
-           pipe_works=yes
-         fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
-       else
-         echo "cannot find nm_test_func in $nlist" >&5
-       fi
-      else
-       echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
 
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
 
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE=
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_FALSE=
+fi
+
+
+
+
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+    LIBUNISTRING_UNIGBRK_H='unigbrk.h'
+  else
+    LIBUNISTRING_UNIGBRK_H=
+  fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNIGBRK_U16_GRAPHEME_BREAKS 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNIGBRK_U16_GRAPHEME_NEXT 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNIGBRK_U16_GRAPHEME_PREV 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNIGBRK_U32_GRAPHEME_BREAKS 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNIGBRK_U32_GRAPHEME_NEXT 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNIGBRK_U32_GRAPHEME_PREV 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNIGBRK_U8_GRAPHEME_BREAKS 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNIGBRK_U8_GRAPHEME_NEXT 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNIGBRK_U8_GRAPHEME_PREV 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNIGBRK_ULC_GRAPHEME_BREAKS 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_FALSE=
+fi
+
+
+
+
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+    LIBUNISTRING_UNILBRK_H='unilbrk.h'
+  else
+    LIBUNISTRING_UNILBRK_H=
+  fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_FALSE=
+fi
+
+
+
+
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+    LIBUNISTRING_UNINAME_H='uniname.h'
+  else
+    LIBUNISTRING_UNINAME_H=
+  fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE=
+  LIBUNISTRING_COMPILE_UNINAME_UNINAME_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINAME_UNINAME_FALSE=
+fi
+
+
+
+
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+    LIBUNISTRING_UNINORM_H='uninorm.h'
+  else
+    LIBUNISTRING_UNINORM_H=
+  fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_FILTER_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_FILTER_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_NFC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_NFC_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_NFD_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_NFD_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_NFKC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_NFKC_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_NFKD_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_NFKD_FALSE=
+fi
+
+
+
+
+$as_echo "#define GNULIB_TEST_UNINORM_U16_NORMALIZE 1" >>confdefs.h
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_FALSE=
+fi
+
+
+
+
+$as_echo "#define GNULIB_TEST_UNINORM_U32_NORMALIZE 1" >>confdefs.h
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_FALSE=
+fi
+
+
+
+
+$as_echo "#define GNULIB_TEST_UNINORM_U8_NORMALIZE 1" >>confdefs.h
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE=
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE='#'
+  LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_FALSE=
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_unistd_h='<'unistd.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <unistd.h>" >&5
+$as_echo_n "checking absolute name of <unistd.h>... " >&6; }
+if ${gl_cv_next_unistd_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+             if test $ac_cv_header_unistd_h = yes; then
+
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <unistd.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'unistd.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_unistd_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_unistd_h
+           gl_cv_next_unistd_h='"'$gl_header'"'
+          else
+               gl_cv_next_unistd_h='<'unistd.h'>'
+             fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5
+$as_echo "$gl_cv_next_unistd_h" >&6; }
+     fi
+     NEXT_UNISTD_H=$gl_cv_next_unistd_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'unistd.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_unistd_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive
+
+
+
+
+  if test $ac_cv_header_unistd_h = yes; then
+    HAVE_UNISTD_H=1
+  else
+    HAVE_UNISTD_H=0
+  fi
+
+
+
+
+
+
+
+    for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat     fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups     gethostname getlogin getlogin_r getpagesize     getusershell setusershell endusershell     group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite     readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r     unlink unlinkat usleep; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+/* Some systems declare various items in the wrong headers.  */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <fcntl.h>
+# include <stdio.h>
+# include <stdlib.h>
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+#  include <io.h>
+# endif
+#endif
+
+int
+main ()
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+    LIBUNISTRING_UNISTDIO_H='unistdio.h'
+  else
+    LIBUNISTRING_UNISTDIO_H=
+  fi
+
+
+
+
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_FALSE=
+fi
+
+
+
+
+
+
+
+
+  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
+
+else
+
+$as_echo "#define ptrdiff_t long" >>confdefs.h
+
+
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_FALSE=
+fi
+
+
+
+
+
+
+
+  case "$gl_cv_func_printf_infinite" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+  case "$gl_cv_func_printf_long_double" in
+    *yes)
+      case "$gl_cv_func_printf_infinite_long_double" in
+        *yes)
+          ;;
+        *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
+
+          ;;
+      esac
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_a" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
+
+      for ac_func in nl_langinfo
+do :
+  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
+if test "x$ac_cv_func_nl_langinfo" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NL_LANGINFO 1
+_ACEOF
+
+fi
+done
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_f" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_ls" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_grouping" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_leftadjust" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_zero" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_precision" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_enomem" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_FALSE=
+fi
+
+
+
+
+
+
+
+  case "$gl_cv_func_printf_infinite" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+  case "$gl_cv_func_printf_long_double" in
+    *yes)
+      case "$gl_cv_func_printf_infinite_long_double" in
+        *yes)
+          ;;
+        *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
+
+          ;;
+      esac
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_a" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
+
+      for ac_func in nl_langinfo
+do :
+  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
+if test "x$ac_cv_func_nl_langinfo" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NL_LANGINFO 1
+_ACEOF
+
+fi
+done
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_f" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_ls" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_grouping" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_leftadjust" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_zero" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_precision" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_enomem" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_FALSE=
+fi
+
+
+
+
+
+
+
+
+  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
+
+else
+
+$as_echo "#define ptrdiff_t long" >>confdefs.h
+
+
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_FALSE=
+fi
+
+
+
+
+
+
+
+  case "$gl_cv_func_printf_infinite" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+  case "$gl_cv_func_printf_long_double" in
+    *yes)
+      case "$gl_cv_func_printf_infinite_long_double" in
+        *yes)
+          ;;
+        *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
+
+          ;;
+      esac
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_a" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
+
+      for ac_func in nl_langinfo
+do :
+  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
+if test "x$ac_cv_func_nl_langinfo" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NL_LANGINFO 1
+_ACEOF
+
+fi
+done
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_f" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_ls" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_grouping" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_leftadjust" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_zero" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_precision" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_enomem" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_FALSE=
+fi
+
+
+
+
+
+
+
+  case "$gl_cv_func_printf_infinite" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+  case "$gl_cv_func_printf_long_double" in
+    *yes)
+      case "$gl_cv_func_printf_infinite_long_double" in
+        *yes)
+          ;;
+        *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
+
+          ;;
+      esac
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_a" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
+
+      for ac_func in nl_langinfo
+do :
+  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
+if test "x$ac_cv_func_nl_langinfo" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NL_LANGINFO 1
+_ACEOF
+
+fi
+done
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_f" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_ls" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_grouping" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_leftadjust" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_zero" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_precision" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_enomem" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_FALSE=
+fi
+
+
+
+
+
+
+
+
+  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
+
+else
+
+$as_echo "#define ptrdiff_t long" >>confdefs.h
+
+
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_FALSE=
+fi
+
+
+
+
+
+
+
+  case "$gl_cv_func_printf_infinite" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+  case "$gl_cv_func_printf_long_double" in
+    *yes)
+      case "$gl_cv_func_printf_infinite_long_double" in
+        *yes)
+          ;;
+        *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
+
+          ;;
+      esac
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_a" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
+
+      for ac_func in nl_langinfo
+do :
+  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
+if test "x$ac_cv_func_nl_langinfo" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NL_LANGINFO 1
+_ACEOF
+
+fi
+done
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_f" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_ls" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_grouping" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_leftadjust" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_zero" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_precision" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_enomem" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_FALSE=
+fi
+
+
+
+
+
+
+
+  case "$gl_cv_func_printf_infinite" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+  case "$gl_cv_func_printf_long_double" in
+    *yes)
+      case "$gl_cv_func_printf_infinite_long_double" in
+        *yes)
+          ;;
+        *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
+
+          ;;
+      esac
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_a" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
+
+      for ac_func in nl_langinfo
+do :
+  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
+if test "x$ac_cv_func_nl_langinfo" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NL_LANGINFO 1
+_ACEOF
+
+fi
+done
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_f" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_ls" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_grouping" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_leftadjust" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_zero" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_precision" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_enomem" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_FALSE=
+fi
+
+
+
+
+
+
+
+
+  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
+
+else
+
+$as_echo "#define ptrdiff_t long" >>confdefs.h
+
+
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_FALSE=
+fi
+
+
+
+
+
+
+
+  case "$gl_cv_func_printf_infinite" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+  case "$gl_cv_func_printf_long_double" in
+    *yes)
+      case "$gl_cv_func_printf_infinite_long_double" in
+        *yes)
+          ;;
+        *)
+
+$as_echo "#define NEED_PRINTF_INFINITE_LONG_DOUBLE 1" >>confdefs.h
+
+          ;;
+      esac
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_a" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_A 1" >>confdefs.h
+
+      for ac_func in nl_langinfo
+do :
+  ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
+if test "x$ac_cv_func_nl_langinfo" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NL_LANGINFO 1
+_ACEOF
+
+fi
+done
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_f" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_F 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_directive_ls" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_DIRECTIVE_LS 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_grouping" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_GROUPING 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_leftadjust" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_LEFTADJUST 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_flag_zero" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_FLAG_ZERO 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_precision" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_UNBOUNDED_PRECISION 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+  case "$gl_cv_func_printf_enomem" in
+    *yes)
+      ;;
+    *)
+
+$as_echo "#define NEED_PRINTF_ENOMEM 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_DOUBLE 1" >>confdefs.h
+
+
+$as_echo "#define NEED_PRINTF_LONG_DOUBLE 1" >>confdefs.h
+
+      ;;
+  esac
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE=
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_FALSE=
+fi
+
+
+
+
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 2
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+    LIBUNISTRING_UNISTR_H='unistr.h'
+  else
+    LIBUNISTRING_UNISTR_H=
+  fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_CHR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_CHR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_CMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_CMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_CPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_CPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U16_MBTOUC 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U16_MBTOUC_UNSAFE 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U16_MBTOUCR 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_PREV_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_PREV_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_SET_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_SET_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 3
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 3
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 3
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U16_UCTOMB 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_CHR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_CHR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_CMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_CMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_CPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_CPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U32_MBTOUC 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U32_MBTOUC_UNSAFE 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U32_MBTOUCR 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_PREV_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_PREV_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_SET_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_SET_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 3
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U32_UCTOMB 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_CHR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_CHR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_CMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_CMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_CPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_CPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U8_MBTOUC 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U8_MBTOUC_UNSAFE 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U8_MBTOUCR 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_PREV_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_PREV_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_SET_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_SET_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 3
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_FALSE=
+fi
+
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 3
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 3
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_UNISTR_U8_UCTOMB 1
+_ACEOF
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE=
+  LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE='#'
+  LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE=
+fi
+
+
+
+
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+    LIBUNISTRING_UNITYPES_H='unitypes.h'
+  else
+    LIBUNISTRING_UNITYPES_H=
+  fi
+
+
+
+
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+    LIBUNISTRING_UNIWBRK_H='uniwbrk.h'
+  else
+    LIBUNISTRING_UNIWBRK_H=
+  fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE=
+  LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE=
+  LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_FALSE=
+fi
+
+
+
+
+      if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+    LIBUNISTRING_UNIWIDTH_H='uniwidth.h'
+  else
+    LIBUNISTRING_UNIWIDTH_H=
+  fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE=
+  LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE=
+  LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE=
+  LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE=
+  LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE=
+  LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE=
+  LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_FALSE=
+fi
+
+
+
+
+       if  { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+
+
+
+            test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                         }
+                    }
+               }
+
+
+
+
+       }
+  }; then
+  LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE=
+  LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE='#'
+else
+  LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE='#'
+  LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE=
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_wchar_h='<'wchar.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wchar.h>" >&5
+$as_echo_n "checking absolute name of <wchar.h>... " >&6; }
+if ${gl_cv_next_wchar_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+             if test $ac_cv_header_wchar_h = yes; then
+
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <wchar.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'wchar.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_wchar_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_wchar_h
+           gl_cv_next_wchar_h='"'$gl_header'"'
+          else
+               gl_cv_next_wchar_h='<'wchar.h'>'
+             fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5
+$as_echo "$gl_cv_next_wchar_h" >&6; }
+     fi
+     NEXT_WCHAR_H=$gl_cv_next_wchar_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'wchar.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_wchar_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive
+
+
+
+
+  if test $ac_cv_header_wchar_h = yes; then
+    HAVE_WCHAR_H=1
+  else
+    HAVE_WCHAR_H=0
+  fi
+
+
+
+
+
+  if test $gt_cv_c_wint_t = yes; then
+    HAVE_WINT_T=1
+  else
+    HAVE_WINT_T=0
+  fi
+
+
+
+    for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb      wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset      wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp      wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr      wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth     ; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+#endif
+#include <wchar.h>
+
+int
+main ()
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+
+
+
+
+  if test $ac_cv_func_iswcntrl = yes; then
+    HAVE_ISWCNTRL=1
+  else
+    HAVE_ISWCNTRL=0
+  fi
+
+
+
+  if test $gt_cv_c_wint_t = yes; then
+    HAVE_WINT_T=1
+  else
+    HAVE_WINT_T=0
+  fi
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_wctype_h='<'wctype.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
+$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
+if ${gl_cv_next_wctype_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+             if test $ac_cv_header_wctype_h = yes; then
+
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <wctype.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'wctype.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_wctype_h
+           gl_cv_next_wctype_h='"'$gl_header'"'
+          else
+               gl_cv_next_wctype_h='<'wctype.h'>'
+             fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wctype_h" >&5
+$as_echo "$gl_cv_next_wctype_h" >&6; }
+     fi
+     NEXT_WCTYPE_H=$gl_cv_next_wctype_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'wctype.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_wctype_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H=$gl_next_as_first_directive
+
+
+
+
+  if test $ac_cv_header_wctype_h = yes; then
+    if test $ac_cv_func_iswcntrl = yes; then
+                  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
+$as_echo_n "checking whether iswcntrl works... " >&6; }
+if ${gl_cv_func_iswcntrl_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+          if test "$cross_compiling" = yes; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+                          #if __GNU_LIBRARY__ == 1
+                          Linux libc5 i18n is broken.
+                          #endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_func_iswcntrl_works="guessing yes"
+else
+  gl_cv_func_iswcntrl_works="guessing no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+               /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+                  included before <wchar.h>.
+                  BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+                  must be included before <wchar.h>.  */
+               #include <stddef.h>
+               #include <stdio.h>
+               #include <time.h>
+               #include <wchar.h>
+               #include <wctype.h>
+               int main () { return iswprint ('x') == 0; }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_iswcntrl_works=yes
+else
+  gl_cv_func_iswcntrl_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
+$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
+    fi
+    HAVE_WCTYPE_H=1
+  else
+    HAVE_WCTYPE_H=0
+  fi
+
+
+  case "$gl_cv_func_iswcntrl_works" in
+    *yes) REPLACE_ISWCNTRL=0 ;;
+    *)    REPLACE_ISWCNTRL=1 ;;
+  esac
+
+
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+        :
+  fi
+
+  if test $REPLACE_ISWCNTRL = 1; then
+    REPLACE_TOWLOWER=1
+  else
+    for ac_func in towlower
+do :
+  ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower"
+if test "x$ac_cv_func_towlower" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TOWLOWER 1
+_ACEOF
+
+fi
+done
+
+    if test $ac_cv_func_towlower = yes; then
+      REPLACE_TOWLOWER=0
+    else
+      ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+             included before <wchar.h>.
+             BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+             must be included before <wchar.h>.  */
+          #include <stddef.h>
+          #include <stdio.h>
+          #include <time.h>
+          #include <wchar.h>
+          #if HAVE_WCTYPE_H
+          # include <wctype.h>
+          #endif
+
+"
+if test "x$ac_cv_have_decl_towlower" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_TOWLOWER $ac_have_decl
+_ACEOF
+
+      if test $ac_cv_have_decl_towlower = yes; then
+                                REPLACE_TOWLOWER=1
+      else
+        REPLACE_TOWLOWER=0
+      fi
+    fi
+  fi
+
+
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+        :
+  fi
+
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
+$as_echo_n "checking for wctype_t... " >&6; }
+if ${gl_cv_type_wctype_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+               included before <wchar.h>.
+               BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+               must be included before <wchar.h>.  */
+            #include <stddef.h>
+            #include <stdio.h>
+            #include <time.h>
+            #include <wchar.h>
+            #if HAVE_WCTYPE_H
+            # include <wctype.h>
+            #endif
+            wctype_t a;
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_type_wctype_t=yes
+else
+  gl_cv_type_wctype_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5
+$as_echo "$gl_cv_type_wctype_t" >&6; }
+  if test $gl_cv_type_wctype_t = no; then
+    HAVE_WCTYPE_T=0
+  fi
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
+$as_echo_n "checking for wctrans_t... " >&6; }
+if ${gl_cv_type_wctrans_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+               included before <wchar.h>.
+               BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+               must be included before <wchar.h>.  */
+            #include <stddef.h>
+            #include <stdio.h>
+            #include <time.h>
+            #include <wchar.h>
+            #include <wctype.h>
+            wctrans_t a;
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_type_wctrans_t=yes
+else
+  gl_cv_type_wctrans_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5
+$as_echo "$gl_cv_type_wctrans_t" >&6; }
+  if test $gl_cv_type_wctrans_t = no; then
+    HAVE_WCTRANS_T=0
+  fi
+
+
+    for gl_func in wctype iswctype wctrans towctrans     ; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+
+int
+main ()
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+
+
+
+
+
+
+
+
+
+
+  ac_fn_c_check_decl "$LINENO" "wcwidth" "ac_cv_have_decl_wcwidth" "
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+   before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+"
+if test "x$ac_cv_have_decl_wcwidth" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_WCWIDTH $ac_have_decl
+_ACEOF
+
+  if test $ac_cv_have_decl_wcwidth != yes; then
+    HAVE_DECL_WCWIDTH=0
+  fi
+
+  if test $ac_cv_func_wcwidth = yes; then
+    HAVE_WCWIDTH=1
+                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcwidth works reasonably in UTF-8 locales" >&5
+$as_echo_n "checking whether wcwidth works reasonably in UTF-8 locales... " >&6; }
+if ${gl_cv_func_wcwidth_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+        if test "$cross_compiling" = yes; then :
+
+           case "$host_os" in
+                     # Guess yes on glibc and AIX 7 systems.
+             *-gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
+             *)                  gl_cv_func_wcwidth_works="guessing no";;
+           esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+   before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+#if !HAVE_DECL_WCWIDTH
+extern
+# ifdef __cplusplus
+"C"
+# endif
+int wcwidth (int);
+#endif
+int main ()
+{
+  int result = 0;
+  if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
+    {
+      if (wcwidth (0x0301) > 0)
+        result |= 1;
+      if (wcwidth (0x05B0) > 0)
+        result |= 2;
+      if (wcwidth (0x200B) > 0)
+        result |= 4;
+    }
+  return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_wcwidth_works=yes
+else
+  gl_cv_func_wcwidth_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcwidth_works" >&5
+$as_echo "$gl_cv_func_wcwidth_works" >&6; }
+    case "$gl_cv_func_wcwidth_works" in
+      *yes) ;;
+      *no) REPLACE_WCWIDTH=1 ;;
+    esac
+  else
+    HAVE_WCWIDTH=0
+  fi
+
+  if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_WCWIDTH=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_WCWIDTH 1" >>confdefs.h
+
+
+
+
+
+  for ac_header in stdint.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STDINT_H 1
+_ACEOF
+
+fi
+
+done
+
+
+  # End of code from modules
+
+
+
+
+
+
+
+
+
+  gltests_libdeps=
+  gltests_ltlibdeps=
+
+
+
+
+
+
+
+
+
+  gl_source_base='tests'
+  gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
+
+  gl_module_indicator_condition=$gltests_WITNESS
+
+
+
+
+
+
+
+  if test $ac_cv_func_btowc = no; then
+    HAVE_BTOWC=0
+  else
+
+
+
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5
+$as_echo_n "checking whether btowc(0) is correct... " >&6; }
+if ${gl_cv_func_btowc_nul+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+        if test "$cross_compiling" = yes; then :
+
+           case "$host_os" in
+                      # Guess no on Cygwin.
+             cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
+                      # Guess yes otherwise.
+             *)       gl_cv_func_btowc_nul="guessing yes" ;;
+           esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  if (btowc ('\0') != 0)
+    return 1;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_btowc_nul=yes
+else
+  gl_cv_func_btowc_nul=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5
+$as_echo "$gl_cv_func_btowc_nul" >&6; }
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5
+$as_echo_n "checking whether btowc(EOF) is correct... " >&6; }
+if ${gl_cv_func_btowc_eof+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+                        case "$host_os" in
+                 # Guess no on IRIX.
+          irix*) gl_cv_func_btowc_eof="guessing no" ;;
+                 # Guess yes otherwise.
+          *)     gl_cv_func_btowc_eof="guessing yes" ;;
+        esac
+        if test $LOCALE_FR != none; then
+          if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+    {
+      if (btowc (EOF) != WEOF)
+        return 1;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_btowc_eof=yes
+else
+  gl_cv_func_btowc_eof=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+        fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5
+$as_echo "$gl_cv_func_btowc_eof" >&6; }
+
+    case "$gl_cv_func_btowc_nul" in
+      *yes) ;;
+      *) REPLACE_BTOWC=1 ;;
+    esac
+    case "$gl_cv_func_btowc_eof" in
+      *yes) ;;
+      *) REPLACE_BTOWC=1 ;;
+    esac
+  fi
+
+  if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS btowc.$ac_objext"
+
+
+  :
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_BTOWC" != 1; then
+        if test "$GNULIB_BTOWC" = 0; then
+      GNULIB_BTOWC=$gl_module_indicator_condition
+    else
+      GNULIB_BTOWC="($GNULIB_BTOWC || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_BTOWC 1" >>confdefs.h
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a turkish Unicode locale" >&5
+$as_echo_n "checking for a turkish Unicode locale... " >&6; }
+if ${gt_cv_locale_tr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  But BeOS does not
+     implement the Turkish upper-/lowercase mappings.  Therefore, let this
+     program return 1 on BeOS.  */
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the eighth month, the second
+     character (should be U+011F: LATIN SMALL LETTER G WITH BREVE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1992 - 1900; t.tm_mon = 8 - 1; t.tm_mday = 19;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc4 || buf[2] != (char) 0x9f)
+    return 1;
+  /* Check whether the upper-/lowercase mappings are as expected for
+     Turkish.  */
+  if (towupper ('i') != 0x0130 || towlower (0x0130) != 'i'
+      || towupper(0x0131) != 'I' || towlower ('I') != 0x0131)
+    return 1;
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=Turkish_Turkey.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_tr_utf8=Turkish_Turkey.65001
+          else
+            # None found.
+            gt_cv_locale_tr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_tr_utf8=tr_TR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_tr_utf8=tr_TR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_tr_utf8=tr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_tr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    else
+      gt_cv_locale_tr_utf8=none
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_tr_utf8" >&5
+$as_echo "$gt_cv_locale_tr_utf8" >&6; }
+  LOCALE_TR_UTF8=$gt_cv_locale_tr_utf8
+
+
+
+
+
+
+
+
+    if test "$GNULIB_ENVIRON" != 1; then
+        if test "$GNULIB_ENVIRON" = 0; then
+      GNULIB_ENVIRON=$gl_module_indicator_condition
+    else
+      GNULIB_ENVIRON="($GNULIB_ENVIRON || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h
+
+
+
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
+$as_echo_n "checking for error_at_line... " >&6; }
+if ${ac_cv_lib_error_at_line+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <error.h>
+int
+main ()
+{
+error_at_line (0, 0, "", 0, "an error occurred");
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_error_at_line=yes
+else
+  ac_cv_lib_error_at_line=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
+$as_echo "$ac_cv_lib_error_at_line" >&6; }
+
+  if test $ac_cv_lib_error_at_line = no; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS error.$ac_objext"
+
+
+
+  :
+
+  fi
+
+
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format"
+
+
+
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format"
+
+
+
+
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_FDOPEN=1
+  else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fdopen sets errno" >&5
+$as_echo_n "checking whether fdopen sets errno... " >&6; }
+if ${gl_cv_func_fdopen_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+        if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+             mingw*) gl_cv_func_fdopen_works="guessing no" ;;
+             *)      gl_cv_func_fdopen_works="guessing yes" ;;
+           esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <errno.h>
+int
+main (void)
+{
+  FILE *fp;
+  errno = 0;
+  fp = fdopen (-1, "r");
+  if (fp == NULL && errno == 0)
+    return 1;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_fdopen_works=yes
+else
+  gl_cv_func_fdopen_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fdopen_works" >&5
+$as_echo "$gl_cv_func_fdopen_works" >&6; }
+    case "$gl_cv_func_fdopen_works" in
+      *no) REPLACE_FDOPEN=1 ;;
+    esac
+  fi
+
+  if test $REPLACE_FDOPEN = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS fdopen.$ac_objext"
+
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_FDOPEN" != 1; then
+        if test "$GNULIB_FDOPEN" = 0; then
+      GNULIB_FDOPEN=$gl_module_indicator_condition
+    else
+      GNULIB_FDOPEN="($GNULIB_FDOPEN || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FDOPEN 1" >>confdefs.h
+
+
+
+
+
+
+  for ac_func in getpagesize
+do :
+  ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_GETPAGESIZE 1
+_ACEOF
+
+fi
+done
+
+  if test $ac_cv_func_getpagesize = no; then
+    HAVE_GETPAGESIZE=0
+    for ac_header in OS.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "OS.h" "ac_cv_header_OS_h" "$ac_includes_default"
+if test "x$ac_cv_header_OS_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_OS_H 1
+_ACEOF
+
+fi
+
+done
+
+    if test $ac_cv_header_OS_h = yes; then
+      HAVE_OS_H=1
+    fi
+    for ac_header in sys/param.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_param_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_PARAM_H 1
+_ACEOF
+
+fi
+
+done
+
+    if test $ac_cv_header_sys_param_h = yes; then
+      HAVE_SYS_PARAM_H=1
+    fi
+  fi
+  case "$host_os" in
+    mingw*)
+      REPLACE_GETPAGESIZE=1
+      ;;
+  esac
+      ac_fn_c_check_decl "$LINENO" "getpagesize" "ac_cv_have_decl_getpagesize" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getpagesize" = xyes; then :
+
+else
+  HAVE_DECL_GETPAGESIZE=0
+fi
+
+
+  if test $REPLACE_GETPAGESIZE = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS getpagesize.$ac_objext"
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_GETPAGESIZE" != 1; then
+        if test "$GNULIB_GETPAGESIZE" = 0; then
+      GNULIB_GETPAGESIZE=$gl_module_indicator_condition
+    else
+      GNULIB_GETPAGESIZE="($GNULIB_GETPAGESIZE || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+  PRIPTR_PREFIX=
+  if test -n "$STDINT_H"; then
+        PRIPTR_PREFIX='"l"'
+  else
+        for glpfx in '' l ll I64; do
+      case $glpfx in
+        '')  gltype1='int';;
+        l)   gltype1='long int';;
+        ll)  gltype1='long long int';;
+        I64) gltype1='__int64';;
+      esac
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdint.h>
+           extern intptr_t foo;
+           extern $gltype1 foo;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  PRIPTR_PREFIX='"'$glpfx'"'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      test -n "$PRIPTR_PREFIX" && break
+    done
+  fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT32_MAX < INTMAX_MAX" >&5
+$as_echo_n "checking whether INT32_MAX < INTMAX_MAX... " >&6; }
+if ${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Work also in C++ mode.  */
+            #define __STDC_LIMIT_MACROS 1
+
+            /* Work if build is not clean.  */
+            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+
+            #include <limits.h>
+            #if HAVE_STDINT_H
+             #include <stdint.h>
+            #endif
+
+            #if defined INT32_MAX && defined INTMAX_MAX
+             #define CONDITION (INT32_MAX < INTMAX_MAX)
+            #elif HAVE_LONG_LONG_INT
+             #define CONDITION (sizeof (int) < sizeof (long long int))
+            #else
+             #define CONDITION 0
+            #endif
+            int test[CONDITION ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes
+else
+  gl_cv_test_INT32_MAX_LT_INTMAX_MAX=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&5
+$as_echo "$gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&6; }
+  if test $gl_cv_test_INT32_MAX_LT_INTMAX_MAX = yes; then
+    INT32_MAX_LT_INTMAX_MAX=1;
+  else
+    INT32_MAX_LT_INTMAX_MAX=0;
+  fi
+
+
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT64_MAX == LONG_MAX" >&5
+$as_echo_n "checking whether INT64_MAX == LONG_MAX... " >&6; }
+if ${gl_cv_test_INT64_MAX_EQ_LONG_MAX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Work also in C++ mode.  */
+            #define __STDC_LIMIT_MACROS 1
+
+            /* Work if build is not clean.  */
+            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+
+            #include <limits.h>
+            #if HAVE_STDINT_H
+             #include <stdint.h>
+            #endif
+
+            #if defined INT64_MAX
+             #define CONDITION (INT64_MAX == LONG_MAX)
+            #elif HAVE_LONG_LONG_INT
+             #define CONDITION (sizeof (long long int) == sizeof (long int))
+            #else
+             #define CONDITION 0
+            #endif
+            int test[CONDITION ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes
+else
+  gl_cv_test_INT64_MAX_EQ_LONG_MAX=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&5
+$as_echo "$gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&6; }
+  if test $gl_cv_test_INT64_MAX_EQ_LONG_MAX = yes; then
+    INT64_MAX_EQ_LONG_MAX=1;
+  else
+    INT64_MAX_EQ_LONG_MAX=0;
+  fi
+
+
+  else
+    INT64_MAX_EQ_LONG_MAX=-1
+  fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UINT32_MAX < UINTMAX_MAX" >&5
+$as_echo_n "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; }
+if ${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Work also in C++ mode.  */
+            #define __STDC_LIMIT_MACROS 1
+
+            /* Work if build is not clean.  */
+            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+
+            #include <limits.h>
+            #if HAVE_STDINT_H
+             #include <stdint.h>
+            #endif
+
+            #if defined UINT32_MAX && defined UINTMAX_MAX
+             #define CONDITION (UINT32_MAX < UINTMAX_MAX)
+            #elif HAVE_LONG_LONG_INT
+             #define CONDITION (sizeof (unsigned int) < sizeof (unsigned long long int))
+            #else
+             #define CONDITION 0
+            #endif
+            int test[CONDITION ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes
+else
+  gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&5
+$as_echo "$gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&6; }
+  if test $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX = yes; then
+    UINT32_MAX_LT_UINTMAX_MAX=1;
+  else
+    UINT32_MAX_LT_UINTMAX_MAX=0;
+  fi
+
+
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UINT64_MAX == ULONG_MAX" >&5
+$as_echo_n "checking whether UINT64_MAX == ULONG_MAX... " >&6; }
+if ${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Work also in C++ mode.  */
+            #define __STDC_LIMIT_MACROS 1
+
+            /* Work if build is not clean.  */
+            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+
+            #include <limits.h>
+            #if HAVE_STDINT_H
+             #include <stdint.h>
+            #endif
+
+            #if defined UINT64_MAX
+             #define CONDITION (UINT64_MAX == ULONG_MAX)
+            #elif HAVE_LONG_LONG_INT
+             #define CONDITION (sizeof (unsigned long long int) == sizeof (unsigned long int))
+            #else
+             #define CONDITION 0
+            #endif
+            int test[CONDITION ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes
+else
+  gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&5
+$as_echo "$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; }
+  if test $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX = yes; then
+    UINT64_MAX_EQ_ULONG_MAX=1;
+  else
+    UINT64_MAX_EQ_ULONG_MAX=0;
+  fi
+
+
+  else
+    UINT64_MAX_EQ_ULONG_MAX=-1
+  fi
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
+$as_echo_n "checking where to find the exponent in a 'double'... " >&6; }
+if ${gl_cv_cc_double_expbit0+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      if test "$cross_compiling" = yes; then :
+
+                                                                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#if defined arm || defined __arm || defined __arm__
+  mixed_endianness
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "mixed_endianness" >/dev/null 2>&1; then :
+  gl_cv_cc_double_expbit0="unknown"
+else
+
+                                                         :
+if ${ac_cv_c_bigendian+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+              not a universal capable compiler
+            #endif
+            typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+       # Check for potential -arch flags.  It is not universal unless
+       # there are at least two -arch flags with different values.
+       ac_arch=
+       ac_prev=
+       for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+        if test -n "$ac_prev"; then
+          case $ac_word in
+            i?86 | x86_64 | ppc | ppc64)
+              if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+                ac_arch=$ac_word
+              else
+                ac_cv_c_bigendian=universal
+                break
+              fi
+              ;;
+          esac
+          ac_prev=
+        elif test "x$ac_word" = "x-arch"; then
+          ac_prev=arch
+        fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+            #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+                    && LITTLE_ENDIAN)
+             bogus endian macros
+            #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+               #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+                not big endian
+               #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+             bogus endian macros
+            #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+                not big endian
+               #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then :
+  # Try to guess by grepping values from an object file.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+short int ascii_mm[] =
+                 { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+               short int ascii_ii[] =
+                 { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+               int use_ascii (int i) {
+                 return ascii_mm[i] + ascii_ii[i];
+               }
+               short int ebcdic_ii[] =
+                 { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+               short int ebcdic_mm[] =
+                 { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+               int use_ebcdic (int i) {
+                 return ebcdic_mm[i] + ebcdic_ii[i];
+               }
+               extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+             ac_cv_c_bigendian=yes
+           fi
+           if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+             if test "$ac_cv_c_bigendian" = unknown; then
+               ac_cv_c_bigendian=no
+             else
+               # finding both strings is unlikely to happen, but who knows?
+               ac_cv_c_bigendian=unknown
+             fi
+           fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+            /* Are we little or big endian?  From Harbison&Steele.  */
+            union
+            {
+              long int l;
+              char c[sizeof (long int)];
+            } u;
+            u.l = 1;
+            return u.c[sizeof (long int) - 1] == 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_c_bigendian=no
+else
+  ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+    fi
+fi
+:
+ case $ac_cv_c_bigendian in #(
+   yes)
+     gl_cv_cc_double_expbit0="word 0 bit 20";; #(
+   no)
+     gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
+   universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+     ;; #(
+   *)
+     gl_cv_cc_double_expbit0="unknown" ;;
+ esac
+
+
+fi
+rm -f conftest*
+
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+  ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
+{
+  memory_double m;
+  size_t i;
+  /* Clear it first, in case sizeof (double) < sizeof (memory_double).  */
+  memset (&m, 0, sizeof (memory_double));
+  m.value = x;
+  for (i = 0; i < NWORDS; i++)
+    {
+      ored_words[i] |= m.word[i];
+      anded_words[i] &= m.word[i];
+    }
+}
+int main ()
+{
+  size_t j;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  for (j = 0; j < NWORDS; j++)
+    anded_words[j] = ~ (unsigned int) 0;
+  add_to_ored_words (0.25);
+  add_to_ored_words (0.5);
+  add_to_ored_words (1.0);
+  add_to_ored_words (2.0);
+  add_to_ored_words (4.0);
+  /* Remove bits that are common (e.g. if representation of the first mantissa
+     bit is explicit).  */
+  for (j = 0; j < NWORDS; j++)
+    ored_words[j] &= ~anded_words[j];
+  /* Now find the nonzero word.  */
+  for (j = 0; j < NWORDS; j++)
+    if (ored_words[j] != 0)
+      break;
+  if (j < NWORDS)
+    {
+      size_t i;
+      for (i = j + 1; i < NWORDS; i++)
+        if (ored_words[i] != 0)
+          {
+            fprintf (fp, "unknown");
+            return (fclose (fp) != 0);
+          }
+      for (i = 0; ; i++)
+        if ((ored_words[j] >> i) & 1)
+          {
+            fprintf (fp, "word %d bit %d", (int) j, (int) i);
+            return (fclose (fp) != 0);
+          }
+    }
+  fprintf (fp, "unknown");
+  return (fclose (fp) != 0);
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_cc_double_expbit0=`cat conftest.out`
+else
+  gl_cv_cc_double_expbit0="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+      rm -f conftest.out
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
+$as_echo "$gl_cv_cc_double_expbit0" >&6; }
+  case "$gl_cv_cc_double_expbit0" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
+
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_WORD $word
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_BIT $bit
+_ACEOF
+
+      ;;
+  esac
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'float'" >&5
+$as_echo_n "checking where to find the exponent in a 'float'... " >&6; }
+if ${gl_cv_cc_float_expbit0+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      if test "$cross_compiling" = yes; then :
+  gl_cv_cc_float_expbit0="word 0 bit 23"
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+  ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { float value; unsigned int word[NWORDS]; } memory_float;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (float x)
+{
+  memory_float m;
+  size_t i;
+  /* Clear it first, in case
+     sizeof (float) < sizeof (memory_float).  */
+  memset (&m, 0, sizeof (memory_float));
+  m.value = x;
+  for (i = 0; i < NWORDS; i++)
+    {
+      ored_words[i] |= m.word[i];
+      anded_words[i] &= m.word[i];
+    }
+}
+int main ()
+{
+  size_t j;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  for (j = 0; j < NWORDS; j++)
+    anded_words[j] = ~ (unsigned int) 0;
+  add_to_ored_words (0.25f);
+  add_to_ored_words (0.5f);
+  add_to_ored_words (1.0f);
+  add_to_ored_words (2.0f);
+  add_to_ored_words (4.0f);
+  /* Remove bits that are common (e.g. if representation of the first mantissa
+     bit is explicit).  */
+  for (j = 0; j < NWORDS; j++)
+    ored_words[j] &= ~anded_words[j];
+  /* Now find the nonzero word.  */
+  for (j = 0; j < NWORDS; j++)
+    if (ored_words[j] != 0)
+      break;
+  if (j < NWORDS)
+    {
+      size_t i;
+      for (i = j + 1; i < NWORDS; i++)
+        if (ored_words[i] != 0)
+          {
+            fprintf (fp, "unknown");
+            return (fclose (fp) != 0);
+          }
+      for (i = 0; ; i++)
+        if ((ored_words[j] >> i) & 1)
+          {
+            fprintf (fp, "word %d bit %d", (int) j, (int) i);
+            return (fclose (fp) != 0);
+          }
+    }
+  fprintf (fp, "unknown");
+  return (fclose (fp) != 0);
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_cc_float_expbit0=`cat conftest.out`
+else
+  gl_cv_cc_float_expbit0="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+      rm -f conftest.out
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_float_expbit0" >&5
+$as_echo "$gl_cv_cc_float_expbit0" >&6; }
+  case "$gl_cv_cc_float_expbit0" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_float_expbit0" | sed -e 's/word.*bit //'`
+
+cat >>confdefs.h <<_ACEOF
+#define FLT_EXPBIT0_WORD $word
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define FLT_EXPBIT0_BIT $bit
+_ACEOF
+
+      ;;
+  esac
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'long double'" >&5
+$as_echo_n "checking where to find the exponent in a 'long double'... " >&6; }
+if ${gl_cv_cc_long_double_expbit0+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+      if test "$cross_compiling" = yes; then :
+
+                              gl_cv_cc_long_double_expbit0="unknown"
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+  ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { long double value; unsigned int word[NWORDS]; }
+        memory_long_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (long double x)
+{
+  memory_long_double m;
+  size_t i;
+  /* Clear it first, in case
+     sizeof (long double) < sizeof (memory_long_double).  */
+  memset (&m, 0, sizeof (memory_long_double));
+  m.value = x;
+  for (i = 0; i < NWORDS; i++)
+    {
+      ored_words[i] |= m.word[i];
+      anded_words[i] &= m.word[i];
+    }
+}
+int main ()
+{
+  size_t j;
+  FILE *fp = fopen ("conftest.out", "w");
+  if (fp == NULL)
+    return 1;
+  for (j = 0; j < NWORDS; j++)
+    anded_words[j] = ~ (unsigned int) 0;
+  add_to_ored_words (0.25L);
+  add_to_ored_words (0.5L);
+  add_to_ored_words (1.0L);
+  add_to_ored_words (2.0L);
+  add_to_ored_words (4.0L);
+  /* Remove bits that are common (e.g. if representation of the first mantissa
+     bit is explicit).  */
+  for (j = 0; j < NWORDS; j++)
+    ored_words[j] &= ~anded_words[j];
+  /* Now find the nonzero word.  */
+  for (j = 0; j < NWORDS; j++)
+    if (ored_words[j] != 0)
+      break;
+  if (j < NWORDS)
+    {
+      size_t i;
+      for (i = j + 1; i < NWORDS; i++)
+        if (ored_words[i] != 0)
+          {
+            fprintf (fp, "unknown");
+            return (fclose (fp) != 0);
+          }
+      for (i = 0; ; i++)
+        if ((ored_words[j] >> i) & 1)
+          {
+            fprintf (fp, "word %d bit %d", (int) j, (int) i);
+            return (fclose (fp) != 0);
+          }
+    }
+  fprintf (fp, "unknown");
+  return (fclose (fp) != 0);
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_cc_long_double_expbit0=`cat conftest.out`
+else
+  gl_cv_cc_long_double_expbit0="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+      rm -f conftest.out
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_long_double_expbit0" >&5
+$as_echo "$gl_cv_cc_long_double_expbit0" >&6; }
+  case "$gl_cv_cc_long_double_expbit0" in
+    word*bit*)
+      word=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+      bit=`echo "$gl_cv_cc_long_double_expbit0" | sed -e 's/word.*bit //'`
+
+cat >>confdefs.h <<_ACEOF
+#define LDBL_EXPBIT0_WORD $word
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define LDBL_EXPBIT0_BIT $bit
+_ACEOF
+
+      ;;
+  esac
+
+
+
+
+
+
+
+
+
+
+  case "$host_os" in
+    solaris*)
+
+$as_echo "#define _LCONV_C99 1" >>confdefs.h
+
+      ;;
+  esac
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5
+$as_echo_n "checking whether locale.h conforms to POSIX:2001... " >&6; }
+if ${gl_cv_header_locale_h_posix2001+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <locale.h>
+            int x = LC_MESSAGES;
+            int y = sizeof (((struct lconv *) 0)->decimal_point);
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_locale_h_posix2001=yes
+else
+  gl_cv_header_locale_h_posix2001=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5
+$as_echo "$gl_cv_header_locale_h_posix2001" >&6; }
+
+
+  if test $ac_cv_header_xlocale_h = yes; then
+    HAVE_XLOCALE_H=1
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5
+$as_echo_n "checking whether locale.h defines locale_t... " >&6; }
+if ${gl_cv_header_locale_has_locale_t+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <locale.h>
+              locale_t x;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_locale_has_locale_t=yes
+else
+  gl_cv_header_locale_has_locale_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5
+$as_echo "$gl_cv_header_locale_has_locale_t" >&6; }
+    if test $gl_cv_header_locale_has_locale_t = yes; then
+      gl_cv_header_locale_h_needs_xlocale_h=no
+    else
+      gl_cv_header_locale_h_needs_xlocale_h=yes
+    fi
+  else
+    HAVE_XLOCALE_H=0
+    gl_cv_header_locale_h_needs_xlocale_h=no
+  fi
+
+
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5
+$as_echo_n "checking whether struct lconv is properly defined... " >&6; }
+if ${gl_cv_sys_struct_lconv_ok+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <locale.h>
+            struct lconv l;
+            int x = sizeof (l.decimal_point);
+            int y = sizeof (l.int_p_cs_precedes);
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_sys_struct_lconv_ok=yes
+else
+  gl_cv_sys_struct_lconv_ok=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5
+$as_echo "$gl_cv_sys_struct_lconv_ok" >&6; }
+  if test $gl_cv_sys_struct_lconv_ok = no; then
+    REPLACE_STRUCT_LCONV=1
+  fi
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_locale_h='<'locale.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <locale.h>" >&5
+$as_echo_n "checking absolute name of <locale.h>... " >&6; }
+if ${gl_cv_next_locale_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <locale.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'locale.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_locale_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_locale_h
+           gl_cv_next_locale_h='"'$gl_header'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5
+$as_echo "$gl_cv_next_locale_h" >&6; }
+     fi
+     NEXT_LOCALE_H=$gl_cv_next_locale_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'locale.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_locale_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive
+
+
+
+
+
+
+    for gl_func in setlocale duplocale; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <locale.h>
+/* Some systems provide declarations in a non-standard header.  */
+#if HAVE_XLOCALE_H
+# include <xlocale.h>
+#endif
+
+int
+main ()
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
+$as_echo_n "checking for a traditional japanese locale... " >&6; }
+if ${gt_cv_locale_ja+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main ()
+{
+  const char *p;
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
+     on Cygwin 1.5.x.  */
+  if (MB_CUR_MAX == 1)
+    return 1;
+  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+     This excludes the UTF-8 encoding (except on MirBSD).  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+  for (p = buf; *p != '\0'; p++)
+    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+      return 1;
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Note that on native Windows, the Japanese locale is
+          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+          # cannot use it here.
+          gt_cv_locale_ja=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the AIX locale name.
+          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_ja=ja_JP
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_ja=ja_JP.EUC-JP
+            else
+              # Test for the HP-UX, OSF/1, NetBSD locale name.
+              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_ja=ja_JP.eucJP
+              else
+                # Test for the IRIX, FreeBSD locale name.
+                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_ja=ja_JP.EUC
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_ja=ja
+                  else
+                    # Special test for NetBSD 1.6.
+                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+                      gt_cv_locale_ja=ja_JP.eucJP
+                    else
+                      # None found.
+                      gt_cv_locale_ja=none
+                    fi
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
+$as_echo "$gt_cv_locale_ja" >&6; }
+  LOCALE_JA=$gt_cv_locale_ja
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
+$as_echo_n "checking for a transitional chinese locale... " >&6; }
+if ${gt_cv_locale_zh_CN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main ()
+{
+  const char *p;
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+     This excludes the UTF-8 encoding (except on MirBSD).  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+  for (p = buf; *p != '\0'; p++)
+    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+      return 1;
+  /* Check whether a typical GB18030 multibyte sequence is recognized as a
+     single wide character.  This excludes the GB2312 and GBK encodings.  */
+  if (mblen ("\203\062\332\066", 5) != 4)
+    return 1;
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=Chinese_China.54936
+          else
+            # None found.
+            gt_cv_locale_zh_CN=none
+          fi
+          ;;
+        solaris2.8)
+          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+          gt_cv_locale_zh_CN=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the locale name without encoding suffix.
+          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=zh_CN
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_zh_CN=zh_CN.GB18030
+            else
+              # None found.
+              gt_cv_locale_zh_CN=none
+            fi
+          fi
+          ;;
+      esac
+    else
+      # If there was a link error, due to mblen(), the system is so old that
+      # it certainly doesn't have a chinese locale.
+      gt_cv_locale_zh_CN=none
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
+$as_echo "$gt_cv_locale_zh_CN" >&6; }
+  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  if false; then
+    REPLACE_MBTOWC=1
+  fi
+
+  if test $REPLACE_MBTOWC = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS mbtowc.$ac_objext"
+
+
+  :
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_MBTOWC" != 1; then
+        if test "$GNULIB_MBTOWC" = 0; then
+      GNULIB_MBTOWC=$gl_module_indicator_condition
+    else
+      GNULIB_MBTOWC="($GNULIB_MBTOWC || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+  if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+
+$as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
+
+  else
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+  fi
+
+
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS msvc-inval.$ac_objext"
+
+  fi
+
+
+
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS msvc-nothrow.$ac_objext"
+
+  fi
+  ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl
+_ACEOF
+
+  ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl
+_ACEOF
+
+
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for putenv compatible with GNU and SVID" >&5
+$as_echo_n "checking for putenv compatible with GNU and SVID... " >&6; }
+if ${gl_cv_func_svid_putenv+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+               case "$host_os" in
+                        # Guess yes on glibc systems.
+                *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;;
+                        # If we don't know, assume the worst.
+                *)      gl_cv_func_svid_putenv="guessing no" ;;
+              esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+    /* Put it in env.  */
+    if (putenv ("CONFTEST_putenv=val"))
+      return 1;
+
+    /* Try to remove it.  */
+    if (putenv ("CONFTEST_putenv"))
+      return 2;
+
+    /* Make sure it was deleted.  */
+    if (getenv ("CONFTEST_putenv") != 0)
+      return 3;
+
+    return 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_svid_putenv=yes
+else
+  gl_cv_func_svid_putenv=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_svid_putenv" >&5
+$as_echo "$gl_cv_func_svid_putenv" >&6; }
+  case "$gl_cv_func_svid_putenv" in
+    *yes) ;;
+    *)
+      REPLACE_PUTENV=1
+      ;;
+  esac
+
+  if test $REPLACE_PUTENV = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS putenv.$ac_objext"
+
+
+  ac_fn_c_check_decl "$LINENO" "_putenv" "ac_cv_have_decl__putenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl__putenv" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL__PUTENV $ac_have_decl
+_ACEOF
+
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_PUTENV" != 1; then
+        if test "$GNULIB_PUTENV" = 0; then
+      GNULIB_PUTENV=$gl_module_indicator_condition
+    else
+      GNULIB_PUTENV="($GNULIB_PUTENV || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_PUTENV 1" >>confdefs.h
+
+
+
+
+
+     if test $ac_cv_func_setenv = no; then
+    HAVE_SETENV=0
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5
+$as_echo_n "checking whether setenv validates arguments... " >&6; }
+if ${gl_cv_func_setenv_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_setenv_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_setenv_works="guessing no" ;;
+       esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+       #include <stdlib.h>
+       #include <errno.h>
+       #include <string.h>
+
+int
+main ()
+{
+
+       int result = 0;
+       {
+         if (setenv ("", "", 0) != -1)
+           result |= 1;
+         else if (errno != EINVAL)
+           result |= 2;
+       }
+       {
+         if (setenv ("a", "=", 1) != 0)
+           result |= 4;
+         else if (strcmp (getenv ("a"), "=") != 0)
+           result |= 8;
+       }
+       return result;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_setenv_works=yes
+else
+  gl_cv_func_setenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setenv_works" >&5
+$as_echo "$gl_cv_func_setenv_works" >&6; }
+    case "$gl_cv_func_setenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_SETENV=1
+        ;;
+    esac
+  fi
+
+  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS setenv.$ac_objext"
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_SETENV" != 1; then
+        if test "$GNULIB_SETENV" = 0; then
+      GNULIB_SETENV=$gl_module_indicator_condition
+    else
+      GNULIB_SETENV="($GNULIB_SETENV || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_SETENV 1" >>confdefs.h
+
+
+
+
+
+
+  case "$host_os" in
+            mingw*) REPLACE_SETLOCALE=1 ;;
+            cygwin*)
+      case `uname -r` in
+        1.5.*) REPLACE_SETLOCALE=1 ;;
+      esac
+      ;;
+  esac
+
+  if test $REPLACE_SETLOCALE = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS setlocale.$ac_objext"
+
+
+  :
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_SETLOCALE" != 1; then
+        if test "$GNULIB_SETLOCALE" = 0; then
+      GNULIB_SETLOCALE=$gl_module_indicator_condition
+    else
+      GNULIB_SETLOCALE="($GNULIB_SETLOCALE || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_SETLOCALE 1" >>confdefs.h
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
+$as_echo_n "checking for a traditional japanese locale... " >&6; }
+if ${gt_cv_locale_ja+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main ()
+{
+  const char *p;
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
+     on Cygwin 1.5.x.  */
+  if (MB_CUR_MAX == 1)
+    return 1;
+  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+     This excludes the UTF-8 encoding (except on MirBSD).  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+  for (p = buf; *p != '\0'; p++)
+    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+      return 1;
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Note that on native Windows, the Japanese locale is
+          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+          # cannot use it here.
+          gt_cv_locale_ja=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the AIX locale name.
+          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_ja=ja_JP
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_ja=ja_JP.EUC-JP
+            else
+              # Test for the HP-UX, OSF/1, NetBSD locale name.
+              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_ja=ja_JP.eucJP
+              else
+                # Test for the IRIX, FreeBSD locale name.
+                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_ja=ja_JP.EUC
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_ja=ja
+                  else
+                    # Special test for NetBSD 1.6.
+                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+                      gt_cv_locale_ja=ja_JP.eucJP
+                    else
+                      # None found.
+                      gt_cv_locale_ja=none
+                    fi
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
+$as_echo "$gt_cv_locale_ja" >&6; }
+  LOCALE_JA=$gt_cv_locale_ja
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
+$as_echo_n "checking for a transitional chinese locale... " >&6; }
+if ${gt_cv_locale_zh_CN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main ()
+{
+  const char *p;
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+     This excludes the UTF-8 encoding (except on MirBSD).  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+  for (p = buf; *p != '\0'; p++)
+    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+      return 1;
+  /* Check whether a typical GB18030 multibyte sequence is recognized as a
+     single wide character.  This excludes the GB2312 and GBK encodings.  */
+  if (mblen ("\203\062\332\066", 5) != 4)
+    return 1;
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=Chinese_China.54936
+          else
+            # None found.
+            gt_cv_locale_zh_CN=none
+          fi
+          ;;
+        solaris2.8)
+          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+          gt_cv_locale_zh_CN=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the locale name without encoding suffix.
+          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=zh_CN
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_zh_CN=zh_CN.GB18030
+            else
+              # None found.
+              gt_cv_locale_zh_CN=none
+            fi
+          fi
+          ;;
+      esac
+    else
+      # If there was a link error, due to mblen(), the system is so old that
+      # it certainly doesn't have a chinese locale.
+      gt_cv_locale_zh_CN=none
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
+$as_echo "$gt_cv_locale_zh_CN" >&6; }
+  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_stdio_h='<'stdio.h'>'
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdio.h>" >&5
+$as_echo_n "checking absolute name of <stdio.h>... " >&6; }
+if ${gl_cv_next_stdio_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+_ACEOF
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'stdio.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_stdio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_stdio_h
+           gl_cv_next_stdio_h='"'$gl_header'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5
+$as_echo "$gl_cv_next_stdio_h" >&6; }
+     fi
+     NEXT_STDIO_H=$gl_cv_next_stdio_h
+
+     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
+       gl_next_as_first_directive='<'stdio.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_stdio_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive
+
+
+
+
+
+      GNULIB_FSCANF=1
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_FSCANF $gl_module_indicator_condition
+_ACEOF
+
+
+  GNULIB_SCANF=1
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_SCANF $gl_module_indicator_condition
+_ACEOF
+
+
+  GNULIB_FGETC=1
+  GNULIB_GETC=1
+  GNULIB_GETCHAR=1
+  GNULIB_FGETS=1
+  GNULIB_FREAD=1
+
+
+      GNULIB_FPRINTF=1
+  GNULIB_PRINTF=1
+  GNULIB_VFPRINTF=1
+  GNULIB_VPRINTF=1
+  GNULIB_FPUTC=1
+  GNULIB_PUTC=1
+  GNULIB_PUTCHAR=1
+  GNULIB_FPUTS=1
+  GNULIB_PUTS=1
+  GNULIB_FWRITE=1
+
+
+
+
+    for gl_func in dprintf fpurge fseeko ftello getdelim getline gets pclose popen     renameat snprintf tmpfile vdprintf vsnprintf; do
+    as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+$as_echo_n "checking whether $gl_func is declared without a macro... " >&6; }
+if eval \${$as_gl_Symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+
+int
+main ()
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+
+
+
+
+  if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5
+$as_echo_n "checking for working strerror function... " >&6; }
+if ${gl_cv_func_working_strerror+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_working_strerror="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_working_strerror="guessing no" ;;
+         esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+int
+main ()
+{
+if (!*strerror (-2)) return 1;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_working_strerror=yes
+else
+  gl_cv_func_working_strerror=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5
+$as_echo "$gl_cv_func_working_strerror" >&6; }
+    case "$gl_cv_func_working_strerror" in
+      *yes) ;;
+      *)
+                        REPLACE_STRERROR=1
+        ;;
+    esac
+
+  else
+            REPLACE_STRERROR=1
+  fi
+
+  if test $REPLACE_STRERROR = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS strerror.$ac_objext"
+
+  fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_STRERROR $gl_module_indicator_condition
+_ACEOF
+
+
+
+
+
+
+
+    if test "$GNULIB_STRERROR" != 1; then
+        if test "$GNULIB_STRERROR" = 0; then
+      GNULIB_STRERROR=$gl_module_indicator_condition
+    else
+      GNULIB_STRERROR="($GNULIB_STRERROR || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h
+
+
+
+
+
+  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS strerror-override.$ac_objext"
+
+
+
+
+
+  if test $ac_cv_header_sys_socket_h != yes; then
+                    for ac_header in winsock2.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
+
+
+  fi
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  if test $gl_threads_api = posix; then
+    gl_save_LIBS="$LIBS"
+    LIBS="$LIBS $LIBMULTITHREAD"
+    for ac_func in pthread_atfork
+do :
+  ac_fn_c_check_func "$LINENO" "pthread_atfork" "ac_cv_func_pthread_atfork"
+if test "x$ac_cv_func_pthread_atfork" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_PTHREAD_ATFORK 1
+_ACEOF
+
+fi
+done
+
+    LIBS="$gl_save_LIBS"
+  fi
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
+$as_echo_n "checking for a traditional japanese locale... " >&6; }
+if ${gt_cv_locale_ja+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main ()
+{
+  const char *p;
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
+     on Cygwin 1.5.x.  */
+  if (MB_CUR_MAX == 1)
+    return 1;
+  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+     This excludes the UTF-8 encoding (except on MirBSD).  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+  for (p = buf; *p != '\0'; p++)
+    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+      return 1;
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Note that on native Windows, the Japanese locale is
+          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+          # cannot use it here.
+          gt_cv_locale_ja=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the AIX locale name.
+          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_ja=ja_JP
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_ja=ja_JP.EUC-JP
+            else
+              # Test for the HP-UX, OSF/1, NetBSD locale name.
+              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_ja=ja_JP.eucJP
+              else
+                # Test for the IRIX, FreeBSD locale name.
+                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_ja=ja_JP.EUC
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_ja=ja
+                  else
+                    # Special test for NetBSD 1.6.
+                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+                      gt_cv_locale_ja=ja_JP.eucJP
+                    else
+                      # None found.
+                      gt_cv_locale_ja=none
+                    fi
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
+$as_echo "$gt_cv_locale_ja" >&6; }
+  LOCALE_JA=$gt_cv_locale_ja
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a turkish Unicode locale" >&5
+$as_echo_n "checking for a turkish Unicode locale... " >&6; }
+if ${gt_cv_locale_tr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  But BeOS does not
+     implement the Turkish upper-/lowercase mappings.  Therefore, let this
+     program return 1 on BeOS.  */
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the eighth month, the second
+     character (should be U+011F: LATIN SMALL LETTER G WITH BREVE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1992 - 1900; t.tm_mon = 8 - 1; t.tm_mday = 19;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc4 || buf[2] != (char) 0x9f)
+    return 1;
+  /* Check whether the upper-/lowercase mappings are as expected for
+     Turkish.  */
+  if (towupper ('i') != 0x0130 || towlower (0x0130) != 'i'
+      || towupper(0x0131) != 'I' || towlower ('I') != 0x0131)
+    return 1;
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=Turkish_Turkey.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_tr_utf8=Turkish_Turkey.65001
+          else
+            # None found.
+            gt_cv_locale_tr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_tr_utf8=tr_TR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_tr_utf8=tr_TR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_tr_utf8=tr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_tr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    else
+      gt_cv_locale_tr_utf8=none
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_tr_utf8" >&5
+$as_echo "$gt_cv_locale_tr_utf8" >&6; }
+  LOCALE_TR_UTF8=$gt_cv_locale_tr_utf8
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
+$as_echo_n "checking for a transitional chinese locale... " >&6; }
+if ${gt_cv_locale_zh_CN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main ()
+{
+  const char *p;
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+     This excludes the UTF-8 encoding (except on MirBSD).  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+  for (p = buf; *p != '\0'; p++)
+    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+      return 1;
+  /* Check whether a typical GB18030 multibyte sequence is recognized as a
+     single wide character.  This excludes the GB2312 and GBK encodings.  */
+  if (mblen ("\203\062\332\066", 5) != 4)
+    return 1;
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=Chinese_China.54936
+          else
+            # None found.
+            gt_cv_locale_zh_CN=none
+          fi
+          ;;
+        solaris2.8)
+          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+          gt_cv_locale_zh_CN=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the locale name without encoding suffix.
+          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=zh_CN
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_zh_CN=zh_CN.GB18030
+            else
+              # None found.
+              gt_cv_locale_zh_CN=none
+            fi
+          fi
+          ;;
+      esac
+    else
+      # If there was a link error, due to mblen(), the system is so old that
+      # it certainly doesn't have a chinese locale.
+      gt_cv_locale_zh_CN=none
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
+$as_echo "$gt_cv_locale_zh_CN" >&6; }
+  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional Arabic locale" >&5
+$as_echo_n "checking for a traditional Arabic locale... " >&6; }
+if ${gt_cv_locale_ar+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check that nl_langinfo(CODESET) is nonempty and not "ASCII" or "646"
+     and ends in "6". */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || cs[strlen (cs) - 1] != '6')
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Note that on native Windows, the Arabic locale is
+          # "Arabic_Saudi Arabia.1256", and CP1256 is very different from
+          # ISO-8859-6, so we cannot use it here.
+          gt_cv_locale_ar=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Values tested:
+          #   - The usual locale name:                         ar_SA
+          #   - The locale name with explicit encoding suffix: ar_SA.ISO-8859-6
+          #   - The HP-UX locale name:                         ar_SA.iso88596
+          #   - The Solaris 7 locale name:                     ar
+          # Also try ar_EG instead of ar_SA because Egypt is a large country too.
+          for gt_cv_locale_ar in ar_SA ar_SA.ISO-8859-6 ar_SA.iso88596 ar_EG ar_EG.ISO-8859-6 ar_EG.iso88596 ar none; do
+            if test $gt_cv_locale_ar = none; then
+              break
+            fi
+            if (LC_ALL=$gt_cv_locale_ar LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              break
+            fi
+          done
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ar" >&5
+$as_echo "$gt_cv_locale_ar" >&6; }
+  LOCALE_AR=$gt_cv_locale_ar
+
+
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+
+  if test $ac_cv_have_decl_unsetenv = no; then
+    HAVE_DECL_UNSETENV=0
+  fi
+  for ac_func in unsetenv
+do :
+  ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv"
+if test "x$ac_cv_func_unsetenv" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_UNSETENV 1
+_ACEOF
+
+fi
+done
+
+  if test $ac_cv_func_unsetenv = no; then
+    HAVE_UNSETENV=0
+  else
+    HAVE_UNSETENV=1
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5
+$as_echo_n "checking for unsetenv() return type... " >&6; }
+if ${gt_cv_func_unsetenv_ret+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#undef _BSD
+#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
+#include <stdlib.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int unsetenv (const char *name);
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_func_unsetenv_ret='int'
+else
+  gt_cv_func_unsetenv_ret='void'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_unsetenv_ret" >&5
+$as_echo "$gt_cv_func_unsetenv_ret" >&6; }
+    if test $gt_cv_func_unsetenv_ret = 'void'; then
+
+$as_echo "#define VOID_UNSETENV 1" >>confdefs.h
+
+      REPLACE_UNSETENV=1
+    fi
+
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5
+$as_echo_n "checking whether unsetenv obeys POSIX... " >&6; }
+if ${gl_cv_func_unsetenv_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_unsetenv_works="guessing no" ;;
+       esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+       #include <stdlib.h>
+       #include <errno.h>
+       extern char **environ;
+
+int
+main ()
+{
+
+       char entry1[] = "a=1";
+       char entry2[] = "b=2";
+       char *env[] = { entry1, entry2, NULL };
+       if (putenv ((char *) "a=1")) return 1;
+       if (putenv (entry2)) return 2;
+       entry2[0] = 'a';
+       unsetenv ("a");
+       if (getenv ("a")) return 3;
+       if (!unsetenv ("") || errno != EINVAL) return 4;
+       entry2[0] = 'b';
+       environ = env;
+       if (!getenv ("a")) return 5;
+       entry2[0] = 'a';
+       unsetenv ("a");
+       if (getenv ("a")) return 6;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_unsetenv_works=yes
+else
+  gl_cv_func_unsetenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unsetenv_works" >&5
+$as_echo "$gl_cv_func_unsetenv_works" >&6; }
+    case "$gl_cv_func_unsetenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_UNSETENV=1
+        ;;
+    esac
+  fi
+
+  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS unsetenv.$ac_objext"
+
+
+
+
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_UNSETENV" != 1; then
+        if test "$GNULIB_UNSETENV" = 0; then
+      GNULIB_UNSETENV=$gl_module_indicator_condition
+    else
+      GNULIB_UNSETENV="($GNULIB_UNSETENV || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+  if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+                  case "$host_os" in
+                     # Guess no on AIX and OSF/1.
+        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+                     # Guess yes otherwise.
+        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+      esac
+      if test $LOCALE_JA != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2))
+        if (mbsinit (&state))
+          return 1;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_incomplete_state=yes
+else
+  gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+      fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+                  case "$host_os" in
+                    # Guess no on Solaris 8.
+        solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;;
+                    # Guess yes otherwise.
+        *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
+      esac
+      if test $LOCALE_ZH_CN != none; then
+        if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  /* This fails on Solaris 8:
+     mbrtowc returns 2, and sets wc to 0x00F0.
+     mbtowc returns 4 (correct) and sets wc to 0x5EDC.  */
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 6, &state) != 4
+          && mbtowc (&wc, input + 3, 6) == 4)
+        return 1;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_mbrtowc_sanitycheck=yes
+else
+  gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+      fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_sanitycheck" >&5
+$as_echo "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
+
+    REPLACE_MBSTATE_T=0
+    case "$gl_cv_func_mbrtowc_incomplete_state" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+    case "$gl_cv_func_mbrtowc_sanitycheck" in
+      *yes) ;;
+      *) REPLACE_MBSTATE_T=1 ;;
+    esac
+  else
+    REPLACE_MBSTATE_T=1
+  fi
+
+
+
+  if test $ac_cv_func_wcrtomb = no; then
+    HAVE_WCRTOMB=0
+    ac_fn_c_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" "
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+"
+if test "x$ac_cv_have_decl_wcrtomb" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_WCRTOMB $ac_have_decl
+_ACEOF
+
+    if test $ac_cv_have_decl_wcrtomb = yes; then
+                        REPLACE_WCRTOMB=1
+    fi
+  else
+    if test $REPLACE_MBSTATE_T = 1; then
+      REPLACE_WCRTOMB=1
+    else
+
+
+
+
+
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5
+$as_echo_n "checking whether wcrtomb return value is correct... " >&6; }
+if ${gl_cv_func_wcrtomb_retval+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+                              case "$host_os" in
+                                     # Guess no on AIX 4, OSF/1 and Solaris.
+            aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;;
+                                     # Guess yes otherwise.
+            *)                       gl_cv_func_wcrtomb_retval="guessing yes" ;;
+          esac
+          if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then
+            if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  int result = 0;
+  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+    {
+      if (wcrtomb (NULL, 0, NULL) != 1)
+        result |= 1;
+    }
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      if (wcrtomb (NULL, 0, NULL) != 1)
+        result |= 2;
+    }
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      if (wcrtomb (NULL, 0, NULL) != 1)
+        result |= 4;
+    }
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      if (wcrtomb (NULL, 0, NULL) != 1)
+        result |= 8;
+    }
+  return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_wcrtomb_retval=yes
+else
+  gl_cv_func_wcrtomb_retval=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+          fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wcrtomb_retval" >&5
+$as_echo "$gl_cv_func_wcrtomb_retval" >&6; }
+      case "$gl_cv_func_wcrtomb_retval" in
+        *yes) ;;
+        *) REPLACE_WCRTOMB=1 ;;
+      esac
+    fi
+  fi
+
+  if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS wcrtomb.$ac_objext"
+
+
+  :
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_WCRTOMB" != 1; then
+        if test "$GNULIB_WCRTOMB" = 0; then
+      GNULIB_WCRTOMB=$gl_module_indicator_condition
+    else
+      GNULIB_WCRTOMB="($GNULIB_WCRTOMB || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+     one byte long. This excludes the UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
+          else
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
+            else
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
+              else
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+  LOCALE_FR=$gt_cv_locale_fr
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* On BeOS and Haiku, locales are not implemented in libc.  Rather, libintl
+     imitates locale dependent behaviour by looking at the environment
+     variables, and all locales use the UTF-8 encoding.  */
+#if !(defined __BEOS__ || defined __HAIKU__)
+  /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.  */
+# if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+      return 1;
+  }
+# endif
+# ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+# endif
+  /* Check whether in the abbreviation of the second month, the second
+     character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+     two bytes long, with UTF-8 encoding.  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%b", &t) < 4
+      || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+    return 1;
+#endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
+  /* Check whether the decimal separator is a comma.
+     On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+     are nl_langinfo(RADIXCHAR) are both ".".  */
+  if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
+          else
+            # None found.
+            gt_cv_locale_fr_utf8=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5
+$as_echo "$gt_cv_locale_fr_utf8" >&6; }
+  LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
+$as_echo_n "checking for a traditional japanese locale... " >&6; }
+if ${gt_cv_locale_ja+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main ()
+{
+  const char *p;
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether MB_CUR_MAX is > 1.  This excludes the dysfunctional locales
+     on Cygwin 1.5.x.  */
+  if (MB_CUR_MAX == 1)
+    return 1;
+  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+     This excludes the UTF-8 encoding (except on MirBSD).  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+  for (p = buf; *p != '\0'; p++)
+    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+      return 1;
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Note that on native Windows, the Japanese locale is
+          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+          # cannot use it here.
+          gt_cv_locale_ja=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the AIX locale name.
+          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_ja=ja_JP
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_ja=ja_JP.EUC-JP
+            else
+              # Test for the HP-UX, OSF/1, NetBSD locale name.
+              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_ja=ja_JP.eucJP
+              else
+                # Test for the IRIX, FreeBSD locale name.
+                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_ja=ja_JP.EUC
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_ja=ja
+                  else
+                    # Special test for NetBSD 1.6.
+                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+                      gt_cv_locale_ja=ja_JP.eucJP
+                    else
+                      # None found.
+                      gt_cv_locale_ja=none
+                    fi
+                  fi
+                fi
+              fi
+            fi
+          fi
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
+$as_echo "$gt_cv_locale_ja" >&6; }
+  LOCALE_JA=$gt_cv_locale_ja
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
+$as_echo_n "checking for a transitional chinese locale... " >&6; }
+if ${gt_cv_locale_zh_CN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main ()
+{
+  const char *p;
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
+     On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "646". In this situation,
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+     This excludes the UTF-8 encoding (except on MirBSD).  */
+  t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+  if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
+  for (p = buf; *p != '\0'; p++)
+    if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0)
+      return 1;
+  /* Check whether a typical GB18030 multibyte sequence is recognized as a
+     single wide character.  This excludes the GB2312 and GBK encodings.  */
+  if (mblen ("\203\062\332\066", 5) != 4)
+    return 1;
+  return 0;
+}
+
+_ACEOF
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=Chinese_China.54936
+          else
+            # None found.
+            gt_cv_locale_zh_CN=none
+          fi
+          ;;
+        solaris2.8)
+          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+          gt_cv_locale_zh_CN=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the locale name without encoding suffix.
+          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=zh_CN
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_zh_CN=zh_CN.GB18030
+            else
+              # None found.
+              gt_cv_locale_zh_CN=none
+            fi
+          fi
+          ;;
+      esac
+    else
+      # If there was a link error, due to mblen(), the system is so old that
+      # it certainly doesn't have a chinese locale.
+      gt_cv_locale_zh_CN=none
+    fi
+    rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5
+$as_echo "$gt_cv_locale_zh_CN" >&6; }
+  LOCALE_ZH_CN=$gt_cv_locale_zh_CN
+
+
+
+
+
+
+  if test $ac_cv_func_wctob = no; then
+    HAVE_WCTOB=0
+    HAVE_DECL_WCTOB=0
+  else
+    HAVE_WCTOB=1
+
+
+
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wctob works" >&5
+$as_echo_n "checking whether wctob works... " >&6; }
+if ${gl_cv_func_wctob_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+                        case "$host_os" in
+            # Guess no on Solaris <= 9 and Cygwin.
+          solaris2.[1-9] | solaris2.[1-9].* | cygwin*)
+            gl_cv_func_wctob_works="guessing no" ;;
+            # Guess yes otherwise.
+          *) gl_cv_func_wctob_works="guessing yes" ;;
+        esac
+        case "$host_os" in
+          cygwin*)
+            if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+register long global __asm__ ("%ebx");
+
+int main ()
+{
+  setlocale (LC_ALL, "en_US.UTF-8");
+
+  global = 0x12345678;
+  if (wctob (0x00FC) != -1)
+    return 1;
+  if (global != 0x12345678)
+    return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  :
+else
+  gl_cv_func_wctob_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+            ;;
+        esac
+        if test "$gl_cv_func_wctob_works" != no && test $LOCALE_FR != none; then
+          if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+    {
+      wchar_t wc;
+
+      if (mbtowc (&wc, "\374", 1) == 1)
+        if (wctob (wc) != (unsigned char) '\374')
+          return 1;
+    }
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gl_cv_func_wctob_works=yes
+else
+  gl_cv_func_wctob_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+        fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_wctob_works" >&5
+$as_echo "$gl_cv_func_wctob_works" >&6; }
+    case "$gl_cv_func_wctob_works" in
+      *yes) ;;
+      *) REPLACE_WCTOB=1 ;;
+    esac
+    if test $REPLACE_WCTOB = 0; then
+
+            ac_fn_c_check_decl "$LINENO" "wctob" "ac_cv_have_decl_wctob" "
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+   before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+"
+if test "x$ac_cv_have_decl_wctob" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_WCTOB $ac_have_decl
+_ACEOF
+
+      if test $ac_cv_have_decl_wctob != yes; then
+        HAVE_DECL_WCTOB=0
+      fi
+    fi
+  fi
+
+  if test $HAVE_WCTOB = 0 || test $REPLACE_WCTOB = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS wctob.$ac_objext"
+
+
+  :
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_WCTOB" != 1; then
+        if test "$GNULIB_WCTOB" = 0; then
+      GNULIB_WCTOB=$gl_module_indicator_condition
+    else
+      GNULIB_WCTOB="($GNULIB_WCTOB || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_WCTOB 1" >>confdefs.h
+
+
+
+
+
+
+  if false; then
+    REPLACE_WCTOMB=1
+  fi
+
+  if test $REPLACE_WCTOMB = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS wctomb.$ac_objext"
+
+
+  :
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_WCTOMB" != 1; then
+        if test "$GNULIB_WCTOMB" = 0; then
+      GNULIB_WCTOMB=$gl_module_indicator_condition
+    else
+      GNULIB_WCTOMB="($GNULIB_WCTOMB || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_WCTOMB 1" >>confdefs.h
+
+
+
+  :
+
+
+    YIELD_LIB=
+  if test $gl_threads_api = posix; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
+$as_echo_n "checking for sched_yield in -lrt... " >&6; }
+if ${ac_cv_lib_rt_sched_yield+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrt  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sched_yield ();
+int
+main ()
+{
+return sched_yield ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_rt_sched_yield=yes
+else
+  ac_cv_lib_rt_sched_yield=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5
+$as_echo "$ac_cv_lib_rt_sched_yield" >&6; }
+if test "x$ac_cv_lib_rt_sched_yield" = xyes; then :
+  YIELD_LIB=-lrt
+else
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5
+$as_echo_n "checking for sched_yield in -lposix4... " >&6; }
+if ${ac_cv_lib_posix4_sched_yield+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix4  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sched_yield ();
+int
+main ()
+{
+return sched_yield ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_posix4_sched_yield=yes
+else
+  ac_cv_lib_posix4_sched_yield=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5
+$as_echo "$ac_cv_lib_posix4_sched_yield" >&6; }
+if test "x$ac_cv_lib_posix4_sched_yield" = xyes; then :
+  YIELD_LIB=-lposix4
+fi
+
+fi
+
+  fi
+
+
+
+
+
+
+
+
+
+
+
+
+  LIBTESTS_LIBDEPS="$gltests_libdeps"
+
+
+
+if test "$enable_shared" = yes; then
+  case "$host_os" in
+    mingw* | cygwin*) is_woe32dll=yes ;;
+    *) is_woe32dll=no ;;
+  esac
+else
+  is_woe32dll=no
+fi
+ if test $is_woe32dll = yes; then
+  WOE32DLL_TRUE=
+  WOE32DLL_FALSE='#'
+else
+  WOE32DLL_TRUE='#'
+  WOE32DLL_FALSE=
+fi
+
+if test $is_woe32dll = yes; then
+  DLL_VARIABLE='__declspec (dllimport)'
+else
+  DLL_VARIABLE=
+fi
+
+if test $is_woe32dll = yes; then
+
+$as_echo "#define WOE32DLL 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-namespacing was given.
+if test "${enable_namespacing+set}" = set; then :
+  enableval=$enable_namespacing; :
+else
+  enable_namespacing=yes
+fi
+
+if test "$enable_namespacing" != no; then
+  NAMESPACING=yes
+else
+  NAMESPACING=
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" \
+     && { test "$build" = "$host" \
+          || { test "$build_os" = cygwin && test "$host_os" = mingw32; }; \
+        }; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+       # Check to see if the nm accepts a BSD-compat flag.
+       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+       #   nm: unknown option "B" ignored
+       # Tru64's nm complains that /dev/null is an invalid object file
+       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+       */dev/null* | *'Invalid file or object type'*)
+         lt_cv_path_NM="$tmp_nm -B"
+         break
+         ;;
+       *)
+         case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+         */dev/null*)
+           lt_cv_path_NM="$tmp_nm -p"
+           break
+           ;;
+         *)
+           lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+           continue # so that we can try to find one that supports BSD flags
+           ;;
+         esac
+         ;;
+       esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in dumpbin "link -dump"
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DUMPBIN"; then
+  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$DUMPBIN" && break
+  done
+fi
+if test -z "$DUMPBIN"; then
+  ac_ct_DUMPBIN=$DUMPBIN
+  for ac_prog in dumpbin "link -dump"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DUMPBIN"; then
+  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_DUMPBIN" && break
+done
+
+  if test "x$ac_ct_DUMPBIN" = x; then
+    DUMPBIN=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DUMPBIN=$ac_ct_DUMPBIN
+  fi
+fi
+
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
+
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&5
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&5
+  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+  cat conftest.out >&5
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+
+
+
+     GLOBAL_SYMBOL_PIPE=$lt_cv_sys_global_symbol_pipe
+
+  if test -n "$GLOBAL_SYMBOL_PIPE"; then
+    HAVE_GLOBAL_SYMBOL_PIPE=1
+  else
+    HAVE_GLOBAL_SYMBOL_PIPE=
+  fi
+
+
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$AWK" && break
+done
+
+
+sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+
+version_major=`echo "${VERSION}" | sed -n -e "$sed_extract_major"`
+version_minor=`echo "${VERSION}" | sed -n -e "$sed_extract_minor"`
+version_subminor=`echo "${VERSION}" | sed -n -e "$sed_extract_subminor"`
+HEXVERSION=0x`$AWK 'BEGIN { printf("%02X%02X%02X"',"$version_major","$version_minor","$version_subminor"') }'`
+
+
+ac_aux_dir_abs=`cd $ac_aux_dir && pwd`
+# Extract the first word of "texi2dvi", so it can be a program name with args.
+set dummy texi2dvi; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TEXI2DVI+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $TEXI2DVI in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_TEXI2DVI="$TEXI2DVI" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_TEXI2DVI="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_TEXI2DVI" && ac_cv_path_TEXI2DVI="$ac_aux_dir_abs/missing texi2dvi"
+  ;;
+esac
+fi
+TEXI2DVI=$ac_cv_path_TEXI2DVI
+if test -n "$TEXI2DVI"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEXI2DVI" >&5
+$as_echo "$TEXI2DVI" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "dvips", so it can be a program name with args.
+set dummy dvips; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_DVIPS+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $DVIPS in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_DVIPS="$DVIPS" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_DVIPS="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_DVIPS" && ac_cv_path_DVIPS="$ac_aux_dir_abs/missing dvips"
+  ;;
+esac
+fi
+DVIPS=$ac_cv_path_DVIPS
+if test -n "$DVIPS"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DVIPS" >&5
+$as_echo "$DVIPS" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PERL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PERL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="$ac_aux_dir_abs/missing perl"
+  ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+ac_config_files="$ac_config_files Makefile"
+
+ac_config_files="$ac_config_files doc/Makefile"
+
+ac_config_files="$ac_config_files gnulib-local/Makefile"
+
+ac_config_files="$ac_config_files lib/Makefile"
+
+ac_config_files="$ac_config_files lib/exported.sh"
+
+ac_config_files="$ac_config_files lib/unistring/version.h:lib/unistring/version.in.h"
+
+ac_config_files="$ac_config_files lib/unistring/woe32dll.h:lib/unistring/woe32dll.in.h"
+
+ac_config_files="$ac_config_files tests/Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+       "s/'/'\\\\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+       cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+         mv -f confcache "$cache_file"$$ &&
+         mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+         mv -f confcache "$cache_file" ;;
+       esac
+      fi
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+  am__EXEEXT_TRUE=
+  am__EXEEXT_FALSE='#'
+else
+  am__EXEEXT_TRUE='#'
+  am__EXEEXT_FALSE=
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+  as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WOE32_TRUE}" && test -z "${WOE32_FALSE}"; then
+  as_fn_error $? "conditional \"WOE32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
+  as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_FLOAT_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+
+if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then
+  as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_TOLOWER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_TOLOWER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_TOTITLE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_TOTITLE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_TOUPPER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_TOUPPER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_DIGIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_MIRROR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINAME_UNINAME_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINAME_UNINAME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_COMPOSITION\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_FILTER_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_FILTER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_NFC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_NFC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_NFD_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_NFD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_NFKC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_NFKC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_NFKD_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_NFKD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_CHECK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CHR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_CHR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_CMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_CMP2\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_CPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_MOVE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_NEXT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_PREV_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_PREV\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_SET_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_SET\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_CHECK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CHR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_CHR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_CMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_CMP2\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_CPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_MOVE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_NEXT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_PREV_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_PREV\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_SET_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_SET\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_CHECK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CHR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_CHR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_CMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_CMP2\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_CPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MOVE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_NEXT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_PREV_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_PREV\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_SET_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_SET\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-
-
-
-     GLOBAL_SYMBOL_PIPE=$lt_cv_sys_global_symbol_pipe
-
-  if test -n "$GLOBAL_SYMBOL_PIPE"; then
-    HAVE_GLOBAL_SYMBOL_PIPE=1
-  else
-    HAVE_GLOBAL_SYMBOL_PIPE=
-  fi
-
-
-
-for ac_prog in gawk mawk nawk awk
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-
-
-  test -n "$AWK" && break
-done
-
-
-sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
-i\
-0
-q
-'
-sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;}
-i\
-0
-q
-'
-
-version_major=`echo "${VERSION}" | sed -n -e "$sed_extract_major"`
-version_minor=`echo "${VERSION}" | sed -n -e "$sed_extract_minor"`
-HEXVERSION=0x`$AWK 'BEGIN { printf("%02d%02d"',"$version_major","$version_minor"') }'`
-
-
-ac_aux_dir_abs=`cd $ac_aux_dir && pwd`
-# Extract the first word of "texi2dvi", so it can be a program name with args.
-set dummy texi2dvi; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_TEXI2DVI+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $TEXI2DVI in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_TEXI2DVI="$TEXI2DVI" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_TEXI2DVI="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_TEXI2DVI" && ac_cv_path_TEXI2DVI="$ac_aux_dir_abs/missing texi2dvi"
-  ;;
-esac
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-TEXI2DVI=$ac_cv_path_TEXI2DVI
-if test -n "$TEXI2DVI"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEXI2DVI" >&5
-$as_echo "$TEXI2DVI" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-
-
-# Extract the first word of "dvips", so it can be a program name with args.
-set dummy dvips; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_DVIPS+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $DVIPS in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_DVIPS="$DVIPS" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_DVIPS="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_DVIPS" && ac_cv_path_DVIPS="$ac_aux_dir_abs/missing dvips"
-  ;;
-esac
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-DVIPS=$ac_cv_path_DVIPS
-if test -n "$DVIPS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DVIPS" >&5
-$as_echo "$DVIPS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-
-
-# Extract the first word of "perl", so it can be a program name with args.
-set dummy perl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PERL+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PERL in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="$ac_aux_dir_abs/missing perl"
-  ;;
-esac
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-PERL=$ac_cv_path_PERL
-if test -n "$PERL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
-$as_echo "$PERL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-
-
-
-ac_config_files="$ac_config_files Makefile"
-
-ac_config_files="$ac_config_files doc/Makefile"
-
-ac_config_files="$ac_config_files gnulib-local/Makefile"
-
-ac_config_files="$ac_config_files lib/Makefile"
-
-ac_config_files="$ac_config_files lib/exported.sh"
-
-ac_config_files="$ac_config_files lib/unistring/version.h:lib/unistring/version.in.h"
-
-ac_config_files="$ac_config_files lib/unistring/woe32dll.h:lib/unistring/woe32dll.in.h"
-
-ac_config_files="$ac_config_files tests/Makefile"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-       "s/'/'\\\\''/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
- if test -n "$EXEEXT"; then
-  am__EXEEXT_TRUE=
-  am__EXEEXT_FALSE='#'
-else
-  am__EXEEXT_TRUE='#'
-  am__EXEEXT_FALSE=
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  as_fn_error "conditional \"AMDEP\" was never defined.
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  as_fn_error "conditional \"am__fastdepCC\" was never defined.
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${WOE32_TRUE}" && test -z "${WOE32_FALSE}"; then
-  as_fn_error "conditional \"WOE32\" was never defined.
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
-  as_fn_error "conditional \"GL_COND_LIBTOOL\" was never defined.
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE}"; then
+  as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-
-
 
     gl_libobjs=
     gl_ltlibobjs=
 
 
 if test -z "${WOE32DLL_TRUE}" && test -z "${WOE32DLL_FALSE}"; then
-  as_fn_error "conditional \"WOE32DLL\" was never defined.
+  as_fn_error $? "conditional \"WOE32DLL\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -33355,6 +58683,7 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -33400,19 +58729,19 @@ export LANGUAGE
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
 as_fn_error ()
 {
-  as_status=$?; test $as_status -eq 0 && as_status=1
-  if test "$3"; then
-    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $1" >&2
+  $as_echo "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -33550,16 +58879,16 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -33608,7 +58937,7 @@ $as_echo X"$as_dir" |
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
 
 
 } # as_fn_mkdir_p
@@ -33619,28 +58948,16 @@ else
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in #(
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -33662,7 +58979,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # values after options handling.
 ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.65.  Invocation command line was
+generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -33728,10 +59045,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.65,
+configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -33749,11 +59066,16 @@ ac_need_defaults=:
 while test $# != 0
 do
   case $1 in
-  --*=*)
+  --*=?*)
     ac_option=`expr "X$1" : 'X\([^=]*\)='`
     ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
     ac_shift=:
     ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
   *)
     ac_option=$1
     ac_optarg=$2
@@ -33775,6 +59097,7 @@ do
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
     esac
     as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
@@ -33787,7 +59110,7 @@ do
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    as_fn_error "ambiguous option: \`$1'
+    as_fn_error $? "ambiguous option: \`$1'
 Try \`$0 --help' for more information.";;
   --help | --hel | -h )
     $as_echo "$ac_cs_usage"; exit ;;
@@ -33796,7 +59119,7 @@ Try \`$0 --help' for more information.";;
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) as_fn_error "unrecognized option: \`$1'
+  -*) as_fn_error $? "unrecognized option: \`$1'
 Try \`$0 --help' for more information." ;;
 
   *) as_fn_append ac_config_targets " $1"
@@ -33816,7 +59139,7 @@ fi
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
   \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
@@ -33850,174 +59173,200 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 sed_quote_subst='$sed_quote_subst'
 double_quote_subst='$double_quote_subst'
 delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
-AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
-enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
-host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
-host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
-host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
-build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
-build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
-build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
-SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
-Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
-GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
-EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
-FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
-LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
-NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
-LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
-exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
-AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
-compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
-GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
-SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
-ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
-need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
-LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
-libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
-need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
-version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
-striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
-LD_RC='`$ECHO "X$LD_RC" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_cmds_RC='`$ECHO "X$old_archive_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_RC='`$ECHO "X$compiler_RC" | $Xsed -e "$delay_single_quote_subst"`'
-GCC_RC='`$ECHO "X$GCC_RC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_RC='`$ECHO "X$lt_prog_compiler_no_builtin_flag_RC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_RC='`$ECHO "X$lt_prog_compiler_wl_RC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_RC='`$ECHO "X$lt_prog_compiler_pic_RC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_prog_compiler_static_RC='`$ECHO "X$lt_prog_compiler_static_RC" | $Xsed -e "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_RC='`$ECHO "X$lt_cv_prog_compiler_c_o_RC" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_need_lc_RC='`$ECHO "X$archive_cmds_need_lc_RC" | $Xsed -e "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_RC='`$ECHO "X$enable_shared_with_static_runtimes_RC" | $Xsed -e "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_RC='`$ECHO "X$export_dynamic_flag_spec_RC" | $Xsed -e "$delay_single_quote_subst"`'
-whole_archive_flag_spec_RC='`$ECHO "X$whole_archive_flag_spec_RC" | $Xsed -e "$delay_single_quote_subst"`'
-compiler_needs_object_RC='`$ECHO "X$compiler_needs_object_RC" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_RC='`$ECHO "X$old_archive_from_new_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_RC='`$ECHO "X$old_archive_from_expsyms_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`'
-archive_cmds_RC='`$ECHO "X$archive_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`'
-archive_expsym_cmds_RC='`$ECHO "X$archive_expsym_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`'
-module_cmds_RC='`$ECHO "X$module_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`'
-module_expsym_cmds_RC='`$ECHO "X$module_expsym_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`'
-with_gnu_ld_RC='`$ECHO "X$with_gnu_ld_RC" | $Xsed -e "$delay_single_quote_subst"`'
-allow_undefined_flag_RC='`$ECHO "X$allow_undefined_flag_RC" | $Xsed -e "$delay_single_quote_subst"`'
-no_undefined_flag_RC='`$ECHO "X$no_undefined_flag_RC" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_RC='`$ECHO "X$hardcode_libdir_flag_spec_RC" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld_RC='`$ECHO "X$hardcode_libdir_flag_spec_ld_RC" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_libdir_separator_RC='`$ECHO "X$hardcode_libdir_separator_RC" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_RC='`$ECHO "X$hardcode_direct_RC" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_direct_absolute_RC='`$ECHO "X$hardcode_direct_absolute_RC" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_minus_L_RC='`$ECHO "X$hardcode_minus_L_RC" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_RC='`$ECHO "X$hardcode_shlibpath_var_RC" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_automatic_RC='`$ECHO "X$hardcode_automatic_RC" | $Xsed -e "$delay_single_quote_subst"`'
-inherit_rpath_RC='`$ECHO "X$inherit_rpath_RC" | $Xsed -e "$delay_single_quote_subst"`'
-link_all_deplibs_RC='`$ECHO "X$link_all_deplibs_RC" | $Xsed -e "$delay_single_quote_subst"`'
-fix_srcfile_path_RC='`$ECHO "X$fix_srcfile_path_RC" | $Xsed -e "$delay_single_quote_subst"`'
-always_export_symbols_RC='`$ECHO "X$always_export_symbols_RC" | $Xsed -e "$delay_single_quote_subst"`'
-export_symbols_cmds_RC='`$ECHO "X$export_symbols_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`'
-exclude_expsyms_RC='`$ECHO "X$exclude_expsyms_RC" | $Xsed -e "$delay_single_quote_subst"`'
-include_expsyms_RC='`$ECHO "X$include_expsyms_RC" | $Xsed -e "$delay_single_quote_subst"`'
-prelink_cmds_RC='`$ECHO "X$prelink_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`'
-file_list_spec_RC='`$ECHO "X$file_list_spec_RC" | $Xsed -e "$delay_single_quote_subst"`'
-hardcode_action_RC='`$ECHO "X$hardcode_action_RC" | $Xsed -e "$delay_single_quote_subst"`'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+LD_RC='`$ECHO "$LD_RC" | $SED "$delay_single_quote_subst"`'
+reload_flag_RC='`$ECHO "$reload_flag_RC" | $SED "$delay_single_quote_subst"`'
+reload_cmds_RC='`$ECHO "$reload_cmds_RC" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds_RC='`$ECHO "$old_archive_cmds_RC" | $SED "$delay_single_quote_subst"`'
+compiler_RC='`$ECHO "$compiler_RC" | $SED "$delay_single_quote_subst"`'
+GCC_RC='`$ECHO "$GCC_RC" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag_RC='`$ECHO "$lt_prog_compiler_no_builtin_flag_RC" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic_RC='`$ECHO "$lt_prog_compiler_pic_RC" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl_RC='`$ECHO "$lt_prog_compiler_wl_RC" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static_RC='`$ECHO "$lt_prog_compiler_static_RC" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o_RC='`$ECHO "$lt_cv_prog_compiler_c_o_RC" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc_RC='`$ECHO "$archive_cmds_need_lc_RC" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes_RC='`$ECHO "$enable_shared_with_static_runtimes_RC" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec_RC='`$ECHO "$export_dynamic_flag_spec_RC" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec_RC='`$ECHO "$whole_archive_flag_spec_RC" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object_RC='`$ECHO "$compiler_needs_object_RC" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds_RC='`$ECHO "$old_archive_from_new_cmds_RC" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds_RC='`$ECHO "$old_archive_from_expsyms_cmds_RC" | $SED "$delay_single_quote_subst"`'
+archive_cmds_RC='`$ECHO "$archive_cmds_RC" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds_RC='`$ECHO "$archive_expsym_cmds_RC" | $SED "$delay_single_quote_subst"`'
+module_cmds_RC='`$ECHO "$module_cmds_RC" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds_RC='`$ECHO "$module_expsym_cmds_RC" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld_RC='`$ECHO "$with_gnu_ld_RC" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag_RC='`$ECHO "$allow_undefined_flag_RC" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag_RC='`$ECHO "$no_undefined_flag_RC" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_RC='`$ECHO "$hardcode_libdir_flag_spec_RC" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator_RC='`$ECHO "$hardcode_libdir_separator_RC" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_RC='`$ECHO "$hardcode_direct_RC" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute_RC='`$ECHO "$hardcode_direct_absolute_RC" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L_RC='`$ECHO "$hardcode_minus_L_RC" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var_RC='`$ECHO "$hardcode_shlibpath_var_RC" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic_RC='`$ECHO "$hardcode_automatic_RC" | $SED "$delay_single_quote_subst"`'
+inherit_rpath_RC='`$ECHO "$inherit_rpath_RC" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs_RC='`$ECHO "$link_all_deplibs_RC" | $SED "$delay_single_quote_subst"`'
+always_export_symbols_RC='`$ECHO "$always_export_symbols_RC" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds_RC='`$ECHO "$export_symbols_cmds_RC" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms_RC='`$ECHO "$exclude_expsyms_RC" | $SED "$delay_single_quote_subst"`'
+include_expsyms_RC='`$ECHO "$include_expsyms_RC" | $SED "$delay_single_quote_subst"`'
+prelink_cmds_RC='`$ECHO "$prelink_cmds_RC" | $SED "$delay_single_quote_subst"`'
+postlink_cmds_RC='`$ECHO "$postlink_cmds_RC" | $SED "$delay_single_quote_subst"`'
+file_list_spec_RC='`$ECHO "$file_list_spec_RC" | $SED "$delay_single_quote_subst"`'
+hardcode_action_RC='`$ECHO "$hardcode_action_RC" | $SED "$delay_single_quote_subst"`'
 
 LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
-for var in SED \
+for var in AS \
+DLLTOOL \
+OBJDUMP \
+SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
 GREP \
 EGREP \
 FGREP \
@@ -34029,8 +59378,12 @@ lt_NL2SP \
 reload_flag \
 deplibs_check_method \
 file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+sharedlib_from_linklib_cmd \
 AR \
 AR_FLAGS \
+archiver_list_spec \
 STRIP \
 RANLIB \
 CC \
@@ -34040,14 +59393,14 @@ lt_cv_sys_global_symbol_pipe \
 lt_cv_sys_global_symbol_to_cdecl \
 lt_cv_sys_global_symbol_to_c_name_address \
 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-SHELL \
-ECHO \
+nm_file_list_spec \
 lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
 lt_prog_compiler_pic \
+lt_prog_compiler_wl \
 lt_prog_compiler_static \
 lt_cv_prog_compiler_c_o \
 need_locks \
+MANIFEST_TOOL \
 DSYMUTIL \
 NMEDIT \
 LIPO \
@@ -34061,9 +59414,7 @@ with_gnu_ld \
 allow_undefined_flag \
 no_undefined_flag \
 hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
 hardcode_libdir_separator \
-fix_srcfile_path \
 exclude_expsyms \
 include_expsyms \
 file_list_spec \
@@ -34071,14 +59422,16 @@ variables_saved_for_relink \
 libname_spec \
 library_names_spec \
 soname_spec \
+install_override_mode \
 finish_eval \
 old_striplib \
 striplib \
 LD_RC \
+reload_flag_RC \
 compiler_RC \
 lt_prog_compiler_no_builtin_flag_RC \
-lt_prog_compiler_wl_RC \
 lt_prog_compiler_pic_RC \
+lt_prog_compiler_wl_RC \
 lt_prog_compiler_static_RC \
 lt_cv_prog_compiler_c_o_RC \
 export_dynamic_flag_spec_RC \
@@ -34088,15 +59441,13 @@ with_gnu_ld_RC \
 allow_undefined_flag_RC \
 no_undefined_flag_RC \
 hardcode_libdir_flag_spec_RC \
-hardcode_libdir_flag_spec_ld_RC \
 hardcode_libdir_separator_RC \
-fix_srcfile_path_RC \
 exclude_expsyms_RC \
 include_expsyms_RC \
 file_list_spec_RC; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -34118,11 +59469,13 @@ module_cmds \
 module_expsym_cmds \
 export_symbols_cmds \
 prelink_cmds \
+postlink_cmds \
 postinstall_cmds \
 postuninstall_cmds \
 finish_cmds \
 sys_lib_search_path_spec \
 sys_lib_dlsearch_path_spec \
+reload_cmds_RC \
 old_archive_cmds_RC \
 old_archive_from_new_cmds_RC \
 old_archive_from_expsyms_cmds_RC \
@@ -34131,10 +59484,11 @@ archive_expsym_cmds_RC \
 module_cmds_RC \
 module_expsym_cmds_RC \
 export_symbols_cmds_RC \
-prelink_cmds_RC; do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+prelink_cmds_RC \
+postlink_cmds_RC; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -34142,12 +59496,6 @@ prelink_cmds_RC; do
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\$0 --fallback-echo"')  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
-  ;;
-esac
-
 ac_aux_dir='$ac_aux_dir'
 xsi_shell='$xsi_shell'
 lt_shell_append='$lt_shell_append'
@@ -34190,7 +59538,7 @@ do
     "lib/unistring/woe32dll.h") CONFIG_FILES="$CONFIG_FILES lib/unistring/woe32dll.h:lib/unistring/woe32dll.in.h" ;;
     "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
 
-  *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
 # after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  tmp=
+  tmp= ac_tmp=
   trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
 ' 0
   trap 'as_fn_exit 1' 1 2 13 15
 }
@@ -34223,12 +59572,13 @@ $debug ||
 
 {
   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
+  test -d "$tmp"
 }  ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -34245,12 +59595,12 @@ if test "x$ac_cr" = x; then
 fi
 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\r'
+  ac_cs_awk_cr='\\r'
 else
   ac_cs_awk_cr=$ac_cr
 fi
 
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
 _ACEOF
 
 
@@ -34259,18 +59609,18 @@ _ACEOF
   echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
   echo "_ACEOF"
 } >conf$$subs.sh ||
-  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   . ./conf$$subs.sh ||
-    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
 
   ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
   if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
-    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -34278,7 +59628,7 @@ done
 rm -f conf$$subs.sh
 
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
 _ACEOF
 sed -n '
 h
@@ -34326,7 +59676,7 @@ t delim
 rm -f conf$$subs.awk
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
   for (key in S) S_is_set[key] = 1
   FS = "\a"
 
@@ -34358,21 +59708,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
 else
   cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || as_fn_error "could not setup config files machinery" "$LINENO" 5
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
 # trailing colons and then remove the whole line if VPATH becomes empty
 # (actually we leave an empty line to preserve line numbers).
 if test "x$srcdir" = x.; then
-  ac_vpsub='/^[         ]*VPATH[        ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[    ]*\):*/\1/
+  ac_vpsub='/^[         ]*VPATH[        ]*=[    ]*/{
+h
+s///
+s/^/:/
+s/[     ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
 s/:*$//
+x
+s/\(=[  ]*\).*/\1/
+G
+s/\n//
 s/^[^=]*=[      ]*$//
 }'
 fi
@@ -34384,7 +59742,7 @@ fi # test -n "$CONFIG_FILES"
 # No need to generate them if there are no CONFIG_HEADERS.
 # This happens for instance with `./config.status Makefile'.
 if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
 BEGIN {
 _ACEOF
 
@@ -34396,11 +59754,11 @@ _ACEOF
 # handling of long lines.
 ac_delim='%!_!# '
 for ac_last_try in false false :; do
-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_t"; then
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
     break
   elif $ac_last_try; then
-    as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -34485,7 +59843,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
 _ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  as_fn_error "could not setup config headers machinery" "$LINENO" 5
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
 fi # test -n "$CONFIG_HEADERS"
 
 
@@ -34498,7 +59856,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -34517,7 +59875,7 @@ do
     for ac_f
     do
       case $ac_f in
-      -) ac_f="$tmp/stdin";;
+      -) ac_f="$ac_tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
         # (if the path is not absolute).  The absolute path cannot be DOS-style,
         # because $ac_f cannot contain `:'.
@@ -34526,7 +59884,7 @@ do
           [\\/$]*) false;;
           *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
           esac ||
-          as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+          as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
@@ -34552,8 +59910,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
     esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -34689,23 +60047,24 @@ s&@INSTALL@&$ac_INSTALL&;t t
 s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 "
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || as_fn_error "could not create $ac_file" "$LINENO" 5
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&5
+which seems to be undefined.  Please make sure it is defined" >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&2;}
+which seems to be undefined.  Please make sure it is defined" >&2;}
 
-  rm -f "$tmp/stdin"
+  rm -f "$ac_tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
   esac \
-  || as_fn_error "could not create $ac_file" "$LINENO" 5
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  ;;
   :H)
   #
@@ -34714,21 +60073,21 @@ which seems to be undefined.  Please make sure it is defined." >&2;}
   if test x"$ac_file" != x-; then
     {
       $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-    } >"$tmp/config.h" \
-      || as_fn_error "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
-      mv "$tmp/config.h" "$ac_file" \
-       || as_fn_error "could not create $ac_file" "$LINENO" 5
+      mv "$ac_tmp/config.h" "$ac_file" \
+       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-      || as_fn_error "could not create -" "$LINENO" 5
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
   fi
 # Compute "$ac_file"'s index in $config_headers.
 _am_arg="$ac_file"
@@ -34774,7 +60133,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 
   case $ac_file$ac_mode in
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -34787,7 +60146,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -34821,21 +60180,19 @@ $as_echo X"$mf" |
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`$as_dirname -- "$file" ||
@@ -34889,7 +60246,8 @@ $as_echo X"$file" |
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -34926,13 +60284,13 @@ macro_version=$macro_version
 macro_revision=$macro_revision
 
 # Assembler program.
-AS=$AS
+AS=$lt_AS
 
 # DLL creation program.
-DLLTOOL=$DLLTOOL
+DLLTOOL=$lt_DLLTOOL
 
 # Object dumper program.
-OBJDUMP=$OBJDUMP
+OBJDUMP=$lt_OBJDUMP
 
 # Whether or not to build shared libraries.
 build_libtool_libs=$enable_shared
@@ -34946,6 +60304,15 @@ pic_mode=$pic_mode
 # Whether or not to optimize for fast installation.
 fast_install=$enable_fast_install
 
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
 # The host system.
 host_alias=$host_alias
 host=$host
@@ -34995,20 +60362,36 @@ SP2NL=$lt_lt_SP2NL
 # turn newlines into spaces.
 NL2SP=$lt_lt_NL2SP
 
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
 
 # Method to check whether dependent libraries are shared objects.
 deplibs_check_method=$lt_deplibs_check_method
 
-# Command to use when deplibs_check_method == "file_magic".
+# Command to use when deplibs_check_method = "file_magic".
 file_magic_cmd=$lt_file_magic_cmd
 
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
 # The archiver.
 AR=$lt_AR
+
+# Flags to create an archive.
 AR_FLAGS=$lt_AR_FLAGS
 
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
 # A symbol stripping program.
 STRIP=$lt_STRIP
 
@@ -35017,6 +60400,9 @@ RANLIB=$lt_RANLIB
 old_postinstall_cmds=$lt_old_postinstall_cmds
 old_postuninstall_cmds=$lt_old_postuninstall_cmds
 
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
 # A C compiler.
 LTCC=$lt_CC
 
@@ -35035,14 +60421,14 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
 # Transform the output of nm in a C name address pair when lib prefix is needed.
 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
 
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
 
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
+# The root where to search for dependent libraries,and in which our libraries should be installed.
+lt_sysroot=$lt_sysroot
 
-# An echo program that does not interpret backslashes.
-ECHO=$lt_ECHO
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
 
 # Used to examine libraries when file_magic_cmd begins with "file".
 MAGIC_CMD=$MAGIC_CMD
@@ -35050,6 +60436,9 @@ MAGIC_CMD=$MAGIC_CMD
 # Must we lock files when doing compilation?
 need_locks=$lt_need_locks
 
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
 # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
 DSYMUTIL=$lt_DSYMUTIL
 
@@ -35106,6 +60495,9 @@ library_names_spec=$lt_library_names_spec
 # The coded name of the library, if different from the real name.
 soname_spec=$lt_soname_spec
 
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
 # Command to use after installation of a shared archive.
 postinstall_cmds=$lt_postinstall_cmds
 
@@ -35145,6 +60537,10 @@ striplib=$lt_striplib
 # The linker used to build libraries.
 LD=$lt_LD
 
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
 # Commands used to build an old-style archive.
 old_archive_cmds=$lt_old_archive_cmds
 
@@ -35157,12 +60553,12 @@ with_gcc=$GCC
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
 
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
 # Additional compiler flags for building library objects.
 pic_flag=$lt_lt_prog_compiler_pic
 
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
 # Compiler flag to prevent dynamic linking.
 link_static_flag=$lt_lt_prog_compiler_static
 
@@ -35212,10 +60608,6 @@ no_undefined_flag=$lt_no_undefined_flag
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
@@ -35249,9 +60641,6 @@ inherit_rpath=$inherit_rpath
 # Whether libtool must link a program against all its dependency libraries.
 link_all_deplibs=$link_all_deplibs
 
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
 # Set to "yes" if exported symbols are required.
 always_export_symbols=$always_export_symbols
 
@@ -35267,6 +60656,9 @@ include_expsyms=$lt_include_expsyms
 # Commands necessary for linking programs (against libraries) with templates.
 prelink_cmds=$lt_prelink_cmds
 
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
 # Specify filename containing input files.
 file_list_spec=$lt_file_list_spec
 
@@ -35299,212 +60691,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1+=\$2"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1=\$$1\$2"
-}
-
-_LT_EOF
-    ;;
-  esac
-
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+  if test x"$xsi_shell" = xyes; then
+  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
+func_dirname ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_basename ()$/,/^} # func_basename /c\
+func_basename ()\
+{\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
+func_dirname_and_basename ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
+func_stripname ()\
+{\
+\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
+\    # positional parameters, so assign one to ordinary parameter first.\
+\    func_stripname_result=${3}\
+\    func_stripname_result=${func_stripname_result#"${1}"}\
+\    func_stripname_result=${func_stripname_result%"${2}"}\
+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
+func_split_long_opt ()\
+{\
+\    func_split_long_opt_name=${1%%=*}\
+\    func_split_long_opt_arg=${1#*=}\
+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
+func_split_short_opt ()\
+{\
+\    func_split_short_opt_arg=${1#??}\
+\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
+func_lo2o ()\
+{\
+\    case ${1} in\
+\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
+\      *)    func_lo2o_result=${1} ;;\
+\    esac\
+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_xform ()$/,/^} # func_xform /c\
+func_xform ()\
+{\
+    func_xform_result=${1%.*}.lo\
+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_arith ()$/,/^} # func_arith /c\
+func_arith ()\
+{\
+    func_arith_result=$(( $* ))\
+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_len ()$/,/^} # func_len /c\
+func_len ()\
+{\
+    func_len_result=${#1}\
+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+fi
+
+if test x"$lt_shell_append" = xyes; then
+  sed -e '/^func_append ()$/,/^} # func_append /c\
+func_append ()\
+{\
+    eval "${1}+=\\${2}"\
+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
+func_append_quoted ()\
+{\
+\    func_quote_for_eval "${2}"\
+\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
+
+if test x"$_lt_function_replace_fail" = x":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
+fi
+
+
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 
@@ -35516,6 +60865,10 @@ _LT_EOF
 # The linker used to build libraries.
 LD=$lt_LD_RC
 
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag_RC
+reload_cmds=$lt_reload_cmds_RC
+
 # Commands used to build an old-style archive.
 old_archive_cmds=$lt_old_archive_cmds_RC
 
@@ -35528,12 +60881,12 @@ with_gcc=$GCC_RC
 # Compiler flag to turn off builtin functions.
 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
 
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_RC
-
 # Additional compiler flags for building library objects.
 pic_flag=$lt_lt_prog_compiler_pic_RC
 
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_RC
+
 # Compiler flag to prevent dynamic linking.
 link_static_flag=$lt_lt_prog_compiler_static_RC
 
@@ -35583,10 +60936,6 @@ no_undefined_flag=$lt_no_undefined_flag_RC
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
-
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
 
@@ -35620,9 +60969,6 @@ inherit_rpath=$inherit_rpath_RC
 # Whether libtool must link a program against all its dependency libraries.
 link_all_deplibs=$link_all_deplibs_RC
 
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path_RC
-
 # Set to "yes" if exported symbols are required.
 always_export_symbols=$always_export_symbols_RC
 
@@ -35638,6 +60984,9 @@ include_expsyms=$lt_include_expsyms_RC
 # Commands necessary for linking programs (against libraries) with templates.
 prelink_cmds=$lt_prelink_cmds_RC
 
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds_RC
+
 # Specify filename containing input files.
 file_list_spec=$lt_file_list_spec_RC
 
@@ -35658,7 +61007,7 @@ _ACEOF
 ac_clean_files=$ac_clean_files_save
 
 test $ac_write_fail = 0 ||
-  as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
 
 
 # configure is writing to config.log, and then calls config.status.
@@ -35679,7 +61028,7 @@ if test "$no_create" != yes; then
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
-  $ac_cs_success || as_fn_exit $?
+  $ac_cs_success || as_fn_exit 1
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
index 460244f..38fe5dd 100644 (file)
@@ -22,7 +22,7 @@ AC_CONFIG_SRCDIR([lib/unistring/version.in.h])
 AC_CONFIG_AUX_DIR([build-aux])
 . $srcdir/version.sh
 gl_INIT_PACKAGE([libunistring], [$VERSION_NUMBER])
-AM_INIT_AUTOMAKE([silent-rules])
+AM_INIT_AUTOMAKE([silent-rules dist-xz])
 AM_CONFIG_HEADER([config.h])
 
 dnl Override automake's tar command used for creating distributions.
@@ -130,10 +130,16 @@ i\
 0
 q
 '
+sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
 changequote([,])
 version_major=`echo "${VERSION}" | sed -n -e "$sed_extract_major"`
 version_minor=`echo "${VERSION}" | sed -n -e "$sed_extract_minor"`
-HEXVERSION=0x`$AWK 'BEGIN { printf("%02d%02d"',"$version_major","$version_minor"') }'`
+version_subminor=`echo "${VERSION}" | sed -n -e "$sed_extract_subminor"`
+HEXVERSION=0x`$AWK 'BEGIN { printf("%02X%02X%02X"',"$version_major","$version_minor","$version_subminor"') }'`
 AC_SUBST([HEXVERSION])
 
 dnl Check for tools needed for formatting the documentation.
index ac3480c..bca3aeb 100644 (file)
@@ -1,5 +1,5 @@
 ## Makefile for the doc subdirectory of GNU libunistring.
-## Copyright (C) 2009 Free Software Foundation, Inc.
+## Copyright (C) 2009, 2011 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
@@ -33,8 +33,8 @@ info_TEXINFOS = libunistring.texi
 # List of texinfo sources @included by libunistring.texi, excluding version.texi.
 libunistring_TEXINFOS = \
   unitypes.texi unistr.texi uniconv.texi unistdio.texi uniname.texi \
-  unictype.texi uniwidth.texi uniwbrk.texi unilbrk.texi uninorm.texi \
-  unicase.texi uniregex.texi \
+  unictype.texi uniwidth.texi unigbrk.texi uniwbrk.texi unilbrk.texi \
+  uninorm.texi unicase.texi uniregex.texi \
   gpl.texi lgpl.texi fdl.texi
 
 # The dependencies of stamp-vti generated by automake are incomplete.
@@ -87,7 +87,7 @@ TEXI2DVI = @TEXI2DVI@ $(TEXINCLUDES)
 # The install-dvi target is already defined by automake.
 
 installdirs-dvi:
-       $(mkdir_p) $(DESTDIR)$(dvidir)
+       $(MKDIR_P) $(DESTDIR)$(dvidir)
 
 uninstall-dvi:
        $(RM) $(DESTDIR)$(dvidir)/libunistring.dvi
@@ -105,7 +105,7 @@ libunistring.ps: libunistring.dvi
 # The install-ps target is already defined by automake.
 
 installdirs-ps:
-       $(mkdir_p) $(DESTDIR)$(psdir)
+       $(MKDIR_P) $(DESTDIR)$(psdir)
 
 uninstall-ps:
        $(RM) $(DESTDIR)$(psdir)/libunistring.ps
@@ -120,7 +120,7 @@ TEXI2PDF = @TEXI2DVI@ --pdf $(TEXINCLUDES)
 # The install-pdf target is already defined by automake.
 
 installdirs-pdf:
-       $(mkdir_p) $(DESTDIR)$(pdfdir)
+       $(MKDIR_P) $(DESTDIR)$(pdfdir)
 
 uninstall-pdf:
        $(RM) $(DESTDIR)$(pdfdir)/libunistring.pdf
@@ -151,17 +151,17 @@ libunistring_toc.html: libunistring.texi version.texi $(libunistring_TEXINFOS)
           }
 
 install-html-monolithic: libunistring.html
-       $(mkdir_p) $(DESTDIR)$(htmldir)
+       $(MKDIR_P) $(DESTDIR)$(htmldir)
        $(INSTALL_DATA) `if test -f libunistring.html; then echo .; else echo $(srcdir); fi`/libunistring.html $(DESTDIR)$(htmldir)/libunistring.html
 
 install-html-split: libunistring_toc.html
-       $(mkdir_p) $(DESTDIR)$(htmldir)
+       $(MKDIR_P) $(DESTDIR)$(htmldir)
        for file in `if test -f libunistring_toc.html; then echo .; else echo $(srcdir); fi`/libunistring_*.html; do \
          $(INSTALL_DATA) $$file $(DESTDIR)$(htmldir)/`basename $$file`; \
        done
 
 installdirs-html:
-       $(mkdir_p) $(DESTDIR)$(htmldir)
+       $(MKDIR_P) $(DESTDIR)$(htmldir)
 
 uninstall-html-monolithic:
        $(RM) $(DESTDIR)$(htmldir)/libunistring.html
@@ -170,14 +170,14 @@ uninstall-html-split:
        $(RM) $(DESTDIR)$(htmldir)/libunistring_*.html
 
 dist-html-monolithic:
-       $(mkdir_p) $(distdir)/
+       $(MKDIR_P) $(distdir)/
        file=libunistring.html; \
        if test -f $$file; then d=.; else d=$(srcdir); fi; \
        cp -p $$d/$$file $(distdir)/$$file || exit 1
 
 # We would like to put libunistring_*.html into EXTRA_DIST, but it doesn't work.
 dist-html-split: libunistring_toc.html
-       $(mkdir_p) $(distdir)/
+       $(MKDIR_P) $(distdir)/
        file=libunistring_toc.html; \
        if test -f $$file; then d=.; else d=$(srcdir); fi; \
        for file in `cd $$d && echo libunistring_*.html`; do \
index 26bd774..a4064e0 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -34,13 +77,17 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = doc
-DIST_COMMON = $(libunistring_TEXINFOS) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in $(srcdir)/stamp-vti \
-       $(srcdir)/version.texi
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(libunistring_TEXINFOS) $(top_srcdir)/build-aux/mdate-sh \
+       $(srcdir)/version.texi $(srcdir)/stamp-vti \
+       $(top_srcdir)/build-aux/texinfo.tex
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
+       $(top_srcdir)/gnulib-m4/absolute-header.m4 \
        $(top_srcdir)/gnulib-m4/alloca.m4 \
+       $(top_srcdir)/gnulib-m4/btowc.m4 \
        $(top_srcdir)/gnulib-m4/codeset.m4 \
+       $(top_srcdir)/gnulib-m4/configmake.m4 \
        $(top_srcdir)/gnulib-m4/eealloc.m4 \
        $(top_srcdir)/gnulib-m4/environ.m4 \
        $(top_srcdir)/gnulib-m4/errno_h.m4 \
@@ -49,11 +96,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/exponentf.m4 \
        $(top_srcdir)/gnulib-m4/exponentl.m4 \
        $(top_srcdir)/gnulib-m4/extensions.m4 \
+       $(top_srcdir)/gnulib-m4/extern-inline.m4 \
        $(top_srcdir)/gnulib-m4/fcntl-o.m4 \
+       $(top_srcdir)/gnulib-m4/fdopen.m4 \
        $(top_srcdir)/gnulib-m4/float_h.m4 \
        $(top_srcdir)/gnulib-m4/fpieee.m4 \
        $(top_srcdir)/gnulib-m4/frexp.m4 \
        $(top_srcdir)/gnulib-m4/frexpl.m4 \
+       $(top_srcdir)/gnulib-m4/fseterr.m4 \
        $(top_srcdir)/gnulib-m4/getpagesize.m4 \
        $(top_srcdir)/gnulib-m4/glibc21.m4 \
        $(top_srcdir)/gnulib-m4/gnulib-common.m4 \
@@ -65,16 +115,21 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/inline.m4 \
        $(top_srcdir)/gnulib-m4/intlmacosx.m4 \
        $(top_srcdir)/gnulib-m4/intmax_t.m4 \
+       $(top_srcdir)/gnulib-m4/inttypes-pri.m4 \
+       $(top_srcdir)/gnulib-m4/inttypes.m4 \
        $(top_srcdir)/gnulib-m4/inttypes_h.m4 \
        $(top_srcdir)/gnulib-m4/isnand.m4 \
        $(top_srcdir)/gnulib-m4/isnanf.m4 \
        $(top_srcdir)/gnulib-m4/isnanl.m4 \
+       $(top_srcdir)/gnulib-m4/iswblank.m4 \
        $(top_srcdir)/gnulib-m4/lcmessage.m4 \
        $(top_srcdir)/gnulib-m4/ldexpl.m4 \
        $(top_srcdir)/gnulib-m4/lib-ld.m4 \
        $(top_srcdir)/gnulib-m4/lib-link.m4 \
        $(top_srcdir)/gnulib-m4/lib-prefix.m4 \
+       $(top_srcdir)/gnulib-m4/libunistring-base.m4 \
        $(top_srcdir)/gnulib-m4/localcharset.m4 \
+       $(top_srcdir)/gnulib-m4/locale-ar.m4 \
        $(top_srcdir)/gnulib-m4/locale-fr.m4 \
        $(top_srcdir)/gnulib-m4/locale-ja.m4 \
        $(top_srcdir)/gnulib-m4/locale-tr.m4 \
@@ -91,27 +146,37 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/mbrtowc.m4 \
        $(top_srcdir)/gnulib-m4/mbsinit.m4 \
        $(top_srcdir)/gnulib-m4/mbstate_t.m4 \
+       $(top_srcdir)/gnulib-m4/mbtowc.m4 \
        $(top_srcdir)/gnulib-m4/memchr.m4 \
        $(top_srcdir)/gnulib-m4/minmax.m4 \
        $(top_srcdir)/gnulib-m4/mmap-anon.m4 \
+       $(top_srcdir)/gnulib-m4/msvc-inval.m4 \
+       $(top_srcdir)/gnulib-m4/msvc-nothrow.m4 \
        $(top_srcdir)/gnulib-m4/multiarch.m4 \
        $(top_srcdir)/gnulib-m4/nocrash.m4 \
+       $(top_srcdir)/gnulib-m4/off_t.m4 \
        $(top_srcdir)/gnulib-m4/printf-frexp.m4 \
        $(top_srcdir)/gnulib-m4/printf-frexpl.m4 \
        $(top_srcdir)/gnulib-m4/printf.m4 \
        $(top_srcdir)/gnulib-m4/putenv.m4 \
        $(top_srcdir)/gnulib-m4/relocatable-lib.m4 \
        $(top_srcdir)/gnulib-m4/setenv.m4 \
+       $(top_srcdir)/gnulib-m4/setlocale.m4 \
        $(top_srcdir)/gnulib-m4/signbit.m4 \
        $(top_srcdir)/gnulib-m4/size_max.m4 \
+       $(top_srcdir)/gnulib-m4/ssize_t.m4 \
        $(top_srcdir)/gnulib-m4/stdbool.m4 \
        $(top_srcdir)/gnulib-m4/stddef_h.m4 \
        $(top_srcdir)/gnulib-m4/stdint.m4 \
        $(top_srcdir)/gnulib-m4/stdint_h.m4 \
+       $(top_srcdir)/gnulib-m4/stdio_h.m4 \
        $(top_srcdir)/gnulib-m4/stdlib_h.m4 \
        $(top_srcdir)/gnulib-m4/strerror.m4 \
        $(top_srcdir)/gnulib-m4/string_h.m4 \
        $(top_srcdir)/gnulib-m4/strncat.m4 \
+       $(top_srcdir)/gnulib-m4/strstr.m4 \
+       $(top_srcdir)/gnulib-m4/sys_socket_h.m4 \
+       $(top_srcdir)/gnulib-m4/sys_types_h.m4 \
        $(top_srcdir)/gnulib-m4/thread.m4 \
        $(top_srcdir)/gnulib-m4/threadlib.m4 \
        $(top_srcdir)/gnulib-m4/unistd_h.m4 \
@@ -119,7 +184,9 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/warn-on-use.m4 \
        $(top_srcdir)/gnulib-m4/wchar_h.m4 \
        $(top_srcdir)/gnulib-m4/wchar_t.m4 \
+       $(top_srcdir)/gnulib-m4/wcrtomb.m4 \
        $(top_srcdir)/gnulib-m4/wctob.m4 \
+       $(top_srcdir)/gnulib-m4/wctomb.m4 \
        $(top_srcdir)/gnulib-m4/wctype_h.m4 \
        $(top_srcdir)/gnulib-m4/wcwidth.m4 \
        $(top_srcdir)/gnulib-m4/wint_t.m4 \
@@ -137,14 +204,48 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
+AM_V_DVIPS = $(am__v_DVIPS_@AM_V@)
+am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@)
+am__v_DVIPS_0 = @echo "  DVIPS   " $@;
+am__v_DVIPS_1 = 
+AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@)
+am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@)
+am__v_MAKEINFO_0 = @echo "  MAKEINFO" $@;
+am__v_MAKEINFO_1 = 
+AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@)
+am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@)
+am__v_INFOHTML_0 = @echo "  INFOHTML" $@;
+am__v_INFOHTML_1 = 
+AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@)
+am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@)
+am__v_TEXI2DVI_0 = @echo "  TEXI2DVI" $@;
+am__v_TEXI2DVI_1 = 
+AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@)
+am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@)
+am__v_TEXI2PDF_0 = @echo "  TEXI2PDF" $@;
+am__v_TEXI2PDF_1 = 
+AM_V_texinfo = $(am__v_texinfo_@AM_V@)
+am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@)
+am__v_texinfo_0 = -q
+am__v_texinfo_1 = 
+AM_V_texidevnull = $(am__v_texidevnull_@AM_V@)
+am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
+am__v_texidevnull_0 = > /dev/null
+am__v_texidevnull_1 = 
 INFO_DEPS = $(srcdir)/libunistring.info
 TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex
 am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux
@@ -155,6 +256,11 @@ HTMLS = libunistring.html
 TEXINFOS = libunistring.texi
 MAKEINFOHTML = $(MAKEINFO) --html
 AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 am__installdirs = "$(DESTDIR)$(infodir)"
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -177,7 +283,15 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -185,6 +299,7 @@ AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
+ARFLAGS = @ARFLAGS@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -229,38 +344,97 @@ FGREP = @FGREP@
 FLOAT_H = @FLOAT_H@
 GLIBC21 = @GLIBC21@
 GLOBAL_SYMBOL_PIPE = @GLOBAL_SYMBOL_PIPE@
+GNULIB_ACOSF = @GNULIB_ACOSF@
 GNULIB_ACOSL = @GNULIB_ACOSL@
+GNULIB_ASINF = @GNULIB_ASINF@
 GNULIB_ASINL = @GNULIB_ASINL@
+GNULIB_ATAN2F = @GNULIB_ATAN2F@
+GNULIB_ATANF = @GNULIB_ATANF@
 GNULIB_ATANL = @GNULIB_ATANL@
 GNULIB_ATOLL = @GNULIB_ATOLL@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
+GNULIB_CBRT = @GNULIB_CBRT@
+GNULIB_CBRTF = @GNULIB_CBRTF@
+GNULIB_CBRTL = @GNULIB_CBRTL@
+GNULIB_CEIL = @GNULIB_CEIL@
 GNULIB_CEILF = @GNULIB_CEILF@
 GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_COPYSIGN = @GNULIB_COPYSIGN@
+GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@
+GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@
+GNULIB_COSF = @GNULIB_COSF@
+GNULIB_COSHF = @GNULIB_COSHF@
 GNULIB_COSL = @GNULIB_COSL@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
 GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXP2 = @GNULIB_EXP2@
+GNULIB_EXP2F = @GNULIB_EXP2F@
+GNULIB_EXP2L = @GNULIB_EXP2L@
+GNULIB_EXPF = @GNULIB_EXPF@
 GNULIB_EXPL = @GNULIB_EXPL@
+GNULIB_EXPM1 = @GNULIB_EXPM1@
+GNULIB_EXPM1F = @GNULIB_EXPM1F@
+GNULIB_EXPM1L = @GNULIB_EXPM1L@
+GNULIB_FABSF = @GNULIB_FABSF@
+GNULIB_FABSL = @GNULIB_FABSL@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
 GNULIB_FCHDIR = @GNULIB_FCHDIR@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
+GNULIB_FCLOSE = @GNULIB_FCLOSE@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FLOOR = @GNULIB_FLOOR@
 GNULIB_FLOORF = @GNULIB_FLOORF@
 GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FMA = @GNULIB_FMA@
+GNULIB_FMAF = @GNULIB_FMAF@
+GNULIB_FMAL = @GNULIB_FMAL@
+GNULIB_FMOD = @GNULIB_FMOD@
+GNULIB_FMODF = @GNULIB_FMODF@
+GNULIB_FMODL = @GNULIB_FMODL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF = @GNULIB_FPRINTF@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FPURGE = @GNULIB_FPURGE@
+GNULIB_FPUTC = @GNULIB_FPUTC@
+GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
 GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPF = @GNULIB_FREXPF@
 GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
 GNULIB_FSYNC = @GNULIB_FSYNC@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
 GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
 GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
 GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
+GNULIB_GETLINE = @GNULIB_GETLINE@
 GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
@@ -268,17 +442,45 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_HYPOT = @GNULIB_HYPOT@
+GNULIB_HYPOTF = @GNULIB_HYPOTF@
+GNULIB_HYPOTL = @GNULIB_HYPOTL@
+GNULIB_ICONV = @GNULIB_ICONV@
+GNULIB_ILOGB = @GNULIB_ILOGB@
+GNULIB_ILOGBF = @GNULIB_ILOGBF@
+GNULIB_ILOGBL = @GNULIB_ILOGBL@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 GNULIB_ISFINITE = @GNULIB_ISFINITE@
 GNULIB_ISINF = @GNULIB_ISINF@
 GNULIB_ISNAN = @GNULIB_ISNAN@
 GNULIB_ISNAND = @GNULIB_ISNAND@
 GNULIB_ISNANF = @GNULIB_ISNANF@
 GNULIB_ISNANL = @GNULIB_ISNANL@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPF = @GNULIB_LDEXPF@
 GNULIB_LDEXPL = @GNULIB_LDEXPL@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOG = @GNULIB_LOG@
+GNULIB_LOG10 = @GNULIB_LOG10@
+GNULIB_LOG10F = @GNULIB_LOG10F@
+GNULIB_LOG10L = @GNULIB_LOG10L@
+GNULIB_LOG1P = @GNULIB_LOG1P@
+GNULIB_LOG1PF = @GNULIB_LOG1PF@
+GNULIB_LOG1PL = @GNULIB_LOG1PL@
+GNULIB_LOG2 = @GNULIB_LOG2@
+GNULIB_LOG2F = @GNULIB_LOG2F@
+GNULIB_LOG2L = @GNULIB_LOG2L@
 GNULIB_LOGB = @GNULIB_LOGB@
+GNULIB_LOGBF = @GNULIB_LOGBF@
+GNULIB_LOGBL = @GNULIB_LOGBL@
+GNULIB_LOGF = @GNULIB_LOGF@
 GNULIB_LOGL = @GNULIB_LOGL@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -301,6 +503,7 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@
 GNULIB_MBSSPN = @GNULIB_MBSSPN@
 GNULIB_MBSSTR = @GNULIB_MBSSTR@
 GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MBTOWC = @GNULIB_MBTOWC@
 GNULIB_MEMCHR = @GNULIB_MEMCHR@
 GNULIB_MEMMEM = @GNULIB_MEMMEM@
 GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
@@ -310,32 +513,73 @@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
 GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
 GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
 GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
+GNULIB_MODF = @GNULIB_MODF@
+GNULIB_MODFF = @GNULIB_MODFF@
+GNULIB_MODFL = @GNULIB_MODFL@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_POWF = @GNULIB_POWF@
 GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_REMAINDER = @GNULIB_REMAINDER@
+GNULIB_REMAINDERF = @GNULIB_REMAINDERF@
+GNULIB_REMAINDERL = @GNULIB_REMAINDERL@
+GNULIB_REMOVE = @GNULIB_REMOVE@
+GNULIB_RENAME = @GNULIB_RENAME@
+GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_RINT = @GNULIB_RINT@
+GNULIB_RINTF = @GNULIB_RINTF@
+GNULIB_RINTL = @GNULIB_RINTL@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_ROUND = @GNULIB_ROUND@
 GNULIB_ROUNDF = @GNULIB_ROUNDF@
 GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
 GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SINF = @GNULIB_SINF@
+GNULIB_SINHF = @GNULIB_SINHF@
 GNULIB_SINL = @GNULIB_SINL@
 GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_SQRTF = @GNULIB_SQRTF@
 GNULIB_SQRTL = @GNULIB_SQRTL@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
 GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
 GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
 GNULIB_STRDUP = @GNULIB_STRDUP@
 GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRERROR_R = @GNULIB_STRERROR_R@
 GNULIB_STRNCAT = @GNULIB_STRNCAT@
 GNULIB_STRNDUP = @GNULIB_STRNDUP@
 GNULIB_STRNLEN = @GNULIB_STRNLEN@
@@ -344,87 +588,197 @@ GNULIB_STRSEP = @GNULIB_STRSEP@
 GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
 GNULIB_STRSTR = @GNULIB_STRSTR@
 GNULIB_STRTOD = @GNULIB_STRTOD@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
 GNULIB_STRTOLL = @GNULIB_STRTOLL@
 GNULIB_STRTOULL = @GNULIB_STRTOULL@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
+GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TANF = @GNULIB_TANF@
+GNULIB_TANHF = @GNULIB_TANHF@
 GNULIB_TANL = @GNULIB_TANL@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TRUNC = @GNULIB_TRUNC@
 GNULIB_TRUNCF = @GNULIB_TRUNCF@
 GNULIB_TRUNCL = @GNULIB_TRUNCL@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
 GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
 GNULIB_UNSETENV = @GNULIB_UNSETENV@
 GNULIB_USLEEP = @GNULIB_USLEEP@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
+GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
 GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
 GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
 GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
 GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACOSF = @HAVE_ACOSF@
 HAVE_ACOSL = @HAVE_ACOSL@
+HAVE_ASINF = @HAVE_ASINF@
 HAVE_ASINL = @HAVE_ASINL@
+HAVE_ATAN2F = @HAVE_ATAN2F@
+HAVE_ATANF = @HAVE_ATANF@
 HAVE_ATANL = @HAVE_ATANL@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CBRT = @HAVE_CBRT@
+HAVE_CBRTF = @HAVE_CBRTF@
+HAVE_CBRTL = @HAVE_CBRTL@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_COPYSIGN = @HAVE_COPYSIGN@
+HAVE_COPYSIGNL = @HAVE_COPYSIGNL@
+HAVE_COSF = @HAVE_COSF@
+HAVE_COSHF = @HAVE_COSHF@
 HAVE_COSL = @HAVE_COSL@
 HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
 HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
 HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@
+HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@
 HAVE_DECL_CEILF = @HAVE_DECL_CEILF@
 HAVE_DECL_CEILL = @HAVE_DECL_CEILL@
+HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@
 HAVE_DECL_COSL = @HAVE_DECL_COSL@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@
+HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@
+HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@
 HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@
 HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
 HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@
+HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@
+HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@
+HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@
 HAVE_DECL_LOGB = @HAVE_DECL_LOGB@
 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_REMAINDER = @HAVE_DECL_REMAINDER@
+HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@
+HAVE_DECL_RINTF = @HAVE_DECL_RINTF@
 HAVE_DECL_ROUND = @HAVE_DECL_ROUND@
 HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@
 HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
 HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
 HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
 HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
 HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
 HAVE_DECL_TANL = @HAVE_DECL_TANL@
 HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
 HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
 HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPF = @HAVE_EXPF@
 HAVE_EXPL = @HAVE_EXPL@
+HAVE_EXPM1 = @HAVE_EXPM1@
+HAVE_EXPM1F = @HAVE_EXPM1F@
+HAVE_FABSF = @HAVE_FABSF@
+HAVE_FABSL = @HAVE_FABSL@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FMA = @HAVE_FMA@
+HAVE_FMAF = @HAVE_FMAF@
+HAVE_FMAL = @HAVE_FMAL@
+HAVE_FMODF = @HAVE_FMODF@
+HAVE_FMODL = @HAVE_FMODL@
+HAVE_FREXPF = @HAVE_FREXPF@
+HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
 HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@
 HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
 HAVE_GETGROUPS = @HAVE_GETGROUPS@
 HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
@@ -433,6 +787,12 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GLOBAL_SYMBOL_PIPE = @HAVE_GLOBAL_SYMBOL_PIPE@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_HYPOTF = @HAVE_HYPOTF@
+HAVE_HYPOTL = @HAVE_HYPOTL@
+HAVE_ILOGB = @HAVE_ILOGB@
+HAVE_ILOGBF = @HAVE_ILOGBF@
+HAVE_ILOGBL = @HAVE_ILOGBL@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISNAND = @HAVE_ISNAND@
 HAVE_ISNANF = @HAVE_ISNANF@
@@ -440,11 +800,19 @@ HAVE_ISNANL = @HAVE_ISNANL@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
+HAVE_LOG10F = @HAVE_LOG10F@
+HAVE_LOG10L = @HAVE_LOG10L@
+HAVE_LOG1P = @HAVE_LOG1P@
+HAVE_LOG1PF = @HAVE_LOG1PF@
+HAVE_LOG1PL = @HAVE_LOG1PL@
+HAVE_LOGBF = @HAVE_LOGBF@
+HAVE_LOGBL = @HAVE_LOGBL@
+HAVE_LOGF = @HAVE_LOGF@
 HAVE_LOGL = @HAVE_LOGL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -458,24 +826,45 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MODFF = @HAVE_MODFF@
+HAVE_MODFL = @HAVE_MODFL@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POWF = @HAVE_POWF@
 HAVE_PREAD = @HAVE_PREAD@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
 HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_REMAINDER = @HAVE_REMAINDER@
+HAVE_REMAINDERF = @HAVE_REMAINDERF@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_RINT = @HAVE_RINT@
+HAVE_RINTL = @HAVE_RINTL@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SINF = @HAVE_SINF@
+HAVE_SINHF = @HAVE_SINHF@
 HAVE_SINL = @HAVE_SINL@
 HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_SQRTF = @HAVE_SQRTF@
 HAVE_SQRTL = @HAVE_SQRTL@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -496,24 +885,59 @@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_TANF = @HAVE_TANF@
+HAVE_TANHF = @HAVE_TANHF@
 HAVE_TANL = @HAVE_TANL@
-HAVE_TTYNAME_R = @HAVE_TTYNAME_R@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
 HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_VDPRINTF = @HAVE_VDPRINTF@
 HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCHAR_T = @HAVE_WCHAR_T@
+HAVE_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
 HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
 HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
 HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
 HEXVERSION = @HEXVERSION@
+ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
@@ -522,6 +946,8 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 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@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
@@ -535,9 +961,22 @@ LIBS = @LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
+LIBUNISTRING_UNICASE_H = @LIBUNISTRING_UNICASE_H@
+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_UNINAME_H = @LIBUNISTRING_UNINAME_H@
+LIBUNISTRING_UNINORM_H = @LIBUNISTRING_UNINORM_H@
+LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@
+LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWBRK_H = @LIBUNISTRING_UNIWBRK_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+LOCALE_AR = @LOCALE_AR@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
 LOCALE_JA = @LOCALE_JA@
@@ -550,29 +989,36 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 NAMESPACING = @NAMESPACING@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_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@
+NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
 NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
+NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_ICONV_H = @NEXT_ICONV_H@
+NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
 NEXT_MATH_H = @NEXT_MATH_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
 NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
@@ -591,86 +1037,192 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 RC = @RC@
 RELOCATABLE = @RELOCATABLE@
 REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CBRTF = @REPLACE_CBRTF@
+REPLACE_CBRTL = @REPLACE_CBRTL@
+REPLACE_CEIL = @REPLACE_CEIL@
 REPLACE_CEILF = @REPLACE_CEILF@
 REPLACE_CEILL = @REPLACE_CEILL@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_EXP2 = @REPLACE_EXP2@
+REPLACE_EXP2L = @REPLACE_EXP2L@
+REPLACE_EXPM1 = @REPLACE_EXPM1@
+REPLACE_EXPM1F = @REPLACE_EXPM1F@
+REPLACE_FABSL = @REPLACE_FABSL@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOOR = @REPLACE_FLOOR@
 REPLACE_FLOORF = @REPLACE_FLOORF@
 REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FMA = @REPLACE_FMA@
+REPLACE_FMAF = @REPLACE_FMAF@
+REPLACE_FMAL = @REPLACE_FMAL@
+REPLACE_FMOD = @REPLACE_FMOD@
+REPLACE_FMODF = @REPLACE_FMODF@
+REPLACE_FMODL = @REPLACE_FMODL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
 REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPF = @REPLACE_FREXPF@
 REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETDELIM = @REPLACE_GETDELIM@
+REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@
+REPLACE_HYPOT = @REPLACE_HYPOT@
+REPLACE_HYPOTF = @REPLACE_HYPOTF@
+REPLACE_HYPOTL = @REPLACE_HYPOTL@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_ILOGB = @REPLACE_ILOGB@
+REPLACE_ILOGBF = @REPLACE_ILOGBF@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISFINITE = @REPLACE_ISFINITE@
 REPLACE_ISINF = @REPLACE_ISINF@
 REPLACE_ISNAN = @REPLACE_ISNAN@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LDEXPL = @REPLACE_LDEXPL@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOG = @REPLACE_LOG@
+REPLACE_LOG10 = @REPLACE_LOG10@
+REPLACE_LOG10F = @REPLACE_LOG10F@
+REPLACE_LOG10L = @REPLACE_LOG10L@
+REPLACE_LOG1P = @REPLACE_LOG1P@
+REPLACE_LOG1PF = @REPLACE_LOG1PF@
+REPLACE_LOG1PL = @REPLACE_LOG1PL@
+REPLACE_LOG2 = @REPLACE_LOG2@
+REPLACE_LOG2F = @REPLACE_LOG2F@
+REPLACE_LOG2L = @REPLACE_LOG2L@
+REPLACE_LOGB = @REPLACE_LOGB@
+REPLACE_LOGBF = @REPLACE_LOGBF@
+REPLACE_LOGBL = @REPLACE_LOGBL@
+REPLACE_LOGF = @REPLACE_LOGF@
+REPLACE_LOGL = @REPLACE_LOGL@
 REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MALLOC = @REPLACE_MALLOC@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBTOWC = @REPLACE_MBTOWC@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_MODF = @REPLACE_MODF@
+REPLACE_MODFF = @REPLACE_MODFF@
+REPLACE_MODFL = @REPLACE_MODFL@
 REPLACE_NAN = @REPLACE_NAN@
 REPLACE_NULL = @REPLACE_NULL@
+REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
+REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
+REPLACE_REMAINDER = @REPLACE_REMAINDER@
+REPLACE_REMAINDERF = @REPLACE_REMAINDERF@
+REPLACE_REMAINDERL = @REPLACE_REMAINDERL@
+REPLACE_REMOVE = @REPLACE_REMOVE@
+REPLACE_RENAME = @REPLACE_RENAME@
+REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_ROUND = @REPLACE_ROUND@
 REPLACE_ROUNDF = @REPLACE_ROUNDF@
 REPLACE_ROUNDL = @REPLACE_ROUNDL@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
 REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
 REPLACE_SLEEP = @REPLACE_SLEEP@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_SQRTL = @REPLACE_SQRTL@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
 REPLACE_STRNCAT = @REPLACE_STRNCAT@
 REPLACE_STRNDUP = @REPLACE_STRNDUP@
 REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TRUNC = @REPLACE_TRUNC@
+REPLACE_TRUNCF = @REPLACE_TRUNCF@
 REPLACE_TRUNCL = @REPLACE_TRUNCL@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
 REPLACE_UNSETENV = @REPLACE_UNSETENV@
 REPLACE_USLEEP = @REPLACE_USLEEP@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
 SED = @SED@
@@ -688,17 +1240,21 @@ STRIP = @STRIP@
 # Override of automake's definition:
 #TEXI2DVI = @TEXI2DVI@
 TEXI2DVI = @TEXI2DVI@ $(TEXINCLUDES)
+UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
+UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 VERSION = @VERSION@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 YIELD_LIB = @YIELD_LIB@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -734,9 +1290,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+lispdir = @lispdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -744,6 +1300,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -766,8 +1323,8 @@ info_TEXINFOS = libunistring.texi
 # List of texinfo sources @included by libunistring.texi, excluding version.texi.
 libunistring_TEXINFOS = \
   unitypes.texi unistr.texi uniconv.texi unistdio.texi uniname.texi \
-  unictype.texi uniwidth.texi uniwbrk.texi unilbrk.texi uninorm.texi \
-  unicase.texi uniregex.texi \
+  unictype.texi uniwidth.texi unigbrk.texi uniwbrk.texi unilbrk.texi \
+  uninorm.texi unicase.texi uniregex.texi \
   gpl.texi lgpl.texi fdl.texi
 
 
@@ -824,7 +1381,7 @@ clean-libtool:
        -rm -rf .libs _libs
 
 .texi.info:
-       restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+       $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
        am__cwd=`pwd` && $(am__cd) $(srcdir) && \
        rm -rf $$backupdir && mkdir $$backupdir && \
        if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
@@ -846,18 +1403,20 @@ clean-libtool:
        rm -rf $$backupdir; exit $$rc
 
 .texi.dvi:
-       TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
        MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-       $(TEXI2DVI) $<
+       $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
+       $<
 
 .texi.pdf:
-       TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
        MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
-       $(TEXI2PDF) $<
+       $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
+       $<
 
 .texi.html:
-       rm -rf $(@:.html=.htp)
-       if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+       $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
+       $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
         -o $(@:.html=.htp) $<; \
        then \
          rm -rf $@; \
@@ -879,8 +1438,8 @@ mostlyclean-vti:
 maintainer-clean-vti:
        -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
 .dvi.ps:
-       TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
-       $(DVIPS) -o $@ $<
+       $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+       $(DVIPS) $(AM_V_texinfo) -o $@ $<
 
 uninstall-dvi-am:
        @$(NORMAL_UNINSTALL)
@@ -902,9 +1461,7 @@ uninstall-html-am:
 
 uninstall-info-am:
        @$(PRE_UNINSTALL)
-       @if test -d '$(DESTDIR)$(infodir)' && \
-           (install-info --version && \
-            install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+       @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \
          list='$(INFO_DEPS)'; \
          for file in $$list; do \
            relfile=`echo "$$file" | sed 's|^.*/||'`; \
@@ -961,11 +1518,7 @@ dist-info: $(INFO_DEPS)
        done
 
 mostlyclean-aminfo:
-       -rm -rf libunistring.am libunistring.aux libunistring.cp libunistring.cps \
-         libunistring.fn libunistring.ky libunistring.kys \
-         libunistring.log libunistring.pg libunistring.pgs \
-         libunistring.tmp libunistring.toc libunistring.tp \
-         libunistring.vr libunistring.vrs
+       -rm -rf libunistring.t2d libunistring.t2p
 
 clean-aminfo:
        -test -z "libunistring.dvi libunistring.pdf libunistring.ps libunistring.html" \
@@ -977,11 +1530,11 @@ maintainer-clean-aminfo:
          echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
          rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
        done
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -1034,10 +1587,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
        -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
 
@@ -1077,8 +1635,11 @@ install-dvi: install-dvi-am
 
 install-dvi-am: $(DVIS)
        @$(NORMAL_INSTALL)
-       test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
        @list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -1091,18 +1652,22 @@ install-exec-am:
 
 install-html-am: $(HTMLS)
        @$(NORMAL_INSTALL)
-       test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
        @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
          $(am__strip_dir) \
-         if test -d "$$d$$p"; then \
+         d2=$$d$$p; \
+         if test -d "$$d2"; then \
            echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
            $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
-           echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
-           $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
+           echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+           $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
          else \
-           list2="$$list2 $$d$$p"; \
+           list2="$$list2 $$d2"; \
          fi; \
        done; \
        test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
@@ -1114,9 +1679,12 @@ install-info: install-info-am
 
 install-info-am: $(INFO_DEPS)
        @$(NORMAL_INSTALL)
-       test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
        @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
        list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \
+       fi; \
        for file in $$list; do \
          case $$file in \
            $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
@@ -1134,8 +1702,7 @@ install-info-am: $(INFO_DEPS)
          echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
          $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
        @$(POST_INSTALL)
-       @if (install-info --version && \
-            install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+       @if $(am__can_run_installinfo); then \
          list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
          for file in $$list; do \
            relfile=`echo "$$file" | sed 's|^.*/||'`; \
@@ -1149,8 +1716,11 @@ install-pdf: install-pdf-am
 
 install-pdf-am: $(PDFS)
        @$(NORMAL_INSTALL)
-       test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
        @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -1162,8 +1732,11 @@ install-ps: install-ps-am
 
 install-ps-am: $(PSS)
        @$(NORMAL_INSTALL)
-       test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
        @list='$(PSS)'; test -n "$(psdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -1197,18 +1770,19 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-aminfo \
-       clean-generic clean-libtool dist-hook dist-info distclean \
-       distclean-generic distclean-libtool distdir dvi dvi-am html \
-       html-am html-local info info-am install install-am \
-       install-data install-data-am install-data-local install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       installdirs-local maintainer-clean maintainer-clean-aminfo \
-       maintainer-clean-generic maintainer-clean-vti mostlyclean \
-       mostlyclean-aminfo mostlyclean-generic mostlyclean-libtool \
-       mostlyclean-vti pdf pdf-am ps ps-am uninstall uninstall-am \
+       clean-generic clean-libtool cscopelist-am ctags-am dist-hook \
+       dist-info distclean distclean-generic distclean-libtool \
+       distdir dvi dvi-am html html-am html-local info info-am \
+       install install-am install-data install-data-am \
+       install-data-local install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs installdirs-local maintainer-clean \
+       maintainer-clean-aminfo maintainer-clean-generic \
+       maintainer-clean-vti mostlyclean mostlyclean-aminfo \
+       mostlyclean-generic mostlyclean-libtool mostlyclean-vti pdf \
+       pdf-am ps ps-am tags-am uninstall uninstall-am \
        uninstall-dvi-am uninstall-html-am uninstall-info-am \
        uninstall-local uninstall-pdf-am uninstall-ps-am
 
@@ -1253,7 +1827,7 @@ dist-html: dist-html-split
 # The install-dvi target is already defined by automake.
 
 installdirs-dvi:
-       $(mkdir_p) $(DESTDIR)$(dvidir)
+       $(MKDIR_P) $(DESTDIR)$(dvidir)
 
 uninstall-dvi:
        $(RM) $(DESTDIR)$(dvidir)/libunistring.dvi
@@ -1264,7 +1838,7 @@ libunistring.ps: libunistring.dvi
 # The install-ps target is already defined by automake.
 
 installdirs-ps:
-       $(mkdir_p) $(DESTDIR)$(psdir)
+       $(MKDIR_P) $(DESTDIR)$(psdir)
 
 uninstall-ps:
        $(RM) $(DESTDIR)$(psdir)/libunistring.ps
@@ -1272,7 +1846,7 @@ uninstall-ps:
 # The install-pdf target is already defined by automake.
 
 installdirs-pdf:
-       $(mkdir_p) $(DESTDIR)$(pdfdir)
+       $(MKDIR_P) $(DESTDIR)$(pdfdir)
 
 uninstall-pdf:
        $(RM) $(DESTDIR)$(pdfdir)/libunistring.pdf
@@ -1298,17 +1872,17 @@ libunistring_toc.html: libunistring.texi version.texi $(libunistring_TEXINFOS)
           }
 
 install-html-monolithic: libunistring.html
-       $(mkdir_p) $(DESTDIR)$(htmldir)
+       $(MKDIR_P) $(DESTDIR)$(htmldir)
        $(INSTALL_DATA) `if test -f libunistring.html; then echo .; else echo $(srcdir); fi`/libunistring.html $(DESTDIR)$(htmldir)/libunistring.html
 
 install-html-split: libunistring_toc.html
-       $(mkdir_p) $(DESTDIR)$(htmldir)
+       $(MKDIR_P) $(DESTDIR)$(htmldir)
        for file in `if test -f libunistring_toc.html; then echo .; else echo $(srcdir); fi`/libunistring_*.html; do \
          $(INSTALL_DATA) $$file $(DESTDIR)$(htmldir)/`basename $$file`; \
        done
 
 installdirs-html:
-       $(mkdir_p) $(DESTDIR)$(htmldir)
+       $(MKDIR_P) $(DESTDIR)$(htmldir)
 
 uninstall-html-monolithic:
        $(RM) $(DESTDIR)$(htmldir)/libunistring.html
@@ -1317,14 +1891,14 @@ uninstall-html-split:
        $(RM) $(DESTDIR)$(htmldir)/libunistring_*.html
 
 dist-html-monolithic:
-       $(mkdir_p) $(distdir)/
+       $(MKDIR_P) $(distdir)/
        file=libunistring.html; \
        if test -f $$file; then d=.; else d=$(srcdir); fi; \
        cp -p $$d/$$file $(distdir)/$$file || exit 1
 
 # We would like to put libunistring_*.html into EXTRA_DIST, but it doesn't work.
 dist-html-split: libunistring_toc.html
-       $(mkdir_p) $(distdir)/
+       $(MKDIR_P) $(distdir)/
        file=libunistring_toc.html; \
        if test -f $$file; then d=.; else d=$(srcdir); fi; \
        for file in `cd $$d && echo libunistring_*.html`; do \
index 749dd9b..23a4d21 100644 (file)
@@ -1,4 +1,4 @@
-This is libunistring.info, produced by makeinfo version 4.13 from
+This is libunistring.info, produced by makeinfo version 5.1 from
 libunistring.texi.
 
 INFO-DIR-SECTION Software development
@@ -25,6 +25,7 @@ GNU libunistring
 * uniname.h::                   Names of Unicode characters
 * unictype.h::                  Unicode character classification and properties
 * uniwidth.h::                  Display width
+* unigbrk.h::                   Grapheme cluster breaking
 * uniwbrk.h::                   Word breaks in strings
 * unilbrk.h::                   Line breaking
 * uninorm.h::                   Normalization forms
@@ -36,7 +37,7 @@ GNU libunistring
 
 * Index::                       General Index
 
- --- The Detailed Node Listing ---
+ — The Detailed Node Listing —
 
 Introduction
 
@@ -44,8 +45,8 @@ Introduction
 * Unicode and i18n::            Unicode and internationalization
 * Locale encodings::            What is a locale encoding?
 * In-memory representation::    How to represent strings in memory?
-* char * strings::              What to keep in mind with `char *' strings
-* The wchar_t mess::            Why `wchar_t *' strings are useless
+* char * strings::              What to keep in mind with ‘char *’ strings
+* The wchar_t mess::            Why ‘wchar_t *’ strings are useless
 * Unicode strings::             How are Unicode strings represented?
 
 unistr.h
@@ -60,11 +61,12 @@ unictype.h
 
 * General category::
 * Canonical combining class::
-* Bidirectional category::
+* Bidi class::
 * Decimal digit value::
 * Digit value::
 * Numeric value::
 * Mirrored character::
+* Arabic shaping::
 * Properties::
 * Scripts::
 * Blocks::
@@ -81,6 +83,11 @@ Properties
 * Properties as objects::
 * Properties as functions::
 
+unigbrk.h
+
+* Grapheme cluster breaks in a string::
+* Grapheme cluster break property::
+
 uniwbrk.h
 
 * Word breaks in a string::
@@ -116,6 +123,7 @@ Licenses
 * GNU LGPL::                    GNU Lesser General Public License
 * GNU FDL::                     GNU Free Documentation License
 
+
 \1f
 File: libunistring.info,  Node: Introduction,  Next: Conventions,  Prev: Top,  Up: Top
 
@@ -127,52 +135,44 @@ for manipulating C strings according to the Unicode standard.
 
    It consists of the following parts:
 
-`<unistr.h>'
+‘<unistr.h>’
      elementary string functions
-
-`<uniconv.h>'
+‘<uniconv.h>’
      conversion from/to legacy encodings
-
-`<unistdio.h>'
+‘<unistdio.h>’
      formatted output to strings
-
-`<uniname.h>'
+‘<uniname.h>’
      character names
-
-`<unictype.h>'
+‘<unictype.h>’
      character classification and properties
-
-`<uniwidth.h>'
+‘<uniwidth.h>’
      string width when using nonproportional fonts
-
-`<uniwbrk.h>'
+‘<unigbrk.h>’
+     grapheme cluster breaks
+‘<uniwbrk.h>’
      word breaks
-
-`<unilbrk.h>'
+‘<unilbrk.h>’
      line breaking algorithm
-
-`<uninorm.h>'
+‘<uninorm.h>’
      normalization (composition and decomposition)
-
-`<unicase.h>'
+‘<unicase.h>’
      case folding
-
-`<uniregex.h>'
+‘<uniregex.h>’
      regular expressions (not yet implemented)
 
    libunistring is for you if your application involves non-trivial text
 processing, such as upper/lower case conversions, line breaking,
 operations on words, or more advanced analysis of text.  Text provided
-by the user can, in general, contain characters of all kinds of
-scripts.  The text processing functions provided by this library handle
-all scripts and all languages.
+by the user can, in general, contain characters of all kinds of scripts.
+The text processing functions provided by this library handle all
+scripts and all languages.
 
    libunistring is for you if your application already uses the ISO C /
-POSIX `<ctype.h>', `<wctype.h>' functions and the text it operates on is
+POSIX ‘<ctype.h>’, ‘<wctype.h>’ functions and the text it operates on is
 provided by the user and can be in any language.
 
-   libunistring is also for you if your application uses Unicode
-strings as internal in-memory representation.
+   libunistring is also for you if your application uses Unicode strings
+as internal in-memory representation.
 
 * Menu:
 
@@ -180,8 +180,8 @@ strings as internal in-memory representation.
 * Unicode and i18n::            Unicode and internationalization
 * Locale encodings::            What is a locale encoding?
 * In-memory representation::    How to represent strings in memory?
-* char * strings::              What to keep in mind with `char *' strings
-* The wchar_t mess::            Why `wchar_t *' strings are useless
+* char * strings::              What to keep in mind with ‘char *’ strings
+* The wchar_t mess::            Why ‘wchar_t *’ strings are useless
 * Unicode strings::             How are Unicode strings represented?
 
 \1f
@@ -192,19 +192,17 @@ File: libunistring.info,  Node: Unicode,  Next: Unicode and i18n,  Up: Introduct
 
    Unicode is a standardized repertoire of characters that contains
 characters from all scripts of the world, from Latin letters to Chinese
-ideographs and Babylonian cuneiform glyphs.  It also specifies how
-these characters are to be rendered on a screen or on paper, and how
-common text processing (word selection, line breaking, uppercasing of
-page titles etc.) is supposed to behave on Unicode text.
+ideographs and Babylonian cuneiform glyphs.  It also specifies how these
+characters are to be rendered on a screen or on paper, and how common
+text processing (word selection, line breaking, uppercasing of page
+titles etc.)  is supposed to behave on Unicode text.
 
    Unicode also specifies three ways of storing sequences of Unicode
-characters in a computer whose basic unit of data is an 8-bit byte: 
+characters in a computer whose basic unit of data is an 8-bit byte:
 UTF-8
      Every character is represented as 1 to 4 bytes.
-
 UTF-16
      Every character is represented as 1 to 2 units of 16 bits.
-
 UTF-32, a.k.a. UCS-4
      Every character is represented as 1 unit of 32 bits.
 
@@ -222,14 +220,11 @@ in the same document.  Due to the many encodings for Japanese, even the
 processing of pure Japanese text was error prone.
 
    References:
-   * The Unicode standard: `http://www.unicode.org/'
-
-   * Definition of UTF-8: `http://www.rfc-editor.org/rfc/rfc3629.txt'
-
-   * Definition of UTF-16: `http://www.rfc-editor.org/rfc/rfc2781.txt'
-
-   * Markus Kuhn's UTF-8 and Unicode FAQ:
-     `http://www.cl.cam.ac.uk/~mgk25/unicode.html'
+   • The Unicode standard: <http://www.unicode.org/>
+   • Definition of UTF-8: <http://www.rfc-editor.org/rfc/rfc3629.txt>
+   • Definition of UTF-16: <http://www.rfc-editor.org/rfc/rfc2781.txt>
+   • Markus Kuhn’s UTF-8 and Unicode FAQ:
+     <http://www.cl.cam.ac.uk/~mgk25/unicode.html>
 
 \1f
 File: libunistring.info,  Node: Unicode and i18n,  Next: Locale encodings,  Prev: Unicode,  Up: Introduction
@@ -238,14 +233,14 @@ File: libunistring.info,  Node: Unicode and i18n,  Next: Locale encodings,  Prev
 ====================================
 
    Internationalization is the process of changing the source code of a
-program so that it can meet the expectations of users in any culture,
-if culture specific data (translations, images etc.) are provided.
-
-   Use of Unicode is not strictly required for internationalization,
-but it makes internationalization much easier, because operations that
-need to look at specific characters (like hyphenation, spell checking,
-or the automatic conversion of double-quotes to opening and closing
-double-quote characters) don't need to consider multiple possible
+program so that it can meet the expectations of users in any culture, if
+culture specific data (translations, images etc.)  are provided.
+
+   Use of Unicode is not strictly required for internationalization, but
+it makes internationalization much easier, because operations that need
+to look at specific characters (like hyphenation, spell checking, or the
+automatic conversion of double-quotes to opening and closing
+double-quote characters) dont need to consider multiple possible
 encodings of the text.
 
    Use of Unicode also enables multilingualization: the ability of
@@ -254,16 +249,14 @@ in the same line of text.
 
    But use of Unicode is not everything.  Internationalization usually
 consists of three features:
-   * Use of Unicode where needed for text processing.  This is what
-     this library is for.
-
-   * Use of message catalogs for messages shown to the user, This is
+   • Use of Unicode where needed for text processing.  This is what this
+     library is for.
+   • Use of message catalogs for messages shown to the user, This is
      what GNU gettext is about.
-
-   * Use of locale specific conventions for date and time formats, for
+   • Use of locale specific conventions for date and time formats, for
      numeric formatting, or for sorting of text.  This can be done
-     adequately with the POSIX APIs and the implementation of locales
-     in the GNU C library.
+     adequately with the POSIX APIs and the implementation of locales in
+     the GNU C library.
 
 \1f
 File: libunistring.info,  Node: Locale encodings,  Next: In-memory representation,  Prev: Unicode and i18n,  Up: Introduction
@@ -271,32 +264,27 @@ File: libunistring.info,  Node: Locale encodings,  Next: In-memory representatio
 1.3 Locale encodings
 ====================
 
-   A locale is a set of cultural conventions.  According to POSIX, for
-a program, at any moment, there is one locale being designated as the
-"current locale".  (Actually, POSIX supports also one locale per
-thread, but this feature is not yet universally implemented and not
-widely used.)  The locale is partitioned into several aspects, called
-the "categories" of the locale.  The main various aspects are:
-   * The character encoding and the character properties.  This is the
-     `LC_CTYPE' category.
-
-   * The sorting rules for text.  This is the `LC_COLLATE' category.
-
-   * The language specific translations of messages.  This is the
-     `LC_MESSAGES' category.
-
-   * The formatting rules for numbers, such as the decimal separator.
-     This is the `LC_NUMERIC' category.
-
-   * The formatting rules for amounts of money.  This is the
-     `LC_MONETARY' category.
-
-   * The formatting of date and time.  This is the `LC_TIME' category.
-
-   In particular, the `LC_CTYPE' category of the current locale
-determines the character encoding.  This is the encoding of `char *'
-strings.  We also call it the "locale encoding".  GNU libunistring has
-a function, `locale_charset', that returns a standardized (platform
+   A locale is a set of cultural conventions.  According to POSIX, for a
+program, at any moment, there is one locale being designated as the
+“current locale”.  (Actually, POSIX supports also one locale per thread,
+but this feature is not yet universally implemented and not widely
+used.)  The locale is partitioned into several aspects, called the
+“categories” of the locale.  The main various aspects are:
+   • The character encoding and the character properties.  This is the
+     ‘LC_CTYPE’ category.
+   • The sorting rules for text.  This is the ‘LC_COLLATE’ category.
+   • The language specific translations of messages.  This is the
+     ‘LC_MESSAGES’ category.
+   • The formatting rules for numbers, such as the decimal separator.
+     This is the ‘LC_NUMERIC’ category.
+   • The formatting rules for amounts of money.  This is the
+     ‘LC_MONETARY’ category.
+   • The formatting of date and time.  This is the ‘LC_TIME’ category.
+
+   In particular, the ‘LC_CTYPE’ category of the current locale
+determines the character encoding.  This is the encoding of ‘char *’
+strings.  We also call it the “locale encoding”.  GNU libunistring has a
+function, ‘locale_charset’, that returns a standardized (platform
 independent) name for this encoding.
 
    All locale encodings used on glibc systems are essentially ASCII
@@ -305,13 +293,13 @@ as a single byte, in that encoding as in ASCII.
 
    Among the possible locale encodings are UTF-8 and GB18030.  Both
 allow to represent any Unicode character as a sequence of bytes.  UTF-8
-is used in most of the world, whereas GB18030 is used in the People's
+is used in most of the world, whereas GB18030 is used in the Peoples
 Republic of China, because it is backward compatible with the GB2312
 encoding that was used in this country earlier.
 
-   The legacy locale encodings, ISO-8859-15 (which supplanted
-ISO-8859-1 in most of Europe), ISO-8859-2, KOI8-R, EUC-JP, etc., are
-still in use in many places, though.
+   The legacy locale encodings, ISO-8859-15 (which supplanted ISO-8859-1
+in most of Europe), ISO-8859-2, KOI8-R, EUC-JP, etc., are still in use
+in many places, though.
 
    UTF-16 and UTF-32 are not used as locale encodings, because they are
 not ASCII compatible.
@@ -324,184 +312,162 @@ File: libunistring.info,  Node: In-memory representation,  Next: char * strings,
 
    There are three ways of representing strings in memory of a running
 program.
-   * As `char *' strings.  Such strings are represented in locale
+   • As ‘char *’ strings.  Such strings are represented in locale
      encoding.  This approach is employed when not much text processing
      is done by the program.  When some Unicode aware processing is to
      be done, a string is converted to Unicode on the fly and back to
      locale encoding afterwards.
-
-   * As UTF-8 or UTF-16 or UTF-32 strings.  This implies that
-     conversion from locale encoding to Unicode is performed on input,
-     and in the opposite direction on output.  This approach is
-     employed when the program does a significant amount of text
-     processing, or when the program has multiple threads operating on
-     the same data but in different locales.
-
-   * As `wchar_t *', a.k.a. "wide strings".  This approach is misguided,
-     see *note The wchar_t mess::.
+   • As UTF-8 or UTF-16 or UTF-32 strings.  This implies that conversion
+     from locale encoding to Unicode is performed on input, and in the
+     opposite direction on output.  This approach is employed when the
+     program does a significant amount of text processing, or when the
+     program has multiple threads operating on the same data but in
+     different locales.
+   • As ‘wchar_t *’, a.k.a.  “wide strings”.  This approach is
+     misguided, see *note The wchar_t mess::.
 
 \1f
 File: libunistring.info,  Node: char * strings,  Next: The wchar_t mess,  Prev: In-memory representation,  Up: Introduction
 
-1.5 `char *' strings
+1.5 ‘char *’ strings
 ====================
 
    The classical C strings, with its C library support standardized by
 ISO C and POSIX, can be used in internationalized programs with some
 precautions.  The problem with this API is that many of the C library
-functions for strings don't work correctly on strings in locale
+functions for strings dont work correctly on strings in locale
 encodings, leading to bugs that only people in some cultures of the
 world will experience.
 
    The first problem with the C library API is the support of multibyte
 locales.  According to the locale encoding, in general, every character
-is represented by one or more bytes (up to 4 bytes in practice -- but
-use `MB_LEN_MAX' instead of the number 4 in the code).  When every
-character is represented by only 1 byte, we speak of an "unibyte
-locale", otherwise of a "multibyte locale".  It is important to realize
-that the majority of Unix installations nowadays use UTF-8 or GB18030
-as locale encoding; therefore, the majority of users are using
-multibyte locales.
+is represented by one or more bytes (up to 4 bytes in practice — but use
+‘MB_LEN_MAX’ instead of the number 4 in the code).  When every character
+is represented by only 1 byte, we speak of an “unibyte locale”,
+otherwise of a “multibyte locale”.  It is important to realize that the
+majority of Unix installations nowadays use UTF-8 or GB18030 as locale
+encoding; therefore, the majority of users are using multibyte locales.
 
-   The important fact to remember is: _A `char' is a byte, not a
-character._
+   The important fact to remember is:
+   _A ‘char’ is a byte, not a character._
 
    As a consequence:
-   * The `<ctype.h>' API is useless in this context; it does not work in
+   • The ‘<ctype.h>’ API is useless in this context; it does not work in
      multibyte locales.
-
-   * The `strlen' function does not return the number of characters in
-     a string.  Nor does it return the number of screen columns occupied
+   • The ‘strlen’ function does not return the number of characters in a
+     string.  Nor does it return the number of screen columns occupied
      by a string after it is output.  It merely returns the number of
      _bytes_ occupied by a string.
-
-   * Truncating a string, for example, with `strncpy', can have the
+   • Truncating a string, for example, with ‘strncpy’, can have the
      effect of truncating it in the middle of a multibyte character.
      Such a string will, when output, have a garbled character at its
      end, often represented by a hollow box.
-
-   * `strchr' and `strrchr' do not work with multibyte strings if the
+   • ‘strchr’ and ‘strrchr’ do not work with multibyte strings if the
      locale encoding is GB18030 and the character to be searched is a
      digit.
-
-   * `strstr' does not work with multibyte strings if the locale
+   • ‘strstr’ does not work with multibyte strings if the locale
      encoding is different from UTF-8.
-
-   * `strcspn', `strpbrk', `strspn' cannot work correctly in multibyte
+   • ‘strcspn’, ‘strpbrk’, ‘strspn’ cannot work correctly in multibyte
      locales: they assume the second argument is a list of single-byte
      characters.  Even in this simple case, they do not work with
      multibyte strings if the locale encoding is GB18030 and one of the
      characters to be searched is a digit.
-
-   * `strsep' and `strtok_r' do not work with multibyte strings unless
+   • ‘strsep’ and ‘strtok_r’ do not work with multibyte strings unless
      all of the delimiter characters are ASCII characters < 0x30.
-
-   * The `strcasecmp', `strncasecmp', and `strcasestr' functions do not
+   • The ‘strcasecmp’, ‘strncasecmp’, and ‘strcasestr’ functions do not
      work with multibyte strings.
 
    The workarounds can be found in GNU gnulib
-`http://www.gnu.org/software/gnulib/'.
-   * gnulib has modules `mbchar', `mbiter', `mbuiter' that represent
-     multibyte characters and allow to iterate across a multibyte
-     string with the same ease as through a unibyte string.
-
-   * gnulib has functions `mbslen' and `mbswidth' that can be used
-     instead of `strlen' when the number of characters or the number of
+<http://www.gnu.org/software/gnulib/>.
+   • gnulib has modules ‘mbchar’, ‘mbiter’, ‘mbuiter’ that represent
+     multibyte characters and allow to iterate across a multibyte string
+     with the same ease as through a unibyte string.
+   • gnulib has functions ‘mbslen’ and ‘mbswidth’ that can be used
+     instead of ‘strlen’ when the number of characters or the number of
      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 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
      multibyte locales.
-
-   * gnulib has functions `mbscspn', `mbspbrk', `mbsspn' that are like
-     `strcspn', `strpbrk', `strspn', but work in multibyte locales.
-
-   * gnulib has functions `mbssep' and `mbstok_r' that are like
-     `strsep' and `strtok_r' but work in multibyte locales.
-
-   * gnulib has functions `mbscasecmp', `mbsncasecmp', `mbspcasecmp',
-     and `mbscasestr' that are like `strcasecmp', `strncasecmp', and
-     `strcasestr', but work in multibyte locales.  Still, the function
-     `ulc_casecmp' is preferable to these functions; see below.
+   • gnulib has functions ‘mbscspn’, ‘mbspbrk’, ‘mbsspn’ that are like
+     ‘strcspn’, ‘strpbrk’, ‘strspn’, but work in multibyte locales.
+   • gnulib has functions ‘mbssep’ and ‘mbstok_r’ that are like ‘strsep’
+     and ‘strtok_r’ but work in multibyte locales.
+   • gnulib has functions ‘mbscasecmp’, ‘mbsncasecmp’, ‘mbspcasecmp’,
+     and ‘mbscasestr’ that are like ‘strcasecmp’, ‘strncasecmp’, and
+     ‘strcasestr’, but work in multibyte locales.  Still, the function
+     ‘ulc_casecmp’ is preferable to these functions; see below.
 
    The second problem with the C library API is that it has some
 assumptions built-in that are not valid in some languages:
-   * It assumes that there are only two forms of every character:
+    It assumes that there are only two forms of every character:
      uppercase and lowercase.  This is not true for Croatian, where the
      character LETTER DZ WITH CARON comes in three forms: LATIN CAPITAL
-     LETTER DZ WITH CARON (DZ), LATIN CAPITAL LETTER D WITH SMALL
-     LETTER Z WITH CARON (Dz), LATIN SMALL LETTER DZ WITH CARON (dz).
-
-   * It assumes that uppercasing of 1 character leads to 1 character.
+     LETTER DZ WITH CARON (DZ), LATIN CAPITAL LETTER D WITH SMALL LETTER
+     Z WITH CARON (Dz), LATIN SMALL LETTER DZ WITH CARON (dz).
+   • It assumes that uppercasing of 1 character leads to 1 character.
      This is not true for German, where the LATIN SMALL LETTER SHARP S,
-     when uppercased, becomes `SS'.
-
-   * It assumes that there is 1:1 mapping between uppercase and
+     when uppercased, becomes ‘SS’.
+   • It assumes that there is 1:1 mapping between uppercase and
      lowercase forms.  This is not true for the Greek sigma: GREEK
      CAPITAL LETTER SIGMA is the uppercase of both GREEK SMALL LETTER
      SIGMA and GREEK SMALL LETTER FINAL SIGMA.
-
-   * It assumes that the upper/lowercase mappings are position
+   • It assumes that the upper/lowercase mappings are position
      independent.  This is not true for the Greek sigma and the
      Lithuanian i.
 
    The correct way to deal with this problem is
   1. to provide functions for titlecasing, as well as for upper- and
      lowercasing,
-
   2. to view case transformations as functions that operates on strings,
      rather than on characters.
 
    This is implemented in this library, through the functions declared
-in `<unicase.h>', see *note unicase.h::.
+in ‘<unicase.h>’, see *note unicase.h::.
 
 \1f
 File: libunistring.info,  Node: The wchar_t mess,  Next: Unicode strings,  Prev: char * strings,  Up: Introduction
 
-1.6 The `wchar_t' mess
+1.6 The ‘wchar_t’ mess
 ======================
 
    The ISO C and POSIX standard creators made an attempt to fix the
 first problem mentioned in the previous section.  They introduced
-   * a type `wchar_t', designed to encapsulate an entire character,
-
-   * a "wide string" type `wchar_t *', and
-
-   * functions declared in `<wctype.h>' that were meant to supplant the
-     ones in `<ctype.h>'.
+   • a type ‘wchar_t’, designed to encapsulate an entire character,
+   • a “wide string” type ‘wchar_t *’, 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
+   • 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
+     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
+   • On Solaris and FreeBSD, the ‘wchar_t’ encoding is locale dependent
      and undocumented.  This means, if you want to know any property of
-     a `wchar_t' character, other than the properties defined by
-     `<wctype.h>' -- such as whether it's a dash, currency symbol,
-     paragraph separator, or similar --, you have to convert it to
-     `char *' encoding first, by use of the function `wctomb'.
-
-   * When you read a stream of wide characters, through the functions
-     `fgetwc' and `fgetws', and when the input stream/file is not in
-     the expected encoding, you have no way to determine the invalid
-     byte sequence and do some corrective action.  If you use these
-     functions, your program becomes "garbage in - more garbage out" or
-     "garbage in - abort".
-
-   As a consequence, it is better to use multibyte strings, as
-explained in the previous section.  Such multibyte strings can bypass
-limitations of the `wchar_t' type, if you use functions defined in
-gnulib and libunistring for text processing.  They can also faithfully
-transport malformed characters that were present in the input, without
-requiring the program to produce garbage or abort.
+     a ‘wchar_t’ character, other than the properties defined by
+     ‘<wctype.h>’ — such as whether it’s a dash, currency symbol,
+     paragraph separator, or similar —, you have to convert it to ‘char
+     *’ encoding first, by use of the function ‘wctomb’.
+
+    When you read a stream of wide characters, through the functions
+     ‘fgetwc’ and ‘fgetws’, and when the input stream/file is not in the
+     expected encoding, you have no way to determine the invalid byte
+     sequence and do some corrective action.  If you use these
+     functions, your program becomes “garbage in - more garbage out” or
+     “garbage in - abort”.
+
+   As a consequence, it is better to use multibyte strings, as explained
+in the previous section.  Such multibyte strings can bypass limitations
+of the ‘wchar_t’ type, if you use functions defined in gnulib and
+libunistring for text processing.  They can also faithfully transport
+malformed characters that were present in the input, without requiring
+the program to produce garbage or abort.
 
 \1f
 File: libunistring.info,  Node: Unicode strings,  Prev: The wchar_t mess,  Up: Introduction
@@ -509,27 +475,24 @@ File: libunistring.info,  Node: Unicode strings,  Prev: The wchar_t mess,  Up: I
 1.7 Unicode strings
 ===================
 
-   libunistring supports Unicode strings in three representations: 
-   * UTF-8 strings, through the type `uint8_t *'.  The units are bytes
-     (`uint8_t').
-
-   * UTF-16 strings, through the type `uint16_t *',  The units are
-     16-bit memory words (`uint16_t').
-
-   * UTF-32 strings, through the type `uint32_t *'.  The units are
-     32-bit memory words (`uint32_t').
+   libunistring supports Unicode strings in three representations:
+   • UTF-8 strings, through the type ‘uint8_t *’.  The units are bytes
+     (‘uint8_t’).
+   • UTF-16 strings, through the type ‘uint16_t *’, The units are 16-bit
+     memory words (‘uint16_t’).
+   • UTF-32 strings, through the type ‘uint32_t *’.  The units are
+     32-bit memory words (‘uint32_t’).
 
    As with C strings, there are two variants:
-   * Unicode strings with a terminating NUL character are represented as
+    Unicode strings with a terminating NUL character are represented as
      a pointer to the first unit of the string.  There is a unit
      containing a 0 value at the end.  It is considered part of the
      string for all memory allocation purposes, but is not considered
      part of the string for all other logical purposes.
-
-   * Unicode strings where embedded NUL characters are allowed.  These
+   • Unicode strings where embedded NUL characters are allowed.  These
      are represented by a pointer to the first unit and the number of
-     units (not bytes!) of the string.  In this setting, there is no
-     trailing zero-valued unit used as "end marker".
+     units (not bytes!)  of the string.  In this setting, there is no
+     trailing zero-valued unit used as “end marker”.
 
 \1f
 File: libunistring.info,  Node: Conventions,  Next: unitypes.h,  Prev: Introduction,  Up: Top
@@ -540,33 +503,33 @@ File: libunistring.info,  Node: Conventions,  Next: unitypes.h,  Prev: Introduct
    This chapter explains conventions valid throughout the libunistring
 library.
 
-   Variables of type `char *' denote C strings in locale encoding.  See
+   Variables of type ‘char *’ denote C strings in locale encoding.  See
 *note Locale encodings::.
 
-   Variables of type `uint8_t *' denote UTF-8 strings.  Their units are
+   Variables of type ‘uint8_t *’ denote UTF-8 strings.  Their units are
 bytes.
 
-   Variables of type `uint16_t *' denote UTF-16 strings, without byte
+   Variables of type ‘uint16_t *’ denote UTF-16 strings, without byte
 order mark.  Their units are 2-byte words.
 
-   Variables of type `uint32_t *' denote UTF-32 strings, without byte
+   Variables of type ‘uint32_t *’ denote UTF-32 strings, without byte
 order mark.  Their units are 4-byte words.
 
-   Argument pairs `(S, N)' denote a string `S[0..N-1]' with exactly N
+   Argument pairs ‘(S, N)’ denote a string ‘S[0..N-1]’ with exactly N
 units.
 
-   All functions with prefix `ulc_' operate on C strings in locale
+   All functions with prefix ‘ulc_’ operate on C strings in locale
 encoding.
 
-   All functions with prefix `u8_' operate on UTF-8 strings.
+   All functions with prefix ‘u8_’ operate on UTF-8 strings.
 
-   All functions with prefix `u16_' operate on UTF-16 strings.
+   All functions with prefix ‘u16_’ operate on UTF-16 strings.
 
-   All functions with prefix `u32_' operate on UTF-32 strings.
+   All functions with prefix ‘u32_’ operate on UTF-32 strings.
 
-   For every function with prefix `u8_', operating on UTF-8 strings,
-there is also a corresponding function with prefix `u16_', operating on
-UTF-16 strings, and a corresponding function with prefix `u32_',
+   For every function with prefix ‘u8_’, operating on UTF-8 strings,
+there is also a corresponding function with prefix ‘u16_’, operating on
+UTF-16 strings, and a corresponding function with prefix ‘u32_’,
 operating on UTF-32 strings.  Their description is analogous; in this
 documentation we describe only the function that operates on UTF-8
 strings, for brevity.
@@ -574,35 +537,35 @@ strings, for brevity.
    A declaration with a variable N denotes the three concrete
 declarations with N = 8, N = 16, N = 32.
 
-   All parameters starting with `str' and the parameters of functions
-starting with `u8_str'/`u16_str'/`u32_str' denote a NUL terminated
+   All parameters starting with ‘str’ and the parameters of functions
+starting with ‘u8_str’/‘u16_str’/‘u32_str’ denote a NUL terminated
 string.
 
-   Error values are always returned through the `errno' variable,
+   Error values are always returned through the ‘errno’ variable,
 usually with a return value that indicates the presence of an error
 (NULL for functions that return an pointer, or -1 for functions that
-return an `int').
+return an ‘int’).
 
-   Functions returning a string result take a `(RESULTBUF, LENGTHP)'
+   Functions returning a string result take a ‘(RESULTBUF, LENGTHP)’
 argument pair.  If RESULTBUF is not NULL and the result fits into
-`*LENGTHP' units, it is put in RESULTBUF, and RESULTBUF is returned.
+‘*LENGTHP’ units, it is put in RESULTBUF, and RESULTBUF is returned.
 Otherwise, a freshly allocated string is returned.  In both cases,
-`*LENGTHP' is set to the length (number of units) of the returned
-string.  In case of error, NULL is returned and `errno' is set.
+‘*LENGTHP’ is set to the length (number of units) of the returned
+string.  In case of error, NULL is returned and ‘errno’ is set.
 
 \1f
 File: libunistring.info,  Node: unitypes.h,  Next: unistr.h,  Prev: Conventions,  Up: Top
 
-3 Elementary types `<unitypes.h>'
+3 Elementary types ‘<unitypes.h>’
 *********************************
 
-   The include file `<unitypes.h>' provides the following basic types.
+   The include file ‘<unitypes.h>’ provides the following basic types.
 
  -- Type: uint8_t
  -- Type: uint16_t
  -- Type: uint32_t
      These are the storage units of UTF-8/16/32 strings, respectively.
-     The definitions are taken from `<stdint.h>', on platforms where
+     The definitions are taken from ‘<stdint.h>’, on platforms where
      this include file is present.
 
  -- Type: ucs4_t
@@ -612,11 +575,11 @@ File: libunistring.info,  Node: unitypes.h,  Next: unistr.h,  Prev: Conventions,
 \1f
 File: libunistring.info,  Node: unistr.h,  Next: uniconv.h,  Prev: unitypes.h,  Up: Top
 
-4 Elementary Unicode string functions `<unistr.h>'
+4 Elementary Unicode string functions ‘<unistr.h>’
 **************************************************
 
    This include file declares elementary functions for Unicode strings.
-It is essentially the equivalent of what `<string.h>' is for C strings.
+It is essentially the equivalent of what ‘<string.h>’ is for C strings.
 
 * Menu:
 
@@ -651,12 +614,12 @@ File: libunistring.info,  Node: Elementary string conversions,  Next: Elementary
    The following functions perform conversions between the different
 forms of Unicode strings.
 
- -- Function: uint16_t * u8_to_u16 (const uint8_t *S, size_t N,
-          uint16_t *RESULTBUF, size_t *LENGTHP)
+ -- Function: uint16_t * u8_to_u16 (const uint8_t *S, size_t N, uint16_t
+          *RESULTBUF, size_t *LENGTHP)
      Converts an UTF-8 string to an UTF-16 string.
 
- -- Function: uint32_t * u8_to_u32 (const uint8_t *S, size_t N,
-          uint32_t *RESULTBUF, size_t *LENGTHP)
+ -- Function: uint32_t * u8_to_u32 (const uint8_t *S, size_t N, uint32_t
+          *RESULTBUF, size_t *LENGTHP)
      Converts an UTF-8 string to an UTF-32 string.
 
  -- Function: uint8_t * u16_to_u8 (const uint16_t *S, size_t N, uint8_t
@@ -691,7 +654,7 @@ character in a Unicode string.
      which is no longer than N.  Returns 0 if it is the NUL character.
      Returns -1 upon failure.
 
-     This function is similar to `mblen', except that it operates on a
+     This function is similar to ‘mblen’, except that it operates on a
      Unicode string and that S must not be NULL.
 
  -- Function: int u8_mbtouc_unsafe (ucs4_t *PUC, const uint8_t *S,
@@ -701,39 +664,39 @@ character in a Unicode string.
  -- Function: int u32_mbtouc_unsafe (ucs4_t *PUC, const uint32_t *S,
           size_t N)
      Returns the length (number of units) of the first character in S,
-     putting its `ucs4_t' representation in `*PUC'.  Upon failure,
-     `*PUC' is set to `0xfffd', and an appropriate number of units is
+     putting its ‘ucs4_t’ representation in ‘*PUC’.  Upon failure,
+     ‘*PUC’ is set to ‘0xfffd’, and an appropriate number of units is
      returned.
 
      The number of available units, N, must be > 0.
 
-     This function is similar to `mbtowc', except that it operates on a
+     This function is similar to ‘mbtowc’, except that it operates on a
      Unicode string, PUC and S must not be NULL, N must be > 0, and the
      NUL character is not treated specially.
 
  -- Function: int u8_mbtouc (ucs4_t *PUC, const uint8_t *S, size_t N)
  -- Function: int u16_mbtouc (ucs4_t *PUC, const uint16_t *S, size_t N)
  -- Function: int u32_mbtouc (ucs4_t *PUC, const uint32_t *S, size_t N)
-     This function is like `u8_mbtouc_unsafe', except that it will
+     This function is like ‘u8_mbtouc_unsafe’, except that it will
      detect an invalid UTF-8 character, even if the library is compiled
-     without `--enable-safety'.
+     without ‘--enable-safety’.
 
  -- Function: int u8_mbtoucr (ucs4_t *PUC, const uint8_t *S, size_t N)
  -- Function: int u16_mbtoucr (ucs4_t *PUC, const uint16_t *S, size_t N)
  -- Function: int u32_mbtoucr (ucs4_t *PUC, const uint32_t *S, size_t N)
      Returns the length (number of units) of the first character in S,
-     putting its `ucs4_t' representation in `*PUC'.  Upon failure,
-     `*PUC' is set to `0xfffd', and -1 is returned for an invalid
+     putting its ‘ucs4_t’ representation in ‘*PUC’.  Upon failure,
+     ‘*PUC’ is set to ‘0xfffd’, and -1 is returned for an invalid
      sequence of units, -2 is returned for an incomplete sequence of
      units.
 
      The number of available units, N, must be > 0.
 
-     This function is similar to `u8_mbtouc', except that the return
-     value gives more details about the failure, similar to `mbrtowc'.
+     This function is similar to ‘u8_mbtouc’, except that the return
+     value gives more details about the failure, similar to ‘mbrtowc’.
 
-   The following function stores a Unicode character as a Unicode
-string in memory.
+   The following function stores a Unicode character as a Unicode string
+in memory.
 
  -- Function: int u8_uctomb (uint8_t *S, ucs4_t UC, int N)
  -- Function: int u16_uctomb (uint16_t *S, ucs4_t UC, int N)
@@ -743,7 +706,7 @@ string in memory.
      units, N, is too small.  The latter case cannot occur if N >=
      6/2/1, respectively.
 
-     This function is similar to `wctomb', except that it operates on a
+     This function is similar to ‘wctomb’, except that it operates on a
      Unicode strings, S must not be NULL, and the argument N must be
      specified.
 
@@ -757,7 +720,7 @@ string in memory.
           size_t N)
      Copies N units from SRC to DEST.
 
-     This function is similar to `memcpy', except that it operates on
+     This function is similar to ‘memcpy’, except that it operates on
      Unicode strings.
 
  -- Function: uint8_t * u8_move (uint8_t *DEST, const uint8_t *SRC,
@@ -769,7 +732,7 @@ string in memory.
      Copies N units from SRC to DEST, guaranteeing correct behavior for
      overlapping memory areas.
 
-     This function is similar to `memmove', except that it operates on
+     This function is similar to ‘memmove’, except that it operates on
      Unicode strings.
 
    The following function fills a Unicode string.
@@ -780,7 +743,7 @@ string in memory.
      Sets the first N characters of S to UC.  UC should be a character
      that occupies only 1 unit.
 
-     This function is similar to `memset', except that it operates on
+     This function is similar to ‘memset’, except that it operates on
      Unicode strings.
 
    The following function compares two Unicode strings of the same
@@ -792,11 +755,11 @@ length.
           size_t N)
  -- Function: int u32_cmp (const uint32_t *S1, const uint32_t *S2,
           size_t N)
-     Compares S1 and S2, each of length N, lexicographically.  Returns
-     a negative value if S1 compares smaller than S2, a positive value
-     if S1 compares larger than S2, or 0 if they compare equal.
+     Compares S1 and S2, each of length N, lexicographically.  Returns a
+     negative value if S1 compares smaller than S2, a positive value if
+     S1 compares larger than S2, or 0 if they compare equal.
 
-     This function is similar to `memcmp', except that it operates on
+     This function is similar to ‘memcmp’, except that it operates on
      Unicode strings.
 
    The following function compares two Unicode strings of possibly
@@ -808,11 +771,11 @@ different lengths.
           uint16_t *S2, size_t N2)
  -- Function: int u32_cmp2 (const uint32_t *S1, size_t N1, const
           uint32_t *S2, size_t N2)
-     Compares S1 and S2, lexicographically.  Returns a negative value
-     if S1 compares smaller than S2, a positive value if S1 compares
-     larger than S2, or 0 if they compare equal.
+     Compares S1 and S2, lexicographically.  Returns a negative value if
+     S1 compares smaller than S2, a positive value if S1 compares larger
+     than S2, or 0 if they compare equal.
 
-     This function is similar to the gnulib function `memcmp2', except
+     This function is similar to the gnulib function ‘memcmp2’, except
      that it operates on Unicode strings.
 
    The following function searches for a given Unicode character.
@@ -825,7 +788,7 @@ different lengths.
      Searches the string at S for UC.  Returns a pointer to the first
      occurrence of UC in S, or NULL if UC does not occur in S.
 
-     This function is similar to `memchr', except that it operates on
+     This function is similar to ‘memchr’, except that it operates on
      Unicode strings.
 
    The following function counts the number of Unicode characters.
@@ -836,7 +799,7 @@ different lengths.
      Counts and returns the number of Unicode characters in the N units
      from S.
 
-     This function is similar to the gnulib function `mbsnlen', except
+     This function is similar to the gnulib function ‘mbsnlen’, except
      that it operates on Unicode strings.
 
 \1f
@@ -871,7 +834,7 @@ character in a Unicode string.
  -- Function: int u16_strmbtouc (ucs4_t *PUC, const uint16_t *S)
  -- Function: int u32_strmbtouc (ucs4_t *PUC, const uint32_t *S)
      Returns the length (number of units) of the first character in S,
-     putting its `ucs4_t' representation in `*PUC'.  Returns 0 if it is
+     putting its ‘ucs4_t’ representation in ‘*PUC’.  Returns 0 if it is
      the NUL character.  Returns -1 upon failure.
 
  -- Function: const uint8_t * u8_next (ucs4_t *PUC, const uint8_t *S)
@@ -879,21 +842,22 @@ character in a Unicode string.
  -- Function: const uint32_t * u32_next (ucs4_t *PUC, const uint32_t *S)
      Forward iteration step.  Advances the pointer past the next
      character, or returns NULL if the end of the string has been
-     reached.  Puts the character's `ucs4_t' representation in `*PUC'.
+     reached.  Puts the character’s ‘ucs4_t’ representation in ‘*PUC’.
 
    The following function inspects and returns details about the
 previous character in a Unicode string.
 
  -- Function: const uint8_t * u8_prev (ucs4_t *PUC, const uint8_t *S,
           const uint8_t *START)
- -- Function: const uint16_t * u16_prev (ucs4_t *PUC, const uint16_t
-          *S, const uint16_t *START)
- -- Function: const uint32_t * u32_prev (ucs4_t *PUC, const uint32_t
-          *S, const uint32_t *START)
+ -- Function: const uint16_t * u16_prev (ucs4_t *PUC, const uint16_t *S,
+          const uint16_t *START)
+ -- Function: const uint32_t * u32_prev (ucs4_t *PUC, const uint32_t *S,
+          const uint32_t *START)
      Backward iteration step.  Advances the pointer to point to the
-     previous character, or returns NULL if the beginning of the string
-     had been reached.  Puts the character's `ucs4_t' representation in
-     `*PUC'.
+     previous character (the one that ends at ‘S’), or returns NULL if
+     the beginning of the string (specified by ‘START’) had been
+     reached.  Puts the character’s ‘ucs4_t’ representation in ‘*PUC’.
+     Note that this function works only on well-formed Unicode strings.
 
    The following functions determine the length of a Unicode string.
 
@@ -902,7 +866,7 @@ previous character in a Unicode string.
  -- Function: size_t u32_strlen (const uint32_t *S)
      Returns the number of units in S.
 
-     This function is similar to `strlen' and `wcslen', except that it
+     This function is similar to ‘strlen’ and ‘wcslen’, except that it
      operates on Unicode strings.
 
  -- Function: size_t u8_strnlen (const uint8_t *S, size_t MAXLEN)
@@ -910,8 +874,8 @@ previous character in a Unicode string.
  -- Function: size_t u32_strnlen (const uint32_t *S, size_t MAXLEN)
      Returns the number of units in S, but at most MAXLEN.
 
-     This function is similar to `strnlen' and `wcsnlen', except that
-     it operates on Unicode strings.
+     This function is similar to ‘strnlen’ and ‘wcsnlen’, except that it
+     operates on Unicode strings.
 
    The following functions copy portions of Unicode strings in memory.
 
@@ -922,7 +886,7 @@ previous character in a Unicode string.
           *SRC)
      Copies SRC to DEST.
 
-     This function is similar to `strcpy' and `wcscpy', except that it
+     This function is similar to ‘strcpy’ and ‘wcscpy’, except that it
      operates on Unicode strings.
 
  -- Function: uint8_t * u8_stpcpy (uint8_t *DEST, const uint8_t *SRC)
@@ -930,10 +894,10 @@ previous character in a Unicode string.
           *SRC)
  -- Function: uint32_t * u32_stpcpy (uint32_t *DEST, const uint32_t
           *SRC)
-     Copies SRC to DEST, returning the address of the terminating NUL
-     in DEST.
+     Copies SRC to DEST, returning the address of the terminating NUL in
+     DEST.
 
-     This function is similar to `stpcpy', except that it operates on
+     This function is similar to ‘stpcpy’, except that it operates on
      Unicode strings.
 
  -- Function: uint8_t * u8_strncpy (uint8_t *DEST, const uint8_t *SRC,
@@ -944,8 +908,8 @@ previous character in a Unicode string.
           *SRC, size_t N)
      Copies no more than N units of SRC to DEST.
 
-     This function is similar to `strncpy' and `wcsncpy', except that
-     it operates on Unicode strings.
+     This function is similar to ‘strncpy’ and ‘wcsncpy’, except that it
+     operates on Unicode strings.
 
  -- Function: uint8_t * u8_stpncpy (uint8_t *DEST, const uint8_t *SRC,
           size_t N)
@@ -953,12 +917,12 @@ previous character in a Unicode string.
           *SRC, size_t N)
  -- Function: uint32_t * u32_stpncpy (uint32_t *DEST, const uint32_t
           *SRC, size_t N)
-     Copies no more than N units of SRC to DEST.  Returns a pointer
-     past the last non-NUL unit written into DEST.  In other words, if
-     the units written into DEST include a NUL, the return value is the
-     address of the first such NUL unit, otherwise it is `DEST + N'.
+     Copies no more than N units of SRC to DEST.  Returns a pointer past
+     the last non-NUL unit written into DEST.  In other words, if the
+     units written into DEST include a NUL, the return value is the
+     address of the first such NUL unit, otherwise it is ‘DEST + N’.
 
-     This function is similar to `stpncpy', except that it operates on
+     This function is similar to ‘stpncpy’, except that it operates on
      Unicode strings.
 
  -- Function: uint8_t * u8_strcat (uint8_t *DEST, const uint8_t *SRC)
@@ -968,7 +932,7 @@ previous character in a Unicode string.
           *SRC)
      Appends SRC onto DEST.
 
-     This function is similar to `strcat' and `wcscat', except that it
+     This function is similar to ‘strcat’ and ‘wcscat’, except that it
      operates on Unicode strings.
 
  -- Function: uint8_t * u8_strncat (uint8_t *DEST, const uint8_t *SRC,
@@ -979,19 +943,19 @@ previous character in a Unicode string.
           *SRC, size_t N)
      Appends no more than N units of SRC onto DEST.
 
-     This function is similar to `strncat' and `wcsncat', except that
-     it operates on Unicode strings.
+     This function is similar to ‘strncat’ and ‘wcsncat’, except that it
+     operates on Unicode strings.
 
    The following functions compare two Unicode strings.
 
  -- Function: int u8_strcmp (const uint8_t *S1, const uint8_t *S2)
  -- Function: int u16_strcmp (const uint16_t *S1, const uint16_t *S2)
  -- Function: int u32_strcmp (const uint32_t *S1, const uint32_t *S2)
-     Compares S1 and S2, lexicographically.  Returns a negative value
-     if S1 compares smaller than S2, a positive value if S1 compares
-     larger than S2, or 0 if they compare equal.
+     Compares S1 and S2, lexicographically.  Returns a negative value if
+     S1 compares smaller than S2, a positive value if S1 compares larger
+     than S2, or 0 if they compare equal.
 
-     This function is similar to `strcmp' and `wcscmp', except that it
+     This function is similar to ‘strcmp’ and ‘wcscmp’, except that it
      operates on Unicode strings.
 
  -- Function: int u8_strcoll (const uint8_t *S1, const uint8_t *S2)
@@ -999,14 +963,14 @@ previous character in a Unicode string.
  -- Function: int u32_strcoll (const uint32_t *S1, const uint32_t *S2)
      Compares S1 and S2 using the collation rules of the current locale.
      Returns -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2.  Upon failure,
-     sets `errno' and returns any value.
+     sets ‘errno’ and returns any value.
 
-     This function is similar to `strcoll' and `wcscoll', except that
-     it operates on Unicode strings.
+     This function is similar to ‘strcoll’ and ‘wcscoll’, except that it
+     operates on Unicode strings.
 
      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 `u8_normcoll' instead of
+     is therefore better to use the function ‘u8_normcoll’ instead of
      this one; see *note uninorm.h::.
 
  -- Function: int u8_strncmp (const uint8_t *S1, const uint8_t *S2,
@@ -1017,17 +981,17 @@ previous character in a Unicode string.
           size_t N)
      Compares no more than N units of S1 and S2.
 
-     This function is similar to `strncmp' and `wcsncmp', except that
-     it operates on Unicode strings.
+     This function is similar to ‘strncmp’ and ‘wcsncmp’, except that it
+     operates on Unicode strings.
 
    The following function allocates a duplicate of a Unicode string.
 
  -- Function: uint8_t * u8_strdup (const uint8_t *S)
  -- Function: uint16_t * u16_strdup (const uint16_t *S)
  -- Function: uint32_t * u32_strdup (const uint32_t *S)
-     Duplicates S, returning an identical malloc'd string.
+     Duplicates S, returning an identical mallocd string.
 
-     This function is similar to `strdup' and `wcsdup', except that it
+     This function is similar to ‘strdup’ and ‘wcsdup’, except that it
      operates on Unicode strings.
 
    The following functions search for a given Unicode character.
@@ -1037,7 +1001,7 @@ previous character in a Unicode string.
  -- Function: uint32_t * u32_strchr (const uint32_t *STR, ucs4_t UC)
      Finds the first occurrence of UC in STR.
 
-     This function is similar to `strchr' and `wcschr', except that it
+     This function is similar to ‘strchr’ and ‘wcschr’, except that it
      operates on Unicode strings.
 
  -- Function: uint8_t * u8_strrchr (const uint8_t *STR, ucs4_t UC)
@@ -1045,8 +1009,8 @@ previous character in a Unicode string.
  -- Function: uint32_t * u32_strrchr (const uint32_t *STR, ucs4_t UC)
      Finds the last occurrence of UC in STR.
 
-     This function is similar to `strrchr' and `wcsrchr', except that
-     it operates on Unicode strings.
+     This function is similar to ‘strrchr’ and ‘wcsrchr’, except that it
+     operates on Unicode strings.
 
    The following functions search for the first occurrence of some
 Unicode character in or outside a given set of Unicode characters.
@@ -1060,8 +1024,8 @@ Unicode character in or outside a given set of Unicode characters.
      Returns the length of the initial segment of STR which consists
      entirely of Unicode characters not in REJECT.
 
-     This function is similar to `strcspn' and `wcscspn', except that
-     it operates on Unicode strings.
+     This function is similar to ‘strcspn’ and ‘wcscspn’, except that it
+     operates on Unicode strings.
 
  -- Function: size_t u8_strspn (const uint8_t *STR, const uint8_t
           *ACCEPT)
@@ -1072,7 +1036,7 @@ Unicode character in or outside a given set of Unicode characters.
      Returns the length of the initial segment of STR which consists
      entirely of Unicode characters in ACCEPT.
 
-     This function is similar to `strspn' and `wcsspn', except that it
+     This function is similar to ‘strspn’ and ‘wcsspn’, except that it
      operates on Unicode strings.
 
  -- Function: uint8_t * u8_strpbrk (const uint8_t *STR, const uint8_t
@@ -1083,8 +1047,8 @@ Unicode character in or outside a given set of Unicode characters.
           uint32_t *ACCEPT)
      Finds the first occurrence in STR of any character in ACCEPT.
 
-     This function is similar to `strpbrk' and `wcspbrk', except that
-     it operates on Unicode strings.
+     This function is similar to ‘strpbrk’ and ‘wcspbrk’, except that it
+     operates on Unicode strings.
 
    The following functions search whether a given Unicode string is a
 substring of another Unicode string.
@@ -1097,7 +1061,7 @@ substring of another Unicode string.
           uint32_t *NEEDLE)
      Finds the first occurrence of NEEDLE in HAYSTACK.
 
-     This function is similar to `strstr' and `wcsstr', except that it
+     This function is similar to ‘strstr’ and ‘wcsstr’, except that it
      operates on Unicode strings.
 
  -- Function: bool u8_startswith (const uint8_t *STR, const uint8_t
@@ -1126,34 +1090,34 @@ substring of another Unicode string.
           *DELIM, uint32_t **PTR)
      Divides STR into tokens separated by characters in DELIM.
 
-     This function is similar to `strtok_r' and `wcstok', except that
-     it operates on Unicode strings.  Its interface is actually more
-     similar to `wcstok' than to `strtok'.
+     This function is similar to ‘strtok_r’ and ‘wcstok’, except that it
+     operates on Unicode strings.  Its interface is actually more
+     similar to ‘wcstok’ than to ‘strtok’.
 
 \1f
 File: libunistring.info,  Node: uniconv.h,  Next: unistdio.h,  Prev: unistr.h,  Up: Top
 
-5 Conversions between Unicode and encodings `<uniconv.h>'
+5 Conversions between Unicode and encodings ‘<uniconv.h>’
 *********************************************************
 
    This include file declares functions for converting between Unicode
-strings and `char *' strings in locale encoding or in other specified
+strings and ‘char *’ strings in locale encoding or in other specified
 encodings.
 
    The following function returns the locale encoding.
 
  -- Function: const char * locale_charset ()
-     Determines the current locale's character encoding, and
+     Determines the current locales character encoding, and
      canonicalizes it into one of the canonical names listed in
-     `config.charset'.  If the canonical name cannot be determined, the
+     ‘config.charset’.  If the canonical name cannot be determined, the
      result is a non-canonical name.
 
      The result must not be freed; it is statically allocated.
 
      The result of this function can be used as an argument to the
-     `iconv_open' function in GNU libc, in GNU libiconv, or in the
-     gnulib provided wrapper around the native `iconv_open' function.
-     It may not work as an argument to the native `iconv_open' function
+     ‘iconv_open’ function in GNU libc, in GNU libiconv, or in the
+     gnulib provided wrapper around the native ‘iconv_open’ function.
+     It may not work as an argument to the native ‘iconv_open’ function
      directly.
 
    The handling of unconvertible characters during the conversions can
@@ -1164,15 +1128,15 @@ be parametrized through the following enumeration type:
      handled.
 
  -- Constant: enum iconv_ilseq_handler iconveh_error
-     This handler causes the function to return with `errno' set to
-     `EILSEQ'.
+     This handler causes the function to return with ‘errno’ set to
+     ‘EILSEQ’.
 
  -- Constant: enum iconv_ilseq_handler iconveh_question_mark
-     This handler produces one question mark `?' per unconvertible
+     This handler produces one question mark ‘?’ per unconvertible
      character.
 
  -- Constant: enum iconv_ilseq_handler iconveh_escape_sequence
-     This handler produces an escape sequence `\uXXXX' or `\UXXXXXXXX'
+     This handler produces an escape sequence ‘\uXXXX’ or ‘\UXXXXXXXX’
      for each unconvertible character.
 
    The following functions convert between strings in a specified
@@ -1191,29 +1155,29 @@ encoding and Unicode strings.
      encoding to UTF-8 encoding.
 
      Converts a memory region given in encoding FROMCODE.  FROMCODE is
-     as for the `iconv_open' function.
+     as for the ‘iconv_open’ function.
 
-     The input is in the memory region between SRC (inclusive) and `SRC
-     + SRCLEN' (exclusive).
+     The input is in the memory region between SRC (inclusive) and SRC
+     + SRCLEN (exclusive).
 
      If OFFSETS is not NULL, it should point to an array of SRCLEN
      integers; this array is filled with offsets into the result, i.e.
-     the character starting at `SRC[i]' corresponds to the character
-     starting at `RESULT[OFFSETS[i]]', and other offsets are set to
-     `(size_t)(-1)'.
+     the character starting at ‘SRC[i]’ corresponds to the character
+     starting at ‘RESULT[OFFSETS[i]]’, and other offsets are set to
+     ‘(size_t)(-1)’.
 
-     `RESULTBUF' and `*LENGTHP' should be a scratch buffer and its
-     size, or `RESULTBUF' can be NULL.
+     ‘RESULTBUF’ and ‘*LENGTHP’ should be a scratch buffer and its size,
+     or ‘RESULTBUF’ can be NULL.
 
-     May erase the contents of the memory at `RESULTBUF'.
+     May erase the contents of the memory at ‘RESULTBUF’.
 
      If successful: The resulting Unicode string (non-NULL) is returned
-     and its length stored in `*LENGTHP'.  The resulting string is
-     `RESULTBUF' if no dynamic memory allocation was necessary, or a
+     and its length stored in ‘*LENGTHP’.  The resulting string is
+     ‘RESULTBUF’ if no dynamic memory allocation was necessary, or a
      freshly allocated memory block otherwise.
 
-     In case of error: NULL is returned and `errno' is set.  Particular
-     `errno' values: `EINVAL', `EILSEQ', `ENOMEM'.
+     In case of error: NULL is returned and ‘errno’ is set.  Particular
+     ‘errno’ values: ‘EINVAL’, ‘EILSEQ’, ‘ENOMEM’.
 
  -- Function: char * u8_conv_to_encoding (const char *TOCODE, enum
           iconv_ilseq_handler HANDLER, const uint8_t *SRC, size_t
@@ -1228,29 +1192,29 @@ encoding and Unicode strings.
      from UTF-8 encoding to a given encoding.
 
      Converts a memory region to encoding TOCODE.  TOCODE is as for the
-     `iconv_open' function.
+     ‘iconv_open’ function.
 
-     The input is in the memory region between SRC (inclusive) and `SRC
-     + SRCLEN' (exclusive).
+     The input is in the memory region between SRC (inclusive) and SRC
+     + SRCLEN (exclusive).
 
      If OFFSETS is not NULL, it should point to an array of SRCLEN
      integers; this array is filled with offsets into the result, i.e.
-     the character starting at `SRC[i]' corresponds to the character
-     starting at `RESULT[OFFSETS[i]]', and other offsets are set to
-     `(size_t)(-1)'.
+     the character starting at ‘SRC[i]’ corresponds to the character
+     starting at ‘RESULT[OFFSETS[i]]’, and other offsets are set to
+     ‘(size_t)(-1)’.
 
-     `RESULTBUF' and `*LENGTHP' should be a scratch buffer and its
-     size, or `RESULTBUF' can be NULL.
+     ‘RESULTBUF’ and ‘*LENGTHP’ should be a scratch buffer and its size,
+     or ‘RESULTBUF’ can be NULL.
 
-     May erase the contents of the memory at `RESULTBUF'.
+     May erase the contents of the memory at ‘RESULTBUF’.
 
      If successful: The resulting Unicode string (non-NULL) is returned
-     and its length stored in `*LENGTHP'.  The resulting string is
-     `RESULTBUF' if no dynamic memory allocation was necessary, or a
+     and its length stored in ‘*LENGTHP’.  The resulting string is
+     ‘RESULTBUF’ if no dynamic memory allocation was necessary, or a
      freshly allocated memory block otherwise.
 
-     In case of error: NULL is returned and `errno' is set.  Particular
-     `errno' values: `EINVAL', `EILSEQ', `ENOMEM'.
+     In case of error: NULL is returned and ‘errno’ is set.  Particular
+     ‘errno’ values: ‘EINVAL’, ‘EILSEQ’, ‘ENOMEM’.
 
    The following functions convert between NUL terminated strings in a
 specified encoding and NUL terminated Unicode strings.
@@ -1263,10 +1227,10 @@ specified encoding and NUL terminated Unicode strings.
           const char *FROMCODE, enum iconv_ilseq_handler HANDLER)
      Converts a NUL terminated string from a given encoding.
 
-     The result is `malloc' allocated, or NULL (with ERRNO set) in case
+     The result is ‘malloc’ allocated, or NULL (with ERRNO set) in case
      of error.
 
-     Particular `errno' values: `EILSEQ', `ENOMEM'.
+     Particular ‘errno’ values: ‘EILSEQ’, ‘ENOMEM’.
 
  -- Function: char * u8_strconv_to_encoding (const uint8_t *STRING,
           const char *TOCODE, enum iconv_ilseq_handler HANDLER)
@@ -1276,10 +1240,10 @@ specified encoding and NUL terminated Unicode strings.
           const char *TOCODE, enum iconv_ilseq_handler HANDLER)
      Converts a NUL terminated string to a given encoding.
 
-     The result is `malloc' allocated, or NULL (with `errno' set) in
+     The result is ‘malloc’ allocated, or NULL (with ‘errno’ set) in
      case of error.
 
-     Particular `errno' values: `EILSEQ', `ENOMEM'.
+     Particular ‘errno’ values: ‘EILSEQ’, ‘ENOMEM’.
 
    The following functions are shorthands that convert between NUL
 terminated strings in locale encoding and NUL terminated Unicode
@@ -1290,64 +1254,62 @@ strings.
  -- Function: uint32_t * u32_strconv_from_locale (const char *STRING)
      Converts a NUL terminated string from the locale encoding.
 
-     The result is `malloc' allocated, or NULL (with `errno' set) in
+     The result is ‘malloc’ allocated, or NULL (with ‘errno’ set) in
      case of error.
 
-     Particular `errno' values: `ENOMEM'.
+     Particular ‘errno’ values: ‘ENOMEM’.
 
  -- Function: char * u8_strconv_to_locale (const uint8_t *STRING)
  -- Function: char * u16_strconv_to_locale (const uint16_t *STRING)
  -- Function: char * u32_strconv_to_locale (const uint32_t *STRING)
      Converts a NUL terminated string to the locale encoding.
 
-     The result is `malloc' allocated, or NULL (with `errno' set) in
+     The result is ‘malloc’ allocated, or NULL (with ‘errno’ set) in
      case of error.
 
-     Particular `errno' values: `ENOMEM'.
+     Particular ‘errno’ values: ‘ENOMEM’.
 
 \1f
 File: libunistring.info,  Node: unistdio.h,  Next: uniname.h,  Prev: uniconv.h,  Up: Top
 
-6 Output with Unicode strings `<unistdio.h>'
+6 Output with Unicode strings ‘<unistdio.h>’
 ********************************************
 
    This include file declares functions for doing formatted output with
-Unicode strings.  It defines a set of functions similar to `fprintf' and
-`sprintf', which are declared in `<stdio.h>'.
+Unicode strings.  It defines a set of functions similar to ‘fprintf’ and
+‘sprintf’, which are declared in ‘<stdio.h>’.
 
-   These functions work like the `printf' function family.  In the
+   These functions work like the ‘printf’ function family.  In the
 format string:
-   * The format directive `U' takes an UTF-8 string (`const uint8_t *').
-
-   * The format directive `lU' takes an UTF-16 string (`const uint16_t
-     *').
-
-   * The format directive `llU' takes an UTF-32 string (`const uint32_t
-     *').
+   • The format directive ‘U’ takes an UTF-8 string (‘const uint8_t *’).
+   • The format directive ‘lU’ takes an UTF-16 string (‘const uint16_t
+     *’).
+   • The format directive ‘llU’ takes an UTF-32 string (‘const uint32_t
+     *’).
 
-   A function name with an infix `v' indicates that a `va_list' is
+   A function name with an infix ‘v’ indicates that a ‘va_list’ is
 passed instead of multiple arguments.
 
-   The functions `*sprintf' have a BUF argument that is assumed to be
-large enough.  (_DANGEROUS!  Overflowing the buffer will crash the
+   The functions ‘*sprintf’ have a BUF argument that is assumed to be
+large enough.  (_DANGEROUS! Overflowing the buffer will crash the
 program._)
 
-   The functions `*snprintf' have a BUF argument that is assumed to be
-SIZE units large.  (_DANGEROUS!  The resulting string might be
-truncated in the middle of a multibyte character._)
+   The functions ‘*snprintf’ have a BUF argument that is assumed to be
+SIZE units large.  (_DANGEROUS! The resulting string might be truncated
+in the middle of a multibyte character._)
 
-   The functions `*asprintf' have a RESULTP argument.  The result will
-be freshly allocated and stored in `*resultp'.
+   The functions ‘*asprintf’ have a RESULTP argument.  The result will
+be freshly allocated and stored in ‘*resultp’.
 
-   The functions `*asnprintf' have a (RESULTBUF, LENGTHP) argument
-pair.  If RESULTBUF is not NULL and the result fits into `*LENGTHP'
-units, it is put in RESULTBUF, and RESULTBUF is returned.  Otherwise, a
-freshly allocated string is returned.  In both cases, `*LENGTHP' is set
-to the length (number of units) of the returned string.  In case of
-error, NULL is returned and `errno' is set.
+   The functions ‘*asnprintf’ have a (RESULTBUF, LENGTHP) argument pair.
+If RESULTBUF is not NULL and the result fits into ‘*LENGTHP’ units, it
+is put in RESULTBUF, and RESULTBUF is returned.  Otherwise, a freshly
+allocated string is returned.  In both cases, ‘*LENGTHP’ is set to the
+length (number of units) of the returned string.  In case of error, NULL
+is returned and ‘errno’ is set.
 
    The following functions take an ASCII format string and return a
-result that is a `char *' string in locale encoding.
+result that is a ‘char *’ string in locale encoding.
 
  -- Function: int ulc_sprintf (char *BUF, const char *FORMAT, ...)
 
@@ -1375,25 +1337,18 @@ result that is a `char *' string in locale encoding.
 result in UTF-8 format.
 
  -- Function: int u8_sprintf (uint8_t *BUF, const char *FORMAT, ...)
-
  -- Function: int u8_snprintf (uint8_t *BUF, size_t SIZE, const char
           *FORMAT, ...)
-
  -- Function: int u8_asprintf (uint8_t **RESULTP, const char *FORMAT,
           ...)
-
  -- Function: uint8_t * u8_asnprintf (uint8_t *RESULTBUF, size_t
           *LENGTHP, const char *FORMAT, ...)
-
- -- Function: int u8_vsprintf (uint8_t *BUF, const char *FORMAT,
-          va_list ap)
-
+ -- Function: int u8_vsprintf (uint8_t *BUF, const char *FORMAT, va_list
+          ap)
  -- Function: int u8_vsnprintf (uint8_t *BUF, size_t SIZE, const char
           *FORMAT, va_list AP)
-
  -- Function: int u8_vasprintf (uint8_t **RESULTP, const char *FORMAT,
           va_list AP)
-
  -- Function: uint8_t * u8_vasnprintf (uint8_t *resultbuf, size_t
           *LENGTHP, const char *FORMAT, va_list AP)
 
@@ -1402,25 +1357,18 @@ result in UTF-8 format.
 
  -- Function: int u8_u8_sprintf (uint8_t *BUF, const uint8_t *FORMAT,
           ...)
-
  -- Function: int u8_u8_snprintf (uint8_t *BUF, size_t SIZE, const
           uint8_t *FORMAT, ...)
-
  -- Function: int u8_u8_asprintf (uint8_t **RESULTP, const uint8_t
           *FORMAT, ...)
-
  -- Function: uint8_t * u8_u8_asnprintf (uint8_t *resultbuf, size_t
           *LENGTHP, const uint8_t *FORMAT, ...)
-
  -- Function: int u8_u8_vsprintf (uint8_t *BUF, const uint8_t *FORMAT,
           va_list AP)
-
  -- Function: int u8_u8_vsnprintf (uint8_t *BUF, size_t SIZE, const
           uint8_t *FORMAT, va_list AP)
-
  -- Function: int u8_u8_vasprintf (uint8_t **RESULTP, const uint8_t
           *FORMAT, va_list AP)
-
  -- Function: uint8_t * u8_u8_vasnprintf (uint8_t *resultbuf, size_t
           *LENGTHP, const uint8_t *FORMAT, va_list AP)
 
@@ -1428,25 +1376,18 @@ result in UTF-8 format.
 result in UTF-16 format.
 
  -- Function: int u16_sprintf (uint16_t *BUF, const char *FORMAT, ...)
-
  -- Function: int u16_snprintf (uint16_t *BUF, size_t SIZE, const char
           *FORMAT, ...)
-
  -- Function: int u16_asprintf (uint16_t **RESULTP, const char *FORMAT,
           ...)
-
  -- Function: uint16_t * u16_asnprintf (uint16_t *RESULTBUF, size_t
           *LENGTHP, const char *FORMAT, ...)
-
  -- Function: int u16_vsprintf (uint16_t *BUF, const char *FORMAT,
           va_list ap)
-
  -- Function: int u16_vsnprintf (uint16_t *BUF, size_t SIZE, const char
           *FORMAT, va_list AP)
-
- -- Function: int u16_vasprintf (uint16_t **RESULTP, const char
-          *FORMAT, va_list AP)
-
+ -- Function: int u16_vasprintf (uint16_t **RESULTP, const char *FORMAT,
+          va_list AP)
  -- Function: uint16_t * u16_vasnprintf (uint16_t *resultbuf, size_t
           *LENGTHP, const char *FORMAT, va_list AP)
 
@@ -1455,51 +1396,37 @@ result in UTF-16 format.
 
  -- Function: int u16_u16_sprintf (uint16_t *BUF, const uint16_t
           *FORMAT, ...)
-
  -- Function: int u16_u16_snprintf (uint16_t *BUF, size_t SIZE, const
           uint16_t *FORMAT, ...)
-
  -- Function: int u16_u16_asprintf (uint16_t **RESULTP, const uint16_t
           *FORMAT, ...)
-
  -- Function: uint16_t * u16_u16_asnprintf (uint16_t *resultbuf, size_t
           *LENGTHP, const uint16_t *FORMAT, ...)
-
  -- Function: int u16_u16_vsprintf (uint16_t *BUF, const uint16_t
           *FORMAT, va_list AP)
-
  -- Function: int u16_u16_vsnprintf (uint16_t *BUF, size_t SIZE, const
           uint16_t *FORMAT, va_list AP)
-
  -- Function: int u16_u16_vasprintf (uint16_t **RESULTP, const uint16_t
           *FORMAT, va_list AP)
-
- -- Function: uint16_t * u16_u16_vasnprintf (uint16_t *resultbuf,
-          size_t *LENGTHP, const uint16_t *FORMAT, va_list AP)
+ -- Function: uint16_t * u16_u16_vasnprintf (uint16_t *resultbuf, size_t
+          *LENGTHP, const uint16_t *FORMAT, va_list AP)
 
    The following functions take an ASCII format string and return a
 result in UTF-32 format.
 
  -- Function: int u32_sprintf (uint32_t *BUF, const char *FORMAT, ...)
-
  -- Function: int u32_snprintf (uint32_t *BUF, size_t SIZE, const char
           *FORMAT, ...)
-
  -- Function: int u32_asprintf (uint32_t **RESULTP, const char *FORMAT,
           ...)
-
  -- Function: uint32_t * u32_asnprintf (uint32_t *RESULTBUF, size_t
           *LENGTHP, const char *FORMAT, ...)
-
  -- Function: int u32_vsprintf (uint32_t *BUF, const char *FORMAT,
           va_list ap)
-
  -- Function: int u32_vsnprintf (uint32_t *BUF, size_t SIZE, const char
           *FORMAT, va_list AP)
-
- -- Function: int u32_vasprintf (uint32_t **RESULTP, const char
-          *FORMAT, va_list AP)
-
+ -- Function: int u32_vasprintf (uint32_t **RESULTP, const char *FORMAT,
+          va_list AP)
  -- Function: uint32_t * u32_vasnprintf (uint32_t *resultbuf, size_t
           *LENGTHP, const char *FORMAT, va_list AP)
 
@@ -1508,81 +1435,73 @@ result in UTF-32 format.
 
  -- Function: int u32_u32_sprintf (uint32_t *BUF, const uint32_t
           *FORMAT, ...)
-
  -- Function: int u32_u32_snprintf (uint32_t *BUF, size_t SIZE, const
           uint32_t *FORMAT, ...)
-
  -- Function: int u32_u32_asprintf (uint32_t **RESULTP, const uint32_t
           *FORMAT, ...)
-
  -- Function: uint32_t * u32_u32_asnprintf (uint32_t *resultbuf, size_t
           *LENGTHP, const uint32_t *FORMAT, ...)
-
  -- Function: int u32_u32_vsprintf (uint32_t *BUF, const uint32_t
           *FORMAT, va_list AP)
-
  -- Function: int u32_u32_vsnprintf (uint32_t *BUF, size_t SIZE, const
           uint32_t *FORMAT, va_list AP)
-
  -- Function: int u32_u32_vasprintf (uint32_t **RESULTP, const uint32_t
           *FORMAT, va_list AP)
-
- -- Function: uint32_t * u32_u32_vasnprintf (uint32_t *resultbuf,
-          size_t *LENGTHP, const uint32_t *FORMAT, va_list AP)
+ -- Function: uint32_t * u32_u32_vasnprintf (uint32_t *resultbuf, size_t
+          *LENGTHP, const uint32_t *FORMAT, va_list AP)
 
    The following functions take an ASCII format string and produce
-output in locale encoding to a `FILE' stream.
+output in locale encoding to a ‘FILE’ stream.
 
  -- Function: int ulc_fprintf (FILE *STREAM, const char *FORMAT, ...)
-
  -- Function: int ulc_vfprintf (FILE *STREAM, const char *FORMAT,
           va_list AP)
 
 \1f
 File: libunistring.info,  Node: uniname.h,  Next: unictype.h,  Prev: unistdio.h,  Up: Top
 
-7 Names of Unicode characters `<uniname.h>'
+7 Names of Unicode characters ‘<uniname.h>’
 *******************************************
 
    This include file implements the association between a Unicode
 character and its name.
 
    The name of a Unicode character allows to distinguish it from other,
-similar looking characters.  For example, the character `x' has the name
-`"LATIN SMALL LETTER X"' and is therefore different from the character
-named `"MULTIPLICATION SIGN"'.
+similar looking characters.  For example, the character ‘x’ has the name
+‘"LATIN SMALL LETTER X"’ and is therefore different from the character
+named ‘"MULTIPLICATION SIGN"’.
 
  -- Macro: unsigned int UNINAME_MAX
      This macro expands to a constant that is the required size of
      buffer for a Unicode character name.
 
  -- Function: char * unicode_character_name (ucs4_t UC, char *BUF)
-     Looks up the name of a Unicode character, in uppercase ASCII.  BUF
-     must point to a buffer, at least `UNINAME_MAX' bytes in size.
+     Looks up the name of a Unicode character, in uppercase ASCII. BUF
+     must point to a buffer, at least ‘UNINAME_MAX’ bytes in size.
      Returns the filled BUF, or NULL if the character does not have a
      name.
 
  -- Function: ucs4_t unicode_name_character (const char *NAME)
      Looks up the Unicode character with a given name, in upper- or
-     lowercase ASCII.  Returns the character if found, or
-     `UNINAME_INVALID' if not found.
+     lowercase ASCII. Returns the character if found, or
+     ‘UNINAME_INVALID’ if not found.
 
  -- Macro: ucs4_t UNINAME_INVALID
      This macro expands to a constant that is a special return value of
-     the `unicode_name_character' function.
+     the ‘unicode_name_character’ function.
 
 \1f
 File: libunistring.info,  Node: unictype.h,  Next: uniwidth.h,  Prev: uniname.h,  Up: Top
 
-8 Unicode character classification and properties `<unictype.h>'
+8 Unicode character classification and properties ‘<unictype.h>’
 ****************************************************************
 
    This include file declares functions that classify Unicode characters
 and that test whether Unicode characters have specific properties.
 
-   The classification assigns a "general category" to every Unicode
+   The classification assigns a “general category” to every Unicode
 character.  This is similar to the classification provided by ISO C in
-`<wctype.h>'.
+‘<wctype.h>’.
 
    Properties are the data that guides various text processing
 algorithms in the presence of specific Unicode characters.
@@ -1591,11 +1510,12 @@ algorithms in the presence of specific Unicode characters.
 
 * General category::
 * Canonical combining class::
-* Bidirectional category::
+* Bidi class::
 * Decimal digit value::
 * Digit value::
 * Numeric value::
 * Mirrored character::
+* Arabic shaping::
 * Properties::
 * Scripts::
 * Blocks::
@@ -1618,8 +1538,8 @@ denote every predefined general category value or combinations thereof.
 The low-level API uses a bit mask instead.  The advantage of the object
 oriented API is that if only a few predefined general category values
 are used, the data tables are relatively small.  When you combine
-general category values (using `uc_general_category_or',
-`uc_general_category_and', or `uc_general_category_and_not'), or when
+general category values (using ‘uc_general_category_or’,
+‘uc_general_category_and’, or ‘uc_general_category_and_not’), or when
 you use the low level bit masks, a big table is used thats holds the
 complete general category information for all Unicode characters.
 
@@ -1643,6 +1563,7 @@ File: libunistring.info,  Node: Object oriented API,  Next: Bit mask API,  Up: G
 general categories may be added in the future.
 
  -- Constant: uc_general_category_t UC_CATEGORY_L
+ -- Constant: uc_general_category_t UC_CATEGORY_LC
  -- Constant: uc_general_category_t UC_CATEGORY_Lu
  -- Constant: uc_general_category_t UC_CATEGORY_Ll
  -- Constant: uc_general_category_t UC_CATEGORY_Lt
@@ -1683,120 +1604,123 @@ general categories may be added in the future.
    The following are alias names for predefined General category values.
 
  -- Macro: uc_general_category_t UC_LETTER
-     This is another name for `UC_CATEGORY_L'.
+     This is another name for ‘UC_CATEGORY_L’.
+
+ -- Macro: uc_general_category_t UC_CASED_LETTER
+     This is another name for ‘UC_CATEGORY_LC’.
 
  -- Macro: uc_general_category_t UC_UPPERCASE_LETTER
-     This is another name for `UC_CATEGORY_Lu'.
+     This is another name for ‘UC_CATEGORY_Lu’.
 
  -- Macro: uc_general_category_t UC_LOWERCASE_LETTER
-     This is another name for `UC_CATEGORY_Ll'.
+     This is another name for ‘UC_CATEGORY_Ll’.
 
  -- Macro: uc_general_category_t UC_TITLECASE_LETTER
-     This is another name for `UC_CATEGORY_Lt'.
+     This is another name for ‘UC_CATEGORY_Lt’.
 
  -- Macro: uc_general_category_t UC_MODIFIER_LETTER
-     This is another name for `UC_CATEGORY_Lm'.
+     This is another name for ‘UC_CATEGORY_Lm’.
 
  -- Macro: uc_general_category_t UC_OTHER_LETTER
-     This is another name for `UC_CATEGORY_Lo'.
+     This is another name for ‘UC_CATEGORY_Lo’.
 
  -- Macro: uc_general_category_t UC_MARK
-     This is another name for `UC_CATEGORY_M'.
+     This is another name for ‘UC_CATEGORY_M’.
 
  -- Macro: uc_general_category_t UC_NON_SPACING_MARK
-     This is another name for `UC_CATEGORY_Mn'.
+     This is another name for ‘UC_CATEGORY_Mn’.
 
  -- Macro: uc_general_category_t UC_COMBINING_SPACING_MARK
-     This is another name for `UC_CATEGORY_Mc'.
+     This is another name for ‘UC_CATEGORY_Mc’.
 
  -- Macro: uc_general_category_t UC_ENCLOSING_MARK
-     This is another name for `UC_CATEGORY_Me'.
+     This is another name for ‘UC_CATEGORY_Me’.
 
  -- Macro: uc_general_category_t UC_NUMBER
-     This is another name for `UC_CATEGORY_N'.
+     This is another name for ‘UC_CATEGORY_N’.
 
  -- Macro: uc_general_category_t UC_DECIMAL_DIGIT_NUMBER
-     This is another name for `UC_CATEGORY_Nd'.
+     This is another name for ‘UC_CATEGORY_Nd’.
 
  -- Macro: uc_general_category_t UC_LETTER_NUMBER
-     This is another name for `UC_CATEGORY_Nl'.
+     This is another name for ‘UC_CATEGORY_Nl’.
 
  -- Macro: uc_general_category_t UC_OTHER_NUMBER
-     This is another name for `UC_CATEGORY_No'.
+     This is another name for ‘UC_CATEGORY_No’.
 
  -- Macro: uc_general_category_t UC_PUNCTUATION
-     This is another name for `UC_CATEGORY_P'.
+     This is another name for ‘UC_CATEGORY_P’.
 
  -- Macro: uc_general_category_t UC_CONNECTOR_PUNCTUATION
-     This is another name for `UC_CATEGORY_Pc'.
+     This is another name for ‘UC_CATEGORY_Pc’.
 
  -- Macro: uc_general_category_t UC_DASH_PUNCTUATION
-     This is another name for `UC_CATEGORY_Pd'.
+     This is another name for ‘UC_CATEGORY_Pd’.
 
  -- Macro: uc_general_category_t UC_OPEN_PUNCTUATION
-     This is another name for `UC_CATEGORY_Ps' ("start punctuation").
+     This is another name for ‘UC_CATEGORY_Ps’ (“start punctuation”).
 
  -- Macro: uc_general_category_t UC_CLOSE_PUNCTUATION
-     This is another name for `UC_CATEGORY_Pe' ("end punctuation").
+     This is another name for ‘UC_CATEGORY_Pe’ (“end punctuation”).
 
  -- Macro: uc_general_category_t UC_INITIAL_QUOTE_PUNCTUATION
-     This is another name for `UC_CATEGORY_Pi'.
+     This is another name for ‘UC_CATEGORY_Pi’.
 
  -- Macro: uc_general_category_t UC_FINAL_QUOTE_PUNCTUATION
-     This is another name for `UC_CATEGORY_Pf'.
+     This is another name for ‘UC_CATEGORY_Pf’.
 
  -- Macro: uc_general_category_t UC_OTHER_PUNCTUATION
-     This is another name for `UC_CATEGORY_Po'.
+     This is another name for ‘UC_CATEGORY_Po’.
 
  -- Macro: uc_general_category_t UC_SYMBOL
-     This is another name for `UC_CATEGORY_S'.
+     This is another name for ‘UC_CATEGORY_S’.
 
  -- Macro: uc_general_category_t UC_MATH_SYMBOL
-     This is another name for `UC_CATEGORY_Sm'.
+     This is another name for ‘UC_CATEGORY_Sm’.
 
  -- Macro: uc_general_category_t UC_CURRENCY_SYMBOL
-     This is another name for `UC_CATEGORY_Sc'.
+     This is another name for ‘UC_CATEGORY_Sc’.
 
  -- Macro: uc_general_category_t UC_MODIFIER_SYMBOL
-     This is another name for `UC_CATEGORY_Sk'.
+     This is another name for ‘UC_CATEGORY_Sk’.
 
  -- Macro: uc_general_category_t UC_OTHER_SYMBOL
-     This is another name for `UC_CATEGORY_So'.
+     This is another name for ‘UC_CATEGORY_So’.
 
  -- Macro: uc_general_category_t UC_SEPARATOR
-     This is another name for `UC_CATEGORY_Z'.
+     This is another name for ‘UC_CATEGORY_Z’.
 
  -- Macro: uc_general_category_t UC_SPACE_SEPARATOR
-     This is another name for `UC_CATEGORY_Zs'.
+     This is another name for ‘UC_CATEGORY_Zs’.
 
  -- Macro: uc_general_category_t UC_LINE_SEPARATOR
-     This is another name for `UC_CATEGORY_Zl'.
+     This is another name for ‘UC_CATEGORY_Zl’.
 
  -- Macro: uc_general_category_t UC_PARAGRAPH_SEPARATOR
-     This is another name for `UC_CATEGORY_Zp'.
+     This is another name for ‘UC_CATEGORY_Zp’.
 
  -- Macro: uc_general_category_t UC_OTHER
-     This is another name for `UC_CATEGORY_C'.
+     This is another name for ‘UC_CATEGORY_C’.
 
  -- Macro: uc_general_category_t UC_CONTROL
-     This is another name for `UC_CATEGORY_Cc'.
+     This is another name for ‘UC_CATEGORY_Cc’.
 
  -- Macro: uc_general_category_t UC_FORMAT
-     This is another name for `UC_CATEGORY_Cf'.
+     This is another name for ‘UC_CATEGORY_Cf’.
 
  -- Macro: uc_general_category_t UC_SURROGATE
-     This is another name for `UC_CATEGORY_Cs'.  All code points in this
+     This is another name for ‘UC_CATEGORY_Cs’.  All code points in this
      category are invalid characters.
 
  -- Macro: uc_general_category_t UC_PRIVATE_USE
-     This is another name for `UC_CATEGORY_Co'.
+     This is another name for ‘UC_CATEGORY_Co’.
 
  -- Macro: uc_general_category_t UC_UNASSIGNED
-     This is another name for `UC_CATEGORY_Cn'.  Some code points in
+     This is another name for ‘UC_CATEGORY_Cn’.  Some code points in
      this category are invalid characters.
 
-   The following functions combine general categories, like in a
-boolean algebra, except that there is no `not' operation.
+   The following functions combine general categories, like in a boolean
+algebra, except that there is no ‘not’ operation.
 
  -- Function: uc_general_category_t uc_general_category_or
           (uc_general_category_t CATEGORY1, uc_general_category_t
@@ -1823,13 +1747,22 @@ boolean algebra, except that there is no `not' operation.
 
  -- Function: const char * uc_general_category_name
           (uc_general_category_t CATEGORY)
-     Returns the name of a general category.  Returns NULL if the
+     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 have a name.
+
+ -- Function: const char * uc_general_category_long_name
+          (uc_general_category_t CATEGORY)
+     Returns the long name of a general category.  Returns NULL if the
      general category corresponds to a bit mask that does not have a
      name.
 
  -- Function: uc_general_category_t uc_general_category_byname (const
           char *CATEGORY_NAME)
-     Returns the general category given by name, e.g. `"Lu"'.
+     Returns the general category given by name, e.g.  ‘"Lu"’, or by
+     long name, e.g.  ‘"Uppercase Letter"’.  This lookup ignores spaces,
+     underscores, or hyphens as word separators and is
+     case-insignificant.
 
    The following functions view general categories as sets of Unicode
 characters.
@@ -1841,8 +1774,8 @@ characters.
 
  -- Function: bool uc_is_general_category (ucs4_t UC,
           uc_general_category_t CATEGORY)
-     Tests whether a Unicode character belongs to a given category.
-     The CATEGORY argument can be a predefined general category or the
+     Tests whether a Unicode character belongs to a given category.  The
+     CATEGORY argument can be a predefined general category or the
      combination of several predefined general categories.
 
 \1f
@@ -1855,6 +1788,7 @@ File: libunistring.info,  Node: Bit mask API,  Prev: Object oriented API,  Up: G
 Additional general categories may be added in the future.
 
  -- Macro: uint32_t UC_CATEGORY_MASK_L
+ -- Macro: uint32_t UC_CATEGORY_MASK_LC
  -- Macro: uint32_t UC_CATEGORY_MASK_Lu
  -- Macro: uint32_t UC_CATEGORY_MASK_Ll
  -- Macro: uint32_t UC_CATEGORY_MASK_Lt
@@ -1895,16 +1829,16 @@ Additional general categories may be added in the future.
    The following function views general categories as sets of Unicode
 characters.
 
- -- Function: bool uc_is_general_category_withtable (ucs4_t UC,
-          uint32_t BITMASK)
-     Tests whether a Unicode character belongs to a given category.
-     The BITMASK argument can be a predefined general category bitmask
-     or the combination of several predefined general category bitmasks.
+ -- Function: bool uc_is_general_category_withtable (ucs4_t UC, uint32_t
+          BITMASK)
+     Tests whether a Unicode character belongs to a given category.  The
+     BITMASK argument can be a predefined general category bitmask or
+     the combination of several predefined general category bitmasks.
 
      This function uses a big table comprising all general categories.
 
 \1f
-File: libunistring.info,  Node: Canonical combining class,  Next: Bidirectional category,  Prev: General category,  Up: unictype.h
+File: libunistring.info,  Node: Canonical combining class,  Next: Bidi class,  Prev: General category,  Up: unictype.h
 
 8.2 Canonical combining class
 =============================
@@ -1914,80 +1848,102 @@ class_ assigned to it.
 
    What is the meaning of the canonical combining class?  Essentially,
 it indicates the priority with which a combining character is attached
-to its base character.  The characters for which the canonical
-combining class is 0 are the base characters, and the characters for
-which it is greater than 0 are the combining characters.  Combining
-characters are rendered near/attached/around their base character, and
-combining characters with small combining classes are attached "first"
-or "closer" to the base character.
+to its base character.  The characters for which the canonical combining
+class is 0 are the base characters, and the characters for which it is
+greater than 0 are the combining characters.  Combining characters are
+rendered near/attached/around their base character, and combining
+characters with small combining classes are attached "first" or "closer"
+to the base character.
 
    The canonical combining class of a character is a number in the range
 0..255.  The possible values are described in the Unicode Character
-Database `http://www.unicode.org/Public/UNIDATA/UCD.html'.  The list
+Database <http://www.unicode.org/Public/UNIDATA/UCD.html>.  The list
 here is not definitive; more values can be added in future versions.
 
  -- Constant: int UC_CCC_NR
-     The canonical combining class value for "Not Reordered" characters.
+     The canonical combining class value for “Not Reordered” characters.
      The value is 0.
 
  -- Constant: int UC_CCC_OV
-     The canonical combining class value for "Overlay" characters.
+     The canonical combining class value for “Overlay” characters.
 
  -- Constant: int UC_CCC_NK
-     The canonical combining class value for "Nukta" characters.
+     The canonical combining class value for “Nukta” characters.
 
  -- Constant: int UC_CCC_KV
-     The canonical combining class value for "Kana Voicing" characters.
+     The canonical combining class value for “Kana Voicing” characters.
 
  -- Constant: int UC_CCC_VR
-     The canonical combining class value for "Virama" characters.
+     The canonical combining class value for “Virama” characters.
 
  -- Constant: int UC_CCC_ATBL
-     The canonical combining class value for "Attached Below Left"
+     The canonical combining class value for “Attached Below Left”
      characters.
 
  -- Constant: int UC_CCC_ATB
-     The canonical combining class value for "Attached Below"
+     The canonical combining class value for “Attached Below”
+     characters.
+
+ -- Constant: int UC_CCC_ATA
+     The canonical combining class value for “Attached Above”
      characters.
 
  -- Constant: int UC_CCC_ATAR
-     The canonical combining class value for "Attached Above Right"
+     The canonical combining class value for “Attached Above Right”
      characters.
 
  -- Constant: int UC_CCC_BL
-     The canonical combining class value for "Below Left" characters.
+     The canonical combining class value for “Below Left” characters.
 
  -- Constant: int UC_CCC_B
-     The canonical combining class value for "Below" characters.
+     The canonical combining class value for “Below” characters.
 
  -- Constant: int UC_CCC_BR
-     The canonical combining class value for "Below Right" characters.
+     The canonical combining class value for “Below Right” characters.
 
  -- Constant: int UC_CCC_L
-     The canonical combining class value for "Left" characters.
+     The canonical combining class value for “Left” characters.
 
  -- Constant: int UC_CCC_R
-     The canonical combining class value for "Right" characters.
+     The canonical combining class value for “Right” characters.
 
  -- Constant: int UC_CCC_AL
-     The canonical combining class value for "Above Left" characters.
+     The canonical combining class value for “Above Left” characters.
 
  -- Constant: int UC_CCC_A
-     The canonical combining class value for "Above" characters.
+     The canonical combining class value for “Above” characters.
 
  -- Constant: int UC_CCC_AR
-     The canonical combining class value for "Above Right" characters.
+     The canonical combining class value for “Above Right” characters.
 
  -- Constant: int UC_CCC_DB
-     The canonical combining class value for "Double Below" characters.
+     The canonical combining class value for “Double Below” characters.
 
  -- Constant: int UC_CCC_DA
-     The canonical combining class value for "Double Above" characters.
+     The canonical combining class value for “Double Above” characters.
 
  -- Constant: int UC_CCC_IS
-     The canonical combining class value for "Iota Subscript"
+     The canonical combining class value for “Iota Subscript”
      characters.
 
+   The following functions associate canonical combining classes with
+their name.
+
+ -- Function: const char * uc_combining_class_name (int CCC)
+     Returns the name of a canonical combining class, more precisely,
+     the abbreviated name.  Returns NULL if the canonical combining
+     class is a numeric value without a name.
+
+ -- Function: const char * uc_combining_class_long_name (int CCC)
+     Returns the long name of a canonical combining class.  Returns NULL
+     if the canonical combining class is a numeric value without a name.
+
+ -- Function: int uc_combining_class_byname (const char *CCC_NAME)
+     Returns the canonical combining class given by name, e.g.  ‘"BL"’,
+     or by long name, e.g.  ‘"Below Left"’.  This lookup ignores spaces,
+     underscores, or hyphens as word separators and is
+     case-insignificant.
+
    The following function looks up the canonical combining class of a
 character.
 
@@ -1995,113 +1951,119 @@ character.
      Returns the canonical combining class of a Unicode character.
 
 \1f
-File: libunistring.info,  Node: Bidirectional category,  Next: Decimal digit value,  Prev: Canonical combining class,  Up: unictype.h
+File: libunistring.info,  Node: Bidi class,  Next: Decimal digit value,  Prev: Canonical combining class,  Up: unictype.h
 
-8.3 Bidirectional category
-==========================
+8.3 Bidi class
+==============
 
-   Every Unicode character or code point has a _bidirectional category_
-assigned to it.
+   Every Unicode character or code point has a _bidi class_ assigned to
+it.  Before Unicode 4.0, this concept was known as _bidirectional
+category_.
 
-   The bidirectional category guides the bidirectional algorithm
-(`http://www.unicode.org/reports/tr9/').  The possible values are the
+   The bidi class guides the bidirectional algorithm
+(<http://www.unicode.org/reports/tr9/>).  The possible values are the
 following.
 
  -- Constant: int UC_BIDI_L
-     The bidirectional category for `Left-to-Right`" characters.
+     The bidi class for ‘Left-to-Right‘” characters.
 
  -- Constant: int UC_BIDI_LRE
-     The bidirectional category for "Left-to-Right Embedding"
-     characters.
+     The bidi class for “Left-to-Right Embedding” characters.
 
  -- Constant: int UC_BIDI_LRO
-     The bidirectional category for "Left-to-Right Override" characters.
+     The bidi class for “Left-to-Right Override” characters.
 
  -- Constant: int UC_BIDI_R
-     The bidirectional category for "Right-to-Left" characters.
+     The bidi class for “Right-to-Left” characters.
 
  -- Constant: int UC_BIDI_AL
-     The bidirectional category for "Right-to-Left Arabic" characters.
+     The bidi class for “Right-to-Left Arabic” characters.
 
  -- Constant: int UC_BIDI_RLE
-     The bidirectional category for "Right-to-Left Embedding"
-     characters.
+     The bidi class for “Right-to-Left Embedding” characters.
 
  -- Constant: int UC_BIDI_RLO
-     The bidirectional category for "Right-to-Left Override" characters.
+     The bidi class for “Right-to-Left Override” characters.
 
  -- Constant: int UC_BIDI_PDF
-     The bidirectional category for "Pop Directional Format" characters.
+     The bidi class for “Pop Directional Format” characters.
 
  -- Constant: int UC_BIDI_EN
-     The bidirectional category for "European Number" characters.
+     The bidi class for “European Number” characters.
 
  -- Constant: int UC_BIDI_ES
-     The bidirectional category for "European Number Separator"
-     characters.
+     The bidi class for “European Number Separator” characters.
 
  -- Constant: int UC_BIDI_ET
-     The bidirectional category for "European Number Terminator"
-     characters.
+     The bidi class for “European Number Terminator” characters.
 
  -- Constant: int UC_BIDI_AN
-     The bidirectional category for "Arabic Number" characters.
+     The bidi class for “Arabic Number” characters.
 
  -- Constant: int UC_BIDI_CS
-     The bidirectional category for "Common Number Separator"
-     characters.
+     The bidi class for “Common Number Separator” characters.
 
  -- Constant: int UC_BIDI_NSM
-     The bidirectional category for "Non-Spacing Mark" characters.
+     The bidi class for “Non-Spacing Mark” characters.
 
  -- Constant: int UC_BIDI_BN
-     The bidirectional category for "Boundary Neutral" characters.
+     The bidi class for “Boundary Neutral” characters.
 
  -- Constant: int UC_BIDI_B
-     The bidirectional category for "Paragraph Separator" characters.
+     The bidi class for “Paragraph Separator” characters.
 
  -- Constant: int UC_BIDI_S
-     The bidirectional category for "Segment Separator" characters.
+     The bidi class for “Segment Separator” characters.
 
  -- Constant: int UC_BIDI_WS
-     The bidirectional category for "Whitespace" characters.
+     The bidi class for “Whitespace” characters.
 
  -- Constant: int UC_BIDI_ON
-     The bidirectional category for "Other Neutral" characters.
+     The bidi class for “Other Neutral” characters.
 
    The following functions implement the association between a
 bidirectional category and its name.
 
+ -- Function: const char * uc_bidi_class_name (int BIDI_CLASS)
  -- Function: const char * uc_bidi_category_name (int CATEGORY)
-     Returns the name of a bidirectional category.
+     Returns the name of a bidi class, more precisely, the abbreviated
+     name.
+
+ -- Function: const char * uc_bidi_class_long_name (int BIDI_CLASS)
+     Returns the long name of a bidi class.
 
+ -- Function: int uc_bidi_class_byname (const char *BIDI_CLASS_NAME)
  -- Function: int uc_bidi_category_byname (const char *CATEGORY_NAME)
-     Returns the bidirectional category given by name, e.g. `"LRE"'.
+     Returns the bidi class given by name, e.g.  ‘"LRE"’, or by long
+     name, e.g.  ‘"Left-to-Right Embedding"’.  This lookup ignores
+     spaces, underscores, or hyphens as word separators and is
+     case-insignificant.
 
    The following functions view bidirectional categories as sets of
 Unicode characters.
 
+ -- Function: int uc_bidi_class (ucs4_t UC)
  -- Function: int uc_bidi_category (ucs4_t UC)
-     Returns the bidirectional category of a Unicode character.
+     Returns the bidi class of a Unicode character.
 
+ -- Function: bool uc_is_bidi_class (ucs4_t UC, int BIDI_CLASS)
  -- Function: bool uc_is_bidi_category (ucs4_t UC, int CATEGORY)
-     Tests whether a Unicode character belongs to a given bidirectional
-     category.
+     Tests whether a Unicode character belongs to a given bidi class.
 
 \1f
-File: libunistring.info,  Node: Decimal digit value,  Next: Digit value,  Prev: Bidirectional category,  Up: unictype.h
+File: libunistring.info,  Node: Decimal digit value,  Next: Digit value,  Prev: Bidi class,  Up: unictype.h
 
 8.4 Decimal digit value
 =======================
 
-   Decimal digits (like the digits from `0' to `9') exist in many
+   Decimal digits (like the digits from ‘0’ to ‘9’) exist in many
 scripts.  The following function converts a decimal digit character to
 its numerical value.
 
  -- Function: int uc_decimal_value (ucs4_t UC)
-     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 do not represent a decimal digit.
+     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 do
+     not represent a decimal digit.
 
 \1f
 File: libunistring.info,  Node: Digit value,  Next: Numeric value,  Prev: Decimal digit value,  Up: unictype.h
@@ -2130,23 +2092,22 @@ system, like the Roman numerals, and fractional numbers, like 1/4 or
 
    The following type represents the numeric value of a Unicode
 character.
-
  -- Type: uc_fraction_t
      This is a structure type with the following fields:
           int numerator;
           int denominator;
-     An integer N is represented by `numerator = N', `denominator = 1'.
+     An integer N is represented by ‘numerator = N’, ‘denominator = 1’.
 
    The following function converts a number character to its numerical
 value.
 
  -- Function: uc_fraction_t uc_numeric_value (ucs4_t UC)
-     Returns the numeric value of a Unicode character.  The return
-     value is a fraction, or the pseudo-fraction `{ 0, 0 }' for
-     characters that do not represent a number.
+     Returns the numeric value of a Unicode character.  The return value
+     is a fraction, or the pseudo-fraction ‘{ 0, 0 }’ for characters
+     that do not represent a number.
 
 \1f
-File: libunistring.info,  Node: Mirrored character,  Next: Properties,  Prev: Numeric value,  Up: unictype.h
+File: libunistring.info,  Node: Mirrored character,  Next: Arabic shaping,  Prev: Numeric value,  Up: unictype.h
 
 8.7 Mirrored character
 ======================
@@ -2159,14 +2120,175 @@ character with the opening brace character, and so on.
 character.
 
  -- Function: bool uc_mirror_char (ucs4_t UC, ucs4_t *PUC)
-     Stores the mirrored character of a Unicode character UC in `*PUC'
-     and returns `true', if it exists.  Otherwise it stores UC
-     unmodified in `*PUC' and returns `false'.
+     Stores the mirrored character of a Unicode character UC in ‘*PUC’
+     and returns ‘true’, if it exists.  Otherwise it stores UC
+     unmodified in ‘*PUC’ and returns ‘false’.
+
+\1f
+File: libunistring.info,  Node: Arabic shaping,  Next: Properties,  Prev: Mirrored character,  Up: unictype.h
+
+8.8 Arabic shaping
+==================
+
+   When Arabic characters are rendered, after bidi reordering has taken
+place, the shape of the glyphs are modified so that many adjacent glyphs
+are joined.  Two character properties describe how this “Arabic shaping”
+takes place: the joining type and the joining group.
+
+* Menu:
+
+* Joining type::
+* Joining group::
+
+\1f
+File: libunistring.info,  Node: Joining type,  Next: Joining group,  Up: Arabic shaping
+
+8.8.1 Joining type of Arabic characters
+---------------------------------------
+
+   The joining type of a character describes on which of the left and
+right neighbour characters the character’s shape depends, and which of
+the two neighbour characters are rendered depending on this character.
+
+   The joining type has the following possible values:
+
+ -- Constant: int UC_JOINING_TYPE_U
+     “Non joining”: Characters of this joining type prohibit joining.
+
+ -- Constant: int UC_JOINING_TYPE_T
+     “Transparent”: Characters of this joining type are skipped when
+     considering joining.
+
+ -- Constant: int UC_JOINING_TYPE_C
+     “Join causing”: Characters of this joining type cause their
+     neighbour characters to change their shapes but don’t change their
+     own shape.
+
+ -- Constant: int UC_JOINING_TYPE_L
+     “Left joining”: Characters of this joining type have two shapes,
+     isolated and initial.  Such characters currently don’t exist.
+
+ -- Constant: int UC_JOINING_TYPE_R
+     “Right joining”: Characters of this joining type have two shapes,
+     isolated and final.
+
+ -- Constant: int UC_JOINING_TYPE_D
+     “Dual joining”: Characters of this joining type have four shapes,
+     initial, medial, final, and isolated.
+
+   The following functions implement the association between a joining
+type and its name.
+
+ -- Function: const char * uc_joining_type_name (int JOINING_TYPE)
+     Returns the name of a joining type.
+
+ -- Function: const char * uc_joining_type_long_name (int JOINING_TYPE)
+     Returns the long name of a joining type.
+
+ -- Function: int uc_joining_type_byname (const char *JOINING_TYPE_NAME)
+     Returns the joining type given by name, e.g.  ‘"D"’, or by long
+     name, e.g.  ‘"Dual Joining’.  This lookup ignores spaces,
+     underscores, or hyphens as word separators and is
+     case-insignificant.
+
+   The following function gives the joining type of every Unicode
+character.
+
+ -- Function: int uc_joining_type (ucs4_t UC)
+     Returns the joining type of a Unicode character.
+
+\1f
+File: libunistring.info,  Node: Joining group,  Prev: Joining type,  Up: Arabic shaping
+
+8.8.2 Joining group of Arabic characters
+----------------------------------------
+
+   The joining group of a character describes how the character’s shape
+is modified in the four contexts of dual-joining characters or in the
+two contexts of right-joining characters.
+
+   The joining group has the following possible values:
+
+ -- Constant: int UC_JOINING_GROUP_NONE
+ -- Constant: int UC_JOINING_GROUP_AIN
+ -- Constant: int UC_JOINING_GROUP_ALAPH
+ -- Constant: int UC_JOINING_GROUP_ALEF
+ -- Constant: int UC_JOINING_GROUP_BEH
+ -- Constant: int UC_JOINING_GROUP_BETH
+ -- Constant: int UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE
+ -- Constant: int UC_JOINING_GROUP_DAL
+ -- Constant: int UC_JOINING_GROUP_DALATH_RISH
+ -- Constant: int UC_JOINING_GROUP_E
+ -- Constant: int UC_JOINING_GROUP_FARSI_YEH
+ -- Constant: int UC_JOINING_GROUP_FE
+ -- Constant: int UC_JOINING_GROUP_FEH
+ -- Constant: int UC_JOINING_GROUP_FINAL_SEMKATH
+ -- Constant: int UC_JOINING_GROUP_GAF
+ -- Constant: int UC_JOINING_GROUP_GAMAL
+ -- Constant: int UC_JOINING_GROUP_HAH
+ -- Constant: int UC_JOINING_GROUP_HE
+ -- Constant: int UC_JOINING_GROUP_HEH
+ -- Constant: int UC_JOINING_GROUP_HEH_GOAL
+ -- Constant: int UC_JOINING_GROUP_HETH
+ -- Constant: int UC_JOINING_GROUP_KAF
+ -- Constant: int UC_JOINING_GROUP_KAPH
+ -- Constant: int UC_JOINING_GROUP_KHAPH
+ -- Constant: int UC_JOINING_GROUP_KNOTTED_HEH
+ -- Constant: int UC_JOINING_GROUP_LAM
+ -- Constant: int UC_JOINING_GROUP_LAMADH
+ -- Constant: int UC_JOINING_GROUP_MEEM
+ -- Constant: int UC_JOINING_GROUP_MIM
+ -- Constant: int UC_JOINING_GROUP_NOON
+ -- Constant: int UC_JOINING_GROUP_NUN
+ -- Constant: int UC_JOINING_GROUP_NYA
+ -- Constant: int UC_JOINING_GROUP_PE
+ -- Constant: int UC_JOINING_GROUP_QAF
+ -- Constant: int UC_JOINING_GROUP_QAPH
+ -- Constant: int UC_JOINING_GROUP_REH
+ -- Constant: int UC_JOINING_GROUP_REVERSED_PE
+ -- Constant: int UC_JOINING_GROUP_SAD
+ -- Constant: int UC_JOINING_GROUP_SADHE
+ -- Constant: int UC_JOINING_GROUP_SEEN
+ -- Constant: int UC_JOINING_GROUP_SEMKATH
+ -- Constant: int UC_JOINING_GROUP_SHIN
+ -- Constant: int UC_JOINING_GROUP_SWASH_KAF
+ -- Constant: int UC_JOINING_GROUP_SYRIAC_WAW
+ -- Constant: int UC_JOINING_GROUP_TAH
+ -- Constant: int UC_JOINING_GROUP_TAW
+ -- Constant: int UC_JOINING_GROUP_TEH_MARBUTA
+ -- Constant: int UC_JOINING_GROUP_TEH_MARBUTA_GOAL
+ -- Constant: int UC_JOINING_GROUP_TETH
+ -- Constant: int UC_JOINING_GROUP_WAW
+ -- Constant: int UC_JOINING_GROUP_YEH
+ -- Constant: int UC_JOINING_GROUP_YEH_BARREE
+ -- Constant: int UC_JOINING_GROUP_YEH_WITH_TAIL
+ -- Constant: int UC_JOINING_GROUP_YUDH
+ -- Constant: int UC_JOINING_GROUP_YUDH_HE
+ -- Constant: int UC_JOINING_GROUP_ZAIN
+ -- Constant: int UC_JOINING_GROUP_ZHAIN
+
+   The following functions implement the association between a joining
+group and its name.
+
+ -- Function: const char * uc_joining_group_name (int JOINING_GROUP)
+     Returns the name of a joining group.
+
+ -- Function: int uc_joining_group_byname (const char
+          *JOINING_GROUP_NAME)
+     Returns the joining group given by name, e.g.  ‘"Teh_Marbuta"’.
+     This lookup ignores spaces, underscores, or hyphens as word
+     separators and is case-insignificant.
+
+   The following function gives the joining group of every Unicode
+character.
+
+ -- Function: int uc_joining_group (ucs4_t UC)
+     Returns the joining group of a Unicode character.
 
 \1f
-File: libunistring.info,  Node: Properties,  Next: Scripts,  Prev: Mirrored character,  Up: unictype.h
+File: libunistring.info,  Node: Properties,  Next: Scripts,  Prev: Arabic shaping,  Up: unictype.h
 
-8.8 Properties
+8.9 Properties
 ==============
 
    This section defines boolean properties of Unicode characters.  This
@@ -2175,8 +2297,8 @@ In other words, the property can be viewed as a subset of the set of
 Unicode characters.
 
    The GNU libunistring library provides two kinds of API for working
-with properties.  The object oriented API uses a type `uc_property_t'
-to designate a property.  In the function-based API, which is a bit more
+with properties.  The object oriented API uses a type ‘uc_property_t’ to
+designate a property.  In the function-based API, which is a bit more
 low level, a property is merely a function.
 
 * Menu:
@@ -2187,7 +2309,7 @@ low level, a property is merely a function.
 \1f
 File: libunistring.info,  Node: Properties as objects,  Next: Properties as functions,  Up: Properties
 
-8.8.1 Properties as objects - the object oriented API
+8.9.1 Properties as objects – the object oriented API
 -----------------------------------------------------
 
    The following type designates a property on Unicode characters.
@@ -2207,7 +2329,7 @@ File: libunistring.info,  Node: Properties as objects,  Next: Properties as func
  -- Constant: uc_property_t UC_PROPERTY_NOT_A_CHARACTER
  -- Constant: uc_property_t UC_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT
  -- Constant: uc_property_t
-UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT
+          UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT
  -- Constant: uc_property_t UC_PROPERTY_DEPRECATED
  -- Constant: uc_property_t UC_PROPERTY_LOGICAL_ORDER_EXCEPTION
  -- Constant: uc_property_t UC_PROPERTY_VARIATION_SELECTOR
@@ -2221,6 +2343,13 @@ UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT
  -- Constant: uc_property_t UC_PROPERTY_LOWERCASE
  -- Constant: uc_property_t UC_PROPERTY_OTHER_LOWERCASE
  -- Constant: uc_property_t UC_PROPERTY_TITLECASE
+ -- Constant: uc_property_t UC_PROPERTY_CASED
+ -- Constant: uc_property_t UC_PROPERTY_CASE_IGNORABLE
+ -- Constant: uc_property_t UC_PROPERTY_CHANGES_WHEN_LOWERCASED
+ -- Constant: uc_property_t UC_PROPERTY_CHANGES_WHEN_UPPERCASED
+ -- Constant: uc_property_t UC_PROPERTY_CHANGES_WHEN_TITLECASED
+ -- Constant: uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEFOLDED
+ -- Constant: uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEMAPPED
  -- Constant: uc_property_t UC_PROPERTY_SOFT_DOTTED
 
    The following properties are related to identifiers.
@@ -2307,17 +2436,21 @@ UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT
 
  -- Function: uc_property_t uc_property_byname (const char
           *PROPERTY_NAME)
-     Returns the property given by name, e.g. `"White space"'.  If a
+     Returns the property given by name, e.g.  ‘"White space"’.  If a
      property with the given name exists, the result will satisfy the
-     `uc_property_is_valid' predicate.  Otherwise the result will not
+     ‘uc_property_is_valid’ predicate.  Otherwise the result will not
      satisfy this predicate and must not be passed to functions that
-     expect an `uc_property_t' argument.
+     expect an ‘uc_property_t’ argument.
+
+     This lookup ignores spaces, underscores, or hyphens as word
+     separators, is case-insignificant, and supports the aliases listed
+     in Unicode’s ‘PropertyAliases.txt’ file.
 
      This function references a big table of all predefined properties.
      Its use can significantly increase the size of your application.
 
  -- Function: bool uc_property_is_valid (uc_property_t property)
-     Returns `true' when the given property is valid, or `false'
+     Returns ‘true’ when the given property is valid, or ‘false’
      otherwise.
 
    The following function views a property as a set of Unicode
@@ -2329,7 +2462,7 @@ characters.
 \1f
 File: libunistring.info,  Node: Properties as functions,  Prev: Properties as objects,  Up: Properties
 
-8.8.2 Properties as functions - the functional API
+8.9.2 Properties as functions – the functional API
 --------------------------------------------------
 
    The following are general properties.
@@ -2355,6 +2488,13 @@ File: libunistring.info,  Node: Properties as functions,  Prev: Properties as ob
  -- Function: bool uc_is_property_lowercase (ucs4_t UC)
  -- Function: bool uc_is_property_other_lowercase (ucs4_t UC)
  -- Function: bool uc_is_property_titlecase (ucs4_t UC)
+ -- Function: bool uc_is_property_cased (ucs4_t UC)
+ -- Function: bool uc_is_property_case_ignorable (ucs4_t UC)
+ -- Function: bool uc_is_property_changes_when_lowercased (ucs4_t UC)
+ -- Function: bool uc_is_property_changes_when_uppercased (ucs4_t UC)
+ -- Function: bool uc_is_property_changes_when_titlecased (ucs4_t UC)
+ -- Function: bool uc_is_property_changes_when_casefolded (ucs4_t UC)
+ -- Function: bool uc_is_property_changes_when_casemapped (ucs4_t UC)
  -- Function: bool uc_is_property_soft_dotted (ucs4_t UC)
 
    The following properties are related to identifiers.
@@ -2440,8 +2580,8 @@ File: libunistring.info,  Node: Properties as functions,  Prev: Properties as ob
 \1f
 File: libunistring.info,  Node: Scripts,  Next: Blocks,  Prev: Properties,  Up: unictype.h
 
-8.9 Scripts
-===========
+8.10 Scripts
+============
 
    The Unicode characters are subdivided into scripts.
 
@@ -2452,17 +2592,17 @@ File: libunistring.info,  Node: Scripts,  Next: Blocks,  Prev: Properties,  Up:
      allocated read-only data.  It contains the following fields:
           const char *name;
 
-     The `name' field contains the name of the script.
+     The ‘name’ field contains the name of the script.
 
    The following functions look up a script.
 
  -- Function: const uc_script_t * uc_script (ucs4_t UC)
-     Returns the script of a Unicode character.  Returns NULL if UC
-     does not belong to any script.
+     Returns the script of a Unicode character.  Returns NULL if UC does
+     not belong to any script.
 
  -- Function: const uc_script_t * uc_script_byname (const char
           *SCRIPT_NAME)
-     Returns the script given by its name, e.g. `"HAN"'.  Returns NULL
+     Returns the script given by its name, e.g.  ‘"HAN"’.  Returns NULL
      if a script with the given name does not exist.
 
    The following function views a script as a set of Unicode characters.
@@ -2475,12 +2615,12 @@ File: libunistring.info,  Node: Scripts,  Next: Blocks,  Prev: Properties,  Up:
  -- Function: void uc_all_scripts (const uc_script_t **SCRIPTS, size_t
           *COUNT)
      Get the list of all scripts.  Stores a pointer to an array of all
-     scripts in `*SCRIPTS' and the length of this array in `*COUNT'.
+     scripts in ‘*SCRIPTS’ and the length of this array in ‘*COUNT’.
 
 \1f
 File: libunistring.info,  Node: Blocks,  Next: ISO C and Java syntax,  Prev: Scripts,  Up: unictype.h
 
-8.10 Blocks
+8.11 Blocks
 ===========
 
    The Unicode characters are subdivided into blocks.  A block is an
@@ -2495,11 +2635,11 @@ interval of Unicode code points.
           ucs4_t end;
           const char *name;
 
-     The `start' field is the first Unicode code point in the block.
+     The ‘start’ field is the first Unicode code point in the block.
 
-     The `end' field is the last Unicode code point in the block.
+     The ‘end’ field is the last Unicode code point in the block.
 
-     The `name' field is the name of the block.
+     The ‘name’ field is the name of the block.
 
    The following function looks up a block.
 
@@ -2516,26 +2656,26 @@ interval of Unicode code points.
  -- Function: void uc_all_blocks (const uc_block_t **BLOCKS, size_t
           *COUNT)
      Get the list of all blocks.  Stores a pointer to an array of all
-     blocks in `*BLOCKS' and the length of this array in `*COUNT'.
+     blocks in ‘*BLOCKS’ and the length of this array in ‘*COUNT’.
 
 \1f
 File: libunistring.info,  Node: ISO C and Java syntax,  Next: Classifications like in ISO C,  Prev: Blocks,  Up: unictype.h
 
-8.11 ISO C and Java syntax
+8.12 ISO C and Java syntax
 ==========================
 
    The following properties are taken from language standards.  The
 supported language standards are ISO C 99 and Java.
 
  -- Function: bool uc_is_c_whitespace (ucs4_t UC)
-     Tests whether a Unicode character is considered whitespace in ISO
-     99.
+     Tests whether a Unicode character is considered whitespace in ISO C
+     99.
 
  -- Function: bool uc_is_java_whitespace (ucs4_t UC)
      Tests whether a Unicode character is considered whitespace in Java.
 
-   The following enumerated values are the possible return values of
-the functions `uc_c_ident_category' and `uc_java_ident_category'.
+   The following enumerated values are the possible return values of the
+functions ‘uc_c_ident_category’ and ‘uc_java_ident_category’.
 
  -- Constant: int UC_IDENTIFIER_START
      This return value means that the given character is valid as first
@@ -2546,12 +2686,12 @@ the functions `uc_c_ident_category' and `uc_java_ident_category'.
      subsequent character only.
 
  -- Constant: int UC_IDENTIFIER_INVALID
-     This return value means that the given character is not valid in
-     an identifier.
+     This return value means that the given character is not valid in an
+     identifier.
 
  -- Constant: int UC_IDENTIFIER_IGNORABLE
-     This return value (only for Java) means that the given character
-     is ignorable.
+     This return value (only for Java) means that the given character is
+     ignorable.
 
    The following function determine whether a given character can be a
 constituent of an identifier in the given programming language.
@@ -2567,25 +2707,25 @@ constituent of an identifier in the given programming language.
 \1f
 File: libunistring.info,  Node: Classifications like in ISO C,  Prev: ISO C and Java syntax,  Up: unictype.h
 
-8.12 Classifications like in ISO C
+8.13 Classifications like in ISO C
 ==================================
 
    The following character classifications mimic those declared in the
-ISO C header files `<ctype.h>' and `<wctype.h>'.  These functions are
+ISO C header files ‘<ctype.h>’ and ‘<wctype.h>’.  These functions are
 deprecated, because this set of functions was designed with ASCII in
 mind and cannot reflect the more diverse reality of the Unicode
 character set.  But they can be a quick-and-dirty porting aid when
-migrating from `wchar_t' APIs to Unicode strings.
+migrating from ‘wchar_t’ APIs to Unicode strings.
 
  -- Function: bool uc_is_alnum (ucs4_t UC)
-     Tests for any character for which `uc_is_alpha' or `uc_is_digit' is
+     Tests for any character for which ‘uc_is_alpha’ or ‘uc_is_digit’ is
      true.
 
  -- Function: bool uc_is_alpha (ucs4_t UC)
-     Tests for any character for which `uc_is_upper' or `uc_is_lower' is
+     Tests for any character for which ‘uc_is_upper’ or ‘uc_is_lower’ is
      true, or any character that is one of a locale-specific set of
-     characters for which none of `uc_is_cntrl', `uc_is_digit',
-     `uc_is_punct', or `uc_is_space' is true.
+     characters for which none of ‘uc_is_cntrl’, ‘uc_is_digit’,
+     ‘uc_is_punct’, or ‘uc_is_space’ is true.
 
  -- Function: bool uc_is_cntrl (ucs4_t UC)
      Tests for any control character.
@@ -2595,13 +2735,13 @@ migrating from `wchar_t' APIs to Unicode strings.
      character.
 
  -- Function: bool uc_is_graph (ucs4_t UC)
-     Tests for any character for which `uc_is_print' is true and
-     `uc_is_space' is false.
+     Tests for any character for which ‘uc_is_print’ is true and
+     ‘uc_is_space’ is false.
 
  -- Function: bool uc_is_lower (ucs4_t UC)
      Tests for any character that corresponds to a lowercase letter or
      is one of a locale-specific set of characters for which none of
-     `uc_is_cntrl', `uc_is_digit', `uc_is_punct', or `uc_is_space' is
+     ‘uc_is_cntrl’, ‘uc_is_digit’, ‘uc_is_punct’, or ‘uc_is_space’ is
      true.
 
  -- Function: bool uc_is_print (ucs4_t UC)
@@ -2609,18 +2749,18 @@ migrating from `wchar_t' APIs to Unicode strings.
 
  -- Function: bool uc_is_punct (ucs4_t UC)
      Tests for any printing character that is one of a locale-specific
-     set of characters for which neither `uc_is_space' nor
-     `uc_is_alnum' is true.
+     set of characters for which neither ‘uc_is_space’ nor ‘uc_is_alnum’
+     is true.
 
  -- Function: bool uc_is_space (ucs4_t UC)
-     Test for any character that corresponds to a locale-specific set
-     of characters for which none of `uc_is_alnum', `uc_is_graph', or
-     `uc_is_punct' is true.
+     Test for any character that corresponds to a locale-specific set of
+     characters for which none of ‘uc_is_alnum’, ‘uc_is_graph’, or
+     ‘uc_is_punct’ is true.
 
  -- Function: bool uc_is_upper (ucs4_t UC)
      Tests for any character that corresponds to an uppercase letter or
      is one of a locale-specific set of characters for which none of
-     `uc_is_cntrl', `uc_is_digit', `uc_is_punct', or `uc_is_space' is
+     ‘uc_is_cntrl’, ‘uc_is_digit’, ‘uc_is_punct’, or ‘uc_is_space’ is
      true.
 
  -- Function: bool uc_is_xdigit (ucs4_t UC)
@@ -2630,12 +2770,12 @@ migrating from `wchar_t' APIs to Unicode strings.
  -- Function: bool uc_is_blank (ucs4_t UC)
      Tests for any character that corresponds to a standard blank
      character or a locale-specific set of characters for which
-     `uc_is_alnum' is false.
+     ‘uc_is_alnum’ is false.
 
 \1f
-File: libunistring.info,  Node: uniwidth.h,  Next: uniwbrk.h,  Prev: unictype.h,  Up: Top
+File: libunistring.info,  Node: uniwidth.h,  Next: unigbrk.h,  Prev: unictype.h,  Up: Top
 
-9 Display width `<uniwidth.h>'
+9 Display width ‘<uniwidth.h>’
 ******************************
 
    This include file declares functions that return the display width,
@@ -2643,16 +2783,16 @@ measured in columns, of characters or strings, when output to a device
 that uses non-proportional fonts.
 
    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
+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, there are scripts with complex rendering,
 like the Indic scripts.  For these scripts, there is no such concept as
 non-proportional fonts.  Therefore the results of these functions
-usually work fine on most scripts and on most characters but can fail
-to represent the actual display width.
+usually work fine on most scripts and on most characters but can fail to
+represent the actual display width.
 
    These functions are locale dependent.  The ENCODING argument
-identifies the encoding (e.g. `"ISO-8859-2"' for Polish).
+identifies the encoding (e.g.  ‘"ISO-8859-2"’ for Polish).
 
  -- Function: int uc_width (ucs4_t UC, const char *ENCODING)
      Determines and returns the number of column positions required for
@@ -2666,8 +2806,8 @@ identifies the encoding (e.g. `"ISO-8859-2"' for Polish).
  -- Function: int u32_width (const uint32_t *S, size_t N, const char
           *ENCODING)
      Determines and returns the number of column positions required for
-     first N units (or fewer if S ends before this) in S.  This
-     function ignores control characters in the string.
+     first N units (or fewer if S ends before this) in S.  This function
+     ignores control characters in the string.
 
  -- Function: int u8_strwidth (const uint8_t *S, const char *ENCODING)
  -- Function: int u16_strwidth (const uint16_t *S, const char *ENCODING)
@@ -2676,16 +2816,149 @@ identifies the encoding (e.g. `"ISO-8859-2"' for Polish).
      S.  This function ignores control characters in the string.
 
 \1f
-File: libunistring.info,  Node: uniwbrk.h,  Next: unilbrk.h,  Prev: uniwidth.h,  Up: Top
+File: libunistring.info,  Node: unigbrk.h,  Next: uniwbrk.h,  Prev: uniwidth.h,  Up: Top
+
+10 Grapheme cluster breaks in strings ‘<unigbrk.h>’
+***************************************************
+
+   This include file declares functions for determining where in a
+string “grapheme clusters” start and end.  A “grapheme cluster” is an
+approximation to a user-perceived character, which sometimes corresponds
+to multiple Unicode characters.  Editing operations such as mouse
+selection, cursor movement, and backspacing often operate on grapheme
+clusters as units, not on individual characters.
+
+   Some grapheme clusters are built from a base character and a
+combining character.  The letter ‘é’, for example, is most commonly
+represented in Unicode as a single character U+00E8 LATIN SMALL LETTER E
+WITH ACUTE. It is, however, equally valid to use the pair of characters
+U+0065 LATIN SMALL LETTER E followed by U+0301 COMBINING ACUTE ACCENT.
+Since the user would perceive this pair of characters as a single
+character, they would be grouped into a single grapheme cluster.
+
+   But there are also grapheme clusters that consist of several base
+characters.  For example, a Devanagari letter and a Devanagari vowel
+sign that follows it may form a grapheme cluster.  Similarly, some pairs
+of Thai characters and Hangul syllables (formed by two or three Hangul
+characters) are grapheme clusters.
+
+* Menu:
+
+* Grapheme cluster breaks in a string::
+* Grapheme cluster break property::
+
+\1f
+File: libunistring.info,  Node: Grapheme cluster breaks in a string,  Next: Grapheme cluster break property,  Up: unigbrk.h
+
+10.1 Grapheme cluster breaks in a string
+========================================
+
+   The following functions find a single boundary between grapheme
+clusters in a string.
+
+ -- Function: void u8_grapheme_next (const uint8_t *S, const uint8_t
+          *END)
+ -- Function: void u16_grapheme_next (const uint16_t *S, const uint16_t
+          *END)
+ -- Function: void u32_grapheme_next (const uint32_t *S, const uint32_t
+          *END)
+     Returns the start of the next grapheme cluster following S, or END
+     if no grapheme cluster break is encountered before it.  Returns
+     NULL if and only if ‘S == END’.
+
+ -- Function: void u8_grapheme_prev (const uint8_t *S, const uint8_t
+          *START)
+ -- Function: void u16_grapheme_prev (const uint16_t *S, const uint16_t
+          *START)
+ -- Function: void u32_grapheme_prev (const uint32_t *S, const uint32_t
+          *START)
+     Returns the start of the grapheme cluster preceding S, or START if
+     no grapheme cluster break is encountered before it.  Returns NULL
+     if and only if ‘S == START’.
+
+   The following functions determine all of the grapheme cluster
+boundaries in a string.
+
+ -- Function: void u8_grapheme_breaks (const uint8_t *S, size_t N, char
+          *P)
+ -- Function: void u16_grapheme_breaks (const uint16_t *S, size_t N,
+          char *P)
+ -- Function: void u32_grapheme_breaks (const uint32_t *S, size_t N,
+          char *P)
+ -- Function: void ulc_grapheme_breaks (const char *S, size_t N, char
+          *P)
+     Determines the grapheme cluster break points in S, an array of N
+     units, and stores the result at ‘P[0..N-1]’.
+     ‘P[i] = 1’
+          means that there is a grapheme cluster boundary between
+          ‘S[i-1]’ and ‘S[i]’.
+     ‘P[i] = 0’
+          means that ‘S[i-1]’ and ‘S[i]’ are part of the same grapheme
+          cluster.
+     ‘P[0]’ is always set to 1, because there is always a grapheme
+     cluster break at start of text.
+
+\1f
+File: libunistring.info,  Node: Grapheme cluster break property,  Prev: Grapheme cluster breaks in a string,  Up: unigbrk.h
 
-10 Word breaks in strings `<uniwbrk.h>'
+10.2 Grapheme cluster break property
+====================================
+
+   This is a more low-level API. The grapheme cluster break property is
+a property defined in Unicode Standard Annex #29, section “Grapheme
+Cluster Boundaries”, see
+<http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries>.  It
+is used for determining the grapheme cluster breaks in a string.
+
+   The following are the possible values of the grapheme cluster break
+property.  More values may be added in the future.
+
+ -- Constant: int GBP_OTHER
+ -- Constant: int GBP_CR
+ -- Constant: int GBP_LF
+ -- Constant: int GBP_CONTROL
+ -- Constant: int GBP_EXTEND
+ -- Constant: int GBP_PREPEND
+ -- Constant: int GBP_SPACINGMARK
+ -- Constant: int GBP_L
+ -- Constant: int GBP_V
+ -- Constant: int GBP_T
+ -- Constant: int GBP_LV
+ -- Constant: int GBP_LVT
+
+   The following function looks up the grapheme cluster break property
+of a character.
+
+ -- Function: int uc_graphemeclusterbreak_property (ucs4_t UC)
+     Returns the Grapheme_Cluster_Break property of a Unicode character.
+
+   The following function determines whether there is a grapheme cluster
+break between two Unicode characters.  It is the primitive upon which
+the higher-level functions in the previous section are directly based.
+
+ -- Function: bool uc_is_grapheme_break (ucs4_t A, ucs4_t B)
+     Returns true if there is an grapheme cluster boundary between
+     Unicode characters A and B.
+
+     There is always a grapheme cluster break at the start or end of
+     text.  You can specify zero for A or B to indicate start of text or
+     end of text, respectively.
+
+     This implements the extended (not legacy) grapheme cluster rules
+     described in the Unicode standard, because the standard says that
+     they are preferred.
+
+\1f
+File: libunistring.info,  Node: uniwbrk.h,  Next: unilbrk.h,  Prev: unigbrk.h,  Up: Top
+
+11 Word breaks in strings ‘<uniwbrk.h>’
 ***************************************
 
    This include file declares functions for determining where in a
-string "words" start and end.  Here "words" are not necessarily the
-same as entities that can be looked up in dictionaries, but rather
-groups of consecutive characters that should not be split by text
-processing operations.
+string “words” start and end.  Here “words” are not necessarily the same
+as entities that can be looked up in dictionaries, but rather groups of
+consecutive characters that should not be split by text processing
+operations.
 
 * Menu:
 
@@ -2695,7 +2968,7 @@ processing operations.
 \1f
 File: libunistring.info,  Node: Word breaks in a string,  Next: Word break property,  Up: uniwbrk.h
 
-10.1 Word breaks in a string
+11.1 Word breaks in a string
 ============================
 
    The following functions determine the word breaks in a string.
@@ -2705,27 +2978,26 @@ File: libunistring.info,  Node: Word breaks in a string,  Next: Word break prope
  -- Function: void u32_wordbreaks (const uint32_t *S, size_t N, char *P)
  -- Function: void ulc_wordbreaks (const char *S, size_t N, char *P)
      Determines the word break points in S, an array of N units, and
-     stores the result at `P[0..N-1]'.
-    `P[i] = 1'
-          means that there is a word boundary between `S[i-1]' and
-          `S[i]'.
-
-    `P[i] = 0'
-          means that `S[i-1]' and `S[i]' must not be separated.
-     `P[0]' is always set to 0.  If an application wants to consider a
+     stores the result at ‘P[0..N-1]’.
+     ‘P[i] = 1’
+          means that there is a word boundary between ‘S[i-1]’ and
+          ‘S[i]’.
+     ‘P[i] = 0’
+          means that ‘S[i-1]’ and ‘S[i]’ must not be separated.
+     ‘P[0]’ is always set to 0.  If an application wants to consider a
      word break to be present at the beginning of the string (before
-     `S[0]') or at the end of the string (after `S[0..N-1]'), it has to
+     ‘S[0]’) or at the end of the string (after ‘S[0..N-1]’), it has to
      treat these cases explicitly.
 
 \1f
 File: libunistring.info,  Node: Word break property,  Prev: Word breaks in a string,  Up: uniwbrk.h
 
-10.2 Word break property
+11.2 Word break property
 ========================
 
-   This is a more low-level API.  The word break property is a property
-defined in Unicode Standard Annex #29, section "Word Boundaries", see
-`http://www.unicode.org/reports/tr29/#Word_Boundaries'.  It is used for
+   This is a more low-level API. The word break property is a property
+defined in Unicode Standard Annex #29, section “Word Boundaries”, see
+<http://www.unicode.org/reports/tr29/#Word_Boundaries>.  It is used for
 determining the word breaks in a string.
 
    The following are the possible values of the word break property.
@@ -2754,7 +3026,7 @@ character.
 \1f
 File: libunistring.info,  Node: unilbrk.h,  Next: uninorm.h,  Prev: uniwbrk.h,  Up: Top
 
-11 Line breaking `<unilbrk.h>'
+12 Line breaking ‘<unilbrk.h>’
 ******************************
 
    This include file declares functions for determining where in a
@@ -2762,49 +3034,49 @@ string line breaks could or should be introduced, in order to make the
 displayed string fit into a column of given width.
 
    These functions are locale dependent.  The ENCODING argument
-identifies the encoding (e.g. `"ISO-8859-2"' for Polish).
+identifies the encoding (e.g.  ‘"ISO-8859-2"’ for Polish).
 
    The following enumerated values indicate whether, at a given
 position, a line break is possible or not.  Given an string S as an
-array `S[0..N-1]' and a position I, the values have the following
+array ‘S[0..N-1]’ and a position I, the values have the following
 meanings:
 
  -- Constant: int UC_BREAK_MANDATORY
-     This value indicates that `S[I]' is a line break character.
+     This value indicates that ‘S[I]’ is a line break character.
 
  -- Constant: int UC_BREAK_POSSIBLE
      This value indicates that a line break may be inserted between
-     `S[I-1]' and `S[I]'.
+     ‘S[I-1]’ and ‘S[I]’.
 
  -- Constant: int UC_BREAK_HYPHENATION
-     This value indicates that a hyphen and a line break may be
-     inserted between `S[I-1]' and `S[I]'.  But beware of language
-     dependent hyphenation rules.
+     This value indicates that a hyphen and a line break may be inserted
+     between ‘S[I-1]’ and ‘S[I]’.  But beware of language dependent
+     hyphenation rules.
 
  -- Constant: int UC_BREAK_PROHIBITED
-     This value indicates that `S[I-1]' and `S[I]' must not be
+     This value indicates that ‘S[I-1]’ and ‘S[I]’ must not be
      separated.
 
  -- Constant: int UC_BREAK_UNDEFINED
-     This value is not used as a return value; rather, in the
-     overriding argument of the `u*_width_linebreaks' functions, it
-     indicates the absence of an override.
+     This value is not used as a return value; rather, in the overriding
+     argument of the ‘u*_width_linebreaks’ functions, it indicates the
+     absence of an override.
 
    The following functions determine the positions at which line breaks
 are possible.
 
  -- Function: void u8_possible_linebreaks (const uint8_t *S, size_t N,
           const char *ENCODING, char *P)
- -- Function: void u16_possible_linebreaks (const uint16_t *S, size_t
-          N, const char *ENCODING, char *P)
- -- Function: void u32_possible_linebreaks (const uint32_t *S, size_t
-          N, const char *ENCODING, char *P)
+ -- Function: void u16_possible_linebreaks (const uint16_t *S, size_t N,
+          const char *ENCODING, char *P)
+ -- Function: void u32_possible_linebreaks (const uint32_t *S, size_t N,
+          const char *ENCODING, char *P)
  -- Function: void ulc_possible_linebreaks (const char *S, size_t N,
           const char *ENCODING, char *P)
      Determines the line break points in S, and stores the result at
-     `P[0..N-1]'.  Every `P[I]' is assigned one of the values
-     `UC_BREAK_MANDATORY', `UC_BREAK_POSSIBLE', `UC_BREAK_HYPHENATION',
-     `UC_BREAK_PROHIBITED'.
+     ‘P[0..N-1]’.  Every ‘P[I]’ is assigned one of the values
+     ‘UC_BREAK_MANDATORY’, ‘UC_BREAK_POSSIBLE’, ‘UC_BREAK_HYPHENATION’,
+     ‘UC_BREAK_PROHIBITED’.
 
    The following functions determine where line breaks should be
 inserted so that each line fits in a given width, when output to a
@@ -2813,47 +3085,47 @@ device that uses non-proportional fonts.
  -- Function: int u8_width_linebreaks (const uint8_t *S, size_t N, int
           WIDTH, int START_COLUMN, int AT_END_COLUMNS, const char
           *OVERRIDE, const char *ENCODING, char *P)
- -- Function: int u16_width_linebreaks (const uint16_t *S, size_t N,
-          int WIDTH, int START_COLUMN, int AT_END_COLUMNS, const char
+ -- Function: int u16_width_linebreaks (const uint16_t *S, size_t N, int
+          WIDTH, int START_COLUMN, int AT_END_COLUMNS, const char
           *OVERRIDE, const char *ENCODING, char *P)
- -- Function: int u32_width_linebreaks (const uint32_t *S, size_t N,
-          int WIDTH, int START_COLUMN, int AT_END_COLUMNS, const char
+ -- Function: int u32_width_linebreaks (const uint32_t *S, size_t N, int
+          WIDTH, int START_COLUMN, int AT_END_COLUMNS, const char
           *OVERRIDE, const char *ENCODING, char *P)
  -- Function: int ulc_width_linebreaks (const char *S, size_t N, int
           WIDTH, int START_COLUMN, int AT_END_COLUMNS, const char
           *OVERRIDE, const char *ENCODING, char *P)
      Chooses the best line breaks, assuming that every character
-     occupies a width given by the `uc_width' function (see *note
+     occupies a width given by the ‘uc_width’ function (see *note
      uniwidth.h::).
 
-     The string is `S[0..N-1]'.
+     The string is ‘S[0..N-1]’.
 
      The maximum number of columns per line is given as WIDTH.  The
      starting column of the string is given as START_COLUMN.  If the
-     algorithm shall keep room after the last piece, this amount of
-     room can be given as AT_END_COLUMNS.
+     algorithm shall keep room after the last piece, this amount of room
+     can be given as AT_END_COLUMNS.
 
-     OVERRIDE is an optional override; if `OVERRIDE[I] !=
-     UC_BREAK_UNDEFINED', `OVERRIDE[I]' takes precedence over `P[I]' as
-     returned by the `u*_possible_linebreaks' function.
+     OVERRIDE is an optional override; if OVERRIDE[I] !=
+     UC_BREAK_UNDEFINED’, ‘OVERRIDE[I]’ takes precedence over ‘P[I]’ as
+     returned by the ‘u*_possible_linebreaks’ function.
 
-     The given ENCODING is used for disambiguating widths in `uc_width'.
+     The given ENCODING is used for disambiguating widths in ‘uc_width’.
 
      Returns the column after the end of the string, and stores the
-     result at `P[0..N-1]'.  Every `P[I]' is assigned one of the values
-     `UC_BREAK_MANDATORY', `UC_BREAK_POSSIBLE', `UC_BREAK_HYPHENATION',
-     `UC_BREAK_PROHIBITED'.  Here the value `UC_BREAK_POSSIBLE'
+     result at ‘P[0..N-1]’.  Every ‘P[I]’ is assigned one of the values
+     ‘UC_BREAK_MANDATORY’, ‘UC_BREAK_POSSIBLE’, ‘UC_BREAK_HYPHENATION’,
+     ‘UC_BREAK_PROHIBITED’.  Here the value ‘UC_BREAK_POSSIBLE’
      indicates that a line break _should_ be inserted.
 
 \1f
 File: libunistring.info,  Node: uninorm.h,  Next: unicase.h,  Prev: unilbrk.h,  Up: Top
 
-12 Normalization forms (composition and decomposition) `<uninorm.h>'
+13 Normalization forms (composition and decomposition) ‘<uninorm.h>’
 ********************************************************************
 
    This include file defines functions for transforming Unicode strings
-to one of the four normal forms, known as NFC, NFD, NKFC, NFKD.  These
-transformations involve decomposition and -- for NFC and NFKC --
+to one of the four normal forms, known as NFC, NFD, NKFC, NFKD. These
+transformations involve decomposition and — for NFC and NFKC —
 composition of Unicode characters.
 
 * Menu:
@@ -2867,7 +3139,7 @@ composition of Unicode characters.
 \1f
 File: libunistring.info,  Node: Decomposition of characters,  Next: Composition of characters,  Up: uninorm.h
 
-12.1 Decomposition of Unicode characters
+13.1 Decomposition of Unicode characters
 ========================================
 
    The following enumerated values are the possible types of
@@ -2877,70 +3149,70 @@ decomposition of a Unicode character.
      Denotes canonical decomposition.
 
  -- Constant: int UC_DECOMP_FONT
-     UCD marker: `<font>'.  Denotes a font variant (e.g. a blackletter
+     UCD marker: ‘<font>’.  Denotes a font variant (e.g.  a blackletter
      form).
 
  -- Constant: int UC_DECOMP_NOBREAK
-     UCD marker: `<noBreak>'.  Denotes a no-break version of a space or
+     UCD marker: ‘<noBreak>’.  Denotes a no-break version of a space or
      hyphen.
 
  -- Constant: int UC_DECOMP_INITIAL
-     UCD marker: `<initial>'.  Denotes an initial presentation form
+     UCD marker: ‘<initial>’.  Denotes an initial presentation form
      (Arabic).
 
  -- Constant: int UC_DECOMP_MEDIAL
-     UCD marker: `<medial>'.  Denotes a medial presentation form
+     UCD marker: ‘<medial>’.  Denotes a medial presentation form
      (Arabic).
 
  -- Constant: int UC_DECOMP_FINAL
-     UCD marker: `<final>'.  Denotes a final presentation form (Arabic).
+     UCD marker: ‘<final>’.  Denotes a final presentation form (Arabic).
 
  -- Constant: int UC_DECOMP_ISOLATED
-     UCD marker: `<isolated>'.  Denotes an isolated presentation form
+     UCD marker: ‘<isolated>’.  Denotes an isolated presentation form
      (Arabic).
 
  -- Constant: int UC_DECOMP_CIRCLE
-     UCD marker: `<circle>'.  Denotes an encircled form.
+     UCD marker: ‘<circle>’.  Denotes an encircled form.
 
  -- Constant: int UC_DECOMP_SUPER
-     UCD marker: `<super>'.  Denotes a superscript form.
+     UCD marker: ‘<super>’.  Denotes a superscript form.
 
  -- Constant: int UC_DECOMP_SUB
-     UCD marker: `<sub>'.  Denotes a subscript form.
+     UCD marker: ‘<sub>’.  Denotes a subscript form.
 
  -- Constant: int UC_DECOMP_VERTICAL
-     UCD marker: `<vertical>'.  Denotes a vertical layout presentation
+     UCD marker: ‘<vertical>’.  Denotes a vertical layout presentation
      form.
 
  -- Constant: int UC_DECOMP_WIDE
-     UCD marker: `<wide>'.  Denotes a wide (or zenkaku) compatibility
+     UCD marker: ‘<wide>’.  Denotes a wide (or zenkaku) compatibility
      character.
 
  -- Constant: int UC_DECOMP_NARROW
-     UCD marker: `<narrow>'.  Denotes a narrow (or hankaku)
+     UCD marker: ‘<narrow>’.  Denotes a narrow (or hankaku)
      compatibility character.
 
  -- Constant: int UC_DECOMP_SMALL
-     UCD marker: `<small>'.  Denotes a small variant form (CNS
+     UCD marker: ‘<small>’.  Denotes a small variant form (CNS
      compatibility).
 
  -- Constant: int UC_DECOMP_SQUARE
-     UCD marker: `<square>'.  Denotes a CJK squared font variant.
+     UCD marker: ‘<square>’.  Denotes a CJK squared font variant.
 
  -- Constant: int UC_DECOMP_FRACTION
-     UCD marker: `<fraction>'.  Denotes a vulgar fraction form.
+     UCD marker: ‘<fraction>’.  Denotes a vulgar fraction form.
 
  -- Constant: int UC_DECOMP_COMPAT
-     UCD marker: `<compat>'.  Denotes an otherwise unspecified
+     UCD marker: ‘<compat>’.  Denotes an otherwise unspecified
      compatibility character.
 
-   The following constant denotes the maximum size of decomposition of
-single Unicode character.
+   The following constant denotes the maximum size of decomposition of a
+single Unicode character.
 
  -- Macro: unsigned int UC_DECOMPOSITION_MAX_LENGTH
      This macro expands to a constant that is the required size of
-     buffer passed to the `uc_decomposition' and
-     `uc_canonical_decomposition' functions.
+     buffer passed to the ‘uc_decomposition’ and
+     ‘uc_canonical_decomposition’ functions.
 
    The following functions decompose a Unicode character.
 
@@ -2948,25 +3220,25 @@ a single Unicode character.
           *DECOMPOSITION)
      Returns the character decomposition mapping of the Unicode
      character UC.  DECOMPOSITION must point to an array of at least
-     `UC_DECOMPOSITION_MAX_LENGTH' `ucs_t' elements.
+     ‘UC_DECOMPOSITION_MAX_LENGTH’ ‘ucs_t’ elements.
 
-     When a decomposition exists, `DECOMPOSITION[0..N-1]' and
-     `*DECOMP_TAG' are filled and N is returned.  Otherwise -1 is
+     When a decomposition exists, ‘DECOMPOSITION[0..N-1]’ and
+     ‘*DECOMP_TAG’ are filled and N is returned.  Otherwise -1 is
      returned.
 
  -- Function: int uc_canonical_decomposition (ucs4_t UC, ucs4_t
           *DECOMPOSITION)
      Returns the canonical character decomposition mapping of the
      Unicode character UC.  DECOMPOSITION must point to an array of at
-     least `UC_DECOMPOSITION_MAX_LENGTH' `ucs_t' elements.
+     least ‘UC_DECOMPOSITION_MAX_LENGTH’ ‘ucs_t’ elements.
 
-     When a decomposition exists, `DECOMPOSITION[0..N-1]' is filled and
+     When a decomposition exists, ‘DECOMPOSITION[0..N-1]’ is filled and
      N is returned.  Otherwise -1 is returned.
 
 \1f
 File: libunistring.info,  Node: Composition of characters,  Next: Normalization of strings,  Prev: Decomposition of characters,  Up: uninorm.h
 
-12.2 Composition of Unicode characters
+13.2 Composition of Unicode characters
 ======================================
 
    The following function composes a Unicode character from two Unicode
@@ -2980,20 +3252,20 @@ characters.
      otherwise.
 
      Not all decompositions can be recombined using this function.  See
-     the Unicode file `CompositionExclusions.txt' for details.
+     the Unicode file ‘CompositionExclusions.txt’ for details.
 
 \1f
 File: libunistring.info,  Node: Normalization of strings,  Next: Normalizing comparisons,  Prev: Composition of characters,  Up: uninorm.h
 
-12.3 Normalization of strings
+13.3 Normalization of strings
 =============================
 
    The Unicode standard defines four normalization forms for Unicode
 strings.  The following type is used to denote a normalization form.
 
  -- Type: uninorm_t
-     An object of type `uninorm_t' denotes a Unicode normalization form.
-     This is a scalar type; its values can be compared with `=='.
+     An object of type ‘uninorm_t’ denotes a Unicode normalization form.
+     This is a scalar type; its values can be compared with ‘==’.
 
    The following constants denote the four normalization forms.
 
@@ -3011,7 +3283,7 @@ strings.  The following type is used to denote a normalization form.
      Normalization form KC: compatibility decomposition, then canonical
      composition.
 
-   The following functions operate on `uninorm_t' objects.
+   The following functions operate on ‘uninorm_t’ objects.
 
  -- Function: bool uninorm_is_compat_decomposing (uninorm_t NF)
      Tests whether the normalization form NF does compatibility
@@ -3022,24 +3294,24 @@ strings.  The following type is used to denote a normalization form.
      composition.
 
  -- Function: uninorm_t uninorm_decomposing_form (uninorm_t NF)
-     Returns the decomposing variant of the normalization form NF.
-     This maps NFC,NFD -> NFD and NFKC,NFKD -> NFKD.
+     Returns the decomposing variant of the normalization form NF.  This
+     maps NFC,NFD → NFD and NFKC,NFKD → NFKD.
 
    The following functions apply a Unicode normalization form to a
 Unicode string.
 
  -- Function: uint8_t * u8_normalize (uninorm_t NF, const uint8_t *S,
           size_t N, uint8_t *RESULTBUF, size_t *LENGTHP)
- -- Function: uint16_t * u16_normalize (uninorm_t NF, const uint16_t
-          *S, size_t N, uint16_t *RESULTBUF, size_t *LENGTHP)
- -- Function: uint32_t * u32_normalize (uninorm_t NF, const uint32_t
-          *S, size_t N, uint32_t *RESULTBUF, size_t *LENGTHP)
+ -- Function: uint16_t * u16_normalize (uninorm_t NF, const uint16_t *S,
+          size_t N, uint16_t *RESULTBUF, size_t *LENGTHP)
+ -- Function: uint32_t * u32_normalize (uninorm_t NF, const uint32_t *S,
+          size_t N, uint32_t *RESULTBUF, size_t *LENGTHP)
      Returns the specified normalization form of a string.
 
 \1f
 File: libunistring.info,  Node: Normalizing comparisons,  Next: Normalization of streams,  Prev: Normalization of strings,  Up: uninorm.h
 
-12.4 Normalizing comparisons
+13.4 Normalizing comparisons
 ============================
 
    The following functions compare Unicode string, ignoring differences
@@ -3053,11 +3325,10 @@ in normalization.
           uint32_t *S2, size_t N2, uninorm_t NF, int *RESULTP)
      Compares S1 and S2, ignoring differences in normalization.
 
-     NF must be either `UNINORM_NFD' or `UNINORM_NFKD'.
+     NF must be either ‘UNINORM_NFD’ or ‘UNINORM_NFKD’.
 
-     If successful, sets `*RESULTP' to -1 if S1 < S2, 0 if S1 = S2, 1
-     if S1 > S2, and returns 0.  Upon failure, returns -1 with `errno'
-     set.
+     If successful, sets ‘*RESULTP’ to -1 if S1 < S2, 0 if S1 = S2, 1 if
+     S1 > S2, and returns 0.  Upon failure, returns -1 with ‘errno’ set.
 
  -- Function: char * u8_normxfrm (const uint8_t *S, size_t N, uninorm_t
           NF, char *RESULTBUF, size_t *LENGTHP)
@@ -3066,11 +3337,11 @@ in normalization.
  -- Function: char * u32_normxfrm (const uint32_t *S, size_t N,
           uninorm_t NF, char *RESULTBUF, size_t *LENGTHP)
      Converts the string S of length N to a NUL-terminated byte
-     sequence, in such a way that comparing `u8_normxfrm (S1)' and
-     `u8_normxfrm (S2)' with the `u8_cmp2' function is equivalent to
-     comparing S1 and S2 with the `u8_normcoll' function.
+     sequence, in such a way that comparing ‘u8_normxfrm (S1)’ and
+     ‘u8_normxfrm (S2)’ with the ‘u8_cmp2’ function is equivalent to
+     comparing S1 and S2 with the ‘u8_normcoll’ function.
 
-     NF must be either `UNINORM_NFC' or `UNINORM_NFKC'.
+     NF must be either ‘UNINORM_NFC’ or ‘UNINORM_NFKC’.
 
  -- Function: int u8_normcoll (const uint8_t *S1, size_t N1, const
           uint8_t *S2, size_t N2, uninorm_t NF, int *RESULTP)
@@ -3081,27 +3352,26 @@ in normalization.
      Compares S1 and S2, ignoring differences in normalization, using
      the collation rules of the current locale.
 
-     NF must be either `UNINORM_NFC' or `UNINORM_NFKC'.
+     NF must be either ‘UNINORM_NFC’ or ‘UNINORM_NFKC’.
 
-     If successful, sets `*RESULTP' to -1 if S1 < S2, 0 if S1 = S2, 1
-     if S1 > S2, and returns 0.  Upon failure, returns -1 with `errno'
-     set.
+     If successful, sets ‘*RESULTP’ to -1 if S1 < S2, 0 if S1 = S2, 1 if
+     S1 > S2, and returns 0.  Upon failure, returns -1 with ‘errno’ set.
 
 \1f
 File: libunistring.info,  Node: Normalization of streams,  Prev: Normalizing comparisons,  Up: uninorm.h
 
-12.5 Normalization of streams of Unicode characters
+13.5 Normalization of streams of Unicode characters
 ===================================================
 
-   A "stream of Unicode characters" is essentially a function that
-accepts an `ucs4_t' argument repeatedly, optionally combined with a
-function that "flushes" the stream.
+   A “stream of Unicode characters” is essentially a function that
+accepts an ‘ucs4_t’ argument repeatedly, optionally combined with a
+function that “flushes” the stream.
 
  -- Type: struct uninorm_filter
      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 character sequence to the encapsulated
-     stream of Unicode characters.
+     passes the normalized character sequence to the encapsulated stream
+     of Unicode characters.
 
  -- Function: struct uninorm_filter * uninorm_filter_create (uninorm_t
           NF, int (*STREAM_FUNC) (void *STREAM_DATA, ucs4_t UC), void
@@ -3109,23 +3379,23 @@ function that "flushes" the stream.
      Creates and returns a normalization filter for Unicode characters.
 
      The pair (STREAM_FUNC, STREAM_DATA) is the encapsulated stream.
-     `STREAM_FUNC (STREAM_DATA, UC)' receives the Unicode character UC
-     and returns 0 if successful, or -1 with `errno' set upon failure.
+     ‘STREAM_FUNC (STREAM_DATA, UC)’ receives the Unicode character UC
+     and returns 0 if successful, or -1 with ‘errno’ set upon failure.
 
-     Returns the new filter, or NULL with `errno' set upon failure.
+     Returns the new filter, or NULL with ‘errno’ set upon failure.
 
  -- Function: int uninorm_filter_write (struct uninorm_filter *FILTER,
           ucs4_t UC)
-     Stuffs a Unicode character into a normalizing filter.  Returns 0
-     if successful, or -1 with `errno' set upon failure.
+     Stuffs a Unicode character into a normalizing filter.  Returns 0 if
+     successful, or -1 with ‘errno’ set upon failure.
 
  -- Function: int uninorm_filter_flush (struct uninorm_filter *FILTER)
      Brings data buffered in the filter to its destination, the
      encapsulated stream.
 
-     Returns 0 if successful, or -1 with `errno' set upon failure.
+     Returns 0 if successful, or -1 with ‘errno’ set upon failure.
 
-     Note! If after calling this function, additional characters are
+     Note!  If after calling this function, additional characters are
      written into the filter, the resulting character sequence in the
      encapsulated stream will not necessarily be normalized.
 
@@ -3133,12 +3403,12 @@ function that "flushes" the stream.
      Brings data buffered in the filter to its destination, the
      encapsulated stream, then closes and frees the filter.
 
-     Returns 0 if successful, or -1 with `errno' set upon failure.
+     Returns 0 if successful, or -1 with ‘errno’ set upon failure.
 
 \1f
 File: libunistring.info,  Node: unicase.h,  Next: uniregex.h,  Prev: uninorm.h,  Up: Top
 
-13 Case mappings `<unicase.h>'
+14 Case mappings ‘<unicase.h>’
 ******************************
 
    This include file defines functions for case mapping for Unicode
@@ -3146,8 +3416,8 @@ strings and case insensitive comparison of Unicode strings and C
 strings.
 
    These string functions fix the problems that were mentioned in *note
-char * strings::, namely, they handle the Croatian LETTER DZ WITH
-CARON, the German LATIN SMALL LETTER SHARP S, the Greek sigma and the
+char * strings::, namely, they handle the Croatian LETTER DZ WITH CARON,
+the German LATIN SMALL LETTER SHARP S, the Greek sigma and the
 Lithuanian i correctly.
 
 * Menu:
@@ -3161,18 +3431,18 @@ Lithuanian i correctly.
 \1f
 File: libunistring.info,  Node: Case mappings of characters,  Next: Case mappings of strings,  Up: unicase.h
 
-13.1 Case mappings of characters
+14.1 Case mappings of characters
 ================================
 
-   The following functions implement case mappings on Unicode
-characters -- for those cases only where the result of the mapping is a
-again a single Unicode character.
+   The following functions implement case mappings on Unicode characters
+— for those cases only where the result of the mapping is a again a
+single Unicode character.
 
    These mappings are locale and context independent.
 
    *WARNING!* These functions are not sufficient for languages such as
-German, Greek and Lithuanian.  Better use the functions below that
-treat an entire string at once and are language aware.
+German, Greek and Lithuanian.  Better use the functions below that treat
+an entire string at once and are language aware.
 
  -- Function: ucs4_t uc_toupper (ucs4_t UC)
      Returns the uppercase mapping of the Unicode character UC.
@@ -3192,51 +3462,54 @@ treat an entire string at once and are language aware.
      uuper case variant are different.  These characters occur in the
      Latin writing of the Croatian, Bosnian, and Serbian languages.
 
-     Lower case            Title case            Upper case
-     ------------------------------------------------------------------ 
-     LATIN SMALL LETTER LJ LATIN CAPITAL LETTER  LATIN CAPITAL LETTER
-                           L WITH SMALL LETTER J LJ
-     LATIN SMALL LETTER NJ LATIN CAPITAL LETTER  LATIN CAPITAL LETTER
-                           N WITH SMALL LETTER J NJ
-     LATIN SMALL LETTER DZ LATIN CAPITAL LETTER  LATIN CAPITAL LETTER
-                           D WITH SMALL LETTER Z DZ
-     LATIN SMALL LETTER    LATIN CAPITAL LETTER  LATIN CAPITAL LETTER
-     DZ WITH CARON         D WITH SMALL LETTER   DZ WITH CARON
-                           Z WITH CARON          
+     Lower case             Title case             Upper case
+     ---------------------------------------------------------------------
+     LATIN SMALL LETTER     LATIN CAPITAL LETTER   LATIN CAPITAL LETTER
+     LJ                     L WITH SMALL LETTER    LJ
+                            J
+     LATIN SMALL LETTER     LATIN CAPITAL LETTER   LATIN CAPITAL LETTER
+     NJ                     N WITH SMALL LETTER    NJ
+                            J
+     LATIN SMALL LETTER     LATIN CAPITAL LETTER   LATIN CAPITAL LETTER
+     DZ                     D WITH SMALL LETTER    DZ
+                            Z
+     LATIN SMALL LETTER     LATIN CAPITAL LETTER   LATIN CAPITAL LETTER
+     DZ WITH CARON          D WITH SMALL LETTER    DZ WITH CARON
+                            Z WITH CARON
 
 \1f
 File: libunistring.info,  Node: Case mappings of strings,  Next: Case mappings of substrings,  Prev: Case mappings of characters,  Up: unicase.h
 
-13.2 Case mappings of strings
+14.2 Case mappings of strings
 =============================
 
    Case mapping should always be performed on entire strings, not on
 individual characters.  The functions in this sections 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, you most often also want to treat the composed and decomposed
-forms of such a character, U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
-and U+0041 LATIN CAPITAL LETTER A U+0308 COMBINING DIAERESIS the same.
-The NF argument designates the normalization.
+mapping.  The reason is that if you want to treat ‘ä’ and ‘Ä’ the same,
+you most often also want to treat the composed and decomposed forms of
+such a character, U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS and
+U+0041 LATIN CAPITAL LETTER A U+0308 COMBINING DIAERESIS the same.  The
+NF argument designates the normalization.
 
    These functions are locale dependent.  The ISO639_LANGUAGE argument
-identifies the language (e.g. `"tr"' for Turkish).  NULL means to use
+identifies the language (e.g.  ‘"tr"’ for Turkish).  NULL means to use
 locale independent case mappings.
 
  -- Function: const char * uc_locale_language ()
      Returns the ISO 639 language code of the current locale.  Returns
-     `""' if it is unknown, or in the "C" locale.
+     ‘""’ if it is unknown, or in the "C" locale.
 
  -- Function: uint8_t * u8_toupper (const uint8_t *S, size_t N, const
           char *ISO639_LANGUAGE, uninorm_t NF, uint8_t *RESULTBUF,
           size_t *LENGTHP)
- -- Function: uint16_t * u16_toupper (const uint16_t *S, size_t N,
-          const char *ISO639_LANGUAGE, uninorm_t NF, uint16_t
-          *RESULTBUF, size_t *LENGTHP)
- -- Function: uint32_t * u32_toupper (const uint32_t *S, size_t N,
-          const char *ISO639_LANGUAGE, uninorm_t NF, uint32_t
-          *RESULTBUF, size_t *LENGTHP)
+ -- Function: uint16_t * u16_toupper (const uint16_t *S, size_t N, const
+          char *ISO639_LANGUAGE, uninorm_t NF, uint16_t *RESULTBUF,
+          size_t *LENGTHP)
+ -- Function: uint32_t * u32_toupper (const uint32_t *S, size_t N, const
+          char *ISO639_LANGUAGE, uninorm_t NF, uint32_t *RESULTBUF,
+          size_t *LENGTHP)
      Returns the uppercase mapping of a string.
 
      The NF argument identifies the normalization form to apply after
@@ -3245,12 +3518,12 @@ locale independent case mappings.
  -- Function: uint8_t * u8_tolower (const uint8_t *S, size_t N, const
           char *ISO639_LANGUAGE, uninorm_t NF, uint8_t *RESULTBUF,
           size_t *LENGTHP)
- -- Function: uint16_t * u16_tolower (const uint16_t *S, size_t N,
-          const char *ISO639_LANGUAGE, uninorm_t NF, uint16_t
-          *RESULTBUF, size_t *LENGTHP)
- -- Function: uint32_t * u32_tolower (const uint32_t *S, size_t N,
-          const char *ISO639_LANGUAGE, uninorm_t NF, uint32_t
-          *RESULTBUF, size_t *LENGTHP)
+ -- Function: uint16_t * u16_tolower (const uint16_t *S, size_t N, const
+          char *ISO639_LANGUAGE, uninorm_t NF, uint16_t *RESULTBUF,
+          size_t *LENGTHP)
+ -- Function: uint32_t * u32_tolower (const uint32_t *S, size_t N, const
+          char *ISO639_LANGUAGE, uninorm_t NF, uint32_t *RESULTBUF,
+          size_t *LENGTHP)
      Returns the lowercase mapping of a string.
 
      The NF argument identifies the normalization form to apply after
@@ -3259,12 +3532,12 @@ locale independent case mappings.
  -- Function: uint8_t * u8_totitle (const uint8_t *S, size_t N, const
           char *ISO639_LANGUAGE, uninorm_t NF, uint8_t *RESULTBUF,
           size_t *LENGTHP)
- -- Function: uint16_t * u16_totitle (const uint16_t *S, size_t N,
-          const char *ISO639_LANGUAGE, uninorm_t NF, uint16_t
-          *RESULTBUF, size_t *LENGTHP)
- -- Function: uint32_t * u32_totitle (const uint32_t *S, size_t N,
-          const char *ISO639_LANGUAGE, uninorm_t NF, uint32_t
-          *RESULTBUF, size_t *LENGTHP)
+ -- Function: uint16_t * u16_totitle (const uint16_t *S, size_t N, const
+          char *ISO639_LANGUAGE, uninorm_t NF, uint16_t *RESULTBUF,
+          size_t *LENGTHP)
+ -- Function: uint32_t * u32_totitle (const uint32_t *S, size_t N, const
+          char *ISO639_LANGUAGE, uninorm_t NF, uint32_t *RESULTBUF,
+          size_t *LENGTHP)
      Returns the titlecase mapping of a string.
 
      Mapping to title case means that, in each word, the first cased
@@ -3277,7 +3550,7 @@ locale independent case mappings.
 \1f
 File: libunistring.info,  Node: Case mappings of substrings,  Next: Case insensitive comparison,  Prev: Case mappings of strings,  Up: unicase.h
 
-13.3 Case mappings of substrings
+14.3 Case mappings of substrings
 ================================
 
    Case mapping of a substring cannot simply be performed by extracting
@@ -3285,8 +3558,8 @@ the substring and then applying the case mapping function to it.  This
 does not work because case mapping requires some information about the
 surrounding characters.  The following functions allow to apply case
 mappings to substrings of a given string, while taking into account the
-characters that precede it (the "prefix") and the characters that
-follow it (the "suffix").
+characters that precede it (the “prefix”) and the characters that follow
+it (the “suffix”).
 
  -- Type: casing_prefix_context_t
      This data type denotes the case-mapping context that is given by a
@@ -3298,7 +3571,7 @@ follow it (the "suffix").
      This constant is the case-mapping context that corresponds to an
      empty prefix string.
 
-   The following functions return `casing_prefix_context_t' objects:
+   The following functions return ‘casing_prefix_context_t’ objects:
 
  -- Function: casing_prefix_context_t u8_casing_prefix_context (const
           uint8_t *S, size_t N)
@@ -3310,12 +3583,10 @@ follow it (the "suffix").
 
  -- Function: casing_prefix_context_t u8_casing_prefixes_context (const
           uint8_t *S, size_t N, casing_prefix_context_t A_CONTEXT)
- -- Function: casing_prefix_context_t u16_casing_prefixes_context
-          (const uint16_t *S, size_t N, casing_prefix_context_t
-          A_CONTEXT)
- -- Function: casing_prefix_context_t u32_casing_prefixes_context
-          (const uint32_t *S, size_t N, casing_prefix_context_t
-          A_CONTEXT)
+ -- Function: casing_prefix_context_t u16_casing_prefixes_context (const
+          uint16_t *S, size_t N, casing_prefix_context_t A_CONTEXT)
+ -- Function: casing_prefix_context_t u32_casing_prefixes_context (const
+          uint32_t *S, size_t N, casing_prefix_context_t A_CONTEXT)
      Returns the case-mapping context of the prefix concat(A, S), given
      the case-mapping context of the prefix A.
 
@@ -3329,7 +3600,7 @@ follow it (the "suffix").
      This constant is the case-mapping context that corresponds to an
      empty suffix string.
 
-   The following functions return `casing_suffix_context_t' objects:
+   The following functions return ‘casing_suffix_context_t’ objects:
 
  -- Function: casing_suffix_context_t u8_casing_suffix_context (const
           uint8_t *S, size_t N)
@@ -3341,12 +3612,10 @@ follow it (the "suffix").
 
  -- Function: casing_suffix_context_t u8_casing_suffixes_context (const
           uint8_t *S, size_t N, casing_suffix_context_t A_CONTEXT)
- -- Function: casing_suffix_context_t u16_casing_suffixes_context
-          (const uint16_t *S, size_t N, casing_suffix_context_t
-          A_CONTEXT)
- -- Function: casing_suffix_context_t u32_casing_suffixes_context
-          (const uint32_t *S, size_t N, casing_suffix_context_t
-          A_CONTEXT)
+ -- Function: casing_suffix_context_t u16_casing_suffixes_context (const
+          uint16_t *S, size_t N, casing_suffix_context_t A_CONTEXT)
+ -- Function: casing_suffix_context_t u32_casing_suffixes_context (const
+          uint32_t *S, size_t N, casing_suffix_context_t A_CONTEXT)
      Returns the case-mapping context of the suffix concat(S, A), given
      the case-mapping context of the suffix A.
 
@@ -3407,9 +3676,9 @@ prefix context and the suffix context.
      Returns the titlecase mapping of a string that is surrounded by a
      prefix and a suffix.
 
-   For example, to uppercase the UTF-8 substring between `s +
-start_index' and `s + end_index' of a string that extends from `s' to
-`s + u8_strlen (s)', you can use the statements
+   For example, to uppercase the UTF-8 substring between s +
+start_index’ and ‘s + end_index’ of a string that extends from ‘s’ to ‘s
++ u8_strlen (s)’, you can use the statements
 
      size_t result_length;
      uint8_t result =
@@ -3422,11 +3691,11 @@ start_index' and `s + end_index' of a string that extends from `s' to
 \1f
 File: libunistring.info,  Node: Case insensitive comparison,  Next: Case detection,  Prev: Case mappings of substrings,  Up: unicase.h
 
-13.4 Case insensitive comparison
+14.4 Case insensitive comparison
 ================================
 
-   The following functions implement comparison that ignores
-differences in case and normalization.
+   The following functions implement comparison that ignores differences
+in case and normalization.
 
  -- Function: uint8_t * u8_casefold (const uint8_t *S, size_t N, const
           char *ISO639_LANGUAGE, uninorm_t NF, uint8_t *RESULTBUF,
@@ -3439,9 +3708,9 @@ differences in case and normalization.
           *RESULTBUF, size_t *LENGTHP)
      Returns the case folded string.
 
-     Comparing `u8_casefold (S1)' and `u8_casefold (S2)' with the
-     `u8_cmp2' function is equivalent to comparing S1 and S2 with
-     `u8_casecmp'.
+     Comparing ‘u8_casefold (S1)’ and ‘u8_casefold (S2)’ with the
+     ‘u8_cmp2’ function is equivalent to comparing S1 and S2 with
+     ‘u8_casecmp’.
 
      The NF argument identifies the normalization form to apply after
      the case-mapping.  It can also be NULL, for no normalization.
@@ -3465,8 +3734,8 @@ differences in case and normalization.
      account the case mapping contexts of the prefix and suffix strings.
 
  -- 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)
+          uint8_t *S2, size_t N2, const char *ISO639_LANGUAGE, uninorm_t
+          NF, int *RESULTP)
  -- Function: int u16_casecmp (const uint16_t *S1, size_t N1, const
           uint16_t *S2, size_t N2, const char *ISO639_LANGUAGE,
           uninorm_t NF, int *RESULTP)
@@ -3474,22 +3743,21 @@ differences in case and normalization.
           uint32_t *S2, size_t N2, const char *ISO639_LANGUAGE,
           uninorm_t NF, int *RESULTP)
  -- Function: int ulc_casecmp (const char *S1, size_t N1, const char
-          *S2, size_t N2, const char *ISO639_LANGUAGE, uninorm_t NF,
-          int *RESULTP)
+          *S2, size_t N2, const char *ISO639_LANGUAGE, uninorm_t NF, int
+          *RESULTP)
      Compares S1 and S2, ignoring differences in case and normalization.
 
      The NF argument identifies the normalization form to apply after
      the case-mapping.  It can also be NULL, for no normalization.
 
-     If successful, sets `*RESULTP' to -1 if S1 < S2, 0 if S1 = S2, 1
-     if S1 > S2, and returns 0.  Upon failure, returns -1 with `errno'
-     set.
+     If successful, sets ‘*RESULTP’ to -1 if S1 < S2, 0 if S1 = S2, 1 if
+     S1 > S2, and returns 0.  Upon failure, returns -1 with ‘errno’ set.
 
    The following functions additionally take into account the sorting
 rules of the current locale.
 
- -- Function: char * u8_casexfrm (const uint8_t *S, size_t N, const
-          char *ISO639_LANGUAGE, uninorm_t NF, char *RESULTBUF, size_t
+ -- Function: char * u8_casexfrm (const uint8_t *S, size_t N, const char
+          *ISO639_LANGUAGE, uninorm_t NF, char *RESULTBUF, size_t
           *LENGTHP)
  -- Function: char * u16_casexfrm (const uint16_t *S, size_t N, const
           char *ISO639_LANGUAGE, uninorm_t NF, char *RESULTBUF, size_t
@@ -3501,16 +3769,16 @@ rules of the current locale.
           *ISO639_LANGUAGE, uninorm_t NF, char *RESULTBUF, size_t
           *LENGTHP)
      Converts the string S of length N to a NUL-terminated byte
-     sequence, in such a way that comparing `u8_casexfrm (S1)' and
-     `u8_casexfrm (S2)' with the gnulib function `memcmp2' is
-     equivalent to comparing S1 and S2 with `u8_casecoll'.
+     sequence, in such a way that comparing ‘u8_casexfrm (S1)’ and
+     ‘u8_casexfrm (S2)’ with the gnulib function ‘memcmp2’ is equivalent
+     to comparing S1 and S2 with ‘u8_casecoll’.
 
-     NF must be either `UNINORM_NFC', `UNINORM_NFKC', or NULL for no
+     NF must be either ‘UNINORM_NFC’, ‘UNINORM_NFKC’, or NULL for no
      normalization.
 
  -- Function: int u8_casecoll (const uint8_t *S1, size_t N1, const
-          uint8_t *S2, size_t N2, const char *ISO639_LANGUAGE,
-          uninorm_t NF, int *RESULTP)
+          uint8_t *S2, size_t N2, const char *ISO639_LANGUAGE, uninorm_t
+          NF, int *RESULTP)
  -- Function: int u16_casecoll (const uint16_t *S1, size_t N1, const
           uint16_t *S2, size_t N2, const char *ISO639_LANGUAGE,
           uninorm_t NF, int *RESULTP)
@@ -3518,27 +3786,26 @@ rules of the current locale.
           uint32_t *S2, size_t N2, const char *ISO639_LANGUAGE,
           uninorm_t NF, int *RESULTP)
  -- Function: int ulc_casecoll (const char *S1, size_t N1, const char
-          *S2, size_t N2, const char *ISO639_LANGUAGE, uninorm_t NF,
-          int *RESULTP)
+          *S2, size_t N2, const char *ISO639_LANGUAGE, uninorm_t NF, int
+          *RESULTP)
      Compares S1 and S2, ignoring differences in case and normalization,
      using the collation rules of the current locale.
 
      The NF argument identifies the normalization form to apply after
-     the case-mapping.  It must be either `UNINORM_NFC' or
-     `UNINORM_NFKC'.  It can also be NULL, for no normalization.
+     the case-mapping.  It must be either ‘UNINORM_NFC’ or
+     ‘UNINORM_NFKC’.  It can also be NULL, for no normalization.
 
-     If successful, sets `*RESULTP' to -1 if S1 < S2, 0 if S1 = S2, 1
-     if S1 > S2, and returns 0.  Upon failure, returns -1 with `errno'
-     set.
+     If successful, sets ‘*RESULTP’ to -1 if S1 < S2, 0 if S1 = S2, 1 if
+     S1 > S2, and returns 0.  Upon failure, returns -1 with ‘errno’ set.
 
 \1f
 File: libunistring.info,  Node: Case detection,  Prev: Case insensitive comparison,  Up: unicase.h
 
-13.5 Case detection
+14.5 Case detection
 ===================
 
    The following functions determine whether a Unicode string is
-entirely in upper case. or entirely in lower case, or entirely in title
+entirely in upper case.  or entirely in lower case, or entirely in title
 case, or already case-folded.
 
  -- Function: int u8_is_uppercase (const uint8_t *S, size_t N, const
@@ -3547,9 +3814,9 @@ case, or already case-folded.
           char *ISO639_LANGUAGE, bool *RESULTP)
  -- Function: int u32_is_uppercase (const uint32_t *S, size_t N, const
           char *ISO639_LANGUAGE, bool *RESULTP)
-     Sets `*RESULTP' to true if mapping NFD(S) to upper case is a
-     no-op, or to false otherwise, and returns 0.  Upon failure,
-     returns -1 with `errno' set.
+     Sets ‘*RESULTP’ to true if mapping NFD(S) to upper case is a no-op,
+     or to false otherwise, and returns 0.  Upon failure, returns -1
+     with ‘errno’ set.
 
  -- Function: int u8_is_lowercase (const uint8_t *S, size_t N, const
           char *ISO639_LANGUAGE, bool *RESULTP)
@@ -3557,9 +3824,9 @@ case, or already case-folded.
           char *ISO639_LANGUAGE, bool *RESULTP)
  -- Function: int u32_is_lowercase (const uint32_t *S, size_t N, const
           char *ISO639_LANGUAGE, bool *RESULTP)
-     Sets `*RESULTP' to true if mapping NFD(S) to lower case is a
-     no-op, or to false otherwise, and returns 0.  Upon failure,
-     returns -1 with `errno' set.
+     Sets ‘*RESULTP’ to true if mapping NFD(S) to lower case is a no-op,
+     or to false otherwise, and returns 0.  Upon failure, returns -1
+     with ‘errno’ set.
 
  -- Function: int u8_is_titlecase (const uint8_t *S, size_t N, const
           char *ISO639_LANGUAGE, bool *RESULTP)
@@ -3567,9 +3834,9 @@ case, or already case-folded.
           char *ISO639_LANGUAGE, bool *RESULTP)
  -- Function: int u32_is_titlecase (const uint32_t *S, size_t N, const
           char *ISO639_LANGUAGE, bool *RESULTP)
-     Sets `*RESULTP' to true if mapping NFD(S) to title case is a
-     no-op, or to false otherwise, and returns 0.  Upon failure,
-     returns -1 with `errno' set.
+     Sets ‘*RESULTP’ to true if mapping NFD(S) to title case is a no-op,
+     or to false otherwise, and returns 0.  Upon failure, returns -1
+     with ‘errno’ set.
 
  -- Function: int u8_is_casefolded (const uint8_t *S, size_t N, const
           char *ISO639_LANGUAGE, bool *RESULTP)
@@ -3577,9 +3844,9 @@ case, or already case-folded.
           char *ISO639_LANGUAGE, bool *RESULTP)
  -- Function: int u32_is_casefolded (const uint32_t *S, size_t N, const
           char *ISO639_LANGUAGE, bool *RESULTP)
-     Sets `*RESULTP' to true if applying case folding to NFD(S) is a
-     no-op, or to false otherwise, and returns 0.  Upon failure,
-     returns -1 with `errno' set.
+     Sets ‘*RESULTP’ to true if applying case folding to NFD(S) is a
+     no-op, or to false otherwise, and returns 0.  Upon failure, returns
+     -1 with ‘errno’ set.
 
    The following functions determine whether case mappings have any
 effect on a Unicode string.
@@ -3590,17 +3857,17 @@ effect on a Unicode string.
           *ISO639_LANGUAGE, bool *RESULTP)
  -- Function: int u32_is_cased (const uint32_t *S, size_t N, const char
           *ISO639_LANGUAGE, bool *RESULTP)
-     Sets `*RESULTP' to true if case matters for S, that is, if mapping
+     Sets ‘*RESULTP’ to true if case matters for S, that is, if mapping
      NFD(S) to either upper case or lower case or title case is not a
-     no-op.  Set `*RESULTP' to false if NFD(S) maps to itself under the
+     no-op.  Set ‘*RESULTP’ to false if NFD(S) maps to itself under the
      upper case mapping, under the lower case mapping, and under the
      title case mapping; in other words, when NFD(S) consists entirely
-     of caseless characters. Upon failure, returns -1 with `errno' set.
+     of caseless characters.  Upon failure, returns -1 with ‘errno’ set.
 
 \1f
 File: libunistring.info,  Node: uniregex.h,  Next: Using the library,  Prev: unicase.h,  Up: Top
 
-14 Regular expressions `<uniregex.h>'
+15 Regular expressions ‘<uniregex.h>’
 *************************************
 
    This include file is not yet implemented.
@@ -3608,7 +3875,7 @@ File: libunistring.info,  Node: uniregex.h,  Next: Using the library,  Prev: uni
 \1f
 File: libunistring.info,  Node: Using the library,  Next: More functionality,  Prev: uniregex.h,  Up: Top
 
-15 Using the library
+16 Using the library
 ********************
 
    This chapter explains some practical considerations, regarding the
@@ -3626,147 +3893,147 @@ library.
 \1f
 File: libunistring.info,  Node: Installation,  Next: Compiler options,  Up: Using the library
 
-15.1 Installation
+16.1 Installation
 =================
 
    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 `DEPENDENCIES'.
+the file ‘DEPENDENCIES’.
 
    Then you can proceed to build and install the library, as described
-in the file `INSTALL'.  For installation on Windows systems, please
-refer to the file `README.woe32'.
+in the file ‘INSTALL’.  For installation on Windows systems, please
+refer to the file ‘README.woe32’.
 
 \1f
 File: libunistring.info,  Node: Compiler options,  Next: Include files,  Prev: Installation,  Up: Using the library
 
-15.2 Compiler options
+16.2 Compiler options
 =====================
 
-   Let's denote as `LIBUNISTRING_PREFIX' the value of the `--prefix'
-option that you passed to `configure' while installing this package.
-If you didn't pass any `--prefix' option, then the package is installed
-in `/usr/local'.
+   Let’s denote as ‘LIBUNISTRING_PREFIX’ the value of the ‘--prefix’
+option that you passed to ‘configure’ while installing this package.  If
+you didn’t pass any ‘--prefix’ option, then the package is installed in
+‘/usr/local’.
 
-   Let's denote as `LIBUNISTRING_INCLUDEDIR' the directory where the
+   Let’s denote as ‘LIBUNISTRING_INCLUDEDIR’ the directory where the
 include files were installed.  This is usually the same as
-`${LIBUNISTRING_PREFIX}/include'.  Except that if you passed an
-`--includedir' option to `configure', it is the value of that option.
+‘${LIBUNISTRING_PREFIX}/include’.  Except that if you passed an
+‘--includedir’ option to ‘configure’, it is the value of that option.
 
-   Let's further denote as `LIBUNISTRING_LIBDIR' the directory where
-the library itself was installed.  This is the value that you passed
-with the `--libdir' option to `configure', or otherwise the same as
-`${LIBUNISTRING_PREFIX}/lib'.  Recall that when building in 64-bit mode
+   Let’s further denote as ‘LIBUNISTRING_LIBDIR’ the directory where the
+library itself was installed.  This is the value that you passed with
+the ‘--libdir’ option to ‘configure’, or otherwise the same as
+‘${LIBUNISTRING_PREFIX}/lib’.  Recall that when building 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
-`--libdir=${LIBUNISTRING_PREFIX}/lib64'.
+‘--libdir=${LIBUNISTRING_PREFIX}/lib64’.
 
    So that the compiler finds the include files, you have to pass it the
-option `-I${LIBUNISTRING_INCLUDEDIR}'.
+option ‘-I${LIBUNISTRING_INCLUDEDIR}’.
 
    So that the compiler finds the library during its linking pass, you
-have to pass it the options `-L${LIBUNISTRING_LIBDIR} -lunistring'.  On
+have to pass it the options ‘-L${LIBUNISTRING_LIBDIR} -lunistring’.  On
 some systems, in some configurations, you also have to pass options
-needed for linking with `libiconv'.  The autoconf macro
-`gl_LIBUNISTRING' (see *note Autoconf macro::) deals with this
+needed for linking with ‘libiconv’.  The autoconf macro
+‘gl_LIBUNISTRING’ (see *note Autoconf macro::) deals with this
 particularity.
 
 \1f
 File: libunistring.info,  Node: Include files,  Next: Autoconf macro,  Prev: Compiler options,  Up: Using the library
 
-15.3 Include files
+16.3 Include files
 ==================
 
    Most of the include files have been presented in the introduction,
 see *note Introduction::, and subsequent detailed chapters.
 
-   Another include file is `<unistring/version.h>'. It contains the
+   Another include file is ‘<unistring/version.h>’.  It contains the
 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'.
+     ‘(major<<8) + minor’.
 
  -- 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'.
+     ‘(major<<8) + minor’.
 
-   It is possible that `_libunistring_version' is greater than
-`_LIBUNISTRING_VERSION'.  This can happen when you use `libunistring'
-as a shared library, and a newer, binary backward-compatible version
-has been installed after your program that uses `libunistring' was
+   It is possible that ‘_libunistring_version’ is greater than
+‘_LIBUNISTRING_VERSION’.  This can happen when you use ‘libunistring’ as
+a shared library, and a newer, binary backward-compatible version has
+been installed after your program that uses ‘libunistring’ was
 installed.
 
 \1f
 File: libunistring.info,  Node: Autoconf macro,  Next: Reporting problems,  Prev: Include files,  Up: Using the library
 
-15.4 Autoconf macro
+16.4 Autoconf macro
 ===================
 
    GNU Gnulib provides an autoconf macro that tests for the availability
-of `libunistring'.  It is contained in the Gnulib module
-`libunistring', see
-`http://www.gnu.org/software/gnulib/MODULES.html#module=libunistring'.
+of ‘libunistring’.  It is contained in the Gnulib module ‘libunistring’,
+see
+<http://www.gnu.org/software/gnulib/MODULES.html#module=libunistring>.
 
-   The macro is called `gl_LIBUNISTRING'.  It searches for an installed
-libunistring.  If found, it sets and AC_SUBSTs `HAVE_LIBUNISTRING=yes'
-and the `LIBUNISTRING' and `LTLIBUNISTRING' variables and augments the
-`CPPFLAGS' variable, and defines the C macro `HAVE_LIBUNISTRING' to 1.
-Otherwise, it sets and AC_SUBSTs `HAVE_LIBUNISTRING=no' and
-`LIBUNISTRING' and `LTLIBUNISTRING' to empty.
+   The macro is called ‘gl_LIBUNISTRING’.  It searches for an installed
+libunistring.  If found, it sets and AC_SUBSTs ‘HAVE_LIBUNISTRING=yes’
+and the ‘LIBUNISTRING’ and ‘LTLIBUNISTRING’ variables and augments the
+‘CPPFLAGS’ variable, and defines the C macro ‘HAVE_LIBUNISTRING’ to 1.
+Otherwise, it sets and AC_SUBSTs ‘HAVE_LIBUNISTRING=no’ and
+‘LIBUNISTRING’ and ‘LTLIBUNISTRING’ to empty.
 
-   The complexities that `gl_LIBUNISTRING' deals with are the following:
+   The complexities that ‘gl_LIBUNISTRING’ deals with are the following:
 
-   * On some operating systems, in some configurations, libunistring
-     depends on `libiconv', and the options for linking with libiconv
+    On some operating systems, in some configurations, libunistring
+     depends on ‘libiconv’, and the options for linking with libiconv
      must be mentioned explicitly on the link command line.
 
-   * GNU `libunistring', if installed, is not necessarily already in the
-     search path (`CPPFLAGS' for the include file search path,
-     `LDFLAGS' for the library search path).
+   • GNU ‘libunistring’, if installed, is not necessarily already in the
+     search path (‘CPPFLAGS’ for the include file search path, ‘LDFLAGS’
+     for the library search path).
 
-   * GNU `libunistring', if installed, is not necessarily already in the
+   • GNU ‘libunistring’, if installed, is not necessarily already in the
      run time library search path.  To avoid the need for setting an
-     environment variable like `LD_LIBRARY_PATH', the macro adds the
-     appropriate run time search path options to the `LIBUNISTRING'
+     environment variable like ‘LD_LIBRARY_PATH’, the macro adds the
+     appropriate run time search path options to the ‘LIBUNISTRING’
      variable.  This works on most systems.
 
 \1f
 File: libunistring.info,  Node: Reporting problems,  Prev: Autoconf macro,  Up: Using the library
 
-15.5 Reporting problems
+16.5 Reporting problems
 =======================
 
-   If you encounter any problem, please don't hesitate to send a
-detailed bug report to the `bug-libunistring@gnu.org' mailing list.
-You can alternatively also use the bug tracker at the project page
-`https://savannah.gnu.org/projects/libunistring'.
+   If you encounter any problem, please dont hesitate to send a
+detailed bug report to the ‘bug-libunistring@gnu.org’ mailing list.  You
+can alternatively also use the bug tracker at the project page
+<https://savannah.gnu.org/projects/libunistring>.
 
    Please always include the version number of this library, and a short
 description of your operating system and compilation environment with
 corresponding version numbers.
 
    For problems that appear while building and installing
-`libunistring', for which you don't find the remedy in the `INSTALL'
-file, please include a description of the options that you passed to
-the `configure' script.
+‘libunistring’, for which you don’t find the remedy in the ‘INSTALL’
+file, please include a description of the options that you passed to the
+‘configure’ script.
 
 \1f
 File: libunistring.info,  Node: More functionality,  Next: Licenses,  Prev: Using the library,  Up: Top
 
-16 More advanced functionality
+17 More advanced functionality
 ******************************
 
-   For bidirectional reordering of strings, we recommend the GNU
-FriBidi library: `http://www.fribidi.org/'.
+   For bidirectional reordering of strings, we recommend the GNU FriBidi
+library: <http://www.fribidi.org/>.
 
    For the rendering of Unicode strings outside of the context of a
 given toolkit (KDE/Qt or GNOME/Gtk), we recommend the Pango library:
-`http://www.pango.org/'.
+<http://www.pango.org/>.
 
 \1f
 File: libunistring.info,  Node: Licenses,  Next: Index,  Prev: More functionality,  Up: Top
@@ -3777,24 +4044,24 @@ Appendix A Licenses
    The files of this package are covered by the licenses indicated in
 each particular file or directory.  Here is a summary:
 
-   * The `libunistring' library is covered by the GNU Lesser General
-     Public License (LGPL).  A copy of the license is included in *note
+   • The ‘libunistring’ library is covered by the GNU Lesser General
+     Public License (LGPL). A copy of the license is included in *note
      GNU LGPL::.
 
-   * This manual is free documentation.  It is dually licensed under the
-     GNU FDL and the GNU GPL.  This means that you can redistribute this
+    This manual is free documentation.  It is dually licensed under the
+     GNU FDL and the GNU GPL. This means that you can redistribute this
      manual under either of these two licenses, at your choice.
-     This manual is covered by the GNU FDL.  Permission is granted to
+     This manual is covered by the GNU FDL. Permission is granted to
      copy, distribute and/or modify this document under the terms of the
      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 *note GNU FDL::.
-     This manual is covered by the GNU GPL.  You can redistribute it
+     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
+     later version published by the Free Software Foundation (FSF). A
      copy of the license is included in *note GNU GPL::.
 
 * Menu:
@@ -3811,7 +4078,7 @@ A.1 GNU GENERAL PUBLIC LICENSE
 
                         Version 3, 29 June 2007
 
-     Copyright (C) 2007 Free Software Foundation, Inc. `http://fsf.org/'
+     Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>
 
      Everyone is permitted to copy and distribute verbatim copies of this
      license document, but changing it is not allowed.
@@ -3825,11 +4092,11 @@ software and other kinds of works.
    The licenses for most software and other practical works are designed
 to take away your freedom to share and change the works.  By contrast,
 the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains
-free software for all its users.  We, the Free Software Foundation, use
-the GNU General Public License for most of our software; it applies
-also to any other work released this way by its authors.  You can apply
-it to your programs, too.
+share and change all versions of a program—to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
 
    When we speak of free software, we are referring to freedom, not
 price.  Our General Public Licenses are designed to make sure that you
@@ -3839,9 +4106,9 @@ want it, that you can change the software or use pieces of it in new
 free programs, and that you know you can do these things.
 
    To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you
-have certain responsibilities if you distribute copies of the software,
-or if you modify it: responsibilities to respect the freedom of others.
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
 
    For example, if you distribute copies of such a program, whether
 gratis or for a fee, you must pass on to the recipients the same
@@ -3853,23 +4120,22 @@ know their rights.
 (1) assert copyright on the software, and (2) offer you this License
 giving you legal permission to copy, distribute and/or modify it.
 
-   For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
+   For the developers’ and authors’ protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users and
+authors sake, the GPL requires that modified versions be marked as
 changed, so that their problems will not be attributed erroneously to
 authors of previous versions.
 
    Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the
-manufacturer can do so.  This is fundamentally incompatible with the
-aim of protecting users' freedom to change the software.  The
-systematic pattern of such abuse occurs in the area of products for
-individuals to use, which is precisely where it is most unacceptable.
-Therefore, we have designed this version of the GPL to prohibit the
-practice for those products.  If such problems arise substantially in
-other domains, we stand ready to extend this provision to those domains
-in future versions of the GPL, as needed to protect the freedom of
-users.
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users’ freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
 
    Finally, every program is threatened constantly by software patents.
 States should not allow patents to restrict development and use of
@@ -3886,82 +4152,82 @@ TERMS AND CONDITIONS
 
   0. Definitions.
 
-     "This License" refers to version 3 of the GNU General Public
+     “This License” refers to version 3 of the GNU General Public
      License.
 
-     "Copyright" also means copyright-like laws that apply to other
+     “Copyright” also means copyright-like laws that apply to other
      kinds of works, such as semiconductor masks.
 
-     "The Program" refers to any copyrightable work licensed under this
-     License.  Each licensee is addressed as "you".  "Licensees" and
-     "recipients" may be individuals or organizations.
+     “The Program” refers to any copyrightable work licensed under this
+     License.  Each licensee is addressed as “you”.  “Licensees” and
+     “recipients” may be individuals or organizations.
 
-     To "modify" a work means to copy from or adapt all or part of the
+     To “modify” a work means to copy from or adapt all or part of the
      work in a fashion requiring copyright permission, other than the
-     making of an exact copy.  The resulting work is called a "modified
-     version" of the earlier work or a work "based on" the earlier work.
+     making of an exact copy.  The resulting work is called a modified
+     version” of the earlier work or a work “based on” the earlier work.
 
-     A "covered work" means either the unmodified Program or a work
+     A “covered work” means either the unmodified Program or a work
      based on the Program.
 
-     To "propagate" a work means to do anything with it that, without
+     To “propagate” a work means to do anything with it that, without
      permission, would make you directly or secondarily liable for
-     infringement under applicable copyright law, except executing it
-     on a computer or modifying a private copy.  Propagation includes
+     infringement under applicable copyright law, except executing it on
+     a computer or modifying a private copy.  Propagation includes
      copying, distribution (with or without modification), making
      available to the public, and in some countries other activities as
      well.
 
-     To "convey" a work means any kind of propagation that enables other
+     To “convey” a work means any kind of propagation that enables other
      parties to make or receive copies.  Mere interaction with a user
      through a computer network, with no transfer of a copy, is not
      conveying.
 
-     An interactive user interface displays "Appropriate Legal Notices"
+     An interactive user interface displays “Appropriate Legal Notices”
      to the extent that it includes a convenient and prominently visible
      feature that (1) displays an appropriate copyright notice, and (2)
      tells the user that there is no warranty for the work (except to
-     the extent that warranties are provided), that licensees may
-     convey the work under this License, and how to view a copy of this
+     the extent that warranties are provided), that licensees may convey
+     the work under this License, and how to view a copy of this
      License.  If the interface presents a list of user commands or
      options, such as a menu, a prominent item in the list meets this
      criterion.
 
   1. Source Code.
 
-     The "source code" for a work means the preferred form of the work
-     for making modifications to it.  "Object code" means any
-     non-source form of a work.
+     The “source code” for a work means the preferred form of the work
+     for making modifications to it.  “Object code” means any non-source
+     form of a work.
 
-     A "Standard Interface" means an interface that either is an
+     A “Standard Interface” means an interface that either is an
      official standard defined by a recognized standards body, or, in
      the case of interfaces specified for a particular programming
      language, one that is widely used among developers working in that
      language.
 
-     The "System Libraries" of an executable work include anything,
+     The “System Libraries” of an executable work include anything,
      other than the work as a whole, that (a) is included in the normal
      form of packaging a Major Component, but which is not part of that
-     Major Component, and (b) serves only to enable use of the work
-     with that Major Component, or to implement a Standard Interface
-     for which an implementation is available to the public in source
-     code form.  A "Major Component", in this context, means a major
+     Major Component, and (b) serves only to enable use of the work with
+     that Major Component, or to implement a Standard Interface for
+     which an implementation is available to the public in source code
+     form.  A “Major Component”, in this context, means a major
      essential component (kernel, window system, and so on) of the
      specific operating system (if any) on which the executable work
      runs, or a compiler used to produce the work, or an object code
      interpreter used to run it.
 
-     The "Corresponding Source" for a work in object code form means all
+     The “Corresponding Source” for a work in object code form means all
      the source code needed to generate, install, and (for an executable
-     work) run the object code and to modify the work, including
-     scripts to control those activities.  However, it does not include
-     the work's System Libraries, or general-purpose tools or generally
+     work) run the object code and to modify the work, including scripts
+     to control those activities.  However, it does not include the
+     work’s System Libraries, or general-purpose tools or generally
      available free programs which are used unmodified in performing
      those activities but which are not part of the work.  For example,
-     Corresponding Source includes interface definition files
-     associated with source files for the work, and the source code for
-     shared libraries and dynamically linked subprograms that the work
-     is specifically designed to require, such as by intimate data
+     Corresponding Source includes interface definition files associated
+     with source files for the work, and the source code for shared
+     libraries and dynamically linked subprograms that the work is
+     specifically designed to require, such as by intimate data
      communication or control flow between those subprograms and other
      parts of the work.
 
@@ -3978,28 +4244,28 @@ TERMS AND CONDITIONS
      copyright on the Program, and are irrevocable provided the stated
      conditions are met.  This License explicitly affirms your unlimited
      permission to run the unmodified Program.  The output from running
-     a covered work is covered by this License only if the output,
-     given its content, constitutes a covered work.  This License
-     acknowledges your rights of fair use or other equivalent, as
-     provided by copyright law.
+     a covered work is covered by this License only if the output, given
+     its content, constitutes a covered work.  This License acknowledges
+     your rights of fair use or other equivalent, as provided by
+     copyright law.
 
      You may make, run and propagate covered works that you do not
      convey, without conditions so long as your license otherwise
      remains in force.  You may convey covered works to others for the
-     sole purpose of having them make modifications exclusively for
-     you, or provide you with facilities for running those works,
-     provided that you comply with the terms of this License in
-     conveying all material for which you do not control copyright.
-     Those thus making or running the covered works for you must do so
-     exclusively on your behalf, under your direction and control, on
-     terms that prohibit them from making any copies of your
-     copyrighted material outside their relationship with you.
+     sole purpose of having them make modifications exclusively for you,
+     or provide you with facilities for running those works, provided
+     that you comply with the terms of this License in conveying all
+     material for which you do not control copyright.  Those thus making
+     or running the covered works for you must do so exclusively on your
+     behalf, under your direction and control, on terms that prohibit
+     them from making any copies of your copyrighted material outside
+     their relationship with you.
 
      Conveying under any other circumstances is permitted solely under
      the conditions stated below.  Sublicensing is not allowed; section
      10 makes it unnecessary.
 
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+  3. Protecting Users Legal Rights From Anti-Circumvention Law.
 
      No covered work shall be deemed part of an effective technological
      measure under any applicable law fulfilling obligations under
@@ -4010,14 +4276,14 @@ TERMS AND CONDITIONS
      When you convey a covered work, you waive any legal power to forbid
      circumvention of technological measures to the extent such
      circumvention is effected by exercising rights under this License
-     with respect to the covered work, and you disclaim any intention
-     to limit operation or modification of the work as a means of
-     enforcing, against the work's users, your or third parties' legal
+     with respect to the covered work, and you disclaim any intention to
+     limit operation or modification of the work as a means of
+     enforcing, against the work’s users, your or third parties’ legal
      rights to forbid circumvention of technological measures.
 
   4. Conveying Verbatim Copies.
 
-     You may convey verbatim copies of the Program's source code as you
+     You may convey verbatim copies of the Programs source code as you
      receive it, in any medium, provided that you conspicuously and
      appropriately publish on each copy an appropriate copyright notice;
      keep intact all notices stating that this License and any
@@ -4041,7 +4307,7 @@ TERMS AND CONDITIONS
        b. The work must carry prominent notices stating that it is
           released under this License and any conditions added under
           section 7.  This requirement modifies the requirement in
-          section 4 to "keep intact all notices".
+          section 4 to “keep intact all notices”.
 
        c. You must license the entire work, as a whole, under this
           License to anyone who comes into possession of a copy.  This
@@ -4061,9 +4327,9 @@ TERMS AND CONDITIONS
      works, which are not by their nature extensions of the covered
      work, and which are not combined with it such as to form a larger
      program, in or on a volume of a storage or distribution medium, is
-     called an "aggregate" if the compilation and its resulting
+     called an “aggregate” if the compilation and its resulting
      copyright are not used to limit the access or legal rights of the
-     compilation's users beyond what the individual works permit.
+     compilations users beyond what the individual works permit.
      Inclusion of a covered work in an aggregate does not cause this
      License to apply to the other parts of the aggregate.
 
@@ -4081,8 +4347,8 @@ TERMS AND CONDITIONS
 
        b. Convey the object code in, or embodied in, a physical product
           (including a physical distribution medium), accompanied by a
-          written offer, valid for at least three years and valid for
-          as long as you offer spare parts or customer support for that
+          written offer, valid for at least three years and valid for as
+          long as you offer spare parts or customer support for that
           product model, to give anyone who possesses the object code
           either (1) a copy of the Corresponding Source for all the
           software in the product that is covered by this License, on a
@@ -4092,43 +4358,42 @@ TERMS AND CONDITIONS
           to copy the Corresponding Source from a network server at no
           charge.
 
-       c. Convey individual copies of the object code with a copy of
-          the written offer to provide the Corresponding Source.  This
+       c. Convey individual copies of the object code with a copy of the
+          written offer to provide the Corresponding Source.  This
           alternative is allowed only occasionally and noncommercially,
           and only if you received the object code with such an offer,
           in accord with subsection 6b.
 
        d. Convey the object code by offering access from a designated
-          place (gratis or for a charge), and offer equivalent access
-          to the Corresponding Source in the same way through the same
+          place (gratis or for a charge), and offer equivalent access to
+          the Corresponding Source in the same way through the same
           place at no further charge.  You need not require recipients
           to copy the Corresponding Source along with the object code.
           If the place to copy the object code is a network server, the
-          Corresponding Source may be on a different server (operated
-          by you or a third party) that supports equivalent copying
-          facilities, provided you maintain clear directions next to
-          the object code saying where to find the Corresponding Source.
+          Corresponding Source may be on a different server (operated by
+          you or a third party) that supports equivalent copying
+          facilities, provided you maintain clear directions next to the
+          object code saying where to find the Corresponding Source.
           Regardless of what server hosts the Corresponding Source, you
-          remain obligated to ensure that it is available for as long
-          as needed to satisfy these requirements.
+          remain obligated to ensure that it is available for as long as
+          needed to satisfy these requirements.
 
        e. Convey the object code using peer-to-peer transmission,
           provided you inform other peers where the object code and
           Corresponding Source of the work are being offered to the
           general public at no charge under subsection 6d.
 
-
      A separable portion of the object code, whose source code is
      excluded from the Corresponding Source as a System Library, need
      not be included in conveying the object code work.
 
-     A "User Product" is either (1) a "consumer product", which means
+     A “User Product” is either (1) a “consumer product”, which means
      any tangible personal property which is normally used for personal,
      family, or household purposes, or (2) anything designed or sold for
-     incorporation into a dwelling.  In determining whether a product
-     is a consumer product, doubtful cases shall be resolved in favor of
+     incorporation into a dwelling.  In determining whether a product is
+     a consumer product, doubtful cases shall be resolved in favor of
      coverage.  For a particular product received by a particular user,
-     "normally used" refers to a typical or common use of that class of
+     “normally used” refers to a typical or common use of that class of
      product, regardless of the status of the particular user or of the
      way in which the particular user actually uses, or expects or is
      expected to use, the product.  A product is a consumer product
@@ -4136,7 +4401,7 @@ TERMS AND CONDITIONS
      industrial or non-consumer uses, unless such uses represent the
      only significant mode of use of the product.
 
-     "Installation Information" for a User Product means any methods,
+     “Installation Information” for a User Product means any methods,
      procedures, authorization keys, or other information required to
      install and execute modified versions of a covered work in that
      User Product from a modified version of its Corresponding Source.
@@ -4157,11 +4422,11 @@ TERMS AND CONDITIONS
 
      The requirement to provide Installation Information does not
      include a requirement to continue to provide support service,
-     warranty, or updates for a work that has been modified or
-     installed by the recipient, or for the User Product in which it
-     has been modified or installed.  Access to a network may be denied
-     when the modification itself materially and adversely affects the
-     operation of the network or violates the rules and protocols for
+     warranty, or updates for a work that has been modified or installed
+     by the recipient, or for the User Product in which it has been
+     modified or installed.  Access to a network may be denied when the
+     modification itself materially and adversely affects the operation
+     of the network or violates the rules and protocols for
      communication across the network.
 
      Corresponding Source conveyed, and Installation Information
@@ -4172,7 +4437,7 @@ TERMS AND CONDITIONS
 
   7. Additional Terms.
 
-     "Additional permissions" are terms that supplement the terms of
+     “Additional permissions” are terms that supplement the terms of
      this License by making exceptions from one or more of its
      conditions.  Additional permissions that are applicable to the
      entire Program shall be treated as though they were included in
@@ -4191,8 +4456,8 @@ TERMS AND CONDITIONS
 
      Notwithstanding any other provision of this License, for material
      you add to a covered work, you may (if authorized by the copyright
-     holders of that material) supplement the terms of this License
-     with terms:
+     holders of that material) supplement the terms of this License with
+     terms:
 
        a. Disclaiming warranty or limiting liability differently from
           the terms of sections 15 and 16 of this License; or
@@ -4202,9 +4467,8 @@ TERMS AND CONDITIONS
           Legal Notices displayed by works containing it; or
 
        c. Prohibiting misrepresentation of the origin of that material,
-          or requiring that modified versions of such material be
-          marked in reasonable ways as different from the original
-          version; or
+          or requiring that modified versions of such material be marked
+          in reasonable ways as different from the original version; or
 
        d. Limiting the use for publicity purposes of names of licensors
           or authors of the material; or
@@ -4218,16 +4482,15 @@ TERMS AND CONDITIONS
           the recipient, for any liability that these contractual
           assumptions directly impose on those licensors and authors.
 
-     All other non-permissive additional terms are considered "further
-     restrictions" within the meaning of section 10.  If the Program as
+     All other non-permissive additional terms are considered further
+     restrictions within the meaning of section 10.  If the Program as
      you received it, or any part of it, contains a notice stating that
      it is governed by this License along with a term that is a further
      restriction, you may remove that term.  If a license document
-     contains a further restriction but permits relicensing or
-     conveying under this License, you may add to a covered work
-     material governed by the terms of that license document, provided
-     that the further restriction does not survive such relicensing or
-     conveying.
+     contains a further restriction but permits relicensing or conveying
+     under this License, you may add to a covered work material governed
+     by the terms of that license document, provided that the further
+     restriction does not survive such relicensing or conveying.
 
      If you add terms to a covered work in accord with this section, you
      must place, in the relevant source files, a statement of the
@@ -4243,13 +4506,13 @@ TERMS AND CONDITIONS
      You may not propagate or modify a covered work except as expressly
      provided under this License.  Any attempt otherwise to propagate or
      modify it is void, and will automatically terminate your rights
-     under this License (including any patent licenses granted under
-     the third paragraph of section 11).
+     under this License (including any patent licenses granted under the
+     third paragraph of section 11).
 
      However, if you cease all violation of this License, then your
      license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly
-     and finally terminates your license, and (b) permanently, if the
+     provisionally, unless and until the copyright holder explicitly and
+     finally terminates your license, and (b) permanently, if the
      copyright holder fails to notify you of the violation by some
      reasonable means prior to 60 days after the cessation.
 
@@ -4261,10 +4524,10 @@ TERMS AND CONDITIONS
      after your receipt of the notice.
 
      Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from
-     you under this License.  If your rights have been terminated and
-     not permanently reinstated, you do not qualify to receive new
-     licenses for the same material under section 10.
+     the licenses of parties who have received copies or rights from you
+     under this License.  If your rights have been terminated and not
+     permanently reinstated, you do not qualify to receive new licenses
+     for the same material under section 10.
 
   9. Acceptance Not Required for Having Copies.
 
@@ -4278,7 +4541,7 @@ TERMS AND CONDITIONS
      by modifying or propagating a covered work, you indicate your
      acceptance of this License to do so.
 
- 10. Automatic Licensing of Downstream Recipients.
 10. Automatic Licensing of Downstream Recipients.
 
      Each time you convey a covered work, the recipient automatically
      receives a license from the original licensors, to run, modify and
@@ -4286,55 +4549,55 @@ TERMS AND CONDITIONS
      responsible for enforcing compliance by third parties with this
      License.
 
-     An "entity transaction" is a transaction transferring control of an
+     An “entity transaction” is a transaction transferring control of an
      organization, or substantially all assets of one, or subdividing an
      organization, or merging organizations.  If propagation of a
      covered work results from an entity transaction, each party to that
      transaction who receives a copy of the work also receives whatever
-     licenses to the work the party's predecessor in interest had or
-     could give under the previous paragraph, plus a right to
-     possession of the Corresponding Source of the work from the
-     predecessor in interest, if the predecessor has it or can get it
-     with reasonable efforts.
+     licenses to the work the partys predecessor in interest had or
+     could give under the previous paragraph, plus a right to possession
+     of the Corresponding Source of the work from the predecessor in
+     interest, if the predecessor has it or can get it with reasonable
+     efforts.
 
      You may not impose any further restrictions on the exercise of the
      rights granted or affirmed under this License.  For example, you
-     may not impose a license fee, royalty, or other charge for
-     exercise of rights granted under this License, and you may not
-     initiate litigation (including a cross-claim or counterclaim in a
-     lawsuit) alleging that any patent claim is infringed by making,
-     using, selling, offering for sale, or importing the Program or any
-     portion of it.
+     may not impose a license fee, royalty, or other charge for exercise
+     of rights granted under this License, and you may not initiate
+     litigation (including a cross-claim or counterclaim in a lawsuit)
+     alleging that any patent claim is infringed by making, using,
+     selling, offering for sale, or importing the Program or any portion
+     of it.
 
- 11. Patents.
 11. Patents.
 
-     A "contributor" is a copyright holder who authorizes use under this
+     A “contributor” is a copyright holder who authorizes use under this
      License of the Program or a work on which the Program is based.
-     The work thus licensed is called the contributor's "contributor
-     version".
+     The work thus licensed is called the contributor’s “contributor
+     version.
 
-     A contributor's "essential patent claims" are all patent claims
+     A contributor’s “essential patent claims” are all patent claims
      owned or controlled by the contributor, whether already acquired or
      hereafter acquired, that would be infringed by some manner,
      permitted by this License, of making, using, or selling its
      contributor version, but do not include claims that would be
      infringed only as a consequence of further modification of the
-     contributor version.  For purposes of this definition, "control"
+     contributor version.  For purposes of this definition, “control”
      includes the right to grant patent sublicenses in a manner
      consistent with the requirements of this License.
 
      Each contributor grants you a non-exclusive, worldwide,
-     royalty-free patent license under the contributor's essential
+     royalty-free patent license under the contributors essential
      patent claims, to make, use, sell, offer for sale, import and
-     otherwise run, modify and propagate the contents of its
-     contributor version.
+     otherwise run, modify and propagate the contents of its contributor
+     version.
 
-     In the following three paragraphs, a "patent license" is any
+     In the following three paragraphs, a “patent license” is any
      express agreement or commitment, however denominated, not to
      enforce a patent (such as an express permission to practice a
-     patent or covenant not to sue for patent infringement).  To
-     "grant" such a patent license to a party means to make such an
-     agreement or commitment not to enforce a patent against the party.
+     patent or covenant not to sue for patent infringement).  To “grant”
+     such a patent license to a party means to make such an agreement or
+     commitment not to enforce a patent against the party.
 
      If you convey a covered work, knowingly relying on a patent
      license, and the Corresponding Source of the work is not available
@@ -4345,9 +4608,9 @@ TERMS AND CONDITIONS
      yourself of the benefit of the patent license for this particular
      work, or (3) arrange, in a manner consistent with the requirements
      of this License, to extend the patent license to downstream
-     recipients.  "Knowingly relying" means you have actual knowledge
+     recipients.  “Knowingly relying” means you have actual knowledge
      that, but for the patent license, your conveying the covered work
-     in a country, or your recipient's use of the covered work in a
+     in a country, or your recipients use of the covered work in a
      country, would infringe one or more identifiable patents in that
      country that you have reason to believe are valid.
 
@@ -4359,41 +4622,40 @@ TERMS AND CONDITIONS
      patent license you grant is automatically extended to all
      recipients of the covered work and works based on it.
 
-     A patent license is "discriminatory" if it does not include within
+     A patent license is “discriminatory” if it does not include within
      the scope of its coverage, prohibits the exercise of, or is
      conditioned on the non-exercise of one or more of the rights that
      are specifically granted under this License.  You may not convey a
      covered work if you are a party to an arrangement with a third
-     party that is in the business of distributing software, under
-     which you make payment to the third party based on the extent of
-     your activity of conveying the work, and under which the third
-     party grants, to any of the parties who would receive the covered
-     work from you, a discriminatory patent license (a) in connection
-     with copies of the covered work conveyed by you (or copies made
-     from those copies), or (b) primarily for and in connection with
-     specific products or compilations that contain the covered work,
-     unless you entered into that arrangement, or that patent license
-     was granted, prior to 28 March 2007.
+     party that is in the business of distributing software, under which
+     you make payment to the third party based on the extent of your
+     activity of conveying the work, and under which the third party
+     grants, to any of the parties who would receive the covered work
+     from you, a discriminatory patent license (a) in connection with
+     copies of the covered work conveyed by you (or copies made from
+     those copies), or (b) primarily for and in connection with specific
+     products or compilations that contain the covered work, unless you
+     entered into that arrangement, or that patent license was granted,
+     prior to 28 March 2007.
 
      Nothing in this License shall be construed as excluding or limiting
      any implied license or other defenses to infringement that may
      otherwise be available to you under applicable patent law.
 
12. No Surrender of Others' Freedom.
 12. No Surrender of Others’ Freedom.
 
-     If conditions are imposed on you (whether by court order,
-     agreement or otherwise) that contradict the conditions of this
-     License, they do not excuse you from the conditions of this
-     License.  If you cannot convey a covered work so as to satisfy
-     simultaneously your obligations under this License and any other
-     pertinent obligations, then as a consequence you may not convey it
-     at all.  For example, if you agree to terms that obligate you to
-     collect a royalty for further conveying from those to whom you
-     convey the Program, the only way you could satisfy both those
-     terms and this License would be to refrain entirely from conveying
-     the Program.
+     If conditions are imposed on you (whether by court order, agreement
+     or otherwise) that contradict the conditions of this License, they
+     do not excuse you from the conditions of this License.  If you
+     cannot convey a covered work so as to satisfy simultaneously your
+     obligations under this License and any other pertinent obligations,
+     then as a consequence you may not convey it at all.  For example,
+     if you agree to terms that obligate you to collect a royalty for
+     further conveying from those to whom you convey the Program, the
+     only way you could satisfy both those terms and this License would
+     be to refrain entirely from conveying the Program.
 
- 13. Use with the GNU Affero General Public License.
 13. Use with the GNU Affero General Public License.
 
      Notwithstanding any other provision of this License, you have
      permission to link or combine any covered work with a work licensed
@@ -4404,26 +4666,25 @@ TERMS AND CONDITIONS
      General Public License, section 13, concerning interaction through
      a network will apply to the combination as such.
 
- 14. Revised Versions of this License.
 14. Revised Versions of this License.
 
      The Free Software Foundation may publish revised and/or new
-     versions of the GNU General Public License from time to time.
-     Such new versions will be similar in spirit to the present
-     version, but may differ in detail to address new problems or
-     concerns.
+     versions of the GNU General Public License from time to time.  Such
+     new versions will be similar in spirit to the present version, but
+     may differ in detail to address new problems or concerns.
 
      Each version is given a distinguishing version number.  If the
      Program specifies that a certain numbered version of the GNU
-     General Public License "or any later version" applies to it, you
+     General Public License “or any later version” applies to it, you
      have the option of following the terms and conditions either of
-     that numbered version or of any later version published by the
-     Free Software Foundation.  If the Program does not specify a
-     version number of the GNU General Public License, you may choose
-     any version ever published by the Free Software Foundation.
+     that numbered version or of any later version published by the Free
+     Software Foundation.  If the Program does not specify a version
+     number of the GNU General Public License, you may choose any
+     version ever published by the Free Software Foundation.
 
      If the Program specifies that a proxy can decide which future
      versions of the GNU General Public License can be used, that
-     proxy's public statement of acceptance of a version permanently
+     proxys public statement of acceptance of a version permanently
      authorizes you to choose that version for the Program.
 
      Later license versions may give you additional or different
@@ -4431,24 +4692,24 @@ TERMS AND CONDITIONS
      author or copyright holder as a result of your choosing to follow a
      later version.
 
- 15. Disclaimer of Warranty.
 15. Disclaimer of Warranty.
 
      THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-     APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE
-     COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS"
+     APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE
+     COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS”
      WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
      INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE
+     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE
      RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
      SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
      NECESSARY SERVICING, REPAIR OR CORRECTION.
 
- 16. Limitation of Liability.
 16. Limitation of Liability.
 
      IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
      WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES
-     AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
-     FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+     AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
+     DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
      CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
      THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
      BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
@@ -4456,7 +4717,7 @@ TERMS AND CONDITIONS
      PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
      THE POSSIBILITY OF SUCH DAMAGES.
 
- 17. Interpretation of Sections 15 and 16.
 17. Interpretation of Sections 15 and 16.
 
      If the disclaimer of warranty and limitation of liability provided
      above cannot be given local legal effect according to their terms,
@@ -4465,7 +4726,6 @@ TERMS AND CONDITIONS
      connection with the Program, unless a warranty or assumption of
      liability accompanies a copy of the Program in return for a fee.
 
-
 END OF TERMS AND CONDITIONS
 ===========================
 
@@ -4480,7 +4740,7 @@ terms.
    To do so, attach the following notices to the program.  It is safest
 to attach them to the start of each source file to most effectively
 state the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
+“copyright” line and a pointer to where the full notice is found.
 
      ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
      Copyright (C) YEAR NAME OF AUTHOR
@@ -4496,7 +4756,7 @@ state the exclusion of warranty; and each file should have at least the
      General Public License for more details.
 
      You should have received a copy of the GNU General Public License
-     along with this program.  If not, see `http://www.gnu.org/licenses/'.
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
    Also add information on how to contact you by electronic and paper
 mail.
@@ -4505,26 +4765,26 @@ mail.
 notice like this when it starts in an interactive mode:
 
      PROGRAM Copyright (C) YEAR NAME OF AUTHOR
-     This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+     This program comes with ABSOLUTELY NO WARRANTY; for details type ‘show w’.
      This is free software, and you are welcome to redistribute it
-     under certain conditions; type `show c' for details.
+     under certain conditions; type ‘show c’ for details.
 
-   The hypothetical commands `show w' and `show c' should show the
+   The hypothetical commands ‘show w’ and ‘show c’ should show the
 appropriate parts of the General Public License.  Of course, your
-program's commands might be different; for a GUI interface, you would
-use an "about box".
+programs commands might be different; for a GUI interface, you would
+use an “about box”.
 
    You should also get your employer (if you work as a programmer) or
-school, if any, to sign a "copyright disclaimer" for the program, if
+school, if any, to sign a “copyright disclaimer” for the program, if
 necessary.  For more information on this, and how to apply and follow
-the GNU GPL, see `http://www.gnu.org/licenses/'.
+the GNU GPL, see <http://www.gnu.org/licenses/>.
 
    The GNU General Public License does not permit incorporating your
 program into proprietary programs.  If your program is a subroutine
 library, you may consider it more useful to permit linking proprietary
 applications with the library.  If this is what you want to do, use the
 GNU Lesser General Public License instead of this License.  But first,
-please read `http://www.gnu.org/philosophy/why-not-lgpl.html'.
+please read <http://www.gnu.org/philosophy/why-not-lgpl.html>.
 
 \1f
 File: libunistring.info,  Node: GNU LGPL,  Next: GNU FDL,  Prev: GNU GPL,  Up: Licenses
@@ -4534,41 +4794,41 @@ A.2 GNU LESSER GENERAL PUBLIC LICENSE
 
                         Version 3, 29 June 2007
 
-     Copyright (C) 2007 Free Software Foundation, Inc. `http://fsf.org/'
+     Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>
 
      Everyone is permitted to copy and distribute verbatim copies of this
      license document, but changing it is not allowed.
 
    This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
+the terms and conditions of version 3 of the GNU General Public License,
+supplemented by the additional permissions listed below.
 
   0. Additional Definitions.
 
-     As used herein, "this License" refers to version 3 of the GNU
-     Lesser General Public License, and the "GNU GPL" refers to version
+     As used herein, “this License” refers to version 3 of the GNU
+     Lesser General Public License, and the “GNU GPL” refers to version
      3 of the GNU General Public License.
 
-     "The Library" refers to a covered work governed by this License,
+     “The Library” refers to a covered work governed by this License,
      other than an Application or a Combined Work as defined below.
 
-     An "Application" is any work that makes use of an interface
+     An “Application” is any work that makes use of an interface
      provided by the Library, but which is not otherwise based on the
      Library.  Defining a subclass of a class defined by the Library is
      deemed a mode of using an interface provided by the Library.
 
-     A "Combined Work" is a work produced by combining or linking an
+     A “Combined Work” is a work produced by combining or linking an
      Application with the Library.  The particular version of the
      Library with which the Combined Work was made is also called the
-     "Linked Version".
+     “Linked Version”.
 
-     The "Minimal Corresponding Source" for a Combined Work means the
+     The “Minimal Corresponding Source” for a Combined Work means the
      Corresponding Source for the Combined Work, excluding any source
      code for portions of the Combined Work that, considered in
      isolation, are based on the Application, and not on the Linked
      Version.
 
-     The "Corresponding Application Code" for a Combined Work means the
+     The “Corresponding Application Code” for a Combined Work means the
      object code and/or source code for the Application, including any
      data and utility programs needed for reproducing the Combined Work
      from the Application, but excluding the System Libraries of the
@@ -4584,12 +4844,12 @@ License, supplemented by the additional permissions listed below.
      If you modify a copy of the Library, and, in your modifications, a
      facility refers to a function or data to be supplied by an
      Application that uses the facility (other than as an argument
-     passed when the facility is invoked), then you may convey a copy
-     of the modified version:
+     passed when the facility is invoked), then you may convey a copy of
+     the modified version:
 
-       a. under this License, provided that you make a good faith
-          effort to ensure that, in the event an Application does not
-          supply the function or data, the facility still operates, and
+       a. under this License, provided that you make a good faith effort
+          to ensure that, in the event an Application does not supply
+          the function or data, the facility still operates, and
           performs whatever part of its purpose remains meaningful, or
 
        b. under the GNU GPL, with none of the additional permissions of
@@ -4608,7 +4868,6 @@ License, supplemented by the additional permissions listed below.
        a. Give prominent notice with each copy of the object code that
           the Library is used in it and that the Library and its use are
           covered by this License.
-
        b. Accompany the object code with a copy of the GNU GPL and this
           license document.
 
@@ -4623,15 +4882,12 @@ License, supplemented by the additional permissions listed below.
        a. Give prominent notice with each copy of the Combined Work that
           the Library is used in it and that the Library and its use are
           covered by this License.
-
        b. Accompany the Combined Work with a copy of the GNU GPL and
           this license document.
-
        c. For a Combined Work that displays copyright notices during
           execution, include the copyright notice for the Library among
           these notices, as well as a reference directing the user to
           the copies of the GNU GPL and this license document.
-
        d. Do one of the following:
 
             0. Convey the Minimal Corresponding Source under the terms
@@ -4642,11 +4898,10 @@ License, supplemented by the additional permissions listed below.
                modified Combined Work, in the manner specified by
                section 6 of the GNU GPL for conveying Corresponding
                Source.
-
             1. Use a suitable shared library mechanism for linking with
                the Library.  A suitable mechanism is one that (a) uses
                at run time a copy of the Library already present on the
-               user's computer system, and (b) will operate properly
+               users computer system, and (b) will operate properly
                with a modified version of the Library that is
                interface-compatible with the Linked Version.
 
@@ -4656,9 +4911,9 @@ License, supplemented by the additional permissions listed below.
           information is necessary to install and execute a modified
           version of the Combined Work produced by recombining or
           relinking the Application with a modified version of the
-          Linked Version. (If you use option 4d0, the Installation
+          Linked Version.  (If you use option 4d0, the Installation
           Information must accompany the Minimal Corresponding Source
-          and Corresponding Application Code. If you use option 4d1,
+          and Corresponding Application Code.  If you use option 4d1,
           you must provide the Installation Information in the manner
           specified by section 6 of the GNU GPL for conveying
           Corresponding Source.)
@@ -4667,14 +4922,13 @@ License, supplemented by the additional permissions listed below.
 
      You may place library facilities that are a work based on the
      Library side by side in a single library together with other
-     library facilities that are not Applications and are not covered
-     by this License, and convey such a combined library under terms of
+     library facilities that are not Applications and are not covered by
+     this License, and convey such a combined library under terms of
      your choice, if you do both of the following:
 
        a. Accompany the combined library with a copy of the same work
           based on the Library, uncombined with any other library
           facilities, conveyed under the terms of this License.
-
        b. Give prominent notice with the combined library that part of
           it is a work based on the Library, and explaining where to
           find the accompanying uncombined form of the same work.
@@ -4683,16 +4937,16 @@ License, supplemented by the additional permissions listed below.
 
      The Free Software Foundation may publish revised and/or new
      versions of the GNU Lesser General Public License from time to
-     time. Such new versions will be similar in spirit to the present
+     time.  Such new versions will be similar in spirit to the present
      version, but may differ in detail to address new problems or
      concerns.
 
-     Each version is given a distinguishing version number. If the
+     Each version is given a distinguishing version number.  If the
      Library as you received it specifies that a certain numbered
-     version of the GNU Lesser General Public License "or any later
-     version" applies to it, you have the option of following the terms
+     version of the GNU Lesser General Public License or any later
+     version applies to it, you have the option of following the terms
      and conditions either of that published version or of any later
-     version published by the Free Software Foundation. If the Library
+     version published by the Free Software Foundation.  If the Library
      as you received it does not specify a version number of the GNU
      Lesser General Public License, you may choose any version of the
      GNU Lesser General Public License ever published by the Free
@@ -4700,11 +4954,10 @@ License, supplemented by the additional permissions listed below.
 
      If the Library as you received it specifies that a proxy can decide
      whether future versions of the GNU Lesser General Public License
-     shall apply, that proxy's public statement of acceptance of any
+     shall apply, that proxys public statement of acceptance of any
      version is permanent authorization for you to choose that version
      for the Library.
 
-
 \1f
 File: libunistring.info,  Node: GNU FDL,  Prev: GNU LGPL,  Up: Licenses
 
@@ -4713,8 +4966,8 @@ A.3 GNU Free Documentation License
 
                      Version 1.3, 3 November 2008
 
-     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     `http://fsf.org/'
+     Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+     <http://fsf.org/>
 
      Everyone is permitted to copy and distribute verbatim copies
      of this license document, but changing it is not allowed.
@@ -4729,7 +4982,7 @@ A.3 GNU Free Documentation License
      author and publisher a way to get credit for their work, while not
      being considered responsible for modifications made by others.
 
-     This License is a kind of "copyleft", which means that derivative
+     This License is a kind of “copyleft”, which means that derivative
      works of the document must themselves be free in the same sense.
      It complements the GNU General Public License, which is a copyleft
      license designed for free software.
@@ -4739,29 +4992,29 @@ A.3 GNU Free Documentation License
      free program should come with manuals providing the same freedoms
      that the software does.  But this License is not limited to
      software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
+     of subject matter or whether it is published as a printed book.  We
+     recommend this License principally for works whose purpose is
      instruction or reference.
 
   1. APPLICABILITY AND DEFINITIONS
 
      This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it
-     can be distributed under the terms of this License.  Such a notice
+     that contains a notice placed by the copyright holder saying it can
+     be distributed under the terms of this License.  Such a notice
      grants a world-wide, royalty-free license, unlimited in duration,
      to use that work under the conditions stated herein.  The
-     "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You
-     accept the license if you copy, modify or distribute the work in a
-     way requiring permission under copyright law.
+     “Document”, below, refers to any such manual or work.  Any member
+     of the public is a licensee, and is addressed as “you”.  You accept
+     the license if you copy, modify or distribute the work in a way
+     requiring permission under copyright law.
 
-     A "Modified Version" of the Document means any work containing the
+     A “Modified Version” of the Document means any work containing the
      Document or a portion of it, either copied verbatim, or with
      modifications and/or translated into another language.
 
-     A "Secondary Section" is a named appendix or a front-matter section
+     A “Secondary Section” is a named appendix or a front-matter section
      of the Document that deals exclusively with the relationship of the
-     publishers or authors of the Document to the Document's overall
+     publishers or authors of the Document to the Documents overall
      subject (or to related matters) and contains nothing that could
      fall directly within that overall subject.  (Thus, if the Document
      is in part a textbook of mathematics, a Secondary Section may not
@@ -4770,62 +5023,62 @@ A.3 GNU Free Documentation License
      of legal, commercial, philosophical, ethical or political position
      regarding them.
 
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.  If a section does not fit the above definition of
-     Secondary then it is not allowed to be designated as Invariant.
-     The Document may contain zero Invariant Sections.  If the Document
-     does not identify any Invariant Sections then there are none.
+     The “Invariant Sections” are certain Secondary Sections whose
+     titles are designated, as being those of Invariant Sections, in the
+     notice that says that the Document is released under this License.
+     If a section does not fit the above definition of Secondary then it
+     is not allowed to be designated as Invariant.  The Document may
+     contain zero Invariant Sections.  If the Document does not identify
+     any Invariant Sections then there are none.
 
-     The "Cover Texts" are certain short passages of text that are
+     The “Cover Texts” are certain short passages of text that are
      listed, as Front-Cover Texts or Back-Cover Texts, in the notice
      that says that the Document is released under this License.  A
      Front-Cover Text may be at most 5 words, and a Back-Cover Text may
      be at most 25 words.
 
-     A "Transparent" copy of the Document means a machine-readable copy,
+     A “Transparent” copy of the Document means a machine-readable copy,
      represented in a format whose specification is available to the
      general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup, or absence of
-     markup, has been arranged to thwart or discourage subsequent
-     modification by readers is not Transparent.  An image format is
-     not Transparent if used for any substantial amount of text.  A
-     copy that is not "Transparent" is called "Opaque".
+     straightforwardly with generic text editors or (for images composed
+     of pixels) generic paint programs or (for drawings) some widely
+     available drawing editor, and that is suitable for input to text
+     formatters or for automatic translation to a variety of formats
+     suitable for input to text formatters.  A copy made in an otherwise
+     Transparent file format whose markup, or absence of markup, has
+     been arranged to thwart or discourage subsequent modification by
+     readers is not Transparent.  An image format is not Transparent if
+     used for any substantial amount of text.  A copy that is not
+     “Transparent” is called “Opaque”.
 
      Examples of suitable formats for Transparent copies include plain
      ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML, PostScript or PDF designed for
-     human modification.  Examples of transparent image formats include
-     PNG, XCF and JPG.  Opaque formats include proprietary formats that
-     can be read and edited only by proprietary word processors, SGML or
-     XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML, PostScript or PDF
-     produced by some word processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
+     SGML or XML using a publicly available DTD, and standard-conforming
+     simple HTML, PostScript or PDF designed for human modification.
+     Examples of transparent image formats include PNG, XCF and JPG.
+     Opaque formats include proprietary formats that can be read and
+     edited only by proprietary word processors, SGML or XML for which
+     the DTD and/or processing tools are not generally available, and
+     the machine-generated HTML, PostScript or PDF produced by some word
+     processors for output purposes only.
+
+     The “Title Page” means, for a printed book, the title page itself,
      plus such following pages as are needed to hold, legibly, the
      material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
+     works in formats which do not have any title page as such, Title
+     Page means the text near the most prominent appearance of the
+     works title, preceding the beginning of the body of the text.
 
-     The "publisher" means any person or entity that distributes copies
+     The “publisher” means any person or entity that distributes copies
      of the Document to the public.
 
-     A section "Entitled XYZ" means a named subunit of the Document
+     A section “Entitled XYZ” means a named subunit of the Document
      whose title either is precisely XYZ or contains XYZ in parentheses
      following text that translates XYZ in another language.  (Here XYZ
      stands for a specific section name mentioned below, such as
-     "Acknowledgements", "Dedications", "Endorsements", or "History".)
-     To "Preserve the Title" of such a section when you modify the
-     Document means that it remains a section "Entitled XYZ" according
+     “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.)
+     To “Preserve the Title” of such a section when you modify the
+     Document means that it remains a section “Entitled XYZ” according
      to this definition.
 
      The Document may include Warranty Disclaimers next to the notice
@@ -4845,8 +5098,8 @@ A.3 GNU Free Documentation License
      may not use technical measures to obstruct or control the reading
      or further copying of the copies you make or distribute.  However,
      you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
+     distribute a large enough number of copies you must also follow the
+     conditions in section 3.
 
      You may also lend copies, under the same conditions stated above,
      and you may publicly display copies.
@@ -4855,17 +5108,16 @@ A.3 GNU Free Documentation License
 
      If you publish printed copies (or copies in media that commonly
      have printed covers) of the Document, numbering more than 100, and
-     the Document's license notice requires Cover Texts, you must
+     the Documents license notice requires Cover Texts, you must
      enclose the copies in covers that carry, clearly and legibly, all
      these Cover Texts: Front-Cover Texts on the front cover, and
      Back-Cover Texts on the back cover.  Both covers must also clearly
      and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
+     front cover must present the full title with all words of the title
+     equally prominent and visible.  You may add other material on the
+     covers in addition.  Copying with changes limited to the covers, as
+     long as they preserve the title of the Document and satisfy these
+     conditions, can be treated as verbatim copying in other respects.
 
      If the required texts for either cover are too voluminous to fit
      legibly, you should put the first ones listed (as many as fit
@@ -4873,40 +5125,39 @@ A.3 GNU Free Documentation License
      adjacent pages.
 
      If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a computer-network location from
-     which the general network-using public has access to download
-     using public-standard network protocols a complete Transparent
-     copy of the Document, free of added material.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
+     numbering more than 100, you must either include a machine-readable
+     Transparent copy along with each Opaque copy, or state in or with
+     each Opaque copy a computer-network location from which the general
+     network-using public has access to download using public-standard
+     network protocols a complete Transparent copy of the Document, free
+     of added material.  If you use the latter option, you must take
+     reasonably prudent steps, when you begin distribution of Opaque
+     copies in quantity, to ensure that this Transparent copy will
+     remain thus accessible at the stated location until at least one
+     year after the last time you distribute an Opaque copy (directly or
+     through your agents or retailers) of that edition to the public.
 
      It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
+     the Document well before redistributing any large number of copies,
+     to give them a chance to provide you with an updated version of the
+     Document.
 
   4. MODIFICATIONS
 
      You may copy and distribute a Modified Version of the Document
      under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
+     release the Modified Version under precisely this License, with the
+     Modified Version filling the role of the Document, thus licensing
+     distribution and modification of the Modified Version to whoever
+     possesses a copy of it.  In addition, you must do these things in
+     the Modified Version:
 
        A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of
-          previous versions (which should, if there were any, be listed
-          in the History section of the Document).  You may use the
-          same title as a previous version if the original publisher of
-          that version gives permission.
+          distinct from that of the Document, and from those of previous
+          versions (which should, if there were any, be listed in the
+          History section of the Document).  You may use the same title
+          as a previous version if the original publisher of that
+          version gives permission.
 
        B. List on the Title Page, as authors, one or more persons or
           entities responsible for authorship of the modifications in
@@ -4929,72 +5180,71 @@ A.3 GNU Free Documentation License
           the Addendum below.
 
        G. Preserve in that license notice the full lists of Invariant
-          Sections and required Cover Texts given in the Document's
+          Sections and required Cover Texts given in the Documents
           license notice.
 
        H. Include an unaltered copy of this License.
 
-       I. Preserve the section Entitled "History", Preserve its Title,
+       I. Preserve the section Entitled “History”, Preserve its Title,
           and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on
-          the Title Page.  If there is no section Entitled "History" in
-          the Document, create one stating the title, year, authors,
-          and publisher of the Document as given on its Title Page,
-          then add an item describing the Modified Version as stated in
-          the previous sentence.
+          authors, and publisher of the Modified Version as given on the
+          Title Page.  If there is no section Entitled “History” in the
+          Document, create one stating the title, year, authors, and
+          publisher of the Document as given on its Title Page, then add
+          an item describing the Modified Version as stated in the
+          previous sentence.
 
        J. Preserve the network location, if any, given in the Document
           for public access to a Transparent copy of the Document, and
           likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in
-          the "History" section.  You may omit a network location for a
-          work that was published at least four years before the
-          Document itself, or if the original publisher of the version
-          it refers to gives permission.
-
-       K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the
-          section all the substance and tone of each of the contributor
+          previous versions it was based on.  These may be placed in the
+          “History” section.  You may omit a network location for a work
+          that was published at least four years before the Document
+          itself, or if the original publisher of the version it refers
+          to gives permission.
+
+       K. For any section Entitled “Acknowledgements” or “Dedications”,
+          Preserve the Title of the section, and preserve in the section
+          all the substance and tone of each of the contributor
           acknowledgements and/or dedications given therein.
 
-       L. Preserve all the Invariant Sections of the Document,
-          unaltered in their text and in their titles.  Section numbers
-          or the equivalent are not considered part of the section
-          titles.
+       L. Preserve all the Invariant Sections of the Document, unaltered
+          in their text and in their titles.  Section numbers or the
+          equivalent are not considered part of the section titles.
 
-       M. Delete any section Entitled "Endorsements".  Such a section
+       M. Delete any section Entitled “Endorsements”.  Such a section
           may not be included in the Modified Version.
 
        N. Do not retitle any existing section to be Entitled
-          "Endorsements" or to conflict in title with any Invariant
+          “Endorsements” or to conflict in title with any Invariant
           Section.
 
        O. Preserve any Warranty Disclaimers.
 
      If the Modified Version includes new front-matter sections or
      appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
+     material copied from the Document, you may at your option designate
+     some or all of these sections as invariant.  To do this, add their
+     titles to the list of Invariant Sections in the Modified Version’s
+     license notice.  These titles must be distinct from any other
+     section titles.
 
-     You may add a section Entitled "Endorsements", provided it contains
+     You may add a section Entitled “Endorsements”, provided it contains
      nothing but endorsements of your Modified Version by various
-     parties--for example, statements of peer review or that the text
-     has been approved by an organization as the authoritative
-     definition of a standard.
+     parties—for example, statements of peer review or that the text has
+     been approved by an organization as the authoritative definition of
+     a standard.
 
      You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
+     and a passage of up to 25 words as a Back-Cover Text, to the end of
+     the list of Cover Texts in the Modified Version.  Only one passage
+     of Front-Cover Text and one of Back-Cover Text may be added by (or
+     through arrangements made by) any one entity.  If the Document
+     already includes a cover text for the same cover, previously added
+     by you or by arrangement made by the same entity you are acting on
+     behalf of, you may not add another; but you may replace the old
+     one, on explicit permission from the previous publisher that added
+     the old one.
 
      The author(s) and publisher(s) of the Document do not by this
      License give permission to use their names for publicity for or to
@@ -5004,8 +5254,8 @@ A.3 GNU Free Documentation License
 
      You may combine the Document with other documents released under
      this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
+     modified versions, provided that you include in the combination all
+     of the Invariant Sections of all of the original documents,
      unmodified, and list them all as Invariant Sections of your
      combined work in its license notice, and that you preserve all
      their Warranty Disclaimers.
@@ -5021,10 +5271,10 @@ A.3 GNU Free Documentation License
      combined work.
 
      In the combination, you must combine any sections Entitled
-     "History" in the various original documents, forming one section
-     Entitled "History"; likewise combine any sections Entitled
-     "Acknowledgements", and any sections Entitled "Dedications".  You
-     must delete all sections Entitled "Endorsements."
+     “History” in the various original documents, forming one section
+     Entitled “History”; likewise combine any sections Entitled
+     “Acknowledgements”, and any sections Entitled “Dedications”.  You
+     must delete all sections Entitled “Endorsements.”
 
   6. COLLECTIONS OF DOCUMENTS
 
@@ -5032,29 +5282,29 @@ A.3 GNU Free Documentation License
      documents released under this License, and replace the individual
      copies of this License in the various documents with a single copy
      that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
+     rules of this License for verbatim copying of each of the documents
+     in all other respects.
 
      You may extract a single document from such a collection, and
      distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
+     a copy of this License into the extracted document, and follow this
+     License in all other respects regarding verbatim copying of that
+     document.
 
   7. AGGREGATION WITH INDEPENDENT WORKS
 
      A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     a storage or distribution medium, is called an "aggregate" if the
+     separate and independent documents or works, in or on a volume of a
+     storage or distribution medium, is called an “aggregate” if the
      copyright resulting from the compilation is not used to limit the
-     legal rights of the compilation's users beyond what the individual
+     legal rights of the compilations users beyond what the individual
      works permit.  When the Document is included in an aggregate, this
      License does not apply to the other works in the aggregate which
      are not themselves derivative works of the Document.
 
      If the Cover Text requirement of section 3 is applicable to these
      copies of the Document, then if the Document is less than one half
-     of the entire aggregate, the Document's Cover Texts may be placed
+     of the entire aggregate, the Documents Cover Texts may be placed
      on covers that bracket the Document within the aggregate, or the
      electronic equivalent of covers if the Document is in electronic
      form.  Otherwise they must appear on printed covers that bracket
@@ -5076,8 +5326,8 @@ A.3 GNU Free Documentation License
      this License or a notice or disclaimer, the original version will
      prevail.
 
-     If a section in the Document is Entitled "Acknowledgements",
-     "Dedications", or "History", the requirement (section 4) to
+     If a section in the Document is Entitled “Acknowledgements”,
+     “Dedications”, or “History”, the requirement (section 4) to
      Preserve its Title (section 1) will typically require changing the
      actual title.
 
@@ -5090,8 +5340,8 @@ A.3 GNU Free Documentation License
 
      However, if you cease all violation of this License, then your
      license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly
-     and finally terminates your license, and (b) permanently, if the
+     provisionally, unless and until the copyright holder explicitly and
+     finally terminates your license, and (b) permanently, if the
      copyright holder fails to notify you of the violation by some
      reasonable means prior to 60 days after the cessation.
 
@@ -5103,52 +5353,52 @@ A.3 GNU Free Documentation License
      after your receipt of the notice.
 
      Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from
-     you under this License.  If your rights have been terminated and
-     not permanently reinstated, receipt of a copy of some or all of
-     the same material does not give you any rights to use it.
+     the licenses of parties who have received copies or rights from you
+     under this License.  If your rights have been terminated and not
+     permanently reinstated, receipt of a copy of some or all of the
+     same material does not give you any rights to use it.
 
- 10. FUTURE REVISIONS OF THIS LICENSE
 10. FUTURE REVISIONS OF THIS LICENSE
 
      The Free Software Foundation may publish new, revised versions of
      the GNU Free Documentation License from time to time.  Such new
      versions will be similar in spirit to the present version, but may
      differ in detail to address new problems or concerns.  See
-     `http://www.gnu.org/copyleft/'.
+     <http://www.gnu.org/copyleft/>.
 
      Each version of the License is given a distinguishing version
      number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
+     version of this License “or any later version” applies to it, you
      have the option of following the terms and conditions either of
      that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.  If the Document specifies that a proxy
-     can decide which future versions of this License can be used, that
-     proxy's public statement of acceptance of a version permanently
+     published (not as a draft) by the Free Software Foundation.  If the
+     Document does not specify a version number of this License, you may
+     choose any version ever published (not as a draft) by the Free
+     Software Foundation.  If the Document specifies that a proxy can
+     decide which future versions of this License can be used, that
+     proxys public statement of acceptance of a version permanently
      authorizes you to choose that version for the Document.
 
- 11. RELICENSING
 11. RELICENSING
 
-     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+     “Massive Multiauthor Collaboration Site” (or “MMC Site”) means any
      World Wide Web server that publishes copyrightable works and also
      provides prominent facilities for anybody to edit those works.  A
      public wiki that anybody can edit is an example of such a server.
-     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+     A “Massive Multiauthor Collaboration” (or “MMC”) contained in the
      site means any set of copyrightable works thus published on the MMC
      site.
 
-     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+     “CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0
      license published by Creative Commons Corporation, a not-for-profit
      corporation with a principal place of business in San Francisco,
      California, as well as future copyleft versions of that license
      published by that same organization.
 
-     "Incorporate" means to publish or republish a Document, in whole or
+     “Incorporate” means to publish or republish a Document, in whole or
      in part, as part of another Document.
 
-     An MMC is "eligible for relicensing" if it is licensed under this
+     An MMC is “eligible for relicensing” if it is licensed under this
      License, and if all works that were first published under this
      License somewhere other than this MMC, and subsequently
      incorporated in whole or in part into the MMC, (1) had no cover
@@ -5159,7 +5409,6 @@ A.3 GNU Free Documentation License
      site under CC-BY-SA on the same site at any time before August 1,
      2009, provided the MMC is eligible for relicensing.
 
-
 ADDENDUM: How to use this License for your documents
 ====================================================
 
@@ -5176,7 +5425,7 @@ notices just after the title page:
        Free Documentation License''.
 
    If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
+Texts, replace the “with…Texts.” line with this:
 
          with the Invariant Sections being LIST THEIR TITLES, with
          the Front-Cover Texts being LIST, and with the Back-Cover Texts
@@ -5187,9 +5436,9 @@ combination of the three, merge those two alternatives to suit the
 situation.
 
    If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
+recommend releasing these examples in parallel under your choice of free
+software license, such as the GNU General Public License, to permit
+their use in free software.
 
 \1f
 File: libunistring.info,  Node: Index,  Prev: Licenses,  Up: Top
@@ -5201,12 +5450,16 @@ Index
 * Menu:
 
 * ambiguous width:                       uniwidth.h.          (line  10)
+* Arabic shaping:                        Arabic shaping.      (line   6)
 * argument conventions:                  Conventions.         (line   9)
 * autoconf macro:                        Autoconf macro.      (line   6)
-* bidirectional category:                Bidirectional category.
-                                                              (line   6)
+* bidi class:                            Bidi class.          (line   6)
+* bidirectional category:                Bidi class.          (line   6)
 * bidirectional reordering:              More functionality.  (line   6)
 * block:                                 Blocks.              (line   6)
+* boundaries, between grapheme clusters: unigbrk.h.           (line   6)
+* boundaries, between words:             uniwbrk.h.           (line   6)
+* breaks, grapheme cluster:              unigbrk.h.           (line   6)
 * breaks, line:                          unilbrk.h.           (line   6)
 * breaks, word:                          uniwbrk.h.           (line   6)
 * bug reports:                           Reporting problems.  (line   6)
@@ -5222,74 +5475,79 @@ Index
 * case mappings:                         Case mappings of strings.
                                                               (line   6)
 * casing_prefix_context_t:               Case mappings of substrings.
-                                                              (line  15)
+                                                              (line  14)
 * casing_suffix_context_t:               Case mappings of substrings.
-                                                              (line  46)
-* char, type:                            char * strings.      (line  23)
+                                                              (line  43)
+* char, type:                            char * strings.      (line  22)
 * combining, Unicode characters:         Composition of characters.
                                                               (line   6)
-* comparing <1>:                         Elementary string functions on NUL terminated strings.
-                                                              (line 130)
 * comparing:                             Elementary string functions.
                                                               (line 108)
+* comparing <1>:                         Elementary string functions on NUL terminated strings.
+                                                              (line 131)
 * comparing, ignoring case:              Case insensitive comparison.
                                                               (line   6)
 * comparing, ignoring case, with collation rules: Case insensitive comparison.
-                                                              (line  66)
+                                                              (line  65)
 * 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  66)
+                                                              (line  65)
 * comparing, ignoring normalization, with collation rules: Normalizing comparisons.
-                                                              (line  23)
+                                                              (line  22)
 * comparing, with collation rules:       Elementary string functions on NUL terminated strings.
-                                                              (line 142)
+                                                              (line 143)
 * comparing, with collation rules, ignoring case: Case insensitive comparison.
-                                                              (line  66)
+                                                              (line  65)
 * comparing, with collation rules, ignoring normalization: Normalizing comparisons.
-                                                              (line  23)
+                                                              (line  22)
 * comparing, with collation rules, ignoring normalization and case: Case insensitive comparison.
-                                                              (line  66)
+                                                              (line  65)
 * compiler options:                      Compiler options.    (line  24)
 * composing, Unicode characters:         Composition of characters.
                                                               (line   6)
-* converting <1>:                        uniconv.h.           (line  45)
 * converting:                            Elementary string conversions.
                                                               (line   6)
-* copying <1>:                           Elementary string functions on NUL terminated strings.
-                                                              (line  61)
+* converting <1>:                        uniconv.h.           (line  45)
 * copying:                               Elementary string functions.
                                                               (line  72)
+* copying <1>:                           Elementary string functions on NUL terminated strings.
+                                                              (line  62)
 * counting:                              Elementary string functions.
                                                               (line 153)
 * decomposing:                           Decomposition of characters.
                                                               (line   6)
 * dependencies:                          Installation.        (line   6)
 * detecting case:                        Case detection.      (line   6)
-* duplicating <1>:                       Elementary string functions on NUL terminated strings.
-                                                              (line 168)
 * duplicating:                           Elementary string functions with memory allocation.
                                                               (line   6)
-* enum iconv_ilseq_handler:              uniconv.h.           (line  30)
+* duplicating <1>:                       Elementary string functions on NUL terminated strings.
+                                                              (line 169)
+* enum iconv_ilseq_handler:              uniconv.h.           (line  29)
 * FDL, GNU Free Documentation License:   GNU FDL.             (line   6)
 * formatted output:                      unistdio.h.          (line   6)
 * fullwidth:                             uniwidth.h.          (line  22)
 * general category:                      General category.    (line   6)
 * gl_LIBUNISTRING:                       Autoconf macro.      (line  11)
 * GPL, GNU General Public License:       GNU GPL.             (line   6)
+* grapheme cluster boundaries:           unigbrk.h.           (line   6)
+* grapheme cluster breaks:               unigbrk.h.           (line   6)
 * halfwidth:                             uniwidth.h.          (line  22)
 * identifiers:                           ISO C and Java syntax.
                                                               (line   6)
 * installation:                          Installation.        (line  10)
 * internationalization:                  Unicode and i18n.    (line   6)
-* iterating <1>:                         Elementary string functions on NUL terminated strings.
-                                                              (line  15)
 * iterating:                             Elementary string functions.
                                                               (line   6)
+* iterating <1>:                         Elementary string functions on NUL terminated strings.
+                                                              (line  15)
 * Java, programming language:            ISO C and Java syntax.
                                                               (line   6)
+* joining group:                         Joining group.       (line   6)
+* joining of Arabic characters:          Arabic shaping.      (line   6)
+* joining type:                          Joining type.        (line   6)
 * LGPL, GNU Lesser General Public License: GNU LGPL.          (line   6)
 * License, GNU FDL:                      GNU FDL.             (line   6)
 * License, GNU GPL:                      GNU GPL.             (line   6)
@@ -5298,12 +5556,12 @@ Index
 * line breaks:                           unilbrk.h.           (line   6)
 * locale:                                Locale encodings.    (line   6)
 * locale categories:                     Locale encodings.    (line  10)
+* locale encoding:                       Locale encodings.    (line  23)
 * locale encoding <1>:                   uniconv.h.           (line  10)
-* locale encoding:                       Locale encodings.    (line  28)
 * locale language:                       Case mappings of strings.
                                                               (line  16)
 * locale, multibyte:                     char * strings.      (line  13)
-* locale_charset:                        uniconv.h.           (line  13)
+* locale_charset:                        uniconv.h.           (line  12)
 * lowercasing:                           Case mappings of strings.
                                                               (line   6)
 * mailing list:                          Reporting problems.  (line   6)
@@ -5316,406 +5574,424 @@ Index
 * rendering:                             More functionality.  (line   9)
 * return value conventions:              Conventions.         (line  47)
 * scripts:                               Scripts.             (line   6)
-* searching, for a character <1>:        Elementary string functions on NUL terminated strings.
-                                                              (line 178)
 * searching, for a character:            Elementary string functions.
                                                               (line 140)
+* searching, for a character <1>:        Elementary string functions on NUL terminated strings.
+                                                              (line 179)
 * searching, for a substring:            Elementary string functions on NUL terminated strings.
-                                                              (line 234)
+                                                              (line 235)
 * stream, normalizing a:                 Normalization of streams.
                                                               (line   6)
 * struct uninorm_filter:                 Normalization of streams.
-                                                              (line  11)
+                                                              (line  10)
 * titlecasing:                           Case mappings of strings.
                                                               (line   6)
-* u16_asnprintf:                         unistdio.h.          (line 132)
-* u16_asprintf:                          unistdio.h.          (line 129)
+* u16_asnprintf:                         unistdio.h.          (line 111)
+* u16_asprintf:                          unistdio.h.          (line 109)
 * u16_casecmp:                           Case insensitive comparison.
-                                                              (line  51)
+                                                              (line  48)
 * u16_casecoll:                          Case insensitive comparison.
-                                                              (line  95)
+                                                              (line  91)
 * u16_casefold:                          Case insensitive comparison.
-                                                              (line  15)
+                                                              (line  12)
 * u16_casexfrm:                          Case insensitive comparison.
-                                                              (line  75)
-* u16_casing_prefix_context:             Case mappings of substrings.
-                                                              (line  30)
+                                                              (line  71)
 * u16_casing_prefixes_context:           Case mappings of substrings.
-                                                              (line  39)
-* u16_casing_suffix_context:             Case mappings of substrings.
-                                                              (line  61)
+                                                              (line  36)
+* u16_casing_prefix_context:             Case mappings of substrings.
+                                                              (line  28)
 * u16_casing_suffixes_context:           Case mappings of substrings.
-                                                              (line  70)
+                                                              (line  65)
+* u16_casing_suffix_context:             Case mappings of substrings.
+                                                              (line  57)
 * u16_check:                             Elementary string checks.
-                                                              (line  11)
+                                                              (line  10)
 * u16_chr:                               Elementary string functions.
-                                                              (line 145)
+                                                              (line 143)
 * u16_cmp:                               Elementary string functions.
-                                                              (line 115)
+                                                              (line 113)
 * u16_cmp2:                              Elementary string functions.
-                                                              (line 131)
-* u16_conv_from_encoding:                uniconv.h.           (line  54)
-* u16_conv_to_encoding:                  uniconv.h.           (line  91)
+                                                              (line 129)
+* u16_conv_from_encoding:                uniconv.h.           (line  51)
+* u16_conv_to_encoding:                  uniconv.h.           (line  88)
 * u16_cpy:                               Elementary string functions.
-                                                              (line  78)
+                                                              (line  76)
 * u16_cpy_alloc:                         Elementary string functions with memory allocation.
-                                                              (line  10)
+                                                              (line   9)
 * u16_ct_casefold:                       Case insensitive comparison.
-                                                              (line  37)
+                                                              (line  32)
 * u16_ct_tolower:                        Case mappings of substrings.
-                                                              (line 107)
+                                                              (line  98)
 * u16_ct_totitle:                        Case mappings of substrings.
-                                                              (line 125)
+                                                              (line 116)
 * u16_ct_toupper:                        Case mappings of substrings.
-                                                              (line  89)
+                                                              (line  80)
 * u16_endswith:                          Elementary string functions on NUL terminated strings.
-                                                              (line 260)
-* u16_is_cased:                          Case detection.      (line  57)
-* u16_is_casefolded:                     Case detection.      (line  44)
-* u16_is_lowercase:                      Case detection.      (line  24)
-* u16_is_titlecase:                      Case detection.      (line  34)
-* u16_is_uppercase:                      Case detection.      (line  14)
-* u16_mblen:                             Elementary string functions.
+                                                              (line 259)
+* u16_grapheme_breaks:                   Grapheme cluster breaks in a string.
+                                                              (line  34)
+* u16_grapheme_next:                     Grapheme cluster breaks in a string.
                                                               (line  11)
+* u16_grapheme_prev:                     Grapheme cluster breaks in a string.
+                                                              (line  21)
+* u16_is_cased:                          Case detection.      (line  55)
+* u16_is_casefolded:                     Case detection.      (line  42)
+* u16_is_lowercase:                      Case detection.      (line  22)
+* u16_is_titlecase:                      Case detection.      (line  32)
+* u16_is_uppercase:                      Case detection.      (line  12)
+* u16_mblen:                             Elementary string functions.
+                                                              (line  10)
 * u16_mbsnlen:                           Elementary string functions.
-                                                              (line 157)
+                                                              (line 156)
 * u16_mbtouc:                            Elementary string functions.
-                                                              (line  38)
-* u16_mbtouc_unsafe:                     Elementary string functions.
-                                                              (line  23)
+                                                              (line  37)
 * u16_mbtoucr:                           Elementary string functions.
-                                                              (line  45)
+                                                              (line  44)
+* u16_mbtouc_unsafe:                     Elementary string functions.
+                                                              (line  21)
 * u16_move:                              Elementary string functions.
-                                                              (line  89)
+                                                              (line  87)
 * u16_next:                              Elementary string functions on NUL terminated strings.
-                                                              (line  24)
+                                                              (line  23)
 * u16_normalize:                         Normalization of strings.
-                                                              (line  50)
+                                                              (line  48)
 * u16_normcmp:                           Normalizing comparisons.
-                                                              (line  13)
+                                                              (line  11)
 * u16_normcoll:                          Normalizing comparisons.
-                                                              (line  40)
+                                                              (line  37)
 * u16_normxfrm:                          Normalizing comparisons.
-                                                              (line  27)
-* u16_possible_linebreaks:               unilbrk.h.           (line  46)
+                                                              (line  24)
+* u16_possible_linebreaks:               unilbrk.h.           (line  44)
 * u16_prev:                              Elementary string functions on NUL terminated strings.
-                                                              (line  36)
+                                                              (line  34)
 * u16_set:                               Elementary string functions.
-                                                              (line 101)
-* u16_snprintf:                          unistdio.h.          (line 126)
-* u16_sprintf:                           unistdio.h.          (line 123)
+                                                              (line 100)
+* u16_snprintf:                          unistdio.h.          (line 107)
+* u16_sprintf:                           unistdio.h.          (line 106)
 * u16_startswith:                        Elementary string functions on NUL terminated strings.
-                                                              (line 252)
+                                                              (line 251)
 * u16_stpcpy:                            Elementary string functions on NUL terminated strings.
-                                                              (line  76)
+                                                              (line  75)
 * u16_stpncpy:                           Elementary string functions on NUL terminated strings.
-                                                              (line  99)
+                                                              (line  98)
 * u16_strcat:                            Elementary string functions on NUL terminated strings.
-                                                              (line 112)
+                                                              (line 111)
 * u16_strchr:                            Elementary string functions on NUL terminated strings.
                                                               (line 182)
 * u16_strcmp:                            Elementary string functions on NUL terminated strings.
                                                               (line 134)
 * u16_strcoll:                           Elementary string functions on NUL terminated strings.
                                                               (line 144)
-* u16_strconv_from_encoding:             uniconv.h.           (line 129)
-* u16_strconv_from_locale:               uniconv.h.           (line 157)
-* u16_strconv_to_encoding:               uniconv.h.           (line 142)
-* u16_strconv_to_locale:                 uniconv.h.           (line 167)
+* u16_strconv_from_encoding:             uniconv.h.           (line 127)
+* u16_strconv_from_locale:               uniconv.h.           (line 156)
+* u16_strconv_to_encoding:               uniconv.h.           (line 140)
+* u16_strconv_to_locale:                 uniconv.h.           (line 166)
 * u16_strcpy:                            Elementary string functions on NUL terminated strings.
-                                                              (line  66)
+                                                              (line  65)
 * u16_strcspn:                           Elementary string functions on NUL terminated strings.
-                                                              (line 203)
+                                                              (line 202)
 * u16_strdup:                            Elementary string functions on NUL terminated strings.
                                                               (line 172)
 * u16_strlen:                            Elementary string functions on NUL terminated strings.
                                                               (line  47)
 * u16_strmblen:                          Elementary string functions on NUL terminated strings.
-                                                              (line  11)
+                                                              (line  10)
 * u16_strmbtouc:                         Elementary string functions on NUL terminated strings.
-                                                              (line  17)
+                                                              (line  16)
 * u16_strncat:                           Elementary string functions on NUL terminated strings.
-                                                              (line 123)
+                                                              (line 122)
 * u16_strncmp:                           Elementary string functions on NUL terminated strings.
-                                                              (line 161)
+                                                              (line 160)
 * u16_strncpy:                           Elementary string functions on NUL terminated strings.
-                                                              (line  88)
+                                                              (line  87)
 * u16_strnlen:                           Elementary string functions on NUL terminated strings.
                                                               (line  55)
 * u16_strpbrk:                           Elementary string functions on NUL terminated strings.
-                                                              (line 227)
+                                                              (line 226)
 * u16_strrchr:                           Elementary string functions on NUL terminated strings.
                                                               (line 190)
 * u16_strspn:                            Elementary string functions on NUL terminated strings.
-                                                              (line 215)
+                                                              (line 214)
 * u16_strstr:                            Elementary string functions on NUL terminated strings.
-                                                              (line 241)
+                                                              (line 240)
 * u16_strtok:                            Elementary string functions on NUL terminated strings.
-                                                              (line 270)
-* u16_strwidth:                          uniwidth.h.          (line  39)
-* u16_to_u32:                            Elementary string conversions.
-                                                              (line  23)
-* u16_to_u8:                             Elementary string conversions.
-                                                              (line  19)
+                                                              (line 269)
+* u16_strwidth:                          uniwidth.h.          (line  38)
 * u16_tolower:                           Case mappings of strings.
-                                                              (line  44)
+                                                              (line  41)
 * u16_totitle:                           Case mappings of strings.
-                                                              (line  58)
+                                                              (line  55)
 * u16_toupper:                           Case mappings of strings.
-                                                              (line  30)
-* u16_u16_asnprintf:                     unistdio.h.          (line 159)
-* u16_u16_asprintf:                      unistdio.h.          (line 156)
-* u16_u16_snprintf:                      unistdio.h.          (line 153)
-* u16_u16_sprintf:                       unistdio.h.          (line 150)
-* u16_u16_vasnprintf:                    unistdio.h.          (line 171)
-* u16_u16_vasprintf:                     unistdio.h.          (line 168)
-* u16_u16_vsnprintf:                     unistdio.h.          (line 165)
-* u16_u16_vsprintf:                      unistdio.h.          (line 162)
+                                                              (line  27)
+* u16_to_u32:                            Elementary string conversions.
+                                                              (line  21)
+* u16_to_u8:                             Elementary string conversions.
+                                                              (line  17)
+* 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_uctomb:                            Elementary string functions.
-                                                              (line  62)
-* u16_vasnprintf:                        unistdio.h.          (line 144)
-* u16_vasprintf:                         unistdio.h.          (line 141)
-* u16_vsnprintf:                         unistdio.h.          (line 138)
-* u16_vsprintf:                          unistdio.h.          (line 135)
-* u16_width:                             uniwidth.h.          (line  31)
-* u16_width_linebreaks:                  unilbrk.h.           (line  65)
+                                                              (line  61)
+* 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_width:                             uniwidth.h.          (line  29)
+* u16_width_linebreaks:                  unilbrk.h.           (line  62)
 * u16_wordbreaks:                        Word breaks in a string.
-                                                              (line  10)
-* u32_asnprintf:                         unistdio.h.          (line 185)
-* u32_asprintf:                          unistdio.h.          (line 182)
+                                                              (line   9)
+* u32_asnprintf:                         unistdio.h.          (line 150)
+* u32_asprintf:                          unistdio.h.          (line 148)
 * u32_casecmp:                           Case insensitive comparison.
-                                                              (line  54)
+                                                              (line  51)
 * u32_casecoll:                          Case insensitive comparison.
-                                                              (line  98)
+                                                              (line  94)
 * u32_casefold:                          Case insensitive comparison.
-                                                              (line  18)
+                                                              (line  15)
 * u32_casexfrm:                          Case insensitive comparison.
-                                                              (line  78)
-* u32_casing_prefix_context:             Case mappings of substrings.
-                                                              (line  32)
+                                                              (line  74)
 * u32_casing_prefixes_context:           Case mappings of substrings.
-                                                              (line  42)
-* u32_casing_suffix_context:             Case mappings of substrings.
-                                                              (line  63)
+                                                              (line  38)
+* u32_casing_prefix_context:             Case mappings of substrings.
+                                                              (line  30)
 * u32_casing_suffixes_context:           Case mappings of substrings.
-                                                              (line  73)
+                                                              (line  67)
+* u32_casing_suffix_context:             Case mappings of substrings.
+                                                              (line  59)
 * u32_check:                             Elementary string checks.
-                                                              (line  12)
+                                                              (line  11)
 * u32_chr:                               Elementary string functions.
-                                                              (line 147)
+                                                              (line 145)
 * u32_cmp:                               Elementary string functions.
-                                                              (line 117)
+                                                              (line 115)
 * u32_cmp2:                              Elementary string functions.
-                                                              (line 133)
-* u32_conv_from_encoding:                uniconv.h.           (line  57)
-* u32_conv_to_encoding:                  uniconv.h.           (line  94)
+                                                              (line 131)
+* u32_conv_from_encoding:                uniconv.h.           (line  54)
+* u32_conv_to_encoding:                  uniconv.h.           (line  91)
 * u32_cpy:                               Elementary string functions.
-                                                              (line  80)
+                                                              (line  78)
 * u32_cpy_alloc:                         Elementary string functions with memory allocation.
-                                                              (line  11)
+                                                              (line  10)
 * u32_ct_casefold:                       Case insensitive comparison.
-                                                              (line  42)
+                                                              (line  37)
 * u32_ct_tolower:                        Case mappings of substrings.
-                                                              (line 112)
+                                                              (line 103)
 * u32_ct_totitle:                        Case mappings of substrings.
-                                                              (line 130)
+                                                              (line 121)
 * u32_ct_toupper:                        Case mappings of substrings.
-                                                              (line  94)
+                                                              (line  85)
 * u32_endswith:                          Elementary string functions on NUL terminated strings.
-                                                              (line 262)
-* u32_is_cased:                          Case detection.      (line  59)
-* u32_is_casefolded:                     Case detection.      (line  46)
-* u32_is_lowercase:                      Case detection.      (line  26)
-* u32_is_titlecase:                      Case detection.      (line  36)
-* u32_is_uppercase:                      Case detection.      (line  16)
+                                                              (line 261)
+* u32_grapheme_breaks:                   Grapheme cluster breaks in a string.
+                                                              (line  36)
+* u32_grapheme_next:                     Grapheme cluster breaks in a string.
+                                                              (line  13)
+* u32_grapheme_prev:                     Grapheme cluster breaks in a string.
+                                                              (line  23)
+* u32_is_cased:                          Case detection.      (line  57)
+* u32_is_casefolded:                     Case detection.      (line  44)
+* u32_is_lowercase:                      Case detection.      (line  24)
+* u32_is_titlecase:                      Case detection.      (line  34)
+* u32_is_uppercase:                      Case detection.      (line  14)
 * u32_mblen:                             Elementary string functions.
-                                                              (line  12)
+                                                              (line  11)
 * u32_mbsnlen:                           Elementary string functions.
-                                                              (line 158)
+                                                              (line 157)
 * u32_mbtouc:                            Elementary string functions.
-                                                              (line  39)
-* u32_mbtouc_unsafe:                     Elementary string functions.
-                                                              (line  25)
+                                                              (line  38)
 * u32_mbtoucr:                           Elementary string functions.
-                                                              (line  46)
+                                                              (line  45)
+* u32_mbtouc_unsafe:                     Elementary string functions.
+                                                              (line  23)
 * u32_move:                              Elementary string functions.
-                                                              (line  91)
+                                                              (line  89)
 * u32_next:                              Elementary string functions on NUL terminated strings.
-                                                              (line  25)
+                                                              (line  24)
 * u32_normalize:                         Normalization of strings.
-                                                              (line  52)
+                                                              (line  50)
 * u32_normcmp:                           Normalizing comparisons.
-                                                              (line  15)
+                                                              (line  13)
 * u32_normcoll:                          Normalizing comparisons.
-                                                              (line  42)
+                                                              (line  39)
 * u32_normxfrm:                          Normalizing comparisons.
-                                                              (line  29)
-* u32_possible_linebreaks:               unilbrk.h.           (line  48)
+                                                              (line  26)
+* u32_possible_linebreaks:               unilbrk.h.           (line  46)
 * u32_prev:                              Elementary string functions on NUL terminated strings.
-                                                              (line  38)
+                                                              (line  36)
 * u32_set:                               Elementary string functions.
-                                                              (line 102)
-* u32_snprintf:                          unistdio.h.          (line 179)
-* u32_sprintf:                           unistdio.h.          (line 176)
+                                                              (line 101)
+* u32_snprintf:                          unistdio.h.          (line 146)
+* u32_sprintf:                           unistdio.h.          (line 145)
 * u32_startswith:                        Elementary string functions on NUL terminated strings.
-                                                              (line 254)
+                                                              (line 253)
 * u32_stpcpy:                            Elementary string functions on NUL terminated strings.
-                                                              (line  78)
+                                                              (line  77)
 * u32_stpncpy:                           Elementary string functions on NUL terminated strings.
-                                                              (line 101)
+                                                              (line 100)
 * u32_strcat:                            Elementary string functions on NUL terminated strings.
-                                                              (line 114)
+                                                              (line 113)
 * u32_strchr:                            Elementary string functions on NUL terminated strings.
                                                               (line 183)
 * u32_strcmp:                            Elementary string functions on NUL terminated strings.
                                                               (line 135)
 * u32_strcoll:                           Elementary string functions on NUL terminated strings.
                                                               (line 145)
-* u32_strconv_from_encoding:             uniconv.h.           (line 131)
-* u32_strconv_from_locale:               uniconv.h.           (line 158)
-* u32_strconv_to_encoding:               uniconv.h.           (line 144)
-* u32_strconv_to_locale:                 uniconv.h.           (line 168)
+* u32_strconv_from_encoding:             uniconv.h.           (line 129)
+* u32_strconv_from_locale:               uniconv.h.           (line 157)
+* u32_strconv_to_encoding:               uniconv.h.           (line 142)
+* u32_strconv_to_locale:                 uniconv.h.           (line 167)
 * u32_strcpy:                            Elementary string functions on NUL terminated strings.
-                                                              (line  68)
+                                                              (line  67)
 * u32_strcspn:                           Elementary string functions on NUL terminated strings.
-                                                              (line 205)
+                                                              (line 204)
 * u32_strdup:                            Elementary string functions on NUL terminated strings.
                                                               (line 173)
 * u32_strlen:                            Elementary string functions on NUL terminated strings.
                                                               (line  48)
 * u32_strmblen:                          Elementary string functions on NUL terminated strings.
-                                                              (line  12)
+                                                              (line  11)
 * u32_strmbtouc:                         Elementary string functions on NUL terminated strings.
-                                                              (line  18)
+                                                              (line  17)
 * u32_strncat:                           Elementary string functions on NUL terminated strings.
-                                                              (line 125)
+                                                              (line 124)
 * u32_strncmp:                           Elementary string functions on NUL terminated strings.
-                                                              (line 163)
+                                                              (line 162)
 * u32_strncpy:                           Elementary string functions on NUL terminated strings.
-                                                              (line  90)
+                                                              (line  89)
 * u32_strnlen:                           Elementary string functions on NUL terminated strings.
                                                               (line  56)
 * u32_strpbrk:                           Elementary string functions on NUL terminated strings.
-                                                              (line 229)
+                                                              (line 228)
 * u32_strrchr:                           Elementary string functions on NUL terminated strings.
                                                               (line 191)
 * u32_strspn:                            Elementary string functions on NUL terminated strings.
-                                                              (line 217)
+                                                              (line 216)
 * u32_strstr:                            Elementary string functions on NUL terminated strings.
-                                                              (line 243)
+                                                              (line 242)
 * u32_strtok:                            Elementary string functions on NUL terminated strings.
-                                                              (line 272)
-* u32_strwidth:                          uniwidth.h.          (line  40)
-* u32_to_u16:                            Elementary string conversions.
-                                                              (line  31)
-* u32_to_u8:                             Elementary string conversions.
-                                                              (line  27)
+                                                              (line 271)
+* u32_strwidth:                          uniwidth.h.          (line  39)
 * u32_tolower:                           Case mappings of strings.
-                                                              (line  47)
+                                                              (line  44)
 * u32_totitle:                           Case mappings of strings.
-                                                              (line  61)
+                                                              (line  58)
 * u32_toupper:                           Case mappings of strings.
-                                                              (line  33)
-* u32_u32_asnprintf:                     unistdio.h.          (line 212)
-* u32_u32_asprintf:                      unistdio.h.          (line 209)
-* u32_u32_snprintf:                      unistdio.h.          (line 206)
-* u32_u32_sprintf:                       unistdio.h.          (line 203)
-* u32_u32_vasnprintf:                    unistdio.h.          (line 224)
-* u32_u32_vasprintf:                     unistdio.h.          (line 221)
-* u32_u32_vsnprintf:                     unistdio.h.          (line 218)
-* u32_u32_vsprintf:                      unistdio.h.          (line 215)
+                                                              (line  30)
+* u32_to_u16:                            Elementary string conversions.
+                                                              (line  29)
+* u32_to_u8:                             Elementary string conversions.
+                                                              (line  25)
+* 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_uctomb:                            Elementary string functions.
-                                                              (line  63)
-* u32_vasnprintf:                        unistdio.h.          (line 197)
-* u32_vasprintf:                         unistdio.h.          (line 194)
-* u32_vsnprintf:                         unistdio.h.          (line 191)
-* u32_vsprintf:                          unistdio.h.          (line 188)
-* u32_width:                             uniwidth.h.          (line  33)
-* u32_width_linebreaks:                  unilbrk.h.           (line  68)
+                                                              (line  62)
+* 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_width:                             uniwidth.h.          (line  31)
+* u32_width_linebreaks:                  unilbrk.h.           (line  65)
 * u32_wordbreaks:                        Word breaks in a string.
-                                                              (line  11)
-* u8_asnprintf:                          unistdio.h.          (line  79)
-* u8_asprintf:                           unistdio.h.          (line  76)
+                                                              (line  10)
+* u8_asnprintf:                          unistdio.h.          (line  72)
+* u8_asprintf:                           unistdio.h.          (line  70)
 * u8_casecmp:                            Case insensitive comparison.
-                                                              (line  48)
+                                                              (line  45)
 * u8_casecoll:                           Case insensitive comparison.
-                                                              (line  92)
+                                                              (line  88)
 * u8_casefold:                           Case insensitive comparison.
-                                                              (line  12)
+                                                              (line   9)
 * u8_casexfrm:                           Case insensitive comparison.
-                                                              (line  72)
-* u8_casing_prefix_context:              Case mappings of substrings.
-                                                              (line  28)
+                                                              (line  68)
 * u8_casing_prefixes_context:            Case mappings of substrings.
-                                                              (line  36)
-* u8_casing_suffix_context:              Case mappings of substrings.
-                                                              (line  59)
+                                                              (line  34)
+* u8_casing_prefix_context:              Case mappings of substrings.
+                                                              (line  26)
 * u8_casing_suffixes_context:            Case mappings of substrings.
-                                                              (line  67)
+                                                              (line  63)
+* u8_casing_suffix_context:              Case mappings of substrings.
+                                                              (line  55)
 * u8_check:                              Elementary string checks.
-                                                              (line  10)
+                                                              (line   9)
 * u8_chr:                                Elementary string functions.
-                                                              (line 143)
+                                                              (line 142)
 * u8_cmp:                                Elementary string functions.
-                                                              (line 113)
+                                                              (line 111)
 * u8_cmp2:                               Elementary string functions.
-                                                              (line 129)
-* u8_conv_from_encoding:                 uniconv.h.           (line  51)
-* u8_conv_to_encoding:                   uniconv.h.           (line  88)
+                                                              (line 127)
+* u8_conv_from_encoding:                 uniconv.h.           (line  48)
+* u8_conv_to_encoding:                   uniconv.h.           (line  85)
 * u8_cpy:                                Elementary string functions.
-                                                              (line  76)
+                                                              (line  74)
 * u8_cpy_alloc:                          Elementary string functions with memory allocation.
-                                                              (line   9)
+                                                              (line   8)
 * u8_ct_casefold:                        Case insensitive comparison.
-                                                              (line  32)
+                                                              (line  27)
 * u8_ct_tolower:                         Case mappings of substrings.
-                                                              (line 102)
+                                                              (line  93)
 * u8_ct_totitle:                         Case mappings of substrings.
-                                                              (line 120)
+                                                              (line 111)
 * u8_ct_toupper:                         Case mappings of substrings.
-                                                              (line  84)
+                                                              (line  75)
 * u8_endswith:                           Elementary string functions on NUL terminated strings.
-                                                              (line 258)
-* u8_is_cased:                           Case detection.      (line  55)
-* u8_is_casefolded:                      Case detection.      (line  42)
-* u8_is_lowercase:                       Case detection.      (line  22)
-* u8_is_titlecase:                       Case detection.      (line  32)
-* u8_is_uppercase:                       Case detection.      (line  12)
+                                                              (line 257)
+* u8_grapheme_breaks:                    Grapheme cluster breaks in a string.
+                                                              (line  32)
+* u8_grapheme_next:                      Grapheme cluster breaks in a string.
+                                                              (line   9)
+* u8_grapheme_prev:                      Grapheme cluster breaks in a string.
+                                                              (line  19)
+* u8_is_cased:                           Case detection.      (line  53)
+* u8_is_casefolded:                      Case detection.      (line  40)
+* u8_is_lowercase:                       Case detection.      (line  20)
+* u8_is_titlecase:                       Case detection.      (line  30)
+* u8_is_uppercase:                       Case detection.      (line  10)
 * u8_mblen:                              Elementary string functions.
-                                                              (line  10)
+                                                              (line   9)
 * u8_mbsnlen:                            Elementary string functions.
-                                                              (line 156)
+                                                              (line 155)
 * u8_mbtouc:                             Elementary string functions.
-                                                              (line  37)
-* u8_mbtouc_unsafe:                      Elementary string functions.
-                                                              (line  21)
+                                                              (line  36)
 * u8_mbtoucr:                            Elementary string functions.
-                                                              (line  44)
+                                                              (line  43)
+* u8_mbtouc_unsafe:                      Elementary string functions.
+                                                              (line  19)
 * u8_move:                               Elementary string functions.
-                                                              (line  87)
+                                                              (line  85)
 * u8_next:                               Elementary string functions on NUL terminated strings.
-                                                              (line  23)
+                                                              (line  22)
 * u8_normalize:                          Normalization of strings.
-                                                              (line  48)
+                                                              (line  46)
 * u8_normcmp:                            Normalizing comparisons.
-                                                              (line  11)
+                                                              (line   9)
 * u8_normcoll:                           Normalizing comparisons.
-                                                              (line  38)
+                                                              (line  35)
 * u8_normxfrm:                           Normalizing comparisons.
-                                                              (line  25)
-* u8_possible_linebreaks:                unilbrk.h.           (line  44)
+                                                              (line  22)
+* u8_possible_linebreaks:                unilbrk.h.           (line  42)
 * u8_prev:                               Elementary string functions on NUL terminated strings.
-                                                              (line  34)
+                                                              (line  32)
 * u8_set:                                Elementary string functions.
-                                                              (line 100)
-* u8_snprintf:                           unistdio.h.          (line  73)
-* u8_sprintf:                            unistdio.h.          (line  70)
+                                                              (line  99)
+* u8_snprintf:                           unistdio.h.          (line  68)
+* u8_sprintf:                            unistdio.h.          (line  67)
 * u8_startswith:                         Elementary string functions on NUL terminated strings.
-                                                              (line 250)
+                                                              (line 249)
 * u8_stpcpy:                             Elementary string functions on NUL terminated strings.
                                                               (line  74)
 * u8_stpncpy:                            Elementary string functions on NUL terminated strings.
-                                                              (line  97)
+                                                              (line  96)
 * u8_strcat:                             Elementary string functions on NUL terminated strings.
                                                               (line 110)
 * u8_strchr:                             Elementary string functions on NUL terminated strings.
@@ -5724,344 +6000,379 @@ Index
                                                               (line 133)
 * u8_strcoll:                            Elementary string functions on NUL terminated strings.
                                                               (line 143)
-* u8_strconv_from_encoding:              uniconv.h.           (line 127)
-* u8_strconv_from_locale:                uniconv.h.           (line 156)
-* u8_strconv_to_encoding:                uniconv.h.           (line 140)
-* u8_strconv_to_locale:                  uniconv.h.           (line 166)
+* u8_strconv_from_encoding:              uniconv.h.           (line 125)
+* u8_strconv_from_locale:                uniconv.h.           (line 155)
+* u8_strconv_to_encoding:                uniconv.h.           (line 138)
+* u8_strconv_to_locale:                  uniconv.h.           (line 165)
 * u8_strcpy:                             Elementary string functions on NUL terminated strings.
                                                               (line  64)
 * u8_strcspn:                            Elementary string functions on NUL terminated strings.
-                                                              (line 201)
+                                                              (line 200)
 * u8_strdup:                             Elementary string functions on NUL terminated strings.
                                                               (line 171)
 * u8_strlen:                             Elementary string functions on NUL terminated strings.
                                                               (line  46)
 * u8_strmblen:                           Elementary string functions on NUL terminated strings.
-                                                              (line  10)
+                                                              (line   9)
 * u8_strmbtouc:                          Elementary string functions on NUL terminated strings.
-                                                              (line  16)
+                                                              (line  15)
 * u8_strncat:                            Elementary string functions on NUL terminated strings.
-                                                              (line 121)
+                                                              (line 120)
 * u8_strncmp:                            Elementary string functions on NUL terminated strings.
-                                                              (line 159)
+                                                              (line 158)
 * u8_strncpy:                            Elementary string functions on NUL terminated strings.
-                                                              (line  86)
+                                                              (line  85)
 * u8_strnlen:                            Elementary string functions on NUL terminated strings.
                                                               (line  54)
 * u8_strpbrk:                            Elementary string functions on NUL terminated strings.
-                                                              (line 225)
+                                                              (line 224)
 * u8_strrchr:                            Elementary string functions on NUL terminated strings.
                                                               (line 189)
 * u8_strspn:                             Elementary string functions on NUL terminated strings.
-                                                              (line 213)
+                                                              (line 212)
 * u8_strstr:                             Elementary string functions on NUL terminated strings.
-                                                              (line 239)
+                                                              (line 238)
 * u8_strtok:                             Elementary string functions on NUL terminated strings.
-                                                              (line 268)
-* u8_strwidth:                           uniwidth.h.          (line  38)
-* u8_to_u16:                             Elementary string conversions.
-                                                              (line  11)
-* u8_to_u32:                             Elementary string conversions.
-                                                              (line  15)
+                                                              (line 267)
+* u8_strwidth:                           uniwidth.h.          (line  37)
 * u8_tolower:                            Case mappings of strings.
-                                                              (line  41)
+                                                              (line  38)
 * u8_totitle:                            Case mappings of strings.
-                                                              (line  55)
+                                                              (line  52)
 * u8_toupper:                            Case mappings of strings.
-                                                              (line  27)
-* u8_u8_asnprintf:                       unistdio.h.          (line 106)
-* u8_u8_asprintf:                        unistdio.h.          (line 103)
-* u8_u8_snprintf:                        unistdio.h.          (line 100)
-* u8_u8_sprintf:                         unistdio.h.          (line  97)
-* u8_u8_vasnprintf:                      unistdio.h.          (line 118)
-* u8_u8_vasprintf:                       unistdio.h.          (line 115)
-* u8_u8_vsnprintf:                       unistdio.h.          (line 112)
-* u8_u8_vsprintf:                        unistdio.h.          (line 109)
+                                                              (line  24)
+* u8_to_u16:                             Elementary string conversions.
+                                                              (line   9)
+* u8_to_u32:                             Elementary string conversions.
+                                                              (line  13)
+* 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_uctomb:                             Elementary string functions.
-                                                              (line  61)
-* u8_vasnprintf:                         unistdio.h.          (line  91)
-* u8_vasprintf:                          unistdio.h.          (line  88)
-* u8_vsnprintf:                          unistdio.h.          (line  85)
-* u8_vsprintf:                           unistdio.h.          (line  82)
-* u8_width:                              uniwidth.h.          (line  29)
-* u8_width_linebreaks:                   unilbrk.h.           (line  62)
+                                                              (line  60)
+* 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_width:                              uniwidth.h.          (line  27)
+* u8_width_linebreaks:                   unilbrk.h.           (line  59)
 * u8_wordbreaks:                         Word breaks in a string.
-                                                              (line   9)
-* uc_all_blocks:                         Blocks.              (line  38)
-* uc_all_scripts:                        Scripts.             (line  37)
-* uc_bidi_category:                      Bidirectional category.
-                                                              (line  88)
-* uc_bidi_category_byname:               Bidirectional category.
-                                                              (line  82)
-* uc_bidi_category_name:                 Bidirectional category.
-                                                              (line  79)
-* uc_block:                              Blocks.              (line  27)
-* uc_block_t:                            Blocks.              (line  12)
-* uc_c_ident_category:                   ISO C and Java syntax.
-                                                              (line  39)
+                                                              (line   8)
+* UCS-4:                                 Unicode.             (line  14)
+* ucs4_t:                                unitypes.h.          (line  15)
+* uc_all_blocks:                         Blocks.              (line  36)
+* uc_all_scripts:                        Scripts.             (line  35)
+* uc_bidi_category:                      Bidi class.          (line  93)
+* uc_bidi_category_byname:               Bidi class.          (line  83)
+* uc_bidi_category_name:                 Bidi class.          (line  75)
+* uc_bidi_class:                         Bidi class.          (line  92)
+* uc_bidi_class_byname:                  Bidi class.          (line  82)
+* uc_bidi_class_long_name:               Bidi class.          (line  79)
+* uc_bidi_class_name:                    Bidi class.          (line  74)
+* uc_block:                              Blocks.              (line  26)
+* uc_block_t:                            Blocks.              (line  11)
 * uc_canonical_decomposition:            Decomposition of characters.
-                                                              (line  92)
+                                                              (line  90)
 * uc_combining_class:                    Canonical combining class.
-                                                              (line  89)
+                                                              (line 110)
+* uc_combining_class_byname:             Canonical combining class.
+                                                              (line 101)
+* uc_combining_class_long_name:          Canonical combining class.
+                                                              (line  97)
+* uc_combining_class_name:               Canonical combining class.
+                                                              (line  92)
 * uc_composition:                        Composition of characters.
-                                                              (line  10)
-* uc_decimal_value:                      Decimal digit value. (line  11)
+                                                              (line   9)
+* uc_c_ident_category:                   ISO C and Java syntax.
+                                                              (line  38)
+* uc_decimal_value:                      Decimal digit value. (line  10)
 * uc_decomposition:                      Decomposition of characters.
-                                                              (line  82)
-* uc_digit_value:                        Digit value.         (line  11)
-* uc_fraction_t:                         Numeric value.       (line  14)
-* uc_general_category:                   Object oriented API. (line 207)
-* uc_general_category_and:               Object oriented API. (line 179)
-* uc_general_category_and_not:           Object oriented API. (line 186)
-* uc_general_category_byname:            Object oriented API. (line 201)
-* uc_general_category_name:              Object oriented API. (line 195)
-* uc_general_category_or:                Object oriented API. (line 173)
-* uc_general_category_t:                 Object oriented API. (line   7)
+                                                              (line  80)
+* uc_digit_value:                        Digit value.         (line  10)
+* uc_fraction_t:                         Numeric value.       (line  12)
+* uc_general_category:                   Object oriented API. (line 219)
+* uc_general_category_and:               Object oriented API. (line 180)
+* uc_general_category_and_not:           Object oriented API. (line 187)
+* uc_general_category_byname:            Object oriented API. (line 209)
+* uc_general_category_long_name:         Object oriented API. (line 203)
+* uc_general_category_name:              Object oriented API. (line 197)
+* uc_general_category_or:                Object oriented API. (line 174)
+* uc_general_category_t:                 Object oriented API. (line   6)
+* uc_graphemeclusterbreak_property:      Grapheme cluster break property.
+                                                              (line  31)
 * uc_is_alnum:                           Classifications like in ISO C.
-                                                              (line  14)
+                                                              (line  13)
 * uc_is_alpha:                           Classifications like in ISO C.
-                                                              (line  18)
-* uc_is_bidi_category:                   Bidirectional category.
-                                                              (line  91)
+                                                              (line  17)
+* uc_is_bidi_category:                   Bidi class.          (line  97)
+* uc_is_bidi_class:                      Bidi class.          (line  96)
 * uc_is_blank:                           Classifications like in ISO C.
-                                                              (line  64)
-* uc_is_block:                           Blocks.              (line  32)
-* uc_is_c_whitespace:                    ISO C and Java syntax.
-                                                              (line  10)
+                                                              (line  63)
+* uc_is_block:                           Blocks.              (line  31)
 * uc_is_cntrl:                           Classifications like in ISO C.
-                                                              (line  24)
+                                                              (line  23)
+* uc_is_c_whitespace:                    ISO C and Java syntax.
+                                                              (line   9)
 * uc_is_digit:                           Classifications like in ISO C.
-                                                              (line  27)
-* uc_is_general_category:                Object oriented API. (line 213)
-* uc_is_general_category_withtable:      Bit mask API.        (line  52)
+                                                              (line  26)
+* uc_is_general_category:                Object oriented API. (line 224)
+* uc_is_general_category_withtable:      Bit mask API.        (line  51)
 * uc_is_graph:                           Classifications like in ISO C.
-                                                              (line  31)
+                                                              (line  30)
+* uc_is_grapheme_break:                  Grapheme cluster break property.
+                                                              (line  38)
 * uc_is_java_whitespace:                 ISO C and Java syntax.
-                                                              (line  14)
+                                                              (line  13)
 * uc_is_lower:                           Classifications like in ISO C.
-                                                              (line  35)
+                                                              (line  34)
 * uc_is_print:                           Classifications like in ISO C.
-                                                              (line  41)
+                                                              (line  40)
 * uc_is_property:                        Properties as objects.
-                                                              (line 140)
+                                                              (line 150)
 * uc_is_property_alphabetic:             Properties as functions.
-                                                              (line  10)
+                                                              (line   9)
 * uc_is_property_ascii_hex_digit:        Properties as functions.
-                                                              (line  74)
+                                                              (line  80)
 * uc_is_property_bidi_arabic_digit:      Properties as functions.
-                                                              (line  60)
+                                                              (line  66)
 * uc_is_property_bidi_arabic_right_to_left: Properties as functions.
-                                                              (line  56)
-* uc_is_property_bidi_block_separator:   Properties as functions.
                                                               (line  62)
+* uc_is_property_bidi_block_separator:   Properties as functions.
+                                                              (line  68)
 * uc_is_property_bidi_boundary_neutral:  Properties as functions.
-                                                              (line  66)
+                                                              (line  72)
 * uc_is_property_bidi_common_separator:  Properties as functions.
-                                                              (line  61)
+                                                              (line  67)
 * uc_is_property_bidi_control:           Properties as functions.
-                                                              (line  53)
+                                                              (line  59)
 * uc_is_property_bidi_embedding_or_override: Properties as functions.
-                                                              (line  68)
+                                                              (line  74)
+* uc_is_property_bidi_european_digit:    Properties as functions.
+                                                              (line  63)
 * uc_is_property_bidi_eur_num_separator: Properties as functions.
-                                                              (line  58)
+                                                              (line  64)
 * uc_is_property_bidi_eur_num_terminator: Properties as functions.
-                                                              (line  59)
-* uc_is_property_bidi_european_digit:    Properties as functions.
-                                                              (line  57)
+                                                              (line  65)
 * uc_is_property_bidi_hebrew_right_to_left: Properties as functions.
-                                                              (line  55)
+                                                              (line  61)
 * uc_is_property_bidi_left_to_right:     Properties as functions.
-                                                              (line  54)
+                                                              (line  60)
 * uc_is_property_bidi_non_spacing_mark:  Properties as functions.
-                                                              (line  65)
+                                                              (line  71)
 * uc_is_property_bidi_other_neutral:     Properties as functions.
-                                                              (line  69)
+                                                              (line  75)
 * uc_is_property_bidi_pdf:               Properties as functions.
-                                                              (line  67)
+                                                              (line  73)
 * uc_is_property_bidi_segment_separator: Properties as functions.
-                                                              (line  63)
+                                                              (line  69)
 * uc_is_property_bidi_whitespace:        Properties as functions.
-                                                              (line  64)
+                                                              (line  70)
+* uc_is_property_cased:                  Properties as functions.
+                                                              (line  29)
+* uc_is_property_case_ignorable:         Properties as functions.
+                                                              (line  30)
+* uc_is_property_changes_when_casefolded: Properties as functions.
+                                                              (line  34)
+* uc_is_property_changes_when_casemapped: Properties as functions.
+                                                              (line  35)
+* uc_is_property_changes_when_lowercased: Properties as functions.
+                                                              (line  31)
+* uc_is_property_changes_when_titlecased: Properties as functions.
+                                                              (line  33)
+* uc_is_property_changes_when_uppercased: Properties as functions.
+                                                              (line  32)
 * uc_is_property_combining:              Properties as functions.
-                                                              (line 104)
+                                                              (line 110)
 * uc_is_property_composite:              Properties as functions.
-                                                              (line 105)
+                                                              (line 111)
 * uc_is_property_currency_symbol:        Properties as functions.
-                                                              (line  99)
+                                                              (line 105)
 * uc_is_property_dash:                   Properties as functions.
-                                                              (line  91)
+                                                              (line  97)
 * uc_is_property_decimal_digit:          Properties as functions.
-                                                              (line 106)
+                                                              (line 112)
 * uc_is_property_default_ignorable_code_point: Properties as functions.
-                                                              (line  14)
+                                                              (line  12)
 * uc_is_property_deprecated:             Properties as functions.
-                                                              (line  17)
+                                                              (line  16)
 * uc_is_property_diacritic:              Properties as functions.
-                                                              (line 108)
+                                                              (line 114)
 * uc_is_property_extender:               Properties as functions.
-                                                              (line 109)
+                                                              (line 115)
 * uc_is_property_format_control:         Properties as functions.
-                                                              (line  90)
+                                                              (line  96)
 * uc_is_property_grapheme_base:          Properties as functions.
-                                                              (line  46)
+                                                              (line  52)
 * uc_is_property_grapheme_extend:        Properties as functions.
-                                                              (line  47)
+                                                              (line  53)
 * uc_is_property_grapheme_link:          Properties as functions.
-                                                              (line  49)
+                                                              (line  55)
 * uc_is_property_hex_digit:              Properties as functions.
-                                                              (line  73)
+                                                              (line  79)
 * uc_is_property_hyphen:                 Properties as functions.
-                                                              (line  92)
-* uc_is_property_id_continue:            Properties as functions.
-                                                              (line  36)
-* uc_is_property_id_start:               Properties as functions.
-                                                              (line  34)
+                                                              (line  98)
 * uc_is_property_ideographic:            Properties as functions.
-                                                              (line  78)
+                                                              (line  84)
 * uc_is_property_ids_binary_operator:    Properties as functions.
-                                                              (line  81)
+                                                              (line  87)
 * uc_is_property_ids_trinary_operator:   Properties as functions.
-                                                              (line  82)
+                                                              (line  88)
+* 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 110)
+                                                              (line 116)
 * uc_is_property_iso_control:            Properties as functions.
-                                                              (line  89)
+                                                              (line  95)
 * uc_is_property_join_control:           Properties as functions.
-                                                              (line  45)
+                                                              (line  51)
 * uc_is_property_left_of_pair:           Properties as functions.
-                                                              (line 103)
+                                                              (line 109)
 * uc_is_property_line_separator:         Properties as functions.
-                                                              (line  94)
+                                                              (line 100)
 * uc_is_property_logical_order_exception: Properties as functions.
-                                                              (line  18)
+                                                              (line  17)
 * uc_is_property_lowercase:              Properties as functions.
-                                                              (line  27)
+                                                              (line  26)
 * uc_is_property_math:                   Properties as functions.
-                                                              (line 100)
+                                                              (line 106)
 * uc_is_property_non_break:              Properties as functions.
-                                                              (line  88)
+                                                              (line  94)
 * uc_is_property_not_a_character:        Properties as functions.
-                                                              (line  12)
+                                                              (line  11)
 * uc_is_property_numeric:                Properties as functions.
-                                                              (line 107)
+                                                              (line 113)
 * uc_is_property_other_alphabetic:       Properties as functions.
-                                                              (line  11)
+                                                              (line  10)
 * uc_is_property_other_default_ignorable_code_point: Properties as functions.
-                                                              (line  16)
+                                                              (line  14)
 * uc_is_property_other_grapheme_extend:  Properties as functions.
-                                                              (line  48)
+                                                              (line  54)
 * uc_is_property_other_id_continue:      Properties as functions.
-                                                              (line  37)
+                                                              (line  43)
 * uc_is_property_other_id_start:         Properties as functions.
-                                                              (line  35)
+                                                              (line  41)
 * uc_is_property_other_lowercase:        Properties as functions.
-                                                              (line  28)
+                                                              (line  27)
 * uc_is_property_other_math:             Properties as functions.
-                                                              (line 101)
+                                                              (line 107)
 * uc_is_property_other_uppercase:        Properties as functions.
-                                                              (line  26)
+                                                              (line  25)
 * uc_is_property_paired_punctuation:     Properties as functions.
-                                                              (line 102)
+                                                              (line 108)
 * uc_is_property_paragraph_separator:    Properties as functions.
-                                                              (line  95)
+                                                              (line 101)
 * uc_is_property_pattern_syntax:         Properties as functions.
-                                                              (line  41)
+                                                              (line  47)
 * uc_is_property_pattern_white_space:    Properties as functions.
-                                                              (line  40)
+                                                              (line  46)
 * uc_is_property_private_use:            Properties as functions.
-                                                              (line  20)
+                                                              (line  19)
 * uc_is_property_punctuation:            Properties as functions.
-                                                              (line  93)
+                                                              (line  99)
 * uc_is_property_quotation_mark:         Properties as functions.
-                                                              (line  96)
+                                                              (line 102)
 * uc_is_property_radical:                Properties as functions.
-                                                              (line  80)
+                                                              (line  86)
 * uc_is_property_sentence_terminal:      Properties as functions.
-                                                              (line  97)
+                                                              (line 103)
 * uc_is_property_soft_dotted:            Properties as functions.
-                                                              (line  30)
+                                                              (line  36)
 * uc_is_property_space:                  Properties as functions.
-                                                              (line  87)
+                                                              (line  93)
 * uc_is_property_terminal_punctuation:   Properties as functions.
-                                                              (line  98)
+                                                              (line 104)
 * uc_is_property_titlecase:              Properties as functions.
-                                                              (line  29)
+                                                              (line  28)
 * uc_is_property_unassigned_code_value:  Properties as functions.
-                                                              (line  21)
+                                                              (line  20)
 * uc_is_property_unified_ideograph:      Properties as functions.
-                                                              (line  79)
+                                                              (line  85)
 * uc_is_property_uppercase:              Properties as functions.
-                                                              (line  25)
+                                                              (line  24)
 * uc_is_property_variation_selector:     Properties as functions.
-                                                              (line  19)
+                                                              (line  18)
 * uc_is_property_white_space:            Properties as functions.
-                                                              (line   9)
+                                                              (line   8)
 * uc_is_property_xid_continue:           Properties as functions.
-                                                              (line  39)
+                                                              (line  45)
 * uc_is_property_xid_start:              Properties as functions.
-                                                              (line  38)
+                                                              (line  44)
 * uc_is_property_zero_width:             Properties as functions.
-                                                              (line  86)
+                                                              (line  92)
 * uc_is_punct:                           Classifications like in ISO C.
-                                                              (line  44)
-* uc_is_script:                          Scripts.             (line  31)
+                                                              (line  43)
+* uc_is_script:                          Scripts.             (line  30)
 * uc_is_space:                           Classifications like in ISO C.
-                                                              (line  49)
+                                                              (line  48)
 * uc_is_upper:                           Classifications like in ISO C.
-                                                              (line  54)
+                                                              (line  53)
 * uc_is_xdigit:                          Classifications like in ISO C.
-                                                              (line  60)
+                                                              (line  59)
 * uc_java_ident_category:                ISO C and Java syntax.
-                                                              (line  43)
+                                                              (line  42)
+* uc_joining_group:                      Joining group.       (line  85)
+* uc_joining_group_byname:               Joining group.       (line  76)
+* uc_joining_group_name:                 Joining group.       (line  73)
+* uc_joining_type:                       Joining type.        (line  54)
+* uc_joining_type_byname:                Joining type.        (line  45)
+* uc_joining_type_long_name:             Joining type.        (line  42)
+* uc_joining_type_name:                  Joining type.        (line  39)
 * uc_locale_language:                    Case mappings of strings.
-                                                              (line  21)
-* uc_mirror_char:                        Mirrored character.  (line  14)
-* uc_numeric_value:                      Numeric value.       (line  23)
+                                                              (line  20)
+* uc_mirror_char:                        Mirrored character.  (line  13)
+* uc_numeric_value:                      Numeric value.       (line  21)
 * uc_property_byname:                    Properties as objects.
-                                                              (line 123)
+                                                              (line 128)
 * uc_property_is_valid:                  Properties as objects.
-                                                              (line 133)
+                                                              (line 143)
 * uc_property_t:                         Properties as objects.
-                                                              (line   9)
-* uc_script:                             Scripts.             (line  20)
-* uc_script_byname:                      Scripts.             (line  25)
-* uc_script_t:                           Scripts.             (line  11)
+                                                              (line   8)
+* uc_script:                             Scripts.             (line  19)
+* uc_script_byname:                      Scripts.             (line  23)
+* uc_script_t:                           Scripts.             (line  10)
 * uc_tolower:                            Case mappings of characters.
-                                                              (line  20)
+                                                              (line  19)
 * uc_totitle:                            Case mappings of characters.
-                                                              (line  23)
+                                                              (line  22)
 * uc_toupper:                            Case mappings of characters.
-                                                              (line  17)
-* uc_width:                              uniwidth.h.          (line  23)
-* uc_wordbreak_property:                 Word break property. (line  32)
-* UCS-4:                                 Unicode.             (line  14)
-* ucs4_t:                                unitypes.h.          (line  16)
-* uint16_t:                              unitypes.h.          (line  10)
-* uint32_t:                              unitypes.h.          (line  11)
-* uint8_t:                               unitypes.h.          (line   9)
-* ulc_asnprintf:                         unistdio.h.          (line  53)
-* ulc_asprintf:                          unistdio.h.          (line  50)
+                                                              (line  16)
+* uc_width:                              uniwidth.h.          (line  22)
+* uc_wordbreak_property:                 Word break property. (line  31)
+* 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_casecmp:                           Case insensitive comparison.
-                                                              (line  57)
+                                                              (line  54)
 * ulc_casecoll:                          Case insensitive comparison.
-                                                              (line 101)
+                                                              (line  97)
 * ulc_casexfrm:                          Case insensitive comparison.
-                                                              (line  81)
-* ulc_fprintf:                           unistdio.h.          (line 229)
-* ulc_possible_linebreaks:               unilbrk.h.           (line  50)
-* ulc_snprintf:                          unistdio.h.          (line  48)
-* ulc_sprintf:                           unistdio.h.          (line  45)
-* ulc_vasnprintf:                        unistdio.h.          (line  65)
-* ulc_vasprintf:                         unistdio.h.          (line  62)
-* ulc_vfprintf:                          unistdio.h.          (line 232)
-* ulc_vsnprintf:                         unistdio.h.          (line  59)
-* ulc_vsprintf:                          unistdio.h.          (line  56)
-* ulc_width_linebreaks:                  unilbrk.h.           (line  71)
+                                                              (line  77)
+* ulc_fprintf:                           unistdio.h.          (line 184)
+* ulc_grapheme_breaks:                   Grapheme cluster breaks in a string.
+                                                              (line  38)
+* ulc_possible_linebreaks:               unilbrk.h.           (line  48)
+* 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_width_linebreaks:                  unilbrk.h.           (line  68)
 * ulc_wordbreaks:                        Word breaks in a string.
-                                                              (line  12)
+                                                              (line  11)
 * Unicode:                               Unicode.             (line   6)
-* Unicode character, bidirectional category: Bidirectional category.
-                                                              (line   6)
+* Unicode character, bidi class:         Bidi class.          (line   6)
+* Unicode character, bidirectional category: Bidi class.      (line   6)
 * Unicode character, block:              Blocks.              (line  24)
 * Unicode character, canonical combining class: Canonical combining class.
                                                               (line   6)
@@ -6079,31 +6390,31 @@ Index
                                                               (line  38)
 * Unicode character, validity in Java identifiers: ISO C and Java syntax.
                                                               (line  42)
-* Unicode character, value <1>:          Numeric value.       (line   6)
-* Unicode character, value <2>:          Digit value.         (line   6)
 * Unicode character, value:              Decimal digit value. (line   6)
+* Unicode character, value <1>:          Digit value.         (line   6)
+* Unicode character, value <2>:          Numeric value.       (line   6)
 * Unicode character, width:              uniwidth.h.          (line  22)
-* unicode_character_name:                uniname.h.           (line  19)
-* unicode_name_character:                uniname.h.           (line  25)
+* unicode_character_name:                uniname.h.           (line  18)
+* unicode_name_character:                uniname.h.           (line  24)
 * uninorm_decomposing_form:              Normalization of strings.
-                                                              (line  40)
+                                                              (line  39)
 * uninorm_filter_create:                 Normalization of streams.
-                                                              (line  19)
+                                                              (line  16)
 * uninorm_filter_flush:                  Normalization of streams.
-                                                              (line  33)
+                                                              (line  32)
 * uninorm_filter_free:                   Normalization of streams.
-                                                              (line  43)
+                                                              (line  42)
 * uninorm_filter_write:                  Normalization of streams.
-                                                              (line  29)
+                                                              (line  27)
 * uninorm_is_compat_decomposing:         Normalization of strings.
-                                                              (line  32)
+                                                              (line  31)
 * uninorm_is_composing:                  Normalization of strings.
-                                                              (line  36)
+                                                              (line  35)
 * uninorm_t:                             Normalization of strings.
-                                                              (line  10)
+                                                              (line   9)
 * uppercasing:                           Case mappings of strings.
                                                               (line   6)
-* use cases:                             Introduction.        (line  44)
+* use cases:                             Introduction.        (line  36)
 * UTF-16:                                Unicode.             (line  14)
 * UTF-16, strings:                       Unicode strings.     (line   6)
 * UTF-32:                                Unicode.             (line  14)
@@ -6112,87 +6423,96 @@ Index
 * UTF-8, strings:                        Unicode strings.     (line   6)
 * validity:                              Elementary string checks.
                                                               (line   6)
-* value, of libunistring:                Introduction.        (line  44)
-* value, of Unicode character <1>:       Numeric value.       (line   6)
-* value, of Unicode character <2>:       Digit value.         (line   6)
+* value, of libunistring:                Introduction.        (line  36)
 * value, of Unicode character:           Decimal digit value. (line   6)
+* value, of Unicode character <1>:       Digit value.         (line   6)
+* value, of Unicode character <2>:       Numeric value.       (line   6)
 * verification:                          Elementary string checks.
                                                               (line   6)
 * wchar_t, type:                         The wchar_t mess.    (line   6)
+* well-formed:                           Elementary string checks.
+                                                              (line   6)
 * width:                                 uniwidth.h.          (line   6)
+* word boundaries:                       uniwbrk.h.           (line   6)
 * word breaks:                           uniwbrk.h.           (line   6)
 * wrapping:                              unilbrk.h.           (line   6)
 
 
 \1f
 Tag Table:
-Node: Top\7f270
-Node: Introduction\7f3239
-Node: Unicode\7f5236
-Node: Unicode and i18n\7f7116
-Node: Locale encodings\7f8579
-Node: In-memory representation\7f10787
-Node: char * strings\7f11896
-Node: The wchar_t mess\7f17153
-Node: Unicode strings\7f19357
-Node: Conventions\7f20508
-Node: unitypes.h\7f22708
-Node: unistr.h\7f23280
-Node: Elementary string checks\7f23837
-Node: Elementary string conversions\7f24459
-Node: Elementary string functions\7f25761
-Node: Elementary string functions with memory allocation\7f32732
-Node: Elementary string functions on NUL terminated strings\7f33354
-Node: uniconv.h\7f45258
-Node: unistdio.h\7f52969
-Node: uniname.h\7f61172
-Node: unictype.h\7f62505
-Node: General category\7f63414
-Node: Object oriented API\7f64457
-Node: Bit mask API\7f72919
-Node: Canonical combining class\7f75173
-Node: Bidirectional category\7f78387
-Node: Decimal digit value\7f81444
-Node: Digit value\7f82005
-Node: Numeric value\7f82566
-Node: Mirrored character\7f83457
-Node: Properties\7f84130
-Node: Properties as objects\7f84821
-Node: Properties as functions\7f91199
-Node: Scripts\7f96750
-Node: Blocks\7f98136
-Node: ISO C and Java syntax\7f99459
-Node: Classifications like in ISO C\7f101169
-Node: uniwidth.h\7f103873
-Node: uniwbrk.h\7f105910
-Node: Word breaks in a string\7f106437
-Node: Word break property\7f107488
-Node: unilbrk.h\7f108584
-Node: uninorm.h\7f112755
-Node: Decomposition of characters\7f113387
-Node: Composition of characters\7f116763
-Node: Normalization of strings\7f117472
-Node: Normalizing comparisons\7f119534
-Node: Normalization of streams\7f121890
-Node: unicase.h\7f123978
-Node: Case mappings of characters\7f124663
-Node: Case mappings of strings\7f126710
-Node: Case mappings of substrings\7f130043
-Node: Case insensitive comparison\7f136973
-Node: Case detection\7f142324
-Node: uniregex.h\7f145592
-Node: Using the library\7f145815
-Node: Installation\7f146226
-Node: Compiler options\7f146699
-Node: Include files\7f148258
-Node: Autoconf macro\7f149482
-Node: Reporting problems\7f151040
-Node: More functionality\7f151837
-Node: Licenses\7f152280
-Node: GNU GPL\7f153915
-Node: GNU LGPL\7f191460
-Node: GNU FDL\7f199906
-Node: Index\7f225031
+Node: Top\7f269
+Node: Introduction\7f3400
+Node: Unicode\7f5493
+Node: Unicode and i18n\7f7378
+Node: Locale encodings\7f8848
+Node: In-memory representation\7f11113
+Node: char * strings\7f12239
+Node: The wchar_t mess\7f17727
+Node: Unicode strings\7f20035
+Node: Conventions\7f21220
+Node: unitypes.h\7f23512
+Node: unistr.h\7f24096
+Node: Elementary string checks\7f24661
+Node: Elementary string conversions\7f25283
+Node: Elementary string functions\7f26585
+Node: Elementary string functions with memory allocation\7f33644
+Node: Elementary string functions on NUL terminated strings\7f34266
+Node: uniconv.h\7f46494
+Node: unistdio.h\7f54447
+Node: uniname.h\7f62700
+Node: unictype.h\7f64059
+Node: General category\7f64987
+Node: Object oriented API\7f66042
+Node: Bit mask API\7f75276
+Node: Canonical combining class\7f77571
+Node: Bidi class\7f81805
+Node: Decimal digit value\7f85218
+Node: Digit value\7f85775
+Node: Numeric value\7f86336
+Node: Mirrored character\7f87238
+Node: Arabic shaping\7f87931
+Node: Joining type\7f88404
+Node: Joining group\7f90554
+Node: Properties\7f93992
+Node: Properties as objects\7f94683
+Node: Properties as functions\7f101705
+Node: Scripts\7f107721
+Node: Blocks\7f109126
+Node: ISO C and Java syntax\7f110469
+Node: Classifications like in ISO C\7f112187
+Node: uniwidth.h\7f114999
+Node: unigbrk.h\7f117045
+Node: Grapheme cluster breaks in a string\7f118539
+Node: Grapheme cluster break property\7f120644
+Node: uniwbrk.h\7f122545
+Node: Word breaks in a string\7f123083
+Node: Word break property\7f124175
+Node: unilbrk.h\7f125274
+Node: uninorm.h\7f129570
+Node: Decomposition of characters\7f130207
+Node: Composition of characters\7f133684
+Node: Normalization of strings\7f134397
+Node: Normalizing comparisons\7f136474
+Node: Normalization of streams\7f138876
+Node: unicase.h\7f141001
+Node: Case mappings of characters\7f141690
+Node: Case mappings of strings\7f143839
+Node: Case mappings of substrings\7f147190
+Node: Case insensitive comparison\7f154112
+Node: Case detection\7f159517
+Node: uniregex.h\7f162831
+Node: Using the library\7f163058
+Node: Installation\7f163469
+Node: Compiler options\7f163954
+Node: Include files\7f165594
+Node: Autoconf macro\7f166847
+Node: Reporting problems\7f168487
+Node: More functionality\7f169305
+Node: Licenses\7f169748
+Node: GNU GPL\7f171386
+Node: GNU LGPL\7f209130
+Node: GNU FDL\7f217612
+Node: Index\7f242916
 \1f
 End Tag Table
 
index 5778c75..a6f9c8f 100644 (file)
@@ -158,6 +158,7 @@ A copy of the license is included in @ref{GNU GPL}.
 * uniname.h::                   Names of Unicode characters
 * unictype.h::                  Unicode character classification and properties
 * uniwidth.h::                  Display width
+* unigbrk.h::                   Grapheme cluster breaking
 * uniwbrk.h::                   Word breaks in strings
 * unilbrk.h::                   Line breaking
 * uninorm.h::                   Normalization forms
@@ -194,11 +195,12 @@ unictype.h
 
 * General category::
 * Canonical combining class::
-* Bidirectional category::
+* Bidi class::
 * Decimal digit value::
 * Digit value::
 * Numeric value::
 * Mirrored character::
+* Arabic shaping::
 * Properties::
 * Scripts::
 * Blocks::
@@ -215,6 +217,11 @@ Properties
 * Properties as objects::
 * Properties as functions::
 
+unigbrk.h
+
+* Grapheme cluster breaks in a string::
+* Grapheme cluster break property::
+
 uniwbrk.h
 
 * Word breaks in a string::
@@ -274,6 +281,8 @@ character names
 character classification and properties
 @item <uniwidth.h>
 string width when using nonproportional fonts
+@item <unigbrk.h>
+grapheme cluster breaks
 @item <uniwbrk.h>
 word breaks
 @item <unilbrk.h>
@@ -754,6 +763,7 @@ NULL is returned and @code{errno} is set.
 @include uniname.texi
 @include unictype.texi
 @include uniwidth.texi
+@include unigbrk.texi
 @include uniwbrk.texi
 @include unilbrk.texi
 @include uninorm.texi
index 7212f3f..19d4348 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
 </tr></table>
 
@@ -84,6 +84,9 @@ for manipulating C strings according to the Unicode standard.
 <dt> <code>&lt;uniwidth.h&gt;</code></dt>
 <dd><p>string width when using nonproportional fonts
 </p></dd>
+<dt> <code>&lt;unigbrk.h&gt;</code></dt>
+<dd><p>grapheme cluster breaks
+</p></dd>
 <dt> <code>&lt;uniwbrk.h&gt;</code></dt>
 <dd><p>word breaks
 </p></dd>
@@ -415,7 +418,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_13.html#SEC48">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#SEC54">Case mappings <code>&lt;unicase.h&gt;</code></a>.
 </p>
 <hr size="6">
 <a name="The-wchar_005ft-mess"></a>
@@ -517,12 +520,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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 617406d..52967a6 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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: 10. Word breaks in strings &lt;uniwbrk.h&gt;</title>
+<title>GNU libunistring: 10. Grapheme cluster breaks in strings &lt;unigbrk.h&gt;</title>
 
-<meta name="description" content="GNU libunistring: 10. Word breaks in strings &lt;uniwbrk.h&gt;">
-<meta name="keywords" content="GNU libunistring: 10. Word breaks in strings &lt;uniwbrk.h&gt;">
+<meta name="description" content="GNU libunistring: 10. Grapheme cluster breaks in strings &lt;unigbrk.h&gt;">
+<meta name="keywords" content="GNU libunistring: 10. Grapheme cluster breaks in strings &lt;unigbrk.h&gt;">
 <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_9.html#SEC37" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_11.html#SEC41" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_9.html#SEC40" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_11.html#SEC44" 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,126 +51,194 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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="SEC38"></a>
-<h1 class="chapter"> <a href="libunistring.html#TOC38">10. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a> </h1>
+<a name="unigbrk_002eh"></a>
+<a name="SEC41"></a>
+<h1 class="chapter"> <a href="libunistring.html#TOC41">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;words&rdquo; start and end.  Here &ldquo;words&rdquo; are not necessarily the same as
-entities that can be looked up in dictionaries, but rather groups of
-consecutive characters that should not be split by text processing
-operations.
+&ldquo;grapheme clusters&rdquo; start and end.  A &ldquo;grapheme cluster&rdquo; is an
+approximation to a user-perceived character, which sometimes
+corresponds to multiple Unicode characters.  Editing operations such as
+mouse selection, cursor movement, and backspacing often operate on
+grapheme clusters as units, not on individual characters.
+</p>
+<p>Some grapheme clusters are built from a base character and a combining
+character.  The letter &lsquo;<samp>&eacute;</samp>&rsquo;,
+for example, is most commonly represented in Unicode as a single
+character U+00E8 <small>LATIN SMALL LETTER E WITH ACUTE</small>.  It is,
+however, equally valid to use the pair of characters U+0065 <small>LATIN
+SMALL LETTER E</small> followed by U+0301 <small>COMBINING ACUTE ACCENT</small>.  Since
+the user would perceive this pair of characters as a single character,
+they would be grouped into a single grapheme cluster.
+</p>
+<p>But there are also grapheme clusters that consist of several base characters.
+For example, a Devanagari letter and a Devanagari vowel sign that follows it
+may form a grapheme cluster.  Similarly, some pairs of Thai characters and
+Hangul syllables (formed by two or three Hangul characters) are grapheme
+clusters.
 </p>
 
 <hr size="6">
-<a name="Word-breaks-in-a-string"></a>
-<a name="SEC39"></a>
-<h2 class="section"> <a href="libunistring.html#TOC39">10.1 Word breaks in a string</a> </h2>
+<a name="Grapheme-cluster-breaks-in-a-string"></a>
+<a name="SEC42"></a>
+<h2 class="section"> <a href="libunistring.html#TOC42">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 uint8_t *<var>s</var>, const uint8_t *<var>end</var>)</i>
+<a name="IDX712"></a>
+</dt>
+<dt><u>Function:</u> void <b>u16_grapheme_next</b><i> (const uint16_t *<var>s</var>, const uint16_t *<var>end</var>)</i>
+<a name="IDX713"></a>
+</dt>
+<dt><u>Function:</u> void <b>u32_grapheme_next</b><i> (const uint32_t *<var>s</var>, const uint32_t *<var>end</var>)</i>
+<a name="IDX714"></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.
+Returns NULL if and only if <code><var>s</var> == <var>end</var></code>.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> void <b>u8_grapheme_prev</b><i> (const uint8_t *<var>s</var>, const uint8_t *<var>start</var>)</i>
+<a name="IDX715"></a>
+</dt>
+<dt><u>Function:</u> void <b>u16_grapheme_prev</b><i> (const uint16_t *<var>s</var>, const uint16_t *<var>start</var>)</i>
+<a name="IDX716"></a>
+</dt>
+<dt><u>Function:</u> void <b>u32_grapheme_prev</b><i> (const uint32_t *<var>s</var>, const uint32_t *<var>start</var>)</i>
+<a name="IDX717"></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.
+Returns NULL if and only if <code><var>s</var> == <var>start</var></code>.
+</p></dd></dl>
 
-<p>The following functions determine the word breaks in a string.
+<p>The following functions determine all of the grapheme cluster
+boundaries in a string.
 </p>
 <dl>
-<dt><u>Function:</u> void <b>u8_wordbreaks</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
-<a name="IDX615"></a>
+<dt><u>Function:</u> void <b>u8_grapheme_breaks</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
+<a name="IDX718"></a>
 </dt>
-<dt><u>Function:</u> void <b>u16_wordbreaks</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
-<a name="IDX616"></a>
+<dt><u>Function:</u> void <b>u16_grapheme_breaks</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
+<a name="IDX719"></a>
 </dt>
-<dt><u>Function:</u> void <b>u32_wordbreaks</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
-<a name="IDX617"></a>
+<dt><u>Function:</u> void <b>u32_grapheme_breaks</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
+<a name="IDX720"></a>
 </dt>
-<dt><u>Function:</u> void <b>ulc_wordbreaks</b><i> (const char *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
-<a name="IDX618"></a>
+<dt><u>Function:</u> void <b>ulc_grapheme_breaks</b><i> (const char *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
+<a name="IDX721"></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>.
+<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>n</var>-1]</code>.
 </p><dl compact="compact">
 <dt> <code><var>p</var>[i] = 1</code></dt>
-<dd><p>means that there is a word boundary between <code><var>s</var>[i-1]</code> and
-<code><var>s</var>[i]</code>.
+<dd><p>means that there is a grapheme cluster boundary between
+<code><var>s</var>[i-1]</code> and <code><var>s</var>[i]</code>.
 </p></dd>
 <dt> <code><var>p</var>[i] = 0</code></dt>
-<dd><p>means that <code><var>s</var>[i-1]</code> and <code><var>s</var>[i]</code> must not be separated.
+<dd><p>means that <code><var>s</var>[i-1]</code> and <code><var>s</var>[i]</code> are part of the
+same grapheme cluster.
 </p></dd>
 </dl>
-<p><code><var>p</var>[0]</code> is always set to 0.  If an application wants to consider a
-word break to be present at the beginning of the string (before
-<code><var>s</var>[0]</code>) or at the end of the string (after
-<code><var>s</var>[0..<var>n</var>-1]</code>), it has to treat these cases explicitly.
+<p><code><var>p</var>[0]</code> is always set to 1, because there is always a
+grapheme cluster break at start of text.
 </p></dd></dl>
 
 <hr size="6">
-<a name="Word-break-property"></a>
-<a name="SEC40"></a>
-<h2 class="section"> <a href="libunistring.html#TOC40">10.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
-<a href="http://www.unicode.org/reports/tr29/#Word_Boundaries">http://www.unicode.org/reports/tr29/#Word_Boundaries</a>.  It is
-used for determining the word breaks in a string.
+<a name="Grapheme-cluster-break-property"></a>
+<a name="SEC43"></a>
+<h2 class="section"> <a href="libunistring.html#TOC43">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
+Boundaries&rdquo;, see
+<a href="http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries">http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries</a>.
+It is used for determining the grapheme cluster breaks in a string.
 </p>
-<p>The following are the possible values of the word break property.  More values
-may be added in the future.
+<p>The following are the possible values of the grapheme cluster break
+property.  More values may be added in the future.
 </p>
 <dl>
-<dt><u>Constant:</u> int <b>WBP_OTHER</b>
-<a name="IDX619"></a>
-</dt>
-<dt><u>Constant:</u> int <b>WBP_CR</b>
-<a name="IDX620"></a>
+<dt><u>Constant:</u> int <b>GBP_OTHER</b>
+<a name="IDX722"></a>
 </dt>
-<dt><u>Constant:</u> int <b>WBP_LF</b>
-<a name="IDX621"></a>
+<dt><u>Constant:</u> int <b>GBP_CR</b>
+<a name="IDX723"></a>
 </dt>
-<dt><u>Constant:</u> int <b>WBP_NEWLINE</b>
-<a name="IDX622"></a>
+<dt><u>Constant:</u> int <b>GBP_LF</b>
+<a name="IDX724"></a>
 </dt>
-<dt><u>Constant:</u> int <b>WBP_EXTEND</b>
-<a name="IDX623"></a>
+<dt><u>Constant:</u> int <b>GBP_CONTROL</b>
+<a name="IDX725"></a>
 </dt>
-<dt><u>Constant:</u> int <b>WBP_FORMAT</b>
-<a name="IDX624"></a>
+<dt><u>Constant:</u> int <b>GBP_EXTEND</b>
+<a name="IDX726"></a>
 </dt>
-<dt><u>Constant:</u> int <b>WBP_KATAKANA</b>
-<a name="IDX625"></a>
+<dt><u>Constant:</u> int <b>GBP_PREPEND</b>
+<a name="IDX727"></a>
 </dt>
-<dt><u>Constant:</u> int <b>WBP_ALETTER</b>
-<a name="IDX626"></a>
+<dt><u>Constant:</u> int <b>GBP_SPACINGMARK</b>
+<a name="IDX728"></a>
 </dt>
-<dt><u>Constant:</u> int <b>WBP_MIDNUMLET</b>
-<a name="IDX627"></a>
+<dt><u>Constant:</u> int <b>GBP_L</b>
+<a name="IDX729"></a>
 </dt>
-<dt><u>Constant:</u> int <b>WBP_MIDLETTER</b>
-<a name="IDX628"></a>
+<dt><u>Constant:</u> int <b>GBP_V</b>
+<a name="IDX730"></a>
 </dt>
-<dt><u>Constant:</u> int <b>WBP_MIDNUM</b>
-<a name="IDX629"></a>
+<dt><u>Constant:</u> int <b>GBP_T</b>
+<a name="IDX731"></a>
 </dt>
-<dt><u>Constant:</u> int <b>WBP_NUMERIC</b>
-<a name="IDX630"></a>
+<dt><u>Constant:</u> int <b>GBP_LV</b>
+<a name="IDX732"></a>
 </dt>
-<dt><u>Constant:</u> int <b>WBP_EXTENDNUMLET</b>
-<a name="IDX631"></a>
+<dt><u>Constant:</u> int <b>GBP_LVT</b>
+<a name="IDX733"></a>
 </dt>
 </dl>
 
-<p>The following function looks up the word break property of a character.
+<p>The following function looks up the grapheme cluster break property of a
+character.
+</p>
+<dl>
+<dt><u>Function:</u> int <b>uc_graphemeclusterbreak_property</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX734"></a>
+</dt>
+<dd><p>Returns the Grapheme_Cluster_Break property of a Unicode character.
+</p></dd></dl>
+
+<p>The following function determines whether there is a grapheme cluster
+break between two Unicode characters.  It is the primitive upon which
+the higher-level functions in the previous section are directly based.
 </p>
 <dl>
-<dt><u>Function:</u> int <b>uc_wordbreak_property</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX632"></a>
+<dt><u>Function:</u> bool <b>uc_is_grapheme_break</b><i> (ucs4_t <var>a</var>, ucs4_t <var>b</var>)</i>
+<a name="IDX735"></a>
 </dt>
-<dd><p>Returns the Word_Break property of a Unicode character.
+<dd><p>Returns true if there is an grapheme cluster boundary between Unicode
+characters <var>a</var> and <var>b</var>.
+</p>
+<p>There is always a grapheme cluster break at the start or end of text.
+You can specify zero for <var>a</var> or <var>b</var> to indicate start of text or end
+of text, respectively.
+</p>
+<p>This implements the extended (not legacy) grapheme cluster rules
+described in the Unicode standard, because the standard says that they
+are preferred.
 </p></dd></dl>
 <hr size="6">
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC38" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_11.html#SEC41" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#SEC41" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_11.html#SEC44" 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>
@@ -178,12 +246,12 @@ may be added in the future.
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 7fd2dc3..6258af4 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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: 11. Line breaking &lt;unilbrk.h&gt;</title>
+<title>GNU libunistring: 11. Word breaks in strings &lt;uniwbrk.h&gt;</title>
 
-<meta name="description" content="GNU libunistring: 11. Line breaking &lt;unilbrk.h&gt;">
-<meta name="keywords" content="GNU libunistring: 11. Line breaking &lt;unilbrk.h&gt;">
+<meta name="description" content="GNU libunistring: 11. Word breaks in strings &lt;uniwbrk.h&gt;">
+<meta name="keywords" content="GNU libunistring: 11. Word breaks in strings &lt;uniwbrk.h&gt;">
 <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_10.html#SEC38" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_12.html#SEC42" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_10.html#SEC41" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_12.html#SEC47" 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,134 +51,126 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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="SEC41"></a>
-<h1 class="chapter"> <a href="libunistring.html#TOC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a> </h1>
+<a name="uniwbrk_002eh"></a>
+<a name="SEC44"></a>
+<h1 class="chapter"> <a href="libunistring.html#TOC44">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
-line breaks could or should be introduced, in order to make the displayed
-string fit into a column of given width.
+&ldquo;words&rdquo; start and end.  Here &ldquo;words&rdquo; are not necessarily the same as
+entities that can be looked up in dictionaries, but rather groups of
+consecutive characters that should not be split by text processing
+operations.
 </p>
-<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>
-<p>The following enumerated values indicate whether, at a given position, a line
-break is possible or not.  Given an string <var>s</var> as an array
-<code><var>s</var>[0..<var>n</var>-1]</code> and a position <var>i</var>, the values have the
-following meanings:
+
+<hr size="6">
+<a name="Word-breaks-in-a-string"></a>
+<a name="SEC45"></a>
+<h2 class="section"> <a href="libunistring.html#TOC45">11.1 Word breaks in a string</a> </h2>
+
+<p>The following functions determine the word breaks in a string.
 </p>
 <dl>
-<dt><u>Constant:</u> int <b>UC_BREAK_MANDATORY</b>
-<a name="IDX633"></a>
+<dt><u>Function:</u> void <b>u8_wordbreaks</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
+<a name="IDX736"></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_POSSIBLE</b>
-<a name="IDX634"></a>
+<dt><u>Function:</u> void <b>u16_wordbreaks</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
+<a name="IDX737"></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>.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_BREAK_HYPHENATION</b>
-<a name="IDX635"></a>
+<dt><u>Function:</u> void <b>u32_wordbreaks</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
+<a name="IDX738"></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
-dependent hyphenation rules.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_BREAK_PROHIBITED</b>
-<a name="IDX636"></a>
+<dt><u>Function:</u> void <b>ulc_wordbreaks</b><i> (const char *<var>s</var>, size_t <var>n</var>, char *<var>p</var>)</i>
+<a name="IDX739"></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.
+<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>.
+</p><dl compact="compact">
+<dt> <code><var>p</var>[i] = 1</code></dt>
+<dd><p>means that there is a word boundary between <code><var>s</var>[i-1]</code> and
+<code><var>s</var>[i]</code>.
+</p></dd>
+<dt> <code><var>p</var>[i] = 0</code></dt>
+<dd><p>means that <code><var>s</var>[i-1]</code> and <code><var>s</var>[i]</code> must not be separated.
+</p></dd>
+</dl>
+<p><code><var>p</var>[0]</code> is always set to 0.  If an application wants to consider a
+word break to be present at the beginning of the string (before
+<code><var>s</var>[0]</code>) or at the end of the string (after
+<code><var>s</var>[0..<var>n</var>-1]</code>), it has to treat these cases explicitly.
 </p></dd></dl>
 
-<dl>
-<dt><u>Constant:</u> int <b>UC_BREAK_UNDEFINED</b>
-<a name="IDX637"></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
-override.
-</p></dd></dl>
+<hr size="6">
+<a name="Word-break-property"></a>
+<a name="SEC46"></a>
+<h2 class="section"> <a href="libunistring.html#TOC46">11.2 Word break property</a> </h2>
 
-<p>The following functions determine the positions at which line breaks are
-possible.
+<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
+<a href="http://www.unicode.org/reports/tr29/#Word_Boundaries">http://www.unicode.org/reports/tr29/#Word_Boundaries</a>.  It is
+used for determining the word breaks in a string.
+</p>
+<p>The following are the possible values of the word break property.  More values
+may be added in the future.
 </p>
 <dl>
-<dt><u>Function:</u> void <b>u8_possible_linebreaks</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
-<a name="IDX638"></a>
+<dt><u>Constant:</u> int <b>WBP_OTHER</b>
+<a name="IDX740"></a>
 </dt>
-<dt><u>Function:</u> void <b>u16_possible_linebreaks</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
-<a name="IDX639"></a>
+<dt><u>Constant:</u> int <b>WBP_CR</b>
+<a name="IDX741"></a>
 </dt>
-<dt><u>Function:</u> void <b>u32_possible_linebreaks</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
-<a name="IDX640"></a>
+<dt><u>Constant:</u> int <b>WBP_LF</b>
+<a name="IDX742"></a>
 </dt>
-<dt><u>Function:</u> void <b>ulc_possible_linebreaks</b><i> (const char *<var>s</var>, size_t <var>n</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
-<a name="IDX641"></a>
+<dt><u>Constant:</u> int <b>WBP_NEWLINE</b>
+<a name="IDX743"></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
-the values <code>UC_BREAK_MANDATORY</code>, <code>UC_BREAK_POSSIBLE</code>,
-<code>UC_BREAK_HYPHENATION</code>, <code>UC_BREAK_PROHIBITED</code>.
-</p></dd></dl>
-
-<p>The following functions determine where line breaks should be inserted so that
-each line fits in a given width, when output to a device that uses
-non-proportional fonts.
-</p>
-<dl>
-<dt><u>Function:</u> int <b>u8_width_linebreaks</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, int <var>width</var>, int <var>start_column</var>, int <var>at_end_columns</var>, const char *<var>override</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
-<a name="IDX642"></a>
+<dt><u>Constant:</u> int <b>WBP_EXTEND</b>
+<a name="IDX744"></a>
 </dt>
-<dt><u>Function:</u> int <b>u16_width_linebreaks</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, int <var>width</var>, int <var>start_column</var>, int <var>at_end_columns</var>, const char *<var>override</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
-<a name="IDX643"></a>
+<dt><u>Constant:</u> int <b>WBP_FORMAT</b>
+<a name="IDX745"></a>
 </dt>
-<dt><u>Function:</u> int <b>u32_width_linebreaks</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, int <var>width</var>, int <var>start_column</var>, int <var>at_end_columns</var>, const char *<var>override</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
-<a name="IDX644"></a>
+<dt><u>Constant:</u> int <b>WBP_KATAKANA</b>
+<a name="IDX746"></a>
 </dt>
-<dt><u>Function:</u> int <b>ulc_width_linebreaks</b><i> (const char *<var>s</var>, size_t <var>n</var>, int <var>width</var>, int <var>start_column</var>, int <var>at_end_columns</var>, const char *<var>override</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
-<a name="IDX645"></a>
+<dt><u>Constant:</u> int <b>WBP_ALETTER</b>
+<a name="IDX747"></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#SEC37">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>
-<p>The maximum number of columns per line is given as <var>width</var>.
-The starting column of the string is given as <var>start_column</var>.
-If the algorithm shall keep room after the last piece, this amount of room can
-be given as <var>at_end_columns</var>.
-</p>
-<p><var>override</var> is an optional override; if
-<code><var>override</var>[<var>i</var>] != UC_BREAK_UNDEFINED</code>,
-<code><var>override</var>[<var>i</var>]</code> takes precedence over <code><var>p</var>[<var>i</var>]</code>
-as returned by the <code>u*_possible_linebreaks</code> function.
-</p>
-<p>The given <var>encoding</var> is used for disambiguating widths in <code>uc_width</code>.
+<dt><u>Constant:</u> int <b>WBP_MIDNUMLET</b>
+<a name="IDX748"></a>
+</dt>
+<dt><u>Constant:</u> int <b>WBP_MIDLETTER</b>
+<a name="IDX749"></a>
+</dt>
+<dt><u>Constant:</u> int <b>WBP_MIDNUM</b>
+<a name="IDX750"></a>
+</dt>
+<dt><u>Constant:</u> int <b>WBP_NUMERIC</b>
+<a name="IDX751"></a>
+</dt>
+<dt><u>Constant:</u> int <b>WBP_EXTENDNUMLET</b>
+<a name="IDX752"></a>
+</dt>
+</dl>
+
+<p>The following function looks up the word break property of a character.
 </p>
-<p>Returns the column after the end of the string, 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
-the values <code>UC_BREAK_MANDATORY</code>, <code>UC_BREAK_POSSIBLE</code>,
-<code>UC_BREAK_HYPHENATION</code>, <code>UC_BREAK_PROHIBITED</code>.  Here the value
-<code>UC_BREAK_POSSIBLE</code> indicates that a line break <em>should</em> be inserted.
+<dl>
+<dt><u>Function:</u> int <b>uc_wordbreak_property</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX753"></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="libunistring_10.html#SEC38" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_12.html#SEC42" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#SEC44" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_12.html#SEC47" 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>
@@ -186,12 +178,12 @@ the values <code>UC_BREAK_MANDATORY</code>, <code>UC_BREAK_POSSIBLE</code>,
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 1a4db37..d5c420c 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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: 12. Normalization forms (composition and decomposition) &lt;uninorm.h&gt;</title>
+<title>GNU libunistring: 12. Line breaking &lt;unilbrk.h&gt;</title>
 
-<meta name="description" content="GNU libunistring: 12. Normalization forms (composition and decomposition) &lt;uninorm.h&gt;">
-<meta name="keywords" content="GNU libunistring: 12. Normalization forms (composition and decomposition) &lt;uninorm.h&gt;">
+<meta name="description" content="GNU libunistring: 12. Line breaking &lt;unilbrk.h&gt;">
+<meta name="keywords" content="GNU libunistring: 12. Line breaking &lt;unilbrk.h&gt;">
 <meta name="resource-type" content="document">
 <meta name="distribution" content="global">
 <meta name="Generator" content="texi2html 1.78a">
@@ -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_11.html#SEC41" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_11.html#SEC44" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_13.html#SEC48" title="Next chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
@@ -51,440 +51,133 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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="SEC42"></a>
-<h1 class="chapter"> <a href="libunistring.html#TOC42">12. 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
-transformations involve decomposition and &mdash; for NFC and NFKC &mdash; composition
-of Unicode characters.
-</p>
-
-<hr size="6">
-<a name="Decomposition-of-characters"></a>
-<a name="SEC43"></a>
-<h2 class="section"> <a href="libunistring.html#TOC43">12.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="IDX646"></a>
-</dt>
-<dd><p>Denotes canonical decomposition.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_FONT</b>
-<a name="IDX647"></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="IDX648"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;noBreak&gt;</code>.
-Denotes a no-break version of a space or hyphen.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_INITIAL</b>
-<a name="IDX649"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;initial&gt;</code>.
-Denotes an initial presentation form (Arabic).
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_MEDIAL</b>
-<a name="IDX650"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;medial&gt;</code>.
-Denotes a medial presentation form (Arabic).
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_FINAL</b>
-<a name="IDX651"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;final&gt;</code>.
-Denotes a final presentation form (Arabic).
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_ISOLATED</b>
-<a name="IDX652"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;isolated&gt;</code>.
-Denotes an isolated presentation form (Arabic).
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_CIRCLE</b>
-<a name="IDX653"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;circle&gt;</code>.
-Denotes an encircled form.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_SUPER</b>
-<a name="IDX654"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;super&gt;</code>.
-Denotes a superscript form.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_SUB</b>
-<a name="IDX655"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;sub&gt;</code>.
-Denotes a subscript form.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_VERTICAL</b>
-<a name="IDX656"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;vertical&gt;</code>.
-Denotes a vertical layout presentation form.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_WIDE</b>
-<a name="IDX657"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;wide&gt;</code>.
-Denotes a wide (or zenkaku) compatibility character.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_NARROW</b>
-<a name="IDX658"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;narrow&gt;</code>.
-Denotes a narrow (or hankaku) compatibility character.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_SMALL</b>
-<a name="IDX659"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;small&gt;</code>.
-Denotes a small variant form (CNS compatibility).
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_SQUARE</b>
-<a name="IDX660"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;square&gt;</code>.
-Denotes a CJK squared font variant.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_FRACTION</b>
-<a name="IDX661"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;fraction&gt;</code>.
-Denotes a vulgar fraction form.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>UC_DECOMP_COMPAT</b>
-<a name="IDX662"></a>
-</dt>
-<dd><p>UCD marker: <code>&lt;compat&gt;</code>.
-Denotes an otherwise unspecified compatibility character.
-</p></dd></dl>
-
-<p>The following constant denotes the maximum size of decomposition of a single
-Unicode character.
-</p>
-<dl>
-<dt><u>Macro:</u> unsigned int <b>UC_DECOMPOSITION_MAX_LENGTH</b>
-<a name="IDX663"></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.
-</p></dd></dl>
+<a name="unilbrk_002eh"></a>
+<a name="SEC47"></a>
+<h1 class="chapter"> <a href="libunistring.html#TOC47">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a> </h1>
 
-<p>The following functions decompose a Unicode character.
-</p>
-<dl>
-<dt><u>Function:</u> int <b>uc_decomposition</b><i> (ucs4_t <var>uc</var>, int *<var>decomp_tag</var>, ucs4_t *<var>decomposition</var>)</i>
-<a name="IDX664"></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
-<code>UC_DECOMPOSITION_MAX_LENGTH</code> <code>ucs_t</code> elements.
+<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
+string fit into a column of given width.
 </p>
-<p>When a decomposition exists, <code><var>decomposition</var>[0..<var>n</var>-1]</code> and
-<code>*<var>decomp_tag</var></code> are filled and <var>n</var> is returned.  Otherwise -1 is
-returned.
-</p></dd></dl>
-
-<dl>
-<dt><u>Function:</u> int <b>uc_canonical_decomposition</b><i> (ucs4_t <var>uc</var>, ucs4_t *<var>decomposition</var>)</i>
-<a name="IDX665"></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
-<code>UC_DECOMPOSITION_MAX_LENGTH</code> <code>ucs_t</code> elements.
+<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>
-<p>When a decomposition exists, <code><var>decomposition</var>[0..<var>n</var>-1]</code> is filled
-and <var>n</var> is returned.  Otherwise -1 is returned.
-</p></dd></dl>
-
-<hr size="6">
-<a name="Composition-of-characters"></a>
-<a name="SEC44"></a>
-<h2 class="section"> <a href="libunistring.html#TOC44">12.2 Composition of Unicode characters</a> </h2>
-
-<p>The following function composes a Unicode character from two Unicode
-characters.
+<p>The following enumerated values indicate whether, at a given position, a line
+break is possible or not.  Given an string <var>s</var> as an array
+<code><var>s</var>[0..<var>n</var>-1]</code> and a position <var>i</var>, the values have the
+following meanings:
 </p>
 <dl>
-<dt><u>Function:</u> ucs4_t <b>uc_composition</b><i> (ucs4_t <var>uc1</var>, ucs4_t <var>uc2</var>)</i>
-<a name="IDX666"></a>
+<dt><u>Constant:</u> int <b>UC_BREAK_MANDATORY</b>
+<a name="IDX754"></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.
-</p>
-<p>Returns the combination of <var>uc1</var> and <var>uc2</var>, if it exists.
-Returns 0 otherwise.
-</p>
-<p>Not all decompositions can be recombined using this function.  See the Unicode
-file &lsquo;<tt>CompositionExclusions.txt</tt>&rsquo; for details.
+<dd><p>This value indicates that <code><var>s</var>[<var>i</var>]</code> is a line break character.
 </p></dd></dl>
 
-<hr size="6">
-<a name="Normalization-of-strings"></a>
-<a name="SEC45"></a>
-<h2 class="section"> <a href="libunistring.html#TOC45">12.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="IDX667"></a>
+<dt><u>Constant:</u> int <b>UC_BREAK_POSSIBLE</b>
+<a name="IDX755"></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>.
+<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>.
 </p></dd></dl>
 
-<p>The following constants denote the four normalization forms.
-</p>
 <dl>
-<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFD</b>
-<a name="IDX668"></a>
+<dt><u>Constant:</u> int <b>UC_BREAK_HYPHENATION</b>
+<a name="IDX756"></a>
 </dt>
-<dd><p>Denotes Normalization form D: canonical decomposition.
+<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
+dependent hyphenation rules.
 </p></dd></dl>
 
 <dl>
-<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFC</b>
-<a name="IDX669"></a>
+<dt><u>Constant:</u> int <b>UC_BREAK_PROHIBITED</b>
+<a name="IDX757"></a>
 </dt>
-<dd><p>Normalization form C: canonical decomposition, then canonical composition.
+<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.
 </p></dd></dl>
 
 <dl>
-<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFKD</b>
-<a name="IDX670"></a>
+<dt><u>Constant:</u> int <b>UC_BREAK_UNDEFINED</b>
+<a name="IDX758"></a>
 </dt>
-<dd><p>Normalization form KD: compatibility decomposition.
+<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
+override.
 </p></dd></dl>
 
-<dl>
-<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFKC</b>
-<a name="IDX671"></a>
-</dt>
-<dd><p>Normalization form KC: compatibility decomposition, then canonical composition.
-</p></dd></dl>
-
-<p>The following functions operate on <code>uninorm_t</code> objects.
+<p>The following functions determine the positions at which line breaks are
+possible.
 </p>
 <dl>
-<dt><u>Function:</u> bool <b>uninorm_is_compat_decomposing</b><i> (uninorm_t <var>nf</var>)</i>
-<a name="IDX672"></a>
+<dt><u>Function:</u> void <b>u8_possible_linebreaks</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
+<a name="IDX759"></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 <var>nf</var>)</i>
-<a name="IDX673"></a>
+<dt><u>Function:</u> void <b>u16_possible_linebreaks</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
+<a name="IDX760"></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 <var>nf</var>)</i>
-<a name="IDX674"></a>
+<dt><u>Function:</u> void <b>u32_possible_linebreaks</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
+<a name="IDX761"></a>
 </dt>
-<dd><p>Returns the decomposing variant of the normalization form <var>nf</var>.
-This maps NFC,NFD → NFD and NFKC,NFKD → NFKD.
-</p></dd></dl>
-
-<p>The following functions apply a Unicode normalization form to a Unicode string.
-</p>
-<dl>
-<dt><u>Function:</u> uint8_t * <b>u8_normalize</b><i> (uninorm_t <var>nf</var>, const uint8_t *<var>s</var>, size_t <var>n</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX675"></a>
-</dt>
-<dt><u>Function:</u> uint16_t * <b>u16_normalize</b><i> (uninorm_t <var>nf</var>, const uint16_t *<var>s</var>, size_t <var>n</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX676"></a>
-</dt>
-<dt><u>Function:</u> uint32_t * <b>u32_normalize</b><i> (uninorm_t <var>nf</var>, const uint32_t *<var>s</var>, size_t <var>n</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX677"></a>
+<dt><u>Function:</u> void <b>ulc_possible_linebreaks</b><i> (const char *<var>s</var>, size_t <var>n</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
+<a name="IDX762"></a>
 </dt>
-<dd><p>Returns the specified normalization form of a string.
+<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
+the values <code>UC_BREAK_MANDATORY</code>, <code>UC_BREAK_POSSIBLE</code>,
+<code>UC_BREAK_HYPHENATION</code>, <code>UC_BREAK_PROHIBITED</code>.
 </p></dd></dl>
 
-<hr size="6">
-<a name="Normalizing-comparisons"></a>
-<a name="SEC46"></a>
-<h2 class="section"> <a href="libunistring.html#TOC46">12.4 Normalizing comparisons</a> </h2>
-
-<p>The following functions compare Unicode string, ignoring differences in
-normalization.
+<p>The following functions determine where line breaks should be inserted so that
+each line fits in a given width, when output to a device that uses
+non-proportional fonts.
 </p>
 <dl>
-<dt><u>Function:</u> int <b>u8_normcmp</b><i> (const uint8_t *<var>s1</var>, size_t <var>n1</var>, const uint8_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX678"></a>
+<dt><u>Function:</u> int <b>u8_width_linebreaks</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, int <var>width</var>, int <var>start_column</var>, int <var>at_end_columns</var>, const char *<var>override</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
+<a name="IDX763"></a>
 </dt>
-<dt><u>Function:</u> int <b>u16_normcmp</b><i> (const uint16_t *<var>s1</var>, size_t <var>n1</var>, const uint16_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX679"></a>
+<dt><u>Function:</u> int <b>u16_width_linebreaks</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, int <var>width</var>, int <var>start_column</var>, int <var>at_end_columns</var>, const char *<var>override</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
+<a name="IDX764"></a>
 </dt>
-<dt><u>Function:</u> int <b>u32_normcmp</b><i> (const uint32_t *<var>s1</var>, size_t <var>n1</var>, const uint32_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX680"></a>
+<dt><u>Function:</u> int <b>u32_width_linebreaks</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, int <var>width</var>, int <var>start_column</var>, int <var>at_end_columns</var>, const char *<var>override</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
+<a name="IDX765"></a>
 </dt>
-<dd><p>Compares <var>s1</var> and <var>s2</var>, ignoring differences in normalization.
-</p>
-<p><var>nf</var> must be either <code>UNINORM_NFD</code> or <code>UNINORM_NFKD</code>.
-</p>
-<p>If successful, sets <code>*<var>resultp</var></code> to -1 if <var>s1</var> &lt; <var>s2</var>,
-0 if <var>s1</var> = <var>s2</var>, 1 if <var>s1</var> &gt; <var>s2</var>, and returns 0.
-Upon failure, returns -1 with <code>errno</code> set.
-</p></dd></dl>
-
-<a name="IDX681"></a>
-<a name="IDX682"></a>
-<dl>
-<dt><u>Function:</u> char * <b>u8_normxfrm</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX683"></a>
-</dt>
-<dt><u>Function:</u> char * <b>u16_normxfrm</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX684"></a>
-</dt>
-<dt><u>Function:</u> char * <b>u32_normxfrm</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX685"></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
-<code>u8_normxfrm (<var>s2</var>)</code> with the <code>u8_cmp2</code> function is equivalent to
-comparing <var>s1</var> and <var>s2</var> with the <code>u8_normcoll</code> function.
-</p>
-<p><var>nf</var> must be either <code>UNINORM_NFC</code> or <code>UNINORM_NFKC</code>.
-</p></dd></dl>
-
-<dl>
-<dt><u>Function:</u> int <b>u8_normcoll</b><i> (const uint8_t *<var>s1</var>, size_t <var>n1</var>, const uint8_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX686"></a>
-</dt>
-<dt><u>Function:</u> int <b>u16_normcoll</b><i> (const uint16_t *<var>s1</var>, size_t <var>n1</var>, const uint16_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX687"></a>
-</dt>
-<dt><u>Function:</u> int <b>u32_normcoll</b><i> (const uint32_t *<var>s1</var>, size_t <var>n1</var>, const uint32_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX688"></a>
-</dt>
-<dd><p>Compares <var>s1</var> and <var>s2</var>, ignoring differences in normalization, using
-the collation rules of the current locale.
-</p>
-<p><var>nf</var> must be either <code>UNINORM_NFC</code> or <code>UNINORM_NFKC</code>.
-</p>
-<p>If successful, sets <code>*<var>resultp</var></code> to -1 if <var>s1</var> &lt; <var>s2</var>,
-0 if <var>s1</var> = <var>s2</var>, 1 if <var>s1</var> &gt; <var>s2</var>, and returns 0.
-Upon failure, returns -1 with <code>errno</code> set.
-</p></dd></dl>
-
-<hr size="6">
-<a name="Normalization-of-streams"></a>
-<a name="SEC47"></a>
-<h2 class="section"> <a href="libunistring.html#TOC47">12.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
-&ldquo;flushes&rdquo; the stream.
-</p>
-<dl>
-<dt><u>Type:</u> <b>struct uninorm_filter</b>
-<a name="IDX689"></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
-character sequence to the encapsulated stream of Unicode characters.
-</p></dd></dl>
-
-<dl>
-<dt><u>Function:</u> struct uninorm_filter * <b>uninorm_filter_create</b><i> (uninorm_t <var>nf</var>, int (*<var>stream_func</var>) (void *<var>stream_data</var>, ucs4_t <var>uc</var>), void *<var>stream_data</var>)</i>
-<a name="IDX690"></a>
+<dt><u>Function:</u> int <b>ulc_width_linebreaks</b><i> (const char *<var>s</var>, size_t <var>n</var>, int <var>width</var>, int <var>start_column</var>, int <var>at_end_columns</var>, const char *<var>override</var>, const char *<var>encoding</var>, char *<var>p</var>)</i>
+<a name="IDX766"></a>
 </dt>
-<dd><p>Creates and returns a normalization filter for Unicode characters.
+<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#SEC40">Display width <code>&lt;uniwidth.h&gt;</code></a>).
 </p>
-<p>The pair (<var>stream_func</var>, <var>stream_data</var>) is the encapsulated stream.
-<code><var>stream_func</var> (<var>stream_data</var>, <var>uc</var>)</code> receives the Unicode
-character <var>uc</var> and returns 0 if successful, or -1 with <code>errno</code> set
-upon failure.
+<p>The string is <code><var>s</var>[0..<var>n</var>-1]</code>.
 </p>
-<p>Returns the new filter, or NULL with <code>errno</code> set upon failure.
-</p></dd></dl>
-
-<dl>
-<dt><u>Function:</u> int <b>uninorm_filter_write</b><i> (struct uninorm_filter *<var>filter</var>, ucs4_t <var>uc</var>)</i>
-<a name="IDX691"></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.
-</p></dd></dl>
-
-<dl>
-<dt><u>Function:</u> int <b>uninorm_filter_flush</b><i> (struct uninorm_filter *<var>filter</var>)</i>
-<a name="IDX692"></a>
-</dt>
-<dd><p>Brings data buffered in the filter to its destination, the encapsulated stream.
+<p>The maximum number of columns per line is given as <var>width</var>.
+The starting column of the string is given as <var>start_column</var>.
+If the algorithm shall keep room after the last piece, this amount of room can
+be given as <var>at_end_columns</var>.
 </p>
-<p>Returns 0 if successful, or -1 with <code>errno</code> set upon failure.
+<p><var>override</var> is an optional override; if
+<code><var>override</var>[<var>i</var>] != UC_BREAK_UNDEFINED</code>,
+<code><var>override</var>[<var>i</var>]</code> takes precedence over <code><var>p</var>[<var>i</var>]</code>
+as returned by the <code>u*_possible_linebreaks</code> function.
 </p>
-<p>Note! If after calling this function, additional characters are written
-into the filter, the resulting character sequence in the encapsulated stream
-will not necessarily be normalized.
-</p></dd></dl>
-
-<dl>
-<dt><u>Function:</u> int <b>uninorm_filter_free</b><i> (struct uninorm_filter *<var>filter</var>)</i>
-<a name="IDX693"></a>
-</dt>
-<dd><p>Brings data buffered in the filter to its destination, the encapsulated stream,
-then closes and frees the filter.
+<p>The given <var>encoding</var> is used for disambiguating widths in <code>uc_width</code>.
 </p>
-<p>Returns 0 if successful, or -1 with <code>errno</code> set upon failure.
+<p>Returns the column after the end of the string, 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
+the values <code>UC_BREAK_MANDATORY</code>, <code>UC_BREAK_POSSIBLE</code>,
+<code>UC_BREAK_HYPHENATION</code>, <code>UC_BREAK_PROHIBITED</code>.  Here the value
+<code>UC_BREAK_POSSIBLE</code> indicates 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="#SEC42" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_11.html#SEC44" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_13.html#SEC48" title="Next chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
@@ -493,12 +186,12 @@ then closes and frees the filter.
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 8b77910..1e1d12d 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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: 13. Case mappings &lt;unicase.h&gt;</title>
+<title>GNU libunistring: 13. Normalization forms (composition and decomposition) &lt;uninorm.h&gt;</title>
 
-<meta name="description" content="GNU libunistring: 13. Case mappings &lt;unicase.h&gt;">
-<meta name="keywords" content="GNU libunistring: 13. Case mappings &lt;unicase.h&gt;">
+<meta name="description" content="GNU libunistring: 13. Normalization forms (composition and decomposition) &lt;uninorm.h&gt;">
+<meta name="keywords" content="GNU libunistring: 13. Normalization forms (composition and decomposition) &lt;uninorm.h&gt;">
 <meta name="resource-type" content="document">
 <meta name="distribution" content="global">
 <meta name="Generator" content="texi2html 1.78a">
@@ -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_12.html#SEC42" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_12.html#SEC47" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_14.html#SEC54" title="Next chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
@@ -51,446 +51,369 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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="uninorm_002eh"></a>
 <a name="SEC48"></a>
-<h1 class="chapter"> <a href="libunistring.html#TOC48">13. Case mappings <code>&lt;unicase.h&gt;</code></a> </h1>
+<h1 class="chapter"> <a href="libunistring.html#TOC48">13. Normalization forms (composition and decomposition) <code>&lt;uninorm.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.
-</p>
-<p>These string functions fix the problems that were mentioned in
-<a href="libunistring_1.html#SEC6">&lsquo;<samp>char *</samp>&rsquo; strings</a>, namely, they handle the Croatian
-<small>LETTER DZ WITH CARON</small>, the German <small>LATIN SMALL LETTER SHARP S</small>, the
-Greek sigma and the Lithuanian i correctly.
+<p>This include file defines functions for transforming Unicode strings to one
+of the four normal forms, known as NFC, NFD, NKFC, NFKD.  These
+transformations involve decomposition and &mdash; for NFC and NFKC &mdash; composition
+of Unicode characters.
 </p>
 
 <hr size="6">
-<a name="Case-mappings-of-characters"></a>
+<a name="Decomposition-of-characters"></a>
 <a name="SEC49"></a>
-<h2 class="section"> <a href="libunistring.html#TOC49">13.1 Case mappings of characters</a> </h2>
+<h2 class="section"> <a href="libunistring.html#TOC49">13.1 Decomposition of Unicode 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
+<p>The following enumerated values are the possible types of decomposition of a
 Unicode character.
 </p>
-<p>These mappings are locale and context independent.
-</p>
-<table class="cartouche" border="1"><tr><td>
-<p><strong>WARNING!</strong> These functions are not sufficient for languages such as
-German, Greek and Lithuanian.  Better use the functions below that treat an
-entire string at once and are language aware.
-</p></td></tr></table>
-
 <dl>
-<dt><u>Function:</u> ucs4_t <b>uc_toupper</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX694"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_CANONICAL</b>
+<a name="IDX767"></a>
 </dt>
-<dd><p>Returns the uppercase mapping of the Unicode character <var>uc</var>.
+<dd><p>Denotes canonical decomposition.
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> ucs4_t <b>uc_tolower</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX695"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_FONT</b>
+<a name="IDX768"></a>
 </dt>
-<dd><p>Returns the lowercase mapping of the Unicode character <var>uc</var>.
+<dd><p>UCD marker: <code>&lt;font&gt;</code>.  Denotes a font variant (e.g. a blackletter form).
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> ucs4_t <b>uc_totitle</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX696"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_NOBREAK</b>
+<a name="IDX769"></a>
 </dt>
-<dd><p>Returns the titlecase mapping of the Unicode character <var>uc</var>.
-</p>
-<p>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.
-</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
-are different.  These characters occur in the Latin writing of the Croatian,
-Bosnian, and Serbian languages.
-</p>
-<table>
-<thead><tr><th><p> Lower case </p></th><th><p> Title case </p></th><th><p> Upper case
-</p></th></tr></thead>
-<tr><td><p> LATIN SMALL LETTER LJ
- </p></td><td><p> LATIN CAPITAL LETTER L WITH SMALL LETTER J
- </p></td><td><p> LATIN CAPITAL LETTER LJ
-</p></td></tr>
-<tr><td><p> LATIN SMALL LETTER NJ
- </p></td><td><p> LATIN CAPITAL LETTER N WITH SMALL LETTER J
- </p></td><td><p> LATIN CAPITAL LETTER NJ
-</p></td></tr>
-<tr><td><p> LATIN SMALL LETTER DZ
- </p></td><td><p> LATIN CAPITAL LETTER D WITH SMALL LETTER Z
- </p></td><td><p> LATIN CAPITAL LETTER DZ
-</p></td></tr>
-<tr><td><p> LATIN SMALL LETTER DZ WITH CARON
- </p></td><td><p> LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
- </p></td><td><p> LATIN CAPITAL LETTER DZ WITH CARON
-</p></td></tr>
-</table>
-</dd></dl>
-
-<hr size="6">
-<a name="Case-mappings-of-strings"></a>
-<a name="SEC50"></a>
-<h2 class="section"> <a href="libunistring.html#TOC50">13.2 Case mappings of strings</a> </h2>
+<dd><p>UCD marker: <code>&lt;noBreak&gt;</code>.
+Denotes a no-break version of a space or hyphen.
+</p></dd></dl>
 
-<p>Case mapping should always be performed on entire strings, not on individual
-characters.  The functions in this sections 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,
-you most often also want to treat the composed and decomposed forms of such
-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="IDX697"></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="IDX698"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_INITIAL</b>
+<a name="IDX770"></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.
+<dd><p>UCD marker: <code>&lt;initial&gt;</code>.
+Denotes an initial presentation form (Arabic).
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> uint8_t * <b>u8_toupper</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX699"></a>
-</dt>
-<dt><u>Function:</u> uint16_t * <b>u16_toupper</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX700"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_MEDIAL</b>
+<a name="IDX771"></a>
 </dt>
-<dt><u>Function:</u> uint32_t * <b>u32_toupper</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX701"></a>
-</dt>
-<dd><p>Returns the uppercase mapping of a string.
-</p>
-<p>The <var>nf</var> argument identifies the normalization form to apply after the
-case-mapping.  It can also be NULL, for no normalization.
+<dd><p>UCD marker: <code>&lt;medial&gt;</code>.
+Denotes a medial presentation form (Arabic).
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> uint8_t * <b>u8_tolower</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX702"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_FINAL</b>
+<a name="IDX772"></a>
 </dt>
-<dt><u>Function:</u> uint16_t * <b>u16_tolower</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX703"></a>
-</dt>
-<dt><u>Function:</u> uint32_t * <b>u32_tolower</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX704"></a>
-</dt>
-<dd><p>Returns the lowercase mapping of a string.
-</p>
-<p>The <var>nf</var> argument identifies the normalization form to apply after the
-case-mapping.  It can also be NULL, for no normalization.
+<dd><p>UCD marker: <code>&lt;final&gt;</code>.
+Denotes a final presentation form (Arabic).
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> uint8_t * <b>u8_totitle</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX705"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_ISOLATED</b>
+<a name="IDX773"></a>
 </dt>
-<dt><u>Function:</u> uint16_t * <b>u16_totitle</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX706"></a>
-</dt>
-<dt><u>Function:</u> uint32_t * <b>u32_totitle</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX707"></a>
-</dt>
-<dd><p>Returns the titlecase mapping of a string.
-</p>
-<p>Mapping to title case means that, in each word, the first cased character
-is being mapped to title case and the remaining characters of the word
-are being mapped to lower case.
-</p>
-<p>The <var>nf</var> argument identifies the normalization form to apply after the
-case-mapping.  It can also be NULL, for no normalization.
+<dd><p>UCD marker: <code>&lt;isolated&gt;</code>.
+Denotes an isolated presentation form (Arabic).
 </p></dd></dl>
 
-<hr size="6">
-<a name="Case-mappings-of-substrings"></a>
-<a name="SEC51"></a>
-<h2 class="section"> <a href="libunistring.html#TOC51">13.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
-work because case mapping requires some information about the surrounding
-characters.  The following functions allow to apply case mappings to
-substrings of a given string, while taking into account the characters that
-precede it (the &ldquo;prefix&rdquo;) and the characters that follow it (the &ldquo;suffix&rdquo;).
-</p>
 <dl>
-<dt><u>Type:</u> <b>casing_prefix_context_t</b>
-<a name="IDX708"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_CIRCLE</b>
+<a name="IDX774"></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,
-without involving memory allocation.  It is not an array type.
+<dd><p>UCD marker: <code>&lt;circle&gt;</code>.
+Denotes an encircled form.
 </p></dd></dl>
 
 <dl>
-<dt><u>Constant:</u> casing_prefix_context_t <b>unicase_empty_prefix_context</b>
-<a name="IDX709"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_SUPER</b>
+<a name="IDX775"></a>
 </dt>
-<dd><p>This constant is the case-mapping context that corresponds to an empty prefix
-string.
+<dd><p>UCD marker: <code>&lt;super&gt;</code>.
+Denotes a superscript form.
 </p></dd></dl>
 
-<p>The following functions return <code>casing_prefix_context_t</code> objects:
-</p>
 <dl>
-<dt><u>Function:</u> casing_prefix_context_t <b>u8_casing_prefix_context</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>)</i>
-<a name="IDX710"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_SUB</b>
+<a name="IDX776"></a>
 </dt>
-<dt><u>Function:</u> casing_prefix_context_t <b>u16_casing_prefix_context</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>)</i>
-<a name="IDX711"></a>
+<dd><p>UCD marker: <code>&lt;sub&gt;</code>.
+Denotes a subscript form.
+</p></dd></dl>
+
+<dl>
+<dt><u>Constant:</u> int <b>UC_DECOMP_VERTICAL</b>
+<a name="IDX777"></a>
 </dt>
-<dt><u>Function:</u> casing_prefix_context_t <b>u32_casing_prefix_context</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>)</i>
-<a name="IDX712"></a>
+<dd><p>UCD marker: <code>&lt;vertical&gt;</code>.
+Denotes a vertical layout presentation form.
+</p></dd></dl>
+
+<dl>
+<dt><u>Constant:</u> int <b>UC_DECOMP_WIDE</b>
+<a name="IDX778"></a>
 </dt>
-<dd><p>Returns the case-mapping context of a given prefix string.
+<dd><p>UCD marker: <code>&lt;wide&gt;</code>.
+Denotes a wide (or zenkaku) compatibility character.
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> casing_prefix_context_t <b>u8_casing_prefixes_context</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>a_context</var>)</i>
-<a name="IDX713"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_NARROW</b>
+<a name="IDX779"></a>
 </dt>
-<dt><u>Function:</u> casing_prefix_context_t <b>u16_casing_prefixes_context</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>a_context</var>)</i>
-<a name="IDX714"></a>
+<dd><p>UCD marker: <code>&lt;narrow&gt;</code>.
+Denotes a narrow (or hankaku) compatibility character.
+</p></dd></dl>
+
+<dl>
+<dt><u>Constant:</u> int <b>UC_DECOMP_SMALL</b>
+<a name="IDX780"></a>
 </dt>
-<dt><u>Function:</u> casing_prefix_context_t <b>u32_casing_prefixes_context</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>a_context</var>)</i>
-<a name="IDX715"></a>
+<dd><p>UCD marker: <code>&lt;small&gt;</code>.
+Denotes a small variant form (CNS compatibility).
+</p></dd></dl>
+
+<dl>
+<dt><u>Constant:</u> int <b>UC_DECOMP_SQUARE</b>
+<a name="IDX781"></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>.
+<dd><p>UCD marker: <code>&lt;square&gt;</code>.
+Denotes a CJK squared font variant.
 </p></dd></dl>
 
 <dl>
-<dt><u>Type:</u> <b>casing_suffix_context_t</b>
-<a name="IDX716"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_FRACTION</b>
+<a name="IDX782"></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,
-without involving memory allocation.  It is not an array type.
+<dd><p>UCD marker: <code>&lt;fraction&gt;</code>.
+Denotes a vulgar fraction form.
 </p></dd></dl>
 
 <dl>
-<dt><u>Constant:</u> casing_suffix_context_t <b>unicase_empty_suffix_context</b>
-<a name="IDX717"></a>
+<dt><u>Constant:</u> int <b>UC_DECOMP_COMPAT</b>
+<a name="IDX783"></a>
 </dt>
-<dd><p>This constant is the case-mapping context that corresponds to an empty suffix
-string.
+<dd><p>UCD marker: <code>&lt;compat&gt;</code>.
+Denotes an otherwise unspecified compatibility character.
 </p></dd></dl>
 
-<p>The following functions return <code>casing_suffix_context_t</code> objects:
+<p>The following constant denotes the maximum size of decomposition of a single
+Unicode character.
 </p>
 <dl>
-<dt><u>Function:</u> casing_suffix_context_t <b>u8_casing_suffix_context</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>)</i>
-<a name="IDX718"></a>
-</dt>
-<dt><u>Function:</u> casing_suffix_context_t <b>u16_casing_suffix_context</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>)</i>
-<a name="IDX719"></a>
+<dt><u>Macro:</u> unsigned int <b>UC_DECOMPOSITION_MAX_LENGTH</b>
+<a name="IDX784"></a>
 </dt>
-<dt><u>Function:</u> casing_suffix_context_t <b>u32_casing_suffix_context</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>)</i>
-<a name="IDX720"></a>
-</dt>
-<dd><p>Returns the case-mapping context of a given suffix string.
+<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.
 </p></dd></dl>
 
+<p>The following functions decompose a Unicode character.
+</p>
 <dl>
-<dt><u>Function:</u> casing_suffix_context_t <b>u8_casing_suffixes_context</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, casing_suffix_context_t <var>a_context</var>)</i>
-<a name="IDX721"></a>
+<dt><u>Function:</u> int <b>uc_decomposition</b><i> (ucs4_t <var>uc</var>, int *<var>decomp_tag</var>, ucs4_t *<var>decomposition</var>)</i>
+<a name="IDX785"></a>
 </dt>
-<dt><u>Function:</u> casing_suffix_context_t <b>u16_casing_suffixes_context</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_suffix_context_t <var>a_context</var>)</i>
-<a name="IDX722"></a>
-</dt>
-<dt><u>Function:</u> casing_suffix_context_t <b>u32_casing_suffixes_context</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_suffix_context_t <var>a_context</var>)</i>
-<a name="IDX723"></a>
+<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
+<code>UC_DECOMPOSITION_MAX_LENGTH</code> <code>ucs_t</code> elements.
+</p>
+<p>When a decomposition exists, <code><var>decomposition</var>[0..<var>n</var>-1]</code> and
+<code>*<var>decomp_tag</var></code> are filled and <var>n</var> is returned.  Otherwise -1 is
+returned.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> int <b>uc_canonical_decomposition</b><i> (ucs4_t <var>uc</var>, ucs4_t *<var>decomposition</var>)</i>
+<a name="IDX786"></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>.
+<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
+<code>UC_DECOMPOSITION_MAX_LENGTH</code> <code>ucs_t</code> elements.
+</p>
+<p>When a decomposition exists, <code><var>decomposition</var>[0..<var>n</var>-1]</code> is filled
+and <var>n</var> is returned.  Otherwise -1 is returned.
 </p></dd></dl>
 
-<p>The following functions perform a case mapping, considering the
-prefix context and the suffix context.
+<hr size="6">
+<a name="Composition-of-characters"></a>
+<a name="SEC50"></a>
+<h2 class="section"> <a href="libunistring.html#TOC50">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> uint8_t * <b>u8_ct_toupper</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX724"></a>
+<dt><u>Function:</u> ucs4_t <b>uc_composition</b><i> (ucs4_t <var>uc1</var>, ucs4_t <var>uc2</var>)</i>
+<a name="IDX787"></a>
 </dt>
-<dt><u>Function:</u> uint16_t * <b>u16_ct_toupper</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX725"></a>
-</dt>
-<dt><u>Function:</u> uint32_t * <b>u32_ct_toupper</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX726"></a>
-</dt>
-<dd><p>Returns the uppercase mapping of a string that is surrounded by a prefix
-and a suffix.
+<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.
+</p>
+<p>Returns the combination of <var>uc1</var> and <var>uc2</var>, if it exists.
+Returns 0 otherwise.
+</p>
+<p>Not all decompositions can be recombined using this function.  See the Unicode
+file &lsquo;<tt>CompositionExclusions.txt</tt>&rsquo; for details.
 </p></dd></dl>
 
+<hr size="6">
+<a name="Normalization-of-strings"></a>
+<a name="SEC51"></a>
+<h2 class="section"> <a href="libunistring.html#TOC51">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>Function:</u> uint8_t * <b>u8_ct_tolower</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX727"></a>
-</dt>
-<dt><u>Function:</u> uint16_t * <b>u16_ct_tolower</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX728"></a>
+<dt><u>Type:</u> <b>uninorm_t</b>
+<a name="IDX788"></a>
 </dt>
-<dt><u>Function:</u> uint32_t * <b>u32_ct_tolower</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX729"></a>
-</dt>
-<dd><p>Returns the lowercase mapping of a string that is surrounded by a prefix
-and a suffix.
+<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>.
 </p></dd></dl>
 
+<p>The following constants denote the four normalization forms.
+</p>
 <dl>
-<dt><u>Function:</u> uint8_t * <b>u8_ct_totitle</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX730"></a>
+<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFD</b>
+<a name="IDX789"></a>
 </dt>
-<dt><u>Function:</u> uint16_t * <b>u16_ct_totitle</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX731"></a>
-</dt>
-<dt><u>Function:</u> uint32_t * <b>u32_ct_totitle</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX732"></a>
+<dd><p>Denotes Normalization form D: canonical decomposition.
+</p></dd></dl>
+
+<dl>
+<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFC</b>
+<a name="IDX790"></a>
 </dt>
-<dd><p>Returns the titlecase mapping of a string that is surrounded by a prefix
-and a suffix.
+<dd><p>Normalization form C: canonical decomposition, then canonical composition.
 </p></dd></dl>
 
-<p>For example, to uppercase the UTF-8 substring between <code>s + start_index</code>
-and <code>s + end_index</code> of a string that extends from <code>s</code> to
-<code>s + u8_strlen (s)</code>, you can use the statements
-</p>
-<table><tr><td>&nbsp;</td><td><pre class="smallexample">size_t result_length;
-uint8_t result =
-  u8_ct_toupper (s + start_index, end_index - start_index,
-                 u8_casing_prefix_context (s, start_index),
-                 u8_casing_suffix_context (s + end_index,
-                                           u8_strlen (s) - end_index),
-                 iso639_language, NULL, NULL, &amp;result_length);
-</pre></td></tr></table>
+<dl>
+<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFKD</b>
+<a name="IDX791"></a>
+</dt>
+<dd><p>Normalization form KD: compatibility decomposition.
+</p></dd></dl>
 
-<hr size="6">
-<a name="Case-insensitive-comparison"></a>
-<a name="SEC52"></a>
-<h2 class="section"> <a href="libunistring.html#TOC52">13.4 Case insensitive comparison</a> </h2>
+<dl>
+<dt><u>Macro:</u> uninorm_t <b>UNINORM_NFKC</b>
+<a name="IDX792"></a>
+</dt>
+<dd><p>Normalization form KC: compatibility decomposition, then canonical composition.
+</p></dd></dl>
 
-<p>The following functions implement comparison that ignores differences in case
-and normalization.
+<p>The following functions operate on <code>uninorm_t</code> objects.
 </p>
 <dl>
-<dt><u>Function:</u> uint8_t * <b>u8_casefold</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX733"></a>
+<dt><u>Function:</u> bool <b>uninorm_is_compat_decomposing</b><i> (uninorm_t <var>nf</var>)</i>
+<a name="IDX793"></a>
 </dt>
-<dt><u>Function:</u> uint16_t * <b>u16_casefold</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX734"></a>
+<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 <var>nf</var>)</i>
+<a name="IDX794"></a>
 </dt>
-<dt><u>Function:</u> uint32_t * <b>u32_casefold</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX735"></a>
+<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 <var>nf</var>)</i>
+<a name="IDX795"></a>
 </dt>
-<dd><p>Returns the case folded string.
-</p>
-<p>Comparing <code>u8_casefold (<var>s1</var>)</code> and <code>u8_casefold (<var>s2</var>)</code>
-with the <code>u8_cmp2</code> function is equivalent to comparing <var>s1</var> and
-<var>s2</var> with <code>u8_casecmp</code>.
-</p>
-<p>The <var>nf</var> argument identifies the normalization form to apply after the
-case-mapping.  It can also be NULL, for no normalization.
+<dd><p>Returns the decomposing variant of the normalization form <var>nf</var>.
+This maps NFC,NFD → NFD and NFKC,NFKD → NFKD.
 </p></dd></dl>
 
+<p>The following functions apply a Unicode normalization form to a Unicode string.
+</p>
 <dl>
-<dt><u>Function:</u> uint8_t * <b>u8_ct_casefold</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX736"></a>
+<dt><u>Function:</u> uint8_t * <b>u8_normalize</b><i> (uninorm_t <var>nf</var>, const uint8_t *<var>s</var>, size_t <var>n</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX796"></a>
 </dt>
-<dt><u>Function:</u> uint16_t * <b>u16_ct_casefold</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX737"></a>
+<dt><u>Function:</u> uint16_t * <b>u16_normalize</b><i> (uninorm_t <var>nf</var>, const uint16_t *<var>s</var>, size_t <var>n</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX797"></a>
 </dt>
-<dt><u>Function:</u> uint32_t * <b>u32_ct_casefold</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX738"></a>
+<dt><u>Function:</u> uint32_t * <b>u32_normalize</b><i> (uninorm_t <var>nf</var>, const uint32_t *<var>s</var>, size_t <var>n</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX798"></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.
+<dd><p>Returns the specified normalization form of a string.
 </p></dd></dl>
 
+<hr size="6">
+<a name="Normalizing-comparisons"></a>
+<a name="SEC52"></a>
+<h2 class="section"> <a href="libunistring.html#TOC52">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_casecmp</b><i> (const uint8_t *<var>s1</var>, size_t <var>n1</var>, const uint8_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX739"></a>
-</dt>
-<dt><u>Function:</u> int <b>u16_casecmp</b><i> (const uint16_t *<var>s1</var>, size_t <var>n1</var>, const uint16_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX740"></a>
+<dt><u>Function:</u> int <b>u8_normcmp</b><i> (const uint8_t *<var>s1</var>, size_t <var>n1</var>, const uint8_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX799"></a>
 </dt>
-<dt><u>Function:</u> int <b>u32_casecmp</b><i> (const uint32_t *<var>s1</var>, size_t <var>n1</var>, const uint32_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX741"></a>
+<dt><u>Function:</u> int <b>u16_normcmp</b><i> (const uint16_t *<var>s1</var>, size_t <var>n1</var>, const uint16_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX800"></a>
 </dt>
-<dt><u>Function:</u> int <b>ulc_casecmp</b><i> (const char *<var>s1</var>, size_t <var>n1</var>, const char *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX742"></a>
+<dt><u>Function:</u> int <b>u32_normcmp</b><i> (const uint32_t *<var>s1</var>, size_t <var>n1</var>, const uint32_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX801"></a>
 </dt>
-<dd><p>Compares <var>s1</var> and <var>s2</var>, ignoring differences in case and normalization.
+<dd><p>Compares <var>s1</var> and <var>s2</var>, ignoring differences in normalization.
 </p>
-<p>The <var>nf</var> argument identifies the normalization form to apply after the
-case-mapping.  It can also be NULL, for no normalization.
+<p><var>nf</var> must be either <code>UNINORM_NFD</code> or <code>UNINORM_NFKD</code>.
 </p>
 <p>If successful, sets <code>*<var>resultp</var></code> to -1 if <var>s1</var> &lt; <var>s2</var>,
 0 if <var>s1</var> = <var>s2</var>, 1 if <var>s1</var> &gt; <var>s2</var>, and returns 0.
 Upon failure, returns -1 with <code>errno</code> set.
 </p></dd></dl>
 
-<a name="IDX743"></a>
-<a name="IDX744"></a>
-<a name="IDX745"></a>
-<a name="IDX746"></a>
-<p>The following functions additionally take into account the sorting rules of the
-current locale.
-</p>
+<a name="IDX802"></a>
+<a name="IDX803"></a>
 <dl>
-<dt><u>Function:</u> char * <b>u8_casexfrm</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX747"></a>
+<dt><u>Function:</u> char * <b>u8_normxfrm</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX804"></a>
 </dt>
-<dt><u>Function:</u> char * <b>u16_casexfrm</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX748"></a>
+<dt><u>Function:</u> char * <b>u16_normxfrm</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX805"></a>
 </dt>
-<dt><u>Function:</u> char * <b>u32_casexfrm</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX749"></a>
-</dt>
-<dt><u>Function:</u> char * <b>ulc_casexfrm</b><i> (const char *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
-<a name="IDX750"></a>
+<dt><u>Function:</u> char * <b>u32_normxfrm</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX806"></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
-<code>u8_casexfrm (<var>s2</var>)</code> with the gnulib function <code>memcmp2</code> is
-equivalent to comparing <var>s1</var> and <var>s2</var> with <code>u8_casecoll</code>.
+sequence, in such a way that comparing <code>u8_normxfrm (<var>s1</var>)</code> and
+<code>u8_normxfrm (<var>s2</var>)</code> with the <code>u8_cmp2</code> function is equivalent to
+comparing <var>s1</var> and <var>s2</var> with the <code>u8_normcoll</code> function.
 </p>
-<p><var>nf</var> must be either <code>UNINORM_NFC</code>, <code>UNINORM_NFKC</code>, or NULL for
-no normalization.
+<p><var>nf</var> must be either <code>UNINORM_NFC</code> or <code>UNINORM_NFKC</code>.
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> int <b>u8_casecoll</b><i> (const uint8_t *<var>s1</var>, size_t <var>n1</var>, const uint8_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX751"></a>
-</dt>
-<dt><u>Function:</u> int <b>u16_casecoll</b><i> (const uint16_t *<var>s1</var>, size_t <var>n1</var>, const uint16_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX752"></a>
+<dt><u>Function:</u> int <b>u8_normcoll</b><i> (const uint8_t *<var>s1</var>, size_t <var>n1</var>, const uint8_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX807"></a>
 </dt>
-<dt><u>Function:</u> int <b>u32_casecoll</b><i> (const uint32_t *<var>s1</var>, size_t <var>n1</var>, const uint32_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX753"></a>
+<dt><u>Function:</u> int <b>u16_normcoll</b><i> (const uint16_t *<var>s1</var>, size_t <var>n1</var>, const uint16_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX808"></a>
 </dt>
-<dt><u>Function:</u> int <b>ulc_casecoll</b><i> (const char *<var>s1</var>, size_t <var>n1</var>, const char *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
-<a name="IDX754"></a>
+<dt><u>Function:</u> int <b>u32_normcoll</b><i> (const uint32_t *<var>s1</var>, size_t <var>n1</var>, const uint32_t *<var>s2</var>, size_t <var>n2</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX809"></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.
+<dd><p>Compares <var>s1</var> and <var>s2</var>, ignoring differences in normalization, using
+the collation rules of the current locale.
 </p>
-<p>The <var>nf</var> argument identifies the normalization form to apply after the
-case-mapping.  It must be either <code>UNINORM_NFC</code> or <code>UNINORM_NFKC</code>.
-It can also be NULL, for no normalization.
+<p><var>nf</var> must be either <code>UNINORM_NFC</code> or <code>UNINORM_NFKC</code>.
 </p>
 <p>If successful, sets <code>*<var>resultp</var></code> to -1 if <var>s1</var> &lt; <var>s2</var>,
 0 if <var>s1</var> = <var>s2</var>, 1 if <var>s1</var> &gt; <var>s2</var>, and returns 0.
@@ -498,93 +421,66 @@ Upon failure, returns -1 with <code>errno</code> set.
 </p></dd></dl>
 
 <hr size="6">
-<a name="Case-detection"></a>
+<a name="Normalization-of-streams"></a>
 <a name="SEC53"></a>
-<h2 class="section"> <a href="libunistring.html#TOC53">13.5 Case detection</a> </h2>
+<h2 class="section"> <a href="libunistring.html#TOC53">13.5 Normalization of streams of Unicode characters</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
-case-folded.
+<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
+&ldquo;flushes&rdquo; the stream.
 </p>
 <dl>
-<dt><u>Function:</u> int <b>u8_is_uppercase</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX755"></a>
-</dt>
-<dt><u>Function:</u> int <b>u16_is_uppercase</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX756"></a>
-</dt>
-<dt><u>Function:</u> int <b>u32_is_uppercase</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX757"></a>
+<dt><u>Type:</u> <b>struct uninorm_filter</b>
+<a name="IDX810"></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
-<code>errno</code> set.
+<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
+character sequence to the encapsulated stream of Unicode characters.
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> int <b>u8_is_lowercase</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX758"></a>
+<dt><u>Function:</u> struct uninorm_filter * <b>uninorm_filter_create</b><i> (uninorm_t <var>nf</var>, int (*<var>stream_func</var>) (void *<var>stream_data</var>, ucs4_t <var>uc</var>), void *<var>stream_data</var>)</i>
+<a name="IDX811"></a>
 </dt>
-<dt><u>Function:</u> int <b>u16_is_lowercase</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX759"></a>
-</dt>
-<dt><u>Function:</u> int <b>u32_is_lowercase</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX760"></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
-<code>errno</code> set.
+<dd><p>Creates and returns a normalization filter for Unicode characters.
+</p>
+<p>The pair (<var>stream_func</var>, <var>stream_data</var>) is the encapsulated stream.
+<code><var>stream_func</var> (<var>stream_data</var>, <var>uc</var>)</code> receives the Unicode
+character <var>uc</var> and returns 0 if successful, or -1 with <code>errno</code> set
+upon failure.
+</p>
+<p>Returns the new filter, or NULL with <code>errno</code> set upon failure.
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> int <b>u8_is_titlecase</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX761"></a>
-</dt>
-<dt><u>Function:</u> int <b>u16_is_titlecase</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX762"></a>
+<dt><u>Function:</u> int <b>uninorm_filter_write</b><i> (struct uninorm_filter *<var>filter</var>, ucs4_t <var>uc</var>)</i>
+<a name="IDX812"></a>
 </dt>
-<dt><u>Function:</u> int <b>u32_is_titlecase</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX763"></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
-<code>errno</code> set.
+<dd><p>Stuffs a Unicode character into a normalizing filter.
+Returns 0 if successful, or -1 with <code>errno</code> set upon failure.
 </p></dd></dl>
 
 <dl>
-<dt><u>Function:</u> int <b>u8_is_casefolded</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX764"></a>
-</dt>
-<dt><u>Function:</u> int <b>u16_is_casefolded</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX765"></a>
+<dt><u>Function:</u> int <b>uninorm_filter_flush</b><i> (struct uninorm_filter *<var>filter</var>)</i>
+<a name="IDX813"></a>
 </dt>
-<dt><u>Function:</u> int <b>u32_is_casefolded</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX766"></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
-<code>errno</code> set.
+<dd><p>Brings data buffered in the filter to its destination, the encapsulated stream.
+</p>
+<p>Returns 0 if successful, or -1 with <code>errno</code> set upon failure.
+</p>
+<p>Note! If after calling this function, additional characters are written
+into the filter, the resulting character sequence in the encapsulated stream
+will not necessarily be normalized.
 </p></dd></dl>
 
-<p>The following functions determine whether case mappings have any effect on a
-Unicode string.
-</p>
 <dl>
-<dt><u>Function:</u> int <b>u8_is_cased</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX767"></a>
-</dt>
-<dt><u>Function:</u> int <b>u16_is_cased</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX768"></a>
+<dt><u>Function:</u> int <b>uninorm_filter_free</b><i> (struct uninorm_filter *<var>filter</var>)</i>
+<a name="IDX814"></a>
 </dt>
-<dt><u>Function:</u> int <b>u32_is_cased</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
-<a name="IDX769"></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
-a no-op.  Set <code>*<var>resultp</var></code> to false if NFD(<var>s</var>) maps to itself
-under the upper case mapping, under the lower case mapping, and under the title
-case mapping; in other words, when NFD(<var>s</var>) consists entirely of caseless
-characters. Upon failure, returns -1 with <code>errno</code> set.
+<dd><p>Brings data buffered in the filter to its destination, the encapsulated stream,
+then closes and frees the filter.
+</p>
+<p>Returns 0 if successful, or -1 with <code>errno</code> set upon failure.
 </p></dd></dl>
 <hr size="6">
 <table cellpadding="1" cellspacing="1" border="0">
@@ -597,12 +493,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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 1a7a338..dc05f82 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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: 14. Regular expressions &lt;uniregex.h&gt;</title>
+<title>GNU libunistring: 14. Case mappings &lt;unicase.h&gt;</title>
 
-<meta name="description" content="GNU libunistring: 14. Regular expressions &lt;uniregex.h&gt;">
-<meta name="keywords" content="GNU libunistring: 14. Regular expressions &lt;uniregex.h&gt;">
+<meta name="description" content="GNU libunistring: 14. Case mappings &lt;unicase.h&gt;">
+<meta name="keywords" content="GNU libunistring: 14. Case mappings &lt;unicase.h&gt;">
 <meta name="resource-type" content="document">
 <meta name="distribution" content="global">
 <meta name="Generator" content="texi2html 1.78a">
@@ -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_13.html#SEC48" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_15.html#SEC55" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_15.html#SEC60" 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,545 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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="unicase_002eh"></a>
 <a name="SEC54"></a>
-<h1 class="chapter"> <a href="libunistring.html#TOC54">14. Regular expressions <code>&lt;uniregex.h&gt;</code></a> </h1>
+<h1 class="chapter"> <a href="libunistring.html#TOC54">14. Case mappings <code>&lt;unicase.h&gt;</code></a> </h1>
 
-<p>This include file is not yet implemented.
+<p>This include file defines functions for case mapping for Unicode strings and
+case insensitive comparison of Unicode strings and C strings.
 </p>
+<p>These string functions fix the problems that were mentioned in
+<a href="libunistring_1.html#SEC6">&lsquo;<samp>char *</samp>&rsquo; strings</a>, namely, they handle the Croatian
+<small>LETTER DZ WITH CARON</small>, the German <small>LATIN SMALL LETTER SHARP S</small>, the
+Greek sigma and the Lithuanian i correctly.
+</p>
+
+<hr size="6">
+<a name="Case-mappings-of-characters"></a>
+<a name="SEC55"></a>
+<h2 class="section"> <a href="libunistring.html#TOC55">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
+Unicode character.
+</p>
+<p>These mappings are locale and context independent.
+</p>
+<table class="cartouche" border="1"><tr><td>
+<p><strong>WARNING!</strong> These functions are not sufficient for languages such as
+German, Greek and Lithuanian.  Better use the functions below that treat an
+entire string at once and are language aware.
+</p></td></tr></table>
+
+<dl>
+<dt><u>Function:</u> ucs4_t <b>uc_toupper</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX815"></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 <var>uc</var>)</i>
+<a name="IDX816"></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 <var>uc</var>)</i>
+<a name="IDX817"></a>
+</dt>
+<dd><p>Returns the titlecase mapping of the Unicode character <var>uc</var>.
+</p>
+<p>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.
+</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
+are different.  These characters occur in the Latin writing of the Croatian,
+Bosnian, and Serbian languages.
+</p>
+<table>
+<thead><tr><th><p> Lower case </p></th><th><p> Title case </p></th><th><p> Upper case
+</p></th></tr></thead>
+<tr><td><p> LATIN SMALL LETTER LJ
+ </p></td><td><p> LATIN CAPITAL LETTER L WITH SMALL LETTER J
+ </p></td><td><p> LATIN CAPITAL LETTER LJ
+</p></td></tr>
+<tr><td><p> LATIN SMALL LETTER NJ
+ </p></td><td><p> LATIN CAPITAL LETTER N WITH SMALL LETTER J
+ </p></td><td><p> LATIN CAPITAL LETTER NJ
+</p></td></tr>
+<tr><td><p> LATIN SMALL LETTER DZ
+ </p></td><td><p> LATIN CAPITAL LETTER D WITH SMALL LETTER Z
+ </p></td><td><p> LATIN CAPITAL LETTER DZ
+</p></td></tr>
+<tr><td><p> LATIN SMALL LETTER DZ WITH CARON
+ </p></td><td><p> LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+ </p></td><td><p> LATIN CAPITAL LETTER DZ WITH CARON
+</p></td></tr>
+</table>
+</dd></dl>
+
+<hr size="6">
+<a name="Case-mappings-of-strings"></a>
+<a name="SEC56"></a>
+<h2 class="section"> <a href="libunistring.html#TOC56">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.
+</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,
+you most often also want to treat the composed and decomposed forms of such
+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="IDX818"></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="IDX819"></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.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> uint8_t * <b>u8_toupper</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX820"></a>
+</dt>
+<dt><u>Function:</u> uint16_t * <b>u16_toupper</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX821"></a>
+</dt>
+<dt><u>Function:</u> uint32_t * <b>u32_toupper</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX822"></a>
+</dt>
+<dd><p>Returns the uppercase mapping of a string.
+</p>
+<p>The <var>nf</var> argument identifies the normalization form to apply after the
+case-mapping.  It can also be NULL, for no normalization.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> uint8_t * <b>u8_tolower</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX823"></a>
+</dt>
+<dt><u>Function:</u> uint16_t * <b>u16_tolower</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX824"></a>
+</dt>
+<dt><u>Function:</u> uint32_t * <b>u32_tolower</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX825"></a>
+</dt>
+<dd><p>Returns the lowercase mapping of a string.
+</p>
+<p>The <var>nf</var> argument identifies the normalization form to apply after the
+case-mapping.  It can also be NULL, for no normalization.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> uint8_t * <b>u8_totitle</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX826"></a>
+</dt>
+<dt><u>Function:</u> uint16_t * <b>u16_totitle</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX827"></a>
+</dt>
+<dt><u>Function:</u> uint32_t * <b>u32_totitle</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX828"></a>
+</dt>
+<dd><p>Returns the titlecase mapping of a string.
+</p>
+<p>Mapping to title case means that, in each word, the first cased character
+is being mapped to title case and the remaining characters of the word
+are being mapped to lower case.
+</p>
+<p>The <var>nf</var> argument identifies the normalization form to apply after the
+case-mapping.  It can also be NULL, for no normalization.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Case-mappings-of-substrings"></a>
+<a name="SEC57"></a>
+<h2 class="section"> <a href="libunistring.html#TOC57">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
+work because case mapping requires some information about the surrounding
+characters.  The following functions allow to apply case mappings to
+substrings of a given string, while taking into account the characters that
+precede it (the &ldquo;prefix&rdquo;) and the characters that follow it (the &ldquo;suffix&rdquo;).
+</p>
+<dl>
+<dt><u>Type:</u> <b>casing_prefix_context_t</b>
+<a name="IDX829"></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,
+without involving memory allocation.  It is not an array type.
+</p></dd></dl>
+
+<dl>
+<dt><u>Constant:</u> casing_prefix_context_t <b>unicase_empty_prefix_context</b>
+<a name="IDX830"></a>
+</dt>
+<dd><p>This constant is the case-mapping context that corresponds to an empty prefix
+string.
+</p></dd></dl>
+
+<p>The following functions return <code>casing_prefix_context_t</code> objects:
+</p>
+<dl>
+<dt><u>Function:</u> casing_prefix_context_t <b>u8_casing_prefix_context</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>)</i>
+<a name="IDX831"></a>
+</dt>
+<dt><u>Function:</u> casing_prefix_context_t <b>u16_casing_prefix_context</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>)</i>
+<a name="IDX832"></a>
+</dt>
+<dt><u>Function:</u> casing_prefix_context_t <b>u32_casing_prefix_context</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>)</i>
+<a name="IDX833"></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 uint8_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>a_context</var>)</i>
+<a name="IDX834"></a>
+</dt>
+<dt><u>Function:</u> casing_prefix_context_t <b>u16_casing_prefixes_context</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>a_context</var>)</i>
+<a name="IDX835"></a>
+</dt>
+<dt><u>Function:</u> casing_prefix_context_t <b>u32_casing_prefixes_context</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>a_context</var>)</i>
+<a name="IDX836"></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>.
+</p></dd></dl>
+
+<dl>
+<dt><u>Type:</u> <b>casing_suffix_context_t</b>
+<a name="IDX837"></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,
+without involving memory allocation.  It is not an array type.
+</p></dd></dl>
+
+<dl>
+<dt><u>Constant:</u> casing_suffix_context_t <b>unicase_empty_suffix_context</b>
+<a name="IDX838"></a>
+</dt>
+<dd><p>This constant is the case-mapping context that corresponds to an empty suffix
+string.
+</p></dd></dl>
+
+<p>The following functions return <code>casing_suffix_context_t</code> objects:
+</p>
+<dl>
+<dt><u>Function:</u> casing_suffix_context_t <b>u8_casing_suffix_context</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>)</i>
+<a name="IDX839"></a>
+</dt>
+<dt><u>Function:</u> casing_suffix_context_t <b>u16_casing_suffix_context</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>)</i>
+<a name="IDX840"></a>
+</dt>
+<dt><u>Function:</u> casing_suffix_context_t <b>u32_casing_suffix_context</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>)</i>
+<a name="IDX841"></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 uint8_t *<var>s</var>, size_t <var>n</var>, casing_suffix_context_t <var>a_context</var>)</i>
+<a name="IDX842"></a>
+</dt>
+<dt><u>Function:</u> casing_suffix_context_t <b>u16_casing_suffixes_context</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_suffix_context_t <var>a_context</var>)</i>
+<a name="IDX843"></a>
+</dt>
+<dt><u>Function:</u> casing_suffix_context_t <b>u32_casing_suffixes_context</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_suffix_context_t <var>a_context</var>)</i>
+<a name="IDX844"></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>.
+</p></dd></dl>
+
+<p>The following functions perform a case mapping, considering the
+prefix context and the suffix context.
+</p>
+<dl>
+<dt><u>Function:</u> uint8_t * <b>u8_ct_toupper</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX845"></a>
+</dt>
+<dt><u>Function:</u> uint16_t * <b>u16_ct_toupper</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX846"></a>
+</dt>
+<dt><u>Function:</u> uint32_t * <b>u32_ct_toupper</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX847"></a>
+</dt>
+<dd><p>Returns the uppercase mapping of a string that is surrounded by a prefix
+and a suffix.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> uint8_t * <b>u8_ct_tolower</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX848"></a>
+</dt>
+<dt><u>Function:</u> uint16_t * <b>u16_ct_tolower</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX849"></a>
+</dt>
+<dt><u>Function:</u> uint32_t * <b>u32_ct_tolower</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX850"></a>
+</dt>
+<dd><p>Returns the lowercase mapping of a string that is surrounded by a prefix
+and a suffix.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> uint8_t * <b>u8_ct_totitle</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX851"></a>
+</dt>
+<dt><u>Function:</u> uint16_t * <b>u16_ct_totitle</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX852"></a>
+</dt>
+<dt><u>Function:</u> uint32_t * <b>u32_ct_totitle</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX853"></a>
+</dt>
+<dd><p>Returns the titlecase mapping of a string that is surrounded by a prefix
+and a suffix.
+</p></dd></dl>
+
+<p>For example, to uppercase the UTF-8 substring between <code>s + start_index</code>
+and <code>s + end_index</code> of a string that extends from <code>s</code> to
+<code>s + u8_strlen (s)</code>, you can use the statements
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">size_t result_length;
+uint8_t result =
+  u8_ct_toupper (s + start_index, end_index - start_index,
+                 u8_casing_prefix_context (s, start_index),
+                 u8_casing_suffix_context (s + end_index,
+                                           u8_strlen (s) - end_index),
+                 iso639_language, NULL, NULL, &amp;result_length);
+</pre></td></tr></table>
+
+<hr size="6">
+<a name="Case-insensitive-comparison"></a>
+<a name="SEC58"></a>
+<h2 class="section"> <a href="libunistring.html#TOC58">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 uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX854"></a>
+</dt>
+<dt><u>Function:</u> uint16_t * <b>u16_casefold</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX855"></a>
+</dt>
+<dt><u>Function:</u> uint32_t * <b>u32_casefold</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX856"></a>
+</dt>
+<dd><p>Returns the case folded string.
+</p>
+<p>Comparing <code>u8_casefold (<var>s1</var>)</code> and <code>u8_casefold (<var>s2</var>)</code>
+with the <code>u8_cmp2</code> function is equivalent to comparing <var>s1</var> and
+<var>s2</var> with <code>u8_casecmp</code>.
+</p>
+<p>The <var>nf</var> argument identifies the normalization form to apply after the
+case-mapping.  It can also be NULL, for no normalization.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> uint8_t * <b>u8_ct_casefold</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint8_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX857"></a>
+</dt>
+<dt><u>Function:</u> uint16_t * <b>u16_ct_casefold</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint16_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX858"></a>
+</dt>
+<dt><u>Function:</u> uint32_t * <b>u32_ct_casefold</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, casing_prefix_context_t <var>prefix_context</var>, casing_suffix_context_t <var>suffix_context</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, uint32_t *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX859"></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.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> int <b>u8_casecmp</b><i> (const uint8_t *<var>s1</var>, size_t <var>n1</var>, const uint8_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX860"></a>
+</dt>
+<dt><u>Function:</u> int <b>u16_casecmp</b><i> (const uint16_t *<var>s1</var>, size_t <var>n1</var>, const uint16_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX861"></a>
+</dt>
+<dt><u>Function:</u> int <b>u32_casecmp</b><i> (const uint32_t *<var>s1</var>, size_t <var>n1</var>, const uint32_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX862"></a>
+</dt>
+<dt><u>Function:</u> int <b>ulc_casecmp</b><i> (const char *<var>s1</var>, size_t <var>n1</var>, const char *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX863"></a>
+</dt>
+<dd><p>Compares <var>s1</var> and <var>s2</var>, ignoring differences in case and normalization.
+</p>
+<p>The <var>nf</var> argument identifies the normalization form to apply after the
+case-mapping.  It can also be NULL, for no normalization.
+</p>
+<p>If successful, sets <code>*<var>resultp</var></code> to -1 if <var>s1</var> &lt; <var>s2</var>,
+0 if <var>s1</var> = <var>s2</var>, 1 if <var>s1</var> &gt; <var>s2</var>, and returns 0.
+Upon failure, returns -1 with <code>errno</code> set.
+</p></dd></dl>
+
+<a name="IDX864"></a>
+<a name="IDX865"></a>
+<a name="IDX866"></a>
+<a name="IDX867"></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 uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX868"></a>
+</dt>
+<dt><u>Function:</u> char * <b>u16_casexfrm</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX869"></a>
+</dt>
+<dt><u>Function:</u> char * <b>u32_casexfrm</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX870"></a>
+</dt>
+<dt><u>Function:</u> char * <b>ulc_casexfrm</b><i> (const char *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, char *<var>resultbuf</var>, size_t *<var>lengthp</var>)</i>
+<a name="IDX871"></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
+<code>u8_casexfrm (<var>s2</var>)</code> with the gnulib function <code>memcmp2</code> is
+equivalent to comparing <var>s1</var> and <var>s2</var> with <code>u8_casecoll</code>.
+</p>
+<p><var>nf</var> must be either <code>UNINORM_NFC</code>, <code>UNINORM_NFKC</code>, or NULL for
+no normalization.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> int <b>u8_casecoll</b><i> (const uint8_t *<var>s1</var>, size_t <var>n1</var>, const uint8_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX872"></a>
+</dt>
+<dt><u>Function:</u> int <b>u16_casecoll</b><i> (const uint16_t *<var>s1</var>, size_t <var>n1</var>, const uint16_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX873"></a>
+</dt>
+<dt><u>Function:</u> int <b>u32_casecoll</b><i> (const uint32_t *<var>s1</var>, size_t <var>n1</var>, const uint32_t *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX874"></a>
+</dt>
+<dt><u>Function:</u> int <b>ulc_casecoll</b><i> (const char *<var>s1</var>, size_t <var>n1</var>, const char *<var>s2</var>, size_t <var>n2</var>, const char *<var>iso639_language</var>, uninorm_t <var>nf</var>, int *<var>resultp</var>)</i>
+<a name="IDX875"></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.
+</p>
+<p>The <var>nf</var> argument identifies the normalization form to apply after the
+case-mapping.  It must be either <code>UNINORM_NFC</code> or <code>UNINORM_NFKC</code>.
+It can also be NULL, for no normalization.
+</p>
+<p>If successful, sets <code>*<var>resultp</var></code> to -1 if <var>s1</var> &lt; <var>s2</var>,
+0 if <var>s1</var> = <var>s2</var>, 1 if <var>s1</var> &gt; <var>s2</var>, and returns 0.
+Upon failure, returns -1 with <code>errno</code> set.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Case-detection"></a>
+<a name="SEC59"></a>
+<h2 class="section"> <a href="libunistring.html#TOC59">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
+case-folded.
+</p>
+<dl>
+<dt><u>Function:</u> int <b>u8_is_uppercase</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX876"></a>
+</dt>
+<dt><u>Function:</u> int <b>u16_is_uppercase</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX877"></a>
+</dt>
+<dt><u>Function:</u> int <b>u32_is_uppercase</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX878"></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
+<code>errno</code> set.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> int <b>u8_is_lowercase</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX879"></a>
+</dt>
+<dt><u>Function:</u> int <b>u16_is_lowercase</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX880"></a>
+</dt>
+<dt><u>Function:</u> int <b>u32_is_lowercase</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX881"></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
+<code>errno</code> set.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> int <b>u8_is_titlecase</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX882"></a>
+</dt>
+<dt><u>Function:</u> int <b>u16_is_titlecase</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX883"></a>
+</dt>
+<dt><u>Function:</u> int <b>u32_is_titlecase</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX884"></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
+<code>errno</code> set.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> int <b>u8_is_casefolded</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX885"></a>
+</dt>
+<dt><u>Function:</u> int <b>u16_is_casefolded</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX886"></a>
+</dt>
+<dt><u>Function:</u> int <b>u32_is_casefolded</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX887"></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
+<code>errno</code> set.
+</p></dd></dl>
+
+<p>The following functions determine whether case mappings have any effect on a
+Unicode string.
+</p>
+<dl>
+<dt><u>Function:</u> int <b>u8_is_cased</b><i> (const uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX888"></a>
+</dt>
+<dt><u>Function:</u> int <b>u16_is_cased</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX889"></a>
+</dt>
+<dt><u>Function:</u> int <b>u32_is_cased</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>iso639_language</var>, bool *<var>resultp</var>)</i>
+<a name="IDX890"></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
+a no-op.  Set <code>*<var>resultp</var></code> to false if NFD(<var>s</var>) maps to itself
+under the upper case mapping, under the lower case mapping, and under the title
+case mapping; in other words, when NFD(<var>s</var>) consists entirely of caseless
+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="libunistring_13.html#SEC48" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_15.html#SEC55" title="Next chapter"> &gt;&gt; </a>]</td>
+<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_15.html#SEC60" 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 +597,12 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 8b44419..697f2f4 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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: 15. Using the library</title>
+<title>GNU libunistring: 15. Regular expressions &lt;uniregex.h&gt;</title>
 
-<meta name="description" content="GNU libunistring: 15. Using the library">
-<meta name="keywords" content="GNU libunistring: 15. Using the library">
+<meta name="description" content="GNU libunistring: 15. Regular expressions &lt;uniregex.h&gt;">
+<meta name="keywords" content="GNU libunistring: 15. Regular expressions &lt;uniregex.h&gt;">
 <meta name="resource-type" content="document">
 <meta name="distribution" content="global">
 <meta name="Generator" content="texi2html 1.78a">
@@ -51,165 +51,20 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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="SEC55"></a>
-<h1 class="chapter"> <a href="libunistring.html#TOC55">15. 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
-library.
-</p>
-
-<hr size="6">
-<a name="Installation"></a>
-<a name="SEC56"></a>
-<h2 class="section"> <a href="libunistring.html#TOC56">15.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="IDX770"></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>README.woe32</tt>&rsquo;.
-</p>
-<hr size="6">
-<a name="Compiler-options"></a>
-<a name="SEC57"></a>
-<h2 class="section"> <a href="libunistring.html#TOC57">15.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.
-If you didn't pass any &lsquo;<samp>--prefix</samp>&rsquo; option, then the package is installed
-in &lsquo;<tt>/usr/local</tt>&rsquo;.
-</p>
-<p>Let's denote as <code>LIBUNISTRING_INCLUDEDIR</code> the directory where the
-include files were installed.  This is usually the same as
-<code>${LIBUNISTRING_PREFIX}/include</code>.  Except that if you passed an
-&lsquo;<samp>--includedir</samp>&rsquo; option to <code>configure</code>, it is the value of that
-option.
-</p>
-<p>Let's further denote as <code>LIBUNISTRING_LIBDIR</code> the directory where
-the library itself was installed.  This is the value that you passed
-with the &lsquo;<samp>--libdir</samp>&rsquo; option to <code>configure</code>, or otherwise the
-same as <code>${LIBUNISTRING_PREFIX}/lib</code>.  Recall that when building
-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="IDX771"></a>
-<p>So that the compiler finds the include files, you have to pass it the
-option <code>-I${LIBUNISTRING_INCLUDEDIR}</code>.
-</p>
-<p>So that the compiler finds the library during its linking pass, you have
-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="#SEC59">Autoconf macro</a>) deals with this
-particularity.
-</p>
-<hr size="6">
-<a name="Include-files"></a>
-<a name="SEC58"></a>
-<h2 class="section"> <a href="libunistring.html#TOC58">15.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.
-</p>
-<p>Another include file is <code>&lt;unistring/version.h&gt;</code>. It contains the
-version number of the libunistring library.
-</p>
-<dl>
-<dt><u>Macro:</u> int <b>_LIBUNISTRING_VERSION</b>
-<a name="IDX772"></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>.
-</p></dd></dl>
-
-<dl>
-<dt><u>Constant:</u> int <b>_libunistring_version</b>
-<a name="IDX773"></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>.
-</p></dd></dl>
-
-<p>It is possible that <code>_libunistring_version</code> is greater than
-<code>_LIBUNISTRING_VERSION</code>.  This can happen when you use
-<code>libunistring</code> as a shared library, and a newer, binary
-backward-compatible version has been installed after your program
-that uses <code>libunistring</code> was installed.
-</p>
-<hr size="6">
-<a name="Autoconf-macro"></a>
-<a name="SEC59"></a>
-<h2 class="section"> <a href="libunistring.html#TOC59">15.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="http://www.gnu.org/software/gnulib/MODULES.html#module=libunistring">http://www.gnu.org/software/gnulib/MODULES.html#module=libunistring</a>.
-</p>
-<a name="IDX774"></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
-the <code>CPPFLAGS</code> variable, and defines the C macro
-<code>HAVE_LIBUNISTRING</code> to 1.  Otherwise, it sets and AC_SUBSTs
-<code>HAVE_LIBUNISTRING=no</code> and <code>LIBUNISTRING</code> and <code>LTLIBUNISTRING</code>
-to empty.
-</p>
-<p>The complexities that <code>gl_LIBUNISTRING</code> deals with are the following:
-</p>
-<ul>
-<li>
-On some operating systems, in some configurations, libunistring depends
-on <code>libiconv</code>, and the options for linking with libiconv must be
-mentioned explicitly on the link command line.
-
-</li><li>
-GNU <code>libunistring</code>, if installed, is not necessarily already in the
-search path (<code>CPPFLAGS</code> for the include file search path,
-<code>LDFLAGS</code> for the library search path).
-
-</li><li>
-GNU <code>libunistring</code>, if installed, is not necessarily already in the
-run time library search path.  To avoid the need for setting an environment
-variable like <code>LD_LIBRARY_PATH</code>, the macro adds the appropriate
-run time search path options to the <code>LIBUNISTRING</code> variable.  This works
-on most systems.
-</li></ul>
-
-<hr size="6">
-<a name="Reporting-problems"></a>
+<a name="uniregex_002eh"></a>
 <a name="SEC60"></a>
-<h2 class="section"> <a href="libunistring.html#TOC60">15.5 Reporting problems</a> </h2>
+<h1 class="chapter"> <a href="libunistring.html#TOC60">15. Regular expressions <code>&lt;uniregex.h&gt;</code></a> </h1>
 
-<p>If you encounter any problem, please don't hesitate to send a detailed
-bug report to the <code>bug-libunistring@gnu.org</code> mailing list.  You can
-alternatively also use the bug tracker at the project page
-<a href="https://savannah.gnu.org/projects/libunistring">https://savannah.gnu.org/projects/libunistring</a>.
-</p>
-<p>Please always include the version number of this library, and a short
-description of your operating system and compilation environment with
-corresponding version numbers.
-</p>
-<p>For problems that appear while building and installing <code>libunistring</code>,
-for which you don't find the remedy in the &lsquo;<tt>INSTALL</tt>&rsquo; file, please include
-a description of the options that you passed to the &lsquo;<samp>configure</samp>&rsquo; script.
+<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="#SEC55" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_14.html#SEC54" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_16.html#SEC61" title="Next chapter"> &gt;&gt; </a>]</td>
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left"> &nbsp; </td>
@@ -218,12 +73,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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 5e9abeb..4ed3f23 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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: 16. More advanced functionality</title>
+<title>GNU libunistring: 16. Using the library</title>
 
-<meta name="description" content="GNU libunistring: 16. More advanced functionality">
-<meta name="keywords" content="GNU libunistring: 16. More advanced functionality">
+<meta name="description" content="GNU libunistring: 16. Using the library">
+<meta name="keywords" content="GNU libunistring: 16. Using the library">
 <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_15.html#SEC55" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_17.html#SEC62" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_15.html#SEC60" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_17.html#SEC67" 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,166 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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="Using-the-library"></a>
 <a name="SEC61"></a>
-<h1 class="chapter"> <a href="libunistring.html#TOC61">16. More advanced functionality</a> </h1>
+<h1 class="chapter"> <a href="libunistring.html#TOC61">16. Using the library</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>This chapter explains some practical considerations, regarding the
+installation and compiler options that are needed in order to use this
+library.
 </p>
-<a name="IDX775"></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="http://www.pango.org/">http://www.pango.org/</a>.
+
+<hr size="6">
+<a name="Installation"></a>
+<a name="SEC62"></a>
+<h2 class="section"> <a href="libunistring.html#TOC62">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="IDX891"></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>README.woe32</tt>&rsquo;.
+</p>
+<hr size="6">
+<a name="Compiler-options"></a>
+<a name="SEC63"></a>
+<h2 class="section"> <a href="libunistring.html#TOC63">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.
+If you didn't pass any &lsquo;<samp>--prefix</samp>&rsquo; option, then the package is installed
+in &lsquo;<tt>/usr/local</tt>&rsquo;.
+</p>
+<p>Let's denote as <code>LIBUNISTRING_INCLUDEDIR</code> the directory where the
+include files were installed.  This is usually the same as
+<code>${LIBUNISTRING_PREFIX}/include</code>.  Except that if you passed an
+&lsquo;<samp>--includedir</samp>&rsquo; option to <code>configure</code>, it is the value of that
+option.
+</p>
+<p>Let's further denote as <code>LIBUNISTRING_LIBDIR</code> the directory where
+the library itself was installed.  This is the value that you passed
+with the &lsquo;<samp>--libdir</samp>&rsquo; option to <code>configure</code>, or otherwise the
+same as <code>${LIBUNISTRING_PREFIX}/lib</code>.  Recall that when building
+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="IDX892"></a>
+<p>So that the compiler finds the include files, you have to pass it the
+option <code>-I${LIBUNISTRING_INCLUDEDIR}</code>.
+</p>
+<p>So that the compiler finds the library during its linking pass, you have
+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="#SEC65">Autoconf macro</a>) deals with this
+particularity.
+</p>
+<hr size="6">
+<a name="Include-files"></a>
+<a name="SEC64"></a>
+<h2 class="section"> <a href="libunistring.html#TOC64">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.
+</p>
+<p>Another include file is <code>&lt;unistring/version.h&gt;</code>. It contains the
+version number of the libunistring library.
+</p>
+<dl>
+<dt><u>Macro:</u> int <b>_LIBUNISTRING_VERSION</b>
+<a name="IDX893"></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>.
+</p></dd></dl>
+
+<dl>
+<dt><u>Constant:</u> int <b>_libunistring_version</b>
+<a name="IDX894"></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>.
+</p></dd></dl>
+
+<p>It is possible that <code>_libunistring_version</code> is greater than
+<code>_LIBUNISTRING_VERSION</code>.  This can happen when you use
+<code>libunistring</code> as a shared library, and a newer, binary
+backward-compatible version has been installed after your program
+that uses <code>libunistring</code> was installed.
+</p>
+<hr size="6">
+<a name="Autoconf-macro"></a>
+<a name="SEC65"></a>
+<h2 class="section"> <a href="libunistring.html#TOC65">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="http://www.gnu.org/software/gnulib/MODULES.html#module=libunistring">http://www.gnu.org/software/gnulib/MODULES.html#module=libunistring</a>.
+</p>
+<a name="IDX895"></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
+the <code>CPPFLAGS</code> variable, and defines the C macro
+<code>HAVE_LIBUNISTRING</code> to 1.  Otherwise, it sets and AC_SUBSTs
+<code>HAVE_LIBUNISTRING=no</code> and <code>LIBUNISTRING</code> and <code>LTLIBUNISTRING</code>
+to empty.
+</p>
+<p>The complexities that <code>gl_LIBUNISTRING</code> deals with are the following:
+</p>
+<ul>
+<li>
+On some operating systems, in some configurations, libunistring depends
+on <code>libiconv</code>, and the options for linking with libiconv must be
+mentioned explicitly on the link command line.
+
+</li><li>
+GNU <code>libunistring</code>, if installed, is not necessarily already in the
+search path (<code>CPPFLAGS</code> for the include file search path,
+<code>LDFLAGS</code> for the library search path).
+
+</li><li>
+GNU <code>libunistring</code>, if installed, is not necessarily already in the
+run time library search path.  To avoid the need for setting an environment
+variable like <code>LD_LIBRARY_PATH</code>, the macro adds the appropriate
+run time search path options to the <code>LIBUNISTRING</code> variable.  This works
+on most systems.
+</li></ul>
+
+<hr size="6">
+<a name="Reporting-problems"></a>
+<a name="SEC66"></a>
+<h2 class="section"> <a href="libunistring.html#TOC66">16.5 Reporting problems</a> </h2>
+
+<p>If you encounter any problem, please don't hesitate to send a detailed
+bug report to the <code>bug-libunistring@gnu.org</code> mailing list.  You can
+alternatively also use the bug tracker at the project page
+<a href="https://savannah.gnu.org/projects/libunistring">https://savannah.gnu.org/projects/libunistring</a>.
+</p>
+<p>Please always include the version number of this library, and a short
+description of your operating system and compilation environment with
+corresponding version numbers.
+</p>
+<p>For problems that appear while building and installing <code>libunistring</code>,
+for which you don't find the remedy in the &lsquo;<tt>INSTALL</tt>&rsquo; file, please include
+a description of the options that you passed to the &lsquo;<samp>configure</samp>&rsquo; script.
 </p>
 <hr size="6">
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_15.html#SEC55" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_17.html#SEC62" title="Next chapter"> &gt;&gt; </a>]</td>
+<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_17.html#SEC67" 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 +218,12 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 7eeed07..c32e33e 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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: A. Licenses</title>
+<title>GNU libunistring: 17. More advanced functionality</title>
 
-<meta name="description" content="GNU libunistring: A. Licenses">
-<meta name="keywords" content="GNU libunistring: A. Licenses">
+<meta name="description" content="GNU libunistring: 17. More advanced functionality">
+<meta name="keywords" content="GNU libunistring: 17. More advanced functionality">
 <meta name="resource-type" content="document">
 <meta name="distribution" content="global">
 <meta name="Generator" content="texi2html 1.78a">
@@ -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_16.html#SEC61" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_18.html#SEC68" 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,1460 +51,27 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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="SEC62"></a>
-<h1 class="appendix"> <a href="libunistring.html#TOC62">A. 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:
-</p>
-<ul>
-<li>
-The <code>libunistring</code> library is covered by the
-GNU Lesser General Public License (LGPL).
-A copy of the license is included in <a href="#SEC68">GNU LESSER GENERAL PUBLIC LICENSE</a>.
-
-</li><li>
-This manual is free documentation.  It is dually licensed under the
-GNU FDL and the GNU GPL.  This means that you can redistribute this
-manual under either of these two licenses, at your choice.
-<br>
-This manual is covered by the GNU FDL.  Permission is granted to copy,
-distribute and/or modify this document under the terms of the
-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="#SEC69">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="#SEC63">GNU GENERAL PUBLIC LICENSE</a>.
-</li></ul>
-
-
-
-<hr size="6">
-<a name="GNU-GPL"></a>
-<a name="SEC63"></a>
-<h2 class="appendixsec"> <a href="libunistring.html#TOC63">A.1 GNU GENERAL PUBLIC LICENSE</a> </h2>
-<p align="center"> Version 3, 29 June 2007
-</p>
-
-<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2007 Free Software Foundation, Inc. <a href="http://fsf.org/">http://fsf.org/</a>
-
-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="SEC64"></a>
-<h2 class="heading"> Preamble </h2>
-
-<p>The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-</p>
-<p>The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom
-to share and change all versions of a program&mdash;to make sure it remains
-free software for all its users.  We, the Free Software Foundation,
-use the GNU General Public License for most of our software; it
-applies also to any other work released this way by its authors.  You
-can apply it to your programs, too.
-</p>
-<p>When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-</p>
-<p>To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you
-have certain responsibilities if you distribute copies of the
-software, or if you modify it: responsibilities to respect the freedom
-of others.
-</p>
-<p>For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too,
-receive or can get the source code.  And you must show them these
-terms so they know their rights.
-</p>
-<p>Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-</p>
-<p>For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-</p>
-<p>Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the
-manufacturer can do so.  This is fundamentally incompatible with the
-aim of protecting users' freedom to change the software.  The
-systematic pattern of such abuse occurs in the area of products for
-individuals to use, which is precisely where it is most unacceptable.
-Therefore, we have designed this version of the GPL to prohibit the
-practice for those products.  If such problems arise substantially in
-other domains, we stand ready to extend this provision to those
-domains in future versions of the GPL, as needed to protect the
-freedom of users.
-</p>
-<p>Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish
-to avoid the special danger that patents applied to a free program
-could make it effectively proprietary.  To prevent this, the GPL
-assures that patents cannot be used to render the program non-free.
-</p>
-<p>The precise terms and conditions for copying, distribution and
-modification follow.
-</p>
-<a name="SEC65"></a>
-<h2 class="heading"> TERMS AND CONDITIONS </h2>
-
-<ol>
-<li> Definitions.
-
-<p>&ldquo;This License&rdquo; refers to version 3 of the GNU General Public License.
-</p>
-<p>&ldquo;Copyright&rdquo; also means copyright-like laws that apply to other kinds
-of works, such as semiconductor masks.
-</p>
-<p>&ldquo;The Program&rdquo; refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as &ldquo;you&rdquo;.  &ldquo;Licensees&rdquo; and
-&ldquo;recipients&rdquo; may be individuals or organizations.
-</p>
-<p>To &ldquo;modify&rdquo; a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of
-an exact copy.  The resulting work is called a &ldquo;modified version&rdquo; of
-the earlier work or a work &ldquo;based on&rdquo; the earlier work.
-</p>
-<p>A &ldquo;covered work&rdquo; means either the unmodified Program or a work based
-on the Program.
-</p>
-<p>To &ldquo;propagate&rdquo; a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-</p>
-<p>To &ldquo;convey&rdquo; a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user
-through a computer network, with no transfer of a copy, is not
-conveying.
-</p>
-<p>An interactive user interface displays &ldquo;Appropriate Legal Notices&rdquo; to
-the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-</p>
-</li><li> Source Code.
-
-<p>The &ldquo;source code&rdquo; for a work means the preferred form of the work for
-making modifications to it.  &ldquo;Object code&rdquo; means any non-source form
-of a work.
-</p>
-<p>A &ldquo;Standard Interface&rdquo; means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-</p>
-<p>The &ldquo;System Libraries&rdquo; of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-&ldquo;Major Component&rdquo;, in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-</p>
-<p>The &ldquo;Corresponding Source&rdquo; for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-</p>
-<p>The Corresponding Source need not include anything that users can
-regenerate automatically from other parts of the Corresponding Source.
-</p>
-<p>The Corresponding Source for a work in source code form is that same
-work.
-</p>
-</li><li> Basic Permissions.
-
-<p>All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-</p>
-<p>You may make, run and propagate covered works that you do not convey,
-without conditions so long as your license otherwise remains in force.
-You may convey covered works to others for the sole purpose of having
-them make modifications exclusively for you, or provide you with
-facilities for running those works, provided that you comply with the
-terms of this License in conveying all material for which you do not
-control copyright.  Those thus making or running the covered works for
-you must do so exclusively on your behalf, under your direction and
-control, on terms that prohibit them from making any copies of your
-copyrighted material outside their relationship with you.
-</p>
-<p>Conveying under any other circumstances is permitted solely under the
-conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-</p>
-</li><li> Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-<p>No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-</p>
-<p>When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such
-circumvention is effected by exercising rights under this License with
-respect to the covered work, and you disclaim any intention to limit
-operation or modification of the work as a means of enforcing, against
-the work's users, your or third parties' legal rights to forbid
-circumvention of technological measures.
-</p>
-</li><li> Conveying Verbatim Copies.
-
-<p>You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-</p>
-<p>You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-</p>
-</li><li> Conveying Modified Source Versions.
-
-<p>You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these
-conditions:
-</p>
-<ol>
-<li>
-The work must carry prominent notices stating that you modified it,
-and giving a relevant date.
-
-</li><li>
-The work must carry prominent notices stating that it is released
-under this License and any conditions added under section 7.  This
-requirement modifies the requirement in section 4 to &ldquo;keep intact all
-notices&rdquo;.
-
-</li><li>
-You must license the entire work, as a whole, under this License to
-anyone who comes into possession of a copy.  This License will
-therefore apply, along with any applicable section 7 additional terms,
-to the whole of the work, and all its parts, regardless of how they
-are packaged.  This License gives no permission to license the work in
-any other way, but it does not invalidate such permission if you have
-separately received it.
-
-</li><li>
-If the work has interactive user interfaces, each must display
-Appropriate Legal Notices; however, if the Program has interactive
-interfaces that do not display Appropriate Legal Notices, your work
-need not make them do so.
-</li></ol>
-
-<p>A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-&ldquo;aggregate&rdquo; if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-</p>
-</li><li>  Conveying Non-Source Forms.
-
-<p>You may convey a covered work in object code form under the terms of
-sections 4 and 5, provided that you also convey the machine-readable
-Corresponding Source under the terms of this License, in one of these
-ways:
-</p>
-<ol>
-<li>
-Convey the object code in, or embodied in, a physical product
-(including a physical distribution medium), accompanied by the
-Corresponding Source fixed on a durable physical medium customarily
-used for software interchange.
-
-</li><li>
-Convey the object code in, or embodied in, a physical product
-(including a physical distribution medium), accompanied by a written
-offer, valid for at least three years and valid for as long as you
-offer spare parts or customer support for that product model, to give
-anyone who possesses the object code either (1) a copy of the
-Corresponding Source for all the software in the product that is
-covered by this License, on a durable physical medium customarily used
-for software interchange, for a price no more than your reasonable
-cost of physically performing this conveying of source, or (2) access
-to copy the Corresponding Source from a network server at no charge.
-
-</li><li>
-Convey individual copies of the object code with a copy of the written
-offer to provide the Corresponding Source.  This alternative is
-allowed only occasionally and noncommercially, and only if you
-received the object code with such an offer, in accord with subsection
-6b.
-
-</li><li>
-Convey the object code by offering access from a designated place
-(gratis or for a charge), and offer equivalent access to the
-Corresponding Source in the same way through the same place at no
-further charge.  You need not require recipients to copy the
-Corresponding Source along with the object code.  If the place to copy
-the object code is a network server, the Corresponding Source may be
-on a different server (operated by you or a third party) that supports
-equivalent copying facilities, provided you maintain clear directions
-next to the object code saying where to find the Corresponding Source.
-Regardless of what server hosts the Corresponding Source, you remain
-obligated to ensure that it is available for as long as needed to
-satisfy these requirements.
-
-</li><li>
-Convey the object code using peer-to-peer transmission, provided you
-inform other peers where the object code and Corresponding Source of
-the work are being offered to the general public at no charge under
-subsection 6d.
-
-</li></ol>
-
-<p>A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-</p>
-<p>A &ldquo;User Product&rdquo; is either (1) a &ldquo;consumer product&rdquo;, which means any
-tangible personal property which is normally used for personal,
-family, or household purposes, or (2) anything designed or sold for
-incorporation into a dwelling.  In determining whether a product is a
-consumer product, doubtful cases shall be resolved in favor of
-coverage.  For a particular product received by a particular user,
-&ldquo;normally used&rdquo; refers to a typical or common use of that class of
-product, regardless of the status of the particular user or of the way
-in which the particular user actually uses, or expects or is expected
-to use, the product.  A product is a consumer product regardless of
-whether the product has substantial commercial, industrial or
-non-consumer uses, unless such uses represent the only significant
-mode of use of the product.
-</p>
-<p>&ldquo;Installation Information&rdquo; for a User Product means any methods,
-procedures, authorization keys, or other information required to
-install and execute modified versions of a covered work in that User
-Product from a modified version of its Corresponding Source.  The
-information must suffice to ensure that the continued functioning of
-the modified object code is in no case prevented or interfered with
-solely because modification has been made.
-</p>
-<p>If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-</p>
-<p>The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or
-updates for a work that has been modified or installed by the
-recipient, or for the User Product in which it has been modified or
-installed.  Access to a network may be denied when the modification
-itself materially and adversely affects the operation of the network
-or violates the rules and protocols for communication across the
-network.
-</p>
-<p>Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-</p>
-</li><li> Additional Terms.
-
-<p>&ldquo;Additional permissions&rdquo; are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-</p>
-<p>When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-</p>
-<p>Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders
-of that material) supplement the terms of this License with terms:
-</p>
-<ol>
-<li>
-Disclaiming warranty or limiting liability differently from the terms
-of sections 15 and 16 of this License; or
-
-</li><li>
-Requiring preservation of specified reasonable legal notices or author
-attributions in that material or in the Appropriate Legal Notices
-displayed by works containing it; or
-
-</li><li>
-Prohibiting misrepresentation of the origin of that material, or
-requiring that modified versions of such material be marked in
-reasonable ways as different from the original version; or
-
-</li><li>
-Limiting the use for publicity purposes of names of licensors or
-authors of the material; or
-
-</li><li>
-Declining to grant rights under trademark law for use of some trade
-names, trademarks, or service marks; or
-
-</li><li>
-Requiring indemnification of licensors and authors of that material by
-anyone who conveys the material (or modified versions of it) with
-contractual assumptions of liability to the recipient, for any
-liability that these contractual assumptions directly impose on those
-licensors and authors.
-</li></ol>
-
-<p>All other non-permissive additional terms are considered &ldquo;further
-restrictions&rdquo; within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-</p>
-<p>If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-</p>
-<p>Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions; the
-above requirements apply either way.
-</p>
-</li><li> Termination.
-
-<p>You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-</p>
-<p>However, if you cease all violation of this License, then your license
-from a particular copyright holder is reinstated (a) provisionally,
-unless and until the copyright holder explicitly and finally
-terminates your license, and (b) permanently, if the copyright holder
-fails to notify you of the violation by some reasonable means prior to
-60 days after the cessation.
-</p>
-<p>Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-</p>
-<p>Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-</p>
-</li><li> Acceptance Not Required for Having Copies.
-
-<p>You are not required to accept this License in order to receive or run
-a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-</p>
-</li><li> Automatic Licensing of Downstream Recipients.
-
-<p>Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-</p>
-<p>An &ldquo;entity transaction&rdquo; is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-</p>
-<p>You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-</p>
-</li><li> Patents.
-
-<p>A &ldquo;contributor&rdquo; is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's &ldquo;contributor version&rdquo;.
-</p>
-<p>A contributor's &ldquo;essential patent claims&rdquo; are all patent claims owned
-or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, &ldquo;control&rdquo; includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-</p>
-<p>Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-</p>
-<p>In the following three paragraphs, a &ldquo;patent license&rdquo; is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To &ldquo;grant&rdquo; such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-</p>
-<p>If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  &ldquo;Knowingly relying&rdquo; means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-</p>
-<p>If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-</p>
-<p>A patent license is &ldquo;discriminatory&rdquo; if it does not include within the
-scope of its coverage, prohibits the exercise of, or is conditioned on
-the non-exercise of one or more of the rights that are specifically
-granted under this License.  You may not convey a covered work if you
-are a party to an arrangement with a third party that is in the
-business of distributing software, under which you make payment to the
-third party based on the extent of your activity of conveying the
-work, and under which the third party grants, to any of the parties
-who would receive the covered work from you, a discriminatory patent
-license (a) in connection with copies of the covered work conveyed by
-you (or copies made from those copies), or (b) primarily for and in
-connection with specific products or compilations that contain the
-covered work, unless you entered into that arrangement, or that patent
-license was granted, prior to 28 March 2007.
-</p>
-<p>Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-</p>
-</li><li> No Surrender of Others' Freedom.
-
-<p>If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot convey
-a covered work so as to satisfy simultaneously your obligations under
-this License and any other pertinent obligations, then as a
-consequence you may not convey it at all.  For example, if you agree
-to terms that obligate you to collect a royalty for further conveying
-from those to whom you convey the Program, the only way you could
-satisfy both those terms and this License would be to refrain entirely
-from conveying the Program.
-</p>
-</li><li> Use with the GNU Affero General Public License.
-
-<p>Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-</p>
-</li><li> Revised Versions of this License.
-
-<p>The Free Software Foundation may publish revised and/or new versions
-of the GNU General Public License from time to time.  Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-</p>
-<p>Each version is given a distinguishing version number.  If the Program
-specifies that a certain numbered version of the GNU General Public
-License &ldquo;or any later version&rdquo; applies to it, you have the option of
-following the terms and conditions either of that numbered version or
-of any later version published by the Free Software Foundation.  If
-the Program does not specify a version number of the GNU General
-Public License, you may choose any version ever published by the Free
-Software Foundation.
-</p>
-<p>If the Program specifies that a proxy can decide which future versions
-of the GNU General Public License can be used, that proxy's public
-statement of acceptance of a version permanently authorizes you to
-choose that version for the Program.
-</p>
-<p>Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-</p>
-</li><li> Disclaimer of Warranty.
-
-<p>THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM &ldquo;AS IS&rdquo; WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE
-DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
-CORRECTION.
-</p>
-</li><li> Limitation of Liability.
-
-<p>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR
-CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT
-NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
-LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
-TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
-PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-</p>
-</li><li> Interpretation of Sections 15 and 16.
-
-<p>If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-</p>
-</li></ol>
-
-<a name="SEC66"></a>
-<h2 class="heading"> END OF TERMS AND CONDITIONS </h2>
-
+<a name="More-functionality"></a>
 <a name="SEC67"></a>
-<h2 class="heading"> How to Apply These Terms to Your New Programs </h2>
+<h1 class="chapter"> <a href="libunistring.html#TOC67">17. More advanced functionality</a> </h1>
 
-<p>If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
+<p>For bidirectional reordering of strings, we recommend the GNU FriBidi library:
+<a href="http://www.fribidi.org/">http://www.fribidi.org/</a>.
 </p>
-<p>To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the &ldquo;copyright&rdquo; line and a pointer to where the full notice is found.
+<a name="IDX896"></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="http://www.pango.org/">http://www.pango.org/</a>.
 </p>
-<table><tr><td>&nbsp;</td><td><pre class="smallexample"><var>one line to give the program's name and a brief idea of what it does.</var>
-Copyright (C) <var>year</var> <var>name of author</var>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.
-</pre></td></tr></table>
-
-<p>Also add information on how to contact you by electronic and paper mail.
-</p>
-<p>If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-</p>
-<table><tr><td>&nbsp;</td><td><pre class="smallexample"><var>program</var> Copyright (C) <var>year</var> <var>name of author</var>
-This program comes with ABSOLUTELY NO WARRANTY; for details type &lsquo;<samp>show w</samp>&rsquo;.
-This is free software, and you are welcome to redistribute it
-under certain conditions; type &lsquo;<samp>show c</samp>&rsquo; for details.
-</pre></td></tr></table>
-
-<p>The hypothetical commands &lsquo;<samp>show w</samp>&rsquo; and &lsquo;<samp>show c</samp>&rsquo; should show
-the appropriate parts of the General Public License.  Of course, your
-program's commands might be different; for a GUI interface, you would
-use an &ldquo;about box&rdquo;.
-</p>
-<p>You should also get your employer (if you work as a programmer) or school,
-if any, to sign a &ldquo;copyright disclaimer&rdquo; for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.
-</p>
-<p>The GNU General Public License does not permit incorporating your
-program into proprietary programs.  If your program is a subroutine
-library, you may consider it more useful to permit linking proprietary
-applications with the library.  If this is what you want to do, use
-the GNU Lesser General Public License instead of this License.  But
-first, please read <a href="http://www.gnu.org/philosophy/why-not-lgpl.html">http://www.gnu.org/philosophy/why-not-lgpl.html</a>.
-
-</p><hr size="6">
-<a name="GNU-LGPL"></a>
-<a name="SEC68"></a>
-<h2 class="appendixsec"> <a href="libunistring.html#TOC64">A.2 GNU LESSER GENERAL PUBLIC LICENSE</a> </h2>
-<p align="center"> Version 3, 29 June 2007
-</p>
-
-<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2007 Free Software Foundation, Inc. <a href="http://fsf.org/">http://fsf.org/</a>
-
-Everyone is permitted to copy and distribute verbatim copies of this
-license document, but changing it is not allowed.
-</pre></td></tr></table>
-
-<p>This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-</p>
-<ol>
-<li> Additional Definitions.
-
-<p>As used herein, &ldquo;this License&rdquo; refers to version 3 of the GNU Lesser
-General Public License, and the &ldquo;GNU GPL&rdquo; refers to version 3 of the GNU
-General Public License.
-</p>
-<p>&ldquo;The Library&rdquo; refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-</p>
-<p>An &ldquo;Application&rdquo; is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-</p>
-<p>A &ldquo;Combined Work&rdquo; is a work produced by combining or linking an
-Application with the Library.  The particular version of the Library
-with which the Combined Work was made is also called the &ldquo;Linked
-Version&rdquo;.
-</p>
-<p>The &ldquo;Minimal Corresponding Source&rdquo; for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-</p>
-<p>The &ldquo;Corresponding Application Code&rdquo; for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-</p>
-</li><li> Exception to Section 3 of the GNU GPL.
-
-<p>You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-</p>
-</li><li> Conveying Modified Versions.
-
-<p>If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-</p>
-<ol>
-<li>
-under this License, provided that you make a good faith effort to
-ensure that, in the event an Application does not supply the
-function or data, the facility still operates, and performs
-whatever part of its purpose remains meaningful, or
-
-</li><li>
-under the GNU GPL, with none of the additional permissions of
-this License applicable to that copy.
-</li></ol>
-
-</li><li> Object Code Incorporating Material from Library Header Files.
-
-<p>The object code form of an Application may incorporate material from
-a header file that is part of the Library.  You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-</p>
-<ol>
-<li>
-Give prominent notice with each copy of the object code that the
-Library is used in it and that the Library and its use are
-covered by this License.
-</li><li>
-Accompany the object code with a copy of the GNU GPL and this license
-document.
-</li></ol>
-
-</li><li> Combined Works.
-
-<p>You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-</p>
-<ol>
-<li>
-Give prominent notice with each copy of the Combined Work that
-the Library is used in it and that the Library and its use are
-covered by this License.
-</li><li>
-Accompany the Combined Work with a copy of the GNU GPL and this license
-document.
-</li><li>
-For a Combined Work that displays copyright notices during
-execution, include the copyright notice for the Library among
-these notices, as well as a reference directing the user to the
-copies of the GNU GPL and this license document.
-</li><li>
-Do one of the following:
-
-<ol>
-<li>
-Convey the Minimal Corresponding Source under the terms of this
-License, and the Corresponding Application Code in a form
-suitable for, and under terms that permit, the user to
-recombine or relink the Application with a modified version of
-the Linked Version to produce a modified Combined Work, in the
-manner specified by section 6 of the GNU GPL for conveying
-Corresponding Source.
-</li><li>
-Use a suitable shared library mechanism for linking with the
-Library.  A suitable mechanism is one that (a) uses at run time
-a copy of the Library already present on the user's computer
-system, and (b) will operate properly with a modified version
-of the Library that is interface-compatible with the Linked
-Version.
-</li></ol>
-
-</li><li>
-Provide Installation Information, but only if you would otherwise
-be required to provide such information under section 6 of the
-GNU GPL, and only to the extent that such information is
-necessary to install and execute a modified version of the
-Combined Work produced by recombining or relinking the
-Application with a modified version of the Linked Version. (If
-you use option 4d0, the Installation Information must accompany
-the Minimal Corresponding Source and Corresponding Application
-Code. If you use option 4d1, you must provide the Installation
-Information in the manner specified by section 6 of the GNU GPL
-for conveying Corresponding Source.)
-</li></ol>
-
-</li><li> Combined Libraries.
-
-<p>You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-</p>
-<ol>
-<li>
-Accompany the combined library with a copy of the same work based
-on the Library, uncombined with any other library facilities,
-conveyed under the terms of this License.
-</li><li>
-Give prominent notice with the combined library that part of it
-is a work based on the Library, and explaining where to find the
-accompanying uncombined form of the same work.
-</li></ol>
-
-</li><li> Revised Versions of the GNU Lesser General Public License.
-
-<p>The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-</p>
-<p>Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License &ldquo;or any later version&rdquo;
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-</p>
-<p>If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
-</p>
-</li></ol>
-
-<hr size="6">
-<a name="GNU-FDL"></a>
-<a name="SEC69"></a>
-<h2 class="appendixsec"> <a href="libunistring.html#TOC65">A.3 GNU Free Documentation License</a> </h2>
-<p align="center"> Version 1.3, 3 November 2008
-</p>
-
-<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-<a href="http://fsf.org/">http://fsf.org/</a>
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-</pre></td></tr></table>
-
-<ol>
-<li>
-PREAMBLE
-
-<p>The purpose of this License is to make a manual, textbook, or other
-functional and useful document <em>free</em> in the sense of freedom: to
-assure everyone the effective freedom to copy and redistribute it,
-with or without modifying it, either commercially or noncommercially.
-Secondarily, this License preserves for the author and publisher a way
-to get credit for their work, while not being considered responsible
-for modifications made by others.
-</p>
-<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
-works of the document must themselves be free in the same sense.  It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-</p>
-<p>We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does.  But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book.  We recommend this License
-principally for works whose purpose is instruction or reference.
-</p>
-</li><li>
-APPLICABILITY AND DEFINITIONS
-
-<p>This License applies to any manual or other work, in any medium, that
-contains a notice placed by the copyright holder saying it can be
-distributed under the terms of this License.  Such a notice grants a
-world-wide, royalty-free license, unlimited in duration, to use that
-work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
-refers to any such manual or work.  Any member of the public is a
-licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
-copy, modify or distribute the work in a way requiring permission
-under copyright law.
-</p>
-<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-</p>
-<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
-of the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall
-subject (or to related matters) and contains nothing that could fall
-directly within that overall subject.  (Thus, if the Document is in
-part a textbook of mathematics, a Secondary Section may not explain
-any mathematics.)  The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-</p>
-<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License.  If a
-section does not fit the above definition of Secondary then it is not
-allowed to be designated as Invariant.  The Document may contain zero
-Invariant Sections.  If the Document does not identify any Invariant
-Sections then there are none.
-</p>
-<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License.  A Front-Cover Text may
-be at most 5 words, and a Back-Cover Text may be at most 25 words.
-</p>
-<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, that is suitable for revising the document
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters.  A copy made in an otherwise Transparent file
-format whose markup, or absence of markup, has been arranged to thwart
-or discourage subsequent modification by readers is not Transparent.
-An image format is not Transparent if used for any substantial amount
-of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
-</p>
-<p>Examples of suitable formats for Transparent copies include plain
-<small>ASCII</small> without markup, Texinfo input format, LaTeX input
-format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
-<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
-PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
-of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
-<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
-read and edited only by proprietary word processors, <acronym>SGML</acronym> or
-<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
-not generally available, and the machine-generated <acronym>HTML</acronym>,
-PostScript or <acronym>PDF</acronym> produced by some word processors for
-output purposes only.
-</p>
-<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page.  For works in
-formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-</p>
-<p>The &ldquo;publisher&rdquo; means any person or entity that distributes copies
-of the Document to the public.
-</p>
-<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
-title either is precisely XYZ or contains XYZ in parentheses following
-text that translates XYZ in another language.  (Here XYZ stands for a
-specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
-&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
-of such a section when you modify the Document means that it remains a
-section &ldquo;Entitled XYZ&rdquo; according to this definition.
-</p>
-<p>The Document may include Warranty Disclaimers next to the notice which
-states that this License applies to the Document.  These Warranty
-Disclaimers are considered to be included by reference in this
-License, but only as regards disclaiming warranties: any other
-implication that these Warranty Disclaimers may have is void and has
-no effect on the meaning of this License.
-</p>
-</li><li>
-VERBATIM COPYING
-
-<p>You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License.  You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute.  However, you may accept
-compensation in exchange for copies.  If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-</p>
-<p>You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-</p>
-</li><li>
-COPYING IN QUANTITY
-
-<p>If you publish printed copies (or copies in media that commonly have
-printed covers) of the Document, numbering more than 100, and the
-Document's license notice requires Cover Texts, you must enclose the
-copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover.  Both covers must also clearly and legibly identify
-you as the publisher of these copies.  The front cover must present
-the full title with all words of the title equally prominent and
-visible.  You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-</p>
-<p>If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-</p>
-<p>If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a computer-network location from which the general network-using
-public has access to download using public-standard network protocols
-a complete Transparent copy of the Document, free of added material.
-If you use the latter option, you must take reasonably prudent steps,
-when you begin distribution of Opaque copies in quantity, to ensure
-that this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-</p>
-<p>It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-</p>
-</li><li>
-MODIFICATIONS
-
-<p>You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it.  In addition, you must do these things in the Modified Version:
-</p>
-<ol>
-<li>
-Use in the Title Page (and on the covers, if any) a title distinct
-from that of the Document, and from those of previous versions
-(which should, if there were any, be listed in the History section
-of the Document).  You may use the same title as a previous version
-if the original publisher of that version gives permission.
-
-</li><li>
-List on the Title Page, as authors, one or more persons or entities
-responsible for authorship of the modifications in the Modified
-Version, together with at least five of the principal authors of the
-Document (all of its principal authors, if it has fewer than five),
-unless they release you from this requirement.
-
-</li><li>
-State on the Title page the name of the publisher of the
-Modified Version, as the publisher.
-
-</li><li>
-Preserve all the copyright notices of the Document.
-
-</li><li>
-Add an appropriate copyright notice for your modifications
-adjacent to the other copyright notices.
-
-</li><li>
-Include, immediately after the copyright notices, a license notice
-giving the public permission to use the Modified Version under the
-terms of this License, in the form shown in the Addendum below.
-
-</li><li>
-Preserve in that license notice the full lists of Invariant Sections
-and required Cover Texts given in the Document's license notice.
-
-</li><li>
-Include an unaltered copy of this License.
-
-</li><li>
-Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
-to it an item stating at least the title, year, new authors, and
-publisher of the Modified Version as given on the Title Page.  If
-there is no section Entitled &ldquo;History&rdquo; in the Document, create one
-stating the title, year, authors, and publisher of the Document as
-given on its Title Page, then add an item describing the Modified
-Version as stated in the previous sentence.
-
-</li><li>
-Preserve the network location, if any, given in the Document for
-public access to a Transparent copy of the Document, and likewise
-the network locations given in the Document for previous versions
-it was based on.  These may be placed in the &ldquo;History&rdquo; section.
-You may omit a network location for a work that was published at
-least four years before the Document itself, or if the original
-publisher of the version it refers to gives permission.
-
-</li><li>
-For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
-the Title of the section, and preserve in the section all the
-substance and tone of each of the contributor acknowledgements and/or
-dedications given therein.
-
-</li><li>
-Preserve all the Invariant Sections of the Document,
-unaltered in their text and in their titles.  Section numbers
-or the equivalent are not considered part of the section titles.
-
-</li><li>
-Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
-may not be included in the Modified Version.
-
-</li><li>
-Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
-to conflict in title with any Invariant Section.
-
-</li><li>
-Preserve any Warranty Disclaimers.
-</li></ol>
-
-<p>If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant.  To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-</p>
-<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
-nothing but endorsements of your Modified Version by various
-parties&mdash;for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-</p>
-<p>You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version.  Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity.  If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-</p>
-<p>The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-</p>
-</li><li>
-COMBINING DOCUMENTS
-
-<p>You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice, and that you preserve all their Warranty Disclaimers.
-</p>
-<p>The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy.  If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-</p>
-<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
-in the various original documents, forming one section Entitled
-&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
-and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
-sections Entitled &ldquo;Endorsements.&rdquo;
-</p>
-</li><li>
-COLLECTIONS OF DOCUMENTS
-
-<p>You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-</p>
-<p>You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-</p>
-</li><li>
-AGGREGATION WITH INDEPENDENT WORKS
-
-<p>A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
-resulting from the compilation is not used to limit the legal rights
-of the compilation's users beyond what the individual works permit.
-When the Document is included in an aggregate, this License does not
-apply to the other works in the aggregate which are not themselves
-derivative works of the Document.
-</p>
-<p>If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one half of
-the entire aggregate, the Document's Cover Texts may be placed on
-covers that bracket the Document within the aggregate, or the
-electronic equivalent of covers if the Document is in electronic form.
-Otherwise they must appear on printed covers that bracket the whole
-aggregate.
-</p>
-</li><li>
-TRANSLATION
-
-<p>Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections.  You may include a
-translation of this License, and all the license notices in the
-Document, and any Warranty Disclaimers, provided that you also include
-the original English version of this License and the original versions
-of those notices and disclaimers.  In case of a disagreement between
-the translation and the original version of this License or a notice
-or disclaimer, the original version will prevail.
-</p>
-<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
-&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
-its Title (section 1) will typically require changing the actual
-title.
-</p>
-</li><li>
-TERMINATION
-
-<p>You may not copy, modify, sublicense, or distribute the Document
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense, or distribute it is void, and
-will automatically terminate your rights under this License.
-</p>
-<p>However, if you cease all violation of this License, then your license
-from a particular copyright holder is reinstated (a) provisionally,
-unless and until the copyright holder explicitly and finally
-terminates your license, and (b) permanently, if the copyright holder
-fails to notify you of the violation by some reasonable means prior to
-60 days after the cessation.
-</p>
-<p>Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-</p>
-<p>Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, receipt of a copy of some or all of the same material does
-not give you any rights to use it.
-</p>
-</li><li>
-FUTURE REVISIONS OF THIS LICENSE
-
-<p>The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time.  Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.  See
-<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
-</p>
-<p>Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License &ldquo;or any later version&rdquo; applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation.  If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.  If the Document
-specifies that a proxy can decide which future versions of this
-License can be used, that proxy's public statement of acceptance of a
-version permanently authorizes you to choose that version for the
-Document.
-</p>
-</li><li>
-RELICENSING
-
-<p>&ldquo;Massive Multiauthor Collaboration Site&rdquo; (or &ldquo;MMC Site&rdquo;) means any
-World Wide Web server that publishes copyrightable works and also
-provides prominent facilities for anybody to edit those works.  A
-public wiki that anybody can edit is an example of such a server.  A
-&ldquo;Massive Multiauthor Collaboration&rdquo; (or &ldquo;MMC&rdquo;) contained in the
-site means any set of copyrightable works thus published on the MMC
-site.
-</p>
-<p>&ldquo;CC-BY-SA&rdquo; means the Creative Commons Attribution-Share Alike 3.0
-license published by Creative Commons Corporation, a not-for-profit
-corporation with a principal place of business in San Francisco,
-California, as well as future copyleft versions of that license
-published by that same organization.
-</p>
-<p>&ldquo;Incorporate&rdquo; means to publish or republish a Document, in whole or
-in part, as part of another Document.
-</p>
-<p>An MMC is &ldquo;eligible for relicensing&rdquo; if it is licensed under this
-License, and if all works that were first published under this License
-somewhere other than this MMC, and subsequently incorporated in whole
-or in part into the MMC, (1) had no cover texts or invariant sections,
-and (2) were thus incorporated prior to November 1, 2008.
-</p>
-<p>The operator of an MMC Site may republish an MMC contained in the site
-under CC-BY-SA on the same site at any time before August 1, 2009,
-provided the MMC is eligible for relicensing.
-</p>
-</li></ol>
-
-
-<a name="SEC70"></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
-the License in the document and put the following copyright and
-license notices just after the title page:
-</p>
-<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
-  Permission is granted to copy, distribute and/or modify this document
-  under the terms of the GNU Free Documentation License, Version 1.3
-  or any later version published by the Free Software Foundation;
-  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-  Texts.  A copy of the license is included in the section entitled ``GNU
-  Free Documentation License''.
-</pre></td></tr></table>
-
-<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
-</p>
-<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
-    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
-    being <var>list</var>.
-</pre></td></tr></table>
-
-<p>If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-</p>
-<p>If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
-</p>
-
-
 <hr size="6">
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="#SEC62" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_16.html#SEC61" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_18.html#SEC68" 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>
@@ -1512,12 +79,12 @@ to permit their use in free software.
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 61efd62..2294db7 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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</title>
+<title>GNU libunistring: A. Licenses</title>
 
-<meta name="description" content="GNU libunistring: Index">
-<meta name="keywords" content="GNU libunistring: Index">
+<meta name="description" content="GNU libunistring: A. Licenses">
+<meta name="keywords" content="GNU libunistring: A. Licenses">
 <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_17.html#SEC62" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_19.html#INDEX0" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="libunistring_17.html#SEC67" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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,704 +51,1460 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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="Licenses"></a>
+<a name="SEC68"></a>
+<h1 class="appendix"> <a href="libunistring.html#TOC68">A. 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:
+</p>
+<ul>
+<li>
+The <code>libunistring</code> library is covered by the
+GNU Lesser General Public License (LGPL).
+A copy of the license is included in <a href="#SEC74">GNU LESSER GENERAL PUBLIC LICENSE</a>.
+
+</li><li>
+This manual is free documentation.  It is dually licensed under the
+GNU FDL and the GNU GPL.  This means that you can redistribute this
+manual under either of these two licenses, at your choice.
+<br>
+This manual is covered by the GNU FDL.  Permission is granted to copy,
+distribute and/or modify this document under the terms of the
+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="#SEC75">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="#SEC69">GNU GENERAL PUBLIC LICENSE</a>.
+</li></ul>
+
+
+
+<hr size="6">
+<a name="GNU-GPL"></a>
+<a name="SEC69"></a>
+<h2 class="appendixsec"> <a href="libunistring.html#TOC69">A.1 GNU GENERAL PUBLIC LICENSE</a> </h2>
+<p align="center"> Version 3, 29 June 2007
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2007 Free Software Foundation, Inc. <a href="http://fsf.org/">http://fsf.org/</a>
+
+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="SEC70"></a>
+<h2 class="heading"> Preamble </h2>
+
+<p>The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+</p>
+<p>The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom
+to share and change all versions of a program&mdash;to make sure it remains
+free software for all its users.  We, the Free Software Foundation,
+use the GNU General Public License for most of our software; it
+applies also to any other work released this way by its authors.  You
+can apply it to your programs, too.
+</p>
+<p>When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+</p>
+<p>To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you
+have certain responsibilities if you distribute copies of the
+software, or if you modify it: responsibilities to respect the freedom
+of others.
+</p>
+<p>For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too,
+receive or can get the source code.  And you must show them these
+terms so they know their rights.
+</p>
+<p>Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+</p>
+<p>For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+</p>
+<p>Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the
+manufacturer can do so.  This is fundamentally incompatible with the
+aim of protecting users' freedom to change the software.  The
+systematic pattern of such abuse occurs in the area of products for
+individuals to use, which is precisely where it is most unacceptable.
+Therefore, we have designed this version of the GPL to prohibit the
+practice for those products.  If such problems arise substantially in
+other domains, we stand ready to extend this provision to those
+domains in future versions of the GPL, as needed to protect the
+freedom of users.
+</p>
+<p>Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish
+to avoid the special danger that patents applied to a free program
+could make it effectively proprietary.  To prevent this, the GPL
+assures that patents cannot be used to render the program non-free.
+</p>
+<p>The precise terms and conditions for copying, distribution and
+modification follow.
+</p>
 <a name="SEC71"></a>
-<h1 class="unnumbered"> <a href="libunistring.html#TOC66">Index</a> </h1>
-
-<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC71_0" class="summary-letter"><b>A</b></a>
- &nbsp; 
-<a href="#SEC71_1" class="summary-letter"><b>B</b></a>
- &nbsp; 
-<a href="#SEC71_2" class="summary-letter"><b>C</b></a>
- &nbsp; 
-<a href="#SEC71_3" class="summary-letter"><b>D</b></a>
- &nbsp; 
-<a href="#SEC71_4" class="summary-letter"><b>E</b></a>
- &nbsp; 
-<a href="#SEC71_5" class="summary-letter"><b>F</b></a>
- &nbsp; 
-<a href="#SEC71_6" class="summary-letter"><b>G</b></a>
- &nbsp; 
-<a href="#SEC71_7" class="summary-letter"><b>H</b></a>
- &nbsp; 
-<a href="#SEC71_8" class="summary-letter"><b>I</b></a>
- &nbsp; 
-<a href="#SEC71_9" class="summary-letter"><b>J</b></a>
- &nbsp; 
-<a href="#SEC71_10" class="summary-letter"><b>L</b></a>
- &nbsp; 
-<a href="#SEC71_11" class="summary-letter"><b>M</b></a>
- &nbsp; 
-<a href="#SEC71_12" class="summary-letter"><b>N</b></a>
- &nbsp; 
-<a href="#SEC71_13" class="summary-letter"><b>O</b></a>
- &nbsp; 
-<a href="#SEC71_14" class="summary-letter"><b>P</b></a>
- &nbsp; 
-<a href="#SEC71_15" class="summary-letter"><b>R</b></a>
- &nbsp; 
-<a href="#SEC71_16" class="summary-letter"><b>S</b></a>
- &nbsp; 
-<a href="#SEC71_17" class="summary-letter"><b>T</b></a>
- &nbsp; 
-<a href="#SEC71_18" class="summary-letter"><b>U</b></a>
- &nbsp; 
-<a href="libunistring_19.html#INDEX0_0" class="summary-letter"><b>V</b></a>
- &nbsp; 
-<a href="libunistring_19.html#INDEX0_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="SEC71_0">A</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX604">ambiguous width</a></td><td valign="top"><a href="libunistring_9.html#SEC37">9. Display width <code>&lt;uniwidth.h&gt;</code></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#SEC9">2. Conventions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_15.html#SEC59">autoconf macro</a></td><td valign="top"><a href="libunistring_15.html#SEC59">15.4 Autoconf macro</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_1">B</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC25">bidirectional category</a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidirectional category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC61">bidirectional reordering</a></td><td valign="top"><a href="libunistring_16.html#SEC61">16. More advanced functionality</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC34">block</a></td><td valign="top"><a href="libunistring_8.html#SEC34">8.10 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC41">breaks, line</a></td><td valign="top"><a href="libunistring_11.html#SEC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC38">breaks, word</a></td><td valign="top"><a href="libunistring_10.html#SEC38">10. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_15.html#SEC60">bug reports</a></td><td valign="top"><a href="libunistring_15.html#SEC60">15.5 Reporting problems</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_15.html#SEC60">bug tracker</a></td><td valign="top"><a href="libunistring_15.html#SEC60">15.5 Reporting problems</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_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#SEC35">C, programming language</a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.11 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC36">C-like API</a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC24">canonical combining class</a></td><td valign="top"><a href="libunistring_8.html#SEC24">8.2 Canonical combining class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC53">case detection</a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC50">case mappings</a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX708"><code>casing_prefix_context_t</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX716"><code>casing_suffix_context_t</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.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_12.html#SEC44">combining, Unicode characters</a></td><td valign="top"><a href="libunistring_12.html#SEC44">12.2 Composition of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX54">comparing</a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX110">comparing</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC52">comparing, ignoring case</a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX743">comparing, ignoring case, with collation rules</a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC46">comparing, ignoring normalization</a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC52">comparing, ignoring normalization and case</a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX745">comparing, ignoring normalization and case, with collation rules</a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX681">comparing, ignoring normalization, with collation rules</a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX114">comparing, with collation rules</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX744">comparing, with collation rules, ignoring case</a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX682">comparing, with collation rules, ignoring normalization</a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX746">comparing, with collation rules, ignoring normalization and case</a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_15.html#IDX771">compiler options</a></td><td valign="top"><a href="libunistring_15.html#SEC57">15.2 Compiler options</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC44">composing, Unicode characters</a></td><td valign="top"><a href="libunistring_12.html#SEC44">12.2 Composition of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC13">converting</a></td><td valign="top"><a href="libunistring_4.html#SEC13">4.2 Elementary string conversions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX160">converting</a></td><td valign="top"><a href="libunistring_5.html#SEC17">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">copying</a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX91">copying</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX65">counting</a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_3">D</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC43">decomposing</a></td><td valign="top"><a href="libunistring_12.html#SEC43">12.1 Decomposition of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_15.html#SEC56">dependencies</a></td><td valign="top"><a href="libunistring_15.html#SEC56">15.1 Installation</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC53">detecting case</a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC15">duplicating</a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.4 Elementary string functions with memory allocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX121">duplicating</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_4">E</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX156"><code>enum iconv_ilseq_handler</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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="SEC71_5">F</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_17.html#SEC69">FDL, GNU Free Documentation License</a></td><td valign="top"><a href="libunistring_17.html#SEC69">A.3 GNU Free Documentation License</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#SEC18">formatted output</a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX607">fullwidth</a></td><td valign="top"><a href="libunistring_9.html#SEC37">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_6">G</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC21">general category</a></td><td valign="top"><a href="libunistring_8.html#SEC21">8.1 General category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_15.html#IDX774"><code>gl_LIBUNISTRING</code></a></td><td valign="top"><a href="libunistring_15.html#SEC59">15.4 Autoconf macro</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_17.html#SEC63">GPL, GNU General Public License</a></td><td valign="top"><a href="libunistring_17.html#SEC63">A.1 GNU GENERAL PUBLIC LICENSE</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_7">H</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX606">halfwidth</a></td><td valign="top"><a href="libunistring_9.html#SEC37">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_8">I</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC35">identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.11 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_15.html#IDX770">installation</a></td><td valign="top"><a href="libunistring_15.html#SEC56">15.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 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX75">iterating</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_9">J</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC35">Java, programming language</a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.11 ISO C and Java syntax</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_10">L</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_17.html#SEC68">LGPL, GNU Lesser General Public License</a></td><td valign="top"><a href="libunistring_17.html#SEC68">A.2 GNU LESSER GENERAL PUBLIC LICENSE</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_17.html#SEC69">License, GNU FDL</a></td><td valign="top"><a href="libunistring_17.html#SEC69">A.3 GNU Free Documentation License</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_17.html#SEC63">License, GNU GPL</a></td><td valign="top"><a href="libunistring_17.html#SEC63">A.1 GNU GENERAL PUBLIC LICENSE</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_17.html#SEC68">License, GNU LGPL</a></td><td valign="top"><a href="libunistring_17.html#SEC68">A.2 GNU LESSER GENERAL PUBLIC LICENSE</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_17.html#SEC62">Licenses</a></td><td valign="top"><a href="libunistring_17.html#SEC62">A. Licenses</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC41">line breaks</a></td><td valign="top"><a href="libunistring_11.html#SEC41">11. 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#IDX154">locale encoding</a></td><td valign="top"><a href="libunistring_5.html#SEC17">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX697">locale language</a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.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#IDX155"><code>locale_charset</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">5. Conversions between Unicode and encodings <code>&lt;uniconv.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC50">lowercasing</a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_11">M</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_15.html#SEC60">mailing list</a></td><td valign="top"><a href="libunistring_15.html#SEC60">15.5 Reporting problems</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC29">mirroring, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC29">8.7 Mirrored character</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_12">N</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC42">normal forms</a></td><td valign="top"><a href="libunistring_12.html#SEC42">12. Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC42">normalizing</a></td><td valign="top"><a href="libunistring_12.html#SEC42">12. 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="SEC71_13">O</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#SEC18">output, formatted</a></td><td valign="top"><a href="libunistring_6.html#SEC18">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="SEC71_14">P</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC30">properties, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC30">8.8 Properties</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_15">R</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC54">regular expression</a></td><td valign="top"><a href="libunistring_14.html#SEC54">14. Regular expressions <code>&lt;uniregex.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_16.html#IDX775">rendering</a></td><td valign="top"><a href="libunistring_16.html#SEC61">16. 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#SEC9">2. Conventions</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_16">S</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC33">scripts</a></td><td valign="top"><a href="libunistring_8.html#SEC33">8.9 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX61">searching, for a character</a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX125">searching, for a character</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX141">searching, for a substring</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC47">stream, normalizing a</a></td><td valign="top"><a href="libunistring_12.html#SEC47">12.5 Normalization of streams of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX689"><code>struct uninorm_filter</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">12.5 Normalization of streams of Unicode characters</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_17">T</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC50">titlecasing</a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td colspan="3"> <hr></td></tr>
-<tr><th><a name="SEC71_18">U</a></th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX206"><code>u16_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX740"><code>u16_casecmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX752"><code>u16_casecoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX734"><code>u16_casefold</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX748"><code>u16_casexfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX711"><code>u16_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX714"><code>u16_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX719"><code>u16_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX722"><code>u16_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.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#SEC12">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#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX56"><code>u16_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX59"><code>u16_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX162"><code>u16_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u16_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u16_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX70"><code>u16_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.4 Elementary string functions with memory allocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX737"><code>u16_ct_casefold</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX728"><code>u16_ct_tolower</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX731"><code>u16_ct_totitle</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX725"><code>u16_ct_toupper</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX149"><code>u16_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX768"><code>u16_is_cased</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX765"><code>u16_is_casefolded</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX759"><code>u16_is_lowercase</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX762"><code>u16_is_titlecase</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX756"><code>u16_is_uppercase</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.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 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX67"><code>u16_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX36"><code>u16_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX33"><code>u16_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</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 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX49"><code>u16_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX80"><code>u16_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX676"><code>u16_normalize</code></a></td><td valign="top"><a href="libunistring_12.html#SEC45">12.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX679"><code>u16_normcmp</code></a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX687"><code>u16_normcoll</code></a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX684"><code>u16_normxfrm</code></a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX639"><code>u16_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX83"><code>u16_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX52"><code>u16_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX204"><code>u16_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX146"><code>u16_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX96"><code>u16_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX102"><code>u16_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX105"><code>u16_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX127"><code>u16_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX112"><code>u16_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX116"><code>u16_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX168"><code>u16_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX174"><code>u16_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u16_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX177"><code>u16_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX93"><code>u16_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX133"><code>u16_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX123"><code>u16_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX86"><code>u16_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX73"><code>u16_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX77"><code>u16_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX108"><code>u16_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX119"><code>u16_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX99"><code>u16_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX89"><code>u16_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX139"><code>u16_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX130"><code>u16_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX136"><code>u16_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX143"><code>u16_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX152"><code>u16_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX613"><code>u16_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC37">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#SEC13">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#SEC13">4.2 Elementary string conversions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX703"><code>u16_tolower</code></a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX706"><code>u16_totitle</code></a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX700"><code>u16_toupper</code></a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX214"><code>u16_u16_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u16_u16_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u16_u16_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u16_u16_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u16_u16_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX210"><code>u16_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX610"><code>u16_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC37">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX643"><code>u16_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX616"><code>u16_wordbreaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC39">10.1 Word breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX222"><code>u32_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX741"><code>u32_casecmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX753"><code>u32_casecoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX735"><code>u32_casefold</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX749"><code>u32_casexfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX712"><code>u32_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX715"><code>u32_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX720"><code>u32_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX723"><code>u32_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.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#SEC12">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#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX57"><code>u32_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX60"><code>u32_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX163"><code>u32_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u32_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX47"><code>u32_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX71"><code>u32_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.4 Elementary string functions with memory allocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX738"><code>u32_ct_casefold</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX729"><code>u32_ct_tolower</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX732"><code>u32_ct_totitle</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX726"><code>u32_ct_toupper</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX150"><code>u32_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX769"><code>u32_is_cased</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX766"><code>u32_is_casefolded</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX760"><code>u32_is_lowercase</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX763"><code>u32_is_titlecase</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX757"><code>u32_is_uppercase</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.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 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX68"><code>u32_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX37"><code>u32_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX34"><code>u32_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</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 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX50"><code>u32_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX81"><code>u32_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX677"><code>u32_normalize</code></a></td><td valign="top"><a href="libunistring_12.html#SEC45">12.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX680"><code>u32_normcmp</code></a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX688"><code>u32_normcoll</code></a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX685"><code>u32_normxfrm</code></a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX640"><code>u32_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX84"><code>u32_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX53"><code>u32_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX220"><code>u32_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX147"><code>u32_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX97"><code>u32_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX103"><code>u32_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX106"><code>u32_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX128"><code>u32_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX113"><code>u32_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX117"><code>u32_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX169"><code>u32_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX175"><code>u32_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u32_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX178"><code>u32_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX94"><code>u32_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX134"><code>u32_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX124"><code>u32_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX87"><code>u32_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX74"><code>u32_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX78"><code>u32_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX109"><code>u32_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX120"><code>u32_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX100"><code>u32_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX90"><code>u32_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX140"><code>u32_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX131"><code>u32_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX137"><code>u32_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX144"><code>u32_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX153"><code>u32_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX614"><code>u32_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC37">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#SEC13">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#SEC13">4.2 Elementary string conversions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX704"><code>u32_tolower</code></a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX707"><code>u32_totitle</code></a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX701"><code>u32_toupper</code></a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX230"><code>u32_u32_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX234"><code>u32_u32_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX233"><code>u32_u32_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX232"><code>u32_u32_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u32_u32_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX226"><code>u32_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX611"><code>u32_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC37">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX644"><code>u32_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX617"><code>u32_wordbreaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC39">10.1 Word breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX190"><code>u8_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX739"><code>u8_casecmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX751"><code>u8_casecoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX733"><code>u8_casefold</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX747"><code>u8_casexfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX710"><code>u8_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX713"><code>u8_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX718"><code>u8_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX721"><code>u8_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.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#SEC12">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#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX55"><code>u8_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX58"><code>u8_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX161"><code>u8_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u8_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u8_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX69"><code>u8_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.4 Elementary string functions with memory allocation</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX736"><code>u8_ct_casefold</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX727"><code>u8_ct_tolower</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX730"><code>u8_ct_totitle</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX724"><code>u8_ct_toupper</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX148"><code>u8_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX767"><code>u8_is_cased</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX764"><code>u8_is_casefolded</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX758"><code>u8_is_lowercase</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX761"><code>u8_is_titlecase</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Case detection</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX755"><code>u8_is_uppercase</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.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 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX66"><code>u8_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX35"><code>u8_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX32"><code>u8_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</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 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX48"><code>u8_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX79"><code>u8_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX675"><code>u8_normalize</code></a></td><td valign="top"><a href="libunistring_12.html#SEC45">12.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX678"><code>u8_normcmp</code></a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX686"><code>u8_normcoll</code></a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX683"><code>u8_normxfrm</code></a></td><td valign="top"><a href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX638"><code>u8_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX82"><code>u8_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX51"><code>u8_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX188"><code>u8_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX145"><code>u8_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX95"><code>u8_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX101"><code>u8_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX104"><code>u8_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX126"><code>u8_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX111"><code>u8_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX115"><code>u8_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX167"><code>u8_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u8_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u8_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX176"><code>u8_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u8_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX132"><code>u8_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX122"><code>u8_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX85"><code>u8_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX72"><code>u8_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX76"><code>u8_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX107"><code>u8_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX118"><code>u8_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX98"><code>u8_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX88"><code>u8_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX138"><code>u8_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX129"><code>u8_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX135"><code>u8_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX142"><code>u8_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX151"><code>u8_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX612"><code>u8_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC37">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#SEC13">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#SEC13">4.2 Elementary string conversions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX702"><code>u8_tolower</code></a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX705"><code>u8_totitle</code></a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX699"><code>u8_toupper</code></a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX198"><code>u8_u8_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u8_u8_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u8_u8_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u8_u8_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u8_u8_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#SEC14">4.3 Elementary string functions</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX194"><code>u8_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX609"><code>u8_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC37">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX642"><code>u8_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX615"><code>u8_wordbreaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC39">10.1 Word breaks in a string</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX581"><code>uc_all_blocks</code></a></td><td valign="top"><a href="libunistring_8.html#SEC34">8.10 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX576"><code>uc_all_scripts</code></a></td><td valign="top"><a href="libunistring_8.html#SEC33">8.9 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX402"><code>uc_bidi_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidirectional category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX401"><code>uc_bidi_category_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidirectional category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX400"><code>uc_bidi_category_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidirectional category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX579"><code>uc_block</code></a></td><td valign="top"><a href="libunistring_8.html#SEC34">8.10 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX577"><code>uc_block_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC34">8.10 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX589"><code>uc_c_ident_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.11 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX665"><code>uc_canonical_decomposition</code></a></td><td valign="top"><a href="libunistring_12.html#SEC43">12.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#SEC24">8.2 Canonical combining class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX666"><code>uc_composition</code></a></td><td valign="top"><a href="libunistring_12.html#SEC44">12.2 Composition of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX404"><code>uc_decimal_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC26">8.4 Decimal digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX664"><code>uc_decomposition</code></a></td><td valign="top"><a href="libunistring_12.html#SEC43">12.1 Decomposition of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX405"><code>uc_digit_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC27">8.5 Digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX406"><code>uc_fraction_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC28">8.6 Numeric value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX321"><code>uc_general_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">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_and</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">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_and_not</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX320"><code>uc_general_category_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX319"><code>uc_general_category_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">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_or</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX241"><code>uc_general_category_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX592"><code>uc_is_alnum</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX593"><code>uc_is_alpha</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX403"><code>uc_is_bidi_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidirectional category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX603"><code>uc_is_blank</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX580"><code>uc_is_block</code></a></td><td valign="top"><a href="libunistring_8.html#SEC34">8.10 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX582"><code>uc_is_c_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.11 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX594"><code>uc_is_cntrl</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX595"><code>uc_is_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX322"><code>uc_is_general_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX360"><code>uc_is_general_category_withtable</code></a></td><td valign="top"><a href="libunistring_8.html#SEC23">8.1.2 The bit mask API for general category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX596"><code>uc_is_graph</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX583"><code>uc_is_java_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.11 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX597"><code>uc_is_lower</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX598"><code>uc_is_print</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX491"><code>uc_is_property</code></a></td><td valign="top"><a href="libunistring_8.html#SEC31">8.8.1 Properties as objects &ndash; the object oriented API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX493"><code>uc_is_property_alphabetic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX540"><code>uc_is_property_ascii_hex_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX529"><code>uc_is_property_bidi_arabic_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX525"><code>uc_is_property_bidi_arabic_right_to_left</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX531"><code>uc_is_property_bidi_block_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX535"><code>uc_is_property_bidi_boundary_neutral</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX530"><code>uc_is_property_bidi_common_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX522"><code>uc_is_property_bidi_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX537"><code>uc_is_property_bidi_embedding_or_override</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX527"><code>uc_is_property_bidi_eur_num_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX528"><code>uc_is_property_bidi_eur_num_terminator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX526"><code>uc_is_property_bidi_european_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX524"><code>uc_is_property_bidi_hebrew_right_to_left</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX523"><code>uc_is_property_bidi_left_to_right</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX534"><code>uc_is_property_bidi_non_spacing_mark</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX538"><code>uc_is_property_bidi_other_neutral</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX536"><code>uc_is_property_bidi_pdf</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX532"><code>uc_is_property_bidi_segment_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX533"><code>uc_is_property_bidi_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX564"><code>uc_is_property_combining</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX565"><code>uc_is_property_composite</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX559"><code>uc_is_property_currency_symbol</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX551"><code>uc_is_property_dash</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX566"><code>uc_is_property_decimal_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX496"><code>uc_is_property_default_ignorable_code_point</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX498"><code>uc_is_property_deprecated</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX568"><code>uc_is_property_diacritic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX569"><code>uc_is_property_extender</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX550"><code>uc_is_property_format_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX518"><code>uc_is_property_grapheme_base</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX519"><code>uc_is_property_grapheme_extend</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX521"><code>uc_is_property_grapheme_link</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX539"><code>uc_is_property_hex_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX552"><code>uc_is_property_hyphen</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX511"><code>uc_is_property_id_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX509"><code>uc_is_property_id_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX541"><code>uc_is_property_ideographic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX544"><code>uc_is_property_ids_binary_operator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX545"><code>uc_is_property_ids_trinary_operator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX570"><code>uc_is_property_ignorable_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX549"><code>uc_is_property_iso_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX517"><code>uc_is_property_join_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX563"><code>uc_is_property_left_of_pair</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX554"><code>uc_is_property_line_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX499"><code>uc_is_property_logical_order_exception</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX505"><code>uc_is_property_lowercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX560"><code>uc_is_property_math</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX548"><code>uc_is_property_non_break</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX495"><code>uc_is_property_not_a_character</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX567"><code>uc_is_property_numeric</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX494"><code>uc_is_property_other_alphabetic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX497"><code>uc_is_property_other_default_ignorable_code_point</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX520"><code>uc_is_property_other_grapheme_extend</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX512"><code>uc_is_property_other_id_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX510"><code>uc_is_property_other_id_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX506"><code>uc_is_property_other_lowercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX561"><code>uc_is_property_other_math</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX504"><code>uc_is_property_other_uppercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX562"><code>uc_is_property_paired_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX555"><code>uc_is_property_paragraph_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX516"><code>uc_is_property_pattern_syntax</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX515"><code>uc_is_property_pattern_white_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX501"><code>uc_is_property_private_use</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX553"><code>uc_is_property_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX556"><code>uc_is_property_quotation_mark</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX543"><code>uc_is_property_radical</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX557"><code>uc_is_property_sentence_terminal</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX508"><code>uc_is_property_soft_dotted</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX547"><code>uc_is_property_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX558"><code>uc_is_property_terminal_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX507"><code>uc_is_property_titlecase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX502"><code>uc_is_property_unassigned_code_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX542"><code>uc_is_property_unified_ideograph</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX503"><code>uc_is_property_uppercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX500"><code>uc_is_property_variation_selector</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX492"><code>uc_is_property_white_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX514"><code>uc_is_property_xid_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX513"><code>uc_is_property_xid_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX546"><code>uc_is_property_zero_width</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX599"><code>uc_is_punct</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX575"><code>uc_is_script</code></a></td><td valign="top"><a href="libunistring_8.html#SEC33">8.9 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX600"><code>uc_is_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX601"><code>uc_is_upper</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX602"><code>uc_is_xdigit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX591"><code>uc_java_ident_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.11 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX698"><code>uc_locale_language</code></a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX408"><code>uc_mirror_char</code></a></td><td valign="top"><a href="libunistring_8.html#SEC29">8.7 Mirrored character</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX407"><code>uc_numeric_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC28">8.6 Numeric value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX489"><code>uc_property_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC31">8.8.1 Properties as objects &ndash; the object oriented API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX490"><code>uc_property_is_valid</code></a></td><td valign="top"><a href="libunistring_8.html#SEC31">8.8.1 Properties as objects &ndash; the object oriented API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX409"><code>uc_property_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC31">8.8.1 Properties as objects &ndash; the object oriented API</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX573"><code>uc_script</code></a></td><td valign="top"><a href="libunistring_8.html#SEC33">8.9 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX574"><code>uc_script_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC33">8.9 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX571"><code>uc_script_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC33">8.9 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX695"><code>uc_tolower</code></a></td><td valign="top"><a href="libunistring_13.html#SEC49">13.1 Case mappings of characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX696"><code>uc_totitle</code></a></td><td valign="top"><a href="libunistring_13.html#SEC49">13.1 Case mappings of characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX694"><code>uc_toupper</code></a></td><td valign="top"><a href="libunistring_13.html#SEC49">13.1 Case mappings of characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX608"><code>uc_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC37">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX632"><code>uc_wordbreak_property</code></a></td><td valign="top"><a href="libunistring_10.html#SEC40">10.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#SEC10">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#SEC10">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#SEC10">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#SEC10">3. Elementary types <code>&lt;unitypes.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX182"><code>ulc_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX742"><code>ulc_casecmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX754"><code>ulc_casecoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX750"><code>ulc_casexfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX235"><code>ulc_fprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX641"><code>ulc_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX180"><code>ulc_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>ulc_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>ulc_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX236"><code>ulc_vfprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>ulc_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>ulc_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">6. Output with Unicode strings <code>&lt;unistdio.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX645"><code>ulc_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX618"><code>ulc_wordbreaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC39">10.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#SEC25">Unicode character, bidirectional category</a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidirectional category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX578">Unicode character, block</a></td><td valign="top"><a href="libunistring_8.html#SEC34">8.10 Blocks</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC24">Unicode character, canonical combining class</a></td><td valign="top"><a href="libunistring_8.html#SEC24">8.2 Canonical combining class</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC49">Unicode character, case mappings</a></td><td valign="top"><a href="libunistring_13.html#SEC49">13.1 Case mappings of characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC21">Unicode character, classification</a></td><td valign="top"><a href="libunistring_8.html#SEC21">8.1 General category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC36">Unicode character, classification like in C</a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC21">Unicode character, general category</a></td><td valign="top"><a href="libunistring_8.html#SEC21">8.1 General category</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC29">Unicode character, mirroring</a></td><td valign="top"><a href="libunistring_8.html#SEC29">8.7 Mirrored character</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_7.html#SEC19">Unicode character, name</a></td><td valign="top"><a href="libunistring_7.html#SEC19">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#SEC30">Unicode character, properties</a></td><td valign="top"><a href="libunistring_8.html#SEC30">8.8 Properties</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX572">Unicode character, script</a></td><td valign="top"><a href="libunistring_8.html#SEC33">8.9 Scripts</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX588">Unicode character, validity in C identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.11 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX590">Unicode character, validity in Java identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.11 ISO C and Java syntax</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC26">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC26">8.4 Decimal digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC27">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC27">8.5 Digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC28">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC28">8.6 Numeric value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX605">Unicode character, width</a></td><td valign="top"><a href="libunistring_9.html#SEC37">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_7.html#IDX238"><code>unicode_character_name</code></a></td><td valign="top"><a href="libunistring_7.html#SEC19">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#IDX239"><code>unicode_name_character</code></a></td><td valign="top"><a href="libunistring_7.html#SEC19">7. Names of Unicode characters <code>&lt;uniname.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX674"><code>uninorm_decomposing_form</code></a></td><td valign="top"><a href="libunistring_12.html#SEC45">12.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX690"><code>uninorm_filter_create</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">12.5 Normalization of streams of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX692"><code>uninorm_filter_flush</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">12.5 Normalization of streams of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX693"><code>uninorm_filter_free</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">12.5 Normalization of streams of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX691"><code>uninorm_filter_write</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">12.5 Normalization of streams of Unicode characters</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX672"><code>uninorm_is_compat_decomposing</code></a></td><td valign="top"><a href="libunistring_12.html#SEC45">12.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX673"><code>uninorm_is_composing</code></a></td><td valign="top"><a href="libunistring_12.html#SEC45">12.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX667"><code>uninorm_t</code></a></td><td valign="top"><a href="libunistring_12.html#SEC45">12.3 Normalization of strings</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC50">uppercasing</a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.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#SEC8">1.7 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#SEC8">1.7 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#SEC8">1.7 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="#SEC71_0" class="summary-letter"><b>A</b></a>
- &nbsp; 
-<a href="#SEC71_1" class="summary-letter"><b>B</b></a>
- &nbsp; 
-<a href="#SEC71_2" class="summary-letter"><b>C</b></a>
- &nbsp; 
-<a href="#SEC71_3" class="summary-letter"><b>D</b></a>
- &nbsp; 
-<a href="#SEC71_4" class="summary-letter"><b>E</b></a>
- &nbsp; 
-<a href="#SEC71_5" class="summary-letter"><b>F</b></a>
- &nbsp; 
-<a href="#SEC71_6" class="summary-letter"><b>G</b></a>
- &nbsp; 
-<a href="#SEC71_7" class="summary-letter"><b>H</b></a>
- &nbsp; 
-<a href="#SEC71_8" class="summary-letter"><b>I</b></a>
- &nbsp; 
-<a href="#SEC71_9" class="summary-letter"><b>J</b></a>
- &nbsp; 
-<a href="#SEC71_10" class="summary-letter"><b>L</b></a>
- &nbsp; 
-<a href="#SEC71_11" class="summary-letter"><b>M</b></a>
- &nbsp; 
-<a href="#SEC71_12" class="summary-letter"><b>N</b></a>
- &nbsp; 
-<a href="#SEC71_13" class="summary-letter"><b>O</b></a>
- &nbsp; 
-<a href="#SEC71_14" class="summary-letter"><b>P</b></a>
- &nbsp; 
-<a href="#SEC71_15" class="summary-letter"><b>R</b></a>
- &nbsp; 
-<a href="#SEC71_16" class="summary-letter"><b>S</b></a>
- &nbsp; 
-<a href="#SEC71_17" class="summary-letter"><b>T</b></a>
- &nbsp; 
-<a href="#SEC71_18" class="summary-letter"><b>U</b></a>
- &nbsp; 
-<a href="libunistring_19.html#INDEX0_0" class="summary-letter"><b>V</b></a>
- &nbsp; 
-<a href="libunistring_19.html#INDEX0_1" class="summary-letter"><b>W</b></a>
- &nbsp; 
-</td></tr></table>
+<h2 class="heading"> TERMS AND CONDITIONS </h2>
+
+<ol>
+<li> Definitions.
+
+<p>&ldquo;This License&rdquo; refers to version 3 of the GNU General Public License.
+</p>
+<p>&ldquo;Copyright&rdquo; also means copyright-like laws that apply to other kinds
+of works, such as semiconductor masks.
+</p>
+<p>&ldquo;The Program&rdquo; refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as &ldquo;you&rdquo;.  &ldquo;Licensees&rdquo; and
+&ldquo;recipients&rdquo; may be individuals or organizations.
+</p>
+<p>To &ldquo;modify&rdquo; a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of
+an exact copy.  The resulting work is called a &ldquo;modified version&rdquo; of
+the earlier work or a work &ldquo;based on&rdquo; the earlier work.
+</p>
+<p>A &ldquo;covered work&rdquo; means either the unmodified Program or a work based
+on the Program.
+</p>
+<p>To &ldquo;propagate&rdquo; a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+</p>
+<p>To &ldquo;convey&rdquo; a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user
+through a computer network, with no transfer of a copy, is not
+conveying.
+</p>
+<p>An interactive user interface displays &ldquo;Appropriate Legal Notices&rdquo; to
+the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+</p>
+</li><li> Source Code.
+
+<p>The &ldquo;source code&rdquo; for a work means the preferred form of the work for
+making modifications to it.  &ldquo;Object code&rdquo; means any non-source form
+of a work.
+</p>
+<p>A &ldquo;Standard Interface&rdquo; means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+</p>
+<p>The &ldquo;System Libraries&rdquo; of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+&ldquo;Major Component&rdquo;, in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+</p>
+<p>The &ldquo;Corresponding Source&rdquo; for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+</p>
+<p>The Corresponding Source need not include anything that users can
+regenerate automatically from other parts of the Corresponding Source.
+</p>
+<p>The Corresponding Source for a work in source code form is that same
+work.
+</p>
+</li><li> Basic Permissions.
+
+<p>All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+</p>
+<p>You may make, run and propagate covered works that you do not convey,
+without conditions so long as your license otherwise remains in force.
+You may convey covered works to others for the sole purpose of having
+them make modifications exclusively for you, or provide you with
+facilities for running those works, provided that you comply with the
+terms of this License in conveying all material for which you do not
+control copyright.  Those thus making or running the covered works for
+you must do so exclusively on your behalf, under your direction and
+control, on terms that prohibit them from making any copies of your
+copyrighted material outside their relationship with you.
+</p>
+<p>Conveying under any other circumstances is permitted solely under the
+conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+</p>
+</li><li> Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+<p>No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+</p>
+<p>When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such
+circumvention is effected by exercising rights under this License with
+respect to the covered work, and you disclaim any intention to limit
+operation or modification of the work as a means of enforcing, against
+the work's users, your or third parties' legal rights to forbid
+circumvention of technological measures.
+</p>
+</li><li> Conveying Verbatim Copies.
+
+<p>You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+</p>
+<p>You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+</p>
+</li><li> Conveying Modified Source Versions.
+
+<p>You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these
+conditions:
+</p>
+<ol>
+<li>
+The work must carry prominent notices stating that you modified it,
+and giving a relevant date.
+
+</li><li>
+The work must carry prominent notices stating that it is released
+under this License and any conditions added under section 7.  This
+requirement modifies the requirement in section 4 to &ldquo;keep intact all
+notices&rdquo;.
+
+</li><li>
+You must license the entire work, as a whole, under this License to
+anyone who comes into possession of a copy.  This License will
+therefore apply, along with any applicable section 7 additional terms,
+to the whole of the work, and all its parts, regardless of how they
+are packaged.  This License gives no permission to license the work in
+any other way, but it does not invalidate such permission if you have
+separately received it.
+
+</li><li>
+If the work has interactive user interfaces, each must display
+Appropriate Legal Notices; however, if the Program has interactive
+interfaces that do not display Appropriate Legal Notices, your work
+need not make them do so.
+</li></ol>
+
+<p>A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+&ldquo;aggregate&rdquo; if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+</p>
+</li><li>  Conveying Non-Source Forms.
+
+<p>You may convey a covered work in object code form under the terms of
+sections 4 and 5, provided that you also convey the machine-readable
+Corresponding Source under the terms of this License, in one of these
+ways:
+</p>
+<ol>
+<li>
+Convey the object code in, or embodied in, a physical product
+(including a physical distribution medium), accompanied by the
+Corresponding Source fixed on a durable physical medium customarily
+used for software interchange.
+
+</li><li>
+Convey the object code in, or embodied in, a physical product
+(including a physical distribution medium), accompanied by a written
+offer, valid for at least three years and valid for as long as you
+offer spare parts or customer support for that product model, to give
+anyone who possesses the object code either (1) a copy of the
+Corresponding Source for all the software in the product that is
+covered by this License, on a durable physical medium customarily used
+for software interchange, for a price no more than your reasonable
+cost of physically performing this conveying of source, or (2) access
+to copy the Corresponding Source from a network server at no charge.
+
+</li><li>
+Convey individual copies of the object code with a copy of the written
+offer to provide the Corresponding Source.  This alternative is
+allowed only occasionally and noncommercially, and only if you
+received the object code with such an offer, in accord with subsection
+6b.
+
+</li><li>
+Convey the object code by offering access from a designated place
+(gratis or for a charge), and offer equivalent access to the
+Corresponding Source in the same way through the same place at no
+further charge.  You need not require recipients to copy the
+Corresponding Source along with the object code.  If the place to copy
+the object code is a network server, the Corresponding Source may be
+on a different server (operated by you or a third party) that supports
+equivalent copying facilities, provided you maintain clear directions
+next to the object code saying where to find the Corresponding Source.
+Regardless of what server hosts the Corresponding Source, you remain
+obligated to ensure that it is available for as long as needed to
+satisfy these requirements.
+
+</li><li>
+Convey the object code using peer-to-peer transmission, provided you
+inform other peers where the object code and Corresponding Source of
+the work are being offered to the general public at no charge under
+subsection 6d.
+
+</li></ol>
+
+<p>A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+</p>
+<p>A &ldquo;User Product&rdquo; is either (1) a &ldquo;consumer product&rdquo;, which means any
+tangible personal property which is normally used for personal,
+family, or household purposes, or (2) anything designed or sold for
+incorporation into a dwelling.  In determining whether a product is a
+consumer product, doubtful cases shall be resolved in favor of
+coverage.  For a particular product received by a particular user,
+&ldquo;normally used&rdquo; refers to a typical or common use of that class of
+product, regardless of the status of the particular user or of the way
+in which the particular user actually uses, or expects or is expected
+to use, the product.  A product is a consumer product regardless of
+whether the product has substantial commercial, industrial or
+non-consumer uses, unless such uses represent the only significant
+mode of use of the product.
+</p>
+<p>&ldquo;Installation Information&rdquo; for a User Product means any methods,
+procedures, authorization keys, or other information required to
+install and execute modified versions of a covered work in that User
+Product from a modified version of its Corresponding Source.  The
+information must suffice to ensure that the continued functioning of
+the modified object code is in no case prevented or interfered with
+solely because modification has been made.
+</p>
+<p>If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+</p>
+<p>The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or
+updates for a work that has been modified or installed by the
+recipient, or for the User Product in which it has been modified or
+installed.  Access to a network may be denied when the modification
+itself materially and adversely affects the operation of the network
+or violates the rules and protocols for communication across the
+network.
+</p>
+<p>Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+</p>
+</li><li> Additional Terms.
+
+<p>&ldquo;Additional permissions&rdquo; are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+</p>
+<p>When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+</p>
+<p>Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders
+of that material) supplement the terms of this License with terms:
+</p>
+<ol>
+<li>
+Disclaiming warranty or limiting liability differently from the terms
+of sections 15 and 16 of this License; or
+
+</li><li>
+Requiring preservation of specified reasonable legal notices or author
+attributions in that material or in the Appropriate Legal Notices
+displayed by works containing it; or
+
+</li><li>
+Prohibiting misrepresentation of the origin of that material, or
+requiring that modified versions of such material be marked in
+reasonable ways as different from the original version; or
+
+</li><li>
+Limiting the use for publicity purposes of names of licensors or
+authors of the material; or
+
+</li><li>
+Declining to grant rights under trademark law for use of some trade
+names, trademarks, or service marks; or
+
+</li><li>
+Requiring indemnification of licensors and authors of that material by
+anyone who conveys the material (or modified versions of it) with
+contractual assumptions of liability to the recipient, for any
+liability that these contractual assumptions directly impose on those
+licensors and authors.
+</li></ol>
+
+<p>All other non-permissive additional terms are considered &ldquo;further
+restrictions&rdquo; within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+</p>
+<p>If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+</p>
+<p>Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions; the
+above requirements apply either way.
+</p>
+</li><li> Termination.
+
+<p>You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+</p>
+<p>However, if you cease all violation of this License, then your license
+from a particular copyright holder is reinstated (a) provisionally,
+unless and until the copyright holder explicitly and finally
+terminates your license, and (b) permanently, if the copyright holder
+fails to notify you of the violation by some reasonable means prior to
+60 days after the cessation.
+</p>
+<p>Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+</p>
+<p>Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+</p>
+</li><li> Acceptance Not Required for Having Copies.
+
+<p>You are not required to accept this License in order to receive or run
+a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+</p>
+</li><li> Automatic Licensing of Downstream Recipients.
+
+<p>Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+</p>
+<p>An &ldquo;entity transaction&rdquo; is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+</p>
+<p>You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+</p>
+</li><li> Patents.
+
+<p>A &ldquo;contributor&rdquo; is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's &ldquo;contributor version&rdquo;.
+</p>
+<p>A contributor's &ldquo;essential patent claims&rdquo; are all patent claims owned
+or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, &ldquo;control&rdquo; includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+</p>
+<p>Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+</p>
+<p>In the following three paragraphs, a &ldquo;patent license&rdquo; is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To &ldquo;grant&rdquo; such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+</p>
+<p>If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  &ldquo;Knowingly relying&rdquo; means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+</p>
+<p>If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+</p>
+<p>A patent license is &ldquo;discriminatory&rdquo; if it does not include within the
+scope of its coverage, prohibits the exercise of, or is conditioned on
+the non-exercise of one or more of the rights that are specifically
+granted under this License.  You may not convey a covered work if you
+are a party to an arrangement with a third party that is in the
+business of distributing software, under which you make payment to the
+third party based on the extent of your activity of conveying the
+work, and under which the third party grants, to any of the parties
+who would receive the covered work from you, a discriminatory patent
+license (a) in connection with copies of the covered work conveyed by
+you (or copies made from those copies), or (b) primarily for and in
+connection with specific products or compilations that contain the
+covered work, unless you entered into that arrangement, or that patent
+license was granted, prior to 28 March 2007.
+</p>
+<p>Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+</p>
+</li><li> No Surrender of Others' Freedom.
+
+<p>If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey
+a covered work so as to satisfy simultaneously your obligations under
+this License and any other pertinent obligations, then as a
+consequence you may not convey it at all.  For example, if you agree
+to terms that obligate you to collect a royalty for further conveying
+from those to whom you convey the Program, the only way you could
+satisfy both those terms and this License would be to refrain entirely
+from conveying the Program.
+</p>
+</li><li> Use with the GNU Affero General Public License.
+
+<p>Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+</p>
+</li><li> Revised Versions of this License.
+
+<p>The Free Software Foundation may publish revised and/or new versions
+of the GNU General Public License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+</p>
+<p>Each version is given a distinguishing version number.  If the Program
+specifies that a certain numbered version of the GNU General Public
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that numbered version or
+of any later version published by the Free Software Foundation.  If
+the Program does not specify a version number of the GNU General
+Public License, you may choose any version ever published by the Free
+Software Foundation.
+</p>
+<p>If the Program specifies that a proxy can decide which future versions
+of the GNU General Public License can be used, that proxy's public
+statement of acceptance of a version permanently authorizes you to
+choose that version for the Program.
+</p>
+<p>Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+</p>
+</li><li> Disclaimer of Warranty.
+
+<p>THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM &ldquo;AS IS&rdquo; WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE
+DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
+CORRECTION.
+</p>
+</li><li> Limitation of Liability.
+
+<p>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR
+CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT
+NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
+LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
+TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
+PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+</p>
+</li><li> Interpretation of Sections 15 and 16.
+
+<p>If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+</p>
+</li></ol>
+
+<a name="SEC72"></a>
+<h2 class="heading"> END OF TERMS AND CONDITIONS </h2>
+
+<a name="SEC73"></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
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+</p>
+<p>To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the &ldquo;copyright&rdquo; line and a pointer to where the full notice is found.
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample"><var>one line to give the program's name and a brief idea of what it does.</var>
+Copyright (C) <var>year</var> <var>name of author</var>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.
+</pre></td></tr></table>
+
+<p>Also add information on how to contact you by electronic and paper mail.
+</p>
+<p>If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample"><var>program</var> Copyright (C) <var>year</var> <var>name of author</var>
+This program comes with ABSOLUTELY NO WARRANTY; for details type &lsquo;<samp>show w</samp>&rsquo;.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type &lsquo;<samp>show c</samp>&rsquo; for details.
+</pre></td></tr></table>
+
+<p>The hypothetical commands &lsquo;<samp>show w</samp>&rsquo; and &lsquo;<samp>show c</samp>&rsquo; should show
+the appropriate parts of the General Public License.  Of course, your
+program's commands might be different; for a GUI interface, you would
+use an &ldquo;about box&rdquo;.
+</p>
+<p>You should also get your employer (if you work as a programmer) or school,
+if any, to sign a &ldquo;copyright disclaimer&rdquo; for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.
+</p>
+<p>The GNU General Public License does not permit incorporating your
+program into proprietary programs.  If your program is a subroutine
+library, you may consider it more useful to permit linking proprietary
+applications with the library.  If this is what you want to do, use
+the GNU Lesser General Public License instead of this License.  But
+first, please read <a href="http://www.gnu.org/philosophy/why-not-lgpl.html">http://www.gnu.org/philosophy/why-not-lgpl.html</a>.
+
+</p><hr size="6">
+<a name="GNU-LGPL"></a>
+<a name="SEC74"></a>
+<h2 class="appendixsec"> <a href="libunistring.html#TOC70">A.2 GNU LESSER GENERAL PUBLIC LICENSE</a> </h2>
+<p align="center"> Version 3, 29 June 2007
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2007 Free Software Foundation, Inc. <a href="http://fsf.org/">http://fsf.org/</a>
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<p>This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+</p>
+<ol>
+<li> Additional Definitions.
+
+<p>As used herein, &ldquo;this License&rdquo; refers to version 3 of the GNU Lesser
+General Public License, and the &ldquo;GNU GPL&rdquo; refers to version 3 of the GNU
+General Public License.
+</p>
+<p>&ldquo;The Library&rdquo; refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+</p>
+<p>An &ldquo;Application&rdquo; is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+</p>
+<p>A &ldquo;Combined Work&rdquo; is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the &ldquo;Linked
+Version&rdquo;.
+</p>
+<p>The &ldquo;Minimal Corresponding Source&rdquo; for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+</p>
+<p>The &ldquo;Corresponding Application Code&rdquo; for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+</p>
+</li><li> Exception to Section 3 of the GNU GPL.
+
+<p>You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+</p>
+</li><li> Conveying Modified Versions.
+
+<p>If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+</p>
+<ol>
+<li>
+under this License, provided that you make a good faith effort to
+ensure that, in the event an Application does not supply the
+function or data, the facility still operates, and performs
+whatever part of its purpose remains meaningful, or
+
+</li><li>
+under the GNU GPL, with none of the additional permissions of
+this License applicable to that copy.
+</li></ol>
+
+</li><li> Object Code Incorporating Material from Library Header Files.
+
+<p>The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+</p>
+<ol>
+<li>
+Give prominent notice with each copy of the object code that the
+Library is used in it and that the Library and its use are
+covered by this License.
+</li><li>
+Accompany the object code with a copy of the GNU GPL and this license
+document.
+</li></ol>
+
+</li><li> Combined Works.
+
+<p>You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+</p>
+<ol>
+<li>
+Give prominent notice with each copy of the Combined Work that
+the Library is used in it and that the Library and its use are
+covered by this License.
+</li><li>
+Accompany the Combined Work with a copy of the GNU GPL and this license
+document.
+</li><li>
+For a Combined Work that displays copyright notices during
+execution, include the copyright notice for the Library among
+these notices, as well as a reference directing the user to the
+copies of the GNU GPL and this license document.
+</li><li>
+Do one of the following:
+
+<ol>
+<li>
+Convey the Minimal Corresponding Source under the terms of this
+License, and the Corresponding Application Code in a form
+suitable for, and under terms that permit, the user to
+recombine or relink the Application with a modified version of
+the Linked Version to produce a modified Combined Work, in the
+manner specified by section 6 of the GNU GPL for conveying
+Corresponding Source.
+</li><li>
+Use a suitable shared library mechanism for linking with the
+Library.  A suitable mechanism is one that (a) uses at run time
+a copy of the Library already present on the user's computer
+system, and (b) will operate properly with a modified version
+of the Library that is interface-compatible with the Linked
+Version.
+</li></ol>
+
+</li><li>
+Provide Installation Information, but only if you would otherwise
+be required to provide such information under section 6 of the
+GNU GPL, and only to the extent that such information is
+necessary to install and execute a modified version of the
+Combined Work produced by recombining or relinking the
+Application with a modified version of the Linked Version. (If
+you use option 4d0, the Installation Information must accompany
+the Minimal Corresponding Source and Corresponding Application
+Code. If you use option 4d1, you must provide the Installation
+Information in the manner specified by section 6 of the GNU GPL
+for conveying Corresponding Source.)
+</li></ol>
+
+</li><li> Combined Libraries.
+
+<p>You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+</p>
+<ol>
+<li>
+Accompany the combined library with a copy of the same work based
+on the Library, uncombined with any other library facilities,
+conveyed under the terms of this License.
+</li><li>
+Give prominent notice with the combined library that part of it
+is a work based on the Library, and explaining where to find the
+accompanying uncombined form of the same work.
+</li></ol>
+
+</li><li> Revised Versions of the GNU Lesser General Public License.
+
+<p>The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+</p>
+<p>Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License &ldquo;or any later version&rdquo;
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+</p>
+<p>If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
+</p>
+</li></ol>
+
+<hr size="6">
+<a name="GNU-FDL"></a>
+<a name="SEC75"></a>
+<h2 class="appendixsec"> <a href="libunistring.html#TOC71">A.3 GNU Free Documentation License</a> </h2>
+<p align="center"> Version 1.3, 3 November 2008
+</p>
+
+<table><tr><td>&nbsp;</td><td><pre class="display">Copyright &copy; 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+<a href="http://fsf.org/">http://fsf.org/</a>
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+</pre></td></tr></table>
+
+<ol>
+<li>
+PREAMBLE
+
+<p>The purpose of this License is to make a manual, textbook, or other
+functional and useful document <em>free</em> in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+</p>
+<p>This License is a kind of &ldquo;copyleft&rdquo;, which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+</p>
+<p>We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+</p>
+</li><li>
+APPLICABILITY AND DEFINITIONS
+
+<p>This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License.  Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein.  The &ldquo;Document&rdquo;, below,
+refers to any such manual or work.  Any member of the public is a
+licensee, and is addressed as &ldquo;you&rdquo;.  You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+</p>
+<p>A &ldquo;Modified Version&rdquo; of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+</p>
+<p>A &ldquo;Secondary Section&rdquo; is a named appendix or a front-matter section
+of the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject.  (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+</p>
+<p>The &ldquo;Invariant Sections&rdquo; are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.  If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant.  The Document may contain zero
+Invariant Sections.  If the Document does not identify any Invariant
+Sections then there are none.
+</p>
+<p>The &ldquo;Cover Texts&rdquo; are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.  A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+</p>
+<p>A &ldquo;Transparent&rdquo; copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
+</p>
+<p>Examples of suitable formats for Transparent copies include plain
+<small>ASCII</small> without markup, Texinfo input format, LaTeX input
+format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
+<acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
+of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
+<acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
+read and edited only by proprietary word processors, <acronym>SGML</acronym> or
+<acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
+not generally available, and the machine-generated <acronym>HTML</acronym>,
+PostScript or <acronym>PDF</acronym> produced by some word processors for
+output purposes only.
+</p>
+<p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, &ldquo;Title Page&rdquo; means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+</p>
+<p>The &ldquo;publisher&rdquo; means any person or entity that distributes copies
+of the Document to the public.
+</p>
+<p>A section &ldquo;Entitled XYZ&rdquo; means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language.  (Here XYZ stands for a
+specific section name mentioned below, such as &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, &ldquo;Endorsements&rdquo;, or &ldquo;History&rdquo;.)  To &ldquo;Preserve the Title&rdquo;
+of such a section when you modify the Document means that it remains a
+section &ldquo;Entitled XYZ&rdquo; according to this definition.
+</p>
+<p>The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document.  These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+</p>
+</li><li>
+VERBATIM COPYING
+
+<p>You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+</p>
+<p>You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+</p>
+</li><li>
+COPYING IN QUANTITY
+
+<p>If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+</p>
+<p>If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+</p>
+<p>If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+</p>
+<p>It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+</p>
+</li><li>
+MODIFICATIONS
+
+<p>You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+</p>
+<ol>
+<li>
+Use in the Title Page (and on the covers, if any) a title distinct
+from that of the Document, and from those of previous versions
+(which should, if there were any, be listed in the History section
+of the Document).  You may use the same title as a previous version
+if the original publisher of that version gives permission.
+
+</li><li>
+List on the Title Page, as authors, one or more persons or entities
+responsible for authorship of the modifications in the Modified
+Version, together with at least five of the principal authors of the
+Document (all of its principal authors, if it has fewer than five),
+unless they release you from this requirement.
+
+</li><li>
+State on the Title page the name of the publisher of the
+Modified Version, as the publisher.
+
+</li><li>
+Preserve all the copyright notices of the Document.
+
+</li><li>
+Add an appropriate copyright notice for your modifications
+adjacent to the other copyright notices.
+
+</li><li>
+Include, immediately after the copyright notices, a license notice
+giving the public permission to use the Modified Version under the
+terms of this License, in the form shown in the Addendum below.
+
+</li><li>
+Preserve in that license notice the full lists of Invariant Sections
+and required Cover Texts given in the Document's license notice.
+
+</li><li>
+Include an unaltered copy of this License.
+
+</li><li>
+Preserve the section Entitled &ldquo;History&rdquo;, Preserve its Title, and add
+to it an item stating at least the title, year, new authors, and
+publisher of the Modified Version as given on the Title Page.  If
+there is no section Entitled &ldquo;History&rdquo; in the Document, create one
+stating the title, year, authors, and publisher of the Document as
+given on its Title Page, then add an item describing the Modified
+Version as stated in the previous sentence.
+
+</li><li>
+Preserve the network location, if any, given in the Document for
+public access to a Transparent copy of the Document, and likewise
+the network locations given in the Document for previous versions
+it was based on.  These may be placed in the &ldquo;History&rdquo; section.
+You may omit a network location for a work that was published at
+least four years before the Document itself, or if the original
+publisher of the version it refers to gives permission.
+
+</li><li>
+For any section Entitled &ldquo;Acknowledgements&rdquo; or &ldquo;Dedications&rdquo;, Preserve
+the Title of the section, and preserve in the section all the
+substance and tone of each of the contributor acknowledgements and/or
+dedications given therein.
+
+</li><li>
+Preserve all the Invariant Sections of the Document,
+unaltered in their text and in their titles.  Section numbers
+or the equivalent are not considered part of the section titles.
+
+</li><li>
+Delete any section Entitled &ldquo;Endorsements&rdquo;.  Such a section
+may not be included in the Modified Version.
+
+</li><li>
+Do not retitle any existing section to be Entitled &ldquo;Endorsements&rdquo; or
+to conflict in title with any Invariant Section.
+
+</li><li>
+Preserve any Warranty Disclaimers.
+</li></ol>
+
+<p>If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+</p>
+<p>You may add a section Entitled &ldquo;Endorsements&rdquo;, provided it contains
+nothing but endorsements of your Modified Version by various
+parties&mdash;for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+</p>
+<p>You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+</p>
+<p>The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+</p>
+</li><li>
+COMBINING DOCUMENTS
+
+<p>You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+</p>
+<p>The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+</p>
+<p>In the combination, you must combine any sections Entitled &ldquo;History&rdquo;
+in the various original documents, forming one section Entitled
+&ldquo;History&rdquo;; likewise combine any sections Entitled &ldquo;Acknowledgements&rdquo;,
+and any sections Entitled &ldquo;Dedications&rdquo;.  You must delete all
+sections Entitled &ldquo;Endorsements.&rdquo;
+</p>
+</li><li>
+COLLECTIONS OF DOCUMENTS
+
+<p>You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+</p>
+<p>You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+</p>
+</li><li>
+AGGREGATION WITH INDEPENDENT WORKS
+
+<p>A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an &ldquo;aggregate&rdquo; if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+</p>
+<p>If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+</p>
+</li><li>
+TRANSLATION
+
+<p>Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers.  In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+</p>
+<p>If a section in the Document is Entitled &ldquo;Acknowledgements&rdquo;,
+&ldquo;Dedications&rdquo;, or &ldquo;History&rdquo;, the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+</p>
+</li><li>
+TERMINATION
+
+<p>You may not copy, modify, sublicense, or distribute the Document
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense, or distribute it is void, and
+will automatically terminate your rights under this License.
+</p>
+<p>However, if you cease all violation of this License, then your license
+from a particular copyright holder is reinstated (a) provisionally,
+unless and until the copyright holder explicitly and finally
+terminates your license, and (b) permanently, if the copyright holder
+fails to notify you of the violation by some reasonable means prior to
+60 days after the cessation.
+</p>
+<p>Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+</p>
+<p>Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, receipt of a copy of some or all of the same material does
+not give you any rights to use it.
+</p>
+</li><li>
+FUTURE REVISIONS OF THIS LICENSE
+
+<p>The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.
+</p>
+<p>Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License &ldquo;or any later version&rdquo; applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.  If the Document
+specifies that a proxy can decide which future versions of this
+License can be used, that proxy's public statement of acceptance of a
+version permanently authorizes you to choose that version for the
+Document.
+</p>
+</li><li>
+RELICENSING
+
+<p>&ldquo;Massive Multiauthor Collaboration Site&rdquo; (or &ldquo;MMC Site&rdquo;) means any
+World Wide Web server that publishes copyrightable works and also
+provides prominent facilities for anybody to edit those works.  A
+public wiki that anybody can edit is an example of such a server.  A
+&ldquo;Massive Multiauthor Collaboration&rdquo; (or &ldquo;MMC&rdquo;) contained in the
+site means any set of copyrightable works thus published on the MMC
+site.
+</p>
+<p>&ldquo;CC-BY-SA&rdquo; means the Creative Commons Attribution-Share Alike 3.0
+license published by Creative Commons Corporation, a not-for-profit
+corporation with a principal place of business in San Francisco,
+California, as well as future copyleft versions of that license
+published by that same organization.
+</p>
+<p>&ldquo;Incorporate&rdquo; means to publish or republish a Document, in whole or
+in part, as part of another Document.
+</p>
+<p>An MMC is &ldquo;eligible for relicensing&rdquo; if it is licensed under this
+License, and if all works that were first published under this License
+somewhere other than this MMC, and subsequently incorporated in whole
+or in part into the MMC, (1) had no cover texts or invariant sections,
+and (2) were thus incorporated prior to November 1, 2008.
+</p>
+<p>The operator of an MMC Site may republish an MMC contained in the site
+under CC-BY-SA on the same site at any time before August 1, 2009,
+provided the MMC is eligible for relicensing.
+</p>
+</li></ol>
+
+
+<a name="SEC76"></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
+the License in the document and put the following copyright and
+license notices just after the title page:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.3
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the &ldquo;with&hellip;Texts.&rdquo; line with this:
+</p>
+<table><tr><td>&nbsp;</td><td><pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
+    the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
+    being <var>list</var>.
+</pre></td></tr></table>
+
+<p>If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+</p>
+<p>If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+</p>
+
+
 <hr size="6">
 <table cellpadding="1" cellspacing="1" border="0">
-<tr><td valign="middle" align="left">[<a href="libunistring_17.html#SEC62" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_19.html#INDEX0" title="Next chapter"> &gt;&gt; </a>]</td>
+<tr><td valign="middle" align="left">[<a href="#SEC68" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>
@@ -756,12 +1512,12 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index bd513cc..be1adf0 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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</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">
+<meta name="keywords" content="GNU libunistring: Index">
 <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_18.html#SEC71" 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_18.html#SEC68" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_20.html#INDEX0" 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,122 +51,750 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC77" 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_18.html#SEC71_0" class="summary-letter"><b>A</b></a>
+<a name="Index"></a>
+<a name="SEC77"></a>
+<h1 class="unnumbered"> <a href="libunistring.html#TOC72">Index</a> </h1>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC77_0" class="summary-letter"><b>A</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_1" class="summary-letter"><b>B</b></a>
+<a href="#SEC77_1" class="summary-letter"><b>B</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_2" class="summary-letter"><b>C</b></a>
+<a href="#SEC77_2" class="summary-letter"><b>C</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_3" class="summary-letter"><b>D</b></a>
+<a href="#SEC77_3" class="summary-letter"><b>D</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_4" class="summary-letter"><b>E</b></a>
+<a href="#SEC77_4" class="summary-letter"><b>E</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_5" class="summary-letter"><b>F</b></a>
+<a href="#SEC77_5" class="summary-letter"><b>F</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_6" class="summary-letter"><b>G</b></a>
+<a href="#SEC77_6" class="summary-letter"><b>G</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_7" class="summary-letter"><b>H</b></a>
+<a href="#SEC77_7" class="summary-letter"><b>H</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_8" class="summary-letter"><b>I</b></a>
+<a href="#SEC77_8" class="summary-letter"><b>I</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_9" class="summary-letter"><b>J</b></a>
+<a href="#SEC77_9" class="summary-letter"><b>J</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_10" class="summary-letter"><b>L</b></a>
+<a href="#SEC77_10" class="summary-letter"><b>L</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_11" class="summary-letter"><b>M</b></a>
+<a href="#SEC77_11" class="summary-letter"><b>M</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_12" class="summary-letter"><b>N</b></a>
+<a href="#SEC77_12" class="summary-letter"><b>N</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_13" class="summary-letter"><b>O</b></a>
+<a href="#SEC77_13" class="summary-letter"><b>O</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_14" class="summary-letter"><b>P</b></a>
+<a href="#SEC77_14" class="summary-letter"><b>P</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_15" class="summary-letter"><b>R</b></a>
+<a href="#SEC77_15" class="summary-letter"><b>R</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_16" class="summary-letter"><b>S</b></a>
+<a href="#SEC77_16" class="summary-letter"><b>S</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_17" class="summary-letter"><b>T</b></a>
+<a href="#SEC77_17" class="summary-letter"><b>T</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_18" class="summary-letter"><b>U</b></a>
+<a href="#SEC77_18" class="summary-letter"><b>U</b></a>
  &nbsp; 
-<a href="#INDEX0_0" class="summary-letter"><b>V</b></a>
+<a href="libunistring_20.html#INDEX0_0" class="summary-letter"><b>V</b></a>
  &nbsp; 
-<a href="#INDEX0_1" class="summary-letter"><b>W</b></a>
+<a href="libunistring_20.html#INDEX0_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#SEC12">validity</a></td><td valign="top"><a href="libunistring_4.html#SEC12">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#SEC26">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC26">8.4 Decimal digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC27">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC27">8.5 Digit value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC28">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC28">8.6 Numeric value</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC12">verification</a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.1 Elementary string checks</a></td></tr>
+<tr><th><a name="SEC77_0">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX701">ambiguous width</a></td><td valign="top"><a href="libunistring_9.html#SEC40">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC30">Arabic shaping</a></td><td valign="top"><a href="libunistring_8.html#SEC30">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#SEC9">2. Conventions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC65">autoconf macro</a></td><td valign="top"><a href="libunistring_16.html#SEC65">16.4 Autoconf macro</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_1">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC25">bidi class</a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC25">bidirectional category</a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_17.html#SEC67">bidirectional reordering</a></td><td valign="top"><a href="libunistring_17.html#SEC67">17. More advanced functionality</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC37">block</a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.11 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC41">boundaries, between grapheme clusters</a></td><td valign="top"><a href="libunistring_10.html#SEC41">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#SEC44">boundaries, between words</a></td><td valign="top"><a href="libunistring_11.html#SEC44">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#SEC41">breaks, grapheme cluster</a></td><td valign="top"><a href="libunistring_10.html#SEC41">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#SEC47">breaks, line</a></td><td valign="top"><a href="libunistring_12.html#SEC47">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC44">breaks, word</a></td><td valign="top"><a href="libunistring_11.html#SEC44">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#SEC66">bug reports</a></td><td valign="top"><a href="libunistring_16.html#SEC66">16.5 Reporting problems</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC66">bug tracker</a></td><td valign="top"><a href="libunistring_16.html#SEC66">16.5 Reporting problems</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_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#SEC38">C, programming language</a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.12 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC39">C-like API</a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC24">canonical combining class</a></td><td valign="top"><a href="libunistring_8.html#SEC24">8.2 Canonical combining class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC59">case detection</a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC56">case mappings</a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX829"><code>casing_prefix_context_t</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX837"><code>casing_suffix_context_t</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">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_13.html#SEC50">combining, Unicode characters</a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Composition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX54">comparing</a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX110">comparing</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC58">comparing, ignoring case</a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX864">comparing, ignoring case, with collation rules</a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC52">comparing, ignoring normalization</a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC58">comparing, ignoring normalization and case</a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX866">comparing, ignoring normalization and case, with collation rules</a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX802">comparing, ignoring normalization, with collation rules</a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX114">comparing, with collation rules</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX865">comparing, with collation rules, ignoring case</a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX803">comparing, with collation rules, ignoring normalization</a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX867">comparing, with collation rules, ignoring normalization and case</a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#IDX892">compiler options</a></td><td valign="top"><a href="libunistring_16.html#SEC63">16.2 Compiler options</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC50">composing, Unicode characters</a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Composition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC13">converting</a></td><td valign="top"><a href="libunistring_4.html#SEC13">4.2 Elementary string conversions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX160">converting</a></td><td valign="top"><a href="libunistring_5.html#SEC17">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">copying</a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX91">copying</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX65">counting</a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_3">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC49">decomposing</a></td><td valign="top"><a href="libunistring_13.html#SEC49">13.1 Decomposition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC62">dependencies</a></td><td valign="top"><a href="libunistring_16.html#SEC62">16.1 Installation</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC59">detecting case</a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC15">duplicating</a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.4 Elementary string functions with memory allocation</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX121">duplicating</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_4">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX156"><code>enum iconv_ilseq_handler</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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="SEC77_5">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_18.html#SEC75">FDL, GNU Free Documentation License</a></td><td valign="top"><a href="libunistring_18.html#SEC75">A.3 GNU Free Documentation License</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#SEC18">formatted output</a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX704">fullwidth</a></td><td valign="top"><a href="libunistring_9.html#SEC40">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_6">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC21">general category</a></td><td valign="top"><a href="libunistring_8.html#SEC21">8.1 General category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#IDX895"><code>gl_LIBUNISTRING</code></a></td><td valign="top"><a href="libunistring_16.html#SEC65">16.4 Autoconf macro</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_18.html#SEC69">GPL, GNU General Public License</a></td><td valign="top"><a href="libunistring_18.html#SEC69">A.1 GNU GENERAL PUBLIC LICENSE</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC41">grapheme cluster boundaries</a></td><td valign="top"><a href="libunistring_10.html#SEC41">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#SEC41">grapheme cluster breaks</a></td><td valign="top"><a href="libunistring_10.html#SEC41">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="SEC77_7">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX703">halfwidth</a></td><td valign="top"><a href="libunistring_9.html#SEC40">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_8">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC38">identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.12 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#IDX891">installation</a></td><td valign="top"><a href="libunistring_16.html#SEC62">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 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX75">iterating</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_9">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC38">Java, programming language</a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.12 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC32">joining group</a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Joining group of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC30">joining of Arabic characters</a></td><td valign="top"><a href="libunistring_8.html#SEC30">8.8 Arabic shaping</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC31">joining type</a></td><td valign="top"><a href="libunistring_8.html#SEC31">8.8.1 Joining type of Arabic characters</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_1.html#SEC7">wchar_t, type</a></td><td valign="top"><a href="libunistring_1.html#SEC7">1.6 The <code>wchar_t</code> mess</a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_9.html#SEC37">width</a></td><td valign="top"><a href="libunistring_9.html#SEC37">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_10.html#SEC38">word breaks</a></td><td valign="top"><a href="libunistring_10.html#SEC38">10. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a></td></tr>
-<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC41">wrapping</a></td><td valign="top"><a href="libunistring_11.html#SEC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><th><a name="SEC77_10">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_18.html#SEC74">LGPL, GNU Lesser General Public License</a></td><td valign="top"><a href="libunistring_18.html#SEC74">A.2 GNU LESSER GENERAL PUBLIC LICENSE</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_18.html#SEC75">License, GNU FDL</a></td><td valign="top"><a href="libunistring_18.html#SEC75">A.3 GNU Free Documentation License</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_18.html#SEC69">License, GNU GPL</a></td><td valign="top"><a href="libunistring_18.html#SEC69">A.1 GNU GENERAL PUBLIC LICENSE</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_18.html#SEC74">License, GNU LGPL</a></td><td valign="top"><a href="libunistring_18.html#SEC74">A.2 GNU LESSER GENERAL PUBLIC LICENSE</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_18.html#SEC68">Licenses</a></td><td valign="top"><a href="libunistring_18.html#SEC68">A. Licenses</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#SEC47">line breaks</a></td><td valign="top"><a href="libunistring_12.html#SEC47">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#IDX154">locale encoding</a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX818">locale language</a></td><td valign="top"><a href="libunistring_14.html#SEC56">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#IDX155"><code>locale_charset</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#SEC56">lowercasing</a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_11">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_16.html#SEC66">mailing list</a></td><td valign="top"><a href="libunistring_16.html#SEC66">16.5 Reporting problems</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC29">mirroring, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC29">8.7 Mirrored character</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_12">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC48">normal forms</a></td><td valign="top"><a href="libunistring_13.html#SEC48">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#SEC48">normalizing</a></td><td valign="top"><a href="libunistring_13.html#SEC48">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="SEC77_13">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#SEC18">output, formatted</a></td><td valign="top"><a href="libunistring_6.html#SEC18">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="SEC77_14">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC33">properties, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC33">8.9 Properties</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_15">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_15.html#SEC60">regular expression</a></td><td valign="top"><a href="libunistring_15.html#SEC60">15. Regular expressions <code>&lt;uniregex.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_17.html#IDX896">rendering</a></td><td valign="top"><a href="libunistring_17.html#SEC67">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#SEC9">2. Conventions</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_16">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC36">scripts</a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.10 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX61">searching, for a character</a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX125">searching, for a character</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX141">searching, for a substring</a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#SEC53">stream, normalizing a</a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX810"><code>struct uninorm_filter</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_17">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC56">titlecasing</a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td colspan="3"> <hr></td></tr>
+<tr><th><a name="SEC77_18">U</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX206"><code>u16_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX861"><code>u16_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX873"><code>u16_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX855"><code>u16_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX869"><code>u16_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX832"><code>u16_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX835"><code>u16_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX840"><code>u16_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX843"><code>u16_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">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#SEC12">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#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX56"><code>u16_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX59"><code>u16_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX162"><code>u16_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u16_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u16_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX70"><code>u16_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.4 Elementary string functions with memory allocation</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX858"><code>u16_ct_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX849"><code>u16_ct_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX852"><code>u16_ct_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX846"><code>u16_ct_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX149"><code>u16_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX719"><code>u16_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC42">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX713"><code>u16_grapheme_next</code></a></td><td valign="top"><a href="libunistring_10.html#SEC42">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX716"><code>u16_grapheme_prev</code></a></td><td valign="top"><a href="libunistring_10.html#SEC42">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX889"><code>u16_is_cased</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX886"><code>u16_is_casefolded</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX880"><code>u16_is_lowercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX883"><code>u16_is_titlecase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX877"><code>u16_is_uppercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">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 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX67"><code>u16_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX36"><code>u16_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX33"><code>u16_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</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 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX49"><code>u16_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX80"><code>u16_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX797"><code>u16_normalize</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX800"><code>u16_normcmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX808"><code>u16_normcoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX805"><code>u16_normxfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX760"><code>u16_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">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>u16_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX52"><code>u16_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX204"><code>u16_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX146"><code>u16_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX96"><code>u16_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX102"><code>u16_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX105"><code>u16_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX127"><code>u16_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX112"><code>u16_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX116"><code>u16_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX168"><code>u16_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX174"><code>u16_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u16_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX177"><code>u16_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX93"><code>u16_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX133"><code>u16_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX123"><code>u16_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX86"><code>u16_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX73"><code>u16_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX77"><code>u16_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX108"><code>u16_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX119"><code>u16_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX99"><code>u16_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX89"><code>u16_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX139"><code>u16_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX130"><code>u16_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX136"><code>u16_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX143"><code>u16_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX152"><code>u16_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX710"><code>u16_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC40">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#SEC13">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#SEC13">4.2 Elementary string conversions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX824"><code>u16_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX827"><code>u16_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX821"><code>u16_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX214"><code>u16_u16_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u16_u16_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u16_u16_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u16_u16_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u16_u16_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX210"><code>u16_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX707"><code>u16_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC40">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX764"><code>u16_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX737"><code>u16_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC45">11.1 Word breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX222"><code>u32_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX862"><code>u32_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX874"><code>u32_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX856"><code>u32_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX870"><code>u32_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX833"><code>u32_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX836"><code>u32_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX841"><code>u32_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX844"><code>u32_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">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#SEC12">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#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX57"><code>u32_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX60"><code>u32_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX163"><code>u32_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u32_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX47"><code>u32_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX71"><code>u32_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.4 Elementary string functions with memory allocation</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX859"><code>u32_ct_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX850"><code>u32_ct_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX853"><code>u32_ct_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX847"><code>u32_ct_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX150"><code>u32_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX720"><code>u32_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC42">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX714"><code>u32_grapheme_next</code></a></td><td valign="top"><a href="libunistring_10.html#SEC42">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX717"><code>u32_grapheme_prev</code></a></td><td valign="top"><a href="libunistring_10.html#SEC42">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX890"><code>u32_is_cased</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX887"><code>u32_is_casefolded</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX881"><code>u32_is_lowercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX884"><code>u32_is_titlecase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX878"><code>u32_is_uppercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">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 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX68"><code>u32_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX37"><code>u32_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX34"><code>u32_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</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 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX50"><code>u32_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX81"><code>u32_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX798"><code>u32_normalize</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX801"><code>u32_normcmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX809"><code>u32_normcoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX806"><code>u32_normxfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX761"><code>u32_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX84"><code>u32_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX53"><code>u32_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX220"><code>u32_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX147"><code>u32_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX97"><code>u32_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX103"><code>u32_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX106"><code>u32_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX128"><code>u32_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX113"><code>u32_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX117"><code>u32_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX169"><code>u32_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX175"><code>u32_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u32_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX178"><code>u32_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX94"><code>u32_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX134"><code>u32_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX124"><code>u32_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX87"><code>u32_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX74"><code>u32_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX78"><code>u32_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX109"><code>u32_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX120"><code>u32_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX100"><code>u32_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX90"><code>u32_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX140"><code>u32_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX131"><code>u32_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX137"><code>u32_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX144"><code>u32_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX153"><code>u32_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX711"><code>u32_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC40">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#SEC13">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#SEC13">4.2 Elementary string conversions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX825"><code>u32_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX828"><code>u32_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX822"><code>u32_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX230"><code>u32_u32_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX234"><code>u32_u32_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX233"><code>u32_u32_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX232"><code>u32_u32_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u32_u32_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX226"><code>u32_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX708"><code>u32_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC40">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX765"><code>u32_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX738"><code>u32_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC45">11.1 Word breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX190"><code>u8_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX860"><code>u8_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX872"><code>u8_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX854"><code>u8_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX868"><code>u8_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX831"><code>u8_casing_prefix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX834"><code>u8_casing_prefixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX839"><code>u8_casing_suffix_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX842"><code>u8_casing_suffixes_context</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">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#SEC12">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#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX55"><code>u8_cmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX58"><code>u8_cmp2</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX161"><code>u8_conv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u8_conv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u8_cpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX69"><code>u8_cpy_alloc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC15">4.4 Elementary string functions with memory allocation</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX857"><code>u8_ct_casefold</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX848"><code>u8_ct_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX851"><code>u8_ct_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX845"><code>u8_ct_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX148"><code>u8_endswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX718"><code>u8_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC42">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX712"><code>u8_grapheme_next</code></a></td><td valign="top"><a href="libunistring_10.html#SEC42">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX715"><code>u8_grapheme_prev</code></a></td><td valign="top"><a href="libunistring_10.html#SEC42">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX888"><code>u8_is_cased</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX885"><code>u8_is_casefolded</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX879"><code>u8_is_lowercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX882"><code>u8_is_titlecase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">14.5 Case detection</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX876"><code>u8_is_uppercase</code></a></td><td valign="top"><a href="libunistring_14.html#SEC59">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 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX66"><code>u8_mbsnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX35"><code>u8_mbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX32"><code>u8_mbtouc_unsafe</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</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 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX48"><code>u8_move</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX79"><code>u8_next</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX796"><code>u8_normalize</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX799"><code>u8_normcmp</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX807"><code>u8_normcoll</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX804"><code>u8_normxfrm</code></a></td><td valign="top"><a href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX759"><code>u8_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">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>u8_prev</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX51"><code>u8_set</code></a></td><td valign="top"><a href="libunistring_4.html#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX188"><code>u8_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX145"><code>u8_startswith</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX95"><code>u8_stpcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX101"><code>u8_stpncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX104"><code>u8_strcat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX126"><code>u8_strchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX111"><code>u8_strcmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX115"><code>u8_strcoll</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_5.html#IDX167"><code>u8_strconv_from_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u8_strconv_from_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u8_strconv_to_encoding</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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#IDX176"><code>u8_strconv_to_locale</code></a></td><td valign="top"><a href="libunistring_5.html#SEC17">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>u8_strcpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX132"><code>u8_strcspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX122"><code>u8_strdup</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX85"><code>u8_strlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX72"><code>u8_strmblen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX76"><code>u8_strmbtouc</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX107"><code>u8_strncat</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX118"><code>u8_strncmp</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX98"><code>u8_strncpy</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX88"><code>u8_strnlen</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX138"><code>u8_strpbrk</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX129"><code>u8_strrchr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX135"><code>u8_strspn</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX142"><code>u8_strstr</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#IDX151"><code>u8_strtok</code></a></td><td valign="top"><a href="libunistring_4.html#SEC16">4.5 Elementary string functions on NUL terminated strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX709"><code>u8_strwidth</code></a></td><td valign="top"><a href="libunistring_9.html#SEC40">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#SEC13">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#SEC13">4.2 Elementary string conversions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX823"><code>u8_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX826"><code>u8_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX820"><code>u8_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX198"><code>u8_u8_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u8_u8_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u8_u8_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u8_u8_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>u8_u8_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#SEC14">4.3 Elementary string functions</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX194"><code>u8_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX706"><code>u8_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC40">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX763"><code>u8_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX736"><code>u8_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC45">11.1 Word breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX678"><code>uc_all_blocks</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.11 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX673"><code>uc_all_scripts</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.10 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX414"><code>uc_bidi_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX412"><code>uc_bidi_category_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX409"><code>uc_bidi_category_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX413"><code>uc_bidi_class</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX411"><code>uc_bidi_class_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX410"><code>uc_bidi_class_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX408"><code>uc_bidi_class_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX676"><code>uc_block</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.11 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX674"><code>uc_block_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.11 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX686"><code>uc_c_ident_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.12 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX786"><code>uc_canonical_decomposition</code></a></td><td valign="top"><a href="libunistring_13.html#SEC49">13.1 Decomposition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX388"><code>uc_combining_class</code></a></td><td valign="top"><a href="libunistring_8.html#SEC24">8.2 Canonical combining class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX387"><code>uc_combining_class_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC24">8.2 Canonical combining class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX386"><code>uc_combining_class_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC24">8.2 Canonical combining class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX385"><code>uc_combining_class_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC24">8.2 Canonical combining class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX787"><code>uc_composition</code></a></td><td valign="top"><a href="libunistring_13.html#SEC50">13.2 Composition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX417"><code>uc_decimal_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC26">8.4 Decimal digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX785"><code>uc_decomposition</code></a></td><td valign="top"><a href="libunistring_13.html#SEC49">13.1 Decomposition of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX418"><code>uc_digit_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC27">8.5 Digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX419"><code>uc_fraction_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC28">8.6 Numeric value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX324"><code>uc_general_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX319"><code>uc_general_category_and</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX320"><code>uc_general_category_and_not</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX323"><code>uc_general_category_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX322"><code>uc_general_category_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX321"><code>uc_general_category_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">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_or</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX241"><code>uc_general_category_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX734"><code>uc_graphemeclusterbreak_property</code></a></td><td valign="top"><a href="libunistring_10.html#SEC43">10.2 Grapheme cluster break property</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX689"><code>uc_is_alnum</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX690"><code>uc_is_alpha</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX416"><code>uc_is_bidi_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX415"><code>uc_is_bidi_class</code></a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX700"><code>uc_is_blank</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX677"><code>uc_is_block</code></a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.11 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX679"><code>uc_is_c_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.12 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX691"><code>uc_is_cntrl</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX692"><code>uc_is_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX325"><code>uc_is_general_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC22">8.1.1 The object oriented API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX364"><code>uc_is_general_category_withtable</code></a></td><td valign="top"><a href="libunistring_8.html#SEC23">8.1.2 The bit mask API for general category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX693"><code>uc_is_graph</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_10.html#IDX735"><code>uc_is_grapheme_break</code></a></td><td valign="top"><a href="libunistring_10.html#SEC43">10.2 Grapheme cluster break property</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX680"><code>uc_is_java_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.12 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX694"><code>uc_is_lower</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX695"><code>uc_is_print</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX581"><code>uc_is_property</code></a></td><td valign="top"><a href="libunistring_8.html#SEC34">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#IDX583"><code>uc_is_property_alphabetic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_ascii_hex_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX626"><code>uc_is_property_bidi_arabic_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX622"><code>uc_is_property_bidi_arabic_right_to_left</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX628"><code>uc_is_property_bidi_block_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_bidi_boundary_neutral</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX627"><code>uc_is_property_bidi_common_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX619"><code>uc_is_property_bidi_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_bidi_embedding_or_override</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX624"><code>uc_is_property_bidi_eur_num_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX625"><code>uc_is_property_bidi_eur_num_terminator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX623"><code>uc_is_property_bidi_european_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX621"><code>uc_is_property_bidi_hebrew_right_to_left</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX620"><code>uc_is_property_bidi_left_to_right</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX631"><code>uc_is_property_bidi_non_spacing_mark</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_bidi_other_neutral</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX633"><code>uc_is_property_bidi_pdf</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX629"><code>uc_is_property_bidi_segment_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX630"><code>uc_is_property_bidi_whitespace</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX599"><code>uc_is_property_case_ignorable</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX598"><code>uc_is_property_cased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX603"><code>uc_is_property_changes_when_casefolded</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX604"><code>uc_is_property_changes_when_casemapped</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX600"><code>uc_is_property_changes_when_lowercased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX602"><code>uc_is_property_changes_when_titlecased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX601"><code>uc_is_property_changes_when_uppercased</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_combining</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_composite</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_currency_symbol</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_dash</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_decimal_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX586"><code>uc_is_property_default_ignorable_code_point</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX588"><code>uc_is_property_deprecated</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_diacritic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_extender</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_format_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX615"><code>uc_is_property_grapheme_base</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX616"><code>uc_is_property_grapheme_extend</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX618"><code>uc_is_property_grapheme_link</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_hex_digit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_hyphen</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX608"><code>uc_is_property_id_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX606"><code>uc_is_property_id_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_ideographic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_ids_binary_operator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_ids_trinary_operator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_ignorable_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_iso_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX614"><code>uc_is_property_join_control</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_left_of_pair</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_line_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX589"><code>uc_is_property_logical_order_exception</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX595"><code>uc_is_property_lowercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_math</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_non_break</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX585"><code>uc_is_property_not_a_character</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_numeric</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX584"><code>uc_is_property_other_alphabetic</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX587"><code>uc_is_property_other_default_ignorable_code_point</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX617"><code>uc_is_property_other_grapheme_extend</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX609"><code>uc_is_property_other_id_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX607"><code>uc_is_property_other_id_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX596"><code>uc_is_property_other_lowercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_other_math</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX594"><code>uc_is_property_other_uppercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_paired_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_paragraph_separator</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX613"><code>uc_is_property_pattern_syntax</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX612"><code>uc_is_property_pattern_white_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX591"><code>uc_is_property_private_use</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_quotation_mark</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_radical</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_sentence_terminal</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX605"><code>uc_is_property_soft_dotted</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_terminal_punctuation</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX597"><code>uc_is_property_titlecase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX592"><code>uc_is_property_unassigned_code_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_unified_ideograph</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX593"><code>uc_is_property_uppercase</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX590"><code>uc_is_property_variation_selector</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX582"><code>uc_is_property_white_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX611"><code>uc_is_property_xid_continue</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX610"><code>uc_is_property_xid_start</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_zero_width</code></a></td><td valign="top"><a href="libunistring_8.html#SEC35">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_punct</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX672"><code>uc_is_script</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.10 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX697"><code>uc_is_space</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX698"><code>uc_is_upper</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX699"><code>uc_is_xdigit</code></a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX688"><code>uc_java_ident_category</code></a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.12 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX491"><code>uc_joining_group</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Joining group of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX490"><code>uc_joining_group_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Joining group of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX489"><code>uc_joining_group_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC32">8.8.2 Joining group of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX431"><code>uc_joining_type</code></a></td><td valign="top"><a href="libunistring_8.html#SEC31">8.8.1 Joining type of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX430"><code>uc_joining_type_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC31">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_long_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC31">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_name</code></a></td><td valign="top"><a href="libunistring_8.html#SEC31">8.8.1 Joining type of Arabic characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX819"><code>uc_locale_language</code></a></td><td valign="top"><a href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX421"><code>uc_mirror_char</code></a></td><td valign="top"><a href="libunistring_8.html#SEC29">8.7 Mirrored character</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX420"><code>uc_numeric_value</code></a></td><td valign="top"><a href="libunistring_8.html#SEC28">8.6 Numeric value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX579"><code>uc_property_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC34">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#IDX580"><code>uc_property_is_valid</code></a></td><td valign="top"><a href="libunistring_8.html#SEC34">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#IDX492"><code>uc_property_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC34">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#IDX670"><code>uc_script</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.10 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX671"><code>uc_script_byname</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.10 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX668"><code>uc_script_t</code></a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.10 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX816"><code>uc_tolower</code></a></td><td valign="top"><a href="libunistring_14.html#SEC55">14.1 Case mappings of characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX817"><code>uc_totitle</code></a></td><td valign="top"><a href="libunistring_14.html#SEC55">14.1 Case mappings of characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX815"><code>uc_toupper</code></a></td><td valign="top"><a href="libunistring_14.html#SEC55">14.1 Case mappings of characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX705"><code>uc_width</code></a></td><td valign="top"><a href="libunistring_9.html#SEC40">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX753"><code>uc_wordbreak_property</code></a></td><td valign="top"><a href="libunistring_11.html#SEC46">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#SEC10">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#SEC10">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#SEC10">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#SEC10">3. Elementary types <code>&lt;unitypes.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX182"><code>ulc_asnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_asprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX863"><code>ulc_casecmp</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX875"><code>ulc_casecoll</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#IDX871"><code>ulc_casexfrm</code></a></td><td valign="top"><a href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX235"><code>ulc_fprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX721"><code>ulc_grapheme_breaks</code></a></td><td valign="top"><a href="libunistring_10.html#SEC42">10.1 Grapheme cluster breaks in a string</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_12.html#IDX762"><code>ulc_possible_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_6.html#IDX180"><code>ulc_snprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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_sprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>ulc_vasnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>ulc_vasprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX236"><code>ulc_vfprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>ulc_vsnprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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>ulc_vsprintf</code></a></td><td valign="top"><a href="libunistring_6.html#SEC18">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#IDX766"><code>ulc_width_linebreaks</code></a></td><td valign="top"><a href="libunistring_12.html#SEC47">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#IDX739"><code>ulc_wordbreaks</code></a></td><td valign="top"><a href="libunistring_11.html#SEC45">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#SEC25">Unicode character, bidi class</a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC25">Unicode character, bidirectional category</a></td><td valign="top"><a href="libunistring_8.html#SEC25">8.3 Bidi class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX675">Unicode character, block</a></td><td valign="top"><a href="libunistring_8.html#SEC37">8.11 Blocks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC24">Unicode character, canonical combining class</a></td><td valign="top"><a href="libunistring_8.html#SEC24">8.2 Canonical combining class</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC55">Unicode character, case mappings</a></td><td valign="top"><a href="libunistring_14.html#SEC55">14.1 Case mappings of characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC21">Unicode character, classification</a></td><td valign="top"><a href="libunistring_8.html#SEC21">8.1 General category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC39">Unicode character, classification like in C</a></td><td valign="top"><a href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC21">Unicode character, general category</a></td><td valign="top"><a href="libunistring_8.html#SEC21">8.1 General category</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC29">Unicode character, mirroring</a></td><td valign="top"><a href="libunistring_8.html#SEC29">8.7 Mirrored character</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_7.html#SEC19">Unicode character, name</a></td><td valign="top"><a href="libunistring_7.html#SEC19">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#SEC33">Unicode character, properties</a></td><td valign="top"><a href="libunistring_8.html#SEC33">8.9 Properties</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX669">Unicode character, script</a></td><td valign="top"><a href="libunistring_8.html#SEC36">8.10 Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX685">Unicode character, validity in C identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.12 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#IDX687">Unicode character, validity in Java identifiers</a></td><td valign="top"><a href="libunistring_8.html#SEC38">8.12 ISO C and Java syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC26">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC26">8.4 Decimal digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC27">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC27">8.5 Digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC28">Unicode character, value</a></td><td valign="top"><a href="libunistring_8.html#SEC28">8.6 Numeric value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#IDX702">Unicode character, width</a></td><td valign="top"><a href="libunistring_9.html#SEC40">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_7.html#IDX238"><code>unicode_character_name</code></a></td><td valign="top"><a href="libunistring_7.html#SEC19">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#IDX239"><code>unicode_name_character</code></a></td><td valign="top"><a href="libunistring_7.html#SEC19">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#IDX795"><code>uninorm_decomposing_form</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX811"><code>uninorm_filter_create</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX813"><code>uninorm_filter_flush</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX814"><code>uninorm_filter_free</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX812"><code>uninorm_filter_write</code></a></td><td valign="top"><a href="libunistring_13.html#SEC53">13.5 Normalization of streams of Unicode characters</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX793"><code>uninorm_is_compat_decomposing</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX794"><code>uninorm_is_composing</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_13.html#IDX788"><code>uninorm_t</code></a></td><td valign="top"><a href="libunistring_13.html#SEC51">13.3 Normalization of strings</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_14.html#SEC56">uppercasing</a></td><td valign="top"><a href="libunistring_14.html#SEC56">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#SEC8">1.7 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#SEC8">1.7 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#SEC8">1.7 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_18.html#SEC71_0" class="summary-letter"><b>A</b></a>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a href="#SEC77_0" class="summary-letter"><b>A</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_1" class="summary-letter"><b>B</b></a>
+<a href="#SEC77_1" class="summary-letter"><b>B</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_2" class="summary-letter"><b>C</b></a>
+<a href="#SEC77_2" class="summary-letter"><b>C</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_3" class="summary-letter"><b>D</b></a>
+<a href="#SEC77_3" class="summary-letter"><b>D</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_4" class="summary-letter"><b>E</b></a>
+<a href="#SEC77_4" class="summary-letter"><b>E</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_5" class="summary-letter"><b>F</b></a>
+<a href="#SEC77_5" class="summary-letter"><b>F</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_6" class="summary-letter"><b>G</b></a>
+<a href="#SEC77_6" class="summary-letter"><b>G</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_7" class="summary-letter"><b>H</b></a>
+<a href="#SEC77_7" class="summary-letter"><b>H</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_8" class="summary-letter"><b>I</b></a>
+<a href="#SEC77_8" class="summary-letter"><b>I</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_9" class="summary-letter"><b>J</b></a>
+<a href="#SEC77_9" class="summary-letter"><b>J</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_10" class="summary-letter"><b>L</b></a>
+<a href="#SEC77_10" class="summary-letter"><b>L</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_11" class="summary-letter"><b>M</b></a>
+<a href="#SEC77_11" class="summary-letter"><b>M</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_12" class="summary-letter"><b>N</b></a>
+<a href="#SEC77_12" class="summary-letter"><b>N</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_13" class="summary-letter"><b>O</b></a>
+<a href="#SEC77_13" class="summary-letter"><b>O</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_14" class="summary-letter"><b>P</b></a>
+<a href="#SEC77_14" class="summary-letter"><b>P</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_15" class="summary-letter"><b>R</b></a>
+<a href="#SEC77_15" class="summary-letter"><b>R</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_16" class="summary-letter"><b>S</b></a>
+<a href="#SEC77_16" class="summary-letter"><b>S</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_17" class="summary-letter"><b>T</b></a>
+<a href="#SEC77_17" class="summary-letter"><b>T</b></a>
  &nbsp; 
-<a href="libunistring_18.html#SEC71_18" class="summary-letter"><b>U</b></a>
+<a href="#SEC77_18" class="summary-letter"><b>U</b></a>
  &nbsp; 
-<a href="#INDEX0_0" class="summary-letter"><b>V</b></a>
+<a href="libunistring_20.html#INDEX0_0" class="summary-letter"><b>V</b></a>
  &nbsp; 
-<a href="#INDEX0_1" class="summary-letter"><b>W</b></a>
+<a href="libunistring_20.html#INDEX0_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_18.html#SEC71" 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_18.html#SEC68" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_20.html#INDEX0" 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>
@@ -174,12 +802,12 @@ ul.toc {list-style: none}
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index f90fd55..60ef10c 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
 </tr></table>
 
@@ -127,12 +127,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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
diff --git a/doc/libunistring_20.html b/doc/libunistring_20.html
new file mode 100644 (file)
index 0000000..55b693e
--- /dev/null
@@ -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 September, 1 2014 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_19.html#SEC77" 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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_19.html#SEC77_0" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_1" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_2" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_3" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_4" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_5" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_6" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_7" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_8" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_9" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_10" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_11" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_12" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_13" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_14" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_15" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_16" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_17" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_18" class="summary-letter"><b>U</b></a>
+ &nbsp; 
+<a href="#INDEX0_0" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#INDEX0_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#SEC12">validity</a></td><td valign="top"><a href="libunistring_4.html#SEC12">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#SEC26">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC26">8.4 Decimal digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC27">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC27">8.5 Digit value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_8.html#SEC28">value, of Unicode character</a></td><td valign="top"><a href="libunistring_8.html#SEC28">8.6 Numeric value</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC12">verification</a></td><td valign="top"><a href="libunistring_4.html#SEC12">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_1.html#SEC7">wchar_t, type</a></td><td valign="top"><a href="libunistring_1.html#SEC7">1.6 The <code>wchar_t</code> mess</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_4.html#SEC12">well-formed</a></td><td valign="top"><a href="libunistring_4.html#SEC12">4.1 Elementary string checks</a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_9.html#SEC40">width</a></td><td valign="top"><a href="libunistring_9.html#SEC40">9. Display width <code>&lt;uniwidth.h&gt;</code></a></td></tr>
+<tr><td></td><td valign="top"><a href="libunistring_11.html#SEC44">word boundaries</a></td><td valign="top"><a href="libunistring_11.html#SEC44">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#SEC44">word breaks</a></td><td valign="top"><a href="libunistring_11.html#SEC44">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#SEC47">wrapping</a></td><td valign="top"><a href="libunistring_12.html#SEC47">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_19.html#SEC77_0" class="summary-letter"><b>A</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_1" class="summary-letter"><b>B</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_2" class="summary-letter"><b>C</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_3" class="summary-letter"><b>D</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_4" class="summary-letter"><b>E</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_5" class="summary-letter"><b>F</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_6" class="summary-letter"><b>G</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_7" class="summary-letter"><b>H</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_8" class="summary-letter"><b>I</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_9" class="summary-letter"><b>J</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_10" class="summary-letter"><b>L</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_11" class="summary-letter"><b>M</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_12" class="summary-letter"><b>N</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_13" class="summary-letter"><b>O</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_14" class="summary-letter"><b>P</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_15" class="summary-letter"><b>R</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_16" class="summary-letter"><b>S</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_17" class="summary-letter"><b>T</b></a>
+ &nbsp; 
+<a href="libunistring_19.html#SEC77_18" class="summary-letter"><b>U</b></a>
+ &nbsp; 
+<a href="#INDEX0_0" class="summary-letter"><b>V</b></a>
+ &nbsp; 
+<a href="#INDEX0_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_19.html#SEC77" 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+ </font>
+ <br>
+
+</p>
+</body>
+</html>
index f86bf87..c285beb 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
 </tr></table>
 
@@ -93,12 +93,12 @@ taken from <code>&lt;stdint.h&gt;</code>, on platforms where this include file i
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index b00d3a6..27417e9 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
 </tr></table>
 
@@ -467,8 +467,10 @@ character in a Unicode string.
 <a name="IDX84"></a>
 </dt>
 <dd><p>Backward iteration step.  Advances the pointer to point to the previous
-character, or returns NULL if the beginning of the string had been reached.
+character (the one that ends at <code><var>s</var></code>), or returns NULL if the
+beginning of the string (specified by <code><var>start</var></code>) had been reached.
 Puts the character's <code>ucs4_t</code> representation in <code>*<var>puc</var></code>.
+Note that this function works only on well-formed Unicode strings.
 </p></dd></dl>
 
 <p>The following functions determine the length of a Unicode string.
@@ -652,7 +654,7 @@ 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_12.html#SEC42">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#SEC48">Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a>.
 </p></dd></dl>
 
 <dl>
@@ -853,12 +855,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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 313b063..d3cc15d 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
 </tr></table>
 
@@ -282,12 +282,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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 2ec4ddb..e24ed22 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
 </tr></table>
 
@@ -437,12 +437,12 @@ locale encoding to a <code>FILE</code> stream.
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index c1ac3eb..b365977 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
 </tr></table>
 
@@ -111,12 +111,12 @@ ASCII.  Returns the character if found, or <code>UNINAME_INVALID</code> if not f
 <td valign="middle" align="left"> &nbsp; </td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index b288712..a1dc4fe 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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#SEC19" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_9.html#SEC37" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_9.html#SEC40" 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" title="Index">Index</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
 </tr></table>
 
@@ -113,359 +113,369 @@ categories may be added in the future.
 <dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_L</b>
 <a name="IDX242"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lu</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_LC</b>
 <a name="IDX243"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Ll</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lu</b>
 <a name="IDX244"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lt</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Ll</b>
 <a name="IDX245"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lm</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lt</b>
 <a name="IDX246"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lo</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lm</b>
 <a name="IDX247"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_M</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Lo</b>
 <a name="IDX248"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Mn</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_M</b>
 <a name="IDX249"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Mc</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Mn</b>
 <a name="IDX250"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Me</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Mc</b>
 <a name="IDX251"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_N</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Me</b>
 <a name="IDX252"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Nd</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_N</b>
 <a name="IDX253"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Nl</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Nd</b>
 <a name="IDX254"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_No</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Nl</b>
 <a name="IDX255"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_P</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_No</b>
 <a name="IDX256"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pc</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_P</b>
 <a name="IDX257"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pd</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pc</b>
 <a name="IDX258"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Ps</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pd</b>
 <a name="IDX259"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pe</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Ps</b>
 <a name="IDX260"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pi</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pe</b>
 <a name="IDX261"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pf</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pi</b>
 <a name="IDX262"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Po</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Pf</b>
 <a name="IDX263"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_S</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Po</b>
 <a name="IDX264"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Sm</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_S</b>
 <a name="IDX265"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Sc</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Sm</b>
 <a name="IDX266"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Sk</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Sc</b>
 <a name="IDX267"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_So</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Sk</b>
 <a name="IDX268"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Z</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_So</b>
 <a name="IDX269"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Zs</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Z</b>
 <a name="IDX270"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Zl</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Zs</b>
 <a name="IDX271"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Zp</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Zl</b>
 <a name="IDX272"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_C</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Zp</b>
 <a name="IDX273"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cc</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_C</b>
 <a name="IDX274"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cf</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cc</b>
 <a name="IDX275"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cs</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cf</b>
 <a name="IDX276"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Co</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cs</b>
 <a name="IDX277"></a>
 </dt>
-<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cn</b>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Co</b>
 <a name="IDX278"></a>
 </dt>
+<dt><u>Constant:</u> uc_general_category_t <b>UC_CATEGORY_Cn</b>
+<a name="IDX279"></a>
+</dt>
 </dl>
 
 <p>The following are alias names for predefined General category values.
 </p>
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_LETTER</b>
-<a name="IDX279"></a>
+<a name="IDX280"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_L</code>.
 </p></dd></dl>
 
 <dl>
+<dt><u>Macro:</u> uc_general_category_t <b>UC_CASED_LETTER</b>
+<a name="IDX281"></a>
+</dt>
+<dd><p>This is another name for <code>UC_CATEGORY_LC</code>.
+</p></dd></dl>
+
+<dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_UPPERCASE_LETTER</b>
-<a name="IDX280"></a>
+<a name="IDX282"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Lu</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_LOWERCASE_LETTER</b>
-<a name="IDX281"></a>
+<a name="IDX283"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Ll</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_TITLECASE_LETTER</b>
-<a name="IDX282"></a>
+<a name="IDX284"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Lt</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_MODIFIER_LETTER</b>
-<a name="IDX283"></a>
+<a name="IDX285"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Lm</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_OTHER_LETTER</b>
-<a name="IDX284"></a>
+<a name="IDX286"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Lo</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_MARK</b>
-<a name="IDX285"></a>
+<a name="IDX287"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_M</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_NON_SPACING_MARK</b>
-<a name="IDX286"></a>
+<a name="IDX288"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Mn</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_COMBINING_SPACING_MARK</b>
-<a name="IDX287"></a>
+<a name="IDX289"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Mc</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_ENCLOSING_MARK</b>
-<a name="IDX288"></a>
+<a name="IDX290"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Me</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_NUMBER</b>
-<a name="IDX289"></a>
+<a name="IDX291"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_N</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_DECIMAL_DIGIT_NUMBER</b>
-<a name="IDX290"></a>
+<a name="IDX292"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Nd</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_LETTER_NUMBER</b>
-<a name="IDX291"></a>
+<a name="IDX293"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Nl</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_OTHER_NUMBER</b>
-<a name="IDX292"></a>
+<a name="IDX294"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_No</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_PUNCTUATION</b>
-<a name="IDX293"></a>
+<a name="IDX295"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_P</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_CONNECTOR_PUNCTUATION</b>
-<a name="IDX294"></a>
+<a name="IDX296"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Pc</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_DASH_PUNCTUATION</b>
-<a name="IDX295"></a>
+<a name="IDX297"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Pd</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_OPEN_PUNCTUATION</b>
-<a name="IDX296"></a>
+<a name="IDX298"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Ps</code> (&ldquo;start punctuation&rdquo;).
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_CLOSE_PUNCTUATION</b>
-<a name="IDX297"></a>
+<a name="IDX299"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Pe</code> (&ldquo;end punctuation&rdquo;).
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_INITIAL_QUOTE_PUNCTUATION</b>
-<a name="IDX298"></a>
+<a name="IDX300"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Pi</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_FINAL_QUOTE_PUNCTUATION</b>
-<a name="IDX299"></a>
+<a name="IDX301"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Pf</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_OTHER_PUNCTUATION</b>
-<a name="IDX300"></a>
+<a name="IDX302"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Po</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_SYMBOL</b>
-<a name="IDX301"></a>
+<a name="IDX303"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_S</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_MATH_SYMBOL</b>
-<a name="IDX302"></a>
+<a name="IDX304"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Sm</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_CURRENCY_SYMBOL</b>
-<a name="IDX303"></a>
+<a name="IDX305"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Sc</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_MODIFIER_SYMBOL</b>
-<a name="IDX304"></a>
+<a name="IDX306"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Sk</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_OTHER_SYMBOL</b>
-<a name="IDX305"></a>
+<a name="IDX307"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_So</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_SEPARATOR</b>
-<a name="IDX306"></a>
+<a name="IDX308"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Z</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_SPACE_SEPARATOR</b>
-<a name="IDX307"></a>
+<a name="IDX309"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Zs</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_LINE_SEPARATOR</b>
-<a name="IDX308"></a>
+<a name="IDX310"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Zl</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_PARAGRAPH_SEPARATOR</b>
-<a name="IDX309"></a>
+<a name="IDX311"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Zp</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_OTHER</b>
-<a name="IDX310"></a>
+<a name="IDX312"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_C</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_CONTROL</b>
-<a name="IDX311"></a>
+<a name="IDX313"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Cc</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_FORMAT</b>
-<a name="IDX312"></a>
+<a name="IDX314"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Cf</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_SURROGATE</b>
-<a name="IDX313"></a>
+<a name="IDX315"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Cs</code>.  All code points in this
 category are invalid characters.
@@ -473,14 +483,14 @@ category are invalid characters.
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_PRIVATE_USE</b>
-<a name="IDX314"></a>
+<a name="IDX316"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Co</code>.
 </p></dd></dl>
 
 <dl>
 <dt><u>Macro:</u> uc_general_category_t <b>UC_UNASSIGNED</b>
-<a name="IDX315"></a>
+<a name="IDX317"></a>
 </dt>
 <dd><p>This is another name for <code>UC_CATEGORY_Cn</code>.  Some code points in this
 category are invalid characters.
@@ -491,7 +501,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 <var>category1</var>, uc_general_category_t <var>category2</var>)</i>
-<a name="IDX316"></a>
+<a name="IDX318"></a>
 </dt>
 <dd><p>Returns the union of two general categories.
 This corresponds to the unions of the two sets of characters.
@@ -499,7 +509,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 <var>category1</var>, uc_general_category_t <var>category2</var>)</i>
-<a name="IDX317"></a>
+<a name="IDX319"></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
@@ -508,7 +518,7 @@ characters.
 
 <dl>
 <dt><u>Function:</u> uc_general_category_t <b>uc_general_category_and_not</b><i> (uc_general_category_t <var>category1</var>, uc_general_category_t <var>category2</var>)</i>
-<a name="IDX318"></a>
+<a name="IDX320"></a>
 </dt>
 <dd><p>Returns the intersection of a general category with the complement of a
 second general category, as bit masks.
@@ -520,25 +530,37 @@ 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 <var>category</var>)</i>
-<a name="IDX319"></a>
+<a name="IDX321"></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
+have a name.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> const char * <b>uc_general_category_long_name</b><i> (uc_general_category_t <var>category</var>)</i>
+<a name="IDX322"></a>
 </dt>
-<dd><p>Returns the name of a general category.
+<dd><p>Returns the long name of a general category.
 Returns NULL if the general category corresponds to a bit mask that does not
 have a name.
 </p></dd></dl>
 
 <dl>
 <dt><u>Function:</u> uc_general_category_t <b>uc_general_category_byname</b><i> (const char *<var>category_name</var>)</i>
-<a name="IDX320"></a>
+<a name="IDX323"></a>
 </dt>
-<dd><p>Returns the general category given by name, e.g. <code>&quot;Lu&quot;</code>.
+<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>.
+This lookup ignores spaces, underscores, or hyphens as word separators and is
+case-insignificant.
 </p></dd></dl>
 
 <p>The following functions view general categories as sets of Unicode characters.
 </p>
 <dl>
 <dt><u>Function:</u> uc_general_category_t <b>uc_general_category</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX321"></a>
+<a name="IDX324"></a>
 </dt>
 <dd><p>Returns the general category of a Unicode character.
 </p>
@@ -547,7 +569,7 @@ have a name.
 
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_general_category</b><i> (ucs4_t <var>uc</var>, uc_general_category_t <var>category</var>)</i>
-<a name="IDX322"></a>
+<a name="IDX325"></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
@@ -564,115 +586,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="IDX323"></a>
+<a name="IDX326"></a>
+</dt>
+<dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_LC</b>
+<a name="IDX327"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Lu</b>
-<a name="IDX324"></a>
+<a name="IDX328"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Ll</b>
-<a name="IDX325"></a>
+<a name="IDX329"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Lt</b>
-<a name="IDX326"></a>
+<a name="IDX330"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Lm</b>
-<a name="IDX327"></a>
+<a name="IDX331"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Lo</b>
-<a name="IDX328"></a>
+<a name="IDX332"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_M</b>
-<a name="IDX329"></a>
+<a name="IDX333"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Mn</b>
-<a name="IDX330"></a>
+<a name="IDX334"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Mc</b>
-<a name="IDX331"></a>
+<a name="IDX335"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Me</b>
-<a name="IDX332"></a>
+<a name="IDX336"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_N</b>
-<a name="IDX333"></a>
+<a name="IDX337"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Nd</b>
-<a name="IDX334"></a>
+<a name="IDX338"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Nl</b>
-<a name="IDX335"></a>
+<a name="IDX339"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_No</b>
-<a name="IDX336"></a>
+<a name="IDX340"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_P</b>
-<a name="IDX337"></a>
+<a name="IDX341"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Pc</b>
-<a name="IDX338"></a>
+<a name="IDX342"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Pd</b>
-<a name="IDX339"></a>
+<a name="IDX343"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Ps</b>
-<a name="IDX340"></a>
+<a name="IDX344"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Pe</b>
-<a name="IDX341"></a>
+<a name="IDX345"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Pi</b>
-<a name="IDX342"></a>
+<a name="IDX346"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Pf</b>
-<a name="IDX343"></a>
+<a name="IDX347"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Po</b>
-<a name="IDX344"></a>
+<a name="IDX348"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_S</b>
-<a name="IDX345"></a>
+<a name="IDX349"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Sm</b>
-<a name="IDX346"></a>
+<a name="IDX350"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Sc</b>
-<a name="IDX347"></a>
+<a name="IDX351"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Sk</b>
-<a name="IDX348"></a>
+<a name="IDX352"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_So</b>
-<a name="IDX349"></a>
+<a name="IDX353"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Z</b>
-<a name="IDX350"></a>
+<a name="IDX354"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Zs</b>
-<a name="IDX351"></a>
+<a name="IDX355"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Zl</b>
-<a name="IDX352"></a>
+<a name="IDX356"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Zp</b>
-<a name="IDX353"></a>
+<a name="IDX357"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_C</b>
-<a name="IDX354"></a>
+<a name="IDX358"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Cc</b>
-<a name="IDX355"></a>
+<a name="IDX359"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Cf</b>
-<a name="IDX356"></a>
+<a name="IDX360"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Cs</b>
-<a name="IDX357"></a>
+<a name="IDX361"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Co</b>
-<a name="IDX358"></a>
+<a name="IDX362"></a>
 </dt>
 <dt><u>Macro:</u> uint32_t <b>UC_CATEGORY_MASK_Cn</b>
-<a name="IDX359"></a>
+<a name="IDX363"></a>
 </dt>
 </dl>
 
@@ -680,7 +705,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 <var>uc</var>, uint32_t <var>bitmask</var>)</i>
-<a name="IDX360"></a>
+<a name="IDX364"></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
@@ -712,7 +737,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="IDX361"></a>
+<a name="IDX365"></a>
 </dt>
 <dd><p>The canonical combining class value for &ldquo;Not Reordered&rdquo; characters.
 The value is 0.
@@ -720,316 +745,376 @@ The value is 0.
 
 <dl>
 <dt><u>Constant:</u> int <b>UC_CCC_OV</b>
-<a name="IDX362"></a>
+<a name="IDX366"></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="IDX363"></a>
+<a name="IDX367"></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="IDX364"></a>
+<a name="IDX368"></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="IDX365"></a>
+<a name="IDX369"></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="IDX366"></a>
+<a name="IDX370"></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="IDX367"></a>
+<a name="IDX371"></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="IDX372"></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="IDX368"></a>
+<a name="IDX373"></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="IDX369"></a>
+<a name="IDX374"></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="IDX370"></a>
+<a name="IDX375"></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="IDX371"></a>
+<a name="IDX376"></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="IDX372"></a>
+<a name="IDX377"></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="IDX373"></a>
+<a name="IDX378"></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="IDX374"></a>
+<a name="IDX379"></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="IDX375"></a>
+<a name="IDX380"></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="IDX376"></a>
+<a name="IDX381"></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="IDX377"></a>
+<a name="IDX382"></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="IDX378"></a>
+<a name="IDX383"></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="IDX379"></a>
+<a name="IDX384"></a>
 </dt>
 <dd><p>The canonical combining class value for &ldquo;Iota Subscript&rdquo; characters.
 </p></dd></dl>
 
+<p>The following functions associate canonical combining classes with their name.
+</p>
+<dl>
+<dt><u>Function:</u> const char * <b>uc_combining_class_name</b><i> (int <var>ccc</var>)</i>
+<a name="IDX385"></a>
+</dt>
+<dd><p>Returns the name of a canonical combining class, more precisely, the
+abbreviated name.
+Returns NULL if the canonical combining class is a numeric value without a
+name.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> const char * <b>uc_combining_class_long_name</b><i> (int <var>ccc</var>)</i>
+<a name="IDX386"></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
+name.
+</p></dd></dl>
+
+<dl>
+<dt><u>Function:</u> int <b>uc_combining_class_byname</b><i> (const char *<var>ccc_name</var>)</i>
+<a name="IDX387"></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>.
+This lookup ignores spaces, underscores, or hyphens as word separators and is
+case-insignificant.
+</p></dd></dl>
+
 <p>The following function looks up the canonical combining class of a character.
 </p>
 <dl>
 <dt><u>Function:</u> int <b>uc_combining_class</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX380"></a>
+<a name="IDX388"></a>
 </dt>
 <dd><p>Returns the canonical combining class of a Unicode character.
 </p></dd></dl>
 
 <hr size="6">
-<a name="Bidirectional-category"></a>
+<a name="Bidi-class"></a>
 <a name="SEC25"></a>
-<h2 class="section"> <a href="libunistring.html#TOC25">8.3 Bidirectional category</a> </h2>
+<h2 class="section"> <a href="libunistring.html#TOC25">8.3 Bidi class</a> </h2>
 
-<p>Every Unicode character or code point has a <em>bidirectional category</em>
-assigned to it.
+<p>Every Unicode character or code point has a <em>bidi class</em> assigned to it.
+Before Unicode 4.0, this concept was known as <em>bidirectional category</em>.
 </p>
-<p>The bidirectional category guides the bidirectional algorithm
+<p>The bidi class guides the bidirectional algorithm
 (<a href="http://www.unicode.org/reports/tr9/">http://www.unicode.org/reports/tr9/</a>).  The possible values are
 the following.
 </p>
 <dl>
 <dt><u>Constant:</u> int <b>UC_BIDI_L</b>
-<a name="IDX381"></a>
+<a name="IDX389"></a>
 </dt>
-<dd><p>The bidirectional category for `Left-to-Right`&rdquo; characters.
+<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="IDX390"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Left-to-Right Embedding&rdquo; characters.
+<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="IDX391"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Left-to-Right Override&rdquo; characters.
+<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="IDX392"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Right-to-Left&rdquo; characters.
+<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="IDX393"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Right-to-Left Arabic&rdquo; characters.
+<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="IDX394"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Right-to-Left Embedding&rdquo; characters.
+<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="IDX395"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Right-to-Left Override&rdquo; characters.
+<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="IDX396"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Pop Directional Format&rdquo; characters.
+<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="IDX397"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;European Number&rdquo; characters.
+<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="IDX398"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;European Number Separator&rdquo; characters.
+<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="IDX399"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;European Number Terminator&rdquo; characters.
+<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="IDX400"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Arabic Number&rdquo; characters.
+<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="IDX401"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Common Number Separator&rdquo; characters.
+<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="IDX402"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Non-Spacing Mark&rdquo; characters.
+<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="IDX403"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Boundary Neutral&rdquo; characters.
+<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="IDX404"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Paragraph Separator&rdquo; characters.
+<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="IDX405"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Segment Separator&rdquo; characters.
+<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="IDX406"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Whitespace&rdquo; characters.
+<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="IDX407"></a>
 </dt>
-<dd><p>The bidirectional category for &ldquo;Other Neutral&rdquo; characters.
+<dd><p>The bidi class for &ldquo;Other Neutral&rdquo; characters.
 </p></dd></dl>
 
 <p>The following functions implement the association between a bidirectional
 category and its name.
 </p>
 <dl>
+<dt><u>Function:</u> const char * <b>uc_bidi_class_name</b><i> (int <var>bidi_class</var>)</i>
+<a name="IDX408"></a>
+</dt>
 <dt><u>Function:</u> const char * <b>uc_bidi_category_name</b><i> (int <var>category</var>)</i>
-<a name="IDX400"></a>
+<a name="IDX409"></a>
 </dt>
-<dd><p>Returns the name of a bidirectional category.
+<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 <var>bidi_class</var>)</i>
+<a name="IDX410"></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 char *<var>bidi_class_name</var>)</i>
+<a name="IDX411"></a>
+</dt>
 <dt><u>Function:</u> int <b>uc_bidi_category_byname</b><i> (const char *<var>category_name</var>)</i>
-<a name="IDX401"></a>
+<a name="IDX412"></a>
 </dt>
-<dd><p>Returns the bidirectional category given by name, e.g. <code>&quot;LRE&quot;</code>.
+<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>.
+This lookup ignores spaces, underscores, or hyphens as word separators and is
+case-insignificant.
 </p></dd></dl>
 
 <p>The following functions view bidirectional categories as sets of Unicode
 characters.
 </p>
 <dl>
+<dt><u>Function:</u> int <b>uc_bidi_class</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX413"></a>
+</dt>
 <dt><u>Function:</u> int <b>uc_bidi_category</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX402"></a>
+<a name="IDX414"></a>
 </dt>
-<dd><p>Returns the bidirectional category of a Unicode character.
+<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 <var>uc</var>, int <var>bidi_class</var>)</i>
+<a name="IDX415"></a>
+</dt>
 <dt><u>Function:</u> bool <b>uc_is_bidi_category</b><i> (ucs4_t <var>uc</var>, int <var>category</var>)</i>
-<a name="IDX403"></a>
+<a name="IDX416"></a>
 </dt>
-<dd><p>Tests whether a Unicode character belongs to a given bidirectional category.
+<dd><p>Tests whether a Unicode character belongs to a given bidi class.
 </p></dd></dl>
 
 <hr size="6">
@@ -1043,7 +1128,7 @@ numerical value.
 </p>
 <dl>
 <dt><u>Function:</u> int <b>uc_decimal_value</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX404"></a>
+<a name="IDX417"></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
@@ -1061,7 +1146,7 @@ digit character to its numerical value.
 </p>
 <dl>
 <dt><u>Function:</u> int <b>uc_digit_value</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX405"></a>
+<a name="IDX418"></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
@@ -1079,7 +1164,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="IDX406"></a>
+<a name="IDX419"></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;
@@ -1093,7 +1178,7 @@ int denominator;
 </p>
 <dl>
 <dt><u>Function:</u> uc_fraction_t <b>uc_numeric_value</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX407"></a>
+<a name="IDX420"></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
@@ -1113,7 +1198,7 @@ opening brace character, and so on.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_mirror_char</b><i> (ucs4_t <var>uc</var>, ucs4_t *<var>puc</var>)</i>
-<a name="IDX408"></a>
+<a name="IDX421"></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
@@ -1121,9 +1206,327 @@ stores <var>uc</var> unmodified in <code>*<var>puc</var></code> and returns <cod
 </p></dd></dl>
 
 <hr size="6">
-<a name="Properties"></a>
+<a name="Arabic-shaping"></a>
 <a name="SEC30"></a>
-<h2 class="section"> <a href="libunistring.html#TOC30">8.8 Properties</a> </h2>
+<h2 class="section"> <a href="libunistring.html#TOC30">8.8 Arabic shaping</a> </h2>
+
+<p>When Arabic characters are rendered, after bidi reordering has taken
+place, the shape of the glyphs are modified so that many adjacent glyphs
+are joined.  Two character properties describe how this &ldquo;Arabic shaping&rdquo;
+takes place: the joining type and the joining group.
+</p>
+
+<hr size="6">
+<a name="Joining-type"></a>
+<a name="SEC31"></a>
+<h3 class="subsection"> <a href="libunistring.html#TOC31">8.8.1 Joining type of Arabic characters</a> </h3>
+
+<p>The joining type of a character describes on which of the left and right
+neighbour characters the character's shape depends, and which of the two
+neighbour characters are rendered depending on this character.
+</p>
+<p>The joining type has the following possible values:
+</p>
+<dl>
+<dt><u>Constant:</u> int <b>UC_JOINING_TYPE_U</b>
+<a name="IDX422"></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="IDX423"></a>
+</dt>
+<dd><p>&ldquo;Transparent&rdquo;: Characters of this joining type are skipped when
+considering joining.
+</p></dd></dl>
+
+<dl>
+<dt><u>Constant:</u> int <b>UC_JOINING_TYPE_C</b>
+<a name="IDX424"></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.
+</p></dd></dl>
+
+<dl>
+<dt><u>Constant:</u> int <b>UC_JOINING_TYPE_L</b>
+<a name="IDX425"></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.
+</p></dd></dl>
+
+<dl>
+<dt><u>Constant:</u> int <b>UC_JOINING_TYPE_R</b>
+<a name="IDX426"></a>
+</dt>
+<dd><p>&ldquo;Right joining&rdquo;: Characters of this joining type have two shapes,
+isolated and final.
+</p></dd></dl>
+
+<dl>
+<dt><u>Constant:</u> int <b>UC_JOINING_TYPE_D</b>
+<a name="IDX427"></a>
+</dt>
+<dd><p>&ldquo;Dual joining&rdquo;: Characters of this joining type have four shapes,
+initial, medial, final, and isolated.
+</p></dd></dl>
+
+<p>The following functions implement the association between a joining type
+and its name.
+</p>
+<dl>
+<dt><u>Function:</u> const char * <b>uc_joining_type_name</b><i> (int <var>joining_type</var>)</i>
+<a name="IDX428"></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 <var>joining_type</var>)</i>
+<a name="IDX429"></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 char *<var>joining_type_name</var>)</i>
+<a name="IDX430"></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>.
+This lookup ignores spaces, underscores, or hyphens as word separators and is
+case-insignificant.
+</p></dd></dl>
+
+<p>The following function gives the joining type of every Unicode character.
+</p>
+<dl>
+<dt><u>Function:</u> int <b>uc_joining_type</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX431"></a>
+</dt>
+<dd><p>Returns the joining type of a Unicode character.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Joining-group"></a>
+<a name="SEC32"></a>
+<h3 class="subsection"> <a href="libunistring.html#TOC32">8.8.2 Joining group of Arabic characters</a> </h3>
+
+<p>The joining group of a character describes how the character's shape
+is modified in the four contexts of dual-joining characters or in the
+two contexts of right-joining characters.
+</p>
+<p>The joining group has the following possible values:
+</p>
+<dl>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_NONE</b>
+<a name="IDX432"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_AIN</b>
+<a name="IDX433"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_ALAPH</b>
+<a name="IDX434"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_ALEF</b>
+<a name="IDX435"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_BEH</b>
+<a name="IDX436"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_BETH</b>
+<a name="IDX437"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE</b>
+<a name="IDX438"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_DAL</b>
+<a name="IDX439"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_DALATH_RISH</b>
+<a name="IDX440"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_E</b>
+<a name="IDX441"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_FARSI_YEH</b>
+<a name="IDX442"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_FE</b>
+<a name="IDX443"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_FEH</b>
+<a name="IDX444"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_FINAL_SEMKATH</b>
+<a name="IDX445"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_GAF</b>
+<a name="IDX446"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_GAMAL</b>
+<a name="IDX447"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HAH</b>
+<a name="IDX448"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HE</b>
+<a name="IDX449"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HEH</b>
+<a name="IDX450"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HEH_GOAL</b>
+<a name="IDX451"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_HETH</b>
+<a name="IDX452"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_KAF</b>
+<a name="IDX453"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_KAPH</b>
+<a name="IDX454"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_KHAPH</b>
+<a name="IDX455"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_KNOTTED_HEH</b>
+<a name="IDX456"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_LAM</b>
+<a name="IDX457"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_LAMADH</b>
+<a name="IDX458"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MEEM</b>
+<a name="IDX459"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_MIM</b>
+<a name="IDX460"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_NOON</b>
+<a name="IDX461"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_NUN</b>
+<a name="IDX462"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_NYA</b>
+<a name="IDX463"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_PE</b>
+<a name="IDX464"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_QAF</b>
+<a name="IDX465"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_QAPH</b>
+<a name="IDX466"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_REH</b>
+<a name="IDX467"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_REVERSED_PE</b>
+<a name="IDX468"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SAD</b>
+<a name="IDX469"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SADHE</b>
+<a name="IDX470"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SEEN</b>
+<a name="IDX471"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SEMKATH</b>
+<a name="IDX472"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SHIN</b>
+<a name="IDX473"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SWASH_KAF</b>
+<a name="IDX474"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_SYRIAC_WAW</b>
+<a name="IDX475"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_TAH</b>
+<a name="IDX476"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_TAW</b>
+<a name="IDX477"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_TEH_MARBUTA</b>
+<a name="IDX478"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_TEH_MARBUTA_GOAL</b>
+<a name="IDX479"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_TETH</b>
+<a name="IDX480"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_WAW</b>
+<a name="IDX481"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_YEH</b>
+<a name="IDX482"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_YEH_BARREE</b>
+<a name="IDX483"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_YEH_WITH_TAIL</b>
+<a name="IDX484"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_YUDH</b>
+<a name="IDX485"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_YUDH_HE</b>
+<a name="IDX486"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_ZAIN</b>
+<a name="IDX487"></a>
+</dt>
+<dt><u>Constant:</u> int <b>UC_JOINING_GROUP_ZHAIN</b>
+<a name="IDX488"></a>
+</dt>
+</dl>
+
+<p>The following functions implement the association between a joining group
+and its name.
+</p>
+<dl>
+<dt><u>Function:</u> const char * <b>uc_joining_group_name</b><i> (int <var>joining_group</var>)</i>
+<a name="IDX489"></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 char *<var>joining_group_name</var>)</i>
+<a name="IDX490"></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
+case-insignificant.
+</p></dd></dl>
+
+<p>The following function gives the joining group of every Unicode character.
+</p>
+<dl>
+<dt><u>Function:</u> int <b>uc_joining_group</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX491"></a>
+</dt>
+<dd><p>Returns the joining group of a Unicode character.
+</p></dd></dl>
+
+<hr size="6">
+<a name="Properties"></a>
+<a name="SEC33"></a>
+<h2 class="section"> <a href="libunistring.html#TOC33">8.9 Properties</a> </h2>
 
 <p>This section defines boolean properties of Unicode characters.  This
 means, a character either has the given property or does not have it.
@@ -1138,14 +1541,14 @@ low level, a property is merely a function.
 
 <hr size="6">
 <a name="Properties-as-objects"></a>
-<a name="SEC31"></a>
-<h3 class="subsection"> <a href="libunistring.html#TOC31">8.8.1 Properties as objects &ndash; the object oriented API</a> </h3>
+<a name="SEC34"></a>
+<h3 class="subsection"> <a href="libunistring.html#TOC34">8.9.1 Properties as objects &ndash; the object oriented API</a> </h3>
 
 <p>The following type designates a property on Unicode characters.
 </p>
 <dl>
 <dt><u>Type:</u> <b>uc_property_t</b>
-<a name="IDX409"></a>
+<a name="IDX492"></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
@@ -1158,37 +1561,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="IDX410"></a>
+<a name="IDX493"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ALPHABETIC</b>
-<a name="IDX411"></a>
+<a name="IDX494"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_ALPHABETIC</b>
-<a name="IDX412"></a>
+<a name="IDX495"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_NOT_A_CHARACTER</b>
-<a name="IDX413"></a>
+<a name="IDX496"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT</b>
-<a name="IDX414"></a>
+<a name="IDX497"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT</b>
-<a name="IDX415"></a>
+<a name="IDX498"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_DEPRECATED</b>
-<a name="IDX416"></a>
+<a name="IDX499"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_LOGICAL_ORDER_EXCEPTION</b>
-<a name="IDX417"></a>
+<a name="IDX500"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_VARIATION_SELECTOR</b>
-<a name="IDX418"></a>
+<a name="IDX501"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PRIVATE_USE</b>
-<a name="IDX419"></a>
+<a name="IDX502"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_UNASSIGNED_CODE_VALUE</b>
-<a name="IDX420"></a>
+<a name="IDX503"></a>
 </dt>
 </dl>
 
@@ -1196,22 +1599,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="IDX421"></a>
+<a name="IDX504"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_UPPERCASE</b>
-<a name="IDX422"></a>
+<a name="IDX505"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_LOWERCASE</b>
-<a name="IDX423"></a>
+<a name="IDX506"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_LOWERCASE</b>
-<a name="IDX424"></a>
+<a name="IDX507"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_TITLECASE</b>
-<a name="IDX425"></a>
+<a name="IDX508"></a>
+</dt>
+<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CASED</b>
+<a name="IDX509"></a>
+</dt>
+<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CASE_IGNORABLE</b>
+<a name="IDX510"></a>
+</dt>
+<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CHANGES_WHEN_LOWERCASED</b>
+<a name="IDX511"></a>
+</dt>
+<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CHANGES_WHEN_UPPERCASED</b>
+<a name="IDX512"></a>
+</dt>
+<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CHANGES_WHEN_TITLECASED</b>
+<a name="IDX513"></a>
+</dt>
+<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CHANGES_WHEN_CASEFOLDED</b>
+<a name="IDX514"></a>
+</dt>
+<dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CHANGES_WHEN_CASEMAPPED</b>
+<a name="IDX515"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_SOFT_DOTTED</b>
-<a name="IDX426"></a>
+<a name="IDX516"></a>
 </dt>
 </dl>
 
@@ -1219,28 +1643,28 @@ 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="IDX427"></a>
+<a name="IDX517"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_ID_START</b>
-<a name="IDX428"></a>
+<a name="IDX518"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ID_CONTINUE</b>
-<a name="IDX429"></a>
+<a name="IDX519"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_ID_CONTINUE</b>
-<a name="IDX430"></a>
+<a name="IDX520"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_XID_START</b>
-<a name="IDX431"></a>
+<a name="IDX521"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_XID_CONTINUE</b>
-<a name="IDX432"></a>
+<a name="IDX522"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PATTERN_WHITE_SPACE</b>
-<a name="IDX433"></a>
+<a name="IDX523"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PATTERN_SYNTAX</b>
-<a name="IDX434"></a>
+<a name="IDX524"></a>
 </dt>
 </dl>
 
@@ -1248,19 +1672,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="IDX435"></a>
+<a name="IDX525"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_GRAPHEME_BASE</b>
-<a name="IDX436"></a>
+<a name="IDX526"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_GRAPHEME_EXTEND</b>
-<a name="IDX437"></a>
+<a name="IDX527"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_GRAPHEME_EXTEND</b>
-<a name="IDX438"></a>
+<a name="IDX528"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_GRAPHEME_LINK</b>
-<a name="IDX439"></a>
+<a name="IDX529"></a>
 </dt>
 </dl>
 
@@ -1268,55 +1692,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="IDX440"></a>
+<a name="IDX530"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_LEFT_TO_RIGHT</b>
-<a name="IDX441"></a>
+<a name="IDX531"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT</b>
-<a name="IDX442"></a>
+<a name="IDX532"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT</b>
-<a name="IDX443"></a>
+<a name="IDX533"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_EUROPEAN_DIGIT</b>
-<a name="IDX444"></a>
+<a name="IDX534"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_EUR_NUM_SEPARATOR</b>
-<a name="IDX445"></a>
+<a name="IDX535"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_EUR_NUM_TERMINATOR</b>
-<a name="IDX446"></a>
+<a name="IDX536"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_ARABIC_DIGIT</b>
-<a name="IDX447"></a>
+<a name="IDX537"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_COMMON_SEPARATOR</b>
-<a name="IDX448"></a>
+<a name="IDX538"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_BLOCK_SEPARATOR</b>
-<a name="IDX449"></a>
+<a name="IDX539"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_SEGMENT_SEPARATOR</b>
-<a name="IDX450"></a>
+<a name="IDX540"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_WHITESPACE</b>
-<a name="IDX451"></a>
+<a name="IDX541"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_NON_SPACING_MARK</b>
-<a name="IDX452"></a>
+<a name="IDX542"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_BOUNDARY_NEUTRAL</b>
-<a name="IDX453"></a>
+<a name="IDX543"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_PDF</b>
-<a name="IDX454"></a>
+<a name="IDX544"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE</b>
-<a name="IDX455"></a>
+<a name="IDX545"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_BIDI_OTHER_NEUTRAL</b>
-<a name="IDX456"></a>
+<a name="IDX546"></a>
 </dt>
 </dl>
 
@@ -1324,10 +1748,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="IDX457"></a>
+<a name="IDX547"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ASCII_HEX_DIGIT</b>
-<a name="IDX458"></a>
+<a name="IDX548"></a>
 </dt>
 </dl>
 
@@ -1335,19 +1759,19 @@ memory allocation.  It is not an array type.
 </p>
 <dl>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_IDEOGRAPHIC</b>
-<a name="IDX459"></a>
+<a name="IDX549"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_UNIFIED_IDEOGRAPH</b>
-<a name="IDX460"></a>
+<a name="IDX550"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_RADICAL</b>
-<a name="IDX461"></a>
+<a name="IDX551"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_IDS_BINARY_OPERATOR</b>
-<a name="IDX462"></a>
+<a name="IDX552"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_IDS_TRINARY_OPERATOR</b>
-<a name="IDX463"></a>
+<a name="IDX553"></a>
 </dt>
 </dl>
 
@@ -1355,79 +1779,79 @@ 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="IDX464"></a>
+<a name="IDX554"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_SPACE</b>
-<a name="IDX465"></a>
+<a name="IDX555"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_NON_BREAK</b>
-<a name="IDX466"></a>
+<a name="IDX556"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_ISO_CONTROL</b>
-<a name="IDX467"></a>
+<a name="IDX557"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_FORMAT_CONTROL</b>
-<a name="IDX468"></a>
+<a name="IDX558"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_DASH</b>
-<a name="IDX469"></a>
+<a name="IDX559"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_HYPHEN</b>
-<a name="IDX470"></a>
+<a name="IDX560"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PUNCTUATION</b>
-<a name="IDX471"></a>
+<a name="IDX561"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_LINE_SEPARATOR</b>
-<a name="IDX472"></a>
+<a name="IDX562"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PARAGRAPH_SEPARATOR</b>
-<a name="IDX473"></a>
+<a name="IDX563"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_QUOTATION_MARK</b>
-<a name="IDX474"></a>
+<a name="IDX564"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_SENTENCE_TERMINAL</b>
-<a name="IDX475"></a>
+<a name="IDX565"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_TERMINAL_PUNCTUATION</b>
-<a name="IDX476"></a>
+<a name="IDX566"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_CURRENCY_SYMBOL</b>
-<a name="IDX477"></a>
+<a name="IDX567"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_MATH</b>
-<a name="IDX478"></a>
+<a name="IDX568"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_OTHER_MATH</b>
-<a name="IDX479"></a>
+<a name="IDX569"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_PAIRED_PUNCTUATION</b>
-<a name="IDX480"></a>
+<a name="IDX570"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_LEFT_OF_PAIR</b>
-<a name="IDX481"></a>
+<a name="IDX571"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_COMBINING</b>
-<a name="IDX482"></a>
+<a name="IDX572"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_COMPOSITE</b>
-<a name="IDX483"></a>
+<a name="IDX573"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_DECIMAL_DIGIT</b>
-<a name="IDX484"></a>
+<a name="IDX574"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_NUMERIC</b>
-<a name="IDX485"></a>
+<a name="IDX575"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_DIACRITIC</b>
-<a name="IDX486"></a>
+<a name="IDX576"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_EXTENDER</b>
-<a name="IDX487"></a>
+<a name="IDX577"></a>
 </dt>
 <dt><u>Constant:</u> uc_property_t <b>UC_PROPERTY_IGNORABLE_CONTROL</b>
-<a name="IDX488"></a>
+<a name="IDX578"></a>
 </dt>
 </dl>
 
@@ -1435,7 +1859,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 char *<var>property_name</var>)</i>
-<a name="IDX489"></a>
+<a name="IDX579"></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
@@ -1443,13 +1867,17 @@ with the given name exists, the result will satisfy the
 this predicate and must not be passed to functions that expect an
 <code>uc_property_t</code> argument.
 </p>
+<p>This lookup ignores spaces, underscores, or hyphens as word separators, is
+case-insignificant, and supports the aliases listed in Unicode's
+&lsquo;<tt>PropertyAliases.txt</tt>&rsquo; file.
+</p>
 <p>This function references a big table of all predefined properties.  Its use
 can significantly increase the size of your application.
 </p></dd></dl>
 
 <dl>
 <dt><u>Function:</u> bool <b>uc_property_is_valid</b><i> (uc_property_t property)</i>
-<a name="IDX490"></a>
+<a name="IDX580"></a>
 </dt>
 <dd><p>Returns <code>true</code> when the given property is valid, or <code>false</code>
 otherwise.
@@ -1459,51 +1887,51 @@ otherwise.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_property</b><i> (ucs4_t <var>uc</var>, uc_property_t <var>property</var>)</i>
-<a name="IDX491"></a>
+<a name="IDX581"></a>
 </dt>
 <dd><p>Tests whether the Unicode character <var>uc</var> has the given property.
 </p></dd></dl>
 
 <hr size="6">
 <a name="Properties-as-functions"></a>
-<a name="SEC32"></a>
-<h3 class="subsection"> <a href="libunistring.html#TOC32">8.8.2 Properties as functions &ndash; the functional API</a> </h3>
+<a name="SEC35"></a>
+<h3 class="subsection"> <a href="libunistring.html#TOC35">8.9.2 Properties as functions &ndash; the functional API</a> </h3>
 
 <p>The following are general properties.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_property_white_space</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX492"></a>
+<a name="IDX582"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_alphabetic</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX493"></a>
+<a name="IDX583"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_other_alphabetic</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX494"></a>
+<a name="IDX584"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_not_a_character</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX495"></a>
+<a name="IDX585"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_default_ignorable_code_point</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX496"></a>
+<a name="IDX586"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_other_default_ignorable_code_point</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX497"></a>
+<a name="IDX587"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_deprecated</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX498"></a>
+<a name="IDX588"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_logical_order_exception</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX499"></a>
+<a name="IDX589"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_variation_selector</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX500"></a>
+<a name="IDX590"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_private_use</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX501"></a>
+<a name="IDX591"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_unassigned_code_value</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX502"></a>
+<a name="IDX592"></a>
 </dt>
 </dl>
 
@@ -1511,22 +1939,43 @@ otherwise.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_property_uppercase</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX503"></a>
+<a name="IDX593"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_other_uppercase</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX504"></a>
+<a name="IDX594"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_lowercase</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX505"></a>
+<a name="IDX595"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_other_lowercase</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX506"></a>
+<a name="IDX596"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_titlecase</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX507"></a>
+<a name="IDX597"></a>
+</dt>
+<dt><u>Function:</u> bool <b>uc_is_property_cased</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX598"></a>
+</dt>
+<dt><u>Function:</u> bool <b>uc_is_property_case_ignorable</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX599"></a>
+</dt>
+<dt><u>Function:</u> bool <b>uc_is_property_changes_when_lowercased</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX600"></a>
+</dt>
+<dt><u>Function:</u> bool <b>uc_is_property_changes_when_uppercased</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX601"></a>
+</dt>
+<dt><u>Function:</u> bool <b>uc_is_property_changes_when_titlecased</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX602"></a>
+</dt>
+<dt><u>Function:</u> bool <b>uc_is_property_changes_when_casefolded</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX603"></a>
+</dt>
+<dt><u>Function:</u> bool <b>uc_is_property_changes_when_casemapped</b><i> (ucs4_t <var>uc</var>)</i>
+<a name="IDX604"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_soft_dotted</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX508"></a>
+<a name="IDX605"></a>
 </dt>
 </dl>
 
@@ -1534,28 +1983,28 @@ otherwise.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_property_id_start</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX509"></a>
+<a name="IDX606"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_other_id_start</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX510"></a>
+<a name="IDX607"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_id_continue</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX511"></a>
+<a name="IDX608"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_other_id_continue</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX512"></a>
+<a name="IDX609"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_xid_start</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX513"></a>
+<a name="IDX610"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_xid_continue</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX514"></a>
+<a name="IDX611"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_pattern_white_space</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX515"></a>
+<a name="IDX612"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_pattern_syntax</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX516"></a>
+<a name="IDX613"></a>
 </dt>
 </dl>
 
@@ -1563,19 +2012,19 @@ otherwise.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_property_join_control</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX517"></a>
+<a name="IDX614"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_grapheme_base</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX518"></a>
+<a name="IDX615"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_grapheme_extend</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX519"></a>
+<a name="IDX616"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_other_grapheme_extend</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX520"></a>
+<a name="IDX617"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_grapheme_link</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX521"></a>
+<a name="IDX618"></a>
 </dt>
 </dl>
 
@@ -1583,55 +2032,55 @@ otherwise.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_control</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX522"></a>
+<a name="IDX619"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_left_to_right</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX523"></a>
+<a name="IDX620"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_hebrew_right_to_left</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX524"></a>
+<a name="IDX621"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_arabic_right_to_left</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX525"></a>
+<a name="IDX622"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_european_digit</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX526"></a>
+<a name="IDX623"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_eur_num_separator</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX527"></a>
+<a name="IDX624"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_eur_num_terminator</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX528"></a>
+<a name="IDX625"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_arabic_digit</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX529"></a>
+<a name="IDX626"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_common_separator</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX530"></a>
+<a name="IDX627"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_block_separator</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX531"></a>
+<a name="IDX628"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_segment_separator</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX532"></a>
+<a name="IDX629"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_whitespace</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX533"></a>
+<a name="IDX630"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_non_spacing_mark</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX534"></a>
+<a name="IDX631"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_boundary_neutral</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX535"></a>
+<a name="IDX632"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_pdf</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX536"></a>
+<a name="IDX633"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_embedding_or_override</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX537"></a>
+<a name="IDX634"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_bidi_other_neutral</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX538"></a>
+<a name="IDX635"></a>
 </dt>
 </dl>
 
@@ -1639,10 +2088,10 @@ otherwise.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_property_hex_digit</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX539"></a>
+<a name="IDX636"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_ascii_hex_digit</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX540"></a>
+<a name="IDX637"></a>
 </dt>
 </dl>
 
@@ -1650,19 +2099,19 @@ otherwise.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_property_ideographic</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX541"></a>
+<a name="IDX638"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_unified_ideograph</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX542"></a>
+<a name="IDX639"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_radical</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX543"></a>
+<a name="IDX640"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_ids_binary_operator</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX544"></a>
+<a name="IDX641"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_ids_trinary_operator</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX545"></a>
+<a name="IDX642"></a>
 </dt>
 </dl>
 
@@ -1670,86 +2119,86 @@ otherwise.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_property_zero_width</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX546"></a>
+<a name="IDX643"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_space</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX547"></a>
+<a name="IDX644"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_non_break</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX548"></a>
+<a name="IDX645"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_iso_control</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX549"></a>
+<a name="IDX646"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_format_control</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX550"></a>
+<a name="IDX647"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_dash</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX551"></a>
+<a name="IDX648"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_hyphen</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX552"></a>
+<a name="IDX649"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_punctuation</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX553"></a>
+<a name="IDX650"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_line_separator</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX554"></a>
+<a name="IDX651"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_paragraph_separator</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX555"></a>
+<a name="IDX652"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_quotation_mark</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX556"></a>
+<a name="IDX653"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_sentence_terminal</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX557"></a>
+<a name="IDX654"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_terminal_punctuation</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX558"></a>
+<a name="IDX655"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_currency_symbol</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX559"></a>
+<a name="IDX656"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_math</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX560"></a>
+<a name="IDX657"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_other_math</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX561"></a>
+<a name="IDX658"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_paired_punctuation</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX562"></a>
+<a name="IDX659"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_left_of_pair</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX563"></a>
+<a name="IDX660"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_combining</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX564"></a>
+<a name="IDX661"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_composite</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX565"></a>
+<a name="IDX662"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_decimal_digit</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX566"></a>
+<a name="IDX663"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_numeric</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX567"></a>
+<a name="IDX664"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_diacritic</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX568"></a>
+<a name="IDX665"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_extender</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX569"></a>
+<a name="IDX666"></a>
 </dt>
 <dt><u>Function:</u> bool <b>uc_is_property_ignorable_control</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX570"></a>
+<a name="IDX667"></a>
 </dt>
 </dl>
 
 <hr size="6">
 <a name="Scripts"></a>
-<a name="SEC33"></a>
-<h2 class="section"> <a href="libunistring.html#TOC33">8.9 Scripts</a> </h2>
+<a name="SEC36"></a>
+<h2 class="section"> <a href="libunistring.html#TOC36">8.10 Scripts</a> </h2>
 
 <p>The Unicode characters are subdivided into scripts.
 </p>
@@ -1757,7 +2206,7 @@ otherwise.
 </p>
 <dl>
 <dt><u>Type:</u> <b>uc_script_t</b>
-<a name="IDX571"></a>
+<a name="IDX668"></a>
 </dt>
 <dd><p>This data type is a structure type that refers to statically allocated
 read-only data.  It contains the following fields:
@@ -1767,12 +2216,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="IDX572"></a>
+<a name="IDX669"></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 <var>uc</var>)</i>
-<a name="IDX573"></a>
+<a name="IDX670"></a>
 </dt>
 <dd><p>Returns the script of a Unicode character.  Returns NULL if <var>uc</var> does not
 belong to any script.
@@ -1780,7 +2229,7 @@ belong to any script.
 
 <dl>
 <dt><u>Function:</u> const uc_script_t * <b>uc_script_byname</b><i> (const char *<var>script_name</var>)</i>
-<a name="IDX574"></a>
+<a name="IDX671"></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.
@@ -1790,7 +2239,7 @@ script with the given name does not exist.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_script</b><i> (ucs4_t <var>uc</var>, const uc_script_t *<var>script</var>)</i>
-<a name="IDX575"></a>
+<a name="IDX672"></a>
 </dt>
 <dd><p>Tests whether a Unicode character belongs to a given script.
 </p></dd></dl>
@@ -1799,7 +2248,7 @@ script with the given name does not exist.
 </p>
 <dl>
 <dt><u>Function:</u> void <b>uc_all_scripts</b><i> (const uc_script_t **<var>scripts</var>, size_t *<var>count</var>)</i>
-<a name="IDX576"></a>
+<a name="IDX673"></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>.
@@ -1807,8 +2256,8 @@ script with the given name does not exist.
 
 <hr size="6">
 <a name="Blocks"></a>
-<a name="SEC34"></a>
-<h2 class="section"> <a href="libunistring.html#TOC34">8.10 Blocks</a> </h2>
+<a name="SEC37"></a>
+<h2 class="section"> <a href="libunistring.html#TOC37">8.11 Blocks</a> </h2>
 
 <p>The Unicode characters are subdivided into blocks.  A block is an interval of
 Unicode code points.
@@ -1817,7 +2266,7 @@ Unicode code points.
 </p>
 <dl>
 <dt><u>Type:</u> <b>uc_block_t</b>
-<a name="IDX577"></a>
+<a name="IDX674"></a>
 </dt>
 <dd><p>This data type is a structure type that refers to statically allocated data.
 It contains the following fields:
@@ -1833,12 +2282,12 @@ const char *name;
 <p>The <code>name</code> field is the name of the block.
 </p></dd></dl>
 
-<a name="IDX578"></a>
+<a name="IDX675"></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 <var>uc</var>)</i>
-<a name="IDX579"></a>
+<a name="IDX676"></a>
 </dt>
 <dd><p>Returns the block a character belongs to.
 </p></dd></dl>
@@ -1847,7 +2296,7 @@ const char *name;
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_block</b><i> (ucs4_t <var>uc</var>, const uc_block_t *<var>block</var>)</i>
-<a name="IDX580"></a>
+<a name="IDX677"></a>
 </dt>
 <dd><p>Tests whether a Unicode character belongs to a given block.
 </p></dd></dl>
@@ -1856,7 +2305,7 @@ const char *name;
 </p>
 <dl>
 <dt><u>Function:</u> void <b>uc_all_blocks</b><i> (const uc_block_t **<var>blocks</var>, size_t *<var>count</var>)</i>
-<a name="IDX581"></a>
+<a name="IDX678"></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>.
@@ -1864,22 +2313,22 @@ const char *name;
 
 <hr size="6">
 <a name="ISO-C-and-Java-syntax"></a>
-<a name="SEC35"></a>
-<h2 class="section"> <a href="libunistring.html#TOC35">8.11 ISO C and Java syntax</a> </h2>
+<a name="SEC38"></a>
+<h2 class="section"> <a href="libunistring.html#TOC38">8.12 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 <var>uc</var>)</i>
-<a name="IDX582"></a>
+<a name="IDX679"></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 <var>uc</var>)</i>
-<a name="IDX583"></a>
+<a name="IDX680"></a>
 </dt>
 <dd><p>Tests whether a Unicode character is considered whitespace in Java.
 </p></dd></dl>
@@ -1889,7 +2338,7 @@ language standards are ISO C 99 and Java.
 </p>
 <dl>
 <dt><u>Constant:</u> int <b>UC_IDENTIFIER_START</b>
-<a name="IDX584"></a>
+<a name="IDX681"></a>
 </dt>
 <dd><p>This return value means that the given character is valid as first or
 subsequent character in an identifier.
@@ -1897,7 +2346,7 @@ subsequent character in an identifier.
 
 <dl>
 <dt><u>Constant:</u> int <b>UC_IDENTIFIER_VALID</b>
-<a name="IDX585"></a>
+<a name="IDX682"></a>
 </dt>
 <dd><p>This return value means that the given character is valid as subsequent
 character only.
@@ -1905,14 +2354,14 @@ character only.
 
 <dl>
 <dt><u>Constant:</u> int <b>UC_IDENTIFIER_INVALID</b>
-<a name="IDX586"></a>
+<a name="IDX683"></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="IDX587"></a>
+<a name="IDX684"></a>
 </dt>
 <dd><p>This return value (only for Java) means that the given character is ignorable.
 </p></dd></dl>
@@ -1920,19 +2369,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="IDX588"></a>
+<a name="IDX685"></a>
 <dl>
 <dt><u>Function:</u> int <b>uc_c_ident_category</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX589"></a>
+<a name="IDX686"></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="IDX590"></a>
+<a name="IDX687"></a>
 <dl>
 <dt><u>Function:</u> int <b>uc_java_ident_category</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX591"></a>
+<a name="IDX688"></a>
 </dt>
 <dd><p>Returns the categorization of a Unicode character with respect to the Java
 identifier syntax.
@@ -1940,8 +2389,8 @@ identifier syntax.
 
 <hr size="6">
 <a name="Classifications-like-in-ISO-C"></a>
-<a name="SEC36"></a>
-<h2 class="section"> <a href="libunistring.html#TOC36">8.12 Classifications like in ISO C</a> </h2>
+<a name="SEC39"></a>
+<h2 class="section"> <a href="libunistring.html#TOC39">8.13 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
@@ -1952,7 +2401,7 @@ APIs to Unicode strings.
 </p>
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_alnum</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX592"></a>
+<a name="IDX689"></a>
 </dt>
 <dd><p>Tests for any character for which <code>uc_is_alpha</code> or <code>uc_is_digit</code> is
 true.
@@ -1960,7 +2409,7 @@ true.
 
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_alpha</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX593"></a>
+<a name="IDX690"></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
@@ -1970,21 +2419,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 <var>uc</var>)</i>
-<a name="IDX594"></a>
+<a name="IDX691"></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 <var>uc</var>)</i>
-<a name="IDX595"></a>
+<a name="IDX692"></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 <var>uc</var>)</i>
-<a name="IDX596"></a>
+<a name="IDX693"></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.
@@ -1992,7 +2441,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 <var>uc</var>)</i>
-<a name="IDX597"></a>
+<a name="IDX694"></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>,
@@ -2001,14 +2450,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 <var>uc</var>)</i>
-<a name="IDX598"></a>
+<a name="IDX695"></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 <var>uc</var>)</i>
-<a name="IDX599"></a>
+<a name="IDX696"></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.
@@ -2016,7 +2465,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 <var>uc</var>)</i>
-<a name="IDX600"></a>
+<a name="IDX697"></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>
@@ -2025,7 +2474,7 @@ is true.
 
 <dl>
 <dt><u>Function:</u> bool <b>uc_is_upper</b><i> (ucs4_t <var>uc</var>)</i>
-<a name="IDX601"></a>
+<a name="IDX698"></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>,
@@ -2034,14 +2483,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 <var>uc</var>)</i>
-<a name="IDX602"></a>
+<a name="IDX699"></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 <var>uc</var>)</i>
-<a name="IDX603"></a>
+<a name="IDX700"></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.
@@ -2049,7 +2498,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="#SEC20" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_9.html#SEC37" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_9.html#SEC40" 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>
@@ -2057,12 +2506,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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 6b5d13d..c022b5c 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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#SEC20" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_10.html#SEC38" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_10.html#SEC41" 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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="SEC37"></a>
-<h1 class="chapter"> <a href="libunistring.html#TOC37">9. Display width <code>&lt;uniwidth.h&gt;</code></a> </h1>
+<a name="SEC40"></a>
+<h1 class="chapter"> <a href="libunistring.html#TOC40">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="IDX604"></a>
+<a name="IDX701"></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="IDX605"></a>
-<a name="IDX606"></a>
-<a name="IDX607"></a>
+<a name="IDX702"></a>
+<a name="IDX703"></a>
+<a name="IDX704"></a>
 <dl>
 <dt><u>Function:</u> int <b>uc_width</b><i> (ucs4_t <var>uc</var>, const char *<var>encoding</var>)</i>
-<a name="IDX608"></a>
+<a name="IDX705"></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 uint8_t *<var>s</var>, size_t <var>n</var>, const char *<var>encoding</var>)</i>
-<a name="IDX609"></a>
+<a name="IDX706"></a>
 </dt>
 <dt><u>Function:</u> int <b>u16_width</b><i> (const uint16_t *<var>s</var>, size_t <var>n</var>, const char *<var>encoding</var>)</i>
-<a name="IDX610"></a>
+<a name="IDX707"></a>
 </dt>
 <dt><u>Function:</u> int <b>u32_width</b><i> (const uint32_t *<var>s</var>, size_t <var>n</var>, const char *<var>encoding</var>)</i>
-<a name="IDX611"></a>
+<a name="IDX708"></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 uint8_t *<var>s</var>, const char *<var>encoding</var>)</i>
-<a name="IDX612"></a>
+<a name="IDX709"></a>
 </dt>
 <dt><u>Function:</u> int <b>u16_strwidth</b><i> (const uint16_t *<var>s</var>, const char *<var>encoding</var>)</i>
-<a name="IDX613"></a>
+<a name="IDX710"></a>
 </dt>
 <dt><u>Function:</u> int <b>u32_strwidth</b><i> (const uint32_t *<var>s</var>, const char *<var>encoding</var>)</i>
-<a name="IDX614"></a>
+<a name="IDX711"></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#SEC20" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_10.html#SEC38" title="Next chapter"> &gt;&gt; </a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_10.html#SEC41" 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 40e4977..525ce85 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://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.html#SEC_Top" title="Cover (top) of document">Top</a>]</td>
 <td valign="middle" align="left">[<a href="libunistring.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
-<td valign="middle" align="left">[<a href="libunistring_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 6dd04ac..caab98f 100644 (file)
@@ -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 March, 30 2010 by texi2html 1.78a -->
+<!-- Created on September, 1 2014 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_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>
@@ -84,61 +84,71 @@ ul.toc {list-style: none}
       <li><a name="TOC23" href="libunistring_8.html#SEC23">8.1.2 The bit mask API for general category</a></li>
     </ul></li>
     <li><a name="TOC24" href="libunistring_8.html#SEC24">8.2 Canonical combining class</a></li>
-    <li><a name="TOC25" href="libunistring_8.html#SEC25">8.3 Bidirectional category</a></li>
+    <li><a name="TOC25" href="libunistring_8.html#SEC25">8.3 Bidi class</a></li>
     <li><a name="TOC26" href="libunistring_8.html#SEC26">8.4 Decimal digit value</a></li>
     <li><a name="TOC27" href="libunistring_8.html#SEC27">8.5 Digit value</a></li>
     <li><a name="TOC28" href="libunistring_8.html#SEC28">8.6 Numeric value</a></li>
     <li><a name="TOC29" href="libunistring_8.html#SEC29">8.7 Mirrored character</a></li>
-    <li><a name="TOC30" href="libunistring_8.html#SEC30">8.8 Properties</a>
+    <li><a name="TOC30" href="libunistring_8.html#SEC30">8.8 Arabic shaping</a>
     <ul class="toc">
-      <li><a name="TOC31" href="libunistring_8.html#SEC31">8.8.1 Properties as objects &ndash; the object oriented API</a></li>
-      <li><a name="TOC32" href="libunistring_8.html#SEC32">8.8.2 Properties as functions &ndash; the functional API</a></li>
+      <li><a name="TOC31" href="libunistring_8.html#SEC31">8.8.1 Joining type of Arabic characters</a></li>
+      <li><a name="TOC32" href="libunistring_8.html#SEC32">8.8.2 Joining group of Arabic characters</a></li>
     </ul></li>
-    <li><a name="TOC33" href="libunistring_8.html#SEC33">8.9 Scripts</a></li>
-    <li><a name="TOC34" href="libunistring_8.html#SEC34">8.10 Blocks</a></li>
-    <li><a name="TOC35" href="libunistring_8.html#SEC35">8.11 ISO C and Java syntax</a></li>
-    <li><a name="TOC36" href="libunistring_8.html#SEC36">8.12 Classifications like in ISO C</a></li>
+    <li><a name="TOC33" href="libunistring_8.html#SEC33">8.9 Properties</a>
+    <ul class="toc">
+      <li><a name="TOC34" href="libunistring_8.html#SEC34">8.9.1 Properties as objects &ndash; the object oriented API</a></li>
+      <li><a name="TOC35" href="libunistring_8.html#SEC35">8.9.2 Properties as functions &ndash; the functional API</a></li>
+    </ul></li>
+    <li><a name="TOC36" href="libunistring_8.html#SEC36">8.10 Scripts</a></li>
+    <li><a name="TOC37" href="libunistring_8.html#SEC37">8.11 Blocks</a></li>
+    <li><a name="TOC38" href="libunistring_8.html#SEC38">8.12 ISO C and Java syntax</a></li>
+    <li><a name="TOC39" href="libunistring_8.html#SEC39">8.13 Classifications like in ISO C</a></li>
+  </ul></li>
+  <li><a name="TOC40" href="libunistring_9.html#SEC40">9. Display width <code>&lt;uniwidth.h&gt;</code></a></li>
+  <li><a name="TOC41" href="libunistring_10.html#SEC41">10. Grapheme cluster breaks in strings <code>&lt;unigbrk.h&gt;</code></a>
+  <ul class="toc">
+    <li><a name="TOC42" href="libunistring_10.html#SEC42">10.1 Grapheme cluster breaks in a string</a></li>
+    <li><a name="TOC43" href="libunistring_10.html#SEC43">10.2 Grapheme cluster break property</a></li>
   </ul></li>
-  <li><a name="TOC37" href="libunistring_9.html#SEC37">9. Display width <code>&lt;uniwidth.h&gt;</code></a></li>
-  <li><a name="TOC38" href="libunistring_10.html#SEC38">10. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a>
+  <li><a name="TOC44" href="libunistring_11.html#SEC44">11. Word breaks in strings <code>&lt;uniwbrk.h&gt;</code></a>
   <ul class="toc">
-    <li><a name="TOC39" href="libunistring_10.html#SEC39">10.1 Word breaks in a string</a></li>
-    <li><a name="TOC40" href="libunistring_10.html#SEC40">10.2 Word break property</a></li>
+    <li><a name="TOC45" href="libunistring_11.html#SEC45">11.1 Word breaks in a string</a></li>
+    <li><a name="TOC46" href="libunistring_11.html#SEC46">11.2 Word break property</a></li>
   </ul></li>
-  <li><a name="TOC41" href="libunistring_11.html#SEC41">11. Line breaking <code>&lt;unilbrk.h&gt;</code></a></li>
-  <li><a name="TOC42" href="libunistring_12.html#SEC42">12. Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a>
+  <li><a name="TOC47" href="libunistring_12.html#SEC47">12. Line breaking <code>&lt;unilbrk.h&gt;</code></a></li>
+  <li><a name="TOC48" href="libunistring_13.html#SEC48">13. Normalization forms (composition and decomposition) <code>&lt;uninorm.h&gt;</code></a>
   <ul class="toc">
-    <li><a name="TOC43" href="libunistring_12.html#SEC43">12.1 Decomposition of Unicode characters</a></li>
-    <li><a name="TOC44" href="libunistring_12.html#SEC44">12.2 Composition of Unicode characters</a></li>
-    <li><a name="TOC45" href="libunistring_12.html#SEC45">12.3 Normalization of strings</a></li>
-    <li><a name="TOC46" href="libunistring_12.html#SEC46">12.4 Normalizing comparisons</a></li>
-    <li><a name="TOC47" href="libunistring_12.html#SEC47">12.5 Normalization of streams of Unicode characters</a></li>
+    <li><a name="TOC49" href="libunistring_13.html#SEC49">13.1 Decomposition of Unicode characters</a></li>
+    <li><a name="TOC50" href="libunistring_13.html#SEC50">13.2 Composition of Unicode characters</a></li>
+    <li><a name="TOC51" href="libunistring_13.html#SEC51">13.3 Normalization of strings</a></li>
+    <li><a name="TOC52" href="libunistring_13.html#SEC52">13.4 Normalizing comparisons</a></li>
+    <li><a name="TOC53" href="libunistring_13.html#SEC53">13.5 Normalization of streams of Unicode characters</a></li>
   </ul></li>
-  <li><a name="TOC48" href="libunistring_13.html#SEC48">13. Case mappings <code>&lt;unicase.h&gt;</code></a>
+  <li><a name="TOC54" href="libunistring_14.html#SEC54">14. Case mappings <code>&lt;unicase.h&gt;</code></a>
   <ul class="toc">
-    <li><a name="TOC49" href="libunistring_13.html#SEC49">13.1 Case mappings of characters</a></li>
-    <li><a name="TOC50" href="libunistring_13.html#SEC50">13.2 Case mappings of strings</a></li>
-    <li><a name="TOC51" href="libunistring_13.html#SEC51">13.3 Case mappings of substrings</a></li>
-    <li><a name="TOC52" href="libunistring_13.html#SEC52">13.4 Case insensitive comparison</a></li>
-    <li><a name="TOC53" href="libunistring_13.html#SEC53">13.5 Case detection</a></li>
+    <li><a name="TOC55" href="libunistring_14.html#SEC55">14.1 Case mappings of characters</a></li>
+    <li><a name="TOC56" href="libunistring_14.html#SEC56">14.2 Case mappings of strings</a></li>
+    <li><a name="TOC57" href="libunistring_14.html#SEC57">14.3 Case mappings of substrings</a></li>
+    <li><a name="TOC58" href="libunistring_14.html#SEC58">14.4 Case insensitive comparison</a></li>
+    <li><a name="TOC59" href="libunistring_14.html#SEC59">14.5 Case detection</a></li>
   </ul></li>
-  <li><a name="TOC54" href="libunistring_14.html#SEC54">14. Regular expressions <code>&lt;uniregex.h&gt;</code></a></li>
-  <li><a name="TOC55" href="libunistring_15.html#SEC55">15. Using the library</a>
+  <li><a name="TOC60" href="libunistring_15.html#SEC60">15. Regular expressions <code>&lt;uniregex.h&gt;</code></a></li>
+  <li><a name="TOC61" href="libunistring_16.html#SEC61">16. Using the library</a>
   <ul class="toc">
-    <li><a name="TOC56" href="libunistring_15.html#SEC56">15.1 Installation</a></li>
-    <li><a name="TOC57" href="libunistring_15.html#SEC57">15.2 Compiler options</a></li>
-    <li><a name="TOC58" href="libunistring_15.html#SEC58">15.3 Include files</a></li>
-    <li><a name="TOC59" href="libunistring_15.html#SEC59">15.4 Autoconf macro</a></li>
-    <li><a name="TOC60" href="libunistring_15.html#SEC60">15.5 Reporting problems</a></li>
+    <li><a name="TOC62" href="libunistring_16.html#SEC62">16.1 Installation</a></li>
+    <li><a name="TOC63" href="libunistring_16.html#SEC63">16.2 Compiler options</a></li>
+    <li><a name="TOC64" href="libunistring_16.html#SEC64">16.3 Include files</a></li>
+    <li><a name="TOC65" href="libunistring_16.html#SEC65">16.4 Autoconf macro</a></li>
+    <li><a name="TOC66" href="libunistring_16.html#SEC66">16.5 Reporting problems</a></li>
   </ul></li>
-  <li><a name="TOC61" href="libunistring_16.html#SEC61">16. More advanced functionality</a></li>
-  <li><a name="TOC62" href="libunistring_17.html#SEC62">A. Licenses</a>
+  <li><a name="TOC67" href="libunistring_17.html#SEC67">17. More advanced functionality</a></li>
+  <li><a name="TOC68" href="libunistring_18.html#SEC68">A. Licenses</a>
   <ul class="toc">
-    <li><a name="TOC63" href="libunistring_17.html#SEC63">A.1 GNU GENERAL PUBLIC LICENSE</a></li>
-    <li><a name="TOC64" href="libunistring_17.html#SEC68">A.2 GNU LESSER GENERAL PUBLIC LICENSE</a></li>
-    <li><a name="TOC65" href="libunistring_17.html#SEC69">A.3 GNU Free Documentation License</a></li>
+    <li><a name="TOC69" href="libunistring_18.html#SEC69">A.1 GNU GENERAL PUBLIC LICENSE</a></li>
+    <li><a name="TOC70" href="libunistring_18.html#SEC74">A.2 GNU LESSER GENERAL PUBLIC LICENSE</a></li>
+    <li><a name="TOC71" href="libunistring_18.html#SEC75">A.3 GNU Free Documentation License</a></li>
   </ul></li>
-  <li><a name="TOC66" href="libunistring_18.html#SEC71">Index</a></li>
+  <li><a name="TOC72" href="libunistring_19.html#SEC77">Index</a></li>
 </ul>
 </div>
 
@@ -150,12 +160,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_18.html#SEC71" title="Index">Index</a>]</td>
+<td valign="middle" align="left">[<a href="libunistring_19.html#SEC77" 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>March, 30 2010</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
+  This document was generated by <em>Daiki Ueno</em> on <em>September, 1 2014</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.78a</em></a>.
  </font>
  <br>
 
index 4384b70..f8a5cf6 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 1 January 2010
-@set UPDATED-MONTH January 2010
-@set EDITION 0.9.3
-@set VERSION 0.9.3
+@set UPDATED 27 July 2012
+@set UPDATED-MONTH July 2012
+@set EDITION 0.9.4
+@set VERSION 0.9.4
index 14b46be..e88a0a4 100644 (file)
@@ -91,7 +91,7 @@ The @var{nf} argument designates the normalization.
 
 @cindex locale language
 These functions are locale dependent.  The @var{iso639_language} argument
-identifies the language (e.g. @code{"tr"} for Turkish).  NULL means to use
+identifies the language (e.g@. @code{"tr"} for Turkish).  NULL means to use
 locale independent case mappings.
 
 @deftypefun {const char *} uc_locale_language ()
index 129159c..5f292cc 100644 (file)
@@ -14,11 +14,12 @@ in the presence of specific Unicode characters.
 @menu
 * General category::
 * Canonical combining class::
-* Bidirectional category::
+* Bidi class::
 * Decimal digit value::
 * Digit value::
 * Numeric value::
 * Mirrored character::
+* Arabic shaping::
 * Properties::
 * Scripts::
 * Blocks::
@@ -65,6 +66,7 @@ The following are the predefined general category value.  Additional general
 categories may be added in the future.
 
 @deftypevr Constant uc_general_category_t UC_CATEGORY_L
+@deftypevrx Constant uc_general_category_t UC_CATEGORY_LC
 @deftypevrx Constant uc_general_category_t UC_CATEGORY_Lu
 @deftypevrx Constant uc_general_category_t UC_CATEGORY_Ll
 @deftypevrx Constant uc_general_category_t UC_CATEGORY_Lt
@@ -109,6 +111,10 @@ The following are alias names for predefined General category values.
 This is another name for @code{UC_CATEGORY_L}.
 @end deftypevr
 
+@deftypevr Macro uc_general_category_t UC_CASED_LETTER
+This is another name for @code{UC_CATEGORY_LC}.
+@end deftypevr
+
 @deftypevr Macro uc_general_category_t UC_UPPERCASE_LETTER
 This is another name for @code{UC_CATEGORY_Lu}.
 @end deftypevr
@@ -281,13 +287,22 @@ viewing the categories as sets of characters.
 The following functions associate general categories with their name.
 
 @deftypefun {const char *} uc_general_category_name (uc_general_category_t @var{category})
-Returns the name of a general category.
+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
+have a name.
+@end deftypefun
+
+@deftypefun {const char *} uc_general_category_long_name (uc_general_category_t @var{category})
+Returns the long name of a general category.
 Returns NULL if the general category corresponds to a bit mask that does not
 have a name.
 @end deftypefun
 
 @deftypefun uc_general_category_t uc_general_category_byname (const char *@var{category_name})
-Returns the general category given by name, e.g@. @code{"Lu"}.
+Returns the general category given by name, e.g@. @code{"Lu"}, or by long
+name, e.g@. @code{"Uppercase Letter"}.
+This lookup ignores spaces, underscores, or hyphens as word separators and is
+case-insignificant.
 @end deftypefun
 
 The following functions view general categories as sets of Unicode characters.
@@ -311,6 +326,7 @@ The following are the predefined general category value as bit masks.
 Additional general categories may be added in the future.
 
 @deftypevr Macro uint32_t UC_CATEGORY_MASK_L
+@deftypevrx Macro uint32_t UC_CATEGORY_MASK_LC
 @deftypevrx Macro uint32_t UC_CATEGORY_MASK_Lu
 @deftypevrx Macro uint32_t UC_CATEGORY_MASK_Ll
 @deftypevrx Macro uint32_t UC_CATEGORY_MASK_Lt
@@ -409,6 +425,10 @@ The canonical combining class value for ``Attached Below Left'' characters.
 The canonical combining class value for ``Attached Below'' characters.
 @end deftypevr
 
+@deftypevr Constant int UC_CCC_ATA
+The canonical combining class value for ``Attached Above'' characters.
+@end deftypevr
+
 @deftypevr Constant int UC_CCC_ATAR
 The canonical combining class value for ``Attached Above Right'' characters.
 @end deftypevr
@@ -457,120 +477,155 @@ The canonical combining class value for ``Double Above'' characters.
 The canonical combining class value for ``Iota Subscript'' characters.
 @end deftypevr
 
+The following functions associate canonical combining classes with their name.
+
+@deftypefun {const char *} uc_combining_class_name (int @var{ccc})
+Returns the name of a canonical combining class, more precisely, the
+abbreviated name.
+Returns NULL if the canonical combining class is a numeric value without a
+name.
+@end deftypefun
+
+@deftypefun {const char *} uc_combining_class_long_name (int @var{ccc})
+Returns the long name of a canonical combining class.
+Returns NULL if the canonical combining class is a numeric value without a
+name.
+@end deftypefun
+
+@deftypefun int uc_combining_class_byname (const char *@var{ccc_name})
+Returns the canonical combining class given by name, e.g@. @code{"BL"}, or by
+long name, e.g@. @code{"Below Left"}.
+This lookup ignores spaces, underscores, or hyphens as word separators and is
+case-insignificant.
+@end deftypefun
+
 The following function looks up the canonical combining class of a character.
 
 @deftypefun int uc_combining_class (ucs4_t @var{uc})
 Returns the canonical combining class of a Unicode character.
 @end deftypefun
 
-@node Bidirectional category
-@section Bidirectional category
+@node Bidi class
+@section Bidi class
 
+@cindex bidi class
 @cindex bidirectional category
+@cindex Unicode character, bidi class
 @cindex Unicode character, bidirectional category
-Every Unicode character or code point has a @emph{bidirectional category}
-assigned to it.
+Every Unicode character or code point has a @emph{bidi class} assigned to it.
+Before Unicode 4.0, this concept was known as @emph{bidirectional category}.
 
-The bidirectional category guides the bidirectional algorithm@texnl{}
+The bidi class guides the bidirectional algorithm@texnl{}
 (@url{http://www.unicode.org/reports/tr9/}).  The possible values are
 the following.
 
 @deftypevr Constant int UC_BIDI_L
-The bidirectional category for `Left-to-Right`'' characters.
+The bidi class for `Left-to-Right`'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_LRE
-The bidirectional category for ``Left-to-Right Embedding'' characters.
+The bidi class for ``Left-to-Right Embedding'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_LRO
-The bidirectional category for ``Left-to-Right Override'' characters.
+The bidi class for ``Left-to-Right Override'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_R
-The bidirectional category for ``Right-to-Left'' characters.
+The bidi class for ``Right-to-Left'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_AL
-The bidirectional category for ``Right-to-Left Arabic'' characters.
+The bidi class for ``Right-to-Left Arabic'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_RLE
-The bidirectional category for ``Right-to-Left Embedding'' characters.
+The bidi class for ``Right-to-Left Embedding'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_RLO
-The bidirectional category for ``Right-to-Left Override'' characters.
+The bidi class for ``Right-to-Left Override'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_PDF
-The bidirectional category for ``Pop Directional Format'' characters.
+The bidi class for ``Pop Directional Format'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_EN
-The bidirectional category for ``European Number'' characters.
+The bidi class for ``European Number'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_ES
-The bidirectional category for ``European Number Separator'' characters.
+The bidi class for ``European Number Separator'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_ET
-The bidirectional category for ``European Number Terminator'' characters.
+The bidi class for ``European Number Terminator'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_AN
-The bidirectional category for ``Arabic Number'' characters.
+The bidi class for ``Arabic Number'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_CS
-The bidirectional category for ``Common Number Separator'' characters.
+The bidi class for ``Common Number Separator'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_NSM
-The bidirectional category for ``Non-Spacing Mark'' characters.
+The bidi class for ``Non-Spacing Mark'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_BN
-The bidirectional category for ``Boundary Neutral'' characters.
+The bidi class for ``Boundary Neutral'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_B
-The bidirectional category for ``Paragraph Separator'' characters.
+The bidi class for ``Paragraph Separator'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_S
-The bidirectional category for ``Segment Separator'' characters.
+The bidi class for ``Segment Separator'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_WS
-The bidirectional category for ``Whitespace'' characters.
+The bidi class for ``Whitespace'' characters.
 @end deftypevr
 
 @deftypevr Constant int UC_BIDI_ON
-The bidirectional category for ``Other Neutral'' characters.
+The bidi class for ``Other Neutral'' characters.
 @end deftypevr
 
 The following functions implement the association between a bidirectional
 category and its name.
 
-@deftypefun {const char *} uc_bidi_category_name (int @var{category})
-Returns the name of a bidirectional category.
+@deftypefun {const char *} uc_bidi_class_name (int @var{bidi_class})
+@deftypefunx {const char *} uc_bidi_category_name (int @var{category})
+Returns the name of a bidi class, more precisely, the abbreviated name.
+@end deftypefun
+
+@deftypefun {const char *} uc_bidi_class_long_name (int @var{bidi_class})
+Returns the long name of a bidi class.
 @end deftypefun
 
-@deftypefun int uc_bidi_category_byname (const char *@var{category_name})
-Returns the bidirectional category given by name, e.g@. @code{"LRE"}.
+@deftypefun int uc_bidi_class_byname (const char *@var{bidi_class_name})
+@deftypefunx int uc_bidi_category_byname (const char *@var{category_name})
+Returns the bidi class given by name, e.g@. @code{"LRE"}, or by long name,
+e.g@. @code{"Left-to-Right Embedding"}.
+This lookup ignores spaces, underscores, or hyphens as word separators and is
+case-insignificant.
 @end deftypefun
 
 The following functions view bidirectional categories as sets of Unicode
 characters.
 
-@deftypefun int uc_bidi_category (ucs4_t @var{uc})
-Returns the bidirectional category of a Unicode character.
+@deftypefun int uc_bidi_class (ucs4_t @var{uc})
+@deftypefunx int uc_bidi_category (ucs4_t @var{uc})
+Returns the bidi class of a Unicode character.
 @end deftypefun
 
-@deftypefun bool uc_is_bidi_category (ucs4_t @var{uc}, int @var{category})
-Tests whether a Unicode character belongs to a given bidirectional category.
+@deftypefun bool uc_is_bidi_class (ucs4_t @var{uc}, int @var{bidi_class})
+@deftypefunx bool uc_is_bidi_category (ucs4_t @var{uc}, int @var{category})
+Tests whether a Unicode character belongs to a given bidi class.
 @end deftypefun
 
 @node Decimal digit value
@@ -647,6 +702,172 @@ Stores the mirrored character of a Unicode character @var{uc} in
 stores @var{uc} unmodified in @code{*@var{puc}} and returns @code{false}.
 @end deftypefun
 
+@node Arabic shaping
+@section Arabic shaping
+
+@cindex Arabic shaping
+@cindex joining of Arabic characters
+When Arabic characters are rendered, after bidi reordering has taken
+place, the shape of the glyphs are modified so that many adjacent glyphs
+are joined.  Two character properties describe how this ``Arabic shaping''
+takes place: the joining type and the joining group.
+
+@menu
+* Joining type::
+* Joining group::
+@end menu
+
+@node Joining type
+@subsection Joining type of Arabic characters
+
+@cindex joining type
+The joining type of a character describes on which of the left and right
+neighbour characters the character's shape depends, and which of the two
+neighbour characters are rendered depending on this character.
+
+The joining type has the following possible values:
+
+@deftypevr Constant int UC_JOINING_TYPE_U
+``Non joining'': Characters of this joining type prohibit joining.
+@end deftypevr
+
+@deftypevr Constant int UC_JOINING_TYPE_T
+``Transparent'': Characters of this joining type are skipped when
+considering joining.
+@end deftypevr
+
+@deftypevr Constant int UC_JOINING_TYPE_C
+``Join causing'': Characters of this joining type cause their neighbour
+characters to change their shapes but don't change their own shape.
+@end deftypevr
+
+@deftypevr Constant int UC_JOINING_TYPE_L
+``Left joining'': Characters of this joining type have two shapes,
+isolated and initial.  Such characters currently don't exist.
+@end deftypevr
+
+@deftypevr Constant int UC_JOINING_TYPE_R
+``Right joining'': Characters of this joining type have two shapes,
+isolated and final.
+@end deftypevr
+
+@deftypevr Constant int UC_JOINING_TYPE_D
+``Dual joining'': Characters of this joining type have four shapes,
+initial, medial, final, and isolated.
+@end deftypevr
+
+The following functions implement the association between a joining type
+and its name.
+
+@deftypefun {const char *} uc_joining_type_name (int @var{joining_type})
+Returns the name of a joining type.
+@end deftypefun
+
+@deftypefun {const char *} uc_joining_type_long_name (int @var{joining_type})
+Returns the long name of a joining type.
+@end deftypefun
+
+@deftypefun int uc_joining_type_byname (const char *@var{joining_type_name})
+Returns the joining type given by name, e.g@. @code{"D"}, or by long name,
+e.g@. @code{"Dual Joining}.
+This lookup ignores spaces, underscores, or hyphens as word separators and is
+case-insignificant.
+@end deftypefun
+
+The following function gives the joining type of every Unicode character.
+
+@deftypefun int uc_joining_type (ucs4_t @var{uc})
+Returns the joining type of a Unicode character.
+@end deftypefun
+
+@node Joining group
+@subsection Joining group of Arabic characters
+
+@cindex joining group
+The joining group of a character describes how the character's shape
+is modified in the four contexts of dual-joining characters or in the
+two contexts of right-joining characters.
+
+The joining group has the following possible values:
+
+@deftypevr Constant int UC_JOINING_GROUP_NONE
+@deftypevrx Constant int UC_JOINING_GROUP_AIN
+@deftypevrx Constant int UC_JOINING_GROUP_ALAPH
+@deftypevrx Constant int UC_JOINING_GROUP_ALEF
+@deftypevrx Constant int UC_JOINING_GROUP_BEH
+@deftypevrx Constant int UC_JOINING_GROUP_BETH
+@deftypevrx Constant int UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE
+@deftypevrx Constant int UC_JOINING_GROUP_DAL
+@deftypevrx Constant int UC_JOINING_GROUP_DALATH_RISH
+@deftypevrx Constant int UC_JOINING_GROUP_E
+@deftypevrx Constant int UC_JOINING_GROUP_FARSI_YEH
+@deftypevrx Constant int UC_JOINING_GROUP_FE
+@deftypevrx Constant int UC_JOINING_GROUP_FEH
+@deftypevrx Constant int UC_JOINING_GROUP_FINAL_SEMKATH
+@deftypevrx Constant int UC_JOINING_GROUP_GAF
+@deftypevrx Constant int UC_JOINING_GROUP_GAMAL
+@deftypevrx Constant int UC_JOINING_GROUP_HAH
+@deftypevrx Constant int UC_JOINING_GROUP_HE
+@deftypevrx Constant int UC_JOINING_GROUP_HEH
+@deftypevrx Constant int UC_JOINING_GROUP_HEH_GOAL
+@deftypevrx Constant int UC_JOINING_GROUP_HETH
+@deftypevrx Constant int UC_JOINING_GROUP_KAF
+@deftypevrx Constant int UC_JOINING_GROUP_KAPH
+@deftypevrx Constant int UC_JOINING_GROUP_KHAPH
+@deftypevrx Constant int UC_JOINING_GROUP_KNOTTED_HEH
+@deftypevrx Constant int UC_JOINING_GROUP_LAM
+@deftypevrx Constant int UC_JOINING_GROUP_LAMADH
+@deftypevrx Constant int UC_JOINING_GROUP_MEEM
+@deftypevrx Constant int UC_JOINING_GROUP_MIM
+@deftypevrx Constant int UC_JOINING_GROUP_NOON
+@deftypevrx Constant int UC_JOINING_GROUP_NUN
+@deftypevrx Constant int UC_JOINING_GROUP_NYA
+@deftypevrx Constant int UC_JOINING_GROUP_PE
+@deftypevrx Constant int UC_JOINING_GROUP_QAF
+@deftypevrx Constant int UC_JOINING_GROUP_QAPH
+@deftypevrx Constant int UC_JOINING_GROUP_REH
+@deftypevrx Constant int UC_JOINING_GROUP_REVERSED_PE
+@deftypevrx Constant int UC_JOINING_GROUP_SAD
+@deftypevrx Constant int UC_JOINING_GROUP_SADHE
+@deftypevrx Constant int UC_JOINING_GROUP_SEEN
+@deftypevrx Constant int UC_JOINING_GROUP_SEMKATH
+@deftypevrx Constant int UC_JOINING_GROUP_SHIN
+@deftypevrx Constant int UC_JOINING_GROUP_SWASH_KAF
+@deftypevrx Constant int UC_JOINING_GROUP_SYRIAC_WAW
+@deftypevrx Constant int UC_JOINING_GROUP_TAH
+@deftypevrx Constant int UC_JOINING_GROUP_TAW
+@deftypevrx Constant int UC_JOINING_GROUP_TEH_MARBUTA
+@deftypevrx Constant int UC_JOINING_GROUP_TEH_MARBUTA_GOAL
+@deftypevrx Constant int UC_JOINING_GROUP_TETH
+@deftypevrx Constant int UC_JOINING_GROUP_WAW
+@deftypevrx Constant int UC_JOINING_GROUP_YEH
+@deftypevrx Constant int UC_JOINING_GROUP_YEH_BARREE
+@deftypevrx Constant int UC_JOINING_GROUP_YEH_WITH_TAIL
+@deftypevrx Constant int UC_JOINING_GROUP_YUDH
+@deftypevrx Constant int UC_JOINING_GROUP_YUDH_HE
+@deftypevrx Constant int UC_JOINING_GROUP_ZAIN
+@deftypevrx Constant int UC_JOINING_GROUP_ZHAIN
+@end deftypevr
+
+The following functions implement the association between a joining group
+and its name.
+
+@deftypefun {const char *} uc_joining_group_name (int @var{joining_group})
+Returns the name of a joining group.
+@end deftypefun
+
+@deftypefun int uc_joining_group_byname (const char *@var{joining_group_name})
+Returns the joining group given by name, e.g@. @code{"Teh_Marbuta"}.
+This lookup ignores spaces, underscores, or hyphens as word separators and is
+case-insignificant.
+@end deftypefun
+
+The following function gives the joining group of every Unicode character.
+
+@deftypefun int uc_joining_group (ucs4_t @var{uc})
+Returns the joining group of a Unicode character.
+@end deftypefun
+
 @node Properties
 @section Properties
 
@@ -702,6 +923,13 @@ The following properties are related to case folding.
 @deftypevrx Constant uc_property_t UC_PROPERTY_LOWERCASE
 @deftypevrx Constant uc_property_t UC_PROPERTY_OTHER_LOWERCASE
 @deftypevrx Constant uc_property_t UC_PROPERTY_TITLECASE
+@deftypevrx Constant uc_property_t UC_PROPERTY_CASED
+@deftypevrx Constant uc_property_t UC_PROPERTY_CASE_IGNORABLE
+@deftypevrx Constant uc_property_t UC_PROPERTY_CHANGES_WHEN_LOWERCASED
+@deftypevrx Constant uc_property_t UC_PROPERTY_CHANGES_WHEN_UPPERCASED
+@deftypevrx Constant uc_property_t UC_PROPERTY_CHANGES_WHEN_TITLECASED
+@deftypevrx Constant uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEFOLDED
+@deftypevrx Constant uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEMAPPED
 @deftypevrx Constant uc_property_t UC_PROPERTY_SOFT_DOTTED
 @end deftypevr
 
@@ -794,12 +1022,16 @@ Other miscellaneous properties are:
 The following function looks up a property by its name.
 
 @deftypefun uc_property_t uc_property_byname (const char *@var{property_name})
-Returns the property given by name, e.g. @code{"White space"}.  If a property
+Returns the property given by name, e.g@. @code{"White space"}.  If a property
 with the given name exists, the result will satisfy the
 @code{uc_property_is_valid} predicate.  Otherwise the result will not satisfy
 this predicate and must not be passed to functions that expect an
 @code{uc_property_t} argument.
 
+This lookup ignores spaces, underscores, or hyphens as word separators, is
+case-insignificant, and supports the aliases listed in Unicode's
+@file{PropertyAliases.txt} file.
+
 This function references a big table of all predefined properties.  Its use
 can significantly increase the size of your application.
 @end deftypefun
@@ -840,6 +1072,13 @@ The following properties are related to case folding.
 @deftypefunx bool uc_is_property_lowercase (ucs4_t @var{uc})
 @deftypefunx bool uc_is_property_other_lowercase (ucs4_t @var{uc})
 @deftypefunx bool uc_is_property_titlecase (ucs4_t @var{uc})
+@deftypefunx bool uc_is_property_cased (ucs4_t @var{uc})
+@deftypefunx bool uc_is_property_case_ignorable (ucs4_t @var{uc})
+@deftypefunx bool uc_is_property_changes_when_lowercased (ucs4_t @var{uc})
+@deftypefunx bool uc_is_property_changes_when_uppercased (ucs4_t @var{uc})
+@deftypefunx bool uc_is_property_changes_when_titlecased (ucs4_t @var{uc})
+@deftypefunx bool uc_is_property_changes_when_casefolded (ucs4_t @var{uc})
+@deftypefunx bool uc_is_property_changes_when_casemapped (ucs4_t @var{uc})
 @deftypefunx bool uc_is_property_soft_dotted (ucs4_t @var{uc})
 @end deftypefun
 
diff --git a/doc/unigbrk.texi b/doc/unigbrk.texi
new file mode 100644 (file)
index 0000000..196bd9f
--- /dev/null
@@ -0,0 +1,126 @@
+@node unigbrk.h
+@chapter Grapheme cluster breaks in strings @code{<unigbrk.h>}
+
+@cindex grapheme cluster breaks
+@cindex grapheme cluster boundaries
+@cindex breaks, grapheme cluster
+@cindex boundaries, between grapheme clusters
+This include file declares functions for determining where in a string
+``grapheme clusters'' start and end.  A ``grapheme cluster'' is an
+approximation to a user-perceived character, which sometimes
+corresponds to multiple Unicode characters.  Editing operations such as
+mouse selection, cursor movement, and backspacing often operate on
+grapheme clusters as units, not on individual characters.
+
+Some grapheme clusters are built from a base character and a combining
+character.  The letter @samp{@'e},
+for example, is most commonly represented in Unicode as a single
+character U+00E8 @sc{LATIN SMALL LETTER E WITH ACUTE}.  It is,
+however, equally valid to use the pair of characters U+0065 @sc{LATIN
+SMALL LETTER E} followed by U+0301 @sc{COMBINING ACUTE ACCENT}.  Since
+the user would perceive this pair of characters as a single character,
+they would be grouped into a single grapheme cluster.
+
+But there are also grapheme clusters that consist of several base characters.
+For example, a Devanagari letter and a Devanagari vowel sign that follows it
+may form a grapheme cluster.  Similarly, some pairs of Thai characters and
+Hangul syllables (formed by two or three Hangul characters) are grapheme
+clusters.
+
+@menu
+* Grapheme cluster breaks in a string::
+* Grapheme cluster break property::
+@end menu
+
+@node Grapheme cluster breaks in a string
+@section Grapheme cluster breaks in a string
+
+The following functions find a single boundary between grapheme
+clusters in a string.
+
+@deftypefun void u8_grapheme_next (const uint8_t *@var{s}, const uint8_t *@var{end})
+@deftypefunx void u16_grapheme_next (const uint16_t *@var{s}, const uint16_t *@var{end})
+@deftypefunx void u32_grapheme_next (const uint32_t *@var{s}, const uint32_t *@var{end})
+Returns the start of the next grapheme cluster following @var{s},
+or @var{end} if no grapheme cluster break is encountered before it.
+Returns NULL if and only if @code{@var{s} == @var{end}}.
+@end deftypefun
+
+@deftypefun void u8_grapheme_prev (const uint8_t *@var{s}, const uint8_t *@var{start})
+@deftypefunx void u16_grapheme_prev (const uint16_t *@var{s}, const uint16_t *@var{start})
+@deftypefunx void u32_grapheme_prev (const uint32_t *@var{s}, const uint32_t *@var{start})
+Returns the start of the grapheme cluster preceding @var{s}, or
+@var{start} if no grapheme cluster break is encountered before it.
+Returns NULL if and only if @code{@var{s} == @var{start}}.
+@end deftypefun
+
+The following functions determine all of the grapheme cluster
+boundaries in a string.
+
+@deftypefun void u8_grapheme_breaks (const uint8_t *@var{s}, size_t @var{n}, char *@var{p})
+@deftypefunx void u16_grapheme_breaks (const uint16_t *@var{s}, size_t @var{n}, char *@var{p})
+@deftypefunx void u32_grapheme_breaks (const uint32_t *@var{s}, size_t @var{n}, char *@var{p})
+@deftypefunx void ulc_grapheme_breaks (const char *@var{s}, size_t @var{n}, char *@var{p})
+Determines the grapheme cluster break points in @var{s}, an array of
+@var{n} units, and stores the result at @code{@var{p}[0..@var{n}-1]}.
+@table @asis
+@item @code{@var{p}[i] = 1}
+means that there is a grapheme cluster boundary between
+@code{@var{s}[i-1]} and @code{@var{s}[i]}.
+@item @code{@var{p}[i] = 0}
+means that @code{@var{s}[i-1]} and @code{@var{s}[i]} are part of the
+same grapheme cluster.
+@end table
+@code{@var{p}[0]} is always set to 1, because there is always a
+grapheme cluster break at start of text.
+@end deftypefun
+
+@node Grapheme cluster break property
+@section Grapheme cluster break property
+
+This is a more low-level API.  The grapheme cluster break property is a
+property defined in Unicode Standard Annex #29, section ``Grapheme Cluster
+Boundaries'', see
+@url{http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries}.@texnl{}
+It is used for determining the grapheme cluster breaks in a string.
+
+The following are the possible values of the grapheme cluster break
+property.  More values may be added in the future.
+
+@deftypevr Constant int GBP_OTHER
+@deftypevrx Constant int GBP_CR
+@deftypevrx Constant int GBP_LF
+@deftypevrx Constant int GBP_CONTROL
+@deftypevrx Constant int GBP_EXTEND
+@deftypevrx Constant int GBP_PREPEND
+@deftypevrx Constant int GBP_SPACINGMARK
+@deftypevrx Constant int GBP_L
+@deftypevrx Constant int GBP_V
+@deftypevrx Constant int GBP_T
+@deftypevrx Constant int GBP_LV
+@deftypevrx Constant int GBP_LVT
+@end deftypevr
+
+The following function looks up the grapheme cluster break property of a
+character.
+
+@deftypefun int uc_graphemeclusterbreak_property (ucs4_t @var{uc})
+Returns the Grapheme_Cluster_Break property of a Unicode character.
+@end deftypefun
+
+The following function determines whether there is a grapheme cluster
+break between two Unicode characters.  It is the primitive upon which
+the higher-level functions in the previous section are directly based.
+
+@deftypefun bool uc_is_grapheme_break (ucs4_t @var{a}, ucs4_t @var{b})
+Returns true if there is an grapheme cluster boundary between Unicode
+characters @var{a} and @var{b}.
+
+There is always a grapheme cluster break at the start or end of text.
+You can specify zero for @var{a} or @var{b} to indicate start of text or end
+of text, respectively.
+
+This implements the extended (not legacy) grapheme cluster rules
+described in the Unicode standard, because the standard says that they
+are preferred.
+@end deftypefun
index d4206d5..6797fe8 100644 (file)
@@ -28,7 +28,7 @@ Denotes canonical decomposition.
 @end deftypevr
 
 @deftypevr Constant int UC_DECOMP_FONT
-UCD marker: @code{<font>}.  Denotes a font variant (e.g. a blackletter form).
+UCD marker: @code{<font>}.  Denotes a font variant (e.g@. a blackletter form).
 @end deftypevr
 
 @deftypevr Constant int UC_DECOMP_NOBREAK
index ad04f42..60f1daa 100644 (file)
@@ -17,6 +17,7 @@ essentially the equivalent of what @code{<string.h>} is for C strings.
 
 @cindex validity
 @cindex verification
+@cindex well-formed
 The following function is available to verify the integrity of a Unicode string.
 
 @deftypefun {const uint8_t *} u8_check (const uint8_t *@var{s}, size_t @var{n})
@@ -266,8 +267,10 @@ character in a Unicode string.
 @deftypefunx {const uint16_t *} u16_prev (ucs4_t *@var{puc}, const uint16_t *@var{s}, const uint16_t *@var{start})
 @deftypefunx {const uint32_t *} u32_prev (ucs4_t *@var{puc}, const uint32_t *@var{s}, const uint32_t *@var{start})
 Backward iteration step.  Advances the pointer to point to the previous
-character, or returns NULL if the beginning of the string had been reached.
+character (the one that ends at @code{@var{s}}), or returns NULL if the
+beginning of the string (specified by @code{@var{start}}) had been reached.
 Puts the character's @code{ucs4_t} representation in @code{*@var{puc}}.
+Note that this function works only on well-formed Unicode strings.
 @end deftypefun
 
 The following functions determine the length of a Unicode string.
index 6f06b92..08c273c 100644 (file)
@@ -2,7 +2,9 @@
 @chapter Word breaks in strings @code{<uniwbrk.h>}
 
 @cindex word breaks
+@cindex word boundaries
 @cindex breaks, word
+@cindex boundaries, between words
 This include file declares functions for determining where in a string
 ``words'' start and end.  Here ``words'' are not necessarily the same as
 entities that can be looked up in dictionaries, but rather groups of
index 4384b70..f8a5cf6 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 1 January 2010
-@set UPDATED-MONTH January 2010
-@set EDITION 0.9.3
-@set VERSION 0.9.3
+@set UPDATED 27 July 2012
+@set UPDATED-MONTH July 2012
+@set EDITION 0.9.4
+@set VERSION 0.9.4
index c415913..3758f6d 100644 (file)
@@ -1,5 +1,5 @@
 ## Makefile for the gnulib-local directory of GNU libunistring
-## Copyright (C) 2006-2009 Free Software Foundation, Inc.
+## Copyright (C) 2006-2011 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
 # Generate this list with
 # find . '(' -name Makefile.am ')' -prune -o -type f '!' '(' -name '*.orig' -or -name '*~' ')' -printf '%P\n' | sort | tr '\012' @ | sed 's/@$/%/;s/@/ \\@/g' | tr @% '\012\012'
 EXTRA_DIST = \
-lib/unicase.h.diff \
-lib/uniconv.h.diff \
-lib/unictype.h.diff \
-lib/unilbrk.h.diff \
-lib/uninorm.h.diff \
-lib/unistr.h.diff \
-lib/unitypes.h.diff \
-lib/uniwidth.h.diff \
+lib/unicase.in.h.diff \
+lib/uniconv.in.h.diff \
+lib/unictype.in.h.diff \
+lib/unigbrk.in.h.diff \
+lib/unilbrk.in.h.diff \
+lib/uninorm.in.h.diff \
+lib/unistr.in.h.diff \
+lib/unitypes.in.h.diff \
+lib/uniwidth.in.h.diff \
 modules/unictype/category-none-tests.diff
index b5e966c..435ac2d 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -34,11 +77,14 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = gnulib-local
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
+       $(top_srcdir)/gnulib-m4/absolute-header.m4 \
        $(top_srcdir)/gnulib-m4/alloca.m4 \
+       $(top_srcdir)/gnulib-m4/btowc.m4 \
        $(top_srcdir)/gnulib-m4/codeset.m4 \
+       $(top_srcdir)/gnulib-m4/configmake.m4 \
        $(top_srcdir)/gnulib-m4/eealloc.m4 \
        $(top_srcdir)/gnulib-m4/environ.m4 \
        $(top_srcdir)/gnulib-m4/errno_h.m4 \
@@ -47,11 +93,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/exponentf.m4 \
        $(top_srcdir)/gnulib-m4/exponentl.m4 \
        $(top_srcdir)/gnulib-m4/extensions.m4 \
+       $(top_srcdir)/gnulib-m4/extern-inline.m4 \
        $(top_srcdir)/gnulib-m4/fcntl-o.m4 \
+       $(top_srcdir)/gnulib-m4/fdopen.m4 \
        $(top_srcdir)/gnulib-m4/float_h.m4 \
        $(top_srcdir)/gnulib-m4/fpieee.m4 \
        $(top_srcdir)/gnulib-m4/frexp.m4 \
        $(top_srcdir)/gnulib-m4/frexpl.m4 \
+       $(top_srcdir)/gnulib-m4/fseterr.m4 \
        $(top_srcdir)/gnulib-m4/getpagesize.m4 \
        $(top_srcdir)/gnulib-m4/glibc21.m4 \
        $(top_srcdir)/gnulib-m4/gnulib-common.m4 \
@@ -63,16 +112,21 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/inline.m4 \
        $(top_srcdir)/gnulib-m4/intlmacosx.m4 \
        $(top_srcdir)/gnulib-m4/intmax_t.m4 \
+       $(top_srcdir)/gnulib-m4/inttypes-pri.m4 \
+       $(top_srcdir)/gnulib-m4/inttypes.m4 \
        $(top_srcdir)/gnulib-m4/inttypes_h.m4 \
        $(top_srcdir)/gnulib-m4/isnand.m4 \
        $(top_srcdir)/gnulib-m4/isnanf.m4 \
        $(top_srcdir)/gnulib-m4/isnanl.m4 \
+       $(top_srcdir)/gnulib-m4/iswblank.m4 \
        $(top_srcdir)/gnulib-m4/lcmessage.m4 \
        $(top_srcdir)/gnulib-m4/ldexpl.m4 \
        $(top_srcdir)/gnulib-m4/lib-ld.m4 \
        $(top_srcdir)/gnulib-m4/lib-link.m4 \
        $(top_srcdir)/gnulib-m4/lib-prefix.m4 \
+       $(top_srcdir)/gnulib-m4/libunistring-base.m4 \
        $(top_srcdir)/gnulib-m4/localcharset.m4 \
+       $(top_srcdir)/gnulib-m4/locale-ar.m4 \
        $(top_srcdir)/gnulib-m4/locale-fr.m4 \
        $(top_srcdir)/gnulib-m4/locale-ja.m4 \
        $(top_srcdir)/gnulib-m4/locale-tr.m4 \
@@ -89,27 +143,37 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/mbrtowc.m4 \
        $(top_srcdir)/gnulib-m4/mbsinit.m4 \
        $(top_srcdir)/gnulib-m4/mbstate_t.m4 \
+       $(top_srcdir)/gnulib-m4/mbtowc.m4 \
        $(top_srcdir)/gnulib-m4/memchr.m4 \
        $(top_srcdir)/gnulib-m4/minmax.m4 \
        $(top_srcdir)/gnulib-m4/mmap-anon.m4 \
+       $(top_srcdir)/gnulib-m4/msvc-inval.m4 \
+       $(top_srcdir)/gnulib-m4/msvc-nothrow.m4 \
        $(top_srcdir)/gnulib-m4/multiarch.m4 \
        $(top_srcdir)/gnulib-m4/nocrash.m4 \
+       $(top_srcdir)/gnulib-m4/off_t.m4 \
        $(top_srcdir)/gnulib-m4/printf-frexp.m4 \
        $(top_srcdir)/gnulib-m4/printf-frexpl.m4 \
        $(top_srcdir)/gnulib-m4/printf.m4 \
        $(top_srcdir)/gnulib-m4/putenv.m4 \
        $(top_srcdir)/gnulib-m4/relocatable-lib.m4 \
        $(top_srcdir)/gnulib-m4/setenv.m4 \
+       $(top_srcdir)/gnulib-m4/setlocale.m4 \
        $(top_srcdir)/gnulib-m4/signbit.m4 \
        $(top_srcdir)/gnulib-m4/size_max.m4 \
+       $(top_srcdir)/gnulib-m4/ssize_t.m4 \
        $(top_srcdir)/gnulib-m4/stdbool.m4 \
        $(top_srcdir)/gnulib-m4/stddef_h.m4 \
        $(top_srcdir)/gnulib-m4/stdint.m4 \
        $(top_srcdir)/gnulib-m4/stdint_h.m4 \
+       $(top_srcdir)/gnulib-m4/stdio_h.m4 \
        $(top_srcdir)/gnulib-m4/stdlib_h.m4 \
        $(top_srcdir)/gnulib-m4/strerror.m4 \
        $(top_srcdir)/gnulib-m4/string_h.m4 \
        $(top_srcdir)/gnulib-m4/strncat.m4 \
+       $(top_srcdir)/gnulib-m4/strstr.m4 \
+       $(top_srcdir)/gnulib-m4/sys_socket_h.m4 \
+       $(top_srcdir)/gnulib-m4/sys_types_h.m4 \
        $(top_srcdir)/gnulib-m4/thread.m4 \
        $(top_srcdir)/gnulib-m4/threadlib.m4 \
        $(top_srcdir)/gnulib-m4/unistd_h.m4 \
@@ -117,7 +181,9 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/warn-on-use.m4 \
        $(top_srcdir)/gnulib-m4/wchar_h.m4 \
        $(top_srcdir)/gnulib-m4/wchar_t.m4 \
+       $(top_srcdir)/gnulib-m4/wcrtomb.m4 \
        $(top_srcdir)/gnulib-m4/wctob.m4 \
+       $(top_srcdir)/gnulib-m4/wctomb.m4 \
        $(top_srcdir)/gnulib-m4/wctype_h.m4 \
        $(top_srcdir)/gnulib-m4/wcwidth.m4 \
        $(top_srcdir)/gnulib-m4/wint_t.m4 \
@@ -135,15 +201,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -151,6 +230,7 @@ AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
+ARFLAGS = @ARFLAGS@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -190,38 +270,97 @@ FGREP = @FGREP@
 FLOAT_H = @FLOAT_H@
 GLIBC21 = @GLIBC21@
 GLOBAL_SYMBOL_PIPE = @GLOBAL_SYMBOL_PIPE@
+GNULIB_ACOSF = @GNULIB_ACOSF@
 GNULIB_ACOSL = @GNULIB_ACOSL@
+GNULIB_ASINF = @GNULIB_ASINF@
 GNULIB_ASINL = @GNULIB_ASINL@
+GNULIB_ATAN2F = @GNULIB_ATAN2F@
+GNULIB_ATANF = @GNULIB_ATANF@
 GNULIB_ATANL = @GNULIB_ATANL@
 GNULIB_ATOLL = @GNULIB_ATOLL@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
+GNULIB_CBRT = @GNULIB_CBRT@
+GNULIB_CBRTF = @GNULIB_CBRTF@
+GNULIB_CBRTL = @GNULIB_CBRTL@
+GNULIB_CEIL = @GNULIB_CEIL@
 GNULIB_CEILF = @GNULIB_CEILF@
 GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_COPYSIGN = @GNULIB_COPYSIGN@
+GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@
+GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@
+GNULIB_COSF = @GNULIB_COSF@
+GNULIB_COSHF = @GNULIB_COSHF@
 GNULIB_COSL = @GNULIB_COSL@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
 GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXP2 = @GNULIB_EXP2@
+GNULIB_EXP2F = @GNULIB_EXP2F@
+GNULIB_EXP2L = @GNULIB_EXP2L@
+GNULIB_EXPF = @GNULIB_EXPF@
 GNULIB_EXPL = @GNULIB_EXPL@
+GNULIB_EXPM1 = @GNULIB_EXPM1@
+GNULIB_EXPM1F = @GNULIB_EXPM1F@
+GNULIB_EXPM1L = @GNULIB_EXPM1L@
+GNULIB_FABSF = @GNULIB_FABSF@
+GNULIB_FABSL = @GNULIB_FABSL@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
 GNULIB_FCHDIR = @GNULIB_FCHDIR@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
+GNULIB_FCLOSE = @GNULIB_FCLOSE@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FLOOR = @GNULIB_FLOOR@
 GNULIB_FLOORF = @GNULIB_FLOORF@
 GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FMA = @GNULIB_FMA@
+GNULIB_FMAF = @GNULIB_FMAF@
+GNULIB_FMAL = @GNULIB_FMAL@
+GNULIB_FMOD = @GNULIB_FMOD@
+GNULIB_FMODF = @GNULIB_FMODF@
+GNULIB_FMODL = @GNULIB_FMODL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF = @GNULIB_FPRINTF@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FPURGE = @GNULIB_FPURGE@
+GNULIB_FPUTC = @GNULIB_FPUTC@
+GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
 GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPF = @GNULIB_FREXPF@
 GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
 GNULIB_FSYNC = @GNULIB_FSYNC@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
 GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
 GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
 GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
+GNULIB_GETLINE = @GNULIB_GETLINE@
 GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
@@ -229,17 +368,45 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_HYPOT = @GNULIB_HYPOT@
+GNULIB_HYPOTF = @GNULIB_HYPOTF@
+GNULIB_HYPOTL = @GNULIB_HYPOTL@
+GNULIB_ICONV = @GNULIB_ICONV@
+GNULIB_ILOGB = @GNULIB_ILOGB@
+GNULIB_ILOGBF = @GNULIB_ILOGBF@
+GNULIB_ILOGBL = @GNULIB_ILOGBL@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 GNULIB_ISFINITE = @GNULIB_ISFINITE@
 GNULIB_ISINF = @GNULIB_ISINF@
 GNULIB_ISNAN = @GNULIB_ISNAN@
 GNULIB_ISNAND = @GNULIB_ISNAND@
 GNULIB_ISNANF = @GNULIB_ISNANF@
 GNULIB_ISNANL = @GNULIB_ISNANL@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPF = @GNULIB_LDEXPF@
 GNULIB_LDEXPL = @GNULIB_LDEXPL@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOG = @GNULIB_LOG@
+GNULIB_LOG10 = @GNULIB_LOG10@
+GNULIB_LOG10F = @GNULIB_LOG10F@
+GNULIB_LOG10L = @GNULIB_LOG10L@
+GNULIB_LOG1P = @GNULIB_LOG1P@
+GNULIB_LOG1PF = @GNULIB_LOG1PF@
+GNULIB_LOG1PL = @GNULIB_LOG1PL@
+GNULIB_LOG2 = @GNULIB_LOG2@
+GNULIB_LOG2F = @GNULIB_LOG2F@
+GNULIB_LOG2L = @GNULIB_LOG2L@
 GNULIB_LOGB = @GNULIB_LOGB@
+GNULIB_LOGBF = @GNULIB_LOGBF@
+GNULIB_LOGBL = @GNULIB_LOGBL@
+GNULIB_LOGF = @GNULIB_LOGF@
 GNULIB_LOGL = @GNULIB_LOGL@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -262,6 +429,7 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@
 GNULIB_MBSSPN = @GNULIB_MBSSPN@
 GNULIB_MBSSTR = @GNULIB_MBSSTR@
 GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MBTOWC = @GNULIB_MBTOWC@
 GNULIB_MEMCHR = @GNULIB_MEMCHR@
 GNULIB_MEMMEM = @GNULIB_MEMMEM@
 GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
@@ -271,32 +439,73 @@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
 GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
 GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
 GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
+GNULIB_MODF = @GNULIB_MODF@
+GNULIB_MODFF = @GNULIB_MODFF@
+GNULIB_MODFL = @GNULIB_MODFL@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_POWF = @GNULIB_POWF@
 GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_REMAINDER = @GNULIB_REMAINDER@
+GNULIB_REMAINDERF = @GNULIB_REMAINDERF@
+GNULIB_REMAINDERL = @GNULIB_REMAINDERL@
+GNULIB_REMOVE = @GNULIB_REMOVE@
+GNULIB_RENAME = @GNULIB_RENAME@
+GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_RINT = @GNULIB_RINT@
+GNULIB_RINTF = @GNULIB_RINTF@
+GNULIB_RINTL = @GNULIB_RINTL@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_ROUND = @GNULIB_ROUND@
 GNULIB_ROUNDF = @GNULIB_ROUNDF@
 GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
 GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SINF = @GNULIB_SINF@
+GNULIB_SINHF = @GNULIB_SINHF@
 GNULIB_SINL = @GNULIB_SINL@
 GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_SQRTF = @GNULIB_SQRTF@
 GNULIB_SQRTL = @GNULIB_SQRTL@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
 GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
 GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
 GNULIB_STRDUP = @GNULIB_STRDUP@
 GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRERROR_R = @GNULIB_STRERROR_R@
 GNULIB_STRNCAT = @GNULIB_STRNCAT@
 GNULIB_STRNDUP = @GNULIB_STRNDUP@
 GNULIB_STRNLEN = @GNULIB_STRNLEN@
@@ -305,87 +514,197 @@ GNULIB_STRSEP = @GNULIB_STRSEP@
 GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
 GNULIB_STRSTR = @GNULIB_STRSTR@
 GNULIB_STRTOD = @GNULIB_STRTOD@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
 GNULIB_STRTOLL = @GNULIB_STRTOLL@
 GNULIB_STRTOULL = @GNULIB_STRTOULL@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
+GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TANF = @GNULIB_TANF@
+GNULIB_TANHF = @GNULIB_TANHF@
 GNULIB_TANL = @GNULIB_TANL@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TRUNC = @GNULIB_TRUNC@
 GNULIB_TRUNCF = @GNULIB_TRUNCF@
 GNULIB_TRUNCL = @GNULIB_TRUNCL@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
 GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
 GNULIB_UNSETENV = @GNULIB_UNSETENV@
 GNULIB_USLEEP = @GNULIB_USLEEP@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
+GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
 GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
 GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
 GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
 GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACOSF = @HAVE_ACOSF@
 HAVE_ACOSL = @HAVE_ACOSL@
+HAVE_ASINF = @HAVE_ASINF@
 HAVE_ASINL = @HAVE_ASINL@
+HAVE_ATAN2F = @HAVE_ATAN2F@
+HAVE_ATANF = @HAVE_ATANF@
 HAVE_ATANL = @HAVE_ATANL@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CBRT = @HAVE_CBRT@
+HAVE_CBRTF = @HAVE_CBRTF@
+HAVE_CBRTL = @HAVE_CBRTL@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_COPYSIGN = @HAVE_COPYSIGN@
+HAVE_COPYSIGNL = @HAVE_COPYSIGNL@
+HAVE_COSF = @HAVE_COSF@
+HAVE_COSHF = @HAVE_COSHF@
 HAVE_COSL = @HAVE_COSL@
 HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
 HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
 HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@
+HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@
 HAVE_DECL_CEILF = @HAVE_DECL_CEILF@
 HAVE_DECL_CEILL = @HAVE_DECL_CEILL@
+HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@
 HAVE_DECL_COSL = @HAVE_DECL_COSL@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@
+HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@
+HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@
 HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@
 HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
 HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@
+HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@
+HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@
+HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@
 HAVE_DECL_LOGB = @HAVE_DECL_LOGB@
 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_REMAINDER = @HAVE_DECL_REMAINDER@
+HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@
+HAVE_DECL_RINTF = @HAVE_DECL_RINTF@
 HAVE_DECL_ROUND = @HAVE_DECL_ROUND@
 HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@
 HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
 HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
 HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
 HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
 HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
 HAVE_DECL_TANL = @HAVE_DECL_TANL@
 HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
 HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
 HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPF = @HAVE_EXPF@
 HAVE_EXPL = @HAVE_EXPL@
+HAVE_EXPM1 = @HAVE_EXPM1@
+HAVE_EXPM1F = @HAVE_EXPM1F@
+HAVE_FABSF = @HAVE_FABSF@
+HAVE_FABSL = @HAVE_FABSL@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FMA = @HAVE_FMA@
+HAVE_FMAF = @HAVE_FMAF@
+HAVE_FMAL = @HAVE_FMAL@
+HAVE_FMODF = @HAVE_FMODF@
+HAVE_FMODL = @HAVE_FMODL@
+HAVE_FREXPF = @HAVE_FREXPF@
+HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
 HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@
 HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
 HAVE_GETGROUPS = @HAVE_GETGROUPS@
 HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
@@ -394,6 +713,12 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GLOBAL_SYMBOL_PIPE = @HAVE_GLOBAL_SYMBOL_PIPE@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_HYPOTF = @HAVE_HYPOTF@
+HAVE_HYPOTL = @HAVE_HYPOTL@
+HAVE_ILOGB = @HAVE_ILOGB@
+HAVE_ILOGBF = @HAVE_ILOGBF@
+HAVE_ILOGBL = @HAVE_ILOGBL@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISNAND = @HAVE_ISNAND@
 HAVE_ISNANF = @HAVE_ISNANF@
@@ -401,11 +726,19 @@ HAVE_ISNANL = @HAVE_ISNANL@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
+HAVE_LOG10F = @HAVE_LOG10F@
+HAVE_LOG10L = @HAVE_LOG10L@
+HAVE_LOG1P = @HAVE_LOG1P@
+HAVE_LOG1PF = @HAVE_LOG1PF@
+HAVE_LOG1PL = @HAVE_LOG1PL@
+HAVE_LOGBF = @HAVE_LOGBF@
+HAVE_LOGBL = @HAVE_LOGBL@
+HAVE_LOGF = @HAVE_LOGF@
 HAVE_LOGL = @HAVE_LOGL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -419,24 +752,45 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MODFF = @HAVE_MODFF@
+HAVE_MODFL = @HAVE_MODFL@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POWF = @HAVE_POWF@
 HAVE_PREAD = @HAVE_PREAD@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
 HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_REMAINDER = @HAVE_REMAINDER@
+HAVE_REMAINDERF = @HAVE_REMAINDERF@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_RINT = @HAVE_RINT@
+HAVE_RINTL = @HAVE_RINTL@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SINF = @HAVE_SINF@
+HAVE_SINHF = @HAVE_SINHF@
 HAVE_SINL = @HAVE_SINL@
 HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_SQRTF = @HAVE_SQRTF@
 HAVE_SQRTL = @HAVE_SQRTL@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -457,24 +811,59 @@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_TANF = @HAVE_TANF@
+HAVE_TANHF = @HAVE_TANHF@
 HAVE_TANL = @HAVE_TANL@
-HAVE_TTYNAME_R = @HAVE_TTYNAME_R@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
 HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_VDPRINTF = @HAVE_VDPRINTF@
 HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCHAR_T = @HAVE_WCHAR_T@
+HAVE_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
 HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
 HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
 HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
 HEXVERSION = @HEXVERSION@
+ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
@@ -483,6 +872,8 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 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@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
@@ -496,9 +887,22 @@ LIBS = @LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
+LIBUNISTRING_UNICASE_H = @LIBUNISTRING_UNICASE_H@
+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_UNINAME_H = @LIBUNISTRING_UNINAME_H@
+LIBUNISTRING_UNINORM_H = @LIBUNISTRING_UNINORM_H@
+LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@
+LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWBRK_H = @LIBUNISTRING_UNIWBRK_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+LOCALE_AR = @LOCALE_AR@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
 LOCALE_JA = @LOCALE_JA@
@@ -511,29 +915,36 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 NAMESPACING = @NAMESPACING@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_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@
+NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
 NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
+NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_ICONV_H = @NEXT_ICONV_H@
+NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
 NEXT_MATH_H = @NEXT_MATH_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
 NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
@@ -552,86 +963,192 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 RC = @RC@
 RELOCATABLE = @RELOCATABLE@
 REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CBRTF = @REPLACE_CBRTF@
+REPLACE_CBRTL = @REPLACE_CBRTL@
+REPLACE_CEIL = @REPLACE_CEIL@
 REPLACE_CEILF = @REPLACE_CEILF@
 REPLACE_CEILL = @REPLACE_CEILL@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_EXP2 = @REPLACE_EXP2@
+REPLACE_EXP2L = @REPLACE_EXP2L@
+REPLACE_EXPM1 = @REPLACE_EXPM1@
+REPLACE_EXPM1F = @REPLACE_EXPM1F@
+REPLACE_FABSL = @REPLACE_FABSL@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOOR = @REPLACE_FLOOR@
 REPLACE_FLOORF = @REPLACE_FLOORF@
 REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FMA = @REPLACE_FMA@
+REPLACE_FMAF = @REPLACE_FMAF@
+REPLACE_FMAL = @REPLACE_FMAL@
+REPLACE_FMOD = @REPLACE_FMOD@
+REPLACE_FMODF = @REPLACE_FMODF@
+REPLACE_FMODL = @REPLACE_FMODL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
 REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPF = @REPLACE_FREXPF@
 REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETDELIM = @REPLACE_GETDELIM@
+REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@
+REPLACE_HYPOT = @REPLACE_HYPOT@
+REPLACE_HYPOTF = @REPLACE_HYPOTF@
+REPLACE_HYPOTL = @REPLACE_HYPOTL@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_ILOGB = @REPLACE_ILOGB@
+REPLACE_ILOGBF = @REPLACE_ILOGBF@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISFINITE = @REPLACE_ISFINITE@
 REPLACE_ISINF = @REPLACE_ISINF@
 REPLACE_ISNAN = @REPLACE_ISNAN@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LDEXPL = @REPLACE_LDEXPL@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOG = @REPLACE_LOG@
+REPLACE_LOG10 = @REPLACE_LOG10@
+REPLACE_LOG10F = @REPLACE_LOG10F@
+REPLACE_LOG10L = @REPLACE_LOG10L@
+REPLACE_LOG1P = @REPLACE_LOG1P@
+REPLACE_LOG1PF = @REPLACE_LOG1PF@
+REPLACE_LOG1PL = @REPLACE_LOG1PL@
+REPLACE_LOG2 = @REPLACE_LOG2@
+REPLACE_LOG2F = @REPLACE_LOG2F@
+REPLACE_LOG2L = @REPLACE_LOG2L@
+REPLACE_LOGB = @REPLACE_LOGB@
+REPLACE_LOGBF = @REPLACE_LOGBF@
+REPLACE_LOGBL = @REPLACE_LOGBL@
+REPLACE_LOGF = @REPLACE_LOGF@
+REPLACE_LOGL = @REPLACE_LOGL@
 REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MALLOC = @REPLACE_MALLOC@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBTOWC = @REPLACE_MBTOWC@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_MODF = @REPLACE_MODF@
+REPLACE_MODFF = @REPLACE_MODFF@
+REPLACE_MODFL = @REPLACE_MODFL@
 REPLACE_NAN = @REPLACE_NAN@
 REPLACE_NULL = @REPLACE_NULL@
+REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
+REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
+REPLACE_REMAINDER = @REPLACE_REMAINDER@
+REPLACE_REMAINDERF = @REPLACE_REMAINDERF@
+REPLACE_REMAINDERL = @REPLACE_REMAINDERL@
+REPLACE_REMOVE = @REPLACE_REMOVE@
+REPLACE_RENAME = @REPLACE_RENAME@
+REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_ROUND = @REPLACE_ROUND@
 REPLACE_ROUNDF = @REPLACE_ROUNDF@
 REPLACE_ROUNDL = @REPLACE_ROUNDL@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
 REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
 REPLACE_SLEEP = @REPLACE_SLEEP@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_SQRTL = @REPLACE_SQRTL@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
 REPLACE_STRNCAT = @REPLACE_STRNCAT@
 REPLACE_STRNDUP = @REPLACE_STRNDUP@
 REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TRUNC = @REPLACE_TRUNC@
+REPLACE_TRUNCF = @REPLACE_TRUNCF@
 REPLACE_TRUNCL = @REPLACE_TRUNCL@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
 REPLACE_UNSETENV = @REPLACE_UNSETENV@
 REPLACE_USLEEP = @REPLACE_USLEEP@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
 SED = @SED@
@@ -644,17 +1161,21 @@ STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
 TEXI2DVI = @TEXI2DVI@
+UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
+UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 VERSION = @VERSION@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 YIELD_LIB = @YIELD_LIB@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -690,9 +1211,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+lispdir = @lispdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -700,6 +1221,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -712,14 +1234,15 @@ top_srcdir = @top_srcdir@
 # Generate this list with
 # find . '(' -name Makefile.am ')' -prune -o -type f '!' '(' -name '*.orig' -or -name '*~' ')' -printf '%P\n' | sort | tr '\012' @ | sed 's/@$/%/;s/@/ \\@/g' | tr @% '\012\012'
 EXTRA_DIST = \
-lib/unicase.h.diff \
-lib/uniconv.h.diff \
-lib/unictype.h.diff \
-lib/unilbrk.h.diff \
-lib/uninorm.h.diff \
-lib/unistr.h.diff \
-lib/unitypes.h.diff \
-lib/uniwidth.h.diff \
+lib/unicase.in.h.diff \
+lib/uniconv.in.h.diff \
+lib/unictype.in.h.diff \
+lib/unigbrk.in.h.diff \
+lib/unilbrk.in.h.diff \
+lib/uninorm.in.h.diff \
+lib/unistr.in.h.diff \
+lib/unitypes.in.h.diff \
+lib/uniwidth.in.h.diff \
 modules/unictype/category-none-tests.diff
 
 all: all-am
@@ -761,11 +1284,11 @@ mostlyclean-libtool:
 
 clean-libtool:
        -rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -812,10 +1335,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -896,15 +1424,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-       distclean distclean-generic distclean-libtool distdir dvi \
-       dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dvi install-dvi-am \
-       install-exec install-exec-am install-html install-html-am \
-       install-info install-info-am install-man install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       installcheck installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+       cscopelist-am ctags-am distclean distclean-generic \
+       distclean-libtool distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
similarity index 72%
rename from gnulib-local/lib/unicase.h.diff
rename to gnulib-local/lib/unicase.in.h.diff
index 1381770..6fa4261 100644 (file)
@@ -1,5 +1,5 @@
-*** unicase.h.orig     2009-04-05 19:30:26.000000000 +0200
---- unicase.h  2009-04-10 16:21:23.000000000 +0200
+*** unicase.in.h.orig  2009-04-05 19:30:26.000000000 +0200
+--- unicase.in.h       2009-04-10 16:21:23.000000000 +0200
 ***************
 *** 20,26 ****
   #include "unitypes.h"
similarity index 82%
rename from gnulib-local/lib/uniconv.h.diff
rename to gnulib-local/lib/uniconv.in.h.diff
index d640323..341caba 100644 (file)
@@ -1,5 +1,5 @@
-*** uniconv.h.orig     2009-04-10 23:40:31.000000000 +0200
---- uniconv.h  2009-04-10 23:41:19.000000000 +0200
+*** uniconv.in.h.orig  2009-04-10 23:40:31.000000000 +0200
+--- uniconv.in.h       2009-04-10 23:41:19.000000000 +0200
 ***************
 *** 23,35 ****
   #include "unitypes.h"
similarity index 76%
rename from gnulib-local/lib/unictype.h.diff
rename to gnulib-local/lib/unictype.in.h.diff
index 14347bc..cb68885 100644 (file)
@@ -1,5 +1,5 @@
-*** unictype.h.orig    2009-04-05 12:15:57.000000000 +0200
---- unictype.h 2009-04-12 04:31:36.000000000 +0200
+*** unictype.in.h.orig 2009-04-05 12:15:57.000000000 +0200
+--- unictype.in.h      2009-04-12 04:31:36.000000000 +0200
 ***************
 *** 19,26 ****
   
diff --git a/gnulib-local/lib/unigbrk.in.h.diff b/gnulib-local/lib/unigbrk.in.h.diff
new file mode 100644 (file)
index 0000000..ed6c7e3
--- /dev/null
@@ -0,0 +1,19 @@
+*** unigbrk.in.h.orig  2011-01-07 17:40:15.000000000 +0100
+--- unigbrk.in.h       2011-03-29 23:36:45.000000000 +0200
+***************
+*** 19,25 ****
+  #define _UNIGBRK_H
+  
+  /* Get bool.  */
+! #include <stdbool.h>
+  
+  /* Get size_t. */
+  #include <stddef.h>
+--- 19,25 ----
+  #define _UNIGBRK_H
+  
+  /* Get bool.  */
+! #include <unistring/stdbool.h>
+  
+  /* Get size_t. */
+  #include <stddef.h>
similarity index 73%
rename from gnulib-local/lib/unilbrk.h.diff
rename to gnulib-local/lib/unilbrk.in.h.diff
index a5b86c3..9731c8e 100644 (file)
@@ -1,5 +1,5 @@
-*** unilbrk.h.orig     2008-05-10 14:46:17.000000000 +0200
---- unilbrk.h  2009-04-10 22:39:40.000000000 +0200
+*** unilbrk.in.h.orig  2008-05-10 14:46:17.000000000 +0200
+--- unilbrk.in.h       2009-04-10 22:39:40.000000000 +0200
 ***************
 *** 24,30 ****
   #include "unitypes.h"
similarity index 65%
rename from gnulib-local/lib/uninorm.h.diff
rename to gnulib-local/lib/uninorm.in.h.diff
index 89d8995..47f644e 100644 (file)
@@ -1,5 +1,5 @@
-*** uninorm.h.orig     2009-04-05 12:38:24.000000000 +0200
---- uninorm.h  2009-04-12 04:31:52.000000000 +0200
+*** uninorm.in.h.orig  2009-04-05 12:38:24.000000000 +0200
+--- uninorm.in.h       2009-04-12 04:31:52.000000000 +0200
 ***************
 *** 18,23 ****
 --- 18,26 ----
similarity index 81%
rename from gnulib-local/lib/unistr.h.diff
rename to gnulib-local/lib/unistr.in.h.diff
index 3e59093..0b31c86 100644 (file)
@@ -1,5 +1,5 @@
-*** unistr.h.orig      2009-12-24 23:21:27.000000000 +0100
---- unistr.h   2009-12-25 02:04:40.000000000 +0100
+*** unistr.in.h.orig   2009-12-24 23:21:27.000000000 +0100
+--- unistr.in.h        2009-12-25 02:04:40.000000000 +0100
 ***************
 *** 20,29 ****
   #include "unitypes.h"
similarity index 77%
rename from gnulib-local/lib/unitypes.h.diff
rename to gnulib-local/lib/unitypes.in.h.diff
index 39597ff..f490695 100644 (file)
@@ -1,5 +1,5 @@
-*** unitypes.h.orig    2009-04-05 19:30:36.000000000 +0200
---- unitypes.h 2009-04-10 16:22:07.000000000 +0200
+*** unitypes.in.h.orig 2009-04-05 19:30:36.000000000 +0200
+--- unitypes.in.h      2009-04-10 16:22:07.000000000 +0200
 ***************
 *** 18,24 ****
   #define _UNITYPES_H
similarity index 74%
rename from gnulib-local/lib/uniwidth.h.diff
rename to gnulib-local/lib/uniwidth.in.h.diff
index 7448d4c..ded6c81 100644 (file)
@@ -1,5 +1,5 @@
-*** uniwidth.h.orig    2007-10-07 17:24:38.000000000 +0200
---- uniwidth.h 2009-04-10 22:39:46.000000000 +0200
+*** uniwidth.in.h.orig 2007-10-07 17:24:38.000000000 +0200
+--- uniwidth.in.h      2009-04-10 22:39:46.000000000 +0200
 ***************
 *** 23,29 ****
   #include <stddef.h>
index 4e8b507..c9705ed 100644 (file)
@@ -10,5 +10,5 @@
   TESTS += test-categ_none
   check_PROGRAMS += test-categ_none
   test_categ_none_SOURCES = unictype/test-categ_none.c
+  test_categ_none_LDADD = $(LDADD) $(LIBUNISTRING)
 + endif
-  
index 301469b..8eca551 100644 (file)
@@ -1,12 +1,28 @@
-# 00gnulib.m4 serial 2
-dnl Copyright (C) 2009-2010 Free Software Foundation, Inc.
+# 00gnulib.m4 serial 3
+dnl Copyright (C) 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 dnl This file must be named something that sorts before all other
 dnl gnulib-provided .m4 files.  It is needed until such time as we can
-dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE semantics.
+dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE and
+dnl m4_divert semantics.
+
+# Until autoconf 2.63, handling of the diversion stack required m4_init
+# to be called first; but this does not happen with aclocal.  Wrapping
+# the entire execution in another layer of the diversion stack fixes this.
+# Worse, prior to autoconf 2.62, m4_wrap depended on the underlying m4
+# for whether it was FIFO or LIFO; in order to properly balance with
+# m4_init, we need to undo our push just before anything wrapped within
+# the m4_init body.  The way to ensure this is to wrap both sides of
+# m4_init with a one-shot macro that does the pop at the right time.
+m4_ifndef([_m4_divert_diversion],
+[m4_divert_push([KILL])
+m4_define([gl_divert_fixup], [m4_divert_pop()m4_define([$0])])
+m4_define([m4_init],
+  [gl_divert_fixup()]m4_defn([m4_init])[gl_divert_fixup()])])
+
 
 # AC_DEFUN_ONCE([NAME], VALUE)
 # ----------------------------
diff --git a/gnulib-m4/absolute-header.m4 b/gnulib-m4/absolute-header.m4
new file mode 100644 (file)
index 0000000..ce3e39e
--- /dev/null
@@ -0,0 +1,102 @@
+# absolute-header.m4 serial 16
+dnl Copyright (C) 2006-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Derek Price.
+
+# gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...)
+# ---------------------------------------
+# Find the absolute name of a header file, testing first if the header exists.
+# If the header were sys/inttypes.h, this macro would define
+# ABSOLUTE_SYS_INTTYPES_H to the '""' quoted absolute name of sys/inttypes.h
+# in config.h
+# (e.g. '#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"').
+# The three "///" are to pacify Sun C 5.8, which otherwise would say
+# "warning: #include of /usr/include/... may be non-portable".
+# Use '""', not '<>', so that the /// cannot be confused with a C99 comment.
+# Note: This macro assumes that the header file is not empty after
+# preprocessing, i.e. it does not only define preprocessor macros but also
+# provides some type/enum definitions or function/variable declarations.
+AC_DEFUN([gl_ABSOLUTE_HEADER],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_PREPROC_REQUIRE()dnl
+dnl FIXME: gl_absolute_header and ac_header_exists must be used unquoted
+dnl until we can assume autoconf 2.64 or newer.
+m4_foreach_w([gl_HEADER_NAME], [$1],
+  [AS_VAR_PUSHDEF([gl_absolute_header],
+                  [gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl
+  AC_CACHE_CHECK([absolute name of <]m4_defn([gl_HEADER_NAME])[>],
+    m4_defn([gl_absolute_header]),
+    [AS_VAR_PUSHDEF([ac_header_exists],
+                    [ac_cv_header_]m4_defn([gl_HEADER_NAME]))dnl
+    AC_CHECK_HEADERS_ONCE(m4_defn([gl_HEADER_NAME]))dnl
+    if test AS_VAR_GET(ac_header_exists) = yes; then
+      gl_ABSOLUTE_HEADER_ONE(m4_defn([gl_HEADER_NAME]))
+    fi
+    AS_VAR_POPDEF([ac_header_exists])dnl
+    ])dnl
+  AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_defn([gl_HEADER_NAME])),
+                     ["AS_VAR_GET(gl_absolute_header)"],
+                     [Define this to an absolute name of <]m4_defn([gl_HEADER_NAME])[>.])
+  AS_VAR_POPDEF([gl_absolute_header])dnl
+])dnl
+])# gl_ABSOLUTE_HEADER
+
+# gl_ABSOLUTE_HEADER_ONE(HEADER)
+# ------------------------------
+# Like gl_ABSOLUTE_HEADER, except that:
+#   - it assumes that the header exists,
+#   - it uses the current CPPFLAGS,
+#   - it does not cache the result,
+#   - it is silent.
+AC_DEFUN([gl_ABSOLUTE_HEADER_ONE],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote([$1])[[>]])])
+  dnl AIX "xlc -E" and "cc -E" omit #line directives for header files
+  dnl that contain only a #include of other header files and no
+  dnl non-comment tokens of their own. This leads to a failure to
+  dnl detect the absolute name of <dirent.h>, <signal.h>, <poll.h>
+  dnl and others. The workaround is to force preservation of comments
+  dnl through option -C. This ensures all necessary #line directives
+  dnl are present. GCC supports option -C as well.
+  case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+changequote(,)
+  case "$host_os" in
+    mingw*)
+      dnl For the sake of native Windows compilers (excluding gcc),
+      dnl treat backslash as a directory separator, like /.
+      dnl Actually, these compilers use a double-backslash as
+      dnl directory separator, inside the
+      dnl   # line "filename"
+      dnl directives.
+      gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+  dnl A sed expression that turns a string into a basic regular
+  dnl expression, for use within "/.../".
+  gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo '$1' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+changequote([,])
+  dnl eval is necessary to expand gl_absname_cpp.
+  dnl Ultrix and Pyramid sh refuse to redirect output of eval,
+  dnl so use subshell.
+  AS_VAR_SET([gl_cv_absolute_]AS_TR_SH([[$1]]),
+[`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
+  sed -n "$gl_absolute_header_sed"`])
+])
index f3ee343..d7bdea6 100644 (file)
@@ -1,5 +1,5 @@
-# alloca.m4 serial 9
-dnl Copyright (C) 2002-2004, 2006-2007, 2009-2010 Free Software Foundation,
+# alloca.m4 serial 14
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2014 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -7,10 +7,6 @@ dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_FUNC_ALLOCA],
 [
-  dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
-  AC_REQUIRE([AC_PROG_CPP])
-  AC_REQUIRE([AC_PROG_EGREP])
-
   AC_REQUIRE([AC_FUNC_ALLOCA])
   if test $ac_cv_func_alloca_works = no; then
     gl_PREREQ_ALLOCA
@@ -40,8 +36,86 @@ AC_DEFUN([gl_FUNC_ALLOCA],
     ALLOCA_H=alloca.h
   fi
   AC_SUBST([ALLOCA_H])
+  AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"])
 ])
 
 # Prerequisites of lib/alloca.c.
 # STACK_DIRECTION is already handled by AC_FUNC_ALLOCA.
 AC_DEFUN([gl_PREREQ_ALLOCA], [:])
+
+# This works around a bug in autoconf <= 2.68.
+# See <http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00277.html>.
+
+m4_version_prereq([2.69], [] ,[
+
+# This is taken from the following Autoconf patch:
+# http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497
+
+# _AC_LIBOBJ_ALLOCA
+# -----------------
+# Set up the LIBOBJ replacement of 'alloca'.  Well, not exactly
+# AC_LIBOBJ since we actually set the output variable 'ALLOCA'.
+# Nevertheless, for Automake, AC_LIBSOURCES it.
+m4_define([_AC_LIBOBJ_ALLOCA],
+[# The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble.  Some versions do not even contain alloca or
+# contain a buggy version.  If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+AC_LIBSOURCES(alloca.c)
+AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl
+AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.])
+
+AC_CACHE_CHECK(whether 'alloca.c' needs Cray hooks, ac_cv_os_cray,
+[AC_EGREP_CPP(webecray,
+[#if defined CRAY && ! defined CRAY2
+webecray
+#else
+wenotbecray
+#endif
+], ac_cv_os_cray=yes, ac_cv_os_cray=no)])
+if test $ac_cv_os_cray = yes; then
+  for ac_func in _getb67 GETB67 getb67; do
+    AC_CHECK_FUNC($ac_func,
+                  [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func,
+                                      [Define to one of '_getb67', 'GETB67',
+                                       'getb67' for Cray-2 and Cray-YMP
+                                       systems. This function is required for
+                                       'alloca.c' support on those systems.])
+    break])
+  done
+fi
+
+AC_CACHE_CHECK([stack direction for C alloca],
+               [ac_cv_c_stack_direction],
+[AC_RUN_IFELSE([AC_LANG_SOURCE(
+[AC_INCLUDES_DEFAULT
+int
+find_stack_direction (int *addr, int depth)
+{
+  int dir, dummy = 0;
+  if (! addr)
+    addr = &dummy;
+  *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+  dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+  return dir + dummy;
+}
+
+int
+main (int argc, char **argv)
+{
+  return find_stack_direction (0, argc + !argv + 20) < 0;
+}])],
+               [ac_cv_c_stack_direction=1],
+               [ac_cv_c_stack_direction=-1],
+               [ac_cv_c_stack_direction=0])])
+AH_VERBATIM([STACK_DIRECTION],
+[/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at runtime.
+        STACK_DIRECTION > 0 => grows toward higher addresses
+        STACK_DIRECTION < 0 => grows toward lower addresses
+        STACK_DIRECTION = 0 => direction of growth unknown */
+@%:@undef STACK_DIRECTION])dnl
+AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
+])# _AC_LIBOBJ_ALLOCA
+])
diff --git a/gnulib-m4/btowc.m4 b/gnulib-m4/btowc.m4
new file mode 100644 (file)
index 0000000..9988944
--- /dev/null
@@ -0,0 +1,116 @@
+# btowc.m4 serial 10
+dnl Copyright (C) 2008-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_BTOWC],
+[
+  AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+
+  dnl Check whether <wchar.h> is usable at all, first. Otherwise the test
+  dnl program below may lead to an endless loop. See
+  dnl <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42440>.
+  AC_REQUIRE([gl_WCHAR_H_INLINE_OK])
+
+  AC_CHECK_FUNCS_ONCE([btowc])
+  if test $ac_cv_func_btowc = no; then
+    HAVE_BTOWC=0
+  else
+
+    AC_REQUIRE([AC_PROG_CC])
+    AC_REQUIRE([gt_LOCALE_FR])
+    AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+    dnl Cygwin 1.7.2 btowc('\0') is WEOF, not 0.
+    AC_CACHE_CHECK([whether btowc(0) is correct],
+      [gl_cv_func_btowc_nul],
+      [
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  if (btowc ('\0') != 0)
+    return 1;
+  return 0;
+}]])],
+          [gl_cv_func_btowc_nul=yes],
+          [gl_cv_func_btowc_nul=no],
+          [
+changequote(,)dnl
+           case "$host_os" in
+                      # Guess no on Cygwin.
+             cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
+                      # Guess yes otherwise.
+             *)       gl_cv_func_btowc_nul="guessing yes" ;;
+           esac
+changequote([,])dnl
+          ])
+      ])
+
+    dnl IRIX 6.5 btowc(EOF) is 0xFF, not WEOF.
+    AC_CACHE_CHECK([whether btowc(EOF) is correct],
+      [gl_cv_func_btowc_eof],
+      [
+        dnl Initial guess, used when cross-compiling or when no suitable locale
+        dnl is present.
+changequote(,)dnl
+        case "$host_os" in
+                 # Guess no on IRIX.
+          irix*) gl_cv_func_btowc_eof="guessing no" ;;
+                 # Guess yes otherwise.
+          *)     gl_cv_func_btowc_eof="guessing yes" ;;
+        esac
+changequote([,])dnl
+        if test $LOCALE_FR != none; then
+          AC_RUN_IFELSE(
+            [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+    {
+      if (btowc (EOF) != WEOF)
+        return 1;
+    }
+  return 0;
+}]])],
+            [gl_cv_func_btowc_eof=yes],
+            [gl_cv_func_btowc_eof=no],
+            [:])
+        fi
+      ])
+
+    case "$gl_cv_func_btowc_nul" in
+      *yes) ;;
+      *) REPLACE_BTOWC=1 ;;
+    esac
+    case "$gl_cv_func_btowc_eof" in
+      *yes) ;;
+      *) REPLACE_BTOWC=1 ;;
+    esac
+  fi
+])
+
+# Prerequisites of lib/btowc.c.
+AC_DEFUN([gl_PREREQ_BTOWC], [
+  :
+])
index a53c042..d7de8d6 100644 (file)
@@ -1,5 +1,5 @@
-# codeset.m4 serial 4 (gettext-0.18)
-dnl Copyright (C) 2000-2002, 2006, 2008-2010 Free Software Foundation, Inc.
+# codeset.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2000-2002, 2006, 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,10 +9,12 @@ dnl From Bruno Haible.
 AC_DEFUN([AM_LANGINFO_CODESET],
 [
   AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset],
-    [AC_TRY_LINK([#include <langinfo.h>],
-      [char* cs = nl_langinfo(CODESET); return !cs;],
-      [am_cv_langinfo_codeset=yes],
-      [am_cv_langinfo_codeset=no])
+    [AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <langinfo.h>]],
+          [[char* cs = nl_langinfo(CODESET); return !cs;]])],
+       [am_cv_langinfo_codeset=yes],
+       [am_cv_langinfo_codeset=no])
     ])
   if test $am_cv_langinfo_codeset = yes; then
     AC_DEFINE([HAVE_LANGINFO_CODESET], [1],
diff --git a/gnulib-m4/configmake.m4 b/gnulib-m4/configmake.m4
new file mode 100644 (file)
index 0000000..0cd86cf
--- /dev/null
@@ -0,0 +1,55 @@
+# configmake.m4 serial 2
+dnl Copyright (C) 2010-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# gl_CONFIGMAKE_PREP
+# ------------------
+# Guarantee all of the standard directory variables, even when used with
+# autoconf 2.59 (datarootdir wasn't supported until 2.59c, and runstatedir
+# in 2.70) or automake 1.9.6 (pkglibexecdir wasn't supported until 1.10b,
+# and runstatedir in 1.14.1).
+AC_DEFUN([gl_CONFIGMAKE_PREP],
+[
+  dnl Technically, datadir should default to datarootdir.  But if
+  dnl autoconf is too old to provide datarootdir, then reversing the
+  dnl definition is a reasonable compromise.  Only AC_SUBST a variable
+  dnl if it was not already defined earlier by autoconf.
+  if test "x$datarootdir" = x; then
+    AC_SUBST([datarootdir], ['${datadir}'])
+  fi
+  dnl Copy the approach used in autoconf 2.60.
+  if test "x$docdir" = x; then
+    AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
+      ['${datarootdir}/doc/${PACKAGE_TARNAME}'],
+      ['${datarootdir}/doc/${PACKAGE}'])])
+  fi
+  dnl The remaining variables missing from autoconf 2.59 are easier.
+  if test "x$htmldir" = x; then
+    AC_SUBST([htmldir], ['${docdir}'])
+  fi
+  if test "x$dvidir" = x; then
+    AC_SUBST([dvidir], ['${docdir}'])
+  fi
+  if test "x$pdfdir" = x; then
+    AC_SUBST([pdfdir], ['${docdir}'])
+  fi
+  if test "x$psdir" = x; then
+    AC_SUBST([psdir], ['${docdir}'])
+  fi
+  if test "x$lispdir" = x; then
+    AC_SUBST([lispdir], ['${datarootdir}/emacs/site-lisp'])
+  fi
+  if test "x$localedir" = x; then
+    AC_SUBST([localedir], ['${datarootdir}/locale'])
+  fi
+  dnl Added in autoconf 2.70
+  if test "x$runstatedir" = x; then
+    AC_SUBST([runstatedir], ['${localstatedir}/run'])
+  fi
+
+  dnl Automake 1.9.6 only lacks pkglibexecdir; and since 1.11 merely
+  dnl provides it without AC_SUBST, this blind use of AC_SUBST is safe.
+  AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}'])
+])
index 63dd920..8a51fe7 100644 (file)
@@ -1,5 +1,5 @@
-# eealloc.m4 serial 2
-dnl Copyright (C) 2003, 2009, 2010 Free Software Foundation, Inc.
+# eealloc.m4 serial 3
+dnl Copyright (C) 2003, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,7 +8,6 @@ AC_DEFUN([gl_EEALLOC],
 [
   AC_REQUIRE([gl_EEMALLOC])
   AC_REQUIRE([gl_EEREALLOC])
-  AC_REQUIRE([AC_C_INLINE])
 ])
 
 AC_DEFUN([gl_EEMALLOC],
index 5f50d6e..cfabe46 100644 (file)
@@ -1,5 +1,5 @@
-# environ.m4 serial 3
-dnl Copyright (C) 2001-2004, 2006-2010 Free Software Foundation, Inc.
+# environ.m4 serial 6
+dnl Copyright (C) 2001-2004, 2006-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,7 +9,16 @@ AC_DEFUN_ONCE([gl_ENVIRON],
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   dnl Persuade glibc <unistd.h> to declare environ.
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-  gt_CHECK_VAR_DECL([#include <unistd.h>], environ)
+
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  gt_CHECK_VAR_DECL(
+    [#if HAVE_UNISTD_H
+     #include <unistd.h>
+     #endif
+     /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>.  */
+     #include <stdlib.h>
+    ],
+    [environ])
   if test $gt_cv_var_environ_declaration != yes; then
     HAVE_DECL_ENVIRON=0
   fi
@@ -22,14 +31,16 @@ AC_DEFUN([gt_CHECK_VAR_DECL],
   define([gt_cv_var], [gt_cv_var_]$2[_declaration])
   AC_MSG_CHECKING([if $2 is properly declared])
   AC_CACHE_VAL([gt_cv_var], [
-    AC_TRY_COMPILE([$1
-      extern struct { int foo; } $2;],
-      [$2.foo = 1;],
-      gt_cv_var=no,
-      gt_cv_var=yes)])
+    AC_COMPILE_IFELSE(
+      [AC_LANG_PROGRAM(
+         [[$1
+           extern struct { int foo; } $2;]],
+         [[$2.foo = 1;]])],
+      [gt_cv_var=no],
+      [gt_cv_var=yes])])
   AC_MSG_RESULT([$gt_cv_var])
   if test $gt_cv_var = yes; then
-    AC_DEFINE([HAVE_]translit($2, [a-z], [A-Z])[_DECL], 1,
+    AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1,
               [Define if you have the declaration of $2.])
   fi
   undefine([gt_cv_var])
index d02a039..4ee9e6a 100644 (file)
@@ -1,5 +1,5 @@
-# errno_h.m4 serial 6
-dnl Copyright (C) 2004, 2006, 2008, 2009, 2010 Free Software Foundation, Inc.
+# errno_h.m4 serial 12
+dnl Copyright (C) 2004, 2006, 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,6 +10,9 @@ AC_DEFUN_ONCE([gl_HEADER_ERRNO_H],
   AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [
     AC_EGREP_CPP([booboo],[
 #include <errno.h>
+#if !defined ETXTBSY
+booboo
+#endif
 #if !defined ENOMSG
 booboo
 #endif
@@ -34,12 +37,30 @@ booboo
 #if !defined ENOTSUP
 booboo
 #endif
+#if !defined ENETRESET
+booboo
+#endif
+#if !defined ECONNABORTED
+booboo
+#endif
 #if !defined ESTALE
 booboo
 #endif
+#if !defined EDQUOT
+booboo
+#endif
 #if !defined ECANCELED
 booboo
 #endif
+#if !defined EOWNERDEAD
+booboo
+#endif
+#if !defined ENOTRECOVERABLE
+booboo
+#endif
+#if !defined EILSEQ
+booboo
+#endif
       ],
       [gl_cv_header_errno_h_complete=no],
       [gl_cv_header_errno_h_complete=yes])
@@ -47,10 +68,11 @@ booboo
   if test $gl_cv_header_errno_h_complete = yes; then
     ERRNO_H=''
   else
-    gl_CHECK_NEXT_HEADERS([errno.h])
+    gl_NEXT_HEADERS([errno.h])
     ERRNO_H='errno.h'
   fi
   AC_SUBST([ERRNO_H])
+  AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"])
   gl_REPLACE_ERRNO_VALUE([EMULTIHOP])
   gl_REPLACE_ERRNO_VALUE([ENOLINK])
   gl_REPLACE_ERRNO_VALUE([EOVERFLOW])
index 9f1307a..f08ae50 100644 (file)
@@ -1,6 +1,6 @@
-#serial 12
+#serial 14
 
-# Copyright (C) 1996-1998, 2001-2004, 2009-2010 Free Software Foundation, Inc.
+# Copyright (C) 1996-1998, 2001-2004, 2009-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -8,15 +8,20 @@
 
 AC_DEFUN([gl_ERROR],
 [
-  AC_FUNC_ERROR_AT_LINE
-  dnl Note: AC_FUNC_ERROR_AT_LINE does AC_LIBSOURCES([error.h, error.c]).
-  gl_PREREQ_ERROR
+  dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer
+  dnl maintained in Autoconf and because it invokes AC_LIBOBJ.
+  AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line],
+    [AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <error.h>]],
+          [[error_at_line (0, 0, "", 0, "an error occurred");]])],
+       [ac_cv_lib_error_at_line=yes],
+       [ac_cv_lib_error_at_line=no])])
 ])
 
 # Prerequisites of lib/error.c.
 AC_DEFUN([gl_PREREQ_ERROR],
 [
   AC_REQUIRE([AC_FUNC_STRERROR_R])
-  AC_REQUIRE([AC_C_INLINE])
   :
 ])
index 5d44d0e..7bee635 100644 (file)
@@ -1,5 +1,5 @@
-# exponentd.m4 serial 1
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# exponentd.m4 serial 3
+dnl Copyright (C) 2007-2008, 2010-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,7 +8,8 @@ AC_DEFUN([gl_DOUBLE_EXPONENT_LOCATION],
   AC_CACHE_CHECK([where to find the exponent in a 'double'],
     [gl_cv_cc_double_expbit0],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <float.h>
 #include <stddef.h>
 #include <stdio.h>
@@ -71,7 +72,7 @@ int main ()
   fprintf (fp, "unknown");
   return (fclose (fp) != 0);
 }
-        ],
+        ]])],
         [gl_cv_cc_double_expbit0=`cat conftest.out`],
         [gl_cv_cc_double_expbit0="unknown"],
         [
@@ -79,7 +80,8 @@ int main ()
           dnl different sets of instructions: The older FPA instructions assume
           dnl that they are stored in big-endian word order, while the words
           dnl (like integer types) are stored in little-endian byte order.
-          dnl The newer VFP instructions assume little-endian order consistenly.
+          dnl The newer VFP instructions assume little-endian order
+          dnl consistently.
           AC_EGREP_CPP([mixed_endianness], [
 #if defined arm || defined __arm || defined __arm__
   mixed_endianness
index 4d8063f..b2dfeef 100644 (file)
@@ -1,5 +1,5 @@
-# exponentf.m4 serial 1
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# exponentf.m4 serial 2
+dnl Copyright (C) 2007-2008, 2010-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,7 +8,8 @@ AC_DEFUN([gl_FLOAT_EXPONENT_LOCATION],
   AC_CACHE_CHECK([where to find the exponent in a 'float'],
     [gl_cv_cc_float_expbit0],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <float.h>
 #include <stddef.h>
 #include <stdio.h>
@@ -72,7 +73,7 @@ int main ()
   fprintf (fp, "unknown");
   return (fclose (fp) != 0);
 }
-        ],
+        ]])],
         [gl_cv_cc_float_expbit0=`cat conftest.out`],
         [gl_cv_cc_float_expbit0="unknown"],
         [gl_cv_cc_float_expbit0="word 0 bit 23"])
index a700d3b..d6f4ba7 100644 (file)
@@ -1,5 +1,5 @@
-# exponentl.m4 serial 2
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# exponentl.m4 serial 3
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,7 +9,8 @@ AC_DEFUN([gl_LONG_DOUBLE_EXPONENT_LOCATION],
   AC_CACHE_CHECK([where to find the exponent in a 'long double'],
     [gl_cv_cc_long_double_expbit0],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <float.h>
 #include <stddef.h>
 #include <stdio.h>
@@ -74,7 +75,7 @@ int main ()
   fprintf (fp, "unknown");
   return (fclose (fp) != 0);
 }
-        ],
+        ]])],
         [gl_cv_cc_long_double_expbit0=`cat conftest.out`],
         [gl_cv_cc_long_double_expbit0="unknown"],
         [
index 7d9458a..37f55ca 100644 (file)
@@ -1,14 +1,14 @@
-# serial 9  -*- Autoconf -*-
+# serial 13  -*- Autoconf -*-
 # Enable extensions on systems that normally disable them.
 
-# Copyright (C) 2003, 2006-2010 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006-2014 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
+# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git
 # Autoconf.  Perhaps we can remove this once we can assume Autoconf
-# 2.62 or later everywhere, but since CVS Autoconf mutates rapidly
+# 2.70 or later everywhere, but since Autoconf mutates rapidly
 # enough in this area it's likely we'll need to redefine
 # AC_USE_SYSTEM_EXTENSIONS for quite some time.
 
@@ -30,6 +30,7 @@
 # ------------------------
 # Enable extensions on systems that normally disable them,
 # typically due to standards-conformance issues.
+#
 # Remember that #undef in AH_VERBATIM gets replaced with #define by
 # AC_DEFINE.  The goal here is to define all known feature-enabling
 # macros, then, if reports of conflicts are made, disable macros that
@@ -38,35 +39,31 @@ AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS],
 [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
 AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
 
-  AC_REQUIRE([AC_CANONICAL_HOST])
-
   AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
   if test "$MINIX" = yes; then
     AC_DEFINE([_POSIX_SOURCE], [1],
-      [Define to 1 if you need to in order for `stat' and other
+      [Define to 1 if you need to in order for 'stat' and other
        things to work.])
     AC_DEFINE([_POSIX_1_SOURCE], [2],
       [Define to 2 if the system does not provide POSIX.1 features
        except with this defined.])
     AC_DEFINE([_MINIX], [1],
       [Define to 1 if on MINIX.])
+    AC_DEFINE([_NETBSD_SOURCE], [1],
+      [Define to 1 to make NetBSD features available.  MINIX 3 needs this.])
   fi
 
-  dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500,
-  dnl regardless of whether the flags -Ae or _D_HPUX_SOURCE=1 are already
-  dnl provided.
-  case "$host_os" in
-    hpux*)
-      AC_DEFINE([_XOPEN_SOURCE], [500],
-        [Define to 500 only on HP-UX.])
-      ;;
-  esac
-
-  AH_VERBATIM([__EXTENSIONS__],
+dnl Use a different key than __EXTENSIONS__, as that name broke existing
+dnl configure.ac when using autoheader 2.62.
+  AH_VERBATIM([USE_SYSTEM_EXTENSIONS],
 [/* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE
 #endif
+/* Enable general extensions on OS X.  */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
 /* Enable GNU extensions on systems that have them.  */
 #ifndef _GNU_SOURCE
 # undef _GNU_SOURCE
@@ -79,6 +76,12 @@ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
 #ifndef _TANDEM_SOURCE
 # undef _TANDEM_SOURCE
 #endif
+/* Enable X/Open extensions if necessary.  HP-UX 11.11 defines
+   mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
+   whether compiling with -Ae or -D_HPUX_SOURCE=1.  */
+#ifndef _XOPEN_SOURCE
+# undef _XOPEN_SOURCE
+#endif
 /* Enable general extensions on Solaris.  */
 #ifndef __EXTENSIONS__
 # undef __EXTENSIONS__
@@ -95,9 +98,26 @@ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
   test $ac_cv_safe_to_define___extensions__ = yes &&
     AC_DEFINE([__EXTENSIONS__])
   AC_DEFINE([_ALL_SOURCE])
+  AC_DEFINE([_DARWIN_C_SOURCE])
   AC_DEFINE([_GNU_SOURCE])
   AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
   AC_DEFINE([_TANDEM_SOURCE])
+  AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined],
+    [ac_cv_should_define__xopen_source],
+    [ac_cv_should_define__xopen_source=no
+     AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM([[
+          #include <wchar.h>
+          mbstate_t x;]])],
+       [],
+       [AC_COMPILE_IFELSE(
+          [AC_LANG_PROGRAM([[
+             #define _XOPEN_SOURCE 500
+             #include <wchar.h>
+             mbstate_t x;]])],
+          [ac_cv_should_define__xopen_source=yes])])])
+  test $ac_cv_should_define__xopen_source = yes &&
+    AC_DEFINE([_XOPEN_SOURCE], [500])
 ])# AC_USE_SYSTEM_EXTENSIONS
 
 # gl_USE_SYSTEM_EXTENSIONS
diff --git a/gnulib-m4/extern-inline.m4 b/gnulib-m4/extern-inline.m4
new file mode 100644 (file)
index 0000000..7f1bb39
--- /dev/null
@@ -0,0 +1,99 @@
+dnl 'extern inline' a la ISO C99.
+
+dnl Copyright 2012-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_EXTERN_INLINE],
+[
+  AH_VERBATIM([extern_inline],
+[/* Please see the Gnulib manual for how to use these macros.
+
+   Suppress extern inline with HP-UX cc, as it appears to be broken; see
+   <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
+
+   Suppress extern inline with Sun C in standards-conformance mode, as it
+   mishandles inline functions that call each other.  E.g., for 'inline void f
+   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+   'reference to static identifier "f" in extern inline function'.
+   This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
+
+   Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
+   on configurations that mistakenly use 'static inline' to implement
+   functions or macros in standard C headers like <ctype.h>.  For example,
+   if isdigit is mistakenly implemented via a static inline function,
+   a program containing an extern inline function that calls isdigit
+   may not work since the C standard prohibits extern inline functions
+   from calling static functions.  This bug is known to occur on:
+
+     OS X 10.8 and earlier; see:
+     http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html
+
+     DragonFly; see
+     http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
+
+     FreeBSD; see:
+     http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
+
+   OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
+   for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
+   Assume DragonFly and FreeBSD will be similar.  */
+#if (((defined __APPLE__ && defined __MACH__) \
+      || defined __DragonFly__ || defined __FreeBSD__) \
+     && (defined __header_inline \
+         ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
+            && ! defined __clang__) \
+         : ((! defined _DONT_USE_CTYPE_INLINE_ \
+             && (defined __GNUC__ || defined __cplusplus)) \
+            || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
+                && defined __GNUC__ && ! defined __cplusplus))))
+# define _GL_EXTERN_INLINE_STDHEADER_BUG
+#endif
+#if ((__GNUC__ \
+      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+      : (199901L <= __STDC_VERSION__ \
+         && !defined __HP_cc \
+         && !(defined __SUNPRO_C && __STDC__))) \
+     && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+# define _GL_EXTERN_INLINE_IN_USE
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+       && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
+   /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
+#  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
+# else
+#  define _GL_INLINE extern inline
+# endif
+# define _GL_EXTERN_INLINE extern
+# define _GL_EXTERN_INLINE_IN_USE
+#else
+# define _GL_INLINE static _GL_UNUSED
+# define _GL_EXTERN_INLINE static _GL_UNUSED
+#endif
+
+#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+#  define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+#  define _GL_INLINE_HEADER_CONST_PRAGMA \
+     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+  /* Suppress GCC's bogus "no previous prototype for 'FOO'"
+     and "no previous declaration for 'FOO'"  diagnostics,
+     when FOO is an inline function in the header; see
+     <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>.  */
+# define _GL_INLINE_HEADER_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+    _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+    _Pragma ("GCC diagnostic pop")
+#else
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+#endif])
+])
index d416a61..43c9312 100644 (file)
@@ -1,5 +1,5 @@
-# fcntl-o.m4 serial 1
-dnl Copyright (C) 2006, 2009-2010 Free Software Foundation, Inc.
+# fcntl-o.m4 serial 4
+dnl Copyright (C) 2006, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -12,13 +12,26 @@ dnl Written by Paul Eggert.
 AC_DEFUN([gl_FCNTL_O_FLAGS],
 [
   dnl Persuade glibc <fcntl.h> to define O_NOATIME and O_NOFOLLOW.
-  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+  dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes
+  dnl AC_GNU_SOURCE.
+  m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
+    [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
+    [AC_REQUIRE([AC_GNU_SOURCE])])
+
+  AC_CHECK_HEADERS_ONCE([unistd.h])
+  AC_CHECK_FUNCS_ONCE([symlink])
   AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h],
     [AC_RUN_IFELSE(
        [AC_LANG_PROGRAM(
           [[#include <sys/types.h>
            #include <sys/stat.h>
-           #include <unistd.h>
+           #if HAVE_UNISTD_H
+           # include <unistd.h>
+           #else /* on Windows with MSVC */
+           # include <io.h>
+           # include <stdlib.h>
+           # defined sleep(n) _sleep ((n) * 1000)
+           #endif
            #include <fcntl.h>
            #ifndef O_NOATIME
             #define O_NOATIME 0
@@ -33,34 +46,74 @@ AC_DEFUN([gl_FCNTL_O_FLAGS],
             };
           ]],
           [[
-            int status = !constants;
+            int result = !constants;
+            #if HAVE_SYMLINK
             {
               static char const sym[] = "conftest.sym";
-              if (symlink (".", sym) != 0
-                  || close (open (sym, O_RDONLY | O_NOFOLLOW)) == 0)
-                status |= 32;
+              if (symlink ("/dev/null", sym) != 0)
+                result |= 2;
+              else
+                {
+                  int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0);
+                  if (fd >= 0)
+                    {
+                      close (fd);
+                      result |= 4;
+                    }
+                }
+              if (unlink (sym) != 0 || symlink (".", sym) != 0)
+                result |= 2;
+              else
+                {
+                  int fd = open (sym, O_RDONLY | O_NOFOLLOW);
+                  if (fd >= 0)
+                    {
+                      close (fd);
+                      result |= 4;
+                    }
+                }
               unlink (sym);
             }
+            #endif
             {
               static char const file[] = "confdefs.h";
               int fd = open (file, O_RDONLY | O_NOATIME);
-              char c;
-              struct stat st0, st1;
-              if (fd < 0
-                  || fstat (fd, &st0) != 0
-                  || sleep (1) != 0
-                  || read (fd, &c, 1) != 1
-                  || close (fd) != 0
-                  || stat (file, &st1) != 0
-                  || st0.st_atime != st1.st_atime)
-                status |= 64;
+              if (fd < 0)
+                result |= 8;
+              else
+                {
+                  struct stat st0;
+                  if (fstat (fd, &st0) != 0)
+                    result |= 16;
+                  else
+                    {
+                      char c;
+                      sleep (1);
+                      if (read (fd, &c, 1) != 1)
+                        result |= 24;
+                      else
+                        {
+                          if (close (fd) != 0)
+                            result |= 32;
+                          else
+                            {
+                              struct stat st1;
+                              if (stat (file, &st1) != 0)
+                                result |= 40;
+                              else
+                                if (st0.st_atime != st1.st_atime)
+                                  result |= 64;
+                            }
+                        }
+                    }
+                }
             }
-            return status;]])],
+            return result;]])],
        [gl_cv_header_working_fcntl_h=yes],
        [case $? in #(
-        32) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
+        4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
         64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
-        96) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
+        68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
          *) gl_cv_header_working_fcntl_h='no';;
         esac],
        [gl_cv_header_working_fcntl_h=cross-compiling])])
diff --git a/gnulib-m4/fdopen.m4 b/gnulib-m4/fdopen.m4
new file mode 100644 (file)
index 0000000..4cf8f35
--- /dev/null
@@ -0,0 +1,47 @@
+# fdopen.m4 serial 3
+dnl Copyright (C) 2011-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_FDOPEN],
+[
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([gl_MSVC_INVAL])
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    REPLACE_FDOPEN=1
+  else
+    dnl Test whether fdopen() sets errno when it fails due to a bad fd argument.
+    AC_CACHE_CHECK([whether fdopen sets errno], [gl_cv_func_fdopen_works],
+      [
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <errno.h>
+int
+main (void)
+{
+  FILE *fp;
+  errno = 0;
+  fp = fdopen (-1, "r");
+  if (fp == NULL && errno == 0)
+    return 1;
+  return 0;
+}]])],
+          [gl_cv_func_fdopen_works=yes],
+          [gl_cv_func_fdopen_works=no],
+          [case "$host_os" in
+             mingw*) gl_cv_func_fdopen_works="guessing no" ;;
+             *)      gl_cv_func_fdopen_works="guessing yes" ;;
+           esac
+          ])
+      ])
+    case "$gl_cv_func_fdopen_works" in
+      *no) REPLACE_FDOPEN=1 ;;
+    esac
+  fi
+])
+
+dnl Prerequisites of lib/fdopen.c.
+AC_DEFUN([gl_PREREQ_FDOPEN], [])
index a74a0d9..a27ef7f 100644 (file)
@@ -1,5 +1,5 @@
-# float_h.m4 serial 3
-dnl Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+# float_h.m4 serial 9
+dnl Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,11 +9,90 @@ AC_DEFUN([gl_FLOAT_H],
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST])
   FLOAT_H=
+  REPLACE_FLOAT_LDBL=0
   case "$host_os" in
-    beos* | openbsd*)
+    aix* | beos* | openbsd* | mirbsd* | irix*)
       FLOAT_H=float.h
-      gl_CHECK_NEXT_HEADERS([float.h])
+      ;;
+    freebsd*)
+      case "$host_cpu" in
+changequote(,)dnl
+        i[34567]86 )
+changequote([,])dnl
+          FLOAT_H=float.h
+          ;;
+        x86_64 )
+          # On x86_64 systems, the C compiler may still be generating
+          # 32-bit code.
+          AC_EGREP_CPP([yes],
+            [#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+             yes
+             #endif],
+            [],
+            [FLOAT_H=float.h])
+          ;;
+      esac
+      ;;
+    linux*)
+      case "$host_cpu" in
+        powerpc*)
+          FLOAT_H=float.h
+          ;;
+      esac
+      ;;
+  esac
+  case "$host_os" in
+    aix* | freebsd* | linux*)
+      if test -n "$FLOAT_H"; then
+        REPLACE_FLOAT_LDBL=1
+      fi
       ;;
   esac
+
+  dnl Test against glibc-2.7 Linux/SPARC64 bug.
+  REPLACE_ITOLD=0
+  AC_CACHE_CHECK([whether conversion from 'int' to 'long double' works],
+    [gl_cv_func_itold_works],
+    [
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
+int i = -1;
+volatile long double ld;
+int main ()
+{
+  ld += i * 1.0L;
+  if (ld > 0)
+    return 1;
+  return 0;
+}]])],
+        [gl_cv_func_itold_works=yes],
+        [gl_cv_func_itold_works=no],
+        [case "$host" in
+           sparc*-*-linux*)
+             AC_EGREP_CPP([yes],
+               [#if defined __LP64__ || defined __arch64__
+                yes
+                #endif],
+               [gl_cv_func_itold_works="guessing no"],
+               [gl_cv_func_itold_works="guessing yes"])
+             ;;
+           *) gl_cv_func_itold_works="guessing yes" ;;
+         esac
+        ])
+    ])
+  case "$gl_cv_func_itold_works" in
+    *no)
+      REPLACE_ITOLD=1
+      dnl We add the workaround to <float.h> but also to <math.h>,
+      dnl to increase the chances that the fix function gets pulled in.
+      FLOAT_H=float.h
+      ;;
+  esac
+
+  if test -n "$FLOAT_H"; then
+    gl_NEXT_HEADERS([float.h])
+  fi
   AC_SUBST([FLOAT_H])
+  AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"])
+  AC_SUBST([REPLACE_ITOLD])
 ])
index 532802d..729afe8 100644 (file)
@@ -1,5 +1,5 @@
-# fpieee.m4 serial 1
-dnl Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+# fpieee.m4 serial 2
+dnl Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -36,9 +36,11 @@ AC_DEFUN([gl_FP_IEEE],
       # <http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51B_HTML/MAN/MAN3/0600____.HTM>
       if test -n "$GCC"; then
         # GCC has the option -mieee.
+        # For full IEEE compliance (rarely needed), use option -mieee-with-inexact.
         CPPFLAGS="$CPPFLAGS -mieee"
       else
-        # Compaq (ex-DEC) C has the option -ieee.
+        # Compaq (ex-DEC) C has the option -ieee, equivalent to -ieee_with_no_inexact.
+        # For full IEEE compliance (rarely needed), use option -ieee_with_inexact.
         CPPFLAGS="$CPPFLAGS -ieee"
       fi
       ;;
index 3a450f6..5798262 100644 (file)
@@ -1,5 +1,5 @@
-# frexp.m4 serial 7
-dnl Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# frexp.m4 serial 15
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,25 +7,19 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_FREXP],
 [
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
+  AC_REQUIRE([gl_CHECK_FREXP_NO_LIBM])
   FREXP_LIBM=
-  AC_CACHE_CHECK([whether frexp() can be used without linking with libm],
-    [gl_cv_func_frexp_no_libm],
-    [
-      AC_TRY_LINK([#include <math.h>
-                   double x;],
-                  [int e; return frexp (x, &e) > 0;],
-        [gl_cv_func_frexp_no_libm=yes],
-        [gl_cv_func_frexp_no_libm=no])
-    ])
   if test $gl_cv_func_frexp_no_libm = no; then
     AC_CACHE_CHECK([whether frexp() can be used with libm],
       [gl_cv_func_frexp_in_libm],
       [
         save_LIBS="$LIBS"
         LIBS="$LIBS -lm"
-        AC_TRY_LINK([#include <math.h>
-                     double x;],
-                    [int e; return frexp (x, &e) > 0;],
+        AC_LINK_IFELSE(
+          [AC_LANG_PROGRAM(
+             [[#include <math.h>
+               double x;]],
+             [[int e; return frexp (x, &e) > 0;]])],
           [gl_cv_func_frexp_in_libm=yes],
           [gl_cv_func_frexp_in_libm=no])
         LIBS="$save_LIBS"
@@ -50,8 +44,6 @@ AC_DEFUN([gl_FUNC_FREXP],
   if test $gl_func_frexp = yes; then
     AC_DEFINE([HAVE_FREXP], [1],
       [Define if the frexp() function is available and works.])
-  else
-    AC_LIBOBJ([frexp])
   fi
   AC_SUBST([FREXP_LIBM])
 ])
@@ -59,15 +51,7 @@ AC_DEFUN([gl_FUNC_FREXP],
 AC_DEFUN([gl_FUNC_FREXP_NO_LIBM],
 [
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
-  AC_CACHE_CHECK([whether frexp() can be used without linking with libm],
-    [gl_cv_func_frexp_no_libm],
-    [
-      AC_TRY_LINK([#include <math.h>
-                   double x;],
-                  [int e; return frexp (x, &e) > 0;],
-        [gl_cv_func_frexp_no_libm=yes],
-        [gl_cv_func_frexp_no_libm=no])
-    ])
+  AC_REQUIRE([gl_CHECK_FREXP_NO_LIBM])
   if test $gl_cv_func_frexp_no_libm = yes; then
     gl_FUNC_FREXP_WORKS
     case "$gl_cv_func_frexp_works" in
@@ -82,31 +66,71 @@ AC_DEFUN([gl_FUNC_FREXP_NO_LIBM],
   if test $gl_func_frexp_no_libm = yes; then
     AC_DEFINE([HAVE_FREXP_IN_LIBC], [1],
       [Define if the frexp() function is available in libc.])
-  else
-    AC_LIBOBJ([frexp])
   fi
 ])
 
+dnl Test whether frexp() can be used without linking with libm.
+dnl Set gl_cv_func_frexp_no_libm to 'yes' or 'no' accordingly.
+AC_DEFUN([gl_CHECK_FREXP_NO_LIBM],
+[
+  AC_CACHE_CHECK([whether frexp() can be used without linking with libm],
+    [gl_cv_func_frexp_no_libm],
+    [
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <math.h>
+             double x;]],
+           [[int e; return frexp (x, &e) > 0;]])],
+        [gl_cv_func_frexp_no_libm=yes],
+        [gl_cv_func_frexp_no_libm=no])
+    ])
+])
+
 dnl Test whether frexp() works also on denormalized numbers (this fails e.g. on
 dnl NetBSD 3.0), on infinite numbers (this fails e.g. on IRIX 6.5 and mingw),
-dnl and on negative zero (this fails e.g. on NetBSD 4.99).
+dnl and on negative zero (this fails e.g. on NetBSD 4.99 and mingw).
 AC_DEFUN([gl_FUNC_FREXP_WORKS],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CHECK_DECLS_ONCE([alarm])
   AC_CACHE_CHECK([whether frexp works], [gl_cv_func_frexp_works],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <float.h>
 #include <math.h>
 #include <string.h>
+#if HAVE_DECL_ALARM
+# include <signal.h>
+# include <unistd.h>
+#endif
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
+   to PowerPC on Mac OS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static double
+compute_minus_zero (void)
+{
+  return -DBL_MIN * DBL_MIN;
+}
+# define minus_zero compute_minus_zero ()
+#else
+double minus_zero = -0.0;
+#endif
 int main()
 {
+  int result = 0;
   int i;
   volatile double x;
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zero instead.  */
   double zero = 0.0;
+#if HAVE_DECL_ALARM
+  /* NeXTstep 3.3 frexp() runs into an endless loop when called on an infinite
+     number.  Let the test fail in this case.  */
+  signal (SIGALRM, SIG_DFL);
+  alarm (5);
+#endif
   /* Test on denormalized numbers.  */
   for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5)
     ;
@@ -117,30 +141,32 @@ int main()
       /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022.
          On NetBSD: y = 0.75. Correct: y = 0.5.  */
       if (y != 0.5)
-        return 1;
+        result |= 1;
     }
   /* Test on infinite numbers.  */
-  x = 1.0 / 0.0;
+  x = 1.0 / zero;
   {
     int exp;
     double y = frexp (x, &exp);
     if (y != x)
-      return 1;
+      result |= 2;
   }
   /* Test on negative zero.  */
-  x = -zero;
+  x = minus_zero;
   {
     int exp;
     double y = frexp (x, &exp);
     if (memcmp (&y, &x, sizeof x))
-      return 1;
+      result |= 4;
   }
-  return 0;
-}], [gl_cv_func_frexp_works=yes], [gl_cv_func_frexp_works=no],
-      [case "$host_os" in
-         netbsd* | irix* | mingw*) gl_cv_func_frexp_works="guessing no";;
-         *)                        gl_cv_func_frexp_works="guessing yes";;
-       esac
-      ])
+  return result;
+}]])],
+        [gl_cv_func_frexp_works=yes],
+        [gl_cv_func_frexp_works=no],
+        [case "$host_os" in
+           netbsd* | irix* | mingw*) gl_cv_func_frexp_works="guessing no";;
+           *)                        gl_cv_func_frexp_works="guessing yes";;
+         esac
+        ])
     ])
 ])
index 8016520..e272291 100644 (file)
@@ -1,5 +1,5 @@
-# frexpl.m4 serial 9
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# frexpl.m4 serial 20
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,29 +7,29 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_FREXPL],
 [
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
+  AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
+
+  dnl Persuade glibc <math.h> to declare frexpl().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   dnl Check whether it's declared.
-  dnl MacOS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
-  AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [#include <math.h>])
+  dnl Mac OS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
+  AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [[#include <math.h>]])
+
   FREXPL_LIBM=
   if test $HAVE_DECL_FREXPL = 1; then
-    AC_CACHE_CHECK([whether frexpl() can be used without linking with libm],
-      [gl_cv_func_frexpl_no_libm],
-      [
-        AC_TRY_LINK([#include <math.h>
-                     long double x;],
-                    [int e; return frexpl (x, &e) > 0;],
-          [gl_cv_func_frexpl_no_libm=yes],
-          [gl_cv_func_frexpl_no_libm=no])
-      ])
+    gl_CHECK_FREXPL_NO_LIBM
     if test $gl_cv_func_frexpl_no_libm = no; then
       AC_CACHE_CHECK([whether frexpl() can be used with libm],
         [gl_cv_func_frexpl_in_libm],
         [
           save_LIBS="$LIBS"
           LIBS="$LIBS -lm"
-          AC_TRY_LINK([#include <math.h>
-                       long double x;],
-                      [int e; return frexpl (x, &e) > 0;],
+          AC_LINK_IFELSE(
+            [AC_LANG_PROGRAM(
+               [[#include <math.h>
+                 long double x;]],
+               [[int e; return frexpl (x, &e) > 0;]])],
             [gl_cv_func_frexpl_in_libm=yes],
             [gl_cv_func_frexpl_in_libm=no])
           LIBS="$save_LIBS"
@@ -46,7 +46,7 @@ AC_DEFUN([gl_FUNC_FREXPL],
       LIBS="$save_LIBS"
       case "$gl_cv_func_frexpl_works" in
         *yes) gl_func_frexpl=yes ;;
-        *)    gl_func_frexpl=no; REPLACE_FREXPL=1; FREXPL_LIBM= ;;
+        *)    gl_func_frexpl=no; REPLACE_FREXPL=1 ;;
       esac
     else
       gl_func_frexpl=no
@@ -57,7 +57,13 @@ AC_DEFUN([gl_FUNC_FREXPL],
     fi
   fi
   if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl = no; then
-    AC_LIBOBJ([frexpl])
+    dnl Find libraries needed to link lib/frexpl.c.
+    if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then
+      AC_REQUIRE([gl_FUNC_FREXP])
+      FREXPL_LIBM="$FREXP_LIBM"
+    else
+      FREXPL_LIBM=
+    fi
   fi
   AC_SUBST([FREXPL_LIBM])
 ])
@@ -65,19 +71,12 @@ AC_DEFUN([gl_FUNC_FREXPL],
 AC_DEFUN([gl_FUNC_FREXPL_NO_LIBM],
 [
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
+  AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
   dnl Check whether it's declared.
-  dnl MacOS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
-  AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [#include <math.h>])
+  dnl Mac OS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
+  AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [[#include <math.h>]])
   if test $HAVE_DECL_FREXPL = 1; then
-    AC_CACHE_CHECK([whether frexpl() can be used without linking with libm],
-      [gl_cv_func_frexpl_no_libm],
-      [
-        AC_TRY_LINK([#include <math.h>
-                     long double x;],
-                    [int e; return frexpl (x, &e) > 0;],
-          [gl_cv_func_frexpl_no_libm=yes],
-          [gl_cv_func_frexpl_no_libm=no])
-      ])
+    gl_CHECK_FREXPL_NO_LIBM
     if test $gl_cv_func_frexpl_no_libm = yes; then
       gl_FUNC_FREXPL_WORKS
       case "$gl_cv_func_frexpl_works" in
@@ -94,14 +93,28 @@ AC_DEFUN([gl_FUNC_FREXPL_NO_LIBM],
         [Define if the frexpl() function is available in libc.])
     fi
   fi
-  if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then
-    AC_LIBOBJ([frexpl])
-  fi
+])
+
+dnl Test whether frexpl() can be used without linking with libm.
+dnl Set gl_cv_func_frexpl_no_libm to 'yes' or 'no' accordingly.
+AC_DEFUN([gl_CHECK_FREXPL_NO_LIBM],
+[
+  AC_CACHE_CHECK([whether frexpl() can be used without linking with libm],
+    [gl_cv_func_frexpl_no_libm],
+    [
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <math.h>
+             long double x;]],
+           [[int e; return frexpl (x, &e) > 0;]])],
+        [gl_cv_func_frexpl_no_libm=yes],
+        [gl_cv_func_frexpl_no_libm=no])
+    ])
 ])
 
 dnl Test whether frexpl() works on finite numbers (this fails on
-dnl MacOS X 10.4/PowerPC, on AIX 5.1, and on BeOS), on denormalized numbers
-dnl (this fails on MacOS X 10.5/i386), and also on infinite numbers (this
+dnl Mac OS X 10.4/PowerPC, on AIX 5.1, and on BeOS), on denormalized numbers
+dnl (this fails on Mac OS X 10.5/i386), and also on infinite numbers (this
 dnl fails e.g. on IRIX 6.5 and mingw).
 AC_DEFUN([gl_FUNC_FREXPL_WORKS],
 [
@@ -109,7 +122,8 @@ AC_DEFUN([gl_FUNC_FREXPL_WORKS],
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CACHE_CHECK([whether frexpl works], [gl_cv_func_frexpl_works],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <float.h>
 #include <math.h>
 /* Override the values of <float.h>, like done in float.in.h.  */
@@ -117,9 +131,28 @@ AC_DEFUN([gl_FUNC_FREXPL_WORKS],
 # undef LDBL_MIN_EXP
 # define LDBL_MIN_EXP    (-16381)
 #endif
-extern long double frexpl (long double, int *);
+#if defined __i386__ && defined __FreeBSD__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP    (-16381)
+#endif
+#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+#endif
+#if defined __sgi && (LDBL_MANT_DIG >= 106)
+# if defined __GNUC__
+#  undef LDBL_MIN_EXP
+#  define LDBL_MIN_EXP DBL_MIN_EXP
+# endif
+#endif
+extern
+#ifdef __cplusplus
+"C"
+#endif
+long double frexpl (long double, int *);
 int main()
 {
+  int result = 0;
   volatile long double x;
   /* Test on finite numbers that fails on AIX 5.1.  */
   x = 16.0L;
@@ -127,9 +160,9 @@ int main()
     int exp = -9999;
     frexpl (x, &exp);
     if (exp != 5)
-      return 1;
+      result |= 1;
   }
-  /* Test on finite numbers that fails on MacOS X 10.4, because its frexpl
+  /* Test on finite numbers that fails on Mac OS X 10.4, because its frexpl
      function returns an invalid (incorrectly normalized) value: it returns
                y = { 0x3fe028f5, 0xc28f5c28, 0x3c9eb851, 0xeb851eb8 }
      but the correct result is
@@ -139,7 +172,7 @@ int main()
     int exp = -9999;
     long double y = frexpl (x, &exp);
     if (!(exp == 1 && y == 0.505L))
-      return 1;
+      result |= 2;
   }
   /* Test on large finite numbers.  This fails on BeOS at i = 16322, while
      LDBL_MAX_EXP = 16384.
@@ -152,7 +185,10 @@ int main()
         int exp = -9999;
         frexpl (x, &exp);
         if (exp != i)
-          return 1;
+          {
+            result |= 4;
+            break;
+          }
       }
   }
   /* Test on denormalized numbers.  */
@@ -165,9 +201,9 @@ int main()
         int exp;
         long double y = frexpl (x, &exp);
         /* On machines with IEEE854 arithmetic: x = 1.68105e-4932,
-           exp = -16382, y = 0.5.  On MacOS X 10.5: exp = -16384, y = 0.5.  */
+           exp = -16382, y = 0.5.  On Mac OS X 10.5: exp = -16384, y = 0.5.  */
         if (exp != LDBL_MIN_EXP - 1)
-          return 1;
+          result |= 8;
       }
   }
   /* Test on infinite numbers.  */
@@ -176,15 +212,20 @@ int main()
     int exp;
     long double y = frexpl (x, &exp);
     if (y != x)
-      return 1;
+      result |= 16;
   }
-  return 0;
-}], [gl_cv_func_frexpl_works=yes], [gl_cv_func_frexpl_works=no],
-      [case "$host_os" in
-         aix* | beos* | darwin* | irix* | mingw* | pw*)
-            gl_cv_func_frexpl_works="guessing no";;
-         *) gl_cv_func_frexpl_works="guessing yes";;
-       esac
-      ])
+  return result;
+}]])],
+        [gl_cv_func_frexpl_works=yes],
+        [gl_cv_func_frexpl_works=no],
+        [
+changequote(,)dnl
+         case "$host_os" in
+           aix | aix[3-6]* | beos* | darwin* | irix* | mingw* | pw*)
+              gl_cv_func_frexpl_works="guessing no";;
+           *) gl_cv_func_frexpl_works="guessing yes";;
+         esac
+changequote([,])dnl
+        ])
     ])
 ])
diff --git a/gnulib-m4/fseterr.m4 b/gnulib-m4/fseterr.m4
new file mode 100644 (file)
index 0000000..b676fe0
--- /dev/null
@@ -0,0 +1,10 @@
+# fseterr.m4 serial 1
+dnl Copyright (C) 2012-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_FSETERR],
+[
+  AC_CHECK_FUNCS_ONCE([__fseterr])
+])
index 313ad7f..ce50695 100644 (file)
@@ -1,5 +1,5 @@
-# getpagesize.m4 serial 8
-dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2010 Free Software Foundation,
+# getpagesize.m4 serial 9
+dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2014 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -24,7 +24,6 @@ AC_DEFUN([gl_FUNC_GETPAGESIZE],
   case "$host_os" in
     mingw*)
       REPLACE_GETPAGESIZE=1
-      AC_LIBOBJ([getpagesize])
       ;;
   esac
   dnl Also check whether it's declared.
index 68ada9d..ab58b71 100644 (file)
@@ -1,17 +1,18 @@
-# glibc21.m4 serial 4
-dnl Copyright (C) 2000-2002, 2004, 2008-2010 Free Software Foundation, Inc.
+# glibc21.m4 serial 5
+dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2014 Free Software Foundation,
+dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-# Test for the GNU C Library, version 2.1 or newer.
+# Test for the GNU C Library, version 2.1 or newer, or uClibc.
 # From Bruno Haible.
 
 AC_DEFUN([gl_GLIBC21],
   [
-    AC_CACHE_CHECK([whether we are using the GNU C Library 2.1 or newer],
+    AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc],
       [ac_cv_gnu_library_2_1],
-      [AC_EGREP_CPP([Lucky GNU user],
+      [AC_EGREP_CPP([Lucky],
         [
 #include <features.h>
 #ifdef __GNU_LIBRARY__
@@ -19,6 +20,9 @@ AC_DEFUN([gl_GLIBC21],
   Lucky GNU user
  #endif
 #endif
+#ifdef __UCLIBC__
+ Lucky user
+#endif
         ],
         [ac_cv_gnu_library_2_1=yes],
         [ac_cv_gnu_library_2_1=no])
index 72bc8cc..b201f18 100644 (file)
@@ -1,21 +1,33 @@
-# Copyright (C) 2002-2010 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 #
-# This file is free software, distributed under the terms of the GNU
-# General Public License.  As a special exception to the GNU General
-# Public License, this file may be distributed as part of a program
-# that contains a configuration script generated by Autoconf, under
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file.  If not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License,
+# this file may be distributed as part of a program that
+# contains a configuration script generated by Autoconf, under
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
 #
 # This file represents the specification of how gnulib-tool is used.
 # It acts as a cache: It is written and read by gnulib-tool.
-# In projects using CVS, this file is meant to be stored in CVS,
-# like the configure.ac and various Makefile.am files.
+# In projects that use version control, this file is meant to be put under
+# version control, like the configure.ac and various Makefile.am files.
 
 
 # Specification in the form of a command-line invocation:
-#   gnulib-tool --import --dir=. --local-dir=gnulib-local --lib=libunistring --source-base=lib --m4-base=gnulib-m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --lgpl --makefile-name=Makefile.gnulib --libtool --macro-prefix=gl relocatable-lib-lgpl unicase/base unicase/empty-prefix-context unicase/empty-suffix-context unicase/locale-language unicase/tolower unicase/totitle unicase/toupper unicase/u16-casecmp unicase/u16-casecoll unicase/u16-casefold unicase/u16-casexfrm unicase/u16-ct-casefold unicase/u16-ct-tolower unicase/u16-ct-totitle unicase/u16-ct-toupper unicase/u16-is-cased unicase/u16-is-casefolded unicase/u16-is-lowercase unicase/u16-is-titlecase unicase/u16-is-uppercase unicase/u16-tolower unicase/u16-totitle unicase/u16-toupper unicase/u32-casecmp unicase/u32-casecoll unicase/u32-casefold unicase/u32-casexfrm unicase/u32-ct-casefold unicase/u32-ct-tolower unicase/u32-ct-totitle unicase/u32-ct-toupper unicase/u32-is-cased unicase/u32-is-casefolded unicase/u32-is-lowercase unicase/u32-is-titlecase unicase/u32-is-uppercase unicase/u32-tolower unicase/u32-totitle unicase/u32-toupper unicase/u8-casecmp unicase/u8-casecoll unicase/u8-casefold unicase/u8-casexfrm unicase/u8-ct-casefold unicase/u8-ct-tolower unicase/u8-ct-totitle unicase/u8-ct-toupper unicase/u8-is-cased unicase/u8-is-casefolded unicase/u8-is-lowercase unicase/u8-is-titlecase unicase/u8-is-uppercase unicase/u8-tolower unicase/u8-totitle unicase/u8-toupper unicase/ulc-casecmp unicase/ulc-casecoll unicase/ulc-casexfrm uniconv/base uniconv/u16-conv-from-enc uniconv/u16-conv-to-enc uniconv/u16-strconv-from-enc uniconv/u16-strconv-from-locale uniconv/u16-strconv-to-enc uniconv/u16-strconv-to-locale uniconv/u32-conv-from-enc uniconv/u32-conv-to-enc uniconv/u32-strconv-from-enc uniconv/u32-strconv-from-locale uniconv/u32-strconv-to-enc uniconv/u32-strconv-to-locale uniconv/u8-conv-from-enc uniconv/u8-conv-to-enc uniconv/u8-strconv-from-enc uniconv/u8-strconv-from-locale uniconv/u8-strconv-to-enc uniconv/u8-strconv-to-locale unictype/base unictype/bidicategory-all unictype/block-all unictype/category-all unictype/combining-class unictype/ctype-alnum unictype/ctype-alpha unictype/ctype-blank unictype/ctype-cntrl unictype/ctype-digit unictype/ctype-graph unictype/ctype-lower unictype/ctype-print unictype/ctype-punct unictype/ctype-space unictype/ctype-upper unictype/ctype-xdigit unictype/decimal-digit unictype/digit unictype/mirror unictype/numeric unictype/property-all unictype/scripts-all unictype/syntax-c-ident unictype/syntax-c-whitespace unictype/syntax-java-ident unictype/syntax-java-whitespace unilbrk/base unilbrk/u16-possible-linebreaks unilbrk/u16-width-linebreaks unilbrk/u32-possible-linebreaks unilbrk/u32-width-linebreaks unilbrk/u8-possible-linebreaks unilbrk/u8-width-linebreaks unilbrk/ulc-possible-linebreaks unilbrk/ulc-width-linebreaks uniname/base uniname/uniname uninorm/base uninorm/canonical-decomposition uninorm/composition uninorm/decomposition uninorm/filter uninorm/nfc uninorm/nfd uninorm/nfkc uninorm/nfkd uninorm/u16-normalize uninorm/u16-normcmp uninorm/u16-normcoll uninorm/u16-normxfrm uninorm/u32-normalize uninorm/u32-normcmp uninorm/u32-normcoll uninorm/u32-normxfrm uninorm/u8-normalize uninorm/u8-normcmp uninorm/u8-normcoll uninorm/u8-normxfrm unistdio/base unistdio/u16-asnprintf unistdio/u16-asprintf unistdio/u16-snprintf unistdio/u16-sprintf unistdio/u16-u16-asnprintf unistdio/u16-u16-asprintf unistdio/u16-u16-snprintf unistdio/u16-u16-sprintf unistdio/u16-u16-vasnprintf unistdio/u16-u16-vasprintf unistdio/u16-u16-vsnprintf unistdio/u16-u16-vsprintf unistdio/u16-vasnprintf unistdio/u16-vasprintf unistdio/u16-vsnprintf unistdio/u16-vsprintf unistdio/u32-asnprintf unistdio/u32-asprintf unistdio/u32-snprintf unistdio/u32-sprintf unistdio/u32-u32-asnprintf unistdio/u32-u32-asprintf unistdio/u32-u32-snprintf unistdio/u32-u32-sprintf unistdio/u32-u32-vasnprintf unistdio/u32-u32-vasprintf unistdio/u32-u32-vsnprintf unistdio/u32-u32-vsprintf unistdio/u32-vasnprintf unistdio/u32-vasprintf unistdio/u32-vsnprintf unistdio/u32-vsprintf unistdio/u8-asnprintf unistdio/u8-asprintf unistdio/u8-snprintf unistdio/u8-sprintf unistdio/u8-u8-asnprintf unistdio/u8-u8-asprintf unistdio/u8-u8-snprintf unistdio/u8-u8-sprintf unistdio/u8-u8-vasnprintf unistdio/u8-u8-vasprintf unistdio/u8-u8-vsnprintf unistdio/u8-u8-vsprintf unistdio/u8-vasnprintf unistdio/u8-vasprintf unistdio/u8-vsnprintf unistdio/u8-vsprintf unistdio/ulc-asnprintf unistdio/ulc-asprintf unistdio/ulc-fprintf unistdio/ulc-snprintf unistdio/ulc-sprintf unistdio/ulc-vasnprintf unistdio/ulc-vasprintf unistdio/ulc-vfprintf unistdio/ulc-vsnprintf unistdio/ulc-vsprintf unistr/base unistr/u16-check unistr/u16-chr unistr/u16-cmp unistr/u16-cmp2 unistr/u16-cpy unistr/u16-cpy-alloc unistr/u16-endswith unistr/u16-mblen unistr/u16-mbsnlen unistr/u16-mbtouc unistr/u16-mbtouc-unsafe unistr/u16-mbtoucr unistr/u16-move unistr/u16-next unistr/u16-prev unistr/u16-set unistr/u16-startswith unistr/u16-stpcpy unistr/u16-stpncpy unistr/u16-strcat unistr/u16-strchr unistr/u16-strcmp unistr/u16-strcoll unistr/u16-strcpy unistr/u16-strcspn unistr/u16-strdup unistr/u16-strlen unistr/u16-strmblen unistr/u16-strmbtouc unistr/u16-strncat unistr/u16-strncmp unistr/u16-strncpy unistr/u16-strnlen unistr/u16-strpbrk unistr/u16-strrchr unistr/u16-strspn unistr/u16-strstr unistr/u16-strtok unistr/u16-to-u32 unistr/u16-to-u8 unistr/u16-uctomb unistr/u32-check unistr/u32-chr unistr/u32-cmp unistr/u32-cmp2 unistr/u32-cpy unistr/u32-cpy-alloc unistr/u32-endswith unistr/u32-mblen unistr/u32-mbsnlen unistr/u32-mbtouc unistr/u32-mbtouc-unsafe unistr/u32-mbtoucr unistr/u32-move unistr/u32-next unistr/u32-prev unistr/u32-set unistr/u32-startswith unistr/u32-stpcpy unistr/u32-stpncpy unistr/u32-strcat unistr/u32-strchr unistr/u32-strcmp unistr/u32-strcoll unistr/u32-strcpy unistr/u32-strcspn unistr/u32-strdup unistr/u32-strlen unistr/u32-strmblen unistr/u32-strmbtouc unistr/u32-strncat unistr/u32-strncmp unistr/u32-strncpy unistr/u32-strnlen unistr/u32-strpbrk unistr/u32-strrchr unistr/u32-strspn unistr/u32-strstr unistr/u32-strtok unistr/u32-to-u16 unistr/u32-to-u8 unistr/u32-uctomb unistr/u8-check unistr/u8-chr unistr/u8-cmp unistr/u8-cmp2 unistr/u8-cpy unistr/u8-cpy-alloc unistr/u8-endswith unistr/u8-mblen unistr/u8-mbsnlen unistr/u8-mbtouc unistr/u8-mbtouc-unsafe unistr/u8-mbtoucr unistr/u8-move unistr/u8-next unistr/u8-prev unistr/u8-set unistr/u8-startswith unistr/u8-stpcpy unistr/u8-stpncpy unistr/u8-strcat unistr/u8-strchr unistr/u8-strcmp unistr/u8-strcoll unistr/u8-strcpy unistr/u8-strcspn unistr/u8-strdup unistr/u8-strlen unistr/u8-strmblen unistr/u8-strmbtouc unistr/u8-strncat unistr/u8-strncmp unistr/u8-strncpy unistr/u8-strnlen unistr/u8-strpbrk unistr/u8-strrchr unistr/u8-strspn unistr/u8-strstr unistr/u8-strtok unistr/u8-to-u16 unistr/u8-to-u32 unistr/u8-uctomb unitypes uniwbrk/base uniwbrk/u16-wordbreaks uniwbrk/u32-wordbreaks uniwbrk/u8-wordbreaks uniwbrk/ulc-wordbreaks uniwbrk/wordbreak-property uniwidth/base uniwidth/u16-strwidth uniwidth/u16-width uniwidth/u32-strwidth uniwidth/u32-width uniwidth/u8-strwidth uniwidth/u8-width uniwidth/width
+#   gnulib-tool --import --dir=. --local-dir=gnulib-local --lib=libunistring --source-base=lib --m4-base=gnulib-m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --with-tests --lgpl --makefile-name=Makefile.gnulib --no-conditional-dependencies --libtool --macro-prefix=gl relocatable-lib-lgpl unicase/base unicase/empty-prefix-context unicase/empty-suffix-context unicase/locale-language unicase/tolower unicase/totitle unicase/toupper unicase/u16-casecmp unicase/u16-casecoll unicase/u16-casefold unicase/u16-casexfrm unicase/u16-ct-casefold unicase/u16-ct-tolower unicase/u16-ct-totitle unicase/u16-ct-toupper unicase/u16-is-cased unicase/u16-is-casefolded unicase/u16-is-lowercase unicase/u16-is-titlecase unicase/u16-is-uppercase unicase/u16-tolower unicase/u16-totitle unicase/u16-toupper unicase/u32-casecmp unicase/u32-casecoll unicase/u32-casefold unicase/u32-casexfrm unicase/u32-ct-casefold unicase/u32-ct-tolower unicase/u32-ct-totitle unicase/u32-ct-toupper unicase/u32-is-cased unicase/u32-is-casefolded unicase/u32-is-lowercase unicase/u32-is-titlecase unicase/u32-is-uppercase unicase/u32-tolower unicase/u32-totitle unicase/u32-toupper unicase/u8-casecmp unicase/u8-casecoll unicase/u8-casefold unicase/u8-casexfrm unicase/u8-ct-casefold unicase/u8-ct-tolower unicase/u8-ct-totitle unicase/u8-ct-toupper unicase/u8-is-cased unicase/u8-is-casefolded unicase/u8-is-lowercase unicase/u8-is-titlecase unicase/u8-is-uppercase unicase/u8-tolower unicase/u8-totitle unicase/u8-toupper unicase/ulc-casecmp unicase/ulc-casecoll unicase/ulc-casexfrm uniconv/base uniconv/u16-conv-from-enc uniconv/u16-conv-to-enc uniconv/u16-strconv-from-enc uniconv/u16-strconv-from-locale uniconv/u16-strconv-to-enc uniconv/u16-strconv-to-locale uniconv/u32-conv-from-enc uniconv/u32-conv-to-enc uniconv/u32-strconv-from-enc uniconv/u32-strconv-from-locale uniconv/u32-strconv-to-enc uniconv/u32-strconv-to-locale uniconv/u8-conv-from-enc uniconv/u8-conv-to-enc uniconv/u8-strconv-from-enc uniconv/u8-strconv-from-locale uniconv/u8-strconv-to-enc uniconv/u8-strconv-to-locale unictype/base unictype/bidiclass-all unictype/block-all unictype/category-all unictype/combining-class-all unictype/ctype-alnum unictype/ctype-alpha unictype/ctype-blank unictype/ctype-cntrl unictype/ctype-digit unictype/ctype-graph unictype/ctype-lower unictype/ctype-print unictype/ctype-punct unictype/ctype-space unictype/ctype-upper unictype/ctype-xdigit unictype/decimal-digit unictype/digit unictype/joininggroup-all unictype/joiningtype-all unictype/mirror unictype/numeric unictype/property-all unictype/scripts-all unictype/syntax-c-ident unictype/syntax-c-whitespace unictype/syntax-java-ident unictype/syntax-java-whitespace unigbrk/base unigbrk/u16-grapheme-breaks unigbrk/u16-grapheme-next unigbrk/u16-grapheme-prev unigbrk/u32-grapheme-breaks unigbrk/u32-grapheme-next unigbrk/u32-grapheme-prev unigbrk/u8-grapheme-breaks unigbrk/u8-grapheme-next unigbrk/u8-grapheme-prev unigbrk/uc-gbrk-prop unigbrk/uc-is-grapheme-break unigbrk/ulc-grapheme-breaks unilbrk/base unilbrk/u16-possible-linebreaks unilbrk/u16-width-linebreaks unilbrk/u32-possible-linebreaks unilbrk/u32-width-linebreaks unilbrk/u8-possible-linebreaks unilbrk/u8-width-linebreaks unilbrk/ulc-possible-linebreaks unilbrk/ulc-width-linebreaks uniname/base uniname/uniname uninorm/base uninorm/canonical-decomposition uninorm/composition uninorm/decomposition uninorm/filter uninorm/nfc uninorm/nfd uninorm/nfkc uninorm/nfkd uninorm/u16-normalize uninorm/u16-normcmp uninorm/u16-normcoll uninorm/u16-normxfrm uninorm/u32-normalize uninorm/u32-normcmp uninorm/u32-normcoll uninorm/u32-normxfrm uninorm/u8-normalize uninorm/u8-normcmp uninorm/u8-normcoll uninorm/u8-normxfrm unistdio/base unistdio/u16-asnprintf unistdio/u16-asprintf unistdio/u16-snprintf unistdio/u16-sprintf unistdio/u16-u16-asnprintf unistdio/u16-u16-asprintf unistdio/u16-u16-snprintf unistdio/u16-u16-sprintf unistdio/u16-u16-vasnprintf unistdio/u16-u16-vasprintf unistdio/u16-u16-vsnprintf unistdio/u16-u16-vsprintf unistdio/u16-vasnprintf unistdio/u16-vasprintf unistdio/u16-vsnprintf unistdio/u16-vsprintf unistdio/u32-asnprintf unistdio/u32-asprintf unistdio/u32-snprintf unistdio/u32-sprintf unistdio/u32-u32-asnprintf unistdio/u32-u32-asprintf unistdio/u32-u32-snprintf unistdio/u32-u32-sprintf unistdio/u32-u32-vasnprintf unistdio/u32-u32-vasprintf unistdio/u32-u32-vsnprintf unistdio/u32-u32-vsprintf unistdio/u32-vasnprintf unistdio/u32-vasprintf unistdio/u32-vsnprintf unistdio/u32-vsprintf unistdio/u8-asnprintf unistdio/u8-asprintf unistdio/u8-snprintf unistdio/u8-sprintf unistdio/u8-u8-asnprintf unistdio/u8-u8-asprintf unistdio/u8-u8-snprintf unistdio/u8-u8-sprintf unistdio/u8-u8-vasnprintf unistdio/u8-u8-vasprintf unistdio/u8-u8-vsnprintf unistdio/u8-u8-vsprintf unistdio/u8-vasnprintf unistdio/u8-vasprintf unistdio/u8-vsnprintf unistdio/u8-vsprintf unistdio/ulc-asnprintf unistdio/ulc-asprintf unistdio/ulc-fprintf unistdio/ulc-snprintf unistdio/ulc-sprintf unistdio/ulc-vasnprintf unistdio/ulc-vasprintf unistdio/ulc-vfprintf unistdio/ulc-vsnprintf unistdio/ulc-vsprintf unistr/base unistr/u16-check unistr/u16-chr unistr/u16-cmp unistr/u16-cmp2 unistr/u16-cpy unistr/u16-cpy-alloc unistr/u16-endswith unistr/u16-mblen unistr/u16-mbsnlen unistr/u16-mbtouc unistr/u16-mbtouc-unsafe unistr/u16-mbtoucr unistr/u16-move unistr/u16-next unistr/u16-prev unistr/u16-set unistr/u16-startswith unistr/u16-stpcpy unistr/u16-stpncpy unistr/u16-strcat unistr/u16-strchr unistr/u16-strcmp unistr/u16-strcoll unistr/u16-strcpy unistr/u16-strcspn unistr/u16-strdup unistr/u16-strlen unistr/u16-strmblen unistr/u16-strmbtouc unistr/u16-strncat unistr/u16-strncmp unistr/u16-strncpy unistr/u16-strnlen unistr/u16-strpbrk unistr/u16-strrchr unistr/u16-strspn unistr/u16-strstr unistr/u16-strtok unistr/u16-to-u32 unistr/u16-to-u8 unistr/u16-uctomb unistr/u32-check unistr/u32-chr unistr/u32-cmp unistr/u32-cmp2 unistr/u32-cpy unistr/u32-cpy-alloc unistr/u32-endswith unistr/u32-mblen unistr/u32-mbsnlen unistr/u32-mbtouc unistr/u32-mbtouc-unsafe unistr/u32-mbtoucr unistr/u32-move unistr/u32-next unistr/u32-prev unistr/u32-set unistr/u32-startswith unistr/u32-stpcpy unistr/u32-stpncpy unistr/u32-strcat unistr/u32-strchr unistr/u32-strcmp unistr/u32-strcoll unistr/u32-strcpy unistr/u32-strcspn unistr/u32-strdup unistr/u32-strlen unistr/u32-strmblen unistr/u32-strmbtouc unistr/u32-strncat unistr/u32-strncmp unistr/u32-strncpy unistr/u32-strnlen unistr/u32-strpbrk unistr/u32-strrchr unistr/u32-strspn unistr/u32-strstr unistr/u32-strtok unistr/u32-to-u16 unistr/u32-to-u8 unistr/u32-uctomb unistr/u8-check unistr/u8-chr unistr/u8-cmp unistr/u8-cmp2 unistr/u8-cpy unistr/u8-cpy-alloc unistr/u8-endswith unistr/u8-mblen unistr/u8-mbsnlen unistr/u8-mbtouc unistr/u8-mbtouc-unsafe unistr/u8-mbtoucr unistr/u8-move unistr/u8-next unistr/u8-prev unistr/u8-set unistr/u8-startswith unistr/u8-stpcpy unistr/u8-stpncpy unistr/u8-strcat unistr/u8-strchr unistr/u8-strcmp unistr/u8-strcoll unistr/u8-strcpy unistr/u8-strcspn unistr/u8-strdup unistr/u8-strlen unistr/u8-strmblen unistr/u8-strmbtouc unistr/u8-strncat unistr/u8-strncmp unistr/u8-strncpy unistr/u8-strnlen unistr/u8-strpbrk unistr/u8-strrchr unistr/u8-strspn unistr/u8-strstr unistr/u8-strtok unistr/u8-to-u16 unistr/u8-to-u32 unistr/u8-uctomb unitypes uniwbrk/base uniwbrk/u16-wordbreaks uniwbrk/u32-wordbreaks uniwbrk/u8-wordbreaks uniwbrk/ulc-wordbreaks uniwbrk/wordbreak-property uniwidth/base uniwidth/u16-strwidth uniwidth/u16-width uniwidth/u32-strwidth uniwidth/u32-width uniwidth/u8-strwidth uniwidth/u8-width uniwidth/width
 
 # Specification in the form of a few gnulib-tool.m4 macro invocations:
 gl_LOCAL_DIR([gnulib-local])
@@ -99,10 +111,10 @@ gl_MODULES([
   uniconv/u8-strconv-to-enc
   uniconv/u8-strconv-to-locale
   unictype/base
-  unictype/bidicategory-all
+  unictype/bidiclass-all
   unictype/block-all
   unictype/category-all
-  unictype/combining-class
+  unictype/combining-class-all
   unictype/ctype-alnum
   unictype/ctype-alpha
   unictype/ctype-blank
@@ -117,6 +129,8 @@ gl_MODULES([
   unictype/ctype-xdigit
   unictype/decimal-digit
   unictype/digit
+  unictype/joininggroup-all
+  unictype/joiningtype-all
   unictype/mirror
   unictype/numeric
   unictype/property-all
@@ -125,6 +139,19 @@ gl_MODULES([
   unictype/syntax-c-whitespace
   unictype/syntax-java-ident
   unictype/syntax-java-whitespace
+  unigbrk/base
+  unigbrk/u16-grapheme-breaks
+  unigbrk/u16-grapheme-next
+  unigbrk/u16-grapheme-prev
+  unigbrk/u32-grapheme-breaks
+  unigbrk/u32-grapheme-next
+  unigbrk/u32-grapheme-prev
+  unigbrk/u8-grapheme-breaks
+  unigbrk/u8-grapheme-next
+  unigbrk/u8-grapheme-prev
+  unigbrk/uc-gbrk-prop
+  unigbrk/uc-is-grapheme-break
+  unigbrk/ulc-grapheme-breaks
   unilbrk/base
   unilbrk/u16-possible-linebreaks
   unilbrk/u16-width-linebreaks
@@ -369,3 +396,4 @@ gl_MAKEFILE_NAME([Makefile.gnulib])
 gl_LIBTOOL
 gl_MACRO_PREFIX([gl])
 gl_PO_DOMAIN([])
+gl_WITNESS_C_MACRO([])
index 4c7ac30..35f6195 100644 (file)
@@ -1,5 +1,5 @@
-# gnulib-common.m4 serial 20
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# gnulib-common.m4 serial 35
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -12,11 +12,25 @@ AC_DEFUN([gl_COMMON], [
   AC_REQUIRE([gl_COMMON_BODY])
 ])
 AC_DEFUN([gl_COMMON_BODY], [
+  AH_VERBATIM([_Noreturn],
+[/* The _Noreturn keyword of C11.  */
+#if ! (defined _Noreturn \
+       || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+      || 0x5110 <= __SUNPRO_C)
+#  define _Noreturn __attribute__ ((__noreturn__))
+# elif defined _MSC_VER && 1200 <= _MSC_VER
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn
+# endif
+#endif
+])
   AH_VERBATIM([isoc99_inline],
 [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
    the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
    earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
-   __APPLE__ && __MACH__ test for MacOS X.
+   __APPLE__ && __MACH__ test for Mac OS X.
    __APPLE_CC__ tests for the Apple compiler and its version.
    __STDC_VERSION__ tests for the C99 mode.  */
 #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
@@ -34,6 +48,30 @@ AC_DEFUN([gl_COMMON_BODY], [
 /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
    is a misnomer outside of parameter lists.  */
 #define _UNUSED_PARAMETER_ _GL_UNUSED
+
+/* gcc supports the "unused" attribute on possibly unused labels, and
+   g++ has since version 4.5.  Note to support C++ as well as C,
+   _GL_UNUSED_LABEL should be used with a trailing ;  */
+#if !defined __cplusplus || __GNUC__ > 4 \
+    || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# define _GL_UNUSED_LABEL _GL_UNUSED
+#else
+# define _GL_UNUSED_LABEL
+#endif
+
+/* The __pure__ attribute was added in gcc 2.96.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
 ])
   dnl Preparation for running test programs:
   dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not
@@ -47,16 +85,49 @@ AC_DEFUN([gl_COMMON_BODY], [
 # expands to a C preprocessor expression that evaluates to 1 or 0, depending
 # whether a gnulib module that has been requested shall be considered present
 # or not.
-AC_DEFUN([gl_MODULE_INDICATOR_CONDITION], [1])
+m4_define([gl_MODULE_INDICATOR_CONDITION], [1])
 
 # gl_MODULE_INDICATOR_SET_VARIABLE([modulename])
 # sets the shell variable that indicates the presence of the given module to
 # a C preprocessor expression that will evaluate to 1.
 AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE],
 [
-  GNULIB_[]m4_translit([[$1]],
-    [abcdefghijklmnopqrstuvwxyz./-],
-    [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=gl_MODULE_INDICATOR_CONDITION
+  gl_MODULE_INDICATOR_SET_VARIABLE_AUX(
+    [GNULIB_[]m4_translit([[$1]],
+                          [abcdefghijklmnopqrstuvwxyz./-],
+                          [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])],
+    [gl_MODULE_INDICATOR_CONDITION])
+])
+
+# gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable])
+# modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION.
+# The shell variable's value is a C preprocessor expression that evaluates
+# to 0 or 1.
+AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX],
+[
+  m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1],
+    [
+     dnl Simplify the expression VALUE || 1 to 1.
+     $1=1
+    ],
+    [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1],
+                                             [gl_MODULE_INDICATOR_CONDITION])])
+])
+
+# gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition])
+# modifies the shell variable to include the given condition.  The shell
+# variable's value is a C preprocessor expression that evaluates to 0 or 1.
+AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR],
+[
+  dnl Simplify the expression 1 || CONDITION to 1.
+  if test "$[]$1" != 1; then
+    dnl Simplify the expression 0 || CONDITION to CONDITION.
+    if test "$[]$1" = 0; then
+      $1=$2
+    else
+      $1="($[]$1 || $2)"
+    fi
+  fi
 ])
 
 # gl_MODULE_INDICATOR([modulename])
@@ -102,6 +173,40 @@ AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS],
     [Define to 1 when the gnulib module $1 should be tested.])
 ])
 
+# gl_ASSERT_NO_GNULIB_POSIXCHECK
+# asserts that there will never be a need to #define GNULIB_POSIXCHECK.
+# and thereby enables an optimization of configure and config.h.
+# Used by Emacs.
+AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK],
+[
+  dnl Override gl_WARN_ON_USE_PREPARE.
+  dnl But hide this definition from 'aclocal'.
+  AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], [])
+])
+
+# gl_ASSERT_NO_GNULIB_TESTS
+# asserts that there will be no gnulib tests in the scope of the configure.ac
+# and thereby enables an optimization of config.h.
+# Used by Emacs.
+AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS],
+[
+  dnl Override gl_MODULE_INDICATOR_FOR_TESTS.
+  AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [])
+])
+
+# Test whether <features.h> exists.
+# Set HAVE_FEATURES_H.
+AC_DEFUN([gl_FEATURES_H],
+[
+  AC_CHECK_HEADERS_ONCE([features.h])
+  if test $ac_cv_header_features_h = yes; then
+    HAVE_FEATURES_H=1
+  else
+    HAVE_FEATURES_H=0
+  fi
+  AC_SUBST([HAVE_FEATURES_H])
+])
+
 # m4_foreach_w
 # is a backport of autoconf-2.59c's m4_foreach_w.
 # Remove this macro when we can assume autoconf >= 2.60.
@@ -117,11 +222,90 @@ m4_ifndef([AS_VAR_IF],
 [m4_define([AS_VAR_IF],
 [AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])])
 
+# gl_PROG_CC_C99
+# Modifies the value of the shell variable CC in an attempt to make $CC
+# understand ISO C99 source code.
+# This is like AC_PROG_CC_C99, except that
+# - AC_PROG_CC_C99 did not exist in Autoconf versions < 2.60,
+# - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC
+#   <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00367.html>,
+#   but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99
+#   <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00441.html>.
+# Remaining problems:
+# - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options
+#   to CC twice
+#   <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00431.html>.
+# - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard.
+AC_DEFUN([gl_PROG_CC_C99],
+[
+  dnl Change that version number to the minimum Autoconf version that supports
+  dnl mixing AC_PROG_CC_C99 calls with AC_PROG_CC_STDC calls.
+  m4_version_prereq([9.0],
+    [AC_REQUIRE([AC_PROG_CC_C99])],
+    [AC_REQUIRE([AC_PROG_CC_STDC])])
+])
+
+# gl_PROG_AR_RANLIB
+# Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler.
+# The user can set the variables AR, ARFLAGS, RANLIB if he wants to override
+# the values.
+AC_DEFUN([gl_PROG_AR_RANLIB],
+[
+  dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler
+  dnl as "cc", and GCC as "gcc". They have different object file formats and
+  dnl library formats. In particular, the GNU binutils programs ar, ranlib
+  dnl produce libraries that work only with gcc, not with cc.
+  AC_REQUIRE([AC_PROG_CC])
+  AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler],
+    [
+      AC_EGREP_CPP([Amsterdam],
+        [
+#ifdef __ACK__
+Amsterdam
+#endif
+        ],
+        [gl_cv_c_amsterdam_compiler=yes],
+        [gl_cv_c_amsterdam_compiler=no])
+    ])
+  if test -z "$AR"; then
+    if test $gl_cv_c_amsterdam_compiler = yes; then
+      AR='cc -c.a'
+      if test -z "$ARFLAGS"; then
+        ARFLAGS='-o'
+      fi
+    else
+      dnl Use the Automake-documented default values for AR and ARFLAGS,
+      dnl but prefer ${host}-ar over ar (useful for cross-compiling).
+      AC_CHECK_TOOL([AR], [ar], [ar])
+      if test -z "$ARFLAGS"; then
+        ARFLAGS='cru'
+      fi
+    fi
+  else
+    if test -z "$ARFLAGS"; then
+      ARFLAGS='cru'
+    fi
+  fi
+  AC_SUBST([AR])
+  AC_SUBST([ARFLAGS])
+  if test -z "$RANLIB"; then
+    if test $gl_cv_c_amsterdam_compiler = yes; then
+      RANLIB=':'
+    else
+      dnl Use the ranlib program if it is available.
+      AC_PROG_RANLIB
+    fi
+  fi
+  AC_SUBST([RANLIB])
+])
+
 # AC_PROG_MKDIR_P
 # is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix
 # for interoperability with automake-1.9.6 from autoconf-2.62.
 # Remove this macro when we can assume autoconf >= 2.62 or
 # autoconf >= 2.60 && automake >= 1.10.
+# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness.
+m4_ifndef([AC_AUTOCONF_VERSION],[
 m4_ifdef([AC_PROG_MKDIR_P], [
   dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed.
   m4_define([AC_PROG_MKDIR_P],
@@ -132,13 +316,15 @@ m4_ifdef([AC_PROG_MKDIR_P], [
     [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
      MKDIR_P='$(mkdir_p)'
      AC_SUBST([MKDIR_P])])])
+])
 
 # AC_C_RESTRICT
 # This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61,
 # so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++
 # works.
 # This definition can be removed once autoconf >= 2.62 can be assumed.
-m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.62]),[-1],[
+# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness.
+m4_ifndef([AC_AUTOCONF_VERSION],[
 AC_DEFUN([AC_C_RESTRICT],
 [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict],
   [ac_cv_c_restrict=no
@@ -199,3 +385,63 @@ AC_DEFUN([gl_CACHE_VAL_SILENT],
   AC_CACHE_VAL([$1], [$2])
   as_echo_n="$saved_as_echo_n"
 ])
+
+# AS_VAR_COPY was added in autoconf 2.63b
+m4_define_default([AS_VAR_COPY],
+[AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])])
+
+# AC_PROG_SED was added in autoconf 2.59b
+m4_ifndef([AC_PROG_SED],
+[AC_DEFUN([AC_PROG_SED],
+[AC_CACHE_CHECK([for a sed that does not truncate output], ac_cv_path_SED,
+    [dnl ac_script should not contain more than 99 commands (for HP-UX sed),
+     dnl but more than about 7000 bytes, to catch a limit in Solaris 8 /usr/ucb/sed.
+     ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     AS_UNSET([ac_script])
+     if test -z "$SED"; then
+       ac_path_SED_found=false
+       _AS_PATH_WALK([], [
+         for ac_prog in sed gsed; do
+           for ac_exec_ext in '' $ac_executable_extensions; do
+             ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+             AS_EXECUTABLE_P(["$ac_path_SED"]) || continue
+             case `"$ac_path_SED" --version 2>&1` in
+               *GNU*) ac_cv_path_SED=$ac_path_SED ac_path_SED_found=:;;
+               *)
+                 ac_count=0
+                 _AS_ECHO_N([0123456789]) >conftest.in
+                 while :
+                 do
+                   cat conftest.in conftest.in >conftest.tmp
+                   mv conftest.tmp conftest.in
+                   cp conftest.in conftest.nl
+                   echo >> conftest.nl
+                   "$ac_path_SED" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
+                   diff conftest.out conftest.nl >/dev/null 2>&1 || break
+                   ac_count=`expr $ac_count + 1`
+                   if test $ac_count -gt ${ac_path_SED_max-0}; then
+                     # Best so far, but keep looking for better
+                     ac_cv_path_SED=$ac_path_SED
+                     ac_path_SED_max=$ac_count
+                   fi
+                   test $ac_count -gt 10 && break
+                 done
+                 rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+             esac
+             $ac_path_SED_found && break 3
+           done
+         done])
+       if test -z "$ac_cv_path_SED"; then
+         AC_ERROR([no acceptable sed could be found in \$PATH])
+       fi
+     else
+       ac_cv_path_SED=$SED
+     fi
+ SED="$ac_cv_path_SED"
+ AC_SUBST([SED])dnl
+ rm -f conftest.sed
+])])])
index 21284a4..c1cbfba 100644 (file)
@@ -1,10 +1,22 @@
 # DO NOT EDIT! GENERATED AUTOMATICALLY!
-# Copyright (C) 2002-2010 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 #
-# This file is free software, distributed under the terms of the GNU
-# General Public License.  As a special exception to the GNU General
-# Public License, this file may be distributed as part of a program
-# that contains a configuration script generated by Autoconf, under
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file.  If not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License,
+# this file may be distributed as part of a program that
+# contains a configuration script generated by Autoconf, under
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
@@ -12,7 +24,8 @@
 # This file represents the compiled summary of the specification in
 # gnulib-cache.m4. It lists the computed macro invocations that need
 # to be invoked from configure.ac.
-# In projects using CVS, this file can be treated like other built files.
+# In projects that use version control, this file can be treated like
+# other built files.
 
 
 # This macro should be invoked from ./configure.ac, in the section
@@ -24,14 +37,16 @@ AC_DEFUN([gl_EARLY],
   m4_pattern_allow([^gl_ES$])dnl a valid locale name
   m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
   m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
-  AC_REQUIRE([AC_PROG_RANLIB])
+  AC_REQUIRE([gl_PROG_AR_RANLIB])
   AC_REQUIRE([AM_PROG_CC_C_O])
+  # Code from module absolute-header:
   # Code from module alloca-opt:
   # Code from module alloca-opt-tests:
-  # Code from module arg-nonnull:
+  # Code from module amemxfrm:
   # Code from module array-mergesort:
   # Code from module array-mergesort-tests:
-  # Code from module c++defs:
+  # Code from module btowc:
+  # Code from module btowc-tests:
   # Code from module c-ctype:
   # Code from module c-ctype-tests:
   # Code from module c-strcase:
@@ -46,14 +61,24 @@ AC_DEFUN([gl_EARLY],
   # Code from module exitfail:
   # Code from module extensions:
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  # Code from module extern-inline:
+  # Code from module fdopen:
+  # Code from module fdopen-tests:
+  # Code from module fgetc-tests:
   # Code from module float:
+  # Code from module float-tests:
   # Code from module fpieee:
   AC_REQUIRE([gl_FP_IEEE])
   # Code from module fpucw:
+  # Code from module fputc-tests:
+  # Code from module fread-tests:
+  # Code from module frexp-nolibm:
+  # Code from module frexp-nolibm-tests:
   # Code from module frexpl-nolibm:
   # Code from module frexpl-nolibm-tests:
   # Code from module fseterr:
   # Code from module fseterr-tests:
+  # Code from module fwrite-tests:
   # Code from module getpagesize:
   # Code from module gettext-h:
   # Code from module gperf:
@@ -66,12 +91,18 @@ AC_DEFUN([gl_EARLY],
   # Code from module include_next:
   # Code from module inline:
   # Code from module intprops:
+  # Code from module intprops-tests:
+  # Code from module inttypes:
+  # Code from module inttypes-incomplete:
+  # Code from module inttypes-tests:
   # Code from module isnand-nolibm:
   # Code from module isnand-nolibm-tests:
   # Code from module isnanf-nolibm:
   # Code from module isnanf-nolibm-tests:
   # Code from module isnanl-nolibm:
   # Code from module isnanl-nolibm-tests:
+  # Code from module iswblank:
+  # Code from module iswblank-tests:
   # Code from module localcharset:
   # Code from module locale:
   # Code from module locale-tests:
@@ -91,11 +122,13 @@ AC_DEFUN([gl_EARLY],
   # Code from module mbsinit:
   # Code from module mbsinit-tests:
   # Code from module mbsnlen:
+  # Code from module mbtowc:
   # Code from module memchr:
   # Code from module memchr-tests:
   # Code from module memcmp2:
-  # Code from module memxfrm:
   # Code from module minmax:
+  # Code from module msvc-inval:
+  # Code from module msvc-nothrow:
   # Code from module multiarch:
   # Code from module nocrash:
   # Code from module printf-frexp:
@@ -108,19 +141,30 @@ AC_DEFUN([gl_EARLY],
   # Code from module relocatable-lib-lgpl:
   # Code from module setenv:
   # Code from module setenv-tests:
+  # Code from module setlocale:
+  # Code from module setlocale-tests:
   # Code from module signbit:
   # Code from module signbit-tests:
   # Code from module size_max:
+  # Code from module snippet/_Noreturn:
+  # Code from module snippet/arg-nonnull:
+  # Code from module snippet/c++defs:
+  # Code from module snippet/unused-parameter:
+  # Code from module snippet/warn-on-use:
+  # Code from module ssize_t:
   # Code from module stdbool:
   # Code from module stdbool-tests:
   # Code from module stddef:
   # Code from module stddef-tests:
   # Code from module stdint:
   # Code from module stdint-tests:
+  # Code from module stdio:
+  # Code from module stdio-tests:
   # Code from module stdlib:
   # Code from module stdlib-tests:
   # Code from module streq:
   # Code from module strerror:
+  # Code from module strerror-override:
   # Code from module strerror-tests:
   # Code from module striconveh:
   # Code from module striconveh-tests:
@@ -130,7 +174,15 @@ AC_DEFUN([gl_EARLY],
   # Code from module string-tests:
   # Code from module strncat:
   # Code from module strncat-tests:
+  # Code from module strstr:
+  # Code from module strstr-simple:
+  # Code from module strstr-tests:
+  # Code from module sys_types:
+  # Code from module sys_types-tests:
+  # Code from module test-framework-sh:
+  # Code from module test-framework-sh-tests:
   # Code from module thread:
+  # Code from module thread-tests:
   # Code from module threadlib:
   gl_THREADLIB_EARLY
   # Code from module unicase/base:
@@ -274,15 +326,17 @@ AC_DEFUN([gl_EARLY],
   # Code from module uniconv/u8-strconv-to-enc-tests:
   # Code from module uniconv/u8-strconv-to-locale:
   # Code from module unictype/base:
-  # Code from module unictype/bidicategory-all:
-  # Code from module unictype/bidicategory-byname:
-  # Code from module unictype/bidicategory-byname-tests:
-  # Code from module unictype/bidicategory-name:
-  # Code from module unictype/bidicategory-name-tests:
-  # Code from module unictype/bidicategory-of:
-  # Code from module unictype/bidicategory-of-tests:
-  # Code from module unictype/bidicategory-test:
-  # Code from module unictype/bidicategory-test-tests:
+  # Code from module unictype/bidiclass-all:
+  # Code from module unictype/bidiclass-byname:
+  # Code from module unictype/bidiclass-byname-tests:
+  # Code from module unictype/bidiclass-longname:
+  # Code from module unictype/bidiclass-longname-tests:
+  # Code from module unictype/bidiclass-name:
+  # Code from module unictype/bidiclass-name-tests:
+  # Code from module unictype/bidiclass-of:
+  # Code from module unictype/bidiclass-of-tests:
+  # Code from module unictype/bidiclass-test:
+  # Code from module unictype/bidiclass-test-tests:
   # Code from module unictype/block-all:
   # Code from module unictype/block-list:
   # Code from module unictype/block-list-tests:
@@ -304,6 +358,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module unictype/category-Cs-tests:
   # Code from module unictype/category-L:
   # Code from module unictype/category-L-tests:
+  # Code from module unictype/category-LC:
+  # Code from module unictype/category-LC-tests:
   # Code from module unictype/category-Ll:
   # Code from module unictype/category-Ll-tests:
   # Code from module unictype/category-Lm:
@@ -371,6 +427,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module unictype/category-and-tests:
   # Code from module unictype/category-byname:
   # Code from module unictype/category-byname-tests:
+  # Code from module unictype/category-longname:
+  # Code from module unictype/category-longname-tests:
   # Code from module unictype/category-name:
   # Code from module unictype/category-name-tests:
   # Code from module unictype/category-none:
@@ -383,6 +441,13 @@ AC_DEFUN([gl_EARLY],
   # Code from module unictype/category-test-withtable:
   # Code from module unictype/category-test-withtable-tests:
   # Code from module unictype/combining-class:
+  # Code from module unictype/combining-class-all:
+  # Code from module unictype/combining-class-byname:
+  # Code from module unictype/combining-class-byname-tests:
+  # Code from module unictype/combining-class-longname:
+  # Code from module unictype/combining-class-longname-tests:
+  # Code from module unictype/combining-class-name:
+  # Code from module unictype/combining-class-name-tests:
   # Code from module unictype/combining-class-tests:
   # Code from module unictype/ctype-alnum:
   # Code from module unictype/ctype-alnum-tests:
@@ -412,6 +477,22 @@ AC_DEFUN([gl_EARLY],
   # Code from module unictype/decimal-digit-tests:
   # Code from module unictype/digit:
   # Code from module unictype/digit-tests:
+  # Code from module unictype/joininggroup-all:
+  # Code from module unictype/joininggroup-byname:
+  # Code from module unictype/joininggroup-byname-tests:
+  # Code from module unictype/joininggroup-name:
+  # Code from module unictype/joininggroup-name-tests:
+  # Code from module unictype/joininggroup-of:
+  # Code from module unictype/joininggroup-of-tests:
+  # Code from module unictype/joiningtype-all:
+  # Code from module unictype/joiningtype-byname:
+  # Code from module unictype/joiningtype-byname-tests:
+  # Code from module unictype/joiningtype-longname:
+  # Code from module unictype/joiningtype-longname-tests:
+  # Code from module unictype/joiningtype-name:
+  # Code from module unictype/joiningtype-name-tests:
+  # Code from module unictype/joiningtype-of:
+  # Code from module unictype/joiningtype-of-tests:
   # Code from module unictype/mirror:
   # Code from module unictype/mirror-tests:
   # Code from module unictype/numeric:
@@ -457,6 +538,20 @@ AC_DEFUN([gl_EARLY],
   # Code from module unictype/property-bidi-whitespace-tests:
   # Code from module unictype/property-byname:
   # Code from module unictype/property-byname-tests:
+  # Code from module unictype/property-case-ignorable:
+  # Code from module unictype/property-case-ignorable-tests:
+  # Code from module unictype/property-cased:
+  # Code from module unictype/property-cased-tests:
+  # Code from module unictype/property-changes-when-casefolded:
+  # Code from module unictype/property-changes-when-casefolded-tests:
+  # Code from module unictype/property-changes-when-casemapped:
+  # Code from module unictype/property-changes-when-casemapped-tests:
+  # Code from module unictype/property-changes-when-lowercased:
+  # Code from module unictype/property-changes-when-lowercased-tests:
+  # Code from module unictype/property-changes-when-titlecased:
+  # Code from module unictype/property-changes-when-titlecased-tests:
+  # Code from module unictype/property-changes-when-uppercased:
+  # Code from module unictype/property-changes-when-uppercased-tests:
   # Code from module unictype/property-combining:
   # Code from module unictype/property-combining-tests:
   # Code from module unictype/property-composite:
@@ -590,6 +685,31 @@ AC_DEFUN([gl_EARLY],
   # Code from module unictype/syntax-java-ident-tests:
   # Code from module unictype/syntax-java-whitespace:
   # Code from module unictype/syntax-java-whitespace-tests:
+  # Code from module unigbrk/base:
+  # Code from module unigbrk/u16-grapheme-breaks:
+  # Code from module unigbrk/u16-grapheme-breaks-tests:
+  # Code from module unigbrk/u16-grapheme-next:
+  # Code from module unigbrk/u16-grapheme-next-tests:
+  # Code from module unigbrk/u16-grapheme-prev:
+  # Code from module unigbrk/u16-grapheme-prev-tests:
+  # Code from module unigbrk/u32-grapheme-breaks:
+  # Code from module unigbrk/u32-grapheme-breaks-tests:
+  # Code from module unigbrk/u32-grapheme-next:
+  # Code from module unigbrk/u32-grapheme-next-tests:
+  # Code from module unigbrk/u32-grapheme-prev:
+  # Code from module unigbrk/u32-grapheme-prev-tests:
+  # Code from module unigbrk/u8-grapheme-breaks:
+  # Code from module unigbrk/u8-grapheme-breaks-tests:
+  # Code from module unigbrk/u8-grapheme-next:
+  # Code from module unigbrk/u8-grapheme-next-tests:
+  # Code from module unigbrk/u8-grapheme-prev:
+  # Code from module unigbrk/u8-grapheme-prev-tests:
+  # Code from module unigbrk/uc-gbrk-prop:
+  # Code from module unigbrk/uc-gbrk-prop-tests:
+  # Code from module unigbrk/uc-is-grapheme-break:
+  # Code from module unigbrk/uc-is-grapheme-break-tests:
+  # Code from module unigbrk/ulc-grapheme-breaks:
+  # Code from module unigbrk/ulc-grapheme-breaks-tests:
   # Code from module unilbrk/base:
   # Code from module unilbrk/tables:
   # Code from module unilbrk/u16-possible-linebreaks:
@@ -779,6 +899,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module unistr/u16-strcat:
   # Code from module unistr/u16-strcat-tests:
   # Code from module unistr/u16-strchr:
+  # Code from module unistr/u16-strchr-tests:
   # Code from module unistr/u16-strcmp:
   # Code from module unistr/u16-strcmp-tests:
   # Code from module unistr/u16-strcoll:
@@ -806,6 +927,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module unistr/u16-strrchr:
   # Code from module unistr/u16-strspn:
   # Code from module unistr/u16-strstr:
+  # Code from module unistr/u16-strstr-tests:
   # Code from module unistr/u16-strtok:
   # Code from module unistr/u16-to-u32:
   # Code from module unistr/u16-to-u32-tests:
@@ -852,6 +974,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module unistr/u32-strcat:
   # Code from module unistr/u32-strcat-tests:
   # Code from module unistr/u32-strchr:
+  # Code from module unistr/u32-strchr-tests:
   # Code from module unistr/u32-strcmp:
   # Code from module unistr/u32-strcmp-tests:
   # Code from module unistr/u32-strcoll:
@@ -879,6 +1002,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module unistr/u32-strrchr:
   # Code from module unistr/u32-strspn:
   # Code from module unistr/u32-strstr:
+  # Code from module unistr/u32-strstr-tests:
   # Code from module unistr/u32-strtok:
   # Code from module unistr/u32-to-u16:
   # Code from module unistr/u32-to-u16-tests:
@@ -925,6 +1049,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module unistr/u8-strcat:
   # Code from module unistr/u8-strcat-tests:
   # Code from module unistr/u8-strchr:
+  # Code from module unistr/u8-strchr-tests:
   # Code from module unistr/u8-strcmp:
   # Code from module unistr/u8-strcmp-tests:
   # Code from module unistr/u8-strcoll:
@@ -952,6 +1077,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module unistr/u8-strrchr:
   # Code from module unistr/u8-strspn:
   # Code from module unistr/u8-strstr:
+  # Code from module unistr/u8-strstr-tests:
   # Code from module unistr/u8-strtok:
   # Code from module unistr/u8-to-u16:
   # Code from module unistr/u8-to-u16-tests:
@@ -988,19 +1114,22 @@ AC_DEFUN([gl_EARLY],
   # Code from module uniwidth/width-tests:
   # Code from module unsetenv:
   # Code from module unsetenv-tests:
-  # Code from module unused-parameter:
   # Code from module verify:
-  # Code from module warn-on-use:
+  # Code from module verify-tests:
   # Code from module wchar:
   # Code from module wchar-tests:
+  # Code from module wcrtomb:
+  # Code from module wcrtomb-tests:
   # Code from module wctob:
-  # Code from module wctype:
-  # Code from module wctype-tests:
+  # Code from module wctomb:
+  # Code from module wctype-h:
+  # Code from module wctype-h-tests:
   # Code from module wcwidth:
   # Code from module wcwidth-tests:
   # Code from module xalloc:
   # Code from module xalloc-die:
   # Code from module xalloc-die-tests:
+  # Code from module xalloc-oversized:
   # Code from module xsize:
   # Code from module yield:
 ])
@@ -1019,750 +1148,796 @@ AC_DEFUN([gl_INIT],
   m4_pushdef([gl_LIBSOURCES_DIR], [])
   gl_COMMON
   gl_source_base='lib'
-  # Code from module alloca-opt:
   gl_FUNC_ALLOCA
-  # Code from module arg-nonnull:
-  # Code from module array-mergesort:
-  # Code from module c++defs:
-  # Code from module c-ctype:
-  # Code from module c-strcase:
-  # Code from module c-strcaseeq:
-  # Code from module configmake:
-  # Code from module errno:
+  gl_CONFIGMAKE_PREP
   gl_HEADER_ERRNO_H
-  # Code from module extensions:
-  # Code from module float:
+  AC_REQUIRE([gl_EXTERN_INLINE])
   gl_FLOAT_H
-  # Code from module fpieee:
-  # Code from module fpucw:
-  # Code from module frexpl-nolibm:
+  if test $REPLACE_FLOAT_LDBL = 1; then
+    AC_LIBOBJ([float])
+  fi
+  if test $REPLACE_ITOLD = 1; then
+    AC_LIBOBJ([itold])
+  fi
+  gl_FUNC_FREXP_NO_LIBM
+  if test $gl_func_frexp_no_libm != yes; then
+    AC_LIBOBJ([frexp])
+  fi
+  gl_MATH_MODULE_INDICATOR([frexp])
   gl_FUNC_FREXPL_NO_LIBM
+  if test $HAVE_DECL_FREXPL = 0 || test $gl_func_frexpl_no_libm = no; then
+    AC_LIBOBJ([frexpl])
+  fi
   gl_MATH_MODULE_INDICATOR([frexpl])
-  # Code from module fseterr:
-  # Code from module gperf:
-  # Code from module havelib:
-  # Code from module iconv:
+  gl_FUNC_FSETERR
+  if test $ac_cv_func___fseterr = no; then
+    AC_LIBOBJ([fseterr])
+  fi
   AM_ICONV
-  # Code from module iconv-h:
+  m4_ifdef([gl_ICONV_MODULE_INDICATOR],
+    [gl_ICONV_MODULE_INDICATOR([iconv])])
   gl_ICONV_H
-  # Code from module iconv_open:
   gl_FUNC_ICONV_OPEN
-  # Code from module include_next:
-  # Code from module inline:
+  if test $REPLACE_ICONV_OPEN = 1; then
+    AC_LIBOBJ([iconv_open])
+  fi
+  if test $REPLACE_ICONV = 1; then
+    AC_LIBOBJ([iconv])
+    AC_LIBOBJ([iconv_close])
+  fi
   gl_INLINE
-  # Code from module isnand-nolibm:
   gl_FUNC_ISNAND_NO_LIBM
-  # Code from module isnanf-nolibm:
+  if test $gl_func_isnand_no_libm != yes; then
+    AC_LIBOBJ([isnand])
+    gl_PREREQ_ISNAND
+  fi
   gl_FUNC_ISNANF_NO_LIBM
-  # Code from module isnanl-nolibm:
+  if test $gl_func_isnanf_no_libm != yes; then
+    AC_LIBOBJ([isnanf])
+    gl_PREREQ_ISNANF
+  fi
   gl_FUNC_ISNANL_NO_LIBM
-  # Code from module localcharset:
+  if test $gl_func_isnanl_no_libm != yes; then
+    AC_LIBOBJ([isnanl])
+    gl_PREREQ_ISNANL
+  fi
+  gl_FUNC_ISWBLANK
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+    :
+  else
+    if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+      AC_LIBOBJ([iswblank])
+    fi
+  fi
+  gl_WCTYPE_MODULE_INDICATOR([iswblank])
   gl_LOCALCHARSET
-  LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\""
+  LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
   AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
-  # Code from module localename:
   gl_LOCALENAME
-  # Code from module lock:
   gl_LOCK
-  # Code from module malloc-posix:
+  gl_MODULE_INDICATOR([lock])
   gl_FUNC_MALLOC_POSIX
+  if test $REPLACE_MALLOC = 1; then
+    AC_LIBOBJ([malloc])
+  fi
   gl_STDLIB_MODULE_INDICATOR([malloc-posix])
-  # Code from module malloca:
   gl_MALLOCA
-  # Code from module math:
   gl_MATH_H
-  # Code from module mbchar:
   gl_MBCHAR
-  # Code from module mbiter:
   gl_MBITER
-  # Code from module mbrtowc:
   gl_FUNC_MBRTOWC
+  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
+    AC_LIBOBJ([mbrtowc])
+    gl_PREREQ_MBRTOWC
+  fi
   gl_WCHAR_MODULE_INDICATOR([mbrtowc])
-  # Code from module mbsinit:
   gl_FUNC_MBSINIT
+  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
+    AC_LIBOBJ([mbsinit])
+    gl_PREREQ_MBSINIT
+  fi
   gl_WCHAR_MODULE_INDICATOR([mbsinit])
-  # Code from module mbsnlen:
   gl_STRING_MODULE_INDICATOR([mbsnlen])
-  # Code from module memchr:
   gl_FUNC_MEMCHR
+  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
+    AC_LIBOBJ([memchr])
+    gl_PREREQ_MEMCHR
+  fi
   gl_STRING_MODULE_INDICATOR([memchr])
-  # Code from module memcmp2:
-  # Code from module memxfrm:
-  # Code from module minmax:
   gl_MINMAX
-  # Code from module multiarch:
   gl_MULTIARCH
-  # Code from module nocrash:
-  # Code from module printf-frexp:
   gl_FUNC_PRINTF_FREXP
-  # Code from module printf-frexpl:
   gl_FUNC_PRINTF_FREXPL
-  # Code from module printf-safe:
   m4_divert_text([INIT_PREPARE], [gl_printf_safe=yes])
-  # Code from module relocatable-lib-lgpl:
   gl_RELOCATABLE_LIBRARY
-  # Code from module signbit:
   gl_SIGNBIT
+  if test $REPLACE_SIGNBIT = 1; then
+    AC_LIBOBJ([signbitf])
+    AC_LIBOBJ([signbitd])
+    AC_LIBOBJ([signbitl])
+  fi
   gl_MATH_MODULE_INDICATOR([signbit])
-  # Code from module size_max:
   gl_SIZE_MAX
-  # Code from module stdbool:
+  gt_TYPE_SSIZE_T
   AM_STDBOOL_H
-  # Code from module stddef:
   gl_STDDEF_H
-  # Code from module stdint:
   gl_STDINT_H
-  # Code from module stdlib:
   gl_STDLIB_H
-  # Code from module streq:
-  # Code from module striconveh:
   if test $gl_cond_libtool = false; then
     gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV"
     gl_libdeps="$gl_libdeps $LIBICONV"
   fi
-  # Code from module striconveha:
-  # Code from module string:
   gl_HEADER_STRING_H
-  # Code from module strncat:
   gl_FUNC_STRNCAT
+  if test $REPLACE_STRNCAT = 1; then
+    AC_LIBOBJ([strncat])
+    gl_PREREQ_STRNCAT
+  fi
   gl_STRING_MODULE_INDICATOR([strncat])
-  # Code from module threadlib:
+  gl_FUNC_STRSTR
+  if test $REPLACE_STRSTR = 1; then
+    AC_LIBOBJ([strstr])
+  fi
+  gl_FUNC_STRSTR_SIMPLE
+  if test $REPLACE_STRSTR = 1; then
+    AC_LIBOBJ([strstr])
+  fi
+  gl_STRING_MODULE_INDICATOR([strstr])
+  gl_SYS_TYPES_H
+  AC_PROG_MKDIR_P
   gl_THREADLIB
-  # Code from module unicase/base:
-  # Code from module unicase/cased:
-  AC_REQUIRE([AC_C_INLINE])
-  # Code from module unicase/empty-prefix-context:
-  # Code from module unicase/empty-suffix-context:
-  # Code from module unicase/ignorable:
-  AC_REQUIRE([AC_C_INLINE])
-  # Code from module unicase/locale-language:
-  # Code from module unicase/special-casing:
-  # Code from module unicase/tocasefold:
-  # Code from module unicase/tolower:
-  # Code from module unicase/totitle:
-  # Code from module unicase/toupper:
-  # Code from module unicase/u16-casecmp:
-  # Code from module unicase/u16-casecoll:
-  # Code from module unicase/u16-casefold:
-  # Code from module unicase/u16-casemap:
-  # Code from module unicase/u16-casexfrm:
-  # Code from module unicase/u16-ct-casefold:
-  # Code from module unicase/u16-ct-tolower:
-  # Code from module unicase/u16-ct-totitle:
-  # Code from module unicase/u16-ct-toupper:
-  # Code from module unicase/u16-is-cased:
-  # Code from module unicase/u16-is-casefolded:
-  # Code from module unicase/u16-is-invariant:
-  # Code from module unicase/u16-is-lowercase:
-  # Code from module unicase/u16-is-titlecase:
-  # Code from module unicase/u16-is-uppercase:
-  # Code from module unicase/u16-tolower:
-  # Code from module unicase/u16-totitle:
-  # Code from module unicase/u16-toupper:
-  # Code from module unicase/u32-casecmp:
-  # Code from module unicase/u32-casecoll:
-  # Code from module unicase/u32-casefold:
-  # Code from module unicase/u32-casemap:
-  # Code from module unicase/u32-casexfrm:
-  # Code from module unicase/u32-ct-casefold:
-  # Code from module unicase/u32-ct-tolower:
-  # Code from module unicase/u32-ct-totitle:
-  # Code from module unicase/u32-ct-toupper:
-  # Code from module unicase/u32-is-cased:
-  # Code from module unicase/u32-is-casefolded:
-  # Code from module unicase/u32-is-invariant:
-  # Code from module unicase/u32-is-lowercase:
-  # Code from module unicase/u32-is-titlecase:
-  # Code from module unicase/u32-is-uppercase:
-  # Code from module unicase/u32-tolower:
-  # Code from module unicase/u32-totitle:
-  # Code from module unicase/u32-toupper:
-  # Code from module unicase/u8-casecmp:
-  # Code from module unicase/u8-casecoll:
-  # Code from module unicase/u8-casefold:
-  # Code from module unicase/u8-casemap:
-  # Code from module unicase/u8-casexfrm:
-  # Code from module unicase/u8-ct-casefold:
-  # Code from module unicase/u8-ct-tolower:
-  # Code from module unicase/u8-ct-totitle:
-  # Code from module unicase/u8-ct-toupper:
-  # Code from module unicase/u8-is-cased:
-  # Code from module unicase/u8-is-casefolded:
-  # Code from module unicase/u8-is-invariant:
-  # Code from module unicase/u8-is-lowercase:
-  # Code from module unicase/u8-is-titlecase:
-  # Code from module unicase/u8-is-uppercase:
-  # Code from module unicase/u8-tolower:
-  # Code from module unicase/u8-totitle:
-  # Code from module unicase/u8-toupper:
-  # Code from module unicase/ulc-casecmp:
-  # Code from module unicase/ulc-casecoll:
-  # Code from module unicase/ulc-casexfrm:
-  # Code from module uniconv/base:
-  # Code from module uniconv/u16-conv-from-enc:
+  gl_LIBUNISTRING_LIBHEADER([0.9.1], [unicase.h])
+  AC_REQUIRE([AC_C_INLINE])
+  gl_LIBUNISTRING_MODULE([0.9.1], [unicase/empty-prefix-context])
+  gl_LIBUNISTRING_MODULE([0.9.1], [unicase/empty-suffix-context])
+  AC_REQUIRE([AC_C_INLINE])
+  gl_LIBUNISTRING_MODULE([0.9.3], [unicase/locale-language])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/tolower])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/totitle])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/toupper])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-casecmp])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-casecoll])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-casefold])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-casexfrm])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-ct-casefold])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-ct-tolower])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-ct-totitle])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-ct-toupper])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-is-cased])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-is-casefolded])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-is-lowercase])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-is-titlecase])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-is-uppercase])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-tolower])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-totitle])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u16-toupper])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-casecmp])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-casecoll])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-casefold])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-casexfrm])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-ct-casefold])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-ct-tolower])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-ct-totitle])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-ct-toupper])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-is-cased])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-is-casefolded])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-is-lowercase])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-is-titlecase])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-is-uppercase])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-tolower])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-totitle])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u32-toupper])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-casecmp])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-casecoll])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-casefold])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-casexfrm])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-ct-casefold])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-ct-tolower])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-ct-totitle])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-ct-toupper])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-is-cased])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-is-casefolded])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-is-lowercase])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-is-titlecase])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-is-uppercase])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-tolower])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-totitle])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/u8-toupper])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/ulc-casecmp])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/ulc-casecoll])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unicase/ulc-casexfrm])
+  gl_LIBUNISTRING_LIBHEADER([0.9], [uniconv.h])
   AC_REQUIRE([gl_BIGENDIAN])
-  # Code from module uniconv/u16-conv-to-enc:
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u16-conv-from-enc])
   AC_REQUIRE([gl_BIGENDIAN])
-  # Code from module uniconv/u16-strconv-from-enc:
-  # Code from module uniconv/u16-strconv-from-locale:
-  # Code from module uniconv/u16-strconv-to-enc:
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u16-conv-to-enc])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u16-strconv-from-enc])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u16-strconv-from-locale])
   AC_REQUIRE([gl_BIGENDIAN])
-  # Code from module uniconv/u16-strconv-to-locale:
-  # Code from module uniconv/u32-conv-from-enc:
-  # Code from module uniconv/u32-conv-to-enc:
-  # Code from module uniconv/u32-strconv-from-enc:
-  # Code from module uniconv/u32-strconv-from-locale:
-  # Code from module uniconv/u32-strconv-to-enc:
-  # Code from module uniconv/u32-strconv-to-locale:
-  # Code from module uniconv/u8-conv-from-enc:
-  # Code from module uniconv/u8-conv-to-enc:
-  # Code from module uniconv/u8-strconv-from-enc:
-  # Code from module uniconv/u8-strconv-from-locale:
-  # Code from module uniconv/u8-strconv-to-enc:
-  # Code from module uniconv/u8-strconv-to-locale:
-  # Code from module unictype/base:
-  # Code from module unictype/bidicategory-all:
-  # Code from module unictype/bidicategory-byname:
-  # Code from module unictype/bidicategory-name:
-  # Code from module unictype/bidicategory-of:
-  # Code from module unictype/bidicategory-test:
-  # Code from module unictype/block-all:
-  # Code from module unictype/block-list:
-  # Code from module unictype/block-of:
-  # Code from module unictype/block-test:
-  # Code from module unictype/category-C:
-  # Code from module unictype/category-Cc:
-  # Code from module unictype/category-Cf:
-  # Code from module unictype/category-Cn:
-  # Code from module unictype/category-Co:
-  # Code from module unictype/category-Cs:
-  # Code from module unictype/category-L:
-  # Code from module unictype/category-Ll:
-  # Code from module unictype/category-Lm:
-  # Code from module unictype/category-Lo:
-  # Code from module unictype/category-Lt:
-  # Code from module unictype/category-Lu:
-  # Code from module unictype/category-M:
-  # Code from module unictype/category-Mc:
-  # Code from module unictype/category-Me:
-  # Code from module unictype/category-Mn:
-  # Code from module unictype/category-N:
-  # Code from module unictype/category-Nd:
-  # Code from module unictype/category-Nl:
-  # Code from module unictype/category-No:
-  # Code from module unictype/category-P:
-  # Code from module unictype/category-Pc:
-  # Code from module unictype/category-Pd:
-  # Code from module unictype/category-Pe:
-  # Code from module unictype/category-Pf:
-  # Code from module unictype/category-Pi:
-  # Code from module unictype/category-Po:
-  # Code from module unictype/category-Ps:
-  # Code from module unictype/category-S:
-  # Code from module unictype/category-Sc:
-  # Code from module unictype/category-Sk:
-  # Code from module unictype/category-Sm:
-  # Code from module unictype/category-So:
-  # Code from module unictype/category-Z:
-  # Code from module unictype/category-Zl:
-  # Code from module unictype/category-Zp:
-  # Code from module unictype/category-Zs:
-  # Code from module unictype/category-all:
-  # Code from module unictype/category-and:
-  # Code from module unictype/category-and-not:
-  # Code from module unictype/category-byname:
-  # Code from module unictype/category-name:
-  # Code from module unictype/category-none:
-  # Code from module unictype/category-of:
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u16-strconv-to-enc])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u16-strconv-to-locale])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u32-conv-from-enc])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u32-conv-to-enc])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u32-strconv-from-enc])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u32-strconv-from-locale])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u32-strconv-to-enc])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u32-strconv-to-locale])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u8-conv-from-enc])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u8-conv-to-enc])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u8-strconv-from-enc])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u8-strconv-from-locale])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u8-strconv-to-enc])
+  gl_LIBUNISTRING_MODULE([0.9], [uniconv/u8-strconv-to-locale])
+  gl_LIBUNISTRING_LIBHEADER([0.9.4], [unictype.h])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/bidiclass-byname])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/bidiclass-longname])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/bidiclass-name])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/bidiclass-of])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/bidiclass-test])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/block-list])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/block-test])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-C])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Cc])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Cf])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Cn])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Co])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Cs])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-L])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-LC])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Ll])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Lm])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Lo])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Lt])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Lu])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-M])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Mc])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Me])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Mn])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-N])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Nd])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Nl])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-No])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-P])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Pc])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Pd])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Pe])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Pf])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Pi])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Po])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Ps])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-S])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Sc])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Sk])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-Sm])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-So])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Z])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Zl])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Zp])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-Zs])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-and])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-and-not])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-byname])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-longname])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-name])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-none])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/category-or:
-  # Code from module unictype/category-test:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-of])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/category-or])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/category-test-withtable:
-  # Code from module unictype/combining-class:
-  # Code from module unictype/ctype-alnum:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/category-test])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/combining-class])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/combining-class-byname])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/combining-class-longname])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/combining-class-name])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/ctype-alpha:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/ctype-alnum])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/ctype-blank:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/ctype-alpha])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/ctype-cntrl:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/ctype-blank])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/ctype-digit:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/ctype-cntrl])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/ctype-graph:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/ctype-digit])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/ctype-lower:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/ctype-graph])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/ctype-print:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/ctype-lower])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/ctype-punct:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/ctype-print])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/ctype-space:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/ctype-punct])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/ctype-upper:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/ctype-space])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/ctype-xdigit:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/ctype-upper])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/decimal-digit:
-  # Code from module unictype/digit:
-  # Code from module unictype/mirror:
-  # Code from module unictype/numeric:
-  # Code from module unictype/property-all:
-  # Code from module unictype/property-alphabetic:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/ctype-xdigit])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/decimal-digit])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/digit])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/joininggroup-byname])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/joininggroup-name])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/joininggroup-of])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/joiningtype-byname])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/joiningtype-longname])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/joiningtype-name])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/joiningtype-of])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/mirror])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/numeric])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-ascii-hex-digit:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-alphabetic])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-arabic-digit:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-ascii-hex-digit])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-arabic-right-to-left:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-bidi-arabic-digit])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-block-separator:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-bidi-arabic-right-to-left])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-boundary-neutral:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-bidi-block-separator])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-common-separator:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-bidi-boundary-neutral])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-control:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-bidi-common-separator])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-embedding-or-override:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-bidi-control])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-eur-num-separator:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-bidi-embedding-or-override])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-eur-num-terminator:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-bidi-eur-num-separator])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-european-digit:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-bidi-eur-num-terminator])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-hebrew-right-to-left:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-bidi-european-digit])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-left-to-right:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-bidi-hebrew-right-to-left])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-non-spacing-mark:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-bidi-left-to-right])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-other-neutral:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-bidi-non-spacing-mark])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-pdf:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-bidi-other-neutral])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-segment-separator:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-bidi-pdf])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-bidi-whitespace:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-bidi-segment-separator])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-byname:
-  # Code from module unictype/property-combining:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-bidi-whitespace])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-byname])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-composite:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-case-ignorable])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-currency-symbol:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-cased])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-dash:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-changes-when-casefolded])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-decimal-digit:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-changes-when-casemapped])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-default-ignorable-code-point:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-changes-when-lowercased])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-deprecated:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-changes-when-titlecased])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-diacritic:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-changes-when-uppercased])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-extender:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-combining])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-format-control:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-composite])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-grapheme-base:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-currency-symbol])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-grapheme-extend:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-dash])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-grapheme-link:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-decimal-digit])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-hex-digit:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-default-ignorable-code-point])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-hyphen:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-deprecated])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-id-continue:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-diacritic])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-id-start:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-extender])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-ideographic:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-format-control])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-ids-binary-operator:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-grapheme-base])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-ids-trinary-operator:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-grapheme-extend])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-ignorable-control:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-grapheme-link])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-iso-control:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-hex-digit])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-join-control:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-hyphen])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-left-of-pair:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-id-continue])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-line-separator:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-id-start])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-logical-order-exception:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-ideographic])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-lowercase:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-ids-binary-operator])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-math:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-ids-trinary-operator])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-non-break:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-ignorable-control])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-not-a-character:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-iso-control])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-numeric:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-join-control])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-other-alphabetic:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-left-of-pair])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-other-default-ignorable-code-point:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-line-separator])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-other-grapheme-extend:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-logical-order-exception])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-other-id-continue:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-lowercase])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-other-id-start:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-math])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-other-lowercase:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-non-break])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-other-math:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-not-a-character])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-other-uppercase:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-numeric])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-paired-punctuation:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-other-alphabetic])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-paragraph-separator:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-other-default-ignorable-code-point])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-pattern-syntax:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-other-grapheme-extend])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-pattern-white-space:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-other-id-continue])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-private-use:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-other-id-start])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-punctuation:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-other-lowercase])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-quotation-mark:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-other-math])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-radical:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-other-uppercase])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-sentence-terminal:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-paired-punctuation])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-soft-dotted:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-paragraph-separator])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-space:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-pattern-syntax])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-terminal-punctuation:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-pattern-white-space])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-test:
-  # Code from module unictype/property-titlecase:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-private-use])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-unassigned-code-value:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-punctuation])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-unified-ideograph:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-quotation-mark])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-uppercase:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-radical])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-variation-selector:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-sentence-terminal])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-white-space:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-soft-dotted])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-xid-continue:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-space])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-xid-start:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-terminal-punctuation])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-test])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/property-zero-width:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-titlecase])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/scripts:
-  # Code from module unictype/scripts-all:
-  # Code from module unictype/syntax-c-ident:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-unassigned-code-value])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/syntax-c-whitespace:
-  # Code from module unictype/syntax-java-ident:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-unified-ideograph])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unictype/syntax-java-whitespace:
-  # Code from module unilbrk/base:
-  # Code from module unilbrk/tables:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-uppercase])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module unilbrk/u16-possible-linebreaks:
-  # Code from module unilbrk/u16-width-linebreaks:
-  # Code from module unilbrk/u32-possible-linebreaks:
-  # Code from module unilbrk/u32-width-linebreaks:
-  # Code from module unilbrk/u8-possible-linebreaks:
-  # Code from module unilbrk/u8-width-linebreaks:
-  # Code from module unilbrk/ulc-common:
-  # Code from module unilbrk/ulc-possible-linebreaks:
-  # Code from module unilbrk/ulc-width-linebreaks:
-  # Code from module uniname/base:
-  # Code from module uniname/uniname:
-  # Code from module uninorm/base:
-  # Code from module uninorm/canonical-decomposition:
-  # Code from module uninorm/compat-decomposition:
-  # Code from module uninorm/composition:
-  # Code from module uninorm/decompose-internal:
-  # Code from module uninorm/decomposing-form:
-  # Code from module uninorm/decomposition:
-  # Code from module uninorm/decomposition-table:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-variation-selector])
   AC_REQUIRE([AC_C_INLINE])
-  # Code from module uninorm/filter:
-  # Code from module uninorm/nfc:
-  # Code from module uninorm/nfd:
-  # Code from module uninorm/nfkc:
-  # Code from module uninorm/nfkd:
-  # Code from module uninorm/u16-normalize:
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/property-white-space])
+  AC_REQUIRE([AC_C_INLINE])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-xid-continue])
+  AC_REQUIRE([AC_C_INLINE])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-xid-start])
+  AC_REQUIRE([AC_C_INLINE])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/property-zero-width])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/scripts])
+  AC_REQUIRE([AC_C_INLINE])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/syntax-c-ident])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/syntax-c-whitespace])
+  AC_REQUIRE([AC_C_INLINE])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unictype/syntax-java-ident])
+  gl_LIBUNISTRING_MODULE([0.9], [unictype/syntax-java-whitespace])
+  gl_LIBUNISTRING_LIBHEADER([0.9.4], [unigbrk.h])
+  gl_MODULE_INDICATOR([unigbrk/u16-grapheme-breaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/u16-grapheme-breaks])
+  gl_MODULE_INDICATOR([unigbrk/u16-grapheme-next])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/u16-grapheme-next])
+  gl_MODULE_INDICATOR([unigbrk/u16-grapheme-prev])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/u16-grapheme-prev])
+  gl_MODULE_INDICATOR([unigbrk/u32-grapheme-breaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/u32-grapheme-breaks])
+  gl_MODULE_INDICATOR([unigbrk/u32-grapheme-next])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/u32-grapheme-next])
+  gl_MODULE_INDICATOR([unigbrk/u32-grapheme-prev])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/u32-grapheme-prev])
+  gl_MODULE_INDICATOR([unigbrk/u8-grapheme-breaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/u8-grapheme-breaks])
+  gl_MODULE_INDICATOR([unigbrk/u8-grapheme-next])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/u8-grapheme-next])
+  gl_MODULE_INDICATOR([unigbrk/u8-grapheme-prev])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/u8-grapheme-prev])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/uc-gbrk-prop])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/uc-is-grapheme-break])
+  gl_MODULE_INDICATOR([unigbrk/ulc-grapheme-breaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unigbrk/ulc-grapheme-breaks])
+  gl_LIBUNISTRING_LIBHEADER([0.9], [unilbrk.h])
+  AC_REQUIRE([AC_C_INLINE])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unilbrk/u16-possible-linebreaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unilbrk/u16-width-linebreaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unilbrk/u32-possible-linebreaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unilbrk/u32-width-linebreaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unilbrk/u8-possible-linebreaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unilbrk/u8-width-linebreaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unilbrk/ulc-possible-linebreaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unilbrk/ulc-width-linebreaks])
+  gl_LIBUNISTRING_LIBHEADER([0.9], [uniname.h])
+  gl_LIBUNISTRING_MODULE([0.9], [uniname/uniname])
+  gl_LIBUNISTRING_LIBHEADER([0.9], [uninorm.h])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/canonical-decomposition])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/composition])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/decomposing-form])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/decomposition])
+  AC_REQUIRE([AC_C_INLINE])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/filter])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/nfc])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/nfd])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/nfkc])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/nfkd])
   gl_MODULE_INDICATOR_FOR_TESTS([uninorm/u16-normalize])
-  # Code from module uninorm/u16-normcmp:
-  # Code from module uninorm/u16-normcoll:
-  # Code from module uninorm/u16-normxfrm:
-  # Code from module uninorm/u32-normalize:
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u16-normalize])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u16-normcmp])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u16-normcoll])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u16-normxfrm])
   gl_MODULE_INDICATOR_FOR_TESTS([uninorm/u32-normalize])
-  # Code from module uninorm/u32-normcmp:
-  # Code from module uninorm/u32-normcoll:
-  # Code from module uninorm/u32-normxfrm:
-  # Code from module uninorm/u8-normalize:
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u32-normalize])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u32-normcmp])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u32-normcoll])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u32-normxfrm])
   gl_MODULE_INDICATOR_FOR_TESTS([uninorm/u8-normalize])
-  # Code from module uninorm/u8-normcmp:
-  # Code from module uninorm/u8-normcoll:
-  # Code from module uninorm/u8-normxfrm:
-  # Code from module unistd:
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u8-normalize])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u8-normcmp])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u8-normcoll])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uninorm/u8-normxfrm])
   gl_UNISTD_H
-  # Code from module unistdio/base:
-  # Code from module unistdio/u-printf-args:
+  gl_LIBUNISTRING_LIBHEADER([0.9], [unistdio.h])
   gl_PREREQ_PRINTF_ARGS
-  # Code from module unistdio/u16-asnprintf:
-  # Code from module unistdio/u16-asprintf:
-  # Code from module unistdio/u16-printf-parse:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-asnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-asprintf])
   gl_PREREQ_PRINTF_PARSE
-  # Code from module unistdio/u16-snprintf:
-  # Code from module unistdio/u16-sprintf:
-  # Code from module unistdio/u16-u16-asnprintf:
-  # Code from module unistdio/u16-u16-asprintf:
-  # Code from module unistdio/u16-u16-snprintf:
-  # Code from module unistdio/u16-u16-sprintf:
-  # Code from module unistdio/u16-u16-vasnprintf:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-snprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-sprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-u16-asnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-u16-asprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-u16-snprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-u16-sprintf])
   gl_PREREQ_VASNPRINTF_WITH_EXTRAS
-  # Code from module unistdio/u16-u16-vasprintf:
-  # Code from module unistdio/u16-u16-vsnprintf:
-  # Code from module unistdio/u16-u16-vsprintf:
-  # Code from module unistdio/u16-vasnprintf:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-u16-vasnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-u16-vasprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-u16-vsnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-u16-vsprintf])
   gl_PREREQ_VASNPRINTF_WITH_EXTRAS
-  # Code from module unistdio/u16-vasprintf:
-  # Code from module unistdio/u16-vsnprintf:
-  # Code from module unistdio/u16-vsprintf:
-  # Code from module unistdio/u32-asnprintf:
-  # Code from module unistdio/u32-asprintf:
-  # Code from module unistdio/u32-printf-parse:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-vasnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-vasprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-vsnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u16-vsprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-asnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-asprintf])
   gl_PREREQ_PRINTF_PARSE
-  # Code from module unistdio/u32-snprintf:
-  # Code from module unistdio/u32-sprintf:
-  # Code from module unistdio/u32-u32-asnprintf:
-  # Code from module unistdio/u32-u32-asprintf:
-  # Code from module unistdio/u32-u32-snprintf:
-  # Code from module unistdio/u32-u32-sprintf:
-  # Code from module unistdio/u32-u32-vasnprintf:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-snprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-sprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-u32-asnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-u32-asprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-u32-snprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-u32-sprintf])
   gl_PREREQ_VASNPRINTF_WITH_EXTRAS
-  # Code from module unistdio/u32-u32-vasprintf:
-  # Code from module unistdio/u32-u32-vsnprintf:
-  # Code from module unistdio/u32-u32-vsprintf:
-  # Code from module unistdio/u32-vasnprintf:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-u32-vasnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-u32-vasprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-u32-vsnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-u32-vsprintf])
   gl_PREREQ_VASNPRINTF_WITH_EXTRAS
-  # Code from module unistdio/u32-vasprintf:
-  # Code from module unistdio/u32-vsnprintf:
-  # Code from module unistdio/u32-vsprintf:
-  # Code from module unistdio/u8-asnprintf:
-  # Code from module unistdio/u8-asprintf:
-  # Code from module unistdio/u8-printf-parse:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-vasnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-vasprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-vsnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u32-vsprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-asnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-asprintf])
   gl_PREREQ_PRINTF_PARSE
-  # Code from module unistdio/u8-snprintf:
-  # Code from module unistdio/u8-sprintf:
-  # Code from module unistdio/u8-u8-asnprintf:
-  # Code from module unistdio/u8-u8-asprintf:
-  # Code from module unistdio/u8-u8-snprintf:
-  # Code from module unistdio/u8-u8-sprintf:
-  # Code from module unistdio/u8-u8-vasnprintf:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-snprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-sprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-u8-asnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-u8-asprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-u8-snprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-u8-sprintf])
   gl_PREREQ_VASNPRINTF_WITH_EXTRAS
-  # Code from module unistdio/u8-u8-vasprintf:
-  # Code from module unistdio/u8-u8-vsnprintf:
-  # Code from module unistdio/u8-u8-vsprintf:
-  # Code from module unistdio/u8-vasnprintf:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-u8-vasnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-u8-vasprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-u8-vsnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-u8-vsprintf])
   gl_PREREQ_VASNPRINTF_WITH_EXTRAS
-  # Code from module unistdio/u8-vasprintf:
-  # Code from module unistdio/u8-vsnprintf:
-  # Code from module unistdio/u8-vsprintf:
-  # Code from module unistdio/ulc-asnprintf:
-  # Code from module unistdio/ulc-asprintf:
-  # Code from module unistdio/ulc-fprintf:
-  # Code from module unistdio/ulc-printf-parse:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-vasnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-vasprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-vsnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/u8-vsprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/ulc-asnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/ulc-asprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/ulc-fprintf])
   gl_PREREQ_PRINTF_PARSE
-  # Code from module unistdio/ulc-snprintf:
-  # Code from module unistdio/ulc-sprintf:
-  # Code from module unistdio/ulc-vasnprintf:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/ulc-snprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/ulc-sprintf])
   gl_PREREQ_VASNPRINTF_WITH_EXTRAS
-  # Code from module unistdio/ulc-vasprintf:
-  # Code from module unistdio/ulc-vfprintf:
-  # Code from module unistdio/ulc-vsnprintf:
-  # Code from module unistdio/ulc-vsprintf:
-  # Code from module unistr/base:
-  # Code from module unistr/u16-check:
-  # Code from module unistr/u16-chr:
-  # Code from module unistr/u16-cmp:
-  # Code from module unistr/u16-cmp2:
-  # Code from module unistr/u16-cpy:
-  # Code from module unistr/u16-cpy-alloc:
-  # Code from module unistr/u16-endswith:
-  # Code from module unistr/u16-mblen:
-  # Code from module unistr/u16-mbsnlen:
-  # Code from module unistr/u16-mbtouc:
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/ulc-vasnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/ulc-vasprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/ulc-vfprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/ulc-vsnprintf])
+  gl_LIBUNISTRING_MODULE([0.9], [unistdio/ulc-vsprintf])
+  gl_LIBUNISTRING_LIBHEADER([0.9.2], [unistr.h])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-check])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-chr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-cmp])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-cmp2])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-cpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-cpy-alloc])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-endswith])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-mblen])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-mbsnlen])
   gl_MODULE_INDICATOR([unistr/u16-mbtouc])
-  # Code from module unistr/u16-mbtouc-unsafe:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-mbtouc])
   gl_MODULE_INDICATOR([unistr/u16-mbtouc-unsafe])
-  # Code from module unistr/u16-mbtoucr:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-mbtouc-unsafe])
   gl_MODULE_INDICATOR([unistr/u16-mbtoucr])
-  # Code from module unistr/u16-move:
-  # Code from module unistr/u16-next:
-  # Code from module unistr/u16-prev:
-  # Code from module unistr/u16-set:
-  # Code from module unistr/u16-startswith:
-  # Code from module unistr/u16-stpcpy:
-  # Code from module unistr/u16-stpncpy:
-  # Code from module unistr/u16-strcat:
-  # Code from module unistr/u16-strchr:
-  # Code from module unistr/u16-strcmp:
-  # Code from module unistr/u16-strcoll:
-  # Code from module unistr/u16-strcpy:
-  # Code from module unistr/u16-strcspn:
-  # Code from module unistr/u16-strdup:
-  # Code from module unistr/u16-strlen:
-  # Code from module unistr/u16-strmblen:
-  # Code from module unistr/u16-strmbtouc:
-  # Code from module unistr/u16-strncat:
-  # Code from module unistr/u16-strncmp:
-  # Code from module unistr/u16-strncpy:
-  # Code from module unistr/u16-strnlen:
-  # Code from module unistr/u16-strpbrk:
-  # Code from module unistr/u16-strrchr:
-  # Code from module unistr/u16-strspn:
-  # Code from module unistr/u16-strstr:
-  # Code from module unistr/u16-strtok:
-  # Code from module unistr/u16-to-u32:
-  # Code from module unistr/u16-to-u8:
-  # Code from module unistr/u16-uctomb:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-mbtoucr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-move])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-next])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-prev])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-set])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-startswith])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-stpcpy])
+  gl_LIBUNISTRING_MODULE([0.9.3], [unistr/u16-stpncpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strcat])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strchr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strcmp])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u16-strcoll])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strcpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strcspn])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strdup])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strlen])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strmblen])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strmbtouc])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strncat])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strncmp])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strncpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strnlen])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strpbrk])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strrchr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strspn])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u16-strstr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-strtok])
+  gl_LIBUNISTRING_MODULE([0.9.3], [unistr/u16-to-u32])
+  gl_LIBUNISTRING_MODULE([0.9.3], [unistr/u16-to-u8])
   gl_MODULE_INDICATOR([unistr/u16-uctomb])
-  # Code from module unistr/u32-check:
-  # Code from module unistr/u32-chr:
-  # Code from module unistr/u32-cmp:
-  # Code from module unistr/u32-cmp2:
-  # Code from module unistr/u32-cpy:
-  # Code from module unistr/u32-cpy-alloc:
-  # Code from module unistr/u32-endswith:
-  # Code from module unistr/u32-mblen:
-  # Code from module unistr/u32-mbsnlen:
-  # Code from module unistr/u32-mbtouc:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u16-uctomb])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-check])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-chr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-cmp])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-cmp2])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-cpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-cpy-alloc])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-endswith])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-mblen])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-mbsnlen])
   gl_MODULE_INDICATOR([unistr/u32-mbtouc])
-  # Code from module unistr/u32-mbtouc-unsafe:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-mbtouc])
   gl_MODULE_INDICATOR([unistr/u32-mbtouc-unsafe])
-  # Code from module unistr/u32-mbtoucr:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-mbtouc-unsafe])
   gl_MODULE_INDICATOR([unistr/u32-mbtoucr])
-  # Code from module unistr/u32-move:
-  # Code from module unistr/u32-next:
-  # Code from module unistr/u32-prev:
-  # Code from module unistr/u32-set:
-  # Code from module unistr/u32-startswith:
-  # Code from module unistr/u32-stpcpy:
-  # Code from module unistr/u32-stpncpy:
-  # Code from module unistr/u32-strcat:
-  # Code from module unistr/u32-strchr:
-  # Code from module unistr/u32-strcmp:
-  # Code from module unistr/u32-strcoll:
-  # Code from module unistr/u32-strcpy:
-  # Code from module unistr/u32-strcspn:
-  # Code from module unistr/u32-strdup:
-  # Code from module unistr/u32-strlen:
-  # Code from module unistr/u32-strmblen:
-  # Code from module unistr/u32-strmbtouc:
-  # Code from module unistr/u32-strncat:
-  # Code from module unistr/u32-strncmp:
-  # Code from module unistr/u32-strncpy:
-  # Code from module unistr/u32-strnlen:
-  # Code from module unistr/u32-strpbrk:
-  # Code from module unistr/u32-strrchr:
-  # Code from module unistr/u32-strspn:
-  # Code from module unistr/u32-strstr:
-  # Code from module unistr/u32-strtok:
-  # Code from module unistr/u32-to-u16:
-  # Code from module unistr/u32-to-u8:
-  # Code from module unistr/u32-uctomb:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-mbtoucr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-move])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-next])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-prev])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-set])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-startswith])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-stpcpy])
+  gl_LIBUNISTRING_MODULE([0.9.3], [unistr/u32-stpncpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strcat])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strchr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strcmp])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u32-strcoll])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strcpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strcspn])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strdup])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strlen])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strmblen])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strmbtouc])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strncat])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strncmp])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strncpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strnlen])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strpbrk])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strrchr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strspn])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u32-strstr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-strtok])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-to-u16])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-to-u8])
   gl_MODULE_INDICATOR([unistr/u32-uctomb])
-  # Code from module unistr/u8-check:
-  # Code from module unistr/u8-chr:
-  # Code from module unistr/u8-cmp:
-  # Code from module unistr/u8-cmp2:
-  # Code from module unistr/u8-cpy:
-  # Code from module unistr/u8-cpy-alloc:
-  # Code from module unistr/u8-endswith:
-  # Code from module unistr/u8-mblen:
-  # Code from module unistr/u8-mbsnlen:
-  # Code from module unistr/u8-mbtouc:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u32-uctomb])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-check])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-chr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-cmp])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-cmp2])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-cpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-cpy-alloc])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-endswith])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-mblen])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-mbsnlen])
   gl_MODULE_INDICATOR([unistr/u8-mbtouc])
-  # Code from module unistr/u8-mbtouc-unsafe:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-mbtouc])
   gl_MODULE_INDICATOR([unistr/u8-mbtouc-unsafe])
-  # Code from module unistr/u8-mbtoucr:
+  gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-mbtouc-unsafe])
   gl_MODULE_INDICATOR([unistr/u8-mbtoucr])
-  # Code from module unistr/u8-move:
-  # Code from module unistr/u8-next:
-  # Code from module unistr/u8-prev:
-  # Code from module unistr/u8-set:
-  # Code from module unistr/u8-startswith:
-  # Code from module unistr/u8-stpcpy:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-mbtoucr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-move])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-next])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-prev])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-set])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-startswith])
   AC_CHECK_FUNCS_ONCE([stpcpy])
-  # Code from module unistr/u8-stpncpy:
-  # Code from module unistr/u8-strcat:
-  # Code from module unistr/u8-strchr:
-  # Code from module unistr/u8-strcmp:
-  # Code from module unistr/u8-strcoll:
-  # Code from module unistr/u8-strcpy:
-  # Code from module unistr/u8-strcspn:
-  # Code from module unistr/u8-strdup:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-stpcpy])
+  gl_LIBUNISTRING_MODULE([0.9.3], [unistr/u8-stpncpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strcat])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strchr])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-strcmp])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-strcoll])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strcpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strcspn])
   AC_CHECK_FUNCS_ONCE([strdup])
-  # Code from module unistr/u8-strlen:
-  # Code from module unistr/u8-strmblen:
-  # Code from module unistr/u8-strmbtouc:
-  # Code from module unistr/u8-strncat:
-  # Code from module unistr/u8-strncmp:
-  # Code from module unistr/u8-strncpy:
-  # Code from module unistr/u8-strnlen:
-  # Code from module unistr/u8-strpbrk:
-  # Code from module unistr/u8-strrchr:
-  # Code from module unistr/u8-strspn:
-  # Code from module unistr/u8-strstr:
-  # Code from module unistr/u8-strtok:
-  # Code from module unistr/u8-to-u16:
-  # Code from module unistr/u8-to-u32:
-  # Code from module unistr/u8-uctomb:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strdup])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strlen])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strmblen])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strmbtouc])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strncat])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strncmp])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strncpy])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strnlen])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strpbrk])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strrchr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strspn])
+  gl_LIBUNISTRING_MODULE([0.9.4], [unistr/u8-strstr])
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-strtok])
+  gl_LIBUNISTRING_MODULE([0.9.3], [unistr/u8-to-u16])
+  gl_LIBUNISTRING_MODULE([0.9.3], [unistr/u8-to-u32])
   gl_MODULE_INDICATOR([unistr/u8-uctomb])
-  # Code from module unitypes:
-  # Code from module uniwbrk/base:
-  # Code from module uniwbrk/table:
-  # Code from module uniwbrk/u16-wordbreaks:
-  # Code from module uniwbrk/u32-wordbreaks:
-  # Code from module uniwbrk/u8-wordbreaks:
-  # Code from module uniwbrk/ulc-wordbreaks:
-  # Code from module uniwbrk/wordbreak-property:
-  # Code from module uniwidth/base:
-  # Code from module uniwidth/u16-strwidth:
-  # Code from module uniwidth/u16-width:
-  # Code from module uniwidth/u32-strwidth:
-  # Code from module uniwidth/u32-width:
-  # Code from module uniwidth/u8-strwidth:
-  # Code from module uniwidth/u8-width:
-  # Code from module uniwidth/width:
-  # Code from module unused-parameter:
-  # Code from module verify:
-  # Code from module warn-on-use:
-  # Code from module wchar:
+  gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-uctomb])
+  gl_LIBUNISTRING_LIBHEADER([0.9], [unitypes.h])
+  gl_LIBUNISTRING_LIBHEADER([0.9], [uniwbrk.h])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwbrk/u16-wordbreaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwbrk/u32-wordbreaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwbrk/u8-wordbreaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwbrk/ulc-wordbreaks])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwbrk/wordbreak-property])
+  gl_LIBUNISTRING_LIBHEADER([0.9], [uniwidth.h])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/u16-strwidth])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/u16-width])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/u32-strwidth])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/u32-width])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/u8-strwidth])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/u8-width])
+  gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/width])
   gl_WCHAR_H
-  # Code from module wctype:
   gl_WCTYPE_H
-  # Code from module wcwidth:
   gl_FUNC_WCWIDTH
+  if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
+    AC_LIBOBJ([wcwidth])
+  fi
   gl_WCHAR_MODULE_INDICATOR([wcwidth])
-  # Code from module xsize:
   gl_XSIZE
   # End of code from modules
   m4_ifval(gl_LIBSOURCES_LIST, [
@@ -1810,21 +1985,45 @@ changequote([, ])dnl
   AC_SUBST([gltests_WITNESS])
   gl_module_indicator_condition=$gltests_WITNESS
   m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition])
+  gl_FUNC_BTOWC
+  if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
+    AC_LIBOBJ([btowc])
+    gl_PREREQ_BTOWC
+  fi
+  gl_WCHAR_MODULE_INDICATOR([btowc])
+  gt_LOCALE_FR
+  gt_LOCALE_FR_UTF8
   gt_LOCALE_FR
   gt_LOCALE_TR_UTF8
   gl_ENVIRON
   gl_UNISTD_MODULE_INDICATOR([environ])
   gl_ERROR
+  if test $ac_cv_lib_error_at_line = no; then
+    AC_LIBOBJ([error])
+    gl_PREREQ_ERROR
+  fi
   m4_ifdef([AM_XGETTEXT_OPTION],
     [AM_][XGETTEXT_OPTION([--flag=error:3:c-format])
      AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
+  gl_FUNC_FDOPEN
+  if test $REPLACE_FDOPEN = 1; then
+    AC_LIBOBJ([fdopen])
+    gl_PREREQ_FDOPEN
+  fi
+  gl_STDIO_MODULE_INDICATOR([fdopen])
   gl_FUNC_GETPAGESIZE
+  if test $REPLACE_GETPAGESIZE = 1; then
+    AC_LIBOBJ([getpagesize])
+  fi
   gl_UNISTD_MODULE_INDICATOR([getpagesize])
   AC_SUBST([LIBINTL])
   AC_SUBST([LTLIBINTL])
+  gl_INTTYPES_H
+  gl_INTTYPES_INCOMPLETE
   gl_DOUBLE_EXPONENT_LOCATION
   gl_FLOAT_EXPONENT_LOCATION
   gl_LONG_DOUBLE_EXPONENT_LOCATION
+  AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
   gl_LOCALE_H
   AC_CHECK_FUNCS_ONCE([newlocale])
   AC_CHECK_FUNCS_ONCE([newlocale])
@@ -1833,19 +2032,69 @@ changequote([, ])dnl
   gt_LOCALE_JA
   gt_LOCALE_ZH_CN
   gt_LOCALE_FR_UTF8
+  gl_FUNC_MBTOWC
+  if test $REPLACE_MBTOWC = 1; then
+    AC_LIBOBJ([mbtowc])
+    gl_PREREQ_MBTOWC
+  fi
+  gl_STDLIB_MODULE_INDICATOR([mbtowc])
+  dnl Check for prerequisites for memory fence checks.
+  gl_FUNC_MMAP_ANON
+  AC_CHECK_HEADERS_ONCE([sys/mman.h])
+  AC_CHECK_FUNCS_ONCE([mprotect])
+  gl_MSVC_INVAL
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    AC_LIBOBJ([msvc-inval])
+  fi
+  gl_MSVC_NOTHROW
+  if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+    AC_LIBOBJ([msvc-nothrow])
+  fi
   AC_CHECK_DECLS([program_invocation_name], [], [], [#include <errno.h>])
   AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include <errno.h>])
   gl_FUNC_PUTENV
+  if test $REPLACE_PUTENV = 1; then
+    AC_LIBOBJ([putenv])
+    gl_PREREQ_PUTENV
+  fi
   gl_STDLIB_MODULE_INDICATOR([putenv])
   gl_FUNC_SETENV
+  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+    AC_LIBOBJ([setenv])
+  fi
   gl_STDLIB_MODULE_INDICATOR([setenv])
+  gl_FUNC_SETLOCALE
+  if test $REPLACE_SETLOCALE = 1; then
+    AC_LIBOBJ([setlocale])
+    gl_PREREQ_SETLOCALE
+  fi
+  gl_LOCALE_MODULE_INDICATOR([setlocale])
+  gt_LOCALE_FR
+  gt_LOCALE_FR_UTF8
+  gt_LOCALE_JA
+  gt_LOCALE_ZH_CN
   AC_REQUIRE([gl_FLOAT_EXPONENT_LOCATION])
   AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION])
   AC_REQUIRE([gl_LONG_DOUBLE_EXPONENT_LOCATION])
-  gt_TYPE_WCHAR_T
-  gt_TYPE_WINT_T
+  AC_REQUIRE([gt_TYPE_WCHAR_T])
+  AC_REQUIRE([gt_TYPE_WINT_T])
+  gl_STDIO_H
   gl_FUNC_STRERROR
+  if test $REPLACE_STRERROR = 1; then
+    AC_LIBOBJ([strerror])
+  fi
+  gl_MODULE_INDICATOR([strerror])
   gl_STRING_MODULE_INDICATOR([strerror])
+  AC_REQUIRE([gl_HEADER_ERRNO_H])
+  AC_REQUIRE([gl_FUNC_STRERROR_0])
+  if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+    AC_LIBOBJ([strerror-override])
+    gl_PREREQ_SYS_H_WINSOCK2
+  fi
+  gl_FUNC_MMAP_ANON
+  AC_CHECK_HEADERS_ONCE([sys/mman.h])
+  AC_CHECK_FUNCS_ONCE([mprotect])
+  AC_CHECK_DECLS_ONCE([alarm])
   gl_FUNC_MMAP_ANON
   AC_CHECK_HEADERS_ONCE([sys/mman.h])
   AC_CHECK_FUNCS_ONCE([mprotect])
@@ -1859,6 +2108,7 @@ changequote([, ])dnl
   gt_LOCALE_FR_UTF8
   gt_LOCALE_FR
   gt_LOCALE_FR_UTF8
+  gt_LOCALE_AR
   AC_CHECK_DECLS_ONCE([alarm])
   AC_CHECK_DECLS_ONCE([alarm])
   AC_CHECK_DECLS_ONCE([alarm])
@@ -1892,6 +2142,13 @@ changequote([, ])dnl
   gl_FUNC_MMAP_ANON
   AC_CHECK_HEADERS_ONCE([sys/mman.h])
   AC_CHECK_FUNCS_ONCE([mprotect])
+  AC_CHECK_DECLS_ONCE([alarm])
+  gl_FUNC_MMAP_ANON
+  AC_CHECK_HEADERS_ONCE([sys/mman.h])
+  AC_CHECK_FUNCS_ONCE([mprotect])
+  gl_FUNC_MMAP_ANON
+  AC_CHECK_HEADERS_ONCE([sys/mman.h])
+  AC_CHECK_FUNCS_ONCE([mprotect])
   gl_FUNC_MMAP_ANON
   AC_CHECK_HEADERS_ONCE([sys/mman.h])
   AC_CHECK_FUNCS_ONCE([mprotect])
@@ -1907,6 +2164,7 @@ changequote([, ])dnl
   gl_FUNC_MMAP_ANON
   AC_CHECK_HEADERS_ONCE([sys/mman.h])
   AC_CHECK_FUNCS_ONCE([mprotect])
+  AC_CHECK_DECLS_ONCE([alarm])
   gl_FUNC_MMAP_ANON
   AC_CHECK_HEADERS_ONCE([sys/mman.h])
   AC_CHECK_FUNCS_ONCE([mprotect])
@@ -1925,11 +2183,39 @@ changequote([, ])dnl
   gl_FUNC_MMAP_ANON
   AC_CHECK_HEADERS_ONCE([sys/mman.h])
   AC_CHECK_FUNCS_ONCE([mprotect])
+  gl_FUNC_MMAP_ANON
+  AC_CHECK_HEADERS_ONCE([sys/mman.h])
+  AC_CHECK_FUNCS_ONCE([mprotect])
+  AC_CHECK_DECLS_ONCE([alarm])
   gt_LOCALE_FR
   gl_FUNC_UNSETENV
+  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+    AC_LIBOBJ([unsetenv])
+    gl_PREREQ_UNSETENV
+  fi
   gl_STDLIB_MODULE_INDICATOR([unsetenv])
+  gl_FUNC_WCRTOMB
+  if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
+    AC_LIBOBJ([wcrtomb])
+    gl_PREREQ_WCRTOMB
+  fi
+  gl_WCHAR_MODULE_INDICATOR([wcrtomb])
+  gt_LOCALE_FR
+  gt_LOCALE_FR_UTF8
+  gt_LOCALE_JA
+  gt_LOCALE_ZH_CN
   gl_FUNC_WCTOB
+  if test $HAVE_WCTOB = 0 || test $REPLACE_WCTOB = 1; then
+    AC_LIBOBJ([wctob])
+    gl_PREREQ_WCTOB
+  fi
   gl_WCHAR_MODULE_INDICATOR([wctob])
+  gl_FUNC_WCTOMB
+  if test $REPLACE_WCTOMB = 1; then
+    AC_LIBOBJ([wctomb])
+    gl_PREREQ_WCTOMB
+  fi
+  gl_STDLIB_MODULE_INDICATOR([wctomb])
   gl_XALLOC
   gl_YIELD
   m4_popdef([gl_MODULE_INDICATOR_CONDITION])
@@ -2024,13 +2310,16 @@ AC_DEFUN([gltests_LIBSOURCES], [
 # This macro records the list of files which have been installed by
 # gnulib-tool and may be removed by future gnulib-tool invocations.
 AC_DEFUN([gl_FILE_LIST], [
-  build-aux/arg-nonnull.h
-  build-aux/c++defs.h
   build-aux/config.rpath
-  build-aux/unused-parameter.h
-  build-aux/warn-on-use.h
+  build-aux/snippet/_Noreturn.h
+  build-aux/snippet/arg-nonnull.h
+  build-aux/snippet/c++defs.h
+  build-aux/snippet/unused-parameter.h
+  build-aux/snippet/warn-on-use.h
   doc/relocatable.texi
   lib/alloca.in.h
+  lib/amemxfrm.c
+  lib/amemxfrm.h
   lib/array-mergesort.h
   lib/c-ctype.c
   lib/c-ctype.h
@@ -2041,6 +2330,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/config.charset
   lib/errno.in.h
   lib/float+.h
+  lib/float.c
   lib/float.in.h
   lib/fpucw.h
   lib/frexp.c
@@ -2050,7 +2340,9 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/glthread/lock.c
   lib/glthread/lock.h
   lib/glthread/threadlib.c
+  lib/iconv.c
   lib/iconv.in.h
+  lib/iconv_close.c
   lib/iconv_open-aix.gperf
   lib/iconv_open-hpux.gperf
   lib/iconv_open-irix.gperf
@@ -2065,6 +2357,8 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/isnanf.c
   lib/isnanl-nolibm.h
   lib/isnanl.c
+  lib/iswblank.c
+  lib/itold.c
   lib/localcharset.c
   lib/localcharset.h
   lib/localename.c
@@ -2073,9 +2367,11 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/malloca.c
   lib/malloca.h
   lib/malloca.valgrind
+  lib/math.c
   lib/math.in.h
   lib/mbchar.c
   lib/mbchar.h
+  lib/mbiter.c
   lib/mbiter.h
   lib/mbrtowc.c
   lib/mbsinit.c
@@ -2084,8 +2380,6 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/memchr.valgrind
   lib/memcmp2.c
   lib/memcmp2.h
-  lib/memxfrm.c
-  lib/memxfrm.h
   lib/minmax.h
   lib/printf-args.c
   lib/printf-args.h
@@ -2108,6 +2402,8 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/stdint.in.h
   lib/stdio-impl.h
   lib/stdlib.in.h
+  lib/str-kmp.h
+  lib/str-two-way.h
   lib/streq.h
   lib/striconveh.c
   lib/striconveh.h
@@ -2115,7 +2411,9 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/striconveha.h
   lib/string.in.h
   lib/strncat.c
-  lib/unicase.h
+  lib/strstr.c
+  lib/sys_types.in.h
+  lib/unicase.in.h
   lib/unicase/cased.c
   lib/unicase/cased.h
   lib/unicase/casefold.h
@@ -2208,7 +2506,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/unicase/ulc-casecoll.c
   lib/unicase/ulc-casexfrm.c
   lib/unicase/unicasemap.h
-  lib/uniconv.h
+  lib/uniconv.in.h
   lib/uniconv/u-conv-from-enc.h
   lib/uniconv/u-conv-to-enc.h
   lib/uniconv/u-strconv-from-enc.h
@@ -2231,8 +2529,10 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/uniconv/u8-strconv-from-locale.c
   lib/uniconv/u8-strconv-to-enc.c
   lib/uniconv/u8-strconv-to-locale.c
-  lib/unictype.h
+  lib/unictype.in.h
   lib/unictype/bidi_byname.c
+  lib/unictype/bidi_byname.gperf
+  lib/unictype/bidi_longname.c
   lib/unictype/bidi_name.c
   lib/unictype/bidi_of.c
   lib/unictype/bidi_of.h
@@ -2255,6 +2555,8 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/unictype/categ_Cs.h
   lib/unictype/categ_L.c
   lib/unictype/categ_L.h
+  lib/unictype/categ_LC.c
+  lib/unictype/categ_LC.h
   lib/unictype/categ_Ll.c
   lib/unictype/categ_Ll.h
   lib/unictype/categ_Lm.c
@@ -2318,14 +2620,20 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/unictype/categ_and.c
   lib/unictype/categ_and_not.c
   lib/unictype/categ_byname.c
+  lib/unictype/categ_byname.gperf
+  lib/unictype/categ_longname.c
   lib/unictype/categ_name.c
   lib/unictype/categ_none.c
   lib/unictype/categ_of.c
   lib/unictype/categ_of.h
   lib/unictype/categ_or.c
   lib/unictype/categ_test.c
-  lib/unictype/combining.c
-  lib/unictype/combining.h
+  lib/unictype/combiningclass.c
+  lib/unictype/combiningclass.h
+  lib/unictype/combiningclass_byname.c
+  lib/unictype/combiningclass_byname.gperf
+  lib/unictype/combiningclass_longname.c
+  lib/unictype/combiningclass_name.c
   lib/unictype/ctype_alnum.c
   lib/unictype/ctype_alnum.h
   lib/unictype/ctype_alpha.c
@@ -2355,6 +2663,18 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/unictype/digit.c
   lib/unictype/digit.h
   lib/unictype/identsyntaxmap.h
+  lib/unictype/joininggroup_byname.c
+  lib/unictype/joininggroup_byname.gperf
+  lib/unictype/joininggroup_name.c
+  lib/unictype/joininggroup_name.h
+  lib/unictype/joininggroup_of.c
+  lib/unictype/joininggroup_of.h
+  lib/unictype/joiningtype_byname.c
+  lib/unictype/joiningtype_byname.gperf
+  lib/unictype/joiningtype_longname.c
+  lib/unictype/joiningtype_name.c
+  lib/unictype/joiningtype_of.c
+  lib/unictype/joiningtype_of.h
   lib/unictype/mirror.c
   lib/unictype/mirror.h
   lib/unictype/numeric.c
@@ -2399,6 +2719,20 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/unictype/pr_bidi_whitespace.h
   lib/unictype/pr_byname.c
   lib/unictype/pr_byname.gperf
+  lib/unictype/pr_case_ignorable.c
+  lib/unictype/pr_case_ignorable.h
+  lib/unictype/pr_cased.c
+  lib/unictype/pr_cased.h
+  lib/unictype/pr_changes_when_casefolded.c
+  lib/unictype/pr_changes_when_casefolded.h
+  lib/unictype/pr_changes_when_casemapped.c
+  lib/unictype/pr_changes_when_casemapped.h
+  lib/unictype/pr_changes_when_lowercased.c
+  lib/unictype/pr_changes_when_lowercased.h
+  lib/unictype/pr_changes_when_titlecased.c
+  lib/unictype/pr_changes_when_titlecased.h
+  lib/unictype/pr_changes_when_uppercased.c
+  lib/unictype/pr_changes_when_uppercased.h
   lib/unictype/pr_combining.c
   lib/unictype/pr_combining.h
   lib/unictype/pr_composite.c
@@ -2529,7 +2863,21 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/unictype/sy_java_ident.c
   lib/unictype/sy_java_ident.h
   lib/unictype/sy_java_whitespace.c
-  lib/unilbrk.h
+  lib/unigbrk.in.h
+  lib/unigbrk/gbrkprop.h
+  lib/unigbrk/u16-grapheme-breaks.c
+  lib/unigbrk/u16-grapheme-next.c
+  lib/unigbrk/u16-grapheme-prev.c
+  lib/unigbrk/u32-grapheme-breaks.c
+  lib/unigbrk/u32-grapheme-next.c
+  lib/unigbrk/u32-grapheme-prev.c
+  lib/unigbrk/u8-grapheme-breaks.c
+  lib/unigbrk/u8-grapheme-next.c
+  lib/unigbrk/u8-grapheme-prev.c
+  lib/unigbrk/uc-gbrk-prop.c
+  lib/unigbrk/uc-is-grapheme-break.c
+  lib/unigbrk/ulc-grapheme-breaks.c
+  lib/unilbrk.in.h
   lib/unilbrk/lbrkprop1.h
   lib/unilbrk/lbrkprop2.h
   lib/unilbrk/lbrktables.c
@@ -2544,11 +2892,11 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/unilbrk/ulc-common.h
   lib/unilbrk/ulc-possible-linebreaks.c
   lib/unilbrk/ulc-width-linebreaks.c
-  lib/uniname.h
+  lib/uniname.in.h
   lib/uniname/gen-uninames.lisp
   lib/uniname/uniname.c
   lib/uniname/uninames.h
-  lib/uninorm.h
+  lib/uninorm.in.h
   lib/uninorm/canonical-decomposition.c
   lib/uninorm/compat-decomposition.c
   lib/uninorm/composition-table.gperf
@@ -2583,8 +2931,9 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/uninorm/u8-normcoll.c
   lib/uninorm/u8-normxfrm.c
   lib/uninorm/uninorm-filter.c
+  lib/unistd.c
   lib/unistd.in.h
-  lib/unistdio.h
+  lib/unistdio.in.h
   lib/unistdio/u-asnprintf.h
   lib/unistdio/u-asprintf.h
   lib/unistdio/u-printf-args.c
@@ -2657,7 +3006,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/unistdio/ulc-vfprintf.c
   lib/unistdio/ulc-vsnprintf.c
   lib/unistdio/ulc-vsprintf.c
-  lib/unistr.h
+  lib/unistr.in.h
   lib/unistr/u-cmp2.h
   lib/unistr/u-cpy-alloc.h
   lib/unistr/u-cpy.h
@@ -2809,8 +3158,8 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/unistr/u8-to-u32.c
   lib/unistr/u8-uctomb-aux.c
   lib/unistr/u8-uctomb.c
-  lib/unitypes.h
-  lib/uniwbrk.h
+  lib/unitypes.in.h
+  lib/uniwbrk.in.h
   lib/uniwbrk/u-wordbreaks.h
   lib/uniwbrk/u16-wordbreaks.c
   lib/uniwbrk/u32-wordbreaks.c
@@ -2820,7 +3169,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/uniwbrk/wbrktable.c
   lib/uniwbrk/wbrktable.h
   lib/uniwbrk/wordbreak-property.c
-  lib/uniwidth.h
+  lib/uniwidth.in.h
   lib/uniwidth/cjk.h
   lib/uniwidth/u16-strwidth.c
   lib/uniwidth/u16-width.c
@@ -2832,12 +3181,17 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/vasnprintf.c
   lib/verify.h
   lib/wchar.in.h
+  lib/wctype-h.c
   lib/wctype.in.h
   lib/wcwidth.c
+  lib/xsize.c
   lib/xsize.h
   m4/00gnulib.m4
+  m4/absolute-header.m4
   m4/alloca.m4
+  m4/btowc.m4
   m4/codeset.m4
+  m4/configmake.m4
   m4/eealloc.m4
   m4/environ.m4
   m4/errno_h.m4
@@ -2846,11 +3200,14 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/exponentf.m4
   m4/exponentl.m4
   m4/extensions.m4
+  m4/extern-inline.m4
   m4/fcntl-o.m4
+  m4/fdopen.m4
   m4/float_h.m4
   m4/fpieee.m4
   m4/frexp.m4
   m4/frexpl.m4
+  m4/fseterr.m4
   m4/getpagesize.m4
   m4/glibc21.m4
   m4/gnulib-common.m4
@@ -2861,16 +3218,21 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/inline.m4
   m4/intlmacosx.m4
   m4/intmax_t.m4
+  m4/inttypes-pri.m4
+  m4/inttypes.m4
   m4/inttypes_h.m4
   m4/isnand.m4
   m4/isnanf.m4
   m4/isnanl.m4
+  m4/iswblank.m4
   m4/lcmessage.m4
   m4/ldexpl.m4
   m4/lib-ld.m4
   m4/lib-link.m4
   m4/lib-prefix.m4
+  m4/libunistring-base.m4
   m4/localcharset.m4
+  m4/locale-ar.m4
   m4/locale-fr.m4
   m4/locale-ja.m4
   m4/locale-tr.m4
@@ -2887,27 +3249,37 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/mbrtowc.m4
   m4/mbsinit.m4
   m4/mbstate_t.m4
+  m4/mbtowc.m4
   m4/memchr.m4
   m4/minmax.m4
   m4/mmap-anon.m4
+  m4/msvc-inval.m4
+  m4/msvc-nothrow.m4
   m4/multiarch.m4
   m4/nocrash.m4
+  m4/off_t.m4
   m4/printf-frexp.m4
   m4/printf-frexpl.m4
   m4/printf.m4
   m4/putenv.m4
   m4/relocatable-lib.m4
   m4/setenv.m4
+  m4/setlocale.m4
   m4/signbit.m4
   m4/size_max.m4
+  m4/ssize_t.m4
   m4/stdbool.m4
   m4/stddef_h.m4
   m4/stdint.m4
   m4/stdint_h.m4
+  m4/stdio_h.m4
   m4/stdlib_h.m4
   m4/strerror.m4
   m4/string_h.m4
   m4/strncat.m4
+  m4/strstr.m4
+  m4/sys_socket_h.m4
+  m4/sys_types_h.m4
   m4/thread.m4
   m4/threadlib.m4
   m4/unistd_h.m4
@@ -2915,40 +3287,67 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/warn-on-use.m4
   m4/wchar_h.m4
   m4/wchar_t.m4
+  m4/wcrtomb.m4
   m4/wctob.m4
+  m4/wctomb.m4
   m4/wctype_h.m4
   m4/wcwidth.m4
   m4/wint_t.m4
   m4/xalloc.m4
   m4/xsize.m4
   m4/yield.m4
+  tests/infinity.h
   tests/init.sh
   tests/macros.h
+  tests/minus-zero.h
   tests/nan.h
+  tests/randomd.c
+  tests/randoml.c
   tests/signature.h
   tests/test-alloca-opt.c
   tests/test-array-mergesort.c
+  tests/test-btowc.c
+  tests/test-btowc1.sh
+  tests/test-btowc2.sh
   tests/test-c-ctype.c
   tests/test-c-strcase.sh
   tests/test-c-strcasecmp.c
   tests/test-c-strncasecmp.c
   tests/test-environ.c
   tests/test-errno.c
+  tests/test-fdopen.c
+  tests/test-fgetc.c
+  tests/test-float.c
+  tests/test-fputc.c
+  tests/test-fread.c
+  tests/test-frexp.c
+  tests/test-frexp.h
   tests/test-frexpl.c
   tests/test-fseterr.c
+  tests/test-fwrite.c
   tests/test-iconv-h.c
   tests/test-iconv.c
+  tests/test-init.sh
+  tests/test-intprops.c
+  tests/test-inttypes.c
   tests/test-isnand-nolibm.c
   tests/test-isnand.h
   tests/test-isnanf-nolibm.c
   tests/test-isnanf.h
   tests/test-isnanl-nolibm.c
   tests/test-isnanl.h
+  tests/test-iswblank.c
   tests/test-locale.c
   tests/test-localename.c
   tests/test-lock.c
   tests/test-malloca.c
   tests/test-math.c
+  tests/test-mbrtowc-w32-1.sh
+  tests/test-mbrtowc-w32-2.sh
+  tests/test-mbrtowc-w32-3.sh
+  tests/test-mbrtowc-w32-4.sh
+  tests/test-mbrtowc-w32-5.sh
+  tests/test-mbrtowc-w32.c
   tests/test-mbrtowc.c
   tests/test-mbrtowc1.sh
   tests/test-mbrtowc2.sh
@@ -2960,20 +3359,40 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-printf-frexp.c
   tests/test-printf-frexpl.c
   tests/test-setenv.c
+  tests/test-setlocale1.c
+  tests/test-setlocale1.sh
+  tests/test-setlocale2.c
+  tests/test-setlocale2.sh
   tests/test-signbit.c
   tests/test-stdbool.c
   tests/test-stddef.c
   tests/test-stdint.c
+  tests/test-stdio.c
   tests/test-stdlib.c
   tests/test-strerror.c
   tests/test-striconveh.c
   tests/test-striconveha.c
   tests/test-string.c
   tests/test-strncat.c
+  tests/test-strstr.c
+  tests/test-sys_types.c
+  tests/test-sys_wait.h
+  tests/test-thread_create.c
+  tests/test-thread_self.c
   tests/test-unistd.c
   tests/test-unsetenv.c
+  tests/test-verify.c
+  tests/test-verify.sh
   tests/test-wchar.c
-  tests/test-wctype.c
+  tests/test-wcrtomb-w32-1.sh
+  tests/test-wcrtomb-w32-2.sh
+  tests/test-wcrtomb-w32-3.sh
+  tests/test-wcrtomb-w32-4.sh
+  tests/test-wcrtomb-w32-5.sh
+  tests/test-wcrtomb-w32.c
+  tests/test-wcrtomb.c
+  tests/test-wcrtomb.sh
+  tests/test-wctype-h.c
   tests/test-wcwidth.c
   tests/test-xalloc-die.c
   tests/test-xalloc-die.sh
@@ -3046,6 +3465,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/uniconv/test-u8-strconv-from-enc.c
   tests/uniconv/test-u8-strconv-to-enc.c
   tests/unictype/test-bidi_byname.c
+  tests/unictype/test-bidi_longname.c
   tests/unictype/test-bidi_name.c
   tests/unictype/test-bidi_of.c
   tests/unictype/test-bidi_test.c
@@ -3059,6 +3479,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unictype/test-categ_Co.c
   tests/unictype/test-categ_Cs.c
   tests/unictype/test-categ_L.c
+  tests/unictype/test-categ_LC.c
   tests/unictype/test-categ_Ll.c
   tests/unictype/test-categ_Lm.c
   tests/unictype/test-categ_Lo.c
@@ -3092,12 +3513,16 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unictype/test-categ_and.c
   tests/unictype/test-categ_and_not.c
   tests/unictype/test-categ_byname.c
+  tests/unictype/test-categ_longname.c
   tests/unictype/test-categ_name.c
   tests/unictype/test-categ_none.c
   tests/unictype/test-categ_of.c
   tests/unictype/test-categ_or.c
   tests/unictype/test-categ_test_withtable.c
-  tests/unictype/test-combining.c
+  tests/unictype/test-combiningclass.c
+  tests/unictype/test-combiningclass_byname.c
+  tests/unictype/test-combiningclass_longname.c
+  tests/unictype/test-combiningclass_name.c
   tests/unictype/test-ctype_alnum.c
   tests/unictype/test-ctype_alpha.c
   tests/unictype/test-ctype_blank.c
@@ -3114,6 +3539,15 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unictype/test-decdigit.h
   tests/unictype/test-digit.c
   tests/unictype/test-digit.h
+  tests/unictype/test-joininggroup_byname.c
+  tests/unictype/test-joininggroup_name.c
+  tests/unictype/test-joininggroup_of.c
+  tests/unictype/test-joininggroup_of.h
+  tests/unictype/test-joiningtype_byname.c
+  tests/unictype/test-joiningtype_longname.c
+  tests/unictype/test-joiningtype_name.c
+  tests/unictype/test-joiningtype_of.c
+  tests/unictype/test-joiningtype_of.h
   tests/unictype/test-mirror.c
   tests/unictype/test-numeric.c
   tests/unictype/test-numeric.h
@@ -3137,6 +3571,13 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unictype/test-pr_bidi_segment_separator.c
   tests/unictype/test-pr_bidi_whitespace.c
   tests/unictype/test-pr_byname.c
+  tests/unictype/test-pr_case_ignorable.c
+  tests/unictype/test-pr_cased.c
+  tests/unictype/test-pr_changes_when_casefolded.c
+  tests/unictype/test-pr_changes_when_casemapped.c
+  tests/unictype/test-pr_changes_when_lowercased.c
+  tests/unictype/test-pr_changes_when_titlecased.c
+  tests/unictype/test-pr_changes_when_uppercased.c
   tests/unictype/test-pr_combining.c
   tests/unictype/test-pr_composite.c
   tests/unictype/test-pr_currency_symbol.c
@@ -3205,6 +3646,22 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unictype/test-sy_c_whitespace.c
   tests/unictype/test-sy_java_ident.c
   tests/unictype/test-sy_java_whitespace.c
+  tests/unigbrk/GraphemeBreakTest.txt
+  tests/unigbrk/test-u16-grapheme-breaks.c
+  tests/unigbrk/test-u16-grapheme-next.c
+  tests/unigbrk/test-u16-grapheme-prev.c
+  tests/unigbrk/test-u32-grapheme-breaks.c
+  tests/unigbrk/test-u32-grapheme-next.c
+  tests/unigbrk/test-u32-grapheme-prev.c
+  tests/unigbrk/test-u8-grapheme-breaks.c
+  tests/unigbrk/test-u8-grapheme-next.c
+  tests/unigbrk/test-u8-grapheme-prev.c
+  tests/unigbrk/test-uc-gbrk-prop.c
+  tests/unigbrk/test-uc-gbrk-prop.h
+  tests/unigbrk/test-uc-is-grapheme-break.c
+  tests/unigbrk/test-uc-is-grapheme-break.sh
+  tests/unigbrk/test-ulc-grapheme-breaks.c
+  tests/unigbrk/test-ulc-grapheme-breaks.sh
   tests/unilbrk/test-u16-possible-linebreaks.c
   tests/unilbrk/test-u16-width-linebreaks.c
   tests/unilbrk/test-u32-possible-linebreaks.c
@@ -3312,6 +3769,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unistr/test-stpcpy.h
   tests/unistr/test-stpncpy.h
   tests/unistr/test-strcat.h
+  tests/unistr/test-strchr.h
   tests/unistr/test-strcmp.h
   tests/unistr/test-strcpy.h
   tests/unistr/test-strdup.h
@@ -3319,6 +3777,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unistr/test-strncmp.h
   tests/unistr/test-strncpy.h
   tests/unistr/test-strnlen.h
+  tests/unistr/test-u-strstr.h
   tests/unistr/test-u16-check.c
   tests/unistr/test-u16-chr.c
   tests/unistr/test-u16-cmp.c
@@ -3338,6 +3797,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unistr/test-u16-stpcpy.c
   tests/unistr/test-u16-stpncpy.c
   tests/unistr/test-u16-strcat.c
+  tests/unistr/test-u16-strchr.c
   tests/unistr/test-u16-strcmp.c
   tests/unistr/test-u16-strcmp.h
   tests/unistr/test-u16-strcoll.c
@@ -3350,6 +3810,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unistr/test-u16-strncmp.c
   tests/unistr/test-u16-strncpy.c
   tests/unistr/test-u16-strnlen.c
+  tests/unistr/test-u16-strstr.c
   tests/unistr/test-u16-to-u32.c
   tests/unistr/test-u16-to-u8.c
   tests/unistr/test-u16-uctomb.c
@@ -3372,6 +3833,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unistr/test-u32-stpcpy.c
   tests/unistr/test-u32-stpncpy.c
   tests/unistr/test-u32-strcat.c
+  tests/unistr/test-u32-strchr.c
   tests/unistr/test-u32-strcmp.c
   tests/unistr/test-u32-strcmp.h
   tests/unistr/test-u32-strcoll.c
@@ -3384,6 +3846,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unistr/test-u32-strncmp.c
   tests/unistr/test-u32-strncpy.c
   tests/unistr/test-u32-strnlen.c
+  tests/unistr/test-u32-strstr.c
   tests/unistr/test-u32-to-u16.c
   tests/unistr/test-u32-to-u8.c
   tests/unistr/test-u32-uctomb.c
@@ -3406,6 +3869,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unistr/test-u8-stpcpy.c
   tests/unistr/test-u8-stpncpy.c
   tests/unistr/test-u8-strcat.c
+  tests/unistr/test-u8-strchr.c
   tests/unistr/test-u8-strcmp.c
   tests/unistr/test-u8-strcmp.h
   tests/unistr/test-u8-strcoll.c
@@ -3418,6 +3882,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/unistr/test-u8-strncmp.c
   tests/unistr/test-u8-strncpy.c
   tests/unistr/test-u8-strnlen.c
+  tests/unistr/test-u8-strstr.c
   tests/unistr/test-u8-to-u16.c
   tests/unistr/test-u8-to-u32.c
   tests/unistr/test-u8-uctomb.c
@@ -3436,25 +3901,42 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/uniwidth/test-uc_width2.c
   tests/uniwidth/test-uc_width2.sh
   tests/zerosize-ptr.h
+  tests=lib/btowc.c
   tests=lib/error.c
   tests=lib/error.h
   tests=lib/exitfail.c
   tests=lib/exitfail.h
+  tests=lib/fdopen.c
   tests=lib/getpagesize.c
   tests=lib/gettext.h
   tests=lib/glthread/thread.c
   tests=lib/glthread/thread.h
   tests=lib/glthread/yield.h
   tests=lib/intprops.h
+  tests=lib/inttypes.in.h
   tests=lib/locale.in.h
+  tests=lib/mbtowc-impl.h
+  tests=lib/mbtowc.c
+  tests=lib/msvc-inval.c
+  tests=lib/msvc-inval.h
+  tests=lib/msvc-nothrow.c
+  tests=lib/msvc-nothrow.h
   tests=lib/progname.c
   tests=lib/progname.h
   tests=lib/putenv.c
   tests=lib/setenv.c
+  tests=lib/setlocale.c
+  tests=lib/stdio.in.h
+  tests=lib/strerror-override.c
+  tests=lib/strerror-override.h
   tests=lib/strerror.c
   tests=lib/unsetenv.c
+  tests=lib/wcrtomb.c
   tests=lib/wctob.c
+  tests=lib/wctomb-impl.h
+  tests=lib/wctomb.c
   tests=lib/xalloc-die.c
+  tests=lib/xalloc-oversized.h
   tests=lib/xalloc.h
   tests=lib/xmalloc.c
 ])
index f46ff14..4b29c5f 100644 (file)
@@ -1,5 +1,5 @@
-# iconv.m4 serial 9 (gettext-0.18)
-dnl Copyright (C) 2000-2002, 2007-2010 Free Software Foundation, Inc.
+# iconv.m4 serial 18 (gettext-0.18.2)
+dnl Copyright (C) 2000-2002, 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -30,27 +30,35 @@ AC_DEFUN([AM_ICONV_LINK],
   dnl Add $INCICONV to CPPFLAGS before performing the following checks,
   dnl because if the user has installed libiconv and not disabled its use
   dnl via --without-libiconv-prefix, he wants to use it. The first
-  dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+  dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed.
   am_save_CPPFLAGS="$CPPFLAGS"
   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
 
   AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
     am_cv_func_iconv="no, consider installing GNU libiconv"
     am_cv_lib_iconv=no
-    AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
-      [iconv_t cd = iconv_open("","");
-       iconv(cd,NULL,NULL,NULL,NULL);
-       iconv_close(cd);],
+    AC_LINK_IFELSE(
+      [AC_LANG_PROGRAM(
+         [[
+#include <stdlib.h>
+#include <iconv.h>
+         ]],
+         [[iconv_t cd = iconv_open("","");
+           iconv(cd,NULL,NULL,NULL,NULL);
+           iconv_close(cd);]])],
       [am_cv_func_iconv=yes])
     if test "$am_cv_func_iconv" != yes; then
       am_save_LIBS="$LIBS"
       LIBS="$LIBS $LIBICONV"
-      AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
-        [iconv_t cd = iconv_open("","");
-         iconv(cd,NULL,NULL,NULL,NULL);
-         iconv_close(cd);],
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[
+#include <stdlib.h>
+#include <iconv.h>
+           ]],
+           [[iconv_t cd = iconv_open("","");
+             iconv(cd,NULL,NULL,NULL,NULL);
+             iconv_close(cd);]])],
         [am_cv_lib_iconv=yes]
         [am_cv_func_iconv=yes])
       LIBS="$am_save_LIBS"
@@ -58,16 +66,19 @@ AC_DEFUN([AM_ICONV_LINK],
   ])
   if test "$am_cv_func_iconv" = yes; then
     AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [
-      dnl This tests against bugs in AIX 5.1, HP-UX 11.11, Solaris 10.
+      dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11,
+      dnl Solaris 10.
       am_save_LIBS="$LIBS"
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
       fi
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <iconv.h>
 #include <string.h>
 int main ()
 {
+  int result = 0;
   /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
      returns.  */
   {
@@ -84,7 +95,8 @@ int main ()
                             (char **) &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
-          return 1;
+          result |= 1;
+        iconv_close (cd_utf8_to_88591);
       }
   }
   /* Test against Solaris 10 bug: Failures are not distinguishable from
@@ -103,7 +115,27 @@ int main ()
                             (char **) &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
-          return 1;
+          result |= 2;
+        iconv_close (cd_ascii_to_88591);
+      }
+  }
+  /* Test against AIX 6.1..7.1 bug: Buffer overrun.  */
+  {
+    iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+    if (cd_88591_to_utf8 != (iconv_t)(-1))
+      {
+        static const char input[] = "\304";
+        static char buf[2] = { (char)0xDE, (char)0xAD };
+        const char *inptr = input;
+        size_t inbytesleft = 1;
+        char *outptr = buf;
+        size_t outbytesleft = 1;
+        size_t res = iconv (cd_88591_to_utf8,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
+          result |= 4;
+        iconv_close (cd_88591_to_utf8);
       }
   }
 #if 0 /* This bug could be worked around by the caller.  */
@@ -122,7 +154,8 @@ int main ()
                             (char **) &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if ((int)res > 0)
-          return 1;
+          result |= 8;
+        iconv_close (cd_88591_to_utf8);
       }
   }
 #endif
@@ -136,13 +169,19 @@ int main ()
       && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
       /* Try HP-UX names.  */
       && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
-    return 1;
-  return 0;
-}], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no],
-        [case "$host_os" in
+    result |= 16;
+  return result;
+}]])],
+        [am_cv_func_iconv_works=yes],
+        [am_cv_func_iconv_works=no],
+        [
+changequote(,)dnl
+         case "$host_os" in
            aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
            *)            am_cv_func_iconv_works="guessing yes" ;;
-         esac])
+         esac
+changequote([,])dnl
+        ])
       LIBS="$am_save_LIBS"
     ])
     case "$am_cv_func_iconv_works" in
@@ -170,30 +209,60 @@ int main ()
   AC_SUBST([LTLIBICONV])
 ])
 
-AC_DEFUN([AM_ICONV],
+dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to
+dnl avoid warnings like
+dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
+dnl This is tricky because of the way 'aclocal' is implemented:
+dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
+dnl   Otherwise aclocal's initial scan pass would miss the macro definition.
+dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
+dnl   Otherwise aclocal would emit many "Use of uninitialized value $1"
+dnl   warnings.
+m4_define([gl_iconv_AC_DEFUN],
+  m4_version_prereq([2.64],
+    [[AC_DEFUN_ONCE(
+        [$1], [$2])]],
+    [m4_ifdef([gl_00GNULIB],
+       [[AC_DEFUN_ONCE(
+           [$1], [$2])]],
+       [[AC_DEFUN(
+           [$1], [$2])]])]))
+gl_iconv_AC_DEFUN([AM_ICONV],
 [
   AM_ICONV_LINK
   if test "$am_cv_func_iconv" = yes; then
     AC_MSG_CHECKING([for iconv declaration])
     AC_CACHE_VAL([am_cv_proto_iconv], [
-      AC_TRY_COMPILE([
+      AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[
 #include <stdlib.h>
 #include <iconv.h>
 extern
 #ifdef __cplusplus
 "C"
 #endif
-#if defined(__STDC__) || defined(__cplusplus)
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
 #else
 size_t iconv();
 #endif
-], [], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"])
+           ]],
+           [[]])],
+        [am_cv_proto_iconv_arg1=""],
+        [am_cv_proto_iconv_arg1="const"])
       am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
     am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
     AC_MSG_RESULT([
          $am_cv_proto_iconv])
     AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
       [Define as const if the declaration of iconv() needs const.])
+    dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
+    m4_ifdef([gl_ICONV_H_DEFAULTS],
+      [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
+       if test -n "$am_cv_proto_iconv_arg1"; then
+         ICONV_CONST="const"
+       fi
+      ])
   fi
 ])
index 7366cb9..e992fa3 100644 (file)
@@ -1,5 +1,5 @@
-# iconv_h.m4 serial 6
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# iconv_h.m4 serial 8
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -18,6 +18,7 @@ AC_DEFUN([gl_REPLACE_ICONV_H],
 [
   AC_REQUIRE([gl_ICONV_H_DEFAULTS])
   ICONV_H='iconv.h'
+  AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"])
 ])
 
 AC_DEFUN([gl_ICONV_MODULE_INDICATOR],
@@ -29,9 +30,12 @@ AC_DEFUN([gl_ICONV_MODULE_INDICATOR],
 
 AC_DEFUN([gl_ICONV_H_DEFAULTS],
 [
+  GNULIB_ICONV=0;       AC_SUBST([GNULIB_ICONV])
   dnl Assume proper GNU behavior unless another module says otherwise.
+  ICONV_CONST=;         AC_SUBST([ICONV_CONST])
   REPLACE_ICONV=0;      AC_SUBST([REPLACE_ICONV])
   REPLACE_ICONV_OPEN=0; AC_SUBST([REPLACE_ICONV_OPEN])
   REPLACE_ICONV_UTF=0;  AC_SUBST([REPLACE_ICONV_UTF])
   ICONV_H='';           AC_SUBST([ICONV_H])
+  AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"])
 ])
index 60f62ca..e0bfd72 100644 (file)
@@ -1,5 +1,5 @@
-# iconv_open.m4 serial 7
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# iconv_open.m4 serial 14
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -16,7 +16,7 @@ AC_DEFUN([gl_FUNC_ICONV_OPEN],
     dnl We know that GNU libiconv and GNU libc do.
     AC_EGREP_CPP([gnu_iconv], [
       #include <iconv.h>
-      #if defined _LIBICONV_VERSION || defined __GLIBC__
+      #if defined _LIBICONV_VERSION || (defined __GLIBC__ && !defined __UCLIBC__)
        gnu_iconv
       #endif
       ], [gl_func_iconv_gnu=yes], [gl_func_iconv_gnu=no])
@@ -36,6 +36,16 @@ AC_DEFUN([gl_FUNC_ICONV_OPEN],
         gl_REPLACE_ICONV_OPEN
       fi
     fi
+    m4_ifdef([gl_FUNC_ICONV_OPEN_UTF_SUPPORT], [
+      gl_FUNC_ICONV_OPEN_UTF_SUPPORT
+      if test $gl_cv_func_iconv_supports_utf = no; then
+        REPLACE_ICONV_UTF=1
+        AC_DEFINE([REPLACE_ICONV_UTF], [1],
+          [Define if the iconv() functions are enhanced to handle the UTF-{16,32}{BE,LE} encodings.])
+        REPLACE_ICONV=1
+        gl_REPLACE_ICONV_OPEN
+      fi
+    ])
   fi
 ])
 
@@ -43,198 +53,4 @@ AC_DEFUN([gl_REPLACE_ICONV_OPEN],
 [
   gl_REPLACE_ICONV_H
   REPLACE_ICONV_OPEN=1
-  AC_LIBOBJ([iconv_open])
-])
-
-AC_DEFUN([gl_FUNC_ICONV_OPEN_UTF],
-[
-  AC_REQUIRE([gl_FUNC_ICONV_OPEN])
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-  AC_REQUIRE([gl_ICONV_H_DEFAULTS])
-  if test "$am_cv_func_iconv" = yes; then
-    if test -n "$am_cv_proto_iconv_arg1"; then
-      ICONV_CONST="const"
-    else
-      ICONV_CONST=
-    fi
-    AC_SUBST([ICONV_CONST])
-    AC_CACHE_CHECK([whether iconv supports conversion between UTF-8 and UTF-{16,32}{BE,LE}],
-      [gl_cv_func_iconv_supports_utf],
-      [
-        save_LIBS="$LIBS"
-        LIBS="$LIBS $LIBICONV"
-        AC_TRY_RUN([
-#include <iconv.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#define ASSERT(expr) if (!(expr)) return 1;
-int main ()
-{
-  /* Test conversion from UTF-8 to UTF-16BE with no errors.  */
-  {
-    static const char input[] =
-      "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
-    static const char expected[] =
-      "\000J\000a\000p\000a\000n\000e\000s\000e\000 \000(\145\345\147\054\212\236\000)\000 \000[\330\065\335\015\330\065\335\036\330\065\335\055\000]";
-    iconv_t cd;
-    char buf[100];
-    const char *inptr;
-    size_t inbytesleft;
-    char *outptr;
-    size_t outbytesleft;
-    size_t res;
-    cd = iconv_open ("UTF-16BE", "UTF-8");
-    ASSERT (cd != (iconv_t)(-1));
-    inptr = input;
-    inbytesleft = sizeof (input) - 1;
-    outptr = buf;
-    outbytesleft = sizeof (buf);
-    res = iconv (cd,
-                 (ICONV_CONST char **) &inptr, &inbytesleft,
-                 &outptr, &outbytesleft);
-    ASSERT (res == 0 && inbytesleft == 0);
-    ASSERT (outptr == buf + (sizeof (expected) - 1));
-    ASSERT (memcmp (buf, expected, sizeof (expected) - 1) == 0);
-    ASSERT (iconv_close (cd) == 0);
-  }
-  /* Test conversion from UTF-8 to UTF-16LE with no errors.  */
-  {
-    static const char input[] =
-      "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
-    static const char expected[] =
-      "J\000a\000p\000a\000n\000e\000s\000e\000 \000(\000\345\145\054\147\236\212)\000 \000[\000\065\330\015\335\065\330\036\335\065\330\055\335]\000";
-    iconv_t cd;
-    char buf[100];
-    const char *inptr;
-    size_t inbytesleft;
-    char *outptr;
-    size_t outbytesleft;
-    size_t res;
-    cd = iconv_open ("UTF-16LE", "UTF-8");
-    ASSERT (cd != (iconv_t)(-1));
-    inptr = input;
-    inbytesleft = sizeof (input) - 1;
-    outptr = buf;
-    outbytesleft = sizeof (buf);
-    res = iconv (cd,
-                 (ICONV_CONST char **) &inptr, &inbytesleft,
-                 &outptr, &outbytesleft);
-    ASSERT (res == 0 && inbytesleft == 0);
-    ASSERT (outptr == buf + (sizeof (expected) - 1));
-    ASSERT (memcmp (buf, expected, sizeof (expected) - 1) == 0);
-    ASSERT (iconv_close (cd) == 0);
-  }
-  /* Test conversion from UTF-8 to UTF-32BE with no errors.  */
-  {
-    static const char input[] =
-      "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
-    static const char expected[] =
-      "\000\000\000J\000\000\000a\000\000\000p\000\000\000a\000\000\000n\000\000\000e\000\000\000s\000\000\000e\000\000\000 \000\000\000(\000\000\145\345\000\000\147\054\000\000\212\236\000\000\000)\000\000\000 \000\000\000[\000\001\325\015\000\001\325\036\000\001\325\055\000\000\000]";
-    iconv_t cd;
-    char buf[100];
-    const char *inptr;
-    size_t inbytesleft;
-    char *outptr;
-    size_t outbytesleft;
-    size_t res;
-    cd = iconv_open ("UTF-32BE", "UTF-8");
-    ASSERT (cd != (iconv_t)(-1));
-    inptr = input;
-    inbytesleft = sizeof (input) - 1;
-    outptr = buf;
-    outbytesleft = sizeof (buf);
-    res = iconv (cd,
-                 (ICONV_CONST char **) &inptr, &inbytesleft,
-                 &outptr, &outbytesleft);
-    ASSERT (res == 0 && inbytesleft == 0);
-    ASSERT (outptr == buf + (sizeof (expected) - 1));
-    ASSERT (memcmp (buf, expected, sizeof (expected) - 1) == 0);
-    ASSERT (iconv_close (cd) == 0);
-  }
-  /* Test conversion from UTF-8 to UTF-32LE with no errors.  */
-  {
-    static const char input[] =
-      "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
-    static const char expected[] =
-      "J\000\000\000a\000\000\000p\000\000\000a\000\000\000n\000\000\000e\000\000\000s\000\000\000e\000\000\000 \000\000\000(\000\000\000\345\145\000\000\054\147\000\000\236\212\000\000)\000\000\000 \000\000\000[\000\000\000\015\325\001\000\036\325\001\000\055\325\001\000]\000\000\000";
-    iconv_t cd;
-    char buf[100];
-    const char *inptr;
-    size_t inbytesleft;
-    char *outptr;
-    size_t outbytesleft;
-    size_t res;
-    cd = iconv_open ("UTF-32LE", "UTF-8");
-    ASSERT (cd != (iconv_t)(-1));
-    inptr = input;
-    inbytesleft = sizeof (input) - 1;
-    outptr = buf;
-    outbytesleft = sizeof (buf);
-    res = iconv (cd,
-                 (ICONV_CONST char **) &inptr, &inbytesleft,
-                 &outptr, &outbytesleft);
-    ASSERT (res == 0 && inbytesleft == 0);
-    ASSERT (outptr == buf + (sizeof (expected) - 1));
-    ASSERT (memcmp (buf, expected, sizeof (expected) - 1) == 0);
-    ASSERT (iconv_close (cd) == 0);
-  }
-  /* Test conversion from UTF-16BE to UTF-8 with no errors.
-     This test fails on NetBSD 3.0.  */
-  {
-    static const char input[] =
-      "\000J\000a\000p\000a\000n\000e\000s\000e\000 \000(\145\345\147\054\212\236\000)\000 \000[\330\065\335\015\330\065\335\036\330\065\335\055\000]";
-    static const char expected[] =
-      "Japanese (\346\227\245\346\234\254\350\252\236) [\360\235\224\215\360\235\224\236\360\235\224\255]";
-    iconv_t cd;
-    char buf[100];
-    const char *inptr;
-    size_t inbytesleft;
-    char *outptr;
-    size_t outbytesleft;
-    size_t res;
-    cd = iconv_open ("UTF-8", "UTF-16BE");
-    ASSERT (cd != (iconv_t)(-1));
-    inptr = input;
-    inbytesleft = sizeof (input) - 1;
-    outptr = buf;
-    outbytesleft = sizeof (buf);
-    res = iconv (cd,
-                 (ICONV_CONST char **) &inptr, &inbytesleft,
-                 &outptr, &outbytesleft);
-    ASSERT (res == 0 && inbytesleft == 0);
-    ASSERT (outptr == buf + (sizeof (expected) - 1));
-    ASSERT (memcmp (buf, expected, sizeof (expected) - 1) == 0);
-    ASSERT (iconv_close (cd) == 0);
-  }
-  return 0;
-}], [gl_cv_func_iconv_supports_utf=yes], [gl_cv_func_iconv_supports_utf=no],
-          [
-           dnl We know that GNU libiconv, GNU libc, and Solaris >= 9 do.
-           dnl OSF/1 5.1 has these encodings, but inserts a BOM in the "to"
-           dnl direction.
-           gl_cv_func_iconv_supports_utf=no
-           if test $gl_func_iconv_gnu = yes; then
-             gl_cv_func_iconv_supports_utf=yes
-           else
-changequote(,)dnl
-             case "$host_os" in
-               solaris2.9 | solaris2.1[0-9]) gl_cv_func_iconv_supports_utf=yes ;;
-             esac
-changequote([,])dnl
-           fi
-          ])
-        LIBS="$save_LIBS"
-      ])
-    if test $gl_cv_func_iconv_supports_utf = no; then
-      REPLACE_ICONV_UTF=1
-      AC_DEFINE([REPLACE_ICONV_UTF], [1],
-        [Define if the iconv() functions are enhanced to handle the UTF-{16,32}{BE,LE} encodings.])
-      REPLACE_ICONV=1
-      gl_REPLACE_ICONV_OPEN
-      AC_LIBOBJ([iconv])
-      AC_LIBOBJ([iconv_close])
-    fi
-  fi
 ])
index c7e0672..69ad3db 100644 (file)
@@ -1,5 +1,5 @@
-# include_next.m4 serial 14
-dnl Copyright (C) 2006-2010 Free Software Foundation, Inc.
+# include_next.m4 serial 23
+dnl Copyright (C) 2006-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -24,6 +24,13 @@ dnl does not warn about some things, and on some systems (Solaris and Interix)
 dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side
 dnl effect; we are therefore careful to use 'defined __STDC__' or '1' instead
 dnl of plain '__STDC__'.
+dnl
+dnl PRAGMA_COLUMNS can be used in files that override system header files, so
+dnl as to avoid compilation errors on HP NonStop systems when the gnulib file
+dnl is included by a system header file that does a "#pragma COLUMNS 80" (which
+dnl has the effect of truncating the lines of that file and all files that it
+dnl includes to 80 columns) and the gnulib file has lines longer than 80
+dnl columns.
 
 AC_DEFUN([gl_INCLUDE_NEXT],
 [
@@ -68,10 +75,11 @@ EOF
 EOF
      gl_save_CPPFLAGS="$CPPFLAGS"
      CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
-     AC_COMPILE_IFELSE([#include <conftest.h>],
+dnl We intentionally avoid using AC_LANG_SOURCE here.
+     AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]],
        [gl_cv_have_include_next=yes],
        [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
-        AC_COMPILE_IFELSE([#include <conftest.h>],
+        AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]],
           [gl_cv_have_include_next=buggy],
           [gl_cv_have_include_next=no])
        ])
@@ -97,6 +105,24 @@ EOF
   AC_SUBST([INCLUDE_NEXT])
   AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE])
   AC_SUBST([PRAGMA_SYSTEM_HEADER])
+  AC_CACHE_CHECK([whether system header files limit the line length],
+    [gl_cv_pragma_columns],
+    [dnl HP NonStop systems, which define __TANDEM, have this misfeature.
+     AC_EGREP_CPP([choke me],
+       [
+#ifdef __TANDEM
+choke me
+#endif
+       ],
+       [gl_cv_pragma_columns=yes],
+       [gl_cv_pragma_columns=no])
+    ])
+  if test $gl_cv_pragma_columns = yes; then
+    PRAGMA_COLUMNS="#pragma COLUMNS 10000"
+  else
+    PRAGMA_COLUMNS=
+  fi
+  AC_SUBST([PRAGMA_COLUMNS])
 ])
 
 # gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...)
@@ -117,71 +143,81 @@ EOF
 # even if the compiler does not support include_next.
 # The three "///" are to pacify Sun C 5.8, which otherwise would say
 # "warning: #include of /usr/include/... may be non-portable".
-# Use `""', not `<>', so that the /// cannot be confused with a C99 comment.
+# Use '""', not '<>', so that the /// cannot be confused with a C99 comment.
 # Note: This macro assumes that the header file is not empty after
 # preprocessing, i.e. it does not only define preprocessor macros but also
 # provides some type/enum definitions or function/variable declarations.
+#
+# This macro also checks whether each header exists, by invoking
+# AC_CHECK_HEADERS_ONCE or AC_CHECK_HEADERS on each argument.
 AC_DEFUN([gl_CHECK_NEXT_HEADERS],
 [
+  gl_NEXT_HEADERS_INTERNAL([$1], [check])
+])
+
+# gl_NEXT_HEADERS(HEADER1 HEADER2 ...)
+# ------------------------------------
+# Like gl_CHECK_NEXT_HEADERS, except do not check whether the headers exist.
+# This is suitable for headers like <stddef.h> that are standardized by C89
+# and therefore can be assumed to exist.
+AC_DEFUN([gl_NEXT_HEADERS],
+[
+  gl_NEXT_HEADERS_INTERNAL([$1], [assume])
+])
+
+# The guts of gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS.
+AC_DEFUN([gl_NEXT_HEADERS_INTERNAL],
+[
   AC_REQUIRE([gl_INCLUDE_NEXT])
   AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_CHECK_HEADERS_ONCE([$1])
 
+  m4_if([$2], [check],
+    [AC_CHECK_HEADERS_ONCE([$1])
+    ])
+
+dnl FIXME: gl_next_header and gl_header_exists must be used unquoted
+dnl until we can assume autoconf 2.64 or newer.
   m4_foreach_w([gl_HEADER_NAME], [$1],
     [AS_VAR_PUSHDEF([gl_next_header],
                     [gl_cv_next_]m4_defn([gl_HEADER_NAME]))
      if test $gl_cv_have_include_next = yes; then
-       AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+       AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>'])
      else
        AC_CACHE_CHECK(
          [absolute name of <]m4_defn([gl_HEADER_NAME])[>],
          m4_defn([gl_next_header]),
-         [AS_VAR_PUSHDEF([gl_header_exists],
-                         [ac_cv_header_]m4_defn([gl_HEADER_NAME]))
-          if test AS_VAR_GET(gl_header_exists) = yes; then
-            AC_LANG_CONFTEST(
-              [AC_LANG_SOURCE(
-                 [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]]
-               )])
-            dnl AIX "xlc -E" and "cc -E" omit #line directives for header files
-            dnl that contain only a #include of other header files and no
-            dnl non-comment tokens of their own. This leads to a failure to
-            dnl detect the absolute name of <dirent.h>, <signal.h>, <poll.h>
-            dnl and others. The workaround is to force preservation of comments
-            dnl through option -C. This ensures all necessary #line directives
-            dnl are present. GCC supports option -C as well.
-            case "$host_os" in
-              aix*) gl_absname_cpp="$ac_cpp -C" ;;
-              *)    gl_absname_cpp="$ac_cpp" ;;
-            esac
-            dnl eval is necessary to expand gl_absname_cpp.
-            dnl Ultrix and Pyramid sh refuse to redirect output of eval,
-            dnl so use subshell.
-            AS_VAR_SET([gl_next_header],
-              ['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
-               sed -n '\#/]m4_defn([gl_HEADER_NAME])[#{
-                 s#.*"\(.*/]m4_defn([gl_HEADER_NAME])[\)".*#\1#
-                 s#^/[^/]#//&#
-                 p
-                 q
-               }'`'"'])
-          else
-            AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
-          fi
-          AS_VAR_POPDEF([gl_header_exists])])
+         [m4_if([$2], [check],
+            [AS_VAR_PUSHDEF([gl_header_exists],
+                            [ac_cv_header_]m4_defn([gl_HEADER_NAME]))
+             if test AS_VAR_GET(gl_header_exists) = yes; then
+             AS_VAR_POPDEF([gl_header_exists])
+            ])
+           gl_ABSOLUTE_HEADER_ONE(gl_HEADER_NAME)
+           AS_VAR_COPY([gl_header], [gl_cv_absolute_]AS_TR_SH(gl_HEADER_NAME))
+           AS_VAR_SET(gl_next_header, ['"'$gl_header'"'])
+          m4_if([$2], [check],
+            [else
+               AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>'])
+             fi
+            ])
+         ])
      fi
      AC_SUBST(
        AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])),
-       [AS_VAR_GET([gl_next_header])])
+       [AS_VAR_GET(gl_next_header)])
      if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
        gl_next_as_first_directive='<'gl_HEADER_NAME'>'
      else
        # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
-       gl_next_as_first_directive=AS_VAR_GET([gl_next_header])
+       gl_next_as_first_directive=AS_VAR_GET(gl_next_header)
      fi
      AC_SUBST(
        AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])),
        [$gl_next_as_first_directive])
      AS_VAR_POPDEF([gl_next_header])])
 ])
+
+# Autoconf 2.68 added warnings for our use of AC_COMPILE_IFELSE;
+# this fallback is safe for all earlier autoconf versions.
+m4_define_default([AC_LANG_DEFINES_PROVIDED])
index 4ef768d..c49957f 100644 (file)
@@ -1,5 +1,5 @@
 # inline.m4 serial 4
-dnl Copyright (C) 2006, 2009, 2010 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index dd91025..8a045f6 100644 (file)
@@ -1,5 +1,5 @@
-# intlmacosx.m4 serial 3 (gettext-0.18)
-dnl Copyright (C) 2004-2010 Free Software Foundation, Inc.
+# intlmacosx.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2004-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -13,35 +13,40 @@ dnl by the GNU Library General Public License, and the rest of the GNU
 dnl gettext package package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
-dnl Checks for special options needed on MacOS X.
+dnl Checks for special options needed on Mac OS X.
 dnl Defines INTL_MACOSX_LIBS.
 AC_DEFUN([gt_INTL_MACOSX],
 [
-  dnl Check for API introduced in MacOS X 10.2.
+  dnl Check for API introduced in Mac OS X 10.2.
   AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
     [gt_cv_func_CFPreferencesCopyAppValue],
     [gt_save_LIBS="$LIBS"
      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
-     AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>],
-       [CFPreferencesCopyAppValue(NULL, NULL)],
+     AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <CoreFoundation/CFPreferences.h>]],
+          [[CFPreferencesCopyAppValue(NULL, NULL)]])],
        [gt_cv_func_CFPreferencesCopyAppValue=yes],
        [gt_cv_func_CFPreferencesCopyAppValue=no])
      LIBS="$gt_save_LIBS"])
   if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
     AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
-      [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+      [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
   fi
-  dnl Check for API introduced in MacOS X 10.3.
+  dnl Check for API introduced in Mac OS X 10.3.
   AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
     [gt_save_LIBS="$LIBS"
      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
-     AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();],
+     AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <CoreFoundation/CFLocale.h>]],
+          [[CFLocaleCopyCurrent();]])],
        [gt_cv_func_CFLocaleCopyCurrent=yes],
        [gt_cv_func_CFLocaleCopyCurrent=no])
      LIBS="$gt_save_LIBS"])
   if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
     AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
-      [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
+      [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
   fi
   INTL_MACOSX_LIBS=
   if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
index 975caac..af5561e 100644 (file)
@@ -1,5 +1,5 @@
-# intmax_t.m4 serial 7
-dnl Copyright (C) 1997-2004, 2006-2007, 2009-2010 Free Software Foundation,
+# intmax_t.m4 serial 8
+dnl Copyright (C) 1997-2004, 2006-2007, 2009-2014 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -7,7 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Paul Eggert.
 
-AC_PREREQ([2.13])
+AC_PREREQ([2.53])
 
 # Define intmax_t to 'long' or 'long long'
 # if it is not already defined in <stdint.h> or <inttypes.h>.
@@ -38,7 +38,9 @@ AC_DEFUN([gt_AC_TYPE_INTMAX_T],
   AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
   AC_REQUIRE([gl_AC_HEADER_STDINT_H])
   AC_CACHE_CHECK([for intmax_t], [gt_cv_c_intmax_t],
-    [AC_TRY_COMPILE([
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[
 #include <stddef.h>
 #include <stdlib.h>
 #if HAVE_STDINT_H_WITH_UINTMAX
@@ -47,7 +49,10 @@ AC_DEFUN([gt_AC_TYPE_INTMAX_T],
 #if HAVE_INTTYPES_H_WITH_UINTMAX
 #include <inttypes.h>
 #endif
-], [intmax_t x = -1; return !x;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)])
+          ]],
+          [[intmax_t x = -1; return !x;]])],
+       [gt_cv_c_intmax_t=yes],
+       [gt_cv_c_intmax_t=no])])
   if test $gt_cv_c_intmax_t = yes; then
     AC_DEFINE([HAVE_INTMAX_T], [1],
       [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
diff --git a/gnulib-m4/inttypes-pri.m4 b/gnulib-m4/inttypes-pri.m4
new file mode 100644 (file)
index 0000000..00251e1
--- /dev/null
@@ -0,0 +1,42 @@
+# inttypes-pri.m4 serial 7 (gettext-0.18.2)
+dnl Copyright (C) 1997-2002, 2006, 2008-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_PREREQ([2.53])
+
+# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
+# macros to non-string values.  This is the case on AIX 4.3.3.
+
+AC_DEFUN([gt_INTTYPES_PRI],
+[
+  AC_CHECK_HEADERS([inttypes.h])
+  if test $ac_cv_header_inttypes_h = yes; then
+    AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
+      [gt_cv_inttypes_pri_broken],
+      [
+        AC_COMPILE_IFELSE(
+          [AC_LANG_PROGRAM(
+             [[
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+             ]],
+             [[]])],
+          [gt_cv_inttypes_pri_broken=no],
+          [gt_cv_inttypes_pri_broken=yes])
+      ])
+  fi
+  if test "$gt_cv_inttypes_pri_broken" = yes; then
+    AC_DEFINE_UNQUOTED([PRI_MACROS_BROKEN], [1],
+      [Define if <inttypes.h> exists and defines unusable PRI* macros.])
+    PRI_MACROS_BROKEN=1
+  else
+    PRI_MACROS_BROKEN=0
+  fi
+  AC_SUBST([PRI_MACROS_BROKEN])
+])
diff --git a/gnulib-m4/inttypes.m4 b/gnulib-m4/inttypes.m4
new file mode 100644 (file)
index 0000000..2f9317d
--- /dev/null
@@ -0,0 +1,158 @@
+# inttypes.m4 serial 26
+dnl Copyright (C) 2006-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Derek Price, Bruno Haible.
+dnl Test whether <inttypes.h> is supported or must be substituted.
+
+AC_DEFUN([gl_INTTYPES_H],
+[
+  AC_REQUIRE([gl_INTTYPES_INCOMPLETE])
+  gl_INTTYPES_PRI_SCN
+])
+
+AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE],
+[
+  AC_REQUIRE([gl_STDINT_H])
+  AC_CHECK_HEADERS_ONCE([inttypes.h])
+
+  dnl Override <inttypes.h> always, so that the portability warnings work.
+  AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
+  gl_CHECK_NEXT_HEADERS([inttypes.h])
+
+  AC_REQUIRE([gl_MULTIARCH])
+
+  dnl Check for declarations of anything we want to poison if the
+  dnl corresponding gnulib module is not in use.
+  gl_WARN_ON_USE_PREPARE([[#include <inttypes.h>
+    ]], [imaxabs imaxdiv strtoimax strtoumax])
+])
+
+# Ensure that the PRI* and SCN* macros are defined appropriately.
+AC_DEFUN([gl_INTTYPES_PRI_SCN],
+[
+  AC_REQUIRE([gt_INTTYPES_PRI])
+
+  PRIPTR_PREFIX=
+  if test -n "$STDINT_H"; then
+    dnl Using the gnulib <stdint.h>. It always defines intptr_t to 'long'.
+    PRIPTR_PREFIX='"l"'
+  else
+    dnl Using the system's <stdint.h>.
+    for glpfx in '' l ll I64; do
+      case $glpfx in
+        '')  gltype1='int';;
+        l)   gltype1='long int';;
+        ll)  gltype1='long long int';;
+        I64) gltype1='__int64';;
+      esac
+      AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM([[#include <stdint.h>
+           extern intptr_t foo;
+           extern $gltype1 foo;]])],
+        [PRIPTR_PREFIX='"'$glpfx'"'])
+      test -n "$PRIPTR_PREFIX" && break
+    done
+  fi
+  AC_SUBST([PRIPTR_PREFIX])
+
+  gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
+    [INT32_MAX_LT_INTMAX_MAX],
+    [defined INT32_MAX && defined INTMAX_MAX],
+    [INT32_MAX < INTMAX_MAX],
+    [sizeof (int) < sizeof (long long int)])
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
+    gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
+      [INT64_MAX_EQ_LONG_MAX],
+      [defined INT64_MAX],
+      [INT64_MAX == LONG_MAX],
+      [sizeof (long long int) == sizeof (long int)])
+  else
+    INT64_MAX_EQ_LONG_MAX=-1
+  fi
+  gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
+    [UINT32_MAX_LT_UINTMAX_MAX],
+    [defined UINT32_MAX && defined UINTMAX_MAX],
+    [UINT32_MAX < UINTMAX_MAX],
+    [sizeof (unsigned int) < sizeof (unsigned long long int)])
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
+    gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
+      [UINT64_MAX_EQ_ULONG_MAX],
+      [defined UINT64_MAX],
+      [UINT64_MAX == ULONG_MAX],
+      [sizeof (unsigned long long int) == sizeof (unsigned long int)])
+  else
+    UINT64_MAX_EQ_ULONG_MAX=-1
+  fi
+])
+
+# Define the symbol $1 to be 1 if the condition is true, 0 otherwise.
+# If $2 is true, the condition is $3; otherwise if long long int is supported
+# approximate the condition with $4; otherwise, assume the condition is false.
+# The condition should work on all C99 platforms; the approximations should be
+# good enough to work on all practical pre-C99 platforms.
+# $2 is evaluated by the C preprocessor, $3 and $4 as compile-time constants.
+AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION],
+[
+  AC_CACHE_CHECK([whether $3],
+    [gl_cv_test_$1],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[/* Work also in C++ mode.  */
+            #define __STDC_LIMIT_MACROS 1
+
+            /* Work if build is not clean.  */
+            #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+
+            #include <limits.h>
+            #if HAVE_STDINT_H
+             #include <stdint.h>
+            #endif
+
+            #if $2
+             #define CONDITION ($3)
+            #elif HAVE_LONG_LONG_INT
+             #define CONDITION ($4)
+            #else
+             #define CONDITION 0
+            #endif
+            int test[CONDITION ? 1 : -1];]])],
+       [gl_cv_test_$1=yes],
+       [gl_cv_test_$1=no])])
+  if test $gl_cv_test_$1 = yes; then
+    $1=1;
+  else
+    $1=0;
+  fi
+  AC_SUBST([$1])
+])
+
+AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+])
+
+AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
+[
+  GNULIB_IMAXABS=0;      AC_SUBST([GNULIB_IMAXABS])
+  GNULIB_IMAXDIV=0;      AC_SUBST([GNULIB_IMAXDIV])
+  GNULIB_STRTOIMAX=0;    AC_SUBST([GNULIB_STRTOIMAX])
+  GNULIB_STRTOUMAX=0;    AC_SUBST([GNULIB_STRTOUMAX])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_DECL_IMAXABS=1;   AC_SUBST([HAVE_DECL_IMAXABS])
+  HAVE_DECL_IMAXDIV=1;   AC_SUBST([HAVE_DECL_IMAXDIV])
+  HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
+  HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
+  REPLACE_STRTOIMAX=0;   AC_SUBST([REPLACE_STRTOIMAX])
+  REPLACE_STRTOUMAX=0;   AC_SUBST([REPLACE_STRTOUMAX])
+  INT32_MAX_LT_INTMAX_MAX=1;  AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
+  INT64_MAX_EQ_LONG_MAX='defined _LP64';  AC_SUBST([INT64_MAX_EQ_LONG_MAX])
+  PRI_MACROS_BROKEN=0;   AC_SUBST([PRI_MACROS_BROKEN])
+  PRIPTR_PREFIX=__PRIPTR_PREFIX;  AC_SUBST([PRIPTR_PREFIX])
+  UINT32_MAX_LT_UINTMAX_MAX=1;  AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX])
+  UINT64_MAX_EQ_ULONG_MAX='defined _LP64';  AC_SUBST([UINT64_MAX_EQ_ULONG_MAX])
+])
index 782d77e..87be9cf 100644 (file)
@@ -1,5 +1,5 @@
-# inttypes_h.m4 serial 9
-dnl Copyright (C) 1997-2004, 2006, 2008-2010 Free Software Foundation, Inc.
+# inttypes_h.m4 serial 10
+dnl Copyright (C) 1997-2004, 2006, 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -12,12 +12,15 @@ dnl From Paul Eggert.
 AC_DEFUN([gl_AC_HEADER_INTTYPES_H],
 [
   AC_CACHE_CHECK([for inttypes.h], [gl_cv_header_inttypes_h],
-  [AC_TRY_COMPILE(
-    [#include <sys/types.h>
-#include <inttypes.h>],
-    [uintmax_t i = (uintmax_t) -1; return !i;],
-    [gl_cv_header_inttypes_h=yes],
-    [gl_cv_header_inttypes_h=no])])
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[
+#include <sys/types.h>
+#include <inttypes.h>
+          ]],
+          [[uintmax_t i = (uintmax_t) -1; return !i;]])],
+       [gl_cv_header_inttypes_h=yes],
+       [gl_cv_header_inttypes_h=no])])
   if test $gl_cv_header_inttypes_h = yes; then
     AC_DEFINE_UNQUOTED([HAVE_INTTYPES_H_WITH_UINTMAX], [1],
       [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
index cd91628..36e4ea3 100644 (file)
@@ -1,5 +1,5 @@
-# isnand.m4 serial 6
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# isnand.m4 serial 11
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -24,7 +24,6 @@ AC_DEFUN([gl_FUNC_ISNAND],
   else
     gl_func_isnand=no
     HAVE_ISNAND=0
-    gl_BUILD_ISNAND
   fi
   AC_SUBST([ISNAND_LIBM])
 ])
@@ -34,19 +33,17 @@ dnl Check how to get or define isnand() without linking with libm.
 AC_DEFUN([gl_FUNC_ISNAND_NO_LIBM],
 [
   gl_HAVE_ISNAND_NO_LIBM
+  gl_func_isnand_no_libm=$gl_cv_func_isnand_no_libm
   if test $gl_cv_func_isnand_no_libm = yes; then
     AC_DEFINE([HAVE_ISNAND_IN_LIBC], [1],
       [Define if the isnan(double) function is available in libc.])
-  else
-    gl_BUILD_ISNAND
   fi
 ])
 
-dnl Pull in replacement isnand definition. It does not need -lm.
-AC_DEFUN([gl_BUILD_ISNAND],
+dnl Prerequisites of replacement isnand definition. It does not need -lm.
+AC_DEFUN([gl_PREREQ_ISNAND],
 [
-  AC_LIBOBJ([isnand])
-  gl_DOUBLE_EXPONENT_LOCATION
+  AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION])
 ])
 
 dnl Test whether isnand() can be used with libm.
@@ -58,16 +55,18 @@ AC_DEFUN([gl_HAVE_ISNAND_IN_LIBM],
     [
       save_LIBS="$LIBS"
       LIBS="$LIBS -lm"
-      AC_TRY_LINK([#include <math.h>
-                   #if __GNUC__ >= 4
-                   # undef isnand
-                   # define isnand(x) __builtin_isnand ((double)(x))
-                   #elif defined isnan
-                   # undef isnand
-                   # define isnand(x) isnan ((double)(x))
-                   #endif
-                   double x;],
-                  [return isnand (x);],
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <math.h>
+             #if __GNUC__ >= 4
+             # undef isnand
+             # define isnand(x) __builtin_isnan ((double)(x))
+             #elif defined isnan
+             # undef isnand
+             # define isnand(x) isnan ((double)(x))
+             #endif
+             double x;]],
+           [[return isnand (x);]])],
         [gl_cv_func_isnand_in_libm=yes],
         [gl_cv_func_isnand_in_libm=no])
       LIBS="$save_LIBS"
@@ -79,16 +78,18 @@ AC_DEFUN([gl_HAVE_ISNAND_NO_LIBM],
   AC_CACHE_CHECK([whether isnan(double) can be used without linking with libm],
     [gl_cv_func_isnand_no_libm],
     [
-      AC_TRY_LINK([#include <math.h>
-                   #if __GNUC__ >= 4
-                   # undef isnand
-                   # define isnand(x) __builtin_isnan ((double)(x))
-                   #else
-                   # undef isnand
-                   # define isnand(x) isnan ((double)(x))
-                   #endif
-                   double x;],
-                  [return isnand (x);],
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <math.h>
+             #if __GNUC__ >= 4
+             # undef isnand
+             # define isnand(x) __builtin_isnan ((double)(x))
+             #else
+             # undef isnand
+             # define isnand(x) isnan ((double)(x))
+             #endif
+             double x;]],
+           [[return isnand (x);]])],
         [gl_cv_func_isnand_no_libm=yes],
         [gl_cv_func_isnand_no_libm=no])
     ])
index 1509fb4..1f2717d 100644 (file)
@@ -1,5 +1,5 @@
-# isnanf.m4 serial 10
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# isnanf.m4 serial 14
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -17,6 +17,7 @@ AC_DEFUN([gl_FUNC_ISNANF],
       ISNANF_LIBM=-lm
     fi
   fi
+  dnl The variable gl_func_isnanf set here is used by isnan.m4.
   if test $gl_cv_func_isnanf_no_libm = yes \
      || test $gl_cv_func_isnanf_in_libm = yes; then
     save_LIBS="$LIBS"
@@ -32,7 +33,6 @@ AC_DEFUN([gl_FUNC_ISNANF],
   fi
   if test $gl_func_isnanf != yes; then
     HAVE_ISNANF=0
-    gl_BUILD_ISNANF
   fi
   AC_SUBST([ISNANF_LIBM])
 ])
@@ -51,17 +51,17 @@ AC_DEFUN([gl_FUNC_ISNANF_NO_LIBM],
             *) false;;
           esac
         }; then
+    gl_func_isnanf_no_libm=yes
     AC_DEFINE([HAVE_ISNANF_IN_LIBC], [1],
       [Define if the isnan(float) function is available in libc.])
   else
-    gl_BUILD_ISNANF
+    gl_func_isnanf_no_libm=no
   fi
 ])
 
-dnl Pull in replacement isnanf definition. It does not need -lm.
-AC_DEFUN([gl_BUILD_ISNANF],
+dnl Prerequisites of replacement isnanf definition. It does not need -lm.
+AC_DEFUN([gl_PREREQ_ISNANF],
 [
-  AC_LIBOBJ([isnanf])
   gl_FLOAT_EXPONENT_LOCATION
 ])
 
@@ -71,16 +71,18 @@ AC_DEFUN([gl_HAVE_ISNANF_NO_LIBM],
   AC_CACHE_CHECK([whether isnan(float) can be used without linking with libm],
     [gl_cv_func_isnanf_no_libm],
     [
-      AC_TRY_LINK([#include <math.h>
-                   #if __GNUC__ >= 4
-                   # undef isnanf
-                   # define isnanf(x) __builtin_isnanf ((float)(x))
-                   #elif defined isnan
-                   # undef isnanf
-                   # define isnanf(x) isnan ((float)(x))
-                   #endif
-                   float x;],
-                  [return isnanf (x);],
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <math.h>
+             #if __GNUC__ >= 4
+             # undef isnanf
+             # define isnanf(x) __builtin_isnanf ((float)(x))
+             #elif defined isnan
+             # undef isnanf
+             # define isnanf(x) isnan ((float)(x))
+             #endif
+             float x;]],
+           [[return isnanf (x);]])],
         [gl_cv_func_isnanf_no_libm=yes],
         [gl_cv_func_isnanf_no_libm=no])
     ])
@@ -94,16 +96,18 @@ AC_DEFUN([gl_HAVE_ISNANF_IN_LIBM],
     [
       save_LIBS="$LIBS"
       LIBS="$LIBS -lm"
-      AC_TRY_LINK([#include <math.h>
-                   #if __GNUC__ >= 4
-                   # undef isnanf
-                   # define isnanf(x) __builtin_isnanf ((float)(x))
-                   #elif defined isnan
-                   # undef isnanf
-                   # define isnanf(x) isnan ((float)(x))
-                   #endif
-                   float x;],
-                  [return isnanf (x);],
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <math.h>
+             #if __GNUC__ >= 4
+             # undef isnanf
+             # define isnanf(x) __builtin_isnanf ((float)(x))
+             #elif defined isnan
+             # undef isnanf
+             # define isnanf(x) isnan ((float)(x))
+             #endif
+             float x;]],
+           [[return isnanf (x);]])],
         [gl_cv_func_isnanf_in_libm=yes],
         [gl_cv_func_isnanf_in_libm=no])
       LIBS="$save_LIBS"
@@ -120,7 +124,8 @@ AC_DEFUN([gl_ISNANF_WORKS],
   AC_REQUIRE([gl_FLOAT_EXPONENT_LOCATION])
   AC_CACHE_CHECK([whether isnan(float) works], [gl_cv_func_isnanf_works],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <math.h>
 #if __GNUC__ >= 4
 # undef isnanf
@@ -145,13 +150,13 @@ NaN ()
 typedef union { unsigned int word[NWORDS]; float value; } memory_float;
 int main()
 {
-  memory_float m;
+  int result = 0;
 
   if (isnanf (1.0f / 0.0f))
-    return 1;
+    result |= 1;
 
   if (!isnanf (NaN ()))
-    return 1;
+    result |= 2;
 
 #if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
   /* The isnanf function should be immune against changes in the sign bit and
@@ -159,17 +164,21 @@ int main()
      a sign bit or a mantissa bit.  */
   if (FLT_EXPBIT0_WORD == 0 && FLT_EXPBIT0_BIT > 0)
     {
+      memory_float m;
+
       m.value = NaN ();
       /* Set the bits below the exponent to 01111...111.  */
       m.word[0] &= -1U << FLT_EXPBIT0_BIT;
       m.word[0] |= 1U << (FLT_EXPBIT0_BIT - 1) - 1;
       if (!isnanf (m.value))
-        return 1;
+        result |= 4;
     }
 #endif
 
-  return 0;
-}], [gl_cv_func_isnanf_works=yes], [gl_cv_func_isnanf_works=no],
+  return result;
+}]])],
+        [gl_cv_func_isnanf_works=yes],
+        [gl_cv_func_isnanf_works=no],
         [case "$host_os" in
            irix* | solaris*) gl_cv_func_isnanf_works="guessing no";;
            *)                gl_cv_func_isnanf_works="guessing yes";;
index 25daeca..98b2b69 100644 (file)
@@ -1,5 +1,5 @@
-# isnanl.m4 serial 12
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# isnanl.m4 serial 17
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,7 @@ AC_DEFUN([gl_FUNC_ISNANL],
       ISNANL_LIBM=-lm
     fi
   fi
+  dnl The variable gl_func_isnanl set here is used by isnan.m4.
   if test $gl_cv_func_isnanl_no_libm = yes \
      || test $gl_cv_func_isnanl_in_libm = yes; then
     save_LIBS="$LIBS"
@@ -30,7 +31,6 @@ AC_DEFUN([gl_FUNC_ISNANL],
   fi
   if test $gl_func_isnanl != yes; then
     HAVE_ISNANL=0
-    gl_BUILD_ISNANL
   fi
   AC_SUBST([ISNANL_LIBM])
 ])
@@ -49,16 +49,14 @@ AC_DEFUN([gl_FUNC_ISNANL_NO_LIBM],
   if test $gl_func_isnanl_no_libm = yes; then
     AC_DEFINE([HAVE_ISNANL_IN_LIBC], [1],
       [Define if the isnan(long double) function is available in libc.])
-  else
-    gl_BUILD_ISNANL
   fi
 ])
 
-dnl Pull in replacement isnanl definition. It does not need -lm.
-AC_DEFUN([gl_BUILD_ISNANL],
+dnl Prerequisites of replacement isnanl definition. It does not need -lm.
+AC_DEFUN([gl_PREREQ_ISNANL],
 [
-  AC_LIBOBJ([isnanl])
   gl_LONG_DOUBLE_EXPONENT_LOCATION
+  AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
 ])
 
 dnl Test whether isnanl() can be used without libm.
@@ -67,16 +65,18 @@ AC_DEFUN([gl_HAVE_ISNANL_NO_LIBM],
   AC_CACHE_CHECK([whether isnan(long double) can be used without linking with libm],
     [gl_cv_func_isnanl_no_libm],
     [
-      AC_TRY_LINK([#include <math.h>
-                   #if __GNUC__ >= 4
-                   # undef isnanl
-                   # define isnanl(x) __builtin_isnanl ((long double)(x))
-                   #elif defined isnan
-                   # undef isnanl
-                   # define isnanl(x) isnan ((long double)(x))
-                   #endif
-                   long double x;],
-                  [return isnanl (x);],
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <math.h>
+             #if __GNUC__ >= 4
+             # undef isnanl
+             # define isnanl(x) __builtin_isnanl ((long double)(x))
+             #elif defined isnan
+             # undef isnanl
+             # define isnanl(x) isnan ((long double)(x))
+             #endif
+             long double x;]],
+           [[return isnanl (x);]])],
         [gl_cv_func_isnanl_no_libm=yes],
         [gl_cv_func_isnanl_no_libm=no])
     ])
@@ -90,16 +90,18 @@ AC_DEFUN([gl_HAVE_ISNANL_IN_LIBM],
     [
       save_LIBS="$LIBS"
       LIBS="$LIBS -lm"
-      AC_TRY_LINK([#include <math.h>
-                   #if __GNUC__ >= 4
-                   # undef isnanl
-                   # define isnanl(x) __builtin_isnanl ((long double)(x))
-                   #elif defined isnan
-                   # undef isnanl
-                   # define isnanl(x) isnan ((long double)(x))
-                   #endif
-                   long double x;],
-                  [return isnanl (x);],
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <math.h>
+             #if __GNUC__ >= 4
+             # undef isnanl
+             # define isnanl(x) __builtin_isnanl ((long double)(x))
+             #elif defined isnan
+             # undef isnanl
+             # define isnanl(x) isnan ((long double)(x))
+             #endif
+             long double x;]],
+           [[return isnanl (x);]])],
         [gl_cv_func_isnanl_in_libm=yes],
         [gl_cv_func_isnanl_in_libm=no])
       LIBS="$save_LIBS"
@@ -115,10 +117,12 @@ AC_DEFUN([gl_FUNC_ISNANL_WORKS],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([gl_BIGENDIAN])
+  AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CACHE_CHECK([whether isnanl works], [gl_cv_func_isnanl_works],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <float.h>
 #include <limits.h>
 #include <math.h>
@@ -146,24 +150,28 @@ static long double NaNl ()
 #endif
 int main ()
 {
-  memory_long_double m;
-  unsigned int i;
+  int result = 0;
 
   if (!isnanl (NaNl ()))
-    return 1;
+    result |= 1;
+
+  {
+    memory_long_double m;
+    unsigned int i;
 
-  /* The isnanl function should be immune against changes in the sign bit and
-     in the mantissa bits.  The xor operation twiddles a bit that can only be
-     a sign bit or a mantissa bit (since the exponent never extends to
-     bit 31).  */
-  m.value = NaNl ();
-  m.word[NWORDS / 2] ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
-  for (i = 0; i < NWORDS; i++)
-    m.word[i] |= 1;
-  if (!isnanl (m.value))
-    return 1;
+    /* The isnanl function should be immune against changes in the sign bit and
+       in the mantissa bits.  The xor operation twiddles a bit that can only be
+       a sign bit or a mantissa bit (since the exponent never extends to
+       bit 31).  */
+    m.value = NaNl ();
+    m.word[NWORDS / 2] ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1);
+    for (i = 0; i < NWORDS; i++)
+      m.word[i] |= 1;
+    if (!isnanl (m.value))
+      result |= 1;
+  }
 
-#if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
+#if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
 /* Representation of an 80-bit 'long double' as an initializer for a sequence
    of 'unsigned int' words.  */
 # ifdef WORDS_BIGENDIAN
@@ -180,14 +188,14 @@ int main ()
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 2;
   }
   {
     /* Signalling NaN.  */
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 2;
   }
   /* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities,
      Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
@@ -200,46 +208,48 @@ int main ()
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 4;
   }
   { /* Pseudo-Infinity.  */
     static memory_long_double x =
       { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 8;
   }
   { /* Pseudo-Zero.  */
     static memory_long_double x =
       { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 16;
   }
   { /* Unnormalized number.  */
     static memory_long_double x =
       { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 32;
   }
   { /* Pseudo-Denormal.  */
     static memory_long_double x =
       { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
     if (!isnanl (x.value))
-      return 1;
+      result |= 64;
   }
 #endif
 
-  return 0;
-}], [gl_cv_func_isnanl_works=yes], [gl_cv_func_isnanl_works=no],
-      [case "$host_cpu" in
-                               # Guess no on ia64, x86_64, i386.
-         ia64 | x86_64 | i*86) gl_cv_func_isnanl_works="guessing no";;
-         *)
-           case "$host_os" in
-             netbsd*) gl_cv_func_isnanl_works="guessing no";;
-             *)       gl_cv_func_isnanl_works="guessing yes";;
-           esac
-           ;;
-       esac
-      ])
+  return result;
+}]])],
+        [gl_cv_func_isnanl_works=yes],
+        [gl_cv_func_isnanl_works=no],
+        [case "$host_cpu" in
+                                 # Guess no on ia64, x86_64, i386.
+           ia64 | x86_64 | i*86) gl_cv_func_isnanl_works="guessing no";;
+           *)
+             case "$host_os" in
+               netbsd*) gl_cv_func_isnanl_works="guessing no";;
+               *)       gl_cv_func_isnanl_works="guessing yes";;
+             esac
+             ;;
+         esac
+        ])
     ])
 ])
diff --git a/gnulib-m4/iswblank.m4 b/gnulib-m4/iswblank.m4
new file mode 100644 (file)
index 0000000..a9ce0a3
--- /dev/null
@@ -0,0 +1,41 @@
+# iswblank.m4 serial 4
+dnl Copyright (C) 2011-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_ISWBLANK],
+[
+  AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
+  AC_REQUIRE([gl_WCTYPE_H])
+  dnl Persuade glibc <wctype.h> to declare iswblank().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_FUNCS_ONCE([iswblank])
+  AC_CHECK_DECLS([iswblank], , , [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+   before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+]])
+  if test $ac_cv_func_iswblank = no; then
+    HAVE_ISWBLANK=0
+    if test $ac_cv_have_decl_iswblank = yes; then
+      REPLACE_ISWBLANK=1
+    fi
+  fi
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+    dnl Redefine all of iswcntrl, ..., towupper in <wctype.h>.
+    :
+  else
+    if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+      dnl Redefine only iswblank.
+      :
+    fi
+  fi
+
+])
index 1a70543..7470ec5 100644 (file)
@@ -1,5 +1,5 @@
-# lcmessage.m4 serial 6 (gettext-0.18)
-dnl Copyright (C) 1995-2002, 2004-2005, 2008-2010 Free Software Foundation,
+# lcmessage.m4 serial 7 (gettext-0.18.2)
+dnl Copyright (C) 1995-2002, 2004-2005, 2008-2014 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -22,8 +22,12 @@ dnl   Ulrich Drepper <drepper@cygnus.com>, 1995.
 AC_DEFUN([gt_LC_MESSAGES],
 [
   AC_CACHE_CHECK([for LC_MESSAGES], [gt_cv_val_LC_MESSAGES],
-    [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
-       [gt_cv_val_LC_MESSAGES=yes], [gt_cv_val_LC_MESSAGES=no])])
+    [AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <locale.h>]],
+          [[return LC_MESSAGES]])],
+       [gt_cv_val_LC_MESSAGES=yes],
+       [gt_cv_val_LC_MESSAGES=no])])
   if test $gt_cv_val_LC_MESSAGES = yes; then
     AC_DEFINE([HAVE_LC_MESSAGES], [1],
       [Define if your <locale.h> file defines LC_MESSAGES.])
index d84b50f..6959f42 100644 (file)
@@ -1,5 +1,5 @@
-# ldexpl.m4 serial 5
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# ldexpl.m4 serial 16
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,29 +7,30 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_LDEXPL],
 [
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
+  AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
+  AC_REQUIRE([gl_FUNC_ISNANL]) dnl for ISNANL_LIBM
+
+  dnl Persuade glibc <math.h> to declare ldexpl().
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   dnl Check whether it's declared.
-  dnl MacOS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>.
-  AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [#include <math.h>])
+  dnl Mac OS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>.
+  AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [[#include <math.h>]])
+
   LDEXPL_LIBM=
   if test $HAVE_DECL_LDEXPL = 1; then
-    AC_CACHE_CHECK([whether ldexpl() can be used without linking with libm],
-      [gl_cv_func_ldexpl_no_libm],
-      [
-        AC_TRY_LINK([#include <math.h>
-                     long double x;],
-                    [return ldexpl (x, -1) > 0;],
-          [gl_cv_func_ldexpl_no_libm=yes],
-          [gl_cv_func_ldexpl_no_libm=no])
-      ])
+    gl_CHECK_LDEXPL_NO_LIBM
     if test $gl_cv_func_ldexpl_no_libm = no; then
       AC_CACHE_CHECK([whether ldexpl() can be used with libm],
         [gl_cv_func_ldexpl_in_libm],
         [
           save_LIBS="$LIBS"
           LIBS="$LIBS -lm"
-          AC_TRY_LINK([#include <math.h>
-                       long double x;],
-                      [return ldexpl (x, -1) > 0;],
+          AC_LINK_IFELSE(
+            [AC_LANG_PROGRAM(
+               [[#include <math.h>
+                 long double x;]],
+               [[return ldexpl (x, -1) > 0;]])],
             [gl_cv_func_ldexpl_in_libm=yes],
             [gl_cv_func_ldexpl_in_libm=no])
           LIBS="$save_LIBS"
@@ -46,7 +47,7 @@ AC_DEFUN([gl_FUNC_LDEXPL],
       LIBS="$save_LIBS"
       case "$gl_cv_func_ldexpl_works" in
         *yes) gl_func_ldexpl=yes ;;
-        *)    gl_func_ldexpl=no; REPLACE_LDEXPL=1; LDEXPL_LIBM= ;;
+        *)    gl_func_ldexpl=no; REPLACE_LDEXPL=1 ;;
       esac
     else
       gl_func_ldexpl=no
@@ -57,34 +58,76 @@ AC_DEFUN([gl_FUNC_LDEXPL],
     fi
   fi
   if test $HAVE_DECL_LDEXPL = 0 || test $gl_func_ldexpl = no; then
-    AC_LIBOBJ([ldexpl])
+    dnl Find libraries needed to link lib/ldexpl.c.
+    if test $HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = 1; then
+      AC_REQUIRE([gl_FUNC_LDEXP])
+      LDEXPL_LIBM="$LDEXP_LIBM"
+    else
+      LDEXPL_LIBM="$ISNANL_LIBM"
+    fi
   fi
   AC_SUBST([LDEXPL_LIBM])
 ])
 
+dnl Test whether ldexpl() can be used without linking with libm.
+dnl Set gl_cv_func_ldexpl_no_libm to 'yes' or 'no' accordingly.
+AC_DEFUN([gl_CHECK_LDEXPL_NO_LIBM],
+[
+  AC_CACHE_CHECK([whether ldexpl() can be used without linking with libm],
+    [gl_cv_func_ldexpl_no_libm],
+    [
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <math.h>
+             long double x;]],
+           [[return ldexpl (x, -1) > 0;]])],
+        [gl_cv_func_ldexpl_no_libm=yes],
+        [gl_cv_func_ldexpl_no_libm=no])
+    ])
+])
+
 dnl Test whether ldexpl() works on finite numbers (this fails on AIX 5.1
-dnl and MacOS X 10.4/PowerPC).
+dnl and Mac OS X 10.4/PowerPC).
 AC_DEFUN([gl_FUNC_LDEXPL_WORKS],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CACHE_CHECK([whether ldexpl works], [gl_cv_func_ldexpl_works],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <math.h>
-extern long double ldexpl (long double, int);
+extern
+#ifdef __cplusplus
+"C"
+#endif
+long double ldexpl (long double, int);
 int main()
 {
-  volatile long double x1 = 1.0;
-  volatile long double y1 = ldexpl (x1, -1);
-  volatile long double x2 = 1.73205L;
-  volatile long double y2 = ldexpl (x2, 0);
-  return (y1 != 0.5L) || (y2 != x2);
-}], [gl_cv_func_ldexpl_works=yes], [gl_cv_func_ldexpl_works=no],
-      [case "$host_os" in
-         aix*) gl_cv_func_ldexpl_works="guessing no";;
-         *)    gl_cv_func_ldexpl_works="guessing yes";;
-       esac
-      ])
+  int result = 0;
+  {
+    volatile long double x = 1.0;
+    volatile long double y = ldexpl (x, -1);
+    if (y != 0.5L)
+      result |= 1;
+  }
+  {
+    volatile long double x = 1.73205L;
+    volatile long double y = ldexpl (x, 0);
+    if (y != x)
+      result |= 2;
+  }
+  return result;
+}]])],
+        [gl_cv_func_ldexpl_works=yes],
+        [gl_cv_func_ldexpl_works=no],
+        [
+changequote(,)dnl
+         case "$host_os" in
+           aix | aix[3-6]*) gl_cv_func_ldexpl_works="guessing no";;
+           *)               gl_cv_func_ldexpl_works="guessing yes";;
+         esac
+changequote([,])dnl
+        ])
     ])
 ])
index ebb3052..ddc569f 100644 (file)
@@ -1,50 +1,56 @@
-# lib-ld.m4 serial 4 (gettext-0.18)
-dnl Copyright (C) 1996-2003, 2009-2010 Free Software Foundation, Inc.
+# lib-ld.m4 serial 6
+dnl Copyright (C) 1996-2003, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 dnl Subroutines of libtool.m4,
-dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
-dnl with libtool.m4.
+dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid
+dnl collision with libtool.m4.
 
-dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no.
 AC_DEFUN([AC_LIB_PROG_LD_GNU],
 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
 case `$LD -v 2>&1 </dev/null` in
 *GNU* | *'with BFD'*)
-  acl_cv_prog_gnu_ld=yes ;;
+  acl_cv_prog_gnu_ld=yes
+  ;;
 *)
-  acl_cv_prog_gnu_ld=no ;;
+  acl_cv_prog_gnu_ld=no
+  ;;
 esac])
 with_gnu_ld=$acl_cv_prog_gnu_ld
 ])
 
-dnl From libtool-1.4. Sets the variable LD.
+dnl From libtool-2.4. Sets the variable LD.
 AC_DEFUN([AC_LIB_PROG_LD],
-[AC_ARG_WITH([gnu-ld],
-[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
+[AC_REQUIRE([AC_PROG_CC])dnl
 AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+        [assume the C compiler uses GNU ld [default=no]])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
 # Prepare PATH_SEPARATOR.
 # The user is always right.
 if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
+  # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+  # contains only /bin. Note that ksh looks also at the FPATH variable,
+  # so we have to set that as well for the test.
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+    && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
+           || PATH_SEPARATOR=';'
+       }
 fi
+
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by GCC])
+  AC_MSG_CHECKING([for ld used by $CC])
   case $host in
   *-*-mingw*)
     # gcc leaves a trailing carriage return which upsets mingw
@@ -54,11 +60,11 @@ if test "$GCC" = yes; then
   esac
   case $ac_prog in
     # Accept absolute paths.
-    [[\\/]* | [A-Za-z]:[\\/]*)]
-      [re_direlt='/[^/][^/]*/\.\./']
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
+      while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
         ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
       done
       test -z "$LD" && LD="$ac_prog"
@@ -79,23 +85,26 @@ else
 fi
 AC_CACHE_VAL([acl_cv_path_LD],
 [if test -z "$LD"; then
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
+    IFS="$acl_save_ifs"
     test -z "$ac_dir" && ac_dir=.
     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
       acl_cv_path_LD="$ac_dir/$ac_prog"
       # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
+      # but apparently some variants of GNU ld only accept -v.
       # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
       *GNU* | *'with BFD'*)
-        test "$with_gnu_ld" != no && break ;;
+        test "$with_gnu_ld" != no && break
+        ;;
       *)
-        test "$with_gnu_ld" != yes && break ;;
+        test "$with_gnu_ld" != yes && break
+        ;;
       esac
     fi
   done
-  IFS="$ac_save_ifs"
+  IFS="$acl_save_ifs"
 else
   acl_cv_path_LD="$LD" # Let the user override the test with a path.
 fi])
index c73bd8e..3522d99 100644 (file)
@@ -1,5 +1,5 @@
-# lib-link.m4 serial 21 (gettext-0.18)
-dnl Copyright (C) 2001-2010 Free Software Foundation, Inc.
+# lib-link.m4 serial 26 (gettext-0.18.2)
+dnl Copyright (C) 2001-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -18,9 +18,9 @@ AC_DEFUN([AC_LIB_LINKFLAGS],
 [
   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
   AC_REQUIRE([AC_LIB_RPATH])
-  pushdef([Name],[translit([$1],[./-], [___])])
-  pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  pushdef([Name],[m4_translit([$1],[./+-], [____])])
+  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
   AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
     AC_LIB_LINKFLAGS_BODY([$1], [$2])
     ac_cv_lib[]Name[]_libs="$LIB[]NAME"
@@ -58,9 +58,9 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
 [
   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
   AC_REQUIRE([AC_LIB_RPATH])
-  pushdef([Name],[translit([$1],[./-], [___])])
-  pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  pushdef([Name],[m4_translit([$1],[./+-], [____])])
+  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
 
   dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
   dnl accordingly.
@@ -85,7 +85,8 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
       *" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
       *)       LIBS="$LIB[]NAME $LIBS" ;;
     esac
-    AC_TRY_LINK([$3], [$4],
+    AC_LINK_IFELSE(
+      [AC_LANG_PROGRAM([[$3]], [[$4]])],
       [ac_cv_lib[]Name=yes],
       [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])'])
     LIBS="$ac_save_LIBS"
@@ -115,6 +116,8 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
 dnl Determine the platform dependent parameters needed to use rpath:
 dnl   acl_libext,
 dnl   acl_shlibext,
+dnl   acl_libname_spec,
+dnl   acl_library_names_spec,
 dnl   acl_hardcode_libdir_flag_spec,
 dnl   acl_hardcode_libdir_separator,
 dnl   acl_hardcode_direct,
@@ -157,15 +160,15 @@ dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
 dnl macro call that searches for libname.
 AC_DEFUN([AC_LIB_FROMPACKAGE],
 [
-  pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
   define([acl_frompackage_]NAME, [$2])
   popdef([NAME])
   pushdef([PACK],[$2])
-  pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
-                                  [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
+                                     [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
   define([acl_libsinpackage_]PACKUP,
-    m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1])
+    m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1])
   popdef([PACKUP])
   popdef([PACK])
 ])
@@ -178,14 +181,14 @@ dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
 AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
 [
   AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
-  pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
-                                [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
   pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
-  pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
-                                  [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+  pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
+                                     [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
   pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
   dnl Autoconf >= 2.61 supports dots in --with options.
-  pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)])
+  pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)])
   dnl By default, look in $includedir and $libdir.
   use_additional=yes
   AC_LIB_WITH_FINAL_PREFIX([
@@ -242,7 +245,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
         names_already_handled="$names_already_handled $name"
         dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
         dnl or AC_LIB_HAVE_LINKFLAGS call.
-        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
         eval value=\"\$HAVE_LIB$uppername\"
         if test -n "$value"; then
           if test "$value" = yes; then
index 1601cea..31f49e4 100644 (file)
@@ -1,5 +1,5 @@
 # lib-prefix.m4 serial 7 (gettext-0.18)
-dnl Copyright (C) 2001-2005, 2008-2010 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2005, 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/libunistring-base.m4 b/gnulib-m4/libunistring-base.m4
new file mode 100644 (file)
index 0000000..d003267
--- /dev/null
@@ -0,0 +1,141 @@
+# libunistring-base.m4 serial 5
+dnl Copyright (C) 2010-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paolo Bonzini and Bruno Haible.
+
+dnl gl_LIBUNISTRING_MODULE([VERSION], [Module])
+dnl Declares that the source files of Module should be compiled, unless we
+dnl are linking with libunistring and its version is >= the given VERSION.
+dnl Defines an automake conditional LIBUNISTRING_COMPILE_$MODULE that is
+dnl true if the source files of Module should be compiled.
+dnl This macro is to be used for public libunistring API, not for
+dnl undocumented API.
+dnl
+dnl You have to bump the VERSION argument to the next projected version
+dnl number each time you make a change that affects the behaviour of the
+dnl functions defined in Module (even if the sources of Module itself do not
+dnl change).
+
+AC_DEFUN([gl_LIBUNISTRING_MODULE],
+[
+  AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE])
+  dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from
+  dnl gl_LIBUNISTRING_CORE if that macro has been run.
+  AM_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_COMPILE_$2]),
+    [gl_LIBUNISTRING_VERSION_CMP([$1])])
+])
+
+dnl gl_LIBUNISTRING_LIBHEADER([VERSION], [HeaderFile])
+dnl Declares that HeaderFile should be created, unless we are linking
+dnl with libunistring and its version is >= the given VERSION.
+dnl HeaderFile should be relative to the lib directory and end in '.h'.
+dnl Prepares for substituting LIBUNISTRING_HEADERFILE (to HeaderFile or empty).
+dnl
+dnl When we are linking with the already installed libunistring and its version
+dnl is < VERSION, we create HeaderFile here, because we may compile functions
+dnl (via gl_LIBUNISTRING_MODULE above) that are not contained in the installed
+dnl version.
+dnl When we are linking with the already installed libunistring and its version
+dnl is > VERSION, we don't create HeaderFile here: it could cause compilation
+dnl errors in other libunistring header files if some types are missing.
+dnl
+dnl You have to bump the VERSION argument to the next projected version
+dnl number each time you make a non-comment change to the HeaderFile.
+
+AC_DEFUN([gl_LIBUNISTRING_LIBHEADER],
+[
+  AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE])
+  dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from
+  dnl gl_LIBUNISTRING_CORE if that macro has been run.
+  if gl_LIBUNISTRING_VERSION_CMP([$1]); then
+    LIBUNISTRING_[]AS_TR_CPP([$2])='$2'
+  else
+    LIBUNISTRING_[]AS_TR_CPP([$2])=
+  fi
+  AC_SUBST([LIBUNISTRING_]AS_TR_CPP([$2]))
+])
+
+dnl Miscellaneous preparations/initializations.
+
+AC_DEFUN([gl_LIBUNISTRING_LIB_PREPARE],
+[
+  dnl Ensure that HAVE_LIBUNISTRING is fully determined at this point.
+  m4_ifdef([gl_LIBUNISTRING], [AC_REQUIRE([gl_LIBUNISTRING])])
+
+  AC_REQUIRE([AC_PROG_AWK])
+
+dnl Sed expressions to extract the parts of a version number.
+changequote(,)
+gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+changequote([,])
+
+  if test "$HAVE_LIBUNISTRING" = yes; then
+    LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"`
+    LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"`
+    LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
+  fi
+])
+
+dnl gl_LIBUNISTRING_VERSION_CMP([VERSION])
+dnl Expands to a shell statement that evaluates to true if LIBUNISTRING_VERSION
+dnl is less than the VERSION argument.
+AC_DEFUN([gl_LIBUNISTRING_VERSION_CMP],
+[ { test "$HAVE_LIBUNISTRING" != yes \
+    || {
+         dnl AS_LITERAL_IF exists and works fine since autoconf-2.59 at least.
+         AS_LITERAL_IF([$1],
+           [dnl This is the optimized variant, that assumes the argument is a literal:
+            m4_pushdef([requested_version_major],
+              [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^\([0-9]*\).*], [\1]), [])])
+            m4_pushdef([requested_version_minor],
+              [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.]\([0-9]*\).*], [\1]), [$1])])
+            m4_pushdef([requested_version_subminor],
+              [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.][0-9]*[.]\([0-9]*\).*], [\1]), [$1])])
+            test $LIBUNISTRING_VERSION_MAJOR -lt requested_version_major \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq requested_version_major \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt requested_version_minor \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq requested_version_minor \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt requested_version_subminor
+                         }
+                    }
+               }
+            m4_popdef([requested_version_subminor])
+            m4_popdef([requested_version_minor])
+            m4_popdef([requested_version_major])
+           ],
+           [dnl This is the unoptimized variant:
+            requested_version_major=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_major"`
+            requested_version_minor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_minor"`
+            requested_version_subminor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_subminor"`
+            test $LIBUNISTRING_VERSION_MAJOR -lt $requested_version_major \
+            || { test $LIBUNISTRING_VERSION_MAJOR -eq $requested_version_major \
+                 && { test $LIBUNISTRING_VERSION_MINOR -lt $requested_version_minor \
+                      || { test $LIBUNISTRING_VERSION_MINOR -eq $requested_version_minor \
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt $requested_version_subminor
+                         }
+                    }
+               }
+           ])
+       }
+  }])
+
+dnl gl_LIBUNISTRING_ARG_OR_ZERO([ARG], [ORIG]) expands to ARG if it is not the
+dnl same as ORIG, otherwise to 0.
+m4_define([gl_LIBUNISTRING_ARG_OR_ZERO], [m4_if([$1], [$2], [0], [$1])])
index ee2e801..ada2f01 100644 (file)
@@ -1,5 +1,5 @@
 # localcharset.m4 serial 7
-dnl Copyright (C) 2002, 2004, 2006, 2009, 2010 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004, 2006, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
diff --git a/gnulib-m4/locale-ar.m4 b/gnulib-m4/locale-ar.m4
new file mode 100644 (file)
index 0000000..0b4eb99
--- /dev/null
@@ -0,0 +1,99 @@
+# locale-ar.m4 serial 6
+dnl Copyright (C) 2003, 2005-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Ben Pfaff, based on locale-fr.m4 by Bruno Haible.
+
+dnl Determine the name of an Arabic locale with traditional encoding.
+AC_DEFUN([gt_LOCALE_AR],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([AM_LANGINFO_CODESET])
+  AC_CACHE_CHECK([for a traditional Arabic locale], [gt_cv_locale_ar], [
+    AC_LANG_CONFTEST([AC_LANG_SOURCE([
+changequote(,)dnl
+#include <locale.h>
+#include <time.h>
+#if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+#include <stdlib.h>
+#include <string.h>
+struct tm t;
+char buf[16];
+int main () {
+  /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
+  if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+  /* Check that nl_langinfo(CODESET) is nonempty and not "ASCII" or "646"
+     and ends in "6". */
+#if HAVE_LANGINFO_CODESET
+  {
+    const char *cs = nl_langinfo (CODESET);
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || cs[strlen (cs) - 1] != '6')
+      return 1;
+  }
+#endif
+#ifdef __CYGWIN__
+  /* On Cygwin, avoid locale names without encoding suffix, because the
+     locale_charset() function relies on the encoding suffix.  Note that
+     LC_ALL is set on the command line.  */
+  if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
+#endif
+  return 0;
+}
+changequote([,])dnl
+      ])])
+    if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Note that on native Windows, the Arabic locale is
+          # "Arabic_Saudi Arabia.1256", and CP1256 is very different from
+          # ISO-8859-6, so we cannot use it here.
+          gt_cv_locale_ar=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Values tested:
+          #   - The usual locale name:                         ar_SA
+          #   - The locale name with explicit encoding suffix: ar_SA.ISO-8859-6
+          #   - The HP-UX locale name:                         ar_SA.iso88596
+          #   - The Solaris 7 locale name:                     ar
+          # Also try ar_EG instead of ar_SA because Egypt is a large country too.
+          for gt_cv_locale_ar in ar_SA ar_SA.ISO-8859-6 ar_SA.iso88596 ar_EG ar_EG.ISO-8859-6 ar_EG.iso88596 ar none; do
+            if test $gt_cv_locale_ar = none; then
+              break
+            fi
+            if (LC_ALL=$gt_cv_locale_ar LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              break
+            fi
+          done
+          ;;
+      esac
+    fi
+    rm -fr conftest*
+  ])
+  LOCALE_AR=$gt_cv_locale_ar
+  AC_SUBST([LOCALE_AR])
+])
index 001f539..27db5ab 100644 (file)
@@ -1,5 +1,5 @@
-# locale-fr.m4 serial 11
-dnl Copyright (C) 2003, 2005-2010 Free Software Foundation, Inc.
+# locale-fr.m4 serial 17
+dnl Copyright (C) 2003, 2005-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -25,17 +25,30 @@ struct tm t;
 char buf[16];
 int main () {
   /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
   if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
 #if HAVE_LANGINFO_CODESET
   {
     const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
       return 1;
   }
 #endif
@@ -50,46 +63,67 @@ int main () {
      one byte long. This excludes the UTF-8 encoding.  */
   t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
   if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
   /* Check whether the decimal separator is a comma.
      On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
      are nl_langinfo(RADIXCHAR) are both ".".  */
   if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
   return 0;
 }
 changequote([,])dnl
       ])])
     if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr=fr_FR.ISO-8859-1
-        else
-          # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
-          if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr=fr_FR.ISO8859-1
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the native Windows locale name.
+          if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=French_France.1252
           else
-            # Test for the HP-UX locale name.
-            if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_fr=fr_FR.iso88591
+            # None found.
+            gt_cv_locale_fr=none
+          fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr=fr_FR.ISO-8859-1
             else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_fr=fr
+              # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+              if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr=fr_FR.ISO8859-1
               else
-                # None found.
-                gt_cv_locale_fr=none
+                # Test for the HP-UX locale name.
+                if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_fr=fr_FR.iso88591
+                else
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_fr=fr
+                  else
+                    # None found.
+                    gt_cv_locale_fr=none
+                  fi
+                fi
               fi
             fi
           fi
-        fi
-      fi
+          ;;
+      esac
     fi
     rm -fr conftest*
   ])
@@ -119,9 +153,19 @@ int main () {
      variables, and all locales use the UTF-8 encoding.  */
 #if !(defined __BEOS__ || defined __HAIKU__)
   /* Check whether the given locale name is recognized by the system.  */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+# else
   if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
@@ -147,36 +191,57 @@ int main () {
       || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
     return 1;
 #endif
+#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy.  */
   /* Check whether the decimal separator is a comma.
      On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
      are nl_langinfo(RADIXCHAR) are both ".".  */
   if (localeconv () ->decimal_point[0] != ',') return 1;
+#endif
   return 0;
 }
 changequote([,])dnl
       ])])
     if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_fr_utf8=fr_FR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_fr_utf8=fr_FR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_fr_utf8=fr.UTF-8
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=French_France.65001
           else
             # None found.
             gt_cv_locale_fr_utf8=none
           fi
-        fi
-      fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_fr_utf8=fr_FR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_fr_utf8=fr_FR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_fr_utf8=fr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_fr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
     fi
     rm -fr conftest*
   ])
index 0eedaf1..c88fe8b 100644 (file)
@@ -1,5 +1,5 @@
-# locale-ja.m4 serial 7
-dnl Copyright (C) 2003, 2005-2010 Free Software Foundation, Inc.
+# locale-ja.m4 serial 12
+dnl Copyright (C) 2003, 2005-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -27,17 +27,30 @@ int main ()
 {
   const char *p;
   /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
   if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
 #if HAVE_LANGINFO_CODESET
   {
     const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
       return 1;
   }
 #endif
@@ -52,7 +65,7 @@ int main ()
   if (MB_CUR_MAX == 1)
     return 1;
   /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding.  */
+     This excludes the UTF-8 encoding (except on MirBSD).  */
   t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
   if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
   for (p = buf; *p != '\0'; p++)
@@ -63,42 +76,58 @@ int main ()
 changequote([,])dnl
       ])])
     if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the AIX locale name.
-      if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_ja=ja_JP
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_ja=ja_JP.EUC-JP
-        else
-          # Test for the HP-UX, OSF/1, NetBSD locale name.
-          if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_ja=ja_JP.eucJP
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Note that on native Windows, the Japanese locale is
+          # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+          # cannot use it here.
+          gt_cv_locale_ja=none
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the AIX locale name.
+          if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_ja=ja_JP
           else
-            # Test for the IRIX, FreeBSD locale name.
-            if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-              gt_cv_locale_ja=ja_JP.EUC
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_ja=ja_JP.EUC-JP
             else
-              # Test for the Solaris 7 locale name.
-              if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-                gt_cv_locale_ja=ja
+              # Test for the HP-UX, OSF/1, NetBSD locale name.
+              if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_ja=ja_JP.eucJP
               else
-                # Special test for NetBSD 1.6.
-                if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
-                  gt_cv_locale_ja=ja_JP.eucJP
+                # Test for the IRIX, FreeBSD locale name.
+                if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                  gt_cv_locale_ja=ja_JP.EUC
                 else
-                  # None found.
-                  gt_cv_locale_ja=none
+                  # Test for the Solaris 7 locale name.
+                  if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                    gt_cv_locale_ja=ja
+                  else
+                    # Special test for NetBSD 1.6.
+                    if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+                      gt_cv_locale_ja=ja_JP.eucJP
+                    else
+                      # None found.
+                      gt_cv_locale_ja=none
+                    fi
+                  fi
                 fi
               fi
             fi
           fi
-        fi
-      fi
+          ;;
+      esac
     fi
     rm -fr conftest*
   ])
index 404c063..535b256 100644 (file)
@@ -1,5 +1,5 @@
-# locale-tr.m4 serial 6
-dnl Copyright (C) 2003, 2005-2010 Free Software Foundation, Inc.
+# locale-tr.m4 serial 10
+dnl Copyright (C) 2003, 2005-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,6 +9,7 @@ dnl From Bruno Haible.
 dnl Determine the name of a turkish locale with UTF-8 encoding.
 AC_DEFUN([gt_LOCALE_TR_UTF8],
 [
+  AC_REQUIRE([AC_CANONICAL_HOST])
   AC_REQUIRE([AM_LANGINFO_CODESET])
   AC_CACHE_CHECK([for a turkish Unicode locale], [gt_cv_locale_tr_utf8], [
     AC_LANG_CONFTEST([AC_LANG_SOURCE([
@@ -29,9 +30,19 @@ int main () {
      implement the Turkish upper-/lowercase mappings.  Therefore, let this
      program return 1 on BeOS.  */
   /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
   if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
@@ -66,27 +77,46 @@ int main () {
 changequote([,])dnl
       ])])
     if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the usual locale name.
-      if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_tr_utf8=tr_TR
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_tr_utf8=tr_TR.UTF-8
-        else
-          # Test for the Solaris 7 locale name.
-          if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-            gt_cv_locale_tr_utf8=tr.UTF-8
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=Turkish_Turkey.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_tr_utf8=Turkish_Turkey.65001
           else
             # None found.
             gt_cv_locale_tr_utf8=none
           fi
-        fi
-      fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the usual locale name.
+          if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_tr_utf8=tr_TR
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_tr_utf8=tr_TR.UTF-8
+            else
+              # Test for the Solaris 7 locale name.
+              if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+                gt_cv_locale_tr_utf8=tr.UTF-8
+              else
+                # None found.
+                gt_cv_locale_tr_utf8=none
+              fi
+            fi
+          fi
+          ;;
+      esac
     else
       gt_cv_locale_tr_utf8=none
     fi
index 777fd14..d3b2347 100644 (file)
@@ -1,5 +1,5 @@
-# locale-zh.m4 serial 6
-dnl Copyright (C) 2003, 2005-2010 Free Software Foundation, Inc.
+# locale-zh.m4 serial 12
+dnl Copyright (C) 2003, 2005-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -28,17 +28,30 @@ int main ()
 {
   const char *p;
   /* Check whether the given locale name is recognized by the system.  */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+  /* On native Windows, setlocale(category, "") looks at the system settings,
+     not at the environment variables.  Also, when an encoding suffix such
+     as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
+     category of the locale to "C".  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+      || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+    return 1;
+#else
   if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
   /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
-     On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
+     On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
      is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
      On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
      succeeds but then nl_langinfo(CODESET) is "646". In this situation,
-     some unit tests fail.  */
+     some unit tests fail.
+     On MirBSD 10, when an unsupported locale is specified, setlocale()
+     succeeds but then nl_langinfo(CODESET) is "UTF-8".  */
 #if HAVE_LANGINFO_CODESET
   {
     const char *cs = nl_langinfo (CODESET);
-    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0)
+    if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+        || strcmp (cs, "UTF-8") == 0)
       return 1;
   }
 #endif
@@ -49,7 +62,7 @@ int main ()
   if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1;
 #endif
   /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
-     This excludes the UTF-8 encoding.  */
+     This excludes the UTF-8 encoding (except on MirBSD).  */
   t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
   if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1;
   for (p = buf; *p != '\0'; p++)
@@ -64,22 +77,47 @@ int main ()
 changequote([,])dnl
       ])])
     if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-      # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
-      # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the
-      # configure script would override the LC_ALL setting. Likewise for
-      # LC_CTYPE, which is also set at the beginning of the configure script.
-      # Test for the locale name without encoding suffix.
-      if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-        gt_cv_locale_zh_CN=zh_CN
-      else
-        # Test for the locale name with explicit encoding suffix.
-        if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
-          gt_cv_locale_zh_CN=zh_CN.GB18030
-        else
-          # None found.
+      case "$host_os" in
+        # Handle native Windows specially, because there setlocale() interprets
+        # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+        # "fr" or "fra" as "French" or "French_France.1252",
+        # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+        # "ja" as "Japanese" or "Japanese_Japan.932",
+        # and similar.
+        mingw*)
+          # Test for the hypothetical native Windows locale name.
+          if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=Chinese_China.54936
+          else
+            # None found.
+            gt_cv_locale_zh_CN=none
+          fi
+          ;;
+        solaris2.8)
+          # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+          # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+          # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
           gt_cv_locale_zh_CN=none
-        fi
-      fi
+          ;;
+        *)
+          # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
+          # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
+          # configure script would override the LC_ALL setting. Likewise for
+          # LC_CTYPE, which is also set at the beginning of the configure script.
+          # Test for the locale name without encoding suffix.
+          if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+            gt_cv_locale_zh_CN=zh_CN
+          else
+            # Test for the locale name with explicit encoding suffix.
+            if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+              gt_cv_locale_zh_CN=zh_CN.GB18030
+            else
+              # None found.
+              gt_cv_locale_zh_CN=none
+            fi
+          fi
+          ;;
+      esac
     else
       # If there was a link error, due to mblen(), the system is so old that
       # it certainly doesn't have a chinese locale.
index 18a119b..2838588 100644 (file)
@@ -1,5 +1,5 @@
-# locale_h.m4 serial 10
-dnl Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+# locale_h.m4 serial 19
+dnl Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,16 +10,30 @@ AC_DEFUN([gl_LOCALE_H],
   dnl once only, before all statements that occur in other macros.
   AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
 
-  dnl Persuade glibc <locale.h> to define locale_t.
+  dnl Persuade glibc <locale.h> to define locale_t and the int_p_*, int_n_*
+  dnl members of 'struct lconv'.
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
 
   dnl If <stddef.h> is replaced, then <locale.h> must also be replaced.
   AC_REQUIRE([gl_STDDEF_H])
 
+  dnl Solaris 11 2011-11 defines the int_p_*, int_n_* members of 'struct lconv'
+  dnl only if _LCONV_C99 is defined.
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  case "$host_os" in
+    solaris*)
+      AC_DEFINE([_LCONV_C99], [1], [Define to 1 on Solaris.])
+      ;;
+  esac
+
   AC_CACHE_CHECK([whether locale.h conforms to POSIX:2001],
     [gl_cv_header_locale_h_posix2001],
-    [AC_TRY_COMPILE([#include <locale.h>
-int x = LC_MESSAGES;], [],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <locale.h>
+            int x = LC_MESSAGES;
+            int y = sizeof (((struct lconv *) 0)->decimal_point);]],
+          [[]])],
        [gl_cv_header_locale_h_posix2001=yes],
        [gl_cv_header_locale_h_posix2001=no])])
 
@@ -28,12 +42,15 @@ int x = LC_MESSAGES;], [],
   if test $ac_cv_header_xlocale_h = yes; then
     HAVE_XLOCALE_H=1
     dnl Check whether use of locale_t requires inclusion of <xlocale.h>,
-    dnl e.g. on MacOS X 10.5. If <locale.h> does not define locale_t by
+    dnl e.g. on Mac OS X 10.5. If <locale.h> does not define locale_t by
     dnl itself, we assume that <xlocale.h> will do so.
     AC_CACHE_CHECK([whether locale.h defines locale_t],
       [gl_cv_header_locale_has_locale_t],
-      [AC_TRY_COMPILE([#include <locale.h>
-locale_t x;], [],
+      [AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#include <locale.h>
+              locale_t x;]],
+            [[]])],
          [gl_cv_header_locale_has_locale_t=yes],
          [gl_cv_header_locale_has_locale_t=no])
       ])
@@ -48,15 +65,29 @@ locale_t x;], [],
   fi
   AC_SUBST([HAVE_XLOCALE_H])
 
-  dnl <locale.h> is always overridden, because of GNULIB_POSIXCHECK.
-  gl_CHECK_NEXT_HEADERS([locale.h])
-
-  if test -n "$STDDEF_H" \
-     || test $gl_cv_header_locale_h_posix2001 = no \
-     || test $gl_cv_header_locale_h_needs_xlocale_h = yes; then
-    gl_REPLACE_LOCALE_H
+  dnl Check whether 'struct lconv' is complete.
+  dnl Bionic libc's 'struct lconv' is just a dummy.
+  dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x,
+  dnl mingw, MSVC 9, it lacks the int_p_* and int_n_* members.
+  AC_CACHE_CHECK([whether struct lconv is properly defined],
+    [gl_cv_sys_struct_lconv_ok],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <locale.h>
+            struct lconv l;
+            int x = sizeof (l.decimal_point);
+            int y = sizeof (l.int_p_cs_precedes);]],
+          [[]])],
+       [gl_cv_sys_struct_lconv_ok=yes],
+       [gl_cv_sys_struct_lconv_ok=no])
+    ])
+  if test $gl_cv_sys_struct_lconv_ok = no; then
+    REPLACE_STRUCT_LCONV=1
   fi
 
+  dnl <locale.h> is always overridden, because of GNULIB_POSIXCHECK.
+  gl_NEXT_HEADERS([locale.h])
+
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use.
   gl_WARN_ON_USE_PREPARE([[#include <locale.h>
@@ -64,14 +95,8 @@ locale_t x;], [],
 #if HAVE_XLOCALE_H
 # include <xlocale.h>
 #endif
-   ]], [duplocale])
-])
-
-dnl Unconditionally enables the replacement of <locale.h>.
-AC_DEFUN([gl_REPLACE_LOCALE_H],
-[
-  dnl This is a no-op, because <locale.h> is always overridden.
-  :
+    ]],
+    [setlocale duplocale])
 ])
 
 AC_DEFUN([gl_LOCALE_MODULE_INDICATOR],
@@ -85,8 +110,13 @@ AC_DEFUN([gl_LOCALE_MODULE_INDICATOR],
 
 AC_DEFUN([gl_LOCALE_H_DEFAULTS],
 [
+  GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV])
+  GNULIB_SETLOCALE=0;  AC_SUBST([GNULIB_SETLOCALE])
   GNULIB_DUPLOCALE=0;  AC_SUBST([GNULIB_DUPLOCALE])
   dnl Assume proper GNU behavior unless another module says otherwise.
-  HAVE_DUPLOCALE=1;    AC_SUBST([HAVE_DUPLOCALE])
-  REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE])
+  HAVE_DUPLOCALE=1;       AC_SUBST([HAVE_DUPLOCALE])
+  REPLACE_LOCALECONV=0;   AC_SUBST([REPLACE_LOCALECONV])
+  REPLACE_SETLOCALE=0;    AC_SUBST([REPLACE_SETLOCALE])
+  REPLACE_DUPLOCALE=0;    AC_SUBST([REPLACE_DUPLOCALE])
+  REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV])
 ])
index 9ff5eea..d865c66 100644 (file)
@@ -1,5 +1,5 @@
 # localename.m4 serial 2
-dnl Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 9da8465..73a3c54 100644 (file)
@@ -1,5 +1,5 @@
-# lock.m4 serial 10 (gettext-0.18)
-dnl Copyright (C) 2005-2010 Free Software Foundation, Inc.
+# lock.m4 serial 13 (gettext-0.18.2)
+dnl Copyright (C) 2005-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,7 +10,7 @@ AC_DEFUN([gl_LOCK],
 [
   AC_REQUIRE([gl_THREADLIB])
   if test "$gl_threads_api" = posix; then
-    # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the
+    # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the
     # pthread_rwlock_* functions.
     AC_CHECK_TYPE([pthread_rwlock_t],
       [AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1],
@@ -18,20 +18,25 @@ AC_DEFUN([gl_LOCK],
       [],
       [#include <pthread.h>])
     # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
-    AC_TRY_COMPILE([#include <pthread.h>],
-      [#if __FreeBSD__ == 4
+    AC_COMPILE_IFELSE([
+      AC_LANG_PROGRAM(
+        [[#include <pthread.h>]],
+        [[
+#if __FreeBSD__ == 4
 error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
+#elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \
+       && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070)
+error "No, in Mac OS X < 10.7 recursive mutexes actually don't work."
 #else
 int x = (int)PTHREAD_MUTEX_RECURSIVE;
 return !x;
-#endif],
+#endif
+        ]])],
       [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], [1],
          [Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE.])])
   fi
   gl_PREREQ_LOCK
 ])
 
-# Prerequisites of lib/lock.c.
-AC_DEFUN([gl_PREREQ_LOCK], [
-  AC_REQUIRE([AC_C_INLINE])
-])
+# Prerequisites of lib/glthread/lock.c.
+AC_DEFUN([gl_PREREQ_LOCK], [:])
index cca3c1a..eefb37c 100644 (file)
@@ -1,5 +1,5 @@
-# longlong.m4 serial 14
-dnl Copyright (C) 1999-2007, 2009-2010 Free Software Foundation, Inc.
+# longlong.m4 serial 17
+dnl Copyright (C) 1999-2007, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,8 +7,8 @@ dnl with or without modifications, as long as this notice is preserved.
 dnl From Paul Eggert.
 
 # Define HAVE_LONG_LONG_INT if 'long long int' works.
-# This fixes a bug in Autoconf 2.61, but can be removed once we
-# assume 2.62 everywhere.
+# This fixes a bug in Autoconf 2.61, and can be faster
+# than what's in Autoconf 2.62 through 2.68.
 
 # Note: If the type 'long long int' exists but is only 32 bits large
 # (as on some very old compilers), HAVE_LONG_LONG_INT will not be
@@ -16,44 +16,48 @@ dnl From Paul Eggert.
 
 AC_DEFUN([AC_TYPE_LONG_LONG_INT],
 [
+  AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
   AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
-    [AC_LINK_IFELSE(
-       [_AC_TYPE_LONG_LONG_SNIPPET],
-       [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
-        dnl If cross compiling, assume the bug isn't important, since
-        dnl nobody cross compiles for this platform as far as we know.
-        AC_RUN_IFELSE(
-          [AC_LANG_PROGRAM(
-             [[@%:@include <limits.h>
-               @%:@ifndef LLONG_MAX
-               @%:@ define HALF \
-                        (1LL << (sizeof (long long int) * CHAR_BIT - 2))
-               @%:@ define LLONG_MAX (HALF - 1 + HALF)
-               @%:@endif]],
-             [[long long int n = 1;
-               int i;
-               for (i = 0; ; i++)
-                 {
-                   long long int m = n << i;
-                   if (m >> i != n)
-                     return 1;
-                   if (LLONG_MAX / 2 < m)
-                     break;
-                 }
-               return 0;]])],
-          [ac_cv_type_long_long_int=yes],
-          [ac_cv_type_long_long_int=no],
-          [ac_cv_type_long_long_int=yes])],
-       [ac_cv_type_long_long_int=no])])
+     [ac_cv_type_long_long_int=yes
+      if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+        ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
+        if test $ac_cv_type_long_long_int = yes; then
+          dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
+          dnl If cross compiling, assume the bug is not important, since
+          dnl nobody cross compiles for this platform as far as we know.
+          AC_RUN_IFELSE(
+            [AC_LANG_PROGRAM(
+               [[@%:@include <limits.h>
+                 @%:@ifndef LLONG_MAX
+                 @%:@ define HALF \
+                          (1LL << (sizeof (long long int) * CHAR_BIT - 2))
+                 @%:@ define LLONG_MAX (HALF - 1 + HALF)
+                 @%:@endif]],
+               [[long long int n = 1;
+                 int i;
+                 for (i = 0; ; i++)
+                   {
+                     long long int m = n << i;
+                     if (m >> i != n)
+                       return 1;
+                     if (LLONG_MAX / 2 < m)
+                       break;
+                   }
+                 return 0;]])],
+            [],
+            [ac_cv_type_long_long_int=no],
+            [:])
+        fi
+      fi])
   if test $ac_cv_type_long_long_int = yes; then
     AC_DEFINE([HAVE_LONG_LONG_INT], [1],
-      [Define to 1 if the system has the type `long long int'.])
+      [Define to 1 if the system has the type 'long long int'.])
   fi
 ])
 
 # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
-# This fixes a bug in Autoconf 2.61, but can be removed once we
-# assume 2.62 everywhere.
+# This fixes a bug in Autoconf 2.61, and can be faster
+# than what's in Autoconf 2.62 through 2.68.
 
 # Note: If the type 'unsigned long long int' exists but is only 32 bits
 # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
@@ -64,13 +68,16 @@ AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
 [
   AC_CACHE_CHECK([for unsigned long long int],
     [ac_cv_type_unsigned_long_long_int],
-    [AC_LINK_IFELSE(
-       [_AC_TYPE_LONG_LONG_SNIPPET],
-       [ac_cv_type_unsigned_long_long_int=yes],
-       [ac_cv_type_unsigned_long_long_int=no])])
+    [ac_cv_type_unsigned_long_long_int=yes
+     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+       AC_LINK_IFELSE(
+         [_AC_TYPE_LONG_LONG_SNIPPET],
+         [],
+         [ac_cv_type_unsigned_long_long_int=no])
+     fi])
   if test $ac_cv_type_unsigned_long_long_int = yes; then
     AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
-      [Define to 1 if the system has the type `unsigned long long int'.])
+      [Define to 1 if the system has the type 'unsigned long long int'.])
   fi
 ])
 
index 910ac92..322ad6e 100644 (file)
@@ -1,25 +1,78 @@
-# malloc.m4 serial 9
-dnl Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+# malloc.m4 serial 14
+dnl Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
+m4_version_prereq([2.70], [] ,[
+
+# This is taken from the following Autoconf patch:
+# http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9
+AC_DEFUN([_AC_FUNC_MALLOC_IF],
+[
+  AC_REQUIRE([AC_HEADER_STDC])dnl
+  AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
+  AC_CHECK_HEADERS([stdlib.h])
+  AC_CACHE_CHECK([for GNU libc compatible malloc],
+    [ac_cv_func_malloc_0_nonnull],
+    [AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+            # include <stdlib.h>
+            #else
+            char *malloc ();
+            #endif
+          ]],
+          [[return ! malloc (0);]])
+       ],
+       [ac_cv_func_malloc_0_nonnull=yes],
+       [ac_cv_func_malloc_0_nonnull=no],
+       [case "$host_os" in
+          # Guess yes on platforms where we know the result.
+          *-gnu* | freebsd* | netbsd* | openbsd* \
+          | hpux* | solaris* | cygwin* | mingw*)
+            ac_cv_func_malloc_0_nonnull=yes ;;
+          # If we don't know, assume the worst.
+          *) ac_cv_func_malloc_0_nonnull=no ;;
+        esac
+       ])
+    ])
+  AS_IF([test $ac_cv_func_malloc_0_nonnull = yes], [$1], [$2])
+])# _AC_FUNC_MALLOC_IF
+
+])
+
+# gl_FUNC_MALLOC_GNU
+# ------------------
+# Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if
+# it is not.
+AC_DEFUN([gl_FUNC_MALLOC_GNU],
+[
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  dnl _AC_FUNC_MALLOC_IF is defined in Autoconf.
+  _AC_FUNC_MALLOC_IF(
+    [AC_DEFINE([HAVE_MALLOC_GNU], [1],
+               [Define to 1 if your system has a GNU libc compatible 'malloc'
+                function, and to 0 otherwise.])],
+    [AC_DEFINE([HAVE_MALLOC_GNU], [0])
+     REPLACE_MALLOC=1
+    ])
+])
+
 # gl_FUNC_MALLOC_POSIX
 # --------------------
 # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it
 # fails), and replace malloc if it is not.
 AC_DEFUN([gl_FUNC_MALLOC_POSIX],
 [
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
   AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
   if test $gl_cv_func_malloc_posix = yes; then
-    HAVE_MALLOC_POSIX=1
     AC_DEFINE([HAVE_MALLOC_POSIX], [1],
       [Define if the 'malloc' function is POSIX compliant.])
   else
-    AC_LIBOBJ([malloc])
-    HAVE_MALLOC_POSIX=0
+    REPLACE_MALLOC=1
   fi
-  AC_SUBST([HAVE_MALLOC_POSIX])
 ])
 
 # Test whether malloc, realloc, calloc are POSIX compliant,
@@ -32,10 +85,14 @@ AC_DEFUN([gl_CHECK_MALLOC_POSIX],
       dnl It is too dangerous to try to allocate a large amount of memory:
       dnl some systems go to their knees when you do that. So assume that
       dnl all Unix implementations of the function are POSIX compliant.
-      AC_TRY_COMPILE([],
-        [#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-         choke me
-         #endif
-        ], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no])
+      AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[]],
+           [[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+             choke me
+             #endif
+            ]])],
+        [gl_cv_func_malloc_posix=yes],
+        [gl_cv_func_malloc_posix=no])
     ])
 ])
index e07c6d9..dcc1a08 100644 (file)
@@ -1,5 +1,5 @@
 # malloca.m4 serial 1
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2010 Free Software Foundation,
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2014 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 2d89ca3..9e2adfb 100644 (file)
@@ -1,5 +1,5 @@
-# math_h.m4 serial 21
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# math_h.m4 serial 114
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,7 +8,6 @@ AC_DEFUN([gl_MATH_H],
 [
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
   gl_CHECK_NEXT_HEADERS([math.h])
-  AC_REQUIRE([AC_C_INLINE])
 
   AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works],
     [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
@@ -38,9 +37,20 @@ AC_DEFUN([gl_MATH_H],
 
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use.
-  gl_WARN_ON_USE_PREPARE([[#include <math.h>
-    ]], [acosl asinl atanl ceilf ceill cosl expl floorf floorl frexpl
-    ldexpl logb logl round roundf roundl sinl sqrtl tanl trunc truncf truncl])
+  gl_WARN_ON_USE_PREPARE([[#include <math.h>]],
+    [acosf acosl asinf asinl atanf atanl
+     cbrt cbrtf cbrtl ceilf ceill copysign copysignf copysignl cosf cosl coshf
+     expf expl exp2 exp2f exp2l expm1 expm1f expm1l
+     fabsf fabsl floorf floorl fma fmaf fmal
+     fmod fmodf fmodl frexpf frexpl hypotf hypotl
+     ilogb ilogbf ilogbl
+     ldexpf ldexpl
+     log logf logl log10 log10f log10l log1p log1pf log1pl log2 log2f log2l
+     logb logbf logbl
+     modf modff modfl powf
+     remainder remainderf remainderl
+     rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl
+     tanf tanl tanhf trunc truncf truncl])
 ])
 
 AC_DEFUN([gl_MATH_MODULE_INDICATOR],
@@ -54,62 +64,189 @@ AC_DEFUN([gl_MATH_MODULE_INDICATOR],
 
 AC_DEFUN([gl_MATH_H_DEFAULTS],
 [
-  GNULIB_ACOSL=0;    AC_SUBST([GNULIB_ACOSL])
-  GNULIB_ASINL=0;    AC_SUBST([GNULIB_ASINL])
-  GNULIB_ATANL=0;    AC_SUBST([GNULIB_ATANL])
-  GNULIB_CEILF=0;    AC_SUBST([GNULIB_CEILF])
-  GNULIB_CEILL=0;    AC_SUBST([GNULIB_CEILL])
-  GNULIB_COSL=0;     AC_SUBST([GNULIB_COSL])
-  GNULIB_EXPL=0;     AC_SUBST([GNULIB_EXPL])
-  GNULIB_FLOORF=0;   AC_SUBST([GNULIB_FLOORF])
-  GNULIB_FLOORL=0;   AC_SUBST([GNULIB_FLOORL])
-  GNULIB_FREXP=0;    AC_SUBST([GNULIB_FREXP])
-  GNULIB_FREXPL=0;   AC_SUBST([GNULIB_FREXPL])
-  GNULIB_ISFINITE=0; AC_SUBST([GNULIB_ISFINITE])
-  GNULIB_ISINF=0;    AC_SUBST([GNULIB_ISINF])
-  GNULIB_ISNAN=0;    AC_SUBST([GNULIB_ISNAN])
-  GNULIB_ISNANF=0;   AC_SUBST([GNULIB_ISNANF])
-  GNULIB_ISNAND=0;   AC_SUBST([GNULIB_ISNAND])
-  GNULIB_ISNANL=0;   AC_SUBST([GNULIB_ISNANL])
-  GNULIB_LDEXPL=0;   AC_SUBST([GNULIB_LDEXPL])
-  GNULIB_LOGB=0;     AC_SUBST([GNULIB_LOGB])
-  GNULIB_LOGL=0;     AC_SUBST([GNULIB_LOGL])
-  GNULIB_ROUND=0;    AC_SUBST([GNULIB_ROUND])
-  GNULIB_ROUNDF=0;   AC_SUBST([GNULIB_ROUNDF])
-  GNULIB_ROUNDL=0;   AC_SUBST([GNULIB_ROUNDL])
-  GNULIB_SIGNBIT=0;  AC_SUBST([GNULIB_SIGNBIT])
-  GNULIB_SINL=0;     AC_SUBST([GNULIB_SINL])
-  GNULIB_SQRTL=0;    AC_SUBST([GNULIB_SQRTL])
-  GNULIB_TANL=0;     AC_SUBST([GNULIB_TANL])
-  GNULIB_TRUNC=0;    AC_SUBST([GNULIB_TRUNC])
-  GNULIB_TRUNCF=0;   AC_SUBST([GNULIB_TRUNCF])
-  GNULIB_TRUNCL=0;   AC_SUBST([GNULIB_TRUNCL])
+  GNULIB_ACOSF=0;      AC_SUBST([GNULIB_ACOSF])
+  GNULIB_ACOSL=0;      AC_SUBST([GNULIB_ACOSL])
+  GNULIB_ASINF=0;      AC_SUBST([GNULIB_ASINF])
+  GNULIB_ASINL=0;      AC_SUBST([GNULIB_ASINL])
+  GNULIB_ATANF=0;      AC_SUBST([GNULIB_ATANF])
+  GNULIB_ATANL=0;      AC_SUBST([GNULIB_ATANL])
+  GNULIB_ATAN2F=0;     AC_SUBST([GNULIB_ATAN2F])
+  GNULIB_CBRT=0;       AC_SUBST([GNULIB_CBRT])
+  GNULIB_CBRTF=0;      AC_SUBST([GNULIB_CBRTF])
+  GNULIB_CBRTL=0;      AC_SUBST([GNULIB_CBRTL])
+  GNULIB_CEIL=0;       AC_SUBST([GNULIB_CEIL])
+  GNULIB_CEILF=0;      AC_SUBST([GNULIB_CEILF])
+  GNULIB_CEILL=0;      AC_SUBST([GNULIB_CEILL])
+  GNULIB_COPYSIGN=0;   AC_SUBST([GNULIB_COPYSIGN])
+  GNULIB_COPYSIGNF=0;  AC_SUBST([GNULIB_COPYSIGNF])
+  GNULIB_COPYSIGNL=0;  AC_SUBST([GNULIB_COPYSIGNL])
+  GNULIB_COSF=0;       AC_SUBST([GNULIB_COSF])
+  GNULIB_COSL=0;       AC_SUBST([GNULIB_COSL])
+  GNULIB_COSHF=0;      AC_SUBST([GNULIB_COSHF])
+  GNULIB_EXPF=0;       AC_SUBST([GNULIB_EXPF])
+  GNULIB_EXPL=0;       AC_SUBST([GNULIB_EXPL])
+  GNULIB_EXP2=0;       AC_SUBST([GNULIB_EXP2])
+  GNULIB_EXP2F=0;      AC_SUBST([GNULIB_EXP2F])
+  GNULIB_EXP2L=0;      AC_SUBST([GNULIB_EXP2L])
+  GNULIB_EXPM1=0;      AC_SUBST([GNULIB_EXPM1])
+  GNULIB_EXPM1F=0;     AC_SUBST([GNULIB_EXPM1F])
+  GNULIB_EXPM1L=0;     AC_SUBST([GNULIB_EXPM1L])
+  GNULIB_FABSF=0;      AC_SUBST([GNULIB_FABSF])
+  GNULIB_FABSL=0;      AC_SUBST([GNULIB_FABSL])
+  GNULIB_FLOOR=0;      AC_SUBST([GNULIB_FLOOR])
+  GNULIB_FLOORF=0;     AC_SUBST([GNULIB_FLOORF])
+  GNULIB_FLOORL=0;     AC_SUBST([GNULIB_FLOORL])
+  GNULIB_FMA=0;        AC_SUBST([GNULIB_FMA])
+  GNULIB_FMAF=0;       AC_SUBST([GNULIB_FMAF])
+  GNULIB_FMAL=0;       AC_SUBST([GNULIB_FMAL])
+  GNULIB_FMOD=0;       AC_SUBST([GNULIB_FMOD])
+  GNULIB_FMODF=0;      AC_SUBST([GNULIB_FMODF])
+  GNULIB_FMODL=0;      AC_SUBST([GNULIB_FMODL])
+  GNULIB_FREXPF=0;     AC_SUBST([GNULIB_FREXPF])
+  GNULIB_FREXP=0;      AC_SUBST([GNULIB_FREXP])
+  GNULIB_FREXPL=0;     AC_SUBST([GNULIB_FREXPL])
+  GNULIB_HYPOT=0;      AC_SUBST([GNULIB_HYPOT])
+  GNULIB_HYPOTF=0;     AC_SUBST([GNULIB_HYPOTF])
+  GNULIB_HYPOTL=0;     AC_SUBST([GNULIB_HYPOTL])
+  GNULIB_ILOGB=0;      AC_SUBST([GNULIB_ILOGB])
+  GNULIB_ILOGBF=0;     AC_SUBST([GNULIB_ILOGBF])
+  GNULIB_ILOGBL=0;     AC_SUBST([GNULIB_ILOGBL])
+  GNULIB_ISFINITE=0;   AC_SUBST([GNULIB_ISFINITE])
+  GNULIB_ISINF=0;      AC_SUBST([GNULIB_ISINF])
+  GNULIB_ISNAN=0;      AC_SUBST([GNULIB_ISNAN])
+  GNULIB_ISNANF=0;     AC_SUBST([GNULIB_ISNANF])
+  GNULIB_ISNAND=0;     AC_SUBST([GNULIB_ISNAND])
+  GNULIB_ISNANL=0;     AC_SUBST([GNULIB_ISNANL])
+  GNULIB_LDEXPF=0;     AC_SUBST([GNULIB_LDEXPF])
+  GNULIB_LDEXPL=0;     AC_SUBST([GNULIB_LDEXPL])
+  GNULIB_LOG=0;        AC_SUBST([GNULIB_LOG])
+  GNULIB_LOGF=0;       AC_SUBST([GNULIB_LOGF])
+  GNULIB_LOGL=0;       AC_SUBST([GNULIB_LOGL])
+  GNULIB_LOG10=0;      AC_SUBST([GNULIB_LOG10])
+  GNULIB_LOG10F=0;     AC_SUBST([GNULIB_LOG10F])
+  GNULIB_LOG10L=0;     AC_SUBST([GNULIB_LOG10L])
+  GNULIB_LOG1P=0;      AC_SUBST([GNULIB_LOG1P])
+  GNULIB_LOG1PF=0;     AC_SUBST([GNULIB_LOG1PF])
+  GNULIB_LOG1PL=0;     AC_SUBST([GNULIB_LOG1PL])
+  GNULIB_LOG2=0;       AC_SUBST([GNULIB_LOG2])
+  GNULIB_LOG2F=0;      AC_SUBST([GNULIB_LOG2F])
+  GNULIB_LOG2L=0;      AC_SUBST([GNULIB_LOG2L])
+  GNULIB_LOGB=0;       AC_SUBST([GNULIB_LOGB])
+  GNULIB_LOGBF=0;      AC_SUBST([GNULIB_LOGBF])
+  GNULIB_LOGBL=0;      AC_SUBST([GNULIB_LOGBL])
+  GNULIB_MODF=0;       AC_SUBST([GNULIB_MODF])
+  GNULIB_MODFF=0;      AC_SUBST([GNULIB_MODFF])
+  GNULIB_MODFL=0;      AC_SUBST([GNULIB_MODFL])
+  GNULIB_POWF=0;       AC_SUBST([GNULIB_POWF])
+  GNULIB_REMAINDER=0;  AC_SUBST([GNULIB_REMAINDER])
+  GNULIB_REMAINDERF=0; AC_SUBST([GNULIB_REMAINDERF])
+  GNULIB_REMAINDERL=0; AC_SUBST([GNULIB_REMAINDERL])
+  GNULIB_RINT=0;       AC_SUBST([GNULIB_RINT])
+  GNULIB_RINTF=0;      AC_SUBST([GNULIB_RINTF])
+  GNULIB_RINTL=0;      AC_SUBST([GNULIB_RINTL])
+  GNULIB_ROUND=0;      AC_SUBST([GNULIB_ROUND])
+  GNULIB_ROUNDF=0;     AC_SUBST([GNULIB_ROUNDF])
+  GNULIB_ROUNDL=0;     AC_SUBST([GNULIB_ROUNDL])
+  GNULIB_SIGNBIT=0;    AC_SUBST([GNULIB_SIGNBIT])
+  GNULIB_SINF=0;       AC_SUBST([GNULIB_SINF])
+  GNULIB_SINL=0;       AC_SUBST([GNULIB_SINL])
+  GNULIB_SINHF=0;      AC_SUBST([GNULIB_SINHF])
+  GNULIB_SQRTF=0;      AC_SUBST([GNULIB_SQRTF])
+  GNULIB_SQRTL=0;      AC_SUBST([GNULIB_SQRTL])
+  GNULIB_TANF=0;       AC_SUBST([GNULIB_TANF])
+  GNULIB_TANL=0;       AC_SUBST([GNULIB_TANL])
+  GNULIB_TANHF=0;      AC_SUBST([GNULIB_TANHF])
+  GNULIB_TRUNC=0;      AC_SUBST([GNULIB_TRUNC])
+  GNULIB_TRUNCF=0;     AC_SUBST([GNULIB_TRUNCF])
+  GNULIB_TRUNCL=0;     AC_SUBST([GNULIB_TRUNCL])
   dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_ACOSF=1;                AC_SUBST([HAVE_ACOSF])
   HAVE_ACOSL=1;                AC_SUBST([HAVE_ACOSL])
+  HAVE_ASINF=1;                AC_SUBST([HAVE_ASINF])
   HAVE_ASINL=1;                AC_SUBST([HAVE_ASINL])
+  HAVE_ATANF=1;                AC_SUBST([HAVE_ATANF])
   HAVE_ATANL=1;                AC_SUBST([HAVE_ATANL])
+  HAVE_ATAN2F=1;               AC_SUBST([HAVE_ATAN2F])
+  HAVE_CBRT=1;                 AC_SUBST([HAVE_CBRT])
+  HAVE_CBRTF=1;                AC_SUBST([HAVE_CBRTF])
+  HAVE_CBRTL=1;                AC_SUBST([HAVE_CBRTL])
+  HAVE_COPYSIGN=1;             AC_SUBST([HAVE_COPYSIGN])
+  HAVE_COPYSIGNL=1;            AC_SUBST([HAVE_COPYSIGNL])
+  HAVE_COSF=1;                 AC_SUBST([HAVE_COSF])
   HAVE_COSL=1;                 AC_SUBST([HAVE_COSL])
+  HAVE_COSHF=1;                AC_SUBST([HAVE_COSHF])
+  HAVE_EXPF=1;                 AC_SUBST([HAVE_EXPF])
   HAVE_EXPL=1;                 AC_SUBST([HAVE_EXPL])
+  HAVE_EXPM1=1;                AC_SUBST([HAVE_EXPM1])
+  HAVE_EXPM1F=1;               AC_SUBST([HAVE_EXPM1F])
+  HAVE_FABSF=1;                AC_SUBST([HAVE_FABSF])
+  HAVE_FABSL=1;                AC_SUBST([HAVE_FABSL])
+  HAVE_FMA=1;                  AC_SUBST([HAVE_FMA])
+  HAVE_FMAF=1;                 AC_SUBST([HAVE_FMAF])
+  HAVE_FMAL=1;                 AC_SUBST([HAVE_FMAL])
+  HAVE_FMODF=1;                AC_SUBST([HAVE_FMODF])
+  HAVE_FMODL=1;                AC_SUBST([HAVE_FMODL])
+  HAVE_FREXPF=1;               AC_SUBST([HAVE_FREXPF])
+  HAVE_HYPOTF=1;               AC_SUBST([HAVE_HYPOTF])
+  HAVE_HYPOTL=1;               AC_SUBST([HAVE_HYPOTL])
+  HAVE_ILOGB=1;                AC_SUBST([HAVE_ILOGB])
+  HAVE_ILOGBF=1;               AC_SUBST([HAVE_ILOGBF])
+  HAVE_ILOGBL=1;               AC_SUBST([HAVE_ILOGBL])
   HAVE_ISNANF=1;               AC_SUBST([HAVE_ISNANF])
   HAVE_ISNAND=1;               AC_SUBST([HAVE_ISNAND])
   HAVE_ISNANL=1;               AC_SUBST([HAVE_ISNANL])
+  HAVE_LDEXPF=1;               AC_SUBST([HAVE_LDEXPF])
+  HAVE_LOGF=1;                 AC_SUBST([HAVE_LOGF])
   HAVE_LOGL=1;                 AC_SUBST([HAVE_LOGL])
+  HAVE_LOG10F=1;               AC_SUBST([HAVE_LOG10F])
+  HAVE_LOG10L=1;               AC_SUBST([HAVE_LOG10L])
+  HAVE_LOG1P=1;                AC_SUBST([HAVE_LOG1P])
+  HAVE_LOG1PF=1;               AC_SUBST([HAVE_LOG1PF])
+  HAVE_LOG1PL=1;               AC_SUBST([HAVE_LOG1PL])
+  HAVE_LOGBF=1;                AC_SUBST([HAVE_LOGBF])
+  HAVE_LOGBL=1;                AC_SUBST([HAVE_LOGBL])
+  HAVE_MODFF=1;                AC_SUBST([HAVE_MODFF])
+  HAVE_MODFL=1;                AC_SUBST([HAVE_MODFL])
+  HAVE_POWF=1;                 AC_SUBST([HAVE_POWF])
+  HAVE_REMAINDER=1;            AC_SUBST([HAVE_REMAINDER])
+  HAVE_REMAINDERF=1;           AC_SUBST([HAVE_REMAINDERF])
+  HAVE_RINT=1;                 AC_SUBST([HAVE_RINT])
+  HAVE_RINTL=1;                AC_SUBST([HAVE_RINTL])
+  HAVE_SINF=1;                 AC_SUBST([HAVE_SINF])
   HAVE_SINL=1;                 AC_SUBST([HAVE_SINL])
+  HAVE_SINHF=1;                AC_SUBST([HAVE_SINHF])
+  HAVE_SQRTF=1;                AC_SUBST([HAVE_SQRTF])
   HAVE_SQRTL=1;                AC_SUBST([HAVE_SQRTL])
+  HAVE_TANF=1;                 AC_SUBST([HAVE_TANF])
   HAVE_TANL=1;                 AC_SUBST([HAVE_TANL])
+  HAVE_TANHF=1;                AC_SUBST([HAVE_TANHF])
   HAVE_DECL_ACOSL=1;           AC_SUBST([HAVE_DECL_ACOSL])
   HAVE_DECL_ASINL=1;           AC_SUBST([HAVE_DECL_ASINL])
   HAVE_DECL_ATANL=1;           AC_SUBST([HAVE_DECL_ATANL])
+  HAVE_DECL_CBRTF=1;           AC_SUBST([HAVE_DECL_CBRTF])
+  HAVE_DECL_CBRTL=1;           AC_SUBST([HAVE_DECL_CBRTL])
   HAVE_DECL_CEILF=1;           AC_SUBST([HAVE_DECL_CEILF])
   HAVE_DECL_CEILL=1;           AC_SUBST([HAVE_DECL_CEILL])
+  HAVE_DECL_COPYSIGNF=1;       AC_SUBST([HAVE_DECL_COPYSIGNF])
   HAVE_DECL_COSL=1;            AC_SUBST([HAVE_DECL_COSL])
   HAVE_DECL_EXPL=1;            AC_SUBST([HAVE_DECL_EXPL])
+  HAVE_DECL_EXP2=1;            AC_SUBST([HAVE_DECL_EXP2])
+  HAVE_DECL_EXP2F=1;           AC_SUBST([HAVE_DECL_EXP2F])
+  HAVE_DECL_EXP2L=1;           AC_SUBST([HAVE_DECL_EXP2L])
+  HAVE_DECL_EXPM1L=1;          AC_SUBST([HAVE_DECL_EXPM1L])
   HAVE_DECL_FLOORF=1;          AC_SUBST([HAVE_DECL_FLOORF])
   HAVE_DECL_FLOORL=1;          AC_SUBST([HAVE_DECL_FLOORL])
   HAVE_DECL_FREXPL=1;          AC_SUBST([HAVE_DECL_FREXPL])
   HAVE_DECL_LDEXPL=1;          AC_SUBST([HAVE_DECL_LDEXPL])
-  HAVE_DECL_LOGB=1;            AC_SUBST([HAVE_DECL_LOGB])
   HAVE_DECL_LOGL=1;            AC_SUBST([HAVE_DECL_LOGL])
+  HAVE_DECL_LOG10L=1;          AC_SUBST([HAVE_DECL_LOG10L])
+  HAVE_DECL_LOG2=1;            AC_SUBST([HAVE_DECL_LOG2])
+  HAVE_DECL_LOG2F=1;           AC_SUBST([HAVE_DECL_LOG2F])
+  HAVE_DECL_LOG2L=1;           AC_SUBST([HAVE_DECL_LOG2L])
+  HAVE_DECL_LOGB=1;            AC_SUBST([HAVE_DECL_LOGB])
+  HAVE_DECL_REMAINDER=1;       AC_SUBST([HAVE_DECL_REMAINDER])
+  HAVE_DECL_REMAINDERL=1;      AC_SUBST([HAVE_DECL_REMAINDERL])
+  HAVE_DECL_RINTF=1;           AC_SUBST([HAVE_DECL_RINTF])
   HAVE_DECL_ROUND=1;           AC_SUBST([HAVE_DECL_ROUND])
   HAVE_DECL_ROUNDF=1;          AC_SUBST([HAVE_DECL_ROUNDF])
   HAVE_DECL_ROUNDL=1;          AC_SUBST([HAVE_DECL_ROUNDL])
@@ -119,22 +256,98 @@ AC_DEFUN([gl_MATH_H_DEFAULTS],
   HAVE_DECL_TRUNC=1;           AC_SUBST([HAVE_DECL_TRUNC])
   HAVE_DECL_TRUNCF=1;          AC_SUBST([HAVE_DECL_TRUNCF])
   HAVE_DECL_TRUNCL=1;          AC_SUBST([HAVE_DECL_TRUNCL])
+  REPLACE_CBRTF=0;             AC_SUBST([REPLACE_CBRTF])
+  REPLACE_CBRTL=0;             AC_SUBST([REPLACE_CBRTL])
+  REPLACE_CEIL=0;              AC_SUBST([REPLACE_CEIL])
   REPLACE_CEILF=0;             AC_SUBST([REPLACE_CEILF])
   REPLACE_CEILL=0;             AC_SUBST([REPLACE_CEILL])
+  REPLACE_EXPM1=0;             AC_SUBST([REPLACE_EXPM1])
+  REPLACE_EXPM1F=0;            AC_SUBST([REPLACE_EXPM1F])
+  REPLACE_EXP2=0;              AC_SUBST([REPLACE_EXP2])
+  REPLACE_EXP2L=0;             AC_SUBST([REPLACE_EXP2L])
+  REPLACE_FABSL=0;             AC_SUBST([REPLACE_FABSL])
+  REPLACE_FLOOR=0;             AC_SUBST([REPLACE_FLOOR])
   REPLACE_FLOORF=0;            AC_SUBST([REPLACE_FLOORF])
   REPLACE_FLOORL=0;            AC_SUBST([REPLACE_FLOORL])
+  REPLACE_FMA=0;               AC_SUBST([REPLACE_FMA])
+  REPLACE_FMAF=0;              AC_SUBST([REPLACE_FMAF])
+  REPLACE_FMAL=0;              AC_SUBST([REPLACE_FMAL])
+  REPLACE_FMOD=0;              AC_SUBST([REPLACE_FMOD])
+  REPLACE_FMODF=0;             AC_SUBST([REPLACE_FMODF])
+  REPLACE_FMODL=0;             AC_SUBST([REPLACE_FMODL])
+  REPLACE_FREXPF=0;            AC_SUBST([REPLACE_FREXPF])
   REPLACE_FREXP=0;             AC_SUBST([REPLACE_FREXP])
   REPLACE_FREXPL=0;            AC_SUBST([REPLACE_FREXPL])
   REPLACE_HUGE_VAL=0;          AC_SUBST([REPLACE_HUGE_VAL])
+  REPLACE_HYPOT=0;             AC_SUBST([REPLACE_HYPOT])
+  REPLACE_HYPOTF=0;            AC_SUBST([REPLACE_HYPOTF])
+  REPLACE_HYPOTL=0;            AC_SUBST([REPLACE_HYPOTL])
+  REPLACE_ILOGB=0;             AC_SUBST([REPLACE_ILOGB])
+  REPLACE_ILOGBF=0;            AC_SUBST([REPLACE_ILOGBF])
   REPLACE_ISFINITE=0;          AC_SUBST([REPLACE_ISFINITE])
   REPLACE_ISINF=0;             AC_SUBST([REPLACE_ISINF])
   REPLACE_ISNAN=0;             AC_SUBST([REPLACE_ISNAN])
   REPLACE_LDEXPL=0;            AC_SUBST([REPLACE_LDEXPL])
+  REPLACE_LOG=0;               AC_SUBST([REPLACE_LOG])
+  REPLACE_LOGF=0;              AC_SUBST([REPLACE_LOGF])
+  REPLACE_LOGL=0;              AC_SUBST([REPLACE_LOGL])
+  REPLACE_LOG10=0;             AC_SUBST([REPLACE_LOG10])
+  REPLACE_LOG10F=0;            AC_SUBST([REPLACE_LOG10F])
+  REPLACE_LOG10L=0;            AC_SUBST([REPLACE_LOG10L])
+  REPLACE_LOG1P=0;             AC_SUBST([REPLACE_LOG1P])
+  REPLACE_LOG1PF=0;            AC_SUBST([REPLACE_LOG1PF])
+  REPLACE_LOG1PL=0;            AC_SUBST([REPLACE_LOG1PL])
+  REPLACE_LOG2=0;              AC_SUBST([REPLACE_LOG2])
+  REPLACE_LOG2F=0;             AC_SUBST([REPLACE_LOG2F])
+  REPLACE_LOG2L=0;             AC_SUBST([REPLACE_LOG2L])
+  REPLACE_LOGB=0;              AC_SUBST([REPLACE_LOGB])
+  REPLACE_LOGBF=0;             AC_SUBST([REPLACE_LOGBF])
+  REPLACE_LOGBL=0;             AC_SUBST([REPLACE_LOGBL])
+  REPLACE_MODF=0;              AC_SUBST([REPLACE_MODF])
+  REPLACE_MODFF=0;             AC_SUBST([REPLACE_MODFF])
+  REPLACE_MODFL=0;             AC_SUBST([REPLACE_MODFL])
   REPLACE_NAN=0;               AC_SUBST([REPLACE_NAN])
+  REPLACE_REMAINDER=0;         AC_SUBST([REPLACE_REMAINDER])
+  REPLACE_REMAINDERF=0;        AC_SUBST([REPLACE_REMAINDERF])
+  REPLACE_REMAINDERL=0;        AC_SUBST([REPLACE_REMAINDERL])
   REPLACE_ROUND=0;             AC_SUBST([REPLACE_ROUND])
   REPLACE_ROUNDF=0;            AC_SUBST([REPLACE_ROUNDF])
   REPLACE_ROUNDL=0;            AC_SUBST([REPLACE_ROUNDL])
   REPLACE_SIGNBIT=0;           AC_SUBST([REPLACE_SIGNBIT])
   REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC])
+  REPLACE_SQRTL=0;             AC_SUBST([REPLACE_SQRTL])
+  REPLACE_TRUNC=0;             AC_SUBST([REPLACE_TRUNC])
+  REPLACE_TRUNCF=0;            AC_SUBST([REPLACE_TRUNCF])
   REPLACE_TRUNCL=0;            AC_SUBST([REPLACE_TRUNCL])
 ])
+
+# gl_LONG_DOUBLE_VS_DOUBLE
+# determines whether 'long double' and 'double' have the same representation.
+# Sets variable HAVE_SAME_LONG_DOUBLE_AS_DOUBLE to 0 or 1, and defines
+# HAVE_SAME_LONG_DOUBLE_AS_DOUBLE accordingly.
+# The currently known platforms where this is the case are:
+# Linux/HPPA, Minix 3.1.8, AIX 5, AIX 6 and 7 with xlc, MSVC 9.
+AC_DEFUN([gl_LONG_DOUBLE_VS_DOUBLE],
+[
+  AC_CACHE_CHECK([whether long double and double are the same],
+    [gl_cv_long_double_equals_double],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM([[#include <float.h>]],
+          [[typedef int check[sizeof (long double) == sizeof (double)
+                              && LDBL_MANT_DIG == DBL_MANT_DIG
+                              && LDBL_MAX_EXP == DBL_MAX_EXP
+                              && LDBL_MIN_EXP == DBL_MIN_EXP
+                              ? 1 : -1];
+          ]])],
+       [gl_cv_long_double_equals_double=yes],
+       [gl_cv_long_double_equals_double=no])
+    ])
+  if test $gl_cv_long_double_equals_double = yes; then
+    AC_DEFINE([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE], [1],
+      [Define to 1 if 'long double' and 'double' have the same representation.])
+    HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=1
+  else
+    HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=0
+  fi
+  AC_SUBST([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE])
+])
index 116ce7e..e250ca8 100644 (file)
@@ -1,5 +1,5 @@
-# mbchar.m4 serial 8
-dnl Copyright (C) 2005-2007, 2009-2010 Free Software Foundation, Inc.
+# mbchar.m4 serial 9
+dnl Copyright (C) 2005-2007, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,5 +10,4 @@ dnl From Bruno Haible.
 AC_DEFUN([gl_MBCHAR],
 [
   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
-  AC_REQUIRE([AC_C_INLINE])
 ])
index 3481050..648bf45 100644 (file)
@@ -1,5 +1,5 @@
-# mbiter.m4 serial 5
-dnl Copyright (C) 2005, 2008, 2009, 2010 Free Software Foundation, Inc.
+# mbiter.m4 serial 7
+dnl Copyright (C) 2005, 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,10 +9,6 @@ dnl From Bruno Haible.
 
 AC_DEFUN([gl_MBITER],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([AC_TYPE_MBSTATE_T])
-  dnl The following line is that so the user can test HAVE_MBRTOWC before
-  dnl #include "mbiter.h" or "mbuiter.h". It can be removed in 2010.
-  AC_REQUIRE([AC_FUNC_MBRTOWC])
   :
 ])
index 606de5c..45696f5 100644 (file)
@@ -1,5 +1,5 @@
-# mbrtowc.m4 serial 17
-dnl Copyright (C) 2001-2002, 2004-2005, 2008-2010 Free Software Foundation,
+# mbrtowc.m4 serial 26
+dnl Copyright (C) 2001-2002, 2004-2005, 2008-2014 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -15,16 +15,41 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
   AC_CHECK_FUNCS_ONCE([mbrtowc])
   if test $ac_cv_func_mbrtowc = no; then
     HAVE_MBRTOWC=0
+    AC_CHECK_DECLS([mbrtowc],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+    if test $ac_cv_have_decl_mbrtowc = yes; then
+      dnl On Minix 3.1.8, the system's <wchar.h> declares mbrtowc() although
+      dnl it does not have the function. Avoid a collision with gnulib's
+      dnl replacement.
+      REPLACE_MBRTOWC=1
+    fi
   else
     if test $REPLACE_MBSTATE_T = 1; then
       REPLACE_MBRTOWC=1
     else
-      gl_MBRTOWC_NULL_ARG
+      gl_MBRTOWC_NULL_ARG1
+      gl_MBRTOWC_NULL_ARG2
       gl_MBRTOWC_RETVAL
       gl_MBRTOWC_NUL_RETVAL
-      case "$gl_cv_func_mbrtowc_null_arg" in
+      gl_MBRTOWC_EMPTY_INPUT
+      case "$gl_cv_func_mbrtowc_null_arg1" in
+        *yes) ;;
+        *) AC_DEFINE([MBRTOWC_NULL_ARG1_BUG], [1],
+             [Define if the mbrtowc function has the NULL pwc argument bug.])
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case "$gl_cv_func_mbrtowc_null_arg2" in
         *yes) ;;
-        *) AC_DEFINE([MBRTOWC_NULL_ARG_BUG], [1],
+        *) AC_DEFINE([MBRTOWC_NULL_ARG2_BUG], [1],
              [Define if the mbrtowc function has the NULL string argument bug.])
            REPLACE_MBRTOWC=1
            ;;
@@ -43,13 +68,16 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
            REPLACE_MBRTOWC=1
            ;;
       esac
+      case "$gl_cv_func_mbrtowc_empty_input" in
+        *yes) ;;
+        *) AC_DEFINE([MBRTOWC_EMPTY_INPUT_BUG], [1],
+             [Define if the mbrtowc function does not return (size_t) -2
+              for empty input.])
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
     fi
   fi
-  if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
-    gl_REPLACE_WCHAR_H
-    AC_LIBOBJ([mbrtowc])
-    gl_PREREQ_MBRTOWC
-  fi
 ])
 
 dnl Test whether mbsinit() and mbrtowc() need to be overridden in a way that
@@ -80,9 +108,6 @@ AC_DEFUN([gl_MBSTATE_T_BROKEN],
   else
     REPLACE_MBSTATE_T=1
   fi
-  if test $REPLACE_MBSTATE_T = 1; then
-    gl_REPLACE_WCHAR_H
-  fi
 ])
 
 dnl Test whether mbrtowc puts the state into non-initial state when parsing an
@@ -101,16 +126,24 @@ AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE],
       dnl is present.
 changequote(,)dnl
       case "$host_os" in
-              # Guess no on AIX and OSF/1.
-        osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
-              # Guess yes otherwise.
-        *)    gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+                     # Guess no on AIX and OSF/1.
+        aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+                     # Guess yes otherwise.
+        *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
       esac
 changequote([,])dnl
       if test $LOCALE_JA != none; then
-        AC_TRY_RUN([
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
 #include <locale.h>
 #include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
 #include <wchar.h>
 int main ()
 {
@@ -126,7 +159,7 @@ int main ()
           return 1;
     }
   return 0;
-}],
+}]])],
           [gl_cv_func_mbrtowc_incomplete_state=yes],
           [gl_cv_func_mbrtowc_incomplete_state=no],
           [:])
@@ -156,10 +189,18 @@ changequote(,)dnl
       esac
 changequote([,])dnl
       if test $LOCALE_ZH_CN != none; then
-        AC_TRY_RUN([
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
 #include <locale.h>
 #include <stdlib.h>
 #include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
 #include <wchar.h>
 int main ()
 {
@@ -178,7 +219,7 @@ int main ()
         return 1;
     }
   return 0;
-}],
+}]])],
           [gl_cv_func_mbrtowc_sanitycheck=yes],
           [gl_cv_func_mbrtowc_sanitycheck=no],
           [:])
@@ -186,31 +227,109 @@ int main ()
     ])
 ])
 
+dnl Test whether mbrtowc supports a NULL pwc argument correctly.
+dnl Result is gl_cv_func_mbrtowc_null_arg1.
+
+AC_DEFUN([gl_MBRTOWC_NULL_ARG1],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([gt_LOCALE_FR_UTF8])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CACHE_CHECK([whether mbrtowc handles a NULL pwc argument],
+    [gl_cv_func_mbrtowc_null_arg1],
+    [
+      dnl Initial guess, used when cross-compiling or when no suitable locale
+      dnl is present.
+changequote(,)dnl
+      case "$host_os" in
+                  # Guess no on Solaris.
+        solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;;
+                  # Guess yes otherwise.
+        *)        gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
+      esac
+changequote([,])dnl
+      if test $LOCALE_FR_UTF8 != none; then
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  int result = 0;
+
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      char input[] = "\303\237er";
+      mbstate_t state;
+      wchar_t wc;
+      size_t ret;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      wc = (wchar_t) 0xBADFACE;
+      ret = mbrtowc (&wc, input, 5, &state);
+      if (ret != 2)
+        result |= 1;
+      if (!mbsinit (&state))
+        result |= 2;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      ret = mbrtowc (NULL, input, 5, &state);
+      if (ret != 2) /* Solaris 7 fails here: ret is -1.  */
+        result |= 4;
+      if (!mbsinit (&state))
+        result |= 8;
+    }
+  return result;
+}]])],
+          [gl_cv_func_mbrtowc_null_arg1=yes],
+          [gl_cv_func_mbrtowc_null_arg1=no],
+          [:])
+      fi
+    ])
+])
+
 dnl Test whether mbrtowc supports a NULL string argument correctly.
-dnl Result is gl_cv_func_mbrtowc_null_arg.
+dnl Result is gl_cv_func_mbrtowc_null_arg2.
 
-AC_DEFUN([gl_MBRTOWC_NULL_ARG],
+AC_DEFUN([gl_MBRTOWC_NULL_ARG2],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([gt_LOCALE_FR_UTF8])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CACHE_CHECK([whether mbrtowc handles a NULL string argument],
-    [gl_cv_func_mbrtowc_null_arg],
+    [gl_cv_func_mbrtowc_null_arg2],
     [
       dnl Initial guess, used when cross-compiling or when no suitable locale
       dnl is present.
 changequote(,)dnl
       case "$host_os" in
               # Guess no on OSF/1.
-        osf*) gl_cv_func_mbrtowc_null_arg="guessing no" ;;
+        osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
               # Guess yes otherwise.
-        *)    gl_cv_func_mbrtowc_null_arg="guessing yes" ;;
+        *)    gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
       esac
 changequote([,])dnl
       if test $LOCALE_FR_UTF8 != none; then
-        AC_TRY_RUN([
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
 #include <locale.h>
 #include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
 #include <wchar.h>
 int main ()
 {
@@ -228,7 +347,10 @@ int main ()
         return 1;
     }
   return 0;
-}], [gl_cv_func_mbrtowc_null_arg=yes], [gl_cv_func_mbrtowc_null_arg=no], [:])
+}]])],
+          [gl_cv_func_mbrtowc_null_arg2=yes],
+          [gl_cv_func_mbrtowc_null_arg2=no],
+          [:])
       fi
     ])
 ])
@@ -243,7 +365,7 @@ AC_DEFUN([gl_MBRTOWC_RETVAL],
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([gt_LOCALE_FR_UTF8])
   AC_REQUIRE([gt_LOCALE_JA])
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([AC_CANONICAL_HOST])
   AC_CACHE_CHECK([whether mbrtowc has a correct return value],
     [gl_cv_func_mbrtowc_retval],
     [
@@ -251,19 +373,30 @@ AC_DEFUN([gl_MBRTOWC_RETVAL],
       dnl is present.
 changequote(,)dnl
       case "$host_os" in
-                          # Guess no on HP-UX and Solaris.
-        hpux* | solaris*) gl_cv_func_mbrtowc_retval="guessing no" ;;
-                          # Guess yes otherwise.
-        *)                gl_cv_func_mbrtowc_retval="guessing yes" ;;
+                                   # Guess no on HP-UX, Solaris, native Windows.
+        hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;;
+                                   # Guess yes otherwise.
+        *)                         gl_cv_func_mbrtowc_retval="guessing yes" ;;
       esac
 changequote([,])dnl
-      if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none; then
-        AC_TRY_RUN([
+      if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \
+         || { case "$host_os" in mingw*) true;; *) false;; esac; }; then
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
 #include <locale.h>
 #include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
 #include <wchar.h>
 int main ()
 {
+  int result = 0;
+  int found_some_locale = 0;
   /* This fails on Solaris.  */
   if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
     {
@@ -276,8 +409,9 @@ int main ()
         {
           input[1] = '\0';
           if (mbrtowc (&wc, input + 2, 5, &state) != 1)
-            return 1;
+            result |= 1;
         }
+      found_some_locale = 1;
     }
   /* This fails on HP-UX 11.11.  */
   if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
@@ -291,13 +425,63 @@ int main ()
         {
           input[1] = '\0';
           if (mbrtowc (&wc, input + 2, 5, &state) != 2)
-            return 1;
+            result |= 2;
         }
+      found_some_locale = 1;
     }
-  return 0;
-}],
+  /* This fails on native Windows.  */
+  if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
+    {
+      char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+        {
+          input[3] = '\0';
+          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+            result |= 4;
+        }
+      found_some_locale = 1;
+    }
+  if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
+    {
+      char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+        {
+          input[3] = '\0';
+          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+            result |= 8;
+        }
+      found_some_locale = 1;
+    }
+  if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
+    {
+      char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+        {
+          input[3] = '\0';
+          if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+            result |= 16;
+        }
+      found_some_locale = 1;
+    }
+  return (found_some_locale ? result : 77);
+}]])],
           [gl_cv_func_mbrtowc_retval=yes],
-          [gl_cv_func_mbrtowc_retval=no],
+          [if test $? != 77; then
+             gl_cv_func_mbrtowc_retval=no
+           fi
+          ],
           [:])
       fi
     ])
@@ -325,9 +509,17 @@ changequote(,)dnl
       esac
 changequote([,])dnl
       if test $LOCALE_ZH_CN != none; then
-        AC_TRY_RUN([
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
 #include <locale.h>
 #include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
 #include <wchar.h>
 int main ()
 {
@@ -342,7 +534,7 @@ int main ()
         return 1;
     }
   return 0;
-}],
+}]])],
           [gl_cv_func_mbrtowc_nul_retval=yes],
           [gl_cv_func_mbrtowc_nul_retval=no],
           [:])
@@ -350,6 +542,41 @@ int main ()
     ])
 ])
 
+dnl Test whether mbrtowc returns the correct value on empty input.
+
+AC_DEFUN([gl_MBRTOWC_EMPTY_INPUT],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CACHE_CHECK([whether mbrtowc works on empty input],
+    [gl_cv_func_mbrtowc_empty_input],
+    [
+      dnl Initial guess, used when cross-compiling or when no suitable locale
+      dnl is present.
+changequote(,)dnl
+      case "$host_os" in
+                     # Guess no on AIX and glibc systems.
+        aix* | *-gnu*)
+                    gl_cv_func_mbrtowc_empty_input="guessing no" ;;
+        *)          gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
+      esac
+changequote([,])dnl
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
+           #include <wchar.h>
+           static wchar_t wc;
+           static mbstate_t mbs;
+           int
+           main (void)
+           {
+             return mbrtowc (&wc, "", 0, &mbs) == (size_t) -2;
+           }]])],
+        [gl_cv_func_mbrtowc_empty_input=no],
+        [gl_cv_func_mbrtowc_empty_input=yes],
+        [:])
+    ])
+])
+
 # Prerequisites of lib/mbrtowc.c.
 AC_DEFUN([gl_PREREQ_MBRTOWC], [
   :
@@ -358,10 +585,8 @@ AC_DEFUN([gl_PREREQ_MBRTOWC], [
 
 dnl From Paul Eggert
 
-dnl This override of an autoconf macro can be removed when autoconf 2.60 or
-dnl newer can be assumed everywhere.
+dnl This is an override of an autoconf macro.
 
-m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.60]),[-1],[
 AC_DEFUN([AC_FUNC_MBRTOWC],
 [
   dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60.
@@ -369,7 +594,14 @@ AC_DEFUN([AC_FUNC_MBRTOWC],
     gl_cv_func_mbrtowc,
     [AC_LINK_IFELSE(
        [AC_LANG_PROGRAM(
-            [[#include <wchar.h>]],
+            [[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+                 included before <wchar.h>.
+                 BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+                 must be included before <wchar.h>.  */
+              #include <stddef.h>
+              #include <stdio.h>
+              #include <time.h>
+              #include <wchar.h>]],
             [[wchar_t wc;
               char const s[] = "";
               size_t n = 1;
@@ -382,4 +614,3 @@ AC_DEFUN([AC_FUNC_MBRTOWC],
       [Define to 1 if mbrtowc and mbstate_t are properly declared.])
   fi
 ])
-])
index 46c106f..e1598a1 100644 (file)
@@ -1,5 +1,5 @@
-# mbsinit.m4 serial 4
-dnl Copyright (C) 2008, 2010 Free Software Foundation, Inc.
+# mbsinit.m4 serial 8
+dnl Copyright (C) 2008, 2010-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,6 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_MBSINIT],
 [
   AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST])
 
   AC_REQUIRE([AC_TYPE_MBSTATE_T])
   gl_MBSTATE_T_BROKEN
@@ -14,16 +15,34 @@ AC_DEFUN([gl_FUNC_MBSINIT],
   AC_CHECK_FUNCS_ONCE([mbsinit])
   if test $ac_cv_func_mbsinit = no; then
     HAVE_MBSINIT=0
+    AC_CHECK_DECLS([mbsinit],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+    if test $ac_cv_have_decl_mbsinit = yes; then
+      dnl On Minix 3.1.8, the system's <wchar.h> declares mbsinit() although
+      dnl it does not have the function. Avoid a collision with gnulib's
+      dnl replacement.
+      REPLACE_MBSINIT=1
+    fi
   else
     if test $REPLACE_MBSTATE_T = 1; then
       REPLACE_MBSINIT=1
+    else
+      dnl On mingw, mbsinit() always returns 1, which is inappropriate for
+      dnl states produced by mbrtowc() for an incomplete multibyte character
+      dnl in multibyte locales.
+      case "$host_os" in
+        mingw*) REPLACE_MBSINIT=1 ;;
+      esac
     fi
   fi
-  if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
-    gl_REPLACE_WCHAR_H
-    AC_LIBOBJ([mbsinit])
-    gl_PREREQ_MBSINIT
-  fi
 ])
 
 # Prerequisites of lib/mbsinit.c.
index 3e2df29..068155a 100644 (file)
@@ -1,5 +1,5 @@
-# mbstate_t.m4 serial 12
-dnl Copyright (C) 2000-2002, 2008-2010 Free Software Foundation, Inc.
+# mbstate_t.m4 serial 13
+dnl Copyright (C) 2000-2002, 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -20,7 +20,14 @@ AC_DEFUN([AC_TYPE_MBSTATE_T],
      [AC_COMPILE_IFELSE(
         [AC_LANG_PROGRAM(
            [AC_INCLUDES_DEFAULT[
-#           include <wchar.h>]],
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>]],
            [[mbstate_t x; return sizeof x;]])],
         [ac_cv_type_mbstate_t=yes],
         [ac_cv_type_mbstate_t=no])])
diff --git a/gnulib-m4/mbtowc.m4 b/gnulib-m4/mbtowc.m4
new file mode 100644 (file)
index 0000000..cacfe16
--- /dev/null
@@ -0,0 +1,19 @@
+# mbtowc.m4 serial 2
+dnl Copyright (C) 2011-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_MBTOWC],
+[
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+
+  if false; then
+    REPLACE_MBTOWC=1
+  fi
+])
+
+# Prerequisites of lib/mbtowc.c.
+AC_DEFUN([gl_PREREQ_MBTOWC], [
+  :
+])
index ab773b8..b9f126c 100644 (file)
@@ -1,5 +1,5 @@
-# memchr.m4 serial 8
-dnl Copyright (C) 2002-2004, 2009-2010 Free Software Foundation, Inc.
+# memchr.m4 serial 12
+dnl Copyright (C) 2002-2004, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -11,10 +11,16 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
   AC_CHECK_HEADERS_ONCE([sys/mman.h])
   AC_CHECK_FUNCS_ONCE([mprotect])
 
-  dnl These days, we assume memchr is present.  But just in case...
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
-  AC_CHECK_FUNCS_ONCE([memchr])
-  if test $ac_cv_func_memchr = yes; then
+  m4_ifdef([gl_FUNC_MEMCHR_OBSOLETE], [
+    dnl These days, we assume memchr is present.  But if support for old
+    dnl platforms is desired:
+    AC_CHECK_FUNCS_ONCE([memchr])
+    if test $ac_cv_func_memchr = no; then
+      HAVE_MEMCHR=0
+    fi
+  ])
+  if test $HAVE_MEMCHR = 1; then
     # Detect platform-specific bugs in some versions of glibc:
     # memchr should not dereference anything with length 0
     #   http://bugzilla.redhat.com/499689
@@ -35,6 +41,7 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
 # endif
 #endif
 ]], [[
+  int result = 0;
   char *fence = NULL;
 #if HAVE_SYS_MMAN_H && HAVE_MPROTECT
 # if HAVE_MAP_ANONYMOUS
@@ -58,24 +65,20 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
   if (fence)
     {
       if (memchr (fence, 0, 0))
-        return 1;
+        result |= 1;
       strcpy (fence - 9, "12345678");
       if (memchr (fence - 9, 0, 79) != fence - 1)
-        return 2;
+        result |= 2;
+      if (memchr (fence - 1, 0, 3) != fence - 1)
+        result |= 4;
     }
-  return 0;
+  return result;
 ]])], [gl_cv_func_memchr_works=yes], [gl_cv_func_memchr_works=no],
       [dnl Be pessimistic for now.
        gl_cv_func_memchr_works="guessing no"])])
     if test "$gl_cv_func_memchr_works" != yes; then
       REPLACE_MEMCHR=1
     fi
-  else
-    HAVE_MEMCHR=0
-  fi
-  if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
-    AC_LIBOBJ([memchr])
-    gl_PREREQ_MEMCHR
   fi
 ])
 
index d9e9cec..edbeb43 100644 (file)
@@ -1,10 +1,10 @@
-# minmax.m4 serial 3
-dnl Copyright (C) 2005, 2009, 2010 Free Software Foundation, Inc.
+# minmax.m4 serial 4
+dnl Copyright (C) 2005, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-AC_PREREQ([2.52])
+AC_PREREQ([2.53])
 
 AC_DEFUN([gl_MINMAX],
 [
@@ -28,8 +28,11 @@ AC_DEFUN([gl_MINMAX_IN_HEADER],
   m4_pushdef([HEADER], AS_TR_CPP([$1]))
   AC_CACHE_CHECK([whether <$1> defines MIN and MAX],
     [gl_cv_minmax_in_]header,
-    [AC_TRY_COMPILE([#include <$1>
-int x = MIN (42, 17);], [],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <$1>
+            int x = MIN (42, 17);]],
+          [[]])],
        [gl_cv_minmax_in_]header[=yes],
        [gl_cv_minmax_in_]header[=no])])
   if test $gl_cv_minmax_in_[]header = yes; then
index a6b7b9a..94ae2e2 100644 (file)
@@ -1,5 +1,5 @@
-# mmap-anon.m4 serial 8
-dnl Copyright (C) 2005, 2007, 2009-2010 Free Software Foundation, Inc.
+# mmap-anon.m4 serial 10
+dnl Copyright (C) 2005, 2007, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,16 +9,12 @@ dnl with or without modifications, as long as this notice is preserved.
 # - On Linux, AIX, OSF/1, Solaris, Cygwin, Interix, Haiku, both MAP_ANONYMOUS
 #   and MAP_ANON exist and have the same value.
 # - On HP-UX, only MAP_ANONYMOUS exists.
-# - On MacOS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists.
+# - On Mac OS X, FreeBSD, NetBSD, OpenBSD, only MAP_ANON exists.
 # - On IRIX, neither exists, and a file descriptor opened to /dev/zero must be
 #   used.
 
 AC_DEFUN([gl_FUNC_MMAP_ANON],
 [
-  dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
-  AC_REQUIRE([AC_PROG_CPP])
-  AC_REQUIRE([AC_PROG_EGREP])
-
   dnl Persuade glibc <sys/mman.h> to define MAP_ANONYMOUS.
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
 
@@ -31,18 +27,18 @@ AC_DEFUN([gl_FUNC_MMAP_ANON],
   gl_have_mmap_anonymous=no
   if test $gl_have_mmap = yes; then
     AC_MSG_CHECKING([for MAP_ANONYMOUS])
-    AC_EGREP_CPP([I cant identify this map.], [
+    AC_EGREP_CPP([I cannot identify this map], [
 #include <sys/mman.h>
 #ifdef MAP_ANONYMOUS
-    I cant identify this map.
+    I cannot identify this map
 #endif
 ],
       [gl_have_mmap_anonymous=yes])
     if test $gl_have_mmap_anonymous != yes; then
-      AC_EGREP_CPP([I cant identify this map.], [
+      AC_EGREP_CPP([I cannot identify this map], [
 #include <sys/mman.h>
 #ifdef MAP_ANON
-    I cant identify this map.
+    I cannot identify this map
 #endif
 ],
         [AC_DEFINE([MAP_ANONYMOUS], [MAP_ANON],
diff --git a/gnulib-m4/msvc-inval.m4 b/gnulib-m4/msvc-inval.m4
new file mode 100644 (file)
index 0000000..7f26087
--- /dev/null
@@ -0,0 +1,19 @@
+# msvc-inval.m4 serial 1
+dnl Copyright (C) 2011-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_MSVC_INVAL],
+[
+  AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler])
+  if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+    AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1],
+      [Define to 1 on MSVC platforms that have the "invalid parameter handler"
+       concept.])
+  else
+    HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+  fi
+  AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+])
diff --git a/gnulib-m4/msvc-nothrow.m4 b/gnulib-m4/msvc-nothrow.m4
new file mode 100644 (file)
index 0000000..9e32c17
--- /dev/null
@@ -0,0 +1,10 @@
+# msvc-nothrow.m4 serial 1
+dnl Copyright (C) 2011-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_MSVC_NOTHROW],
+[
+  AC_REQUIRE([gl_MSVC_INVAL])
+])
index 389bd2b..2cb956d 100644 (file)
@@ -1,12 +1,12 @@
-# multiarch.m4 serial 5
-dnl Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+# multiarch.m4 serial 7
+dnl Copyright (C) 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 # Determine whether the compiler is or may be producing universal binaries.
 #
-# On MacOS X 10.5 and later systems, the user can create libraries and
+# On Mac OS X 10.5 and later systems, the user can create libraries and
 # executables that work on multiple system types--known as "fat" or
 # "universal" binaries--by specifying multiple '-arch' options to the
 # compiler but only a single '-arch' option to the preprocessor.  Like
@@ -16,8 +16,7 @@ dnl with or without modifications, as long as this notice is preserved.
 #                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
 #                 CPP="gcc -E" CXXCPP="g++ -E"
 #
-# Detect this situation and set the macro AA_APPLE_UNIVERSAL_BUILD at the
-# beginning of config.h and set APPLE_UNIVERSAL_BUILD accordingly.
+# Detect this situation and set APPLE_UNIVERSAL_BUILD accordingly.
 
 AC_DEFUN_ONCE([gl_MULTIARCH],
 [
@@ -55,8 +54,6 @@ AC_DEFUN_ONCE([gl_MULTIARCH],
      done
     ])
   if test $gl_cv_c_multiarch = yes; then
-    AC_DEFINE([AA_APPLE_UNIVERSAL_BUILD], [1],
-      [Define if the compiler is building for multiple architectures of Apple platforms at once.])
     APPLE_UNIVERSAL_BUILD=1
   else
     APPLE_UNIVERSAL_BUILD=0
index efbcfa6..5a5d77d 100644 (file)
@@ -1,5 +1,5 @@
-# nocrash.m4 serial 2
-dnl Copyright (C) 2005, 2009, 2010 Free Software Foundation, Inc.
+# nocrash.m4 serial 4
+dnl Copyright (C) 2005, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -18,7 +18,7 @@ dnl          int main() { nocrash_init(); ... }
 AC_DEFUN([GL_NOCRASH],[[
 #include <stdlib.h>
 #if defined __MACH__ && defined __APPLE__
-/* Avoid a crash on MacOS X.  */
+/* Avoid a crash on Mac OS X.  */
 #include <mach/mach.h>
 #include <mach/mach_error.h>
 #include <mach/thread_status.h>
@@ -79,6 +79,34 @@ nocrash_init (void)
     }
   }
 }
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows.  */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+  switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+    {
+    case EXCEPTION_ACCESS_VIOLATION:
+    case EXCEPTION_IN_PAGE_ERROR:
+    case EXCEPTION_STACK_OVERFLOW:
+    case EXCEPTION_GUARD_PAGE:
+    case EXCEPTION_PRIV_INSTRUCTION:
+    case EXCEPTION_ILLEGAL_INSTRUCTION:
+    case EXCEPTION_DATATYPE_MISALIGNMENT:
+    case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+    case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+      exit (1);
+    }
+  return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+  SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
 #else
 /* Avoid a crash on POSIX systems.  */
 #include <signal.h>
diff --git a/gnulib-m4/off_t.m4 b/gnulib-m4/off_t.m4
new file mode 100644 (file)
index 0000000..f5885b3
--- /dev/null
@@ -0,0 +1,18 @@
+# off_t.m4 serial 1
+dnl Copyright (C) 2012-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Check whether to override the 'off_t' type.
+dnl Set WINDOWS_64_BIT_OFF_T.
+
+AC_DEFUN([gl_TYPE_OFF_T],
+[
+  m4_ifdef([gl_LARGEFILE], [
+    AC_REQUIRE([gl_LARGEFILE])
+  ], [
+    WINDOWS_64_BIT_OFF_T=0
+  ])
+  AC_SUBST([WINDOWS_64_BIT_OFF_T])
+])
index c42391a..88a4f5c 100644 (file)
@@ -1,5 +1,5 @@
-# printf-frexp.m4 serial 3
-dnl Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+# printf-frexp.m4 serial 5
+dnl Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,16 +8,7 @@ dnl Check how to define printf_frexp() without linking with libm.
 
 AC_DEFUN([gl_FUNC_PRINTF_FREXP],
 [
-  AC_CACHE_CHECK([whether frexp can be used without linking with libm],
-    [gl_cv_func_frexp_no_libm],
-    [
-      AC_TRY_LINK([#include <math.h>
-                   double x;
-                   int y;],
-                  [return frexp (x, &y) < 1;],
-        [gl_cv_func_frexp_no_libm=yes],
-        [gl_cv_func_frexp_no_libm=no])
-    ])
+  AC_REQUIRE([gl_CHECK_FREXP_NO_LIBM])
   if test $gl_cv_func_frexp_no_libm = yes; then
     gl_FUNC_FREXP_WORKS
     case "$gl_cv_func_frexp_works" in
@@ -31,10 +22,12 @@ AC_DEFUN([gl_FUNC_PRINTF_FREXP],
   AC_CACHE_CHECK([whether ldexp can be used without linking with libm],
     [gl_cv_func_ldexp_no_libm],
     [
-      AC_TRY_LINK([#include <math.h>
-                   double x;
-                   int y;],
-                  [return ldexp (x, y) < 1;],
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <math.h>
+             double x;
+             int y;]],
+           [[return ldexp (x, y) < 1;]])],
         [gl_cv_func_ldexp_no_libm=yes],
         [gl_cv_func_ldexp_no_libm=no])
     ])
index 14ffe1f..ad0dfe6 100644 (file)
@@ -1,5 +1,5 @@
-# printf-frexpl.m4 serial 6
-dnl Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+# printf-frexpl.m4 serial 10
+dnl Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,17 +9,10 @@ dnl Check how to define printf_frexpl() without linking with libm.
 AC_DEFUN([gl_FUNC_PRINTF_FREXPL],
 [
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
+  AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
+
   dnl Subset of gl_FUNC_FREXPL_NO_LIBM.
-  AC_CACHE_CHECK([whether frexpl can be used without linking with libm],
-    [gl_cv_func_frexpl_no_libm],
-    [
-      AC_TRY_LINK([#include <math.h>
-                   long double x;
-                   int y;],
-                  [return frexpl (x, &y) < 1;],
-        [gl_cv_func_frexpl_no_libm=yes],
-        [gl_cv_func_frexpl_no_libm=no])
-    ])
+  gl_CHECK_FREXPL_NO_LIBM
   if test $gl_cv_func_frexpl_no_libm = yes; then
     gl_FUNC_FREXPL_WORKS
     case "$gl_cv_func_frexpl_works" in
@@ -35,20 +28,11 @@ AC_DEFUN([gl_FUNC_PRINTF_FREXPL],
     AC_DEFINE([HAVE_FREXPL_IN_LIBC], [1],
       [Define if the frexpl function is available in libc.])
     dnl Also check whether it's declared.
-    dnl MacOS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
-    AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [#include <math.h>])
+    dnl Mac OS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
+    AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [[#include <math.h>]])
   fi
 
-  AC_CACHE_CHECK([whether ldexpl can be used without linking with libm],
-    [gl_cv_func_ldexpl_no_libm],
-    [
-      AC_TRY_LINK([#include <math.h>
-                   long double x;
-                   int y;],
-                  [return ldexpl (x, y) < 1;],
-        [gl_cv_func_ldexpl_no_libm=yes],
-        [gl_cv_func_ldexpl_no_libm=no])
-    ])
+  gl_CHECK_LDEXPL_NO_LIBM
   if test $gl_cv_func_ldexpl_no_libm = yes; then
     gl_FUNC_LDEXPL_WORKS
     case "$gl_cv_func_ldexpl_works" in
@@ -56,8 +40,8 @@ AC_DEFUN([gl_FUNC_PRINTF_FREXPL],
         AC_DEFINE([HAVE_LDEXPL_IN_LIBC], [1],
           [Define if the ldexpl function is available in libc.])
         dnl Also check whether it's declared.
-        dnl MacOS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>.
-        AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [#include <math.h>])
+        dnl Mac OS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>.
+        AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [[#include <math.h>]])
         ;;
     esac
   fi
index ebca536..3d7b381 100644 (file)
@@ -1,5 +1,5 @@
-# printf.m4 serial 33
-dnl Copyright (C) 2003, 2007-2010 Free Software Foundation, Inc.
+# printf.m4 serial 51
+dnl Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -17,7 +17,8 @@ AC_DEFUN([gl_PRINTF_SIZES_C99],
   AC_CACHE_CHECK([whether printf supports size specifiers as in C99],
     [gl_cv_func_printf_sizes_c99],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stddef.h>
 #include <stdio.h>
 #include <string.h>
@@ -31,53 +32,56 @@ AC_DEFUN([gl_PRINTF_SIZES_C99],
 static char buf[100];
 int main ()
 {
+  int result = 0;
 #if HAVE_STDINT_H_WITH_UINTMAX || HAVE_INTTYPES_H_WITH_UINTMAX
   buf[0] = '\0';
   if (sprintf (buf, "%ju %d", (uintmax_t) 12345671, 33, 44, 55) < 0
       || strcmp (buf, "12345671 33") != 0)
-    return 1;
+    result |= 1;
 #endif
   buf[0] = '\0';
   if (sprintf (buf, "%zu %d", (size_t) 12345672, 33, 44, 55) < 0
       || strcmp (buf, "12345672 33") != 0)
-    return 1;
+    result |= 2;
   buf[0] = '\0';
   if (sprintf (buf, "%tu %d", (ptrdiff_t) 12345673, 33, 44, 55) < 0
       || strcmp (buf, "12345673 33") != 0)
-    return 1;
+    result |= 4;
   buf[0] = '\0';
   if (sprintf (buf, "%Lg %d", (long double) 1.5, 33, 44, 55) < 0
       || strcmp (buf, "1.5 33") != 0)
-    return 1;
-  return 0;
-}], [gl_cv_func_printf_sizes_c99=yes], [gl_cv_func_printf_sizes_c99=no],
-      [
+    result |= 8;
+  return result;
+}]])],
+        [gl_cv_func_printf_sizes_c99=yes],
+        [gl_cv_func_printf_sizes_c99=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_printf_sizes_c99="guessing yes";;
-                               # Guess yes on FreeBSD >= 5.
-         freebsd[1-4]*)        gl_cv_func_printf_sizes_c99="guessing no";;
-         freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
-                               # Guess yes on MacOS X >= 10.3.
-         darwin[1-6].*)        gl_cv_func_printf_sizes_c99="guessing no";;
-         darwin*)              gl_cv_func_printf_sizes_c99="guessing yes";;
-                               # Guess yes on OpenBSD >= 3.9.
-         openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
-                               gl_cv_func_printf_sizes_c99="guessing no";;
-         openbsd*)             gl_cv_func_printf_sizes_c99="guessing yes";;
-                               # Guess yes on Solaris >= 2.10.
-         solaris2.[0-9]*)      gl_cv_func_printf_sizes_c99="guessing no";;
-         solaris*)             gl_cv_func_printf_sizes_c99="guessing yes";;
-                               # Guess yes on NetBSD >= 3.
-         netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                               gl_cv_func_printf_sizes_c99="guessing no";;
-         netbsd*)              gl_cv_func_printf_sizes_c99="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_printf_sizes_c99="guessing no";;
-       esac
+         case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu*)               gl_cv_func_printf_sizes_c99="guessing yes";;
+                                 # Guess yes on FreeBSD >= 5.
+           freebsd[1-4].*)       gl_cv_func_printf_sizes_c99="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_printf_sizes_c99="guessing no";;
+           darwin*)              gl_cv_func_printf_sizes_c99="guessing yes";;
+                                 # Guess yes on OpenBSD >= 3.9.
+           openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+                                 gl_cv_func_printf_sizes_c99="guessing no";;
+           openbsd*)             gl_cv_func_printf_sizes_c99="guessing yes";;
+                                 # Guess yes on Solaris >= 2.10.
+           solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+           solaris*)             gl_cv_func_printf_sizes_c99="guessing no";;
+                                 # Guess yes on NetBSD >= 3.
+           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+                                 gl_cv_func_printf_sizes_c99="guessing no";;
+           netbsd*)              gl_cv_func_printf_sizes_c99="guessing yes";;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_printf_sizes_c99="guessing no";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -92,35 +96,39 @@ AC_DEFUN([gl_PRINTF_LONG_DOUBLE],
   AC_CACHE_CHECK([whether printf supports 'long double' arguments],
     [gl_cv_func_printf_long_double],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
 static char buf[10000];
 int main ()
 {
+  int result = 0;
   buf[0] = '\0';
   if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0
       || strcmp (buf, "1.750000 33") != 0)
-    return 1;
+    result |= 1;
   buf[0] = '\0';
   if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0
       || strcmp (buf, "1.750000e+00 33") != 0)
-    return 1;
+    result |= 2;
   buf[0] = '\0';
   if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0
       || strcmp (buf, "1.75 33") != 0)
-    return 1;
-  return 0;
-}], [gl_cv_func_printf_long_double=yes], [gl_cv_func_printf_long_double=no],
-      [
+    result |= 4;
+  return result;
+}]])],
+        [gl_cv_func_printf_long_double=yes],
+        [gl_cv_func_printf_long_double=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-         beos*)        gl_cv_func_printf_long_double="guessing no";;
-         mingw* | pw*) gl_cv_func_printf_long_double="guessing no";;
-         *)            gl_cv_func_printf_long_double="guessing yes";;
-       esac
+         case "$host_os" in
+           beos*)        gl_cv_func_printf_long_double="guessing no";;
+           mingw* | pw*) gl_cv_func_printf_long_double="guessing no";;
+           *)            gl_cv_func_printf_long_double="guessing yes";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -136,7 +144,8 @@ AC_DEFUN([gl_PRINTF_INFINITE],
   AC_CACHE_CHECK([whether printf supports infinite 'double' arguments],
     [gl_cv_func_printf_infinite],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
 static int
@@ -168,65 +177,68 @@ static char buf[10000];
 static double zero = 0.0;
 int main ()
 {
-  if (sprintf (buf, "%f", 1.0 / 0.0) < 0
+  int result = 0;
+  if (sprintf (buf, "%f", 1.0 / zero) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%f", -1.0 / 0.0) < 0
+    result |= 1;
+  if (sprintf (buf, "%f", -1.0 / zero) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%f", zero / zero) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
-  if (sprintf (buf, "%e", 1.0 / 0.0) < 0
+    result |= 2;
+  if (sprintf (buf, "%e", 1.0 / zero) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%e", -1.0 / 0.0) < 0
+    result |= 4;
+  if (sprintf (buf, "%e", -1.0 / zero) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 4;
   if (sprintf (buf, "%e", zero / zero) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
-  if (sprintf (buf, "%g", 1.0 / 0.0) < 0
+    result |= 8;
+  if (sprintf (buf, "%g", 1.0 / zero) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%g", -1.0 / 0.0) < 0
+    result |= 16;
+  if (sprintf (buf, "%g", -1.0 / zero) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 16;
   if (sprintf (buf, "%g", zero / zero) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
+    result |= 32;
   /* This test fails on HP-UX 10.20.  */
   if (have_minus_zero ())
     if (sprintf (buf, "%g", - zero) < 0
         || strcmp (buf, "-0") != 0)
-    return 1;
-  return 0;
-}], [gl_cv_func_printf_infinite=yes], [gl_cv_func_printf_infinite=no],
-      [
+    result |= 64;
+  return result;
+}]])],
+        [gl_cv_func_printf_infinite=yes],
+        [gl_cv_func_printf_infinite=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_printf_infinite="guessing yes";;
-                               # Guess yes on FreeBSD >= 6.
-         freebsd[1-5]*)        gl_cv_func_printf_infinite="guessing no";;
-         freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
-                               # Guess yes on MacOS X >= 10.3.
-         darwin[1-6].*)        gl_cv_func_printf_infinite="guessing no";;
-         darwin*)              gl_cv_func_printf_infinite="guessing yes";;
-                               # Guess yes on HP-UX >= 11.
-         hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";;
-         hpux*)                gl_cv_func_printf_infinite="guessing yes";;
-                               # Guess yes on NetBSD >= 3.
-         netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                               gl_cv_func_printf_infinite="guessing no";;
-         netbsd*)              gl_cv_func_printf_infinite="guessing yes";;
-                               # Guess yes on BeOS.
-         beos*)                gl_cv_func_printf_infinite="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_printf_infinite="guessing no";;
-       esac
+         case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu*)               gl_cv_func_printf_infinite="guessing yes";;
+                                 # Guess yes on FreeBSD >= 6.
+           freebsd[1-5].*)       gl_cv_func_printf_infinite="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_printf_infinite="guessing no";;
+           darwin*)              gl_cv_func_printf_infinite="guessing yes";;
+                                 # Guess yes on HP-UX >= 11.
+           hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";;
+           hpux*)                gl_cv_func_printf_infinite="guessing yes";;
+                                 # Guess yes on NetBSD >= 3.
+           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+                                 gl_cv_func_printf_infinite="guessing no";;
+           netbsd*)              gl_cv_func_printf_infinite="guessing yes";;
+                                 # Guess yes on BeOS.
+           beos*)                gl_cv_func_printf_infinite="guessing yes";;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_printf_infinite="guessing no";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -239,6 +251,7 @@ AC_DEFUN([gl_PRINTF_INFINITE_LONG_DOUBLE],
   AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([gl_BIGENDIAN])
+  AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   dnl The user can set or unset the variable gl_printf_safe to indicate
   dnl that he wishes a safe handling of non-IEEE-754 'long double' values.
@@ -252,7 +265,8 @@ AC_DEFUN([gl_PRINTF_INFINITE_LONG_DOUBLE],
       AC_CACHE_CHECK([whether printf supports infinite 'long double' arguments],
         [gl_cv_func_printf_infinite_long_double],
         [
-          AC_TRY_RUN([
+          AC_RUN_IFELSE(
+            [AC_LANG_SOURCE([[
 ]GL_NOCRASH[
 #include <float.h>
 #include <stdio.h>
@@ -279,35 +293,36 @@ static char buf[10000];
 static long double zeroL = 0.0L;
 int main ()
 {
+  int result = 0;
   nocrash_init();
-  if (sprintf (buf, "%Lf", 1.0L / 0.0L) < 0
+  if (sprintf (buf, "%Lf", 1.0L / zeroL) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%Lf", -1.0L / 0.0L) < 0
+    result |= 1;
+  if (sprintf (buf, "%Lf", -1.0L / zeroL) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%Lf", zeroL / zeroL) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
-  if (sprintf (buf, "%Le", 1.0L / 0.0L) < 0
+    result |= 1;
+  if (sprintf (buf, "%Le", 1.0L / zeroL) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%Le", -1.0L / 0.0L) < 0
+    result |= 1;
+  if (sprintf (buf, "%Le", -1.0L / zeroL) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%Le", zeroL / zeroL) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
-  if (sprintf (buf, "%Lg", 1.0L / 0.0L) < 0
+    result |= 1;
+  if (sprintf (buf, "%Lg", 1.0L / zeroL) < 0
       || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
-    return 1;
-  if (sprintf (buf, "%Lg", -1.0L / 0.0L) < 0
+    result |= 1;
+  if (sprintf (buf, "%Lg", -1.0L / zeroL) < 0
       || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%Lg", zeroL / zeroL) < 0
       || !strisnan (buf, 0, strlen (buf)))
-    return 1;
-#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
+    result |= 1;
+#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
 /* Representation of an 80-bit 'long double' as an initializer for a sequence
    of 'unsigned int' words.  */
 # ifdef WORDS_BIGENDIAN
@@ -325,13 +340,13 @@ int main ()
       { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
   }
   {
     /* Signalling NaN.  */
@@ -339,113 +354,106 @@ int main ()
       { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 2;
   }
   { /* Pseudo-NaN.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 4;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 4;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 4;
   }
   { /* Pseudo-Infinity.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 8;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 8;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 8;
   }
   { /* Pseudo-Zero.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 16;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 16;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 16;
   }
   { /* Unnormalized number.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 32;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 32;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 32;
   }
   { /* Pseudo-Denormal.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
     if (sprintf (buf, "%Lf", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 64;
     if (sprintf (buf, "%Le", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 64;
     if (sprintf (buf, "%Lg", x.value) < 0
         || !strisnan (buf, 0, strlen (buf)))
-      return 1;
+      result |= 64;
   }
 #endif
-  return 0;
-}],
-          [gl_cv_func_printf_infinite_long_double=yes],
-          [gl_cv_func_printf_infinite_long_double=no],
-          [
+  return result;
+}]])],
+            [gl_cv_func_printf_infinite_long_double=yes],
+            [gl_cv_func_printf_infinite_long_double=no],
+            [
 changequote(,)dnl
-           case "$host_cpu" in
-                                   # Guess no on ia64, x86_64, i386.
-             ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";;
-             *)
-               case "$host_os" in
-                                       # Guess yes on glibc systems.
-                 *-gnu*)               gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                       # Guess yes on FreeBSD >= 6.
-                 freebsd[1-5]*)        gl_cv_func_printf_infinite_long_double="guessing no";;
-                 freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                       # Guess yes on MacOS X >= 10.3.
-                 darwin[1-6].*)        gl_cv_func_printf_infinite_long_double="guessing no";;
-                 darwin*)              gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                       # Guess yes on HP-UX >= 11.
-                 hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
-                 hpux*)                gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                       # Guess yes on NetBSD >= 3.
-                 netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                                       gl_cv_func_printf_infinite_long_double="guessing no";;
-                 netbsd*)              gl_cv_func_printf_infinite_long_double="guessing yes";;
-                                       # If we don't know, assume the worst.
-                 *)                    gl_cv_func_printf_infinite_long_double="guessing no";;
-               esac
-               ;;
-           esac
+             case "$host_cpu" in
+                                     # Guess no on ia64, x86_64, i386.
+               ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";;
+               *)
+                 case "$host_os" in
+                                         # Guess yes on glibc systems.
+                   *-gnu*)               gl_cv_func_printf_infinite_long_double="guessing yes";;
+                                         # Guess yes on FreeBSD >= 6.
+                   freebsd[1-5].*)       gl_cv_func_printf_infinite_long_double="guessing no";;
+                   freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+                                         # Guess yes on HP-UX >= 11.
+                   hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
+                   hpux*)                gl_cv_func_printf_infinite_long_double="guessing yes";;
+                                         # If we don't know, assume the worst.
+                   *)                    gl_cv_func_printf_infinite_long_double="guessing no";;
+                 esac
+                 ;;
+             esac
 changequote([,])dnl
-          ])
+            ])
         ])
       ;;
     *)
@@ -466,72 +474,77 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_A],
   AC_CACHE_CHECK([whether printf supports the 'a' and 'A' directives],
     [gl_cv_func_printf_directive_a],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
 static char buf[100];
+static double zero = 0.0;
 int main ()
 {
+  int result = 0;
   if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0
       || (strcmp (buf, "0x1.922p+1 33") != 0
           && strcmp (buf, "0x3.244p+0 33") != 0
           && strcmp (buf, "0x6.488p-1 33") != 0
           && strcmp (buf, "0xc.91p-2 33") != 0))
-    return 1;
+    result |= 1;
   if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0
       || (strcmp (buf, "-0X1.922P+1 33") != 0
           && strcmp (buf, "-0X3.244P+0 33") != 0
           && strcmp (buf, "-0X6.488P-1 33") != 0
           && strcmp (buf, "-0XC.91P-2 33") != 0))
-    return 1;
+    result |= 2;
   /* This catches a FreeBSD 6.1 bug: it doesn't round.  */
   if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0
       || (strcmp (buf, "0x1.83p+0 33") != 0
           && strcmp (buf, "0x3.05p-1 33") != 0
           && strcmp (buf, "0x6.0ap-2 33") != 0
           && strcmp (buf, "0xc.14p-3 33") != 0))
-    return 1;
+    result |= 4;
   /* This catches a FreeBSD 6.1 bug.  See
      <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-  if (sprintf (buf, "%010a %d", 1.0 / 0.0, 33, 44, 55) < 0
+  if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0
       || buf[0] == '0')
-    return 1;
-  /* This catches a MacOS X 10.3.9 (Darwin 7.9) bug.  */
+    result |= 8;
+  /* This catches a Mac OS X 10.3.9 (Darwin 7.9) bug.  */
   if (sprintf (buf, "%.1a", 1.999) < 0
       || (strcmp (buf, "0x1.0p+1") != 0
           && strcmp (buf, "0x2.0p+0") != 0
           && strcmp (buf, "0x4.0p-1") != 0
           && strcmp (buf, "0x8.0p-2") != 0))
-    return 1;
-  /* This catches the same MacOS X 10.3.9 (Darwin 7.9) bug and also a
+    result |= 16;
+  /* This catches the same Mac OS X 10.3.9 (Darwin 7.9) bug and also a
      glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>.  */
   if (sprintf (buf, "%.1La", 1.999L) < 0
       || (strcmp (buf, "0x1.0p+1") != 0
           && strcmp (buf, "0x2.0p+0") != 0
           && strcmp (buf, "0x4.0p-1") != 0
           && strcmp (buf, "0x8.0p-2") != 0))
-    return 1;
-  return 0;
-}], [gl_cv_func_printf_directive_a=yes], [gl_cv_func_printf_directive_a=no],
-      [
-       case "$host_os" in
-                               # Guess yes on glibc >= 2.5 systems.
-         *-gnu*)
-           AC_EGREP_CPP([BZ2908], [
-             #include <features.h>
-             #ifdef __GNU_LIBRARY__
-              #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)
-               BZ2908
-              #endif
-             #endif
-             ],
-             [gl_cv_func_printf_directive_a="guessing yes"],
-             [gl_cv_func_printf_directive_a="guessing no"])
-           ;;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_printf_directive_a="guessing no";;
-       esac
-      ])
+    result |= 32;
+  return result;
+}]])],
+        [gl_cv_func_printf_directive_a=yes],
+        [gl_cv_func_printf_directive_a=no],
+        [
+         case "$host_os" in
+                                 # Guess yes on glibc >= 2.5 systems.
+           *-gnu*)
+             AC_EGREP_CPP([BZ2908], [
+               #include <features.h>
+               #ifdef __GNU_LIBRARY__
+                #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)) && !defined __UCLIBC__
+                 BZ2908
+                #endif
+               #endif
+               ],
+               [gl_cv_func_printf_directive_a="guessing yes"],
+               [gl_cv_func_printf_directive_a="guessing no"])
+             ;;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_printf_directive_a="guessing no";;
+         esac
+        ])
     ])
 ])
 
@@ -546,43 +559,48 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_F],
   AC_CACHE_CHECK([whether printf supports the 'F' directive],
     [gl_cv_func_printf_directive_f],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
 static char buf[100];
+static double zero = 0.0;
 int main ()
 {
+  int result = 0;
   if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0
       || strcmp (buf, "1234567.000000 33") != 0)
-    return 1;
-  if (sprintf (buf, "%F", 1.0 / 0.0) < 0
+    result |= 1;
+  if (sprintf (buf, "%F", 1.0 / zero) < 0
       || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0))
-    return 1;
+    result |= 2;
   /* This catches a Cygwin 1.5.x bug.  */
   if (sprintf (buf, "%.F", 1234.0) < 0
       || strcmp (buf, "1234") != 0)
-    return 1;
-  return 0;
-}], [gl_cv_func_printf_directive_f=yes], [gl_cv_func_printf_directive_f=no],
-      [
+    result |= 4;
+  return result;
+}]])],
+        [gl_cv_func_printf_directive_f=yes],
+        [gl_cv_func_printf_directive_f=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_printf_directive_f="guessing yes";;
-                               # Guess yes on FreeBSD >= 6.
-         freebsd[1-5]*)        gl_cv_func_printf_directive_f="guessing no";;
-         freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
-                               # Guess yes on MacOS X >= 10.3.
-         darwin[1-6].*)        gl_cv_func_printf_directive_f="guessing no";;
-         darwin*)              gl_cv_func_printf_directive_f="guessing yes";;
-                               # Guess yes on Solaris >= 2.10.
-         solaris2.[0-9]*)      gl_cv_func_printf_directive_f="guessing no";;
-         solaris*)             gl_cv_func_printf_directive_f="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_printf_directive_f="guessing no";;
-       esac
+         case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu*)               gl_cv_func_printf_directive_f="guessing yes";;
+                                 # Guess yes on FreeBSD >= 6.
+           freebsd[1-5].*)       gl_cv_func_printf_directive_f="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_printf_directive_f="guessing no";;
+           darwin*)              gl_cv_func_printf_directive_f="guessing yes";;
+                                 # Guess yes on Solaris >= 2.10.
+           solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+           solaris*)             gl_cv_func_printf_sizes_c99="guessing no";;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_printf_directive_f="guessing no";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -597,14 +615,30 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_N],
   AC_CACHE_CHECK([whether printf supports the 'n' directive],
     [gl_cv_func_printf_directive_n],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
+#ifdef _MSC_VER
+/* See page about "Parameter Validation" on msdn.microsoft.com.  */
+static void cdecl
+invalid_parameter_handler (const wchar_t *expression,
+                           const wchar_t *function,
+                           const wchar_t *file, unsigned int line,
+                           uintptr_t dummy)
+{
+  exit (1);
+}
+#endif
 static char fmtstring[10];
 static char buf[100];
 int main ()
 {
   int count = -1;
+#ifdef _MSC_VER
+  _set_invalid_parameter_handler (invalid_parameter_handler);
+#endif
   /* Copy the format string.  Some systems (glibc with _FORTIFY_SOURCE=2)
      support %n in format strings in read-only memory but not in writable
      memory.  */
@@ -614,14 +648,17 @@ int main ()
       || count != 4)
     return 1;
   return 0;
-}], [gl_cv_func_printf_directive_n=yes], [gl_cv_func_printf_directive_n=no],
-      [
+}]])],
+        [gl_cv_func_printf_directive_n=yes],
+        [gl_cv_func_printf_directive_n=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-         *)     gl_cv_func_printf_directive_n="guessing yes";;
-       esac
+         case "$host_os" in
+           mingw*) gl_cv_func_printf_directive_n="guessing no";;
+           *)      gl_cv_func_printf_directive_n="guessing yes";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -639,7 +676,8 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_LS],
   AC_CACHE_CHECK([whether printf supports the 'ls' directive],
     [gl_cv_func_printf_directive_ls],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
@@ -651,6 +689,7 @@ AC_DEFUN([gl_PRINTF_DIRECTIVE_LS],
 #include <string.h>
 int main ()
 {
+  int result = 0;
   char buf[100];
   /* Test whether %ls works at all.
      This test fails on OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Haiku, but not on
@@ -660,7 +699,7 @@ int main ()
     buf[0] = '\0';
     if (sprintf (buf, "%ls", wstring) < 0
         || strcmp (buf, "abc") != 0)
-      return 1;
+      result |= 1;
   }
   /* This test fails on IRIX 6.5, Solaris 2.6, Cygwin 1.5, Haiku (with an
      assertion failure inside libc), but not on OpenBSD 4.0.  */
@@ -669,7 +708,7 @@ int main ()
     buf[0] = '\0';
     if (sprintf (buf, "%ls", wstring) < 0
         || strcmp (buf, "a") != 0)
-      return 1;
+      result |= 2;
   }
   /* Test whether precisions in %ls are supported as specified in ISO C 99
      section 7.19.6.1:
@@ -684,22 +723,24 @@ int main ()
     buf[0] = '\0';
     if (sprintf (buf, "%.2ls", wstring) < 0
         || strcmp (buf, "ab") != 0)
-      return 1;
+      result |= 8;
   }
-  return 0;
-}], [gl_cv_func_printf_directive_ls=yes], [gl_cv_func_printf_directive_ls=no],
-      [
+  return result;
+}]])],
+        [gl_cv_func_printf_directive_ls=yes],
+        [gl_cv_func_printf_directive_ls=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-         openbsd*)        gl_cv_func_printf_directive_ls="guessing no";;
-         irix*)           gl_cv_func_printf_directive_ls="guessing no";;
-         solaris*)        gl_cv_func_printf_directive_ls="guessing no";;
-         cygwin*)         gl_cv_func_printf_directive_ls="guessing no";;
-         beos* | haiku*)  gl_cv_func_printf_directive_ls="guessing no";;
-         *)               gl_cv_func_printf_directive_ls="guessing yes";;
-       esac
+         case "$host_os" in
+           openbsd*)        gl_cv_func_printf_directive_ls="guessing no";;
+           irix*)           gl_cv_func_printf_directive_ls="guessing no";;
+           solaris*)        gl_cv_func_printf_directive_ls="guessing no";;
+           cygwin*)         gl_cv_func_printf_directive_ls="guessing no";;
+           beos* | haiku*)  gl_cv_func_printf_directive_ls="guessing no";;
+           *)               gl_cv_func_printf_directive_ls="guessing yes";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -714,7 +755,8 @@ AC_DEFUN([gl_PRINTF_POSITIONS],
   AC_CACHE_CHECK([whether printf supports POSIX/XSI format strings with positions],
     [gl_cv_func_printf_positions],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
 /* The string "%2$d %1$d", with dollar characters protected from the shell's
@@ -725,18 +767,20 @@ int main ()
 {
   sprintf (buf, format, 33, 55);
   return (strcmp (buf, "55 33") != 0);
-}], [gl_cv_func_printf_positions=yes], [gl_cv_func_printf_positions=no],
-      [
+}]])],
+        [gl_cv_func_printf_positions=yes],
+        [gl_cv_func_printf_positions=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-         netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
-                       gl_cv_func_printf_positions="guessing no";;
-         beos*)        gl_cv_func_printf_positions="guessing no";;
-         mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
-         *)            gl_cv_func_printf_positions="guessing yes";;
-       esac
+         case "$host_os" in
+           netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+                         gl_cv_func_printf_positions="guessing no";;
+           beos*)        gl_cv_func_printf_positions="guessing no";;
+           mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+           *)            gl_cv_func_printf_positions="guessing yes";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -751,7 +795,8 @@ AC_DEFUN([gl_PRINTF_FLAG_GROUPING],
   AC_CACHE_CHECK([whether printf supports the grouping flag],
     [gl_cv_func_printf_flag_grouping],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
 static char buf[100];
@@ -761,17 +806,19 @@ int main ()
       || buf[strlen (buf) - 1] != '9')
     return 1;
   return 0;
-}], [gl_cv_func_printf_flag_grouping=yes], [gl_cv_func_printf_flag_grouping=no],
-      [
+}]])],
+        [gl_cv_func_printf_flag_grouping=yes],
+        [gl_cv_func_printf_flag_grouping=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-         cygwin*)      gl_cv_func_printf_flag_grouping="guessing no";;
-         netbsd*)      gl_cv_func_printf_flag_grouping="guessing no";;
-         mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
-         *)            gl_cv_func_printf_flag_grouping="guessing yes";;
-       esac
+         case "$host_os" in
+           cygwin*)      gl_cv_func_printf_flag_grouping="guessing no";;
+           netbsd*)      gl_cv_func_printf_flag_grouping="guessing no";;
+           mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
+           *)            gl_cv_func_printf_flag_grouping="guessing yes";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -787,7 +834,8 @@ AC_DEFUN([gl_PRINTF_FLAG_LEFTADJUST],
   AC_CACHE_CHECK([whether printf supports the left-adjust flag correctly],
     [gl_cv_func_printf_flag_leftadjust],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
 static char buf[100];
@@ -798,7 +846,7 @@ int main ()
       || strcmp (buf, "ab  c") != 0)
     return 1;
   return 0;
-}],
+}]])],
         [gl_cv_func_printf_flag_leftadjust=yes],
         [gl_cv_func_printf_flag_leftadjust=no],
         [
@@ -828,37 +876,44 @@ AC_DEFUN([gl_PRINTF_FLAG_ZERO],
   AC_CACHE_CHECK([whether printf supports the zero flag correctly],
     [gl_cv_func_printf_flag_zero],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
 static char buf[100];
+static double zero = 0.0;
 int main ()
 {
-  if (sprintf (buf, "%010f", 1.0 / 0.0, 33, 44, 55) < 0
+  if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0
       || (strcmp (buf, "       inf") != 0
           && strcmp (buf, "  infinity") != 0))
     return 1;
   return 0;
-}], [gl_cv_func_printf_flag_zero=yes], [gl_cv_func_printf_flag_zero=no],
-      [
+}]])],
+        [gl_cv_func_printf_flag_zero=yes],
+        [gl_cv_func_printf_flag_zero=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-                 # Guess yes on glibc systems.
-         *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
-                 # Guess yes on BeOS.
-         beos*)  gl_cv_func_printf_flag_zero="guessing yes";;
-                 # If we don't know, assume the worst.
-         *)      gl_cv_func_printf_flag_zero="guessing no";;
-       esac
+         case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
+                   # Guess yes on BeOS.
+           beos*)  gl_cv_func_printf_flag_zero="guessing yes";;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_printf_flag_zero="guessing no";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
 dnl Test whether the *printf family of functions supports large precisions.
 dnl On mingw, precisions larger than 512 are treated like 512, in integer,
-dnl floating-point or pointer output. On BeOS, precisions larger than 1044
-dnl crash the program.
+dnl floating-point or pointer output. On Solaris 10/x86, precisions larger
+dnl than 510 in floating-point output crash the program. On Solaris 10/SPARC,
+dnl precisions larger than 510 in floating-point output yield wrong results.
+dnl On AIX 7.1, precisions larger than 998 in floating-point output yield
+dnl wrong results. On BeOS, precisions larger than 1044 crash the program.
 dnl Result is gl_cv_func_printf_precision.
 
 AC_DEFUN([gl_PRINTF_PRECISION],
@@ -868,30 +923,43 @@ AC_DEFUN([gl_PRINTF_PRECISION],
   AC_CACHE_CHECK([whether printf supports large precisions],
     [gl_cv_func_printf_precision],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
 static char buf[5000];
 int main ()
 {
+  int result = 0;
 #ifdef __BEOS__
   /* On BeOS, this would crash and show a dialog box.  Avoid the crash.  */
   return 1;
 #endif
   if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3)
-    return 1;
-  return 0;
-}], [gl_cv_func_printf_precision=yes], [gl_cv_func_printf_precision=no],
-      [
+    result |= 1;
+  if (sprintf (buf, "%.4000f %d", 1.0, 33, 44) < 4000 + 5)
+    result |= 2;
+  if (sprintf (buf, "%.511f %d", 1.0, 33, 44) < 511 + 5
+      || buf[0] != '1')
+    result |= 4;
+  if (sprintf (buf, "%.999f %d", 1.0, 33, 44) < 999 + 5
+      || buf[0] != '1')
+    result |= 4;
+  return result;
+}]])],
+        [gl_cv_func_printf_precision=yes],
+        [gl_cv_func_printf_precision=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-         # Guess no only on native Win32 and BeOS systems.
-         mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
-         beos*)        gl_cv_func_printf_precision="guessing no" ;;
-         *)            gl_cv_func_printf_precision="guessing yes" ;;
-       esac
+         case "$host_os" in
+           # Guess no only on Solaris, native Windows, and BeOS systems.
+           solaris*)     gl_cv_func_printf_precision="guessing no" ;;
+           mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
+           beos*)        gl_cv_func_printf_precision="guessing no" ;;
+           *)            gl_cv_func_printf_precision="guessing yes" ;;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -960,8 +1028,9 @@ int main()
 changequote([,])dnl
           ])])
           if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
-            (./conftest
+            (./conftest 2>&AS_MESSAGE_LOG_FD
              result=$?
+             _AS_ECHO_LOG([\$? = $result])
              if test $result != 0 && test $result != 77; then result=1; fi
              exit $result
             ) >/dev/null 2>/dev/null
@@ -975,7 +1044,7 @@ changequote([,])dnl
           fi
           rm -fr conftest*
         else
-          dnl A universal build on Apple MacOS X platforms.
+          dnl A universal build on Apple Mac OS X platforms.
           dnl The result would be 'no' in 32-bit mode and 'yes' in 64-bit mode.
           dnl But we need a configuration result that is valid in both modes.
           gl_cv_func_printf_enomem="guessing no"
@@ -1028,61 +1097,80 @@ AC_DEFUN([gl_SNPRINTF_TRUNCATION_C99],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([gl_SNPRINTF_PRESENCE])
   AC_CACHE_CHECK([whether snprintf truncates the result as in C99],
     [gl_cv_func_snprintf_truncation_c99],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
 static char buf[100];
 int main ()
 {
   strcpy (buf, "ABCDEF");
-  snprintf (buf, 3, "%d %d", 4567, 89);
+  my_snprintf (buf, 3, "%d %d", 4567, 89);
   if (memcmp (buf, "45\0DEF", 6) != 0)
     return 1;
   return 0;
-}], [gl_cv_func_snprintf_truncation_c99=yes], [gl_cv_func_snprintf_truncation_c99=no],
-      [
+}]])],
+        [gl_cv_func_snprintf_truncation_c99=yes],
+        [gl_cv_func_snprintf_truncation_c99=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                               # Guess yes on FreeBSD >= 5.
-         freebsd[1-4]*)        gl_cv_func_snprintf_truncation_c99="guessing no";;
-         freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                               # Guess yes on MacOS X >= 10.3.
-         darwin[1-6].*)        gl_cv_func_snprintf_truncation_c99="guessing no";;
-         darwin*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                               # Guess yes on OpenBSD >= 3.9.
-         openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
-                               gl_cv_func_snprintf_truncation_c99="guessing no";;
-         openbsd*)             gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                               # Guess yes on Solaris >= 2.6.
-         solaris2.[0-5]*)      gl_cv_func_snprintf_truncation_c99="guessing no";;
-         solaris*)             gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                               # Guess yes on AIX >= 4.
-         aix[1-3]*)            gl_cv_func_snprintf_truncation_c99="guessing no";;
-         aix*)                 gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                               # Guess yes on HP-UX >= 11.
-         hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";;
-         hpux*)                gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                               # Guess yes on IRIX >= 6.5.
-         irix6.5)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                               # Guess yes on OSF/1 >= 5.
-         osf[3-4]*)            gl_cv_func_snprintf_truncation_c99="guessing no";;
-         osf*)                 gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                               # Guess yes on NetBSD >= 3.
-         netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                               gl_cv_func_snprintf_truncation_c99="guessing no";;
-         netbsd*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                               # Guess yes on BeOS.
-         beos*)                gl_cv_func_snprintf_truncation_c99="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_snprintf_truncation_c99="guessing no";;
-       esac
+         case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu*)               gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on FreeBSD >= 5.
+           freebsd[1-4].*)       gl_cv_func_snprintf_truncation_c99="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_snprintf_truncation_c99="guessing no";;
+           darwin*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on OpenBSD >= 3.9.
+           openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+                                 gl_cv_func_snprintf_truncation_c99="guessing no";;
+           openbsd*)             gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on Solaris >= 2.6.
+           solaris2.[0-5] | solaris2.[0-5].*)
+                                 gl_cv_func_snprintf_truncation_c99="guessing no";;
+           solaris*)             gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on AIX >= 4.
+           aix[1-3]*)            gl_cv_func_snprintf_truncation_c99="guessing no";;
+           aix*)                 gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on HP-UX >= 11.
+           hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+           hpux*)                gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on IRIX >= 6.5.
+           irix6.5)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on OSF/1 >= 5.
+           osf[3-4]*)            gl_cv_func_snprintf_truncation_c99="guessing no";;
+           osf*)                 gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on NetBSD >= 3.
+           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+                                 gl_cv_func_snprintf_truncation_c99="guessing no";;
+           netbsd*)              gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # Guess yes on BeOS.
+           beos*)                gl_cv_func_snprintf_truncation_c99="guessing yes";;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_snprintf_truncation_c99="guessing no";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -1101,56 +1189,78 @@ dnl     }
 dnl     ---------------------------------------------------------------------
 dnl Result is gl_cv_func_snprintf_retval_c99.
 
-AC_DEFUN([gl_SNPRINTF_RETVAL_C99],
+AC_DEFUN_ONCE([gl_SNPRINTF_RETVAL_C99],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([gl_SNPRINTF_PRESENCE])
   AC_CACHE_CHECK([whether snprintf returns a byte count as in C99],
     [gl_cv_func_snprintf_retval_c99],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
 static char buf[100];
 int main ()
 {
   strcpy (buf, "ABCDEF");
-  if (snprintf (buf, 3, "%d %d", 4567, 89) != 7)
+  if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7)
     return 1;
+  if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7)
+    return 2;
+  if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
+    return 3;
   return 0;
-}], [gl_cv_func_snprintf_retval_c99=yes], [gl_cv_func_snprintf_retval_c99=no],
-      [
+}]])],
+        [gl_cv_func_snprintf_retval_c99=yes],
+        [gl_cv_func_snprintf_retval_c99=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on FreeBSD >= 5.
-         freebsd[1-4]*)        gl_cv_func_snprintf_retval_c99="guessing no";;
-         freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on MacOS X >= 10.3.
-         darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
-         darwin*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on OpenBSD >= 3.9.
-         openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
-                               gl_cv_func_snprintf_retval_c99="guessing no";;
-         openbsd*)             gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on Solaris >= 2.6.
-         solaris2.[0-5]*)      gl_cv_func_snprintf_retval_c99="guessing no";;
-         solaris*)             gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on AIX >= 4.
-         aix[1-3]*)            gl_cv_func_snprintf_retval_c99="guessing no";;
-         aix*)                 gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on NetBSD >= 3.
-         netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                               gl_cv_func_snprintf_retval_c99="guessing no";;
-         netbsd*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # Guess yes on BeOS.
-         beos*)                gl_cv_func_snprintf_retval_c99="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_snprintf_retval_c99="guessing no";;
-       esac
+         case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu*)               gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on FreeBSD >= 5.
+           freebsd[1-4].*)       gl_cv_func_snprintf_retval_c99="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
+           darwin*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on OpenBSD >= 3.9.
+           openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+                                 gl_cv_func_snprintf_retval_c99="guessing no";;
+           openbsd*)             gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on Solaris >= 2.10.
+           solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+           solaris*)             gl_cv_func_printf_sizes_c99="guessing no";;
+                                 # Guess yes on AIX >= 4.
+           aix[1-3]*)            gl_cv_func_snprintf_retval_c99="guessing no";;
+           aix*)                 gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on NetBSD >= 3.
+           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+                                 gl_cv_func_snprintf_retval_c99="guessing no";;
+           netbsd*)              gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # Guess yes on BeOS.
+           beos*)                gl_cv_func_snprintf_retval_c99="guessing yes";;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_snprintf_retval_c99="guessing no";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -1162,12 +1272,28 @@ AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N],
 [
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([gl_SNPRINTF_PRESENCE])
   AC_CACHE_CHECK([whether snprintf fully supports the 'n' directive],
     [gl_cv_func_snprintf_directive_n],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
 static char fmtstring[10];
 static char buf[100];
 int main ()
@@ -1177,44 +1303,47 @@ int main ()
      support %n in format strings in read-only memory but not in writable
      memory.  */
   strcpy (fmtstring, "%d %n");
-  snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55);
+  my_snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55);
   if (count != 6)
     return 1;
   return 0;
-}], [gl_cv_func_snprintf_directive_n=yes], [gl_cv_func_snprintf_directive_n=no],
-      [
+}]])],
+        [gl_cv_func_snprintf_directive_n=yes],
+        [gl_cv_func_snprintf_directive_n=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_snprintf_directive_n="guessing yes";;
-                               # Guess yes on FreeBSD >= 5.
-         freebsd[1-4]*)        gl_cv_func_snprintf_directive_n="guessing no";;
-         freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
-                               # Guess yes on MacOS X >= 10.3.
-         darwin[1-6].*)        gl_cv_func_snprintf_directive_n="guessing no";;
-         darwin*)              gl_cv_func_snprintf_directive_n="guessing yes";;
-                               # Guess yes on Solaris >= 2.6.
-         solaris2.[0-5]*)      gl_cv_func_snprintf_directive_n="guessing no";;
-         solaris*)             gl_cv_func_snprintf_directive_n="guessing yes";;
-                               # Guess yes on AIX >= 4.
-         aix[1-3]*)            gl_cv_func_snprintf_directive_n="guessing no";;
-         aix*)                 gl_cv_func_snprintf_directive_n="guessing yes";;
-                               # Guess yes on IRIX >= 6.5.
-         irix6.5)              gl_cv_func_snprintf_directive_n="guessing yes";;
-                               # Guess yes on OSF/1 >= 5.
-         osf[3-4]*)            gl_cv_func_snprintf_directive_n="guessing no";;
-         osf*)                 gl_cv_func_snprintf_directive_n="guessing yes";;
-                               # Guess yes on NetBSD >= 3.
-         netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                               gl_cv_func_snprintf_directive_n="guessing no";;
-         netbsd*)              gl_cv_func_snprintf_directive_n="guessing yes";;
-                               # Guess yes on BeOS.
-         beos*)                gl_cv_func_snprintf_directive_n="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_snprintf_directive_n="guessing no";;
-       esac
+         case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu*)               gl_cv_func_snprintf_directive_n="guessing yes";;
+                                 # Guess yes on FreeBSD >= 5.
+           freebsd[1-4].*)       gl_cv_func_snprintf_directive_n="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_snprintf_directive_n="guessing no";;
+           darwin*)              gl_cv_func_snprintf_directive_n="guessing yes";;
+                                 # Guess yes on Solaris >= 2.6.
+           solaris2.[0-5] | solaris2.[0-5].*)
+                                 gl_cv_func_snprintf_directive_n="guessing no";;
+           solaris*)             gl_cv_func_snprintf_directive_n="guessing yes";;
+                                 # Guess yes on AIX >= 4.
+           aix[1-3]*)            gl_cv_func_snprintf_directive_n="guessing no";;
+           aix*)                 gl_cv_func_snprintf_directive_n="guessing yes";;
+                                 # Guess yes on IRIX >= 6.5.
+           irix6.5)              gl_cv_func_snprintf_directive_n="guessing yes";;
+                                 # Guess yes on OSF/1 >= 5.
+           osf[3-4]*)            gl_cv_func_snprintf_directive_n="guessing no";;
+           osf*)                 gl_cv_func_snprintf_directive_n="guessing yes";;
+                                 # Guess yes on NetBSD >= 3.
+           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+                                 gl_cv_func_snprintf_directive_n="guessing no";;
+           netbsd*)              gl_cv_func_snprintf_directive_n="guessing yes";;
+                                 # Guess yes on BeOS.
+           beos*)                gl_cv_func_snprintf_directive_n="guessing yes";;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_snprintf_directive_n="guessing no";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -1226,20 +1355,36 @@ dnl Result is gl_cv_func_snprintf_size1.
 AC_DEFUN([gl_SNPRINTF_SIZE1],
 [
   AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([gl_SNPRINTF_PRESENCE])
   AC_CACHE_CHECK([whether snprintf respects a size of 1],
     [gl_cv_func_snprintf_size1],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+  va_list args;
+  int ret;
+  va_start (args, format);
+  ret = vsnprintf (buf, size, format, args);
+  va_end (args);
+  return ret;
+}
+#endif
 int main()
 {
   static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
-  snprintf (buf, 1, "%d", 12345);
+  my_snprintf (buf, 1, "%d", 12345);
   return buf[1] != 'E';
-}],
-      [gl_cv_func_snprintf_size1=yes],
-      [gl_cv_func_snprintf_size1=no],
-      [gl_cv_func_snprintf_size1="guessing yes"])
+}]])],
+        [gl_cv_func_snprintf_size1=yes],
+        [gl_cv_func_snprintf_size1=no],
+        [gl_cv_func_snprintf_size1="guessing yes"])
     ])
 ])
 
@@ -1286,7 +1431,8 @@ AC_DEFUN([gl_VSNPRINTF_ZEROSIZE_C99],
   AC_CACHE_CHECK([whether vsnprintf respects a zero size as in C99],
     [gl_cv_func_vsnprintf_zerosize_c99],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stdarg.h>
 #include <stdio.h>
 static int my_snprintf (char *buf, int size, const char *format, ...)
@@ -1303,43 +1449,44 @@ int main()
   static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
   my_snprintf (buf, 0, "%d", 12345);
   return buf[0] != 'D';
-}],
-      [gl_cv_func_vsnprintf_zerosize_c99=yes],
-      [gl_cv_func_vsnprintf_zerosize_c99=no],
-      [
+}]])],
+        [gl_cv_func_vsnprintf_zerosize_c99=yes],
+        [gl_cv_func_vsnprintf_zerosize_c99=no],
+        [
 changequote(,)dnl
-       case "$host_os" in
-                               # Guess yes on glibc systems.
-         *-gnu*)               gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                               # Guess yes on FreeBSD >= 5.
-         freebsd[1-4]*)        gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-         freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                               # Guess yes on MacOS X >= 10.3.
-         darwin[1-6].*)        gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-         darwin*)              gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                               # Guess yes on Cygwin.
-         cygwin*)              gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                               # Guess yes on Solaris >= 2.6.
-         solaris2.[0-5]*)      gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-         solaris*)             gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                               # Guess yes on AIX >= 4.
-         aix[1-3]*)            gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-         aix*)                 gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                               # Guess yes on IRIX >= 6.5.
-         irix6.5)              gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                               # Guess yes on NetBSD >= 3.
-         netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
-                               gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-         netbsd*)              gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                               # Guess yes on BeOS.
-         beos*)                gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                               # Guess yes on mingw.
-         mingw* | pw*)         gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
-                               # If we don't know, assume the worst.
-         *)                    gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
-       esac
+         case "$host_os" in
+                                 # Guess yes on glibc systems.
+           *-gnu*)               gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+                                 # Guess yes on FreeBSD >= 5.
+           freebsd[1-4].*)       gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+           freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+                                 # Guess yes on Mac OS X >= 10.3.
+           darwin[1-6].*)        gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+           darwin*)              gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+                                 # Guess yes on Cygwin.
+           cygwin*)              gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+                                 # Guess yes on Solaris >= 2.6.
+           solaris2.[0-5] | solaris2.[0-5].*)
+                                 gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+           solaris*)             gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+                                 # Guess yes on AIX >= 4.
+           aix[1-3]*)            gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+           aix*)                 gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+                                 # Guess yes on IRIX >= 6.5.
+           irix6.5)              gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+                                 # Guess yes on NetBSD >= 3.
+           netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+                                 gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+           netbsd*)              gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+                                 # Guess yes on BeOS.
+           beos*)                gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+                                 # Guess yes on mingw.
+           mingw* | pw*)         gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+                                 # If we don't know, assume the worst.
+           *)                    gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+         esac
 changequote([,])dnl
-      ])
+        ])
     ])
 ])
 
@@ -1393,24 +1540,31 @@ dnl                                  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
 dnl   glibc 2.5                      .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 dnl   glibc 2.3.6                    .  .  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
 dnl   FreeBSD 5.4, 6.1               .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
-dnl   MacOS X 10.3.9                 .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
+dnl   Mac OS X 10.5.8                .  .  .  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
+dnl   Mac OS X 10.3.9                .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
 dnl   OpenBSD 3.9, 4.0               .  .  #  #  #  #  .  #  .  #  .  #  .  #  .  .  .  .  .  .
 dnl   Cygwin 1.7.0 (2009)            .  .  .  #  .  .  .  ?  .  .  .  .  .  ?  .  .  .  .  .  .
 dnl   Cygwin 1.5.25 (2008)           .  .  .  #  #  .  .  #  .  .  .  .  .  #  .  .  .  .  .  .
 dnl   Cygwin 1.5.19 (2006)           #  .  .  #  #  #  .  #  .  #  .  #  #  #  .  .  .  .  .  .
-dnl   Solaris 10                     .  .  #  #  #  .  .  #  .  .  .  #  .  .  .  .  .  .  .  .
-dnl   Solaris 2.6 ... 9              #  .  #  #  #  #  .  #  .  .  .  #  .  .  .  .  .  .  .  .
+dnl   Solaris 11 2011-11             .  .  #  #  #  .  .  #  .  .  .  #  .  .  .  .  .  .  .  .
+dnl   Solaris 10                     .  .  #  #  #  .  .  #  .  .  .  #  #  .  .  .  .  .  .  .
+dnl   Solaris 2.6 ... 9              #  .  #  #  #  #  .  #  .  .  .  #  #  .  .  .  #  .  .  .
 dnl   Solaris 2.5.1                  #  .  #  #  #  #  .  #  .  .  .  #  .  .  #  #  #  #  #  #
+dnl   AIX 7.1                        .  .  #  #  #  .  .  .  .  .  .  #  #  .  .  .  .  .  .  .
 dnl   AIX 5.2                        .  .  #  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
-dnl   AIX 4.3.2, 5.1                 #  .  #  #  #  #  .  .  .  .  .  #  .  .  .  .  .  .  .  .
+dnl   AIX 4.3.2, 5.1                 #  .  #  #  #  #  .  .  .  .  .  #  .  .  .  .  #  .  .  .
 dnl   HP-UX 11.31                    .  .  .  .  #  .  .  .  .  .  .  #  .  .  .  .  #  #  .  .
 dnl   HP-UX 11.{00,11,23}            #  .  .  .  #  #  .  .  .  .  .  #  .  .  .  .  #  #  .  #
 dnl   HP-UX 10.20                    #  .  #  .  #  #  .  ?  .  .  #  #  .  .  .  .  #  #  ?  #
 dnl   IRIX 6.5                       #  .  #  #  #  #  .  #  .  .  .  #  .  .  .  .  #  .  .  .
 dnl   OSF/1 5.1                      #  .  #  #  #  #  .  .  .  .  .  #  .  .  .  .  #  .  .  #
 dnl   OSF/1 4.0d                     #  .  #  #  #  #  .  .  .  .  .  #  .  .  #  #  #  #  #  #
+dnl   NetBSD 5.0                     .  .  .  #  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
 dnl   NetBSD 4.0                     .  ?  ?  ?  ?  ?  .  ?  .  ?  ?  ?  ?  ?  .  .  .  ?  ?  ?
 dnl   NetBSD 3.0                     .  .  .  .  #  #  .  ?  #  #  ?  #  .  #  .  .  .  .  .  .
-dnl   Haiku                          .  .  .  #  #  #  .  #  .  .  .  .  .  ?  .  .  .  .  .  .
-dnl   BeOS                           #  #  .  #  #  #  .  ?  #  .  ?  .  #  ?  .  .  .  .  .  .
-dnl   mingw                          #  #  #  #  #  #  .  .  #  #  .  #  #  ?  .  #  #  #  .  .
+dnl   Haiku                          .  .  .  #  #  #  .  #  .  .  .  .  .  ?  .  .  ?  .  .  .
+dnl   BeOS                           #  #  .  #  #  #  .  ?  #  .  ?  .  #  ?  .  .  ?  .  .  .
+dnl   old mingw / msvcrt             #  #  #  #  #  #  .  .  #  #  .  #  #  ?  .  #  #  #  .  .
+dnl   MSVC 9                         #  #  #  #  #  #  #  .  #  #  .  #  #  ?  #  #  #  #  .  .
+dnl   mingw 2009-2011                .  #  .  #  .  .  .  .  #  #  .  .  .  ?  .  .  .  .  .  .
+dnl   mingw-w64 2011                 #  #  #  #  #  #  .  .  #  #  .  #  #  ?  .  #  #  #  .  .
index dd9140c..d79321b 100644 (file)
@@ -1,5 +1,5 @@
-# putenv.m4 serial 16
-dnl Copyright (C) 2002-2010 Free Software Foundation, Inc.
+# putenv.m4 serial 20
+dnl Copyright (C) 2002-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -12,6 +12,7 @@ dnl The putenv in libc on at least SunOS 4.1.4 does *not* do that.
 AC_DEFUN([gl_FUNC_PUTENV],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CACHE_CHECK([for putenv compatible with GNU and SVID],
    [gl_cv_func_svid_putenv],
    [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],[[
@@ -21,21 +22,35 @@ AC_DEFUN([gl_FUNC_PUTENV],
 
     /* Try to remove it.  */
     if (putenv ("CONFTEST_putenv"))
-      return 1;
+      return 2;
 
     /* Make sure it was deleted.  */
     if (getenv ("CONFTEST_putenv") != 0)
-      return 1;
+      return 3;
 
     return 0;
               ]])],
              gl_cv_func_svid_putenv=yes,
              gl_cv_func_svid_putenv=no,
              dnl When crosscompiling, assume putenv is broken.
-             gl_cv_func_svid_putenv=no)
+             [case "$host_os" in
+                        # Guess yes on glibc systems.
+                *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;;
+                        # If we don't know, assume the worst.
+                *)      gl_cv_func_svid_putenv="guessing no" ;;
+              esac
+             ])
    ])
-  if test $gl_cv_func_svid_putenv = no; then
-    REPLACE_PUTENV=1
-    AC_LIBOBJ([putenv])
-  fi
+  case "$gl_cv_func_svid_putenv" in
+    *yes) ;;
+    *)
+      REPLACE_PUTENV=1
+      ;;
+  esac
+])
+
+# Prerequisites of lib/putenv.c.
+AC_DEFUN([gl_PREREQ_PUTENV],
+[
+  AC_CHECK_DECLS([_putenv])
 ])
index c192378..d292a57 100644 (file)
@@ -1,5 +1,5 @@
-# relocatable-lib.m4 serial 5
-dnl Copyright (C) 2003, 2005-2007, 2009-2010 Free Software Foundation, Inc.
+# relocatable-lib.m4 serial 6
+dnl Copyright (C) 2003, 2005-2007, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,9 +10,6 @@ dnl Support for relocatable libraries.
 AC_DEFUN([gl_RELOCATABLE_LIBRARY],
 [
   AC_REQUIRE([gl_RELOCATABLE_LIBRARY_BODY])
-  if test $RELOCATABLE = yes; then
-    AC_LIBOBJ([relocatable])
-  fi
 ])
 AC_DEFUN([gl_RELOCATABLE_LIBRARY_BODY],
 [
@@ -32,13 +29,6 @@ AC_DEFUN([gl_RELOCATABLE_LIBRARY_BODY],
   fi
 ])
 
-dnl Like gl_RELOCATABLE_LIBRARY, except prepare for separate compilation
-dnl (no AC_LIBOBJ).
-AC_DEFUN([gl_RELOCATABLE_LIBRARY_SEPARATE],
-[
-  AC_REQUIRE([gl_RELOCATABLE_LIBRARY_BODY])
-])
-
 dnl Support for relocatable packages for which it is a nop.
 AC_DEFUN([gl_RELOCATABLE_NOP],
 [
@@ -55,4 +45,3 @@ AC_DEFUN([gl_RELOCATABLE_NOP],
   AC_SUBST([RELOCATABLE])
   AC_MSG_RESULT([$RELOCATABLE])
 ])
-
index 58f6d13..0f46a7b 100644 (file)
@@ -1,5 +1,5 @@
-# setenv.m4 serial 16
-dnl Copyright (C) 2001-2004, 2006-2010 Free Software Foundation, Inc.
+# setenv.m4 serial 26
+dnl Copyright (C) 2001-2004, 2006-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,16 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_SETENV],
 [
   AC_REQUIRE([gl_FUNC_SETENV_SEPARATE])
-  if test $HAVE_SETENV$REPLACE_SETENV != 10; then
-    AC_LIBOBJ([setenv])
-  fi
-])
-
-# Like gl_FUNC_SETENV, except prepare for separate compilation (no AC_LIBOBJ).
-AC_DEFUN([gl_FUNC_SETENV_SEPARATE],
-[
-  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
-  AC_CHECK_FUNCS_ONCE([setenv])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   if test $ac_cv_func_setenv = no; then
     HAVE_SETENV=0
   else
@@ -27,69 +18,127 @@ AC_DEFUN([gl_FUNC_SETENV_SEPARATE],
        #include <errno.h>
        #include <string.h>
       ]], [[
-       if (setenv ("", "", 0) != -1) return 1;
-       if (errno != EINVAL) return 2;
-       if (setenv ("a", "=", 1) != 0) return 3;
-       if (strcmp (getenv ("a"), "=") != 0) return 4;
+       int result = 0;
+       {
+         if (setenv ("", "", 0) != -1)
+           result |= 1;
+         else if (errno != EINVAL)
+           result |= 2;
+       }
+       {
+         if (setenv ("a", "=", 1) != 0)
+           result |= 4;
+         else if (strcmp (getenv ("a"), "=") != 0)
+           result |= 8;
+       }
+       return result;
       ]])],
       [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no],
-      [gl_cv_func_setenv_works="guessing no"])])
-    if test "$gl_cv_func_setenv_works" != yes; then
-      REPLACE_SETENV=1
-      AC_LIBOBJ([setenv])
-    fi
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_setenv_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_setenv_works="guessing no" ;;
+       esac
+      ])])
+    case "$gl_cv_func_setenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_SETENV=1
+        ;;
+    esac
   fi
+])
+
+# Like gl_FUNC_SETENV, except prepare for separate compilation
+# (no REPLACE_SETENV, no AC_LIBOBJ).
+AC_DEFUN([gl_FUNC_SETENV_SEPARATE],
+[
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  AC_CHECK_DECLS_ONCE([setenv])
+  if test $ac_cv_have_decl_setenv = no; then
+    HAVE_DECL_SETENV=0
+  fi
+  AC_CHECK_FUNCS_ONCE([setenv])
   gl_PREREQ_SETENV
 ])
 
 AC_DEFUN([gl_FUNC_UNSETENV],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CHECK_DECLS_ONCE([unsetenv])
+  if test $ac_cv_have_decl_unsetenv = no; then
+    HAVE_DECL_UNSETENV=0
+  fi
   AC_CHECK_FUNCS([unsetenv])
   if test $ac_cv_func_unsetenv = no; then
     HAVE_UNSETENV=0
-    AC_LIBOBJ([unsetenv])
-    gl_PREREQ_UNSETENV
   else
+    HAVE_UNSETENV=1
     dnl Some BSDs return void, failing to do error checking.
     AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret],
-      [AC_TRY_COMPILE([#include <stdlib.h>
+      [AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[
+#undef _BSD
+#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
+#include <stdlib.h>
 extern
 #ifdef __cplusplus
 "C"
 #endif
-#if defined(__STDC__) || defined(__cplusplus)
 int unsetenv (const char *name);
-#else
-int unsetenv();
-#endif
-], , gt_cv_func_unsetenv_ret='int', gt_cv_func_unsetenv_ret='void')])
+            ]],
+            [[]])],
+         [gt_cv_func_unsetenv_ret='int'],
+         [gt_cv_func_unsetenv_ret='void'])])
     if test $gt_cv_func_unsetenv_ret = 'void'; then
       AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void
        instead of int.])
       REPLACE_UNSETENV=1
-      AC_LIBOBJ([unsetenv])
     fi
 
     dnl Solaris 10 unsetenv does not remove all copies of a name.
-    AC_CACHE_CHECK([whether unsetenv works on duplicates],
+    dnl Haiku alpha 2 unsetenv gets confused by assignment to environ.
+    dnl OpenBSD 4.7 unsetenv("") does not fail.
+    AC_CACHE_CHECK([whether unsetenv obeys POSIX],
       [gl_cv_func_unsetenv_works],
       [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
        #include <stdlib.h>
+       #include <errno.h>
+       extern char **environ;
       ]], [[
-       char entry[] = "b=2";
+       char entry1[] = "a=1";
+       char entry2[] = "b=2";
+       char *env[] = { entry1, entry2, NULL };
        if (putenv ((char *) "a=1")) return 1;
-       if (putenv (entry)) return 2;
-       entry[0] = 'a';
+       if (putenv (entry2)) return 2;
+       entry2[0] = 'a';
        unsetenv ("a");
        if (getenv ("a")) return 3;
+       if (!unsetenv ("") || errno != EINVAL) return 4;
+       entry2[0] = 'b';
+       environ = env;
+       if (!getenv ("a")) return 5;
+       entry2[0] = 'a';
+       unsetenv ("a");
+       if (getenv ("a")) return 6;
       ]])],
       [gl_cv_func_unsetenv_works=yes], [gl_cv_func_unsetenv_works=no],
-      [gl_cv_func_unsetenv_works="guessing no"])])
-    if test "$gl_cv_func_unsetenv_works" != yes; then
-      REPLACE_UNSETENV=1
-      AC_LIBOBJ([unsetenv])
-    fi
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_unsetenv_works="guessing no" ;;
+       esac
+      ])])
+    case "$gl_cv_func_unsetenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_UNSETENV=1
+        ;;
+    esac
   fi
 ])
 
diff --git a/gnulib-m4/setlocale.m4 b/gnulib-m4/setlocale.m4
new file mode 100644 (file)
index 0000000..fe83aab
--- /dev/null
@@ -0,0 +1,29 @@
+# setlocale.m4 serial 4
+dnl Copyright (C) 2011-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_SETLOCALE],
+[
+  AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  case "$host_os" in
+    dnl On native Windows systems, setlocale(category,NULL) does not look at
+    dnl the environment variables LC_ALL, category, and LANG.
+    mingw*) REPLACE_SETLOCALE=1 ;;
+    dnl On Cygwin 1.5.x, setlocale always succeeds but setlocale(LC_CTYPE,NULL)
+    dnl is then still "C".
+    cygwin*)
+      case `uname -r` in
+        1.5.*) REPLACE_SETLOCALE=1 ;;
+      esac
+      ;;
+  esac
+])
+
+# Prerequisites of lib/setlocale.c.
+AC_DEFUN([gl_PREREQ_SETLOCALE],
+[
+  :
+])
index 56ff825..9ed48c7 100644 (file)
@@ -1,5 +1,5 @@
-# signbit.m4 serial 6
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# signbit.m4 serial 13
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,9 +7,11 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_SIGNBIT],
 [
   AC_REQUIRE([gl_MATH_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CACHE_CHECK([for signbit macro], [gl_cv_func_signbit],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <math.h>
 /* If signbit is defined as a function, don't use it, since calling it for
    'float' or 'long double' arguments would involve conversions.
@@ -23,8 +25,16 @@ AC_DEFUN([gl_SIGNBIT],
 #endif
 #include <string.h>
 ]gl_SIGNBIT_TEST_PROGRAM
-, [gl_cv_func_signbit=yes], [gl_cv_func_signbit=no],
-        [gl_cv_func_signbit="guessing no"])
+])],
+        [gl_cv_func_signbit=yes],
+        [gl_cv_func_signbit=no],
+        [case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_signbit="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_signbit="guessing no" ;;
+         esac
+        ])
     ])
   dnl GCC 4.0 and newer provides three built-ins for signbit.
   dnl They can be used without warnings, also in C++, regardless of <math.h>.
@@ -32,7 +42,8 @@ AC_DEFUN([gl_SIGNBIT],
   dnl libc.
   AC_CACHE_CHECK([for signbit compiler built-ins], [gl_cv_func_signbit_gcc],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #if __GNUC__ >= 4
 # define signbit(x) \
    (sizeof (x) == sizeof (long double) ? __builtin_signbitl (x) : \
@@ -43,84 +54,102 @@ AC_DEFUN([gl_SIGNBIT],
 #endif
 #include <string.h>
 ]gl_SIGNBIT_TEST_PROGRAM
-, [gl_cv_func_signbit_gcc=yes], [gl_cv_func_signbit_gcc=no],
-        [gl_cv_func_signbit_gcc="guessing no"])
+])],
+        [gl_cv_func_signbit_gcc=yes],
+        [gl_cv_func_signbit_gcc=no],
+        [case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_signbit_gcc="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_signbit_gcc="guessing no" ;;
+         esac
+        ])
     ])
   dnl Use the compiler built-ins whenever possible, because they are more
   dnl efficient than the system library functions (if they exist).
-  if test "$gl_cv_func_signbit_gcc" = yes; then
-    REPLACE_SIGNBIT_USING_GCC=1
-  else
-    if test "$gl_cv_func_signbit" != yes; then
-      REPLACE_SIGNBIT=1
-      AC_LIBOBJ([signbitf])
-      AC_LIBOBJ([signbitd])
-      AC_LIBOBJ([signbitl])
-      gl_FLOAT_SIGN_LOCATION
-      gl_DOUBLE_SIGN_LOCATION
-      gl_LONG_DOUBLE_SIGN_LOCATION
-      if test "$gl_cv_cc_float_signbit" = unknown; then
-        dnl Test whether copysignf() is declared.
-        AC_CHECK_DECLS([copysignf], , , [#include <math.h>])
-        if test "$ac_cv_have_decl_copysignf" = yes; then
-          dnl Test whether copysignf() can be used without libm.
-          AC_CACHE_CHECK([whether copysignf can be used without linking with libm],
-            [gl_cv_func_copysignf_no_libm],
-            [
-              AC_TRY_LINK([#include <math.h>
-                           float x, y;],
-                          [return copysignf (x, y) < 0;],
-                [gl_cv_func_copysignf_no_libm=yes],
-                [gl_cv_func_copysignf_no_libm=no])
-            ])
-          if test $gl_cv_func_copysignf_no_libm = yes; then
-            AC_DEFINE([HAVE_COPYSIGNF_IN_LIBC], [1],
-              [Define if the copysignf function is declared in <math.h> and available in libc.])
+  case "$gl_cv_func_signbit_gcc" in
+    *yes)
+      REPLACE_SIGNBIT_USING_GCC=1
+      ;;
+    *)
+      case "$gl_cv_func_signbit" in
+        *yes) ;;
+        *)
+          dnl REPLACE_SIGNBIT=1 makes sure the signbit[fdl] functions get built.
+          REPLACE_SIGNBIT=1
+          gl_FLOAT_SIGN_LOCATION
+          gl_DOUBLE_SIGN_LOCATION
+          gl_LONG_DOUBLE_SIGN_LOCATION
+          if test "$gl_cv_cc_float_signbit" = unknown; then
+            dnl Test whether copysignf() is declared.
+            AC_CHECK_DECLS([copysignf], , , [[#include <math.h>]])
+            if test "$ac_cv_have_decl_copysignf" = yes; then
+              dnl Test whether copysignf() can be used without libm.
+              AC_CACHE_CHECK([whether copysignf can be used without linking with libm],
+                [gl_cv_func_copysignf_no_libm],
+                [
+                  AC_LINK_IFELSE(
+                    [AC_LANG_PROGRAM(
+                       [[#include <math.h>
+                         float x, y;]],
+                       [[return copysignf (x, y) < 0;]])],
+                    [gl_cv_func_copysignf_no_libm=yes],
+                    [gl_cv_func_copysignf_no_libm=no])
+                ])
+              if test $gl_cv_func_copysignf_no_libm = yes; then
+                AC_DEFINE([HAVE_COPYSIGNF_IN_LIBC], [1],
+                  [Define if the copysignf function is declared in <math.h> and available in libc.])
+              fi
+            fi
           fi
-        fi
-      fi
-      if test "$gl_cv_cc_double_signbit" = unknown; then
-        dnl Test whether copysign() is declared.
-        AC_CHECK_DECLS([copysign], , , [#include <math.h>])
-        if test "$ac_cv_have_decl_copysign" = yes; then
-          dnl Test whether copysign() can be used without libm.
-          AC_CACHE_CHECK([whether copysign can be used without linking with libm],
-            [gl_cv_func_copysign_no_libm],
-            [
-              AC_TRY_LINK([#include <math.h>
-                           double x, y;],
-                          [return copysign (x, y) < 0;],
-                [gl_cv_func_copysign_no_libm=yes],
-                [gl_cv_func_copysign_no_libm=no])
-            ])
-          if test $gl_cv_func_copysign_no_libm = yes; then
-            AC_DEFINE([HAVE_COPYSIGN_IN_LIBC], [1],
-              [Define if the copysign function is declared in <math.h> and available in libc.])
+          if test "$gl_cv_cc_double_signbit" = unknown; then
+            dnl Test whether copysign() is declared.
+            AC_CHECK_DECLS([copysign], , , [[#include <math.h>]])
+            if test "$ac_cv_have_decl_copysign" = yes; then
+              dnl Test whether copysign() can be used without libm.
+              AC_CACHE_CHECK([whether copysign can be used without linking with libm],
+                [gl_cv_func_copysign_no_libm],
+                [
+                  AC_LINK_IFELSE(
+                    [AC_LANG_PROGRAM(
+                       [[#include <math.h>
+                         double x, y;]],
+                       [[return copysign (x, y) < 0;]])],
+                    [gl_cv_func_copysign_no_libm=yes],
+                    [gl_cv_func_copysign_no_libm=no])
+                ])
+              if test $gl_cv_func_copysign_no_libm = yes; then
+                AC_DEFINE([HAVE_COPYSIGN_IN_LIBC], [1],
+                  [Define if the copysign function is declared in <math.h> and available in libc.])
+              fi
+            fi
           fi
-        fi
-      fi
-      if test "$gl_cv_cc_long_double_signbit" = unknown; then
-        dnl Test whether copysignl() is declared.
-        AC_CHECK_DECLS([copysignl], , , [#include <math.h>])
-        if test "$ac_cv_have_decl_copysignl" = yes; then
-          dnl Test whether copysignl() can be used without libm.
-          AC_CACHE_CHECK([whether copysignl can be used without linking with libm],
-            [gl_cv_func_copysignl_no_libm],
-            [
-              AC_TRY_LINK([#include <math.h>
-                           long double x, y;],
-                          [return copysignl (x, y) < 0;],
-                [gl_cv_func_copysignl_no_libm=yes],
-                [gl_cv_func_copysignl_no_libm=no])
-            ])
-          if test $gl_cv_func_copysignl_no_libm = yes; then
-            AC_DEFINE([HAVE_COPYSIGNL_IN_LIBC], [1],
-              [Define if the copysignl function is declared in <math.h> and available in libc.])
+          if test "$gl_cv_cc_long_double_signbit" = unknown; then
+            dnl Test whether copysignl() is declared.
+            AC_CHECK_DECLS([copysignl], , , [[#include <math.h>]])
+            if test "$ac_cv_have_decl_copysignl" = yes; then
+              dnl Test whether copysignl() can be used without libm.
+              AC_CACHE_CHECK([whether copysignl can be used without linking with libm],
+                [gl_cv_func_copysignl_no_libm],
+                [
+                  AC_LINK_IFELSE(
+                    [AC_LANG_PROGRAM(
+                       [[#include <math.h>
+                         long double x, y;]],
+                       [[return copysignl (x, y) < 0;]])],
+                    [gl_cv_func_copysignl_no_libm=yes],
+                    [gl_cv_func_copysignl_no_libm=no])
+                ])
+              if test $gl_cv_func_copysignl_no_libm = yes; then
+                AC_DEFINE([HAVE_COPYSIGNL_IN_LIBC], [1],
+                  [Define if the copysignl function is declared in <math.h> and available in libc.])
+              fi
+            fi
           fi
-        fi
-      fi
-    fi
-  fi
+          ;;
+      esac
+      ;;
+  esac
 ])
 
 AC_DEFUN([gl_SIGNBIT_TEST_PROGRAM], [[
@@ -141,14 +170,15 @@ double m0d = -p0d;
 /* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
    So we use another constant expression instead.
    But that expression does not work on other platforms, such as when
-   cross-compiling to PowerPC on MacOS X 10.5.  */
+   cross-compiling to PowerPC on Mac OS X 10.5.  */
 long double p0l = 0.0L;
 #if defined __hpux || defined __sgi
 long double m0l = -LDBL_MIN * LDBL_MIN;
 #else
 long double m0l = -p0l;
 #endif
-  if (signbit (vf))
+  int result = 0;
+  if (signbit (vf)) /* link check */
     vf++;
   {
     float plus_inf = 1.0f / p0f;
@@ -159,9 +189,9 @@ long double m0l = -p0l;
           && (memcmp (&m0f, &p0f, sizeof (float)) == 0 || signbit (m0f))
           && !signbit (plus_inf)
           && signbit (minus_inf)))
-      return 1;
+      result |= 1;
   }
-  if (signbit (vd))
+  if (signbit (vd)) /* link check */
     vd++;
   {
     double plus_inf = 1.0 / p0d;
@@ -172,22 +202,27 @@ long double m0l = -p0l;
           && (memcmp (&m0d, &p0d, sizeof (double)) == 0 || signbit (m0d))
           && !signbit (plus_inf)
           && signbit (minus_inf)))
-      return 1;
+      result |= 2;
   }
-  if (signbit (vl))
+  if (signbit (vl)) /* link check */
     vl++;
   {
     long double plus_inf = 1.0L / p0l;
     long double minus_inf = -1.0L / p0l;
-    if (!(!signbit (255.0L)
-          && signbit (-255.0L)
-          && !signbit (p0l)
-          && (memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l))
-          && !signbit (plus_inf)
-          && signbit (minus_inf)))
-      return 1;
+    if (signbit (255.0L))
+      result |= 4;
+    if (!signbit (-255.0L))
+      result |= 4;
+    if (signbit (p0l))
+      result |= 8;
+    if (!(memcmp (&m0l, &p0l, sizeof (long double)) == 0 || signbit (m0l)))
+      result |= 16;
+    if (signbit (plus_inf))
+      result |= 32;
+    if (!signbit (minus_inf))
+      result |= 64;
   }
-  return 0;
+  return result;
 }
 ]])
 
@@ -211,7 +246,8 @@ AC_DEFUN([gl_FLOATTYPE_SIGN_LOCATION],
   AC_CACHE_CHECK([where to find the sign bit in a '$1'],
     [$2],
     [
-      AC_TRY_RUN([
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
 #include <stddef.h>
 #include <stdio.h>
 #define NWORDS \
@@ -236,7 +272,7 @@ int main ()
         {
           /* More than one bit difference.  */
           fprintf (fp, "unknown");
-          return 1;
+          return 2;
         }
       if (x)
         {
@@ -248,7 +284,7 @@ int main ()
     {
       /* No difference.  */
       fprintf (fp, "unknown");
-      return 1;
+      return 3;
     }
   /* Now m = plus.word[k] ^ ~minus.word[k].  */
   if (plus.word[k] & ~minus.word[k])
@@ -256,15 +292,17 @@ int main ()
       /* Oh? The sign bit is set in the positive and cleared in the negative
          numbers?  */
       fprintf (fp, "unknown");
-      return 1;
+      return 4;
     }
   for (i = 0; ; i++)
     if ((m >> i) & 1)
       break;
   fprintf (fp, "word %d bit %d", (int) k, (int) i);
-  return (fclose (fp) != 0);
+  if (fclose (fp) != 0)
+    return 5;
+  return 0;
 }
-        ],
+        ]])],
         [$2=`cat conftest.out`],
         [$2="unknown"],
         [
@@ -285,3 +323,43 @@ int main ()
       ;;
   esac
 ])
+
+# Expands to code that defines a function signbitf(float).
+# It extracts the sign bit of a non-NaN value.
+AC_DEFUN([gl_FLOAT_SIGNBIT_CODE],
+[
+  gl_FLOATTYPE_SIGNBIT_CODE([float], [f], [f])
+])
+
+# Expands to code that defines a function signbitd(double).
+# It extracts the sign bit of a non-NaN value.
+AC_DEFUN([gl_DOUBLE_SIGNBIT_CODE],
+[
+  gl_FLOATTYPE_SIGNBIT_CODE([double], [d], [])
+])
+
+# Expands to code that defines a function signbitl(long double).
+# It extracts the sign bit of a non-NaN value.
+AC_DEFUN([gl_LONG_DOUBLE_SIGNBIT_CODE],
+[
+  gl_FLOATTYPE_SIGNBIT_CODE([long double], [l], [L])
+])
+
+AC_DEFUN([gl_FLOATTYPE_SIGNBIT_CODE],
+[[
+static int
+signbit$2 ($1 value)
+{
+  typedef union { $1 f; unsigned char b[sizeof ($1)]; } float_union;
+  static float_union plus_one = { 1.0$3 };   /* unused bits are zero here */
+  static float_union minus_one = { -1.0$3 }; /* unused bits are zero here */
+  /* Compute the sign bit mask as the XOR of plus_one and minus_one.  */
+  float_union u;
+  unsigned int i;
+  u.f = value;
+  for (i = 0; i < sizeof ($1); i++)
+    if (u.b[i] & (plus_one.b[i] ^ minus_one.b[i]))
+      return 1;
+  return 0;
+}
+]])
index ce992db..7e192d5 100644 (file)
@@ -1,5 +1,5 @@
-# size_max.m4 serial 9
-dnl Copyright (C) 2003, 2005-2006, 2008-2010 Free Software Foundation, Inc.
+# size_max.m4 serial 10
+dnl Copyright (C) 2003, 2005-2006, 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -34,10 +34,14 @@ Found it
         if test $fits_in_uint = 1; then
           dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
           dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
-          AC_TRY_COMPILE([#include <stddef.h>
-            extern size_t foo;
-            extern unsigned long foo;
-            ], [], [fits_in_uint=0])
+          AC_COMPILE_IFELSE(
+            [AC_LANG_PROGRAM(
+               [[#include <stddef.h>
+                 extern size_t foo;
+                 extern unsigned long foo;
+               ]],
+               [[]])],
+            [fits_in_uint=0])
         fi
         dnl We cannot use 'expr' to simplify this expression, because 'expr'
         dnl works only with 'long' integers in the host environment, while we
diff --git a/gnulib-m4/ssize_t.m4 b/gnulib-m4/ssize_t.m4
new file mode 100644 (file)
index 0000000..fbe1d06
--- /dev/null
@@ -0,0 +1,23 @@
+# ssize_t.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2001-2003, 2006, 2010-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether ssize_t is defined.
+
+AC_DEFUN([gt_TYPE_SSIZE_T],
+[
+  AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <sys/types.h>]],
+          [[int x = sizeof (ssize_t *) + sizeof (ssize_t);
+            return !x;]])],
+       [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])])
+  if test $gt_cv_ssize_t = no; then
+    AC_DEFINE([ssize_t], [int],
+              [Define as a signed type of the same size as size_t.])
+  fi
+])
index 3d672d7..006ed52 100644 (file)
@@ -1,15 +1,17 @@
 # Check for stdbool.h that conforms to C99.
 
-dnl Copyright (C) 2002-2006, 2009-2010 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
+#serial 5
+
 # Prepare for substituting <stdbool.h> if it is not supported.
 
 AC_DEFUN([AM_STDBOOL_H],
 [
-  AC_REQUIRE([AC_HEADER_STDBOOL])
+  AC_REQUIRE([AC_CHECK_HEADER_STDBOOL])
 
   # Define two additional variables used in the Makefile substitution.
 
@@ -19,6 +21,7 @@ AC_DEFUN([AM_STDBOOL_H],
     STDBOOL_H='stdbool.h'
   fi
   AC_SUBST([STDBOOL_H])
+  AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"])
 
   if test "$ac_cv_type__Bool" = yes; then
     HAVE__BOOL=1
@@ -31,85 +34,67 @@ AC_DEFUN([AM_STDBOOL_H],
 # AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future.
 AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H])
 
-# This macro is only needed in autoconf <= 2.59.  Newer versions of autoconf
-# have this macro built-in.
+# This version of the macro is needed in autoconf <= 2.68.
 
-AC_DEFUN([AC_HEADER_STDBOOL],
+AC_DEFUN([AC_CHECK_HEADER_STDBOOL],
   [AC_CACHE_CHECK([for stdbool.h that conforms to C99],
      [ac_cv_header_stdbool_h],
-     [AC_TRY_COMPILE(
-        [
-          #include <stdbool.h>
-          #ifndef bool
-           "error: bool is not defined"
-          #endif
-          #ifndef false
-           "error: false is not defined"
-          #endif
-          #if false
-           "error: false is not 0"
-          #endif
-          #ifndef true
-           "error: true is not defined"
-          #endif
-          #if true != 1
-           "error: true is not 1"
-          #endif
-          #ifndef __bool_true_false_are_defined
-           "error: __bool_true_false_are_defined is not defined"
-          #endif
+     [AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[
+             #include <stdbool.h>
+             #ifndef bool
+              "error: bool is not defined"
+             #endif
+             #ifndef false
+              "error: false is not defined"
+             #endif
+             #if false
+              "error: false is not 0"
+             #endif
+             #ifndef true
+              "error: true is not defined"
+             #endif
+             #if true != 1
+              "error: true is not 1"
+             #endif
+             #ifndef __bool_true_false_are_defined
+              "error: __bool_true_false_are_defined is not defined"
+             #endif
 
-          struct s { _Bool s: 1; _Bool t; } s;
+             struct s { _Bool s: 1; _Bool t; } s;
 
-          char a[true == 1 ? 1 : -1];
-          char b[false == 0 ? 1 : -1];
-          char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-          char d[(bool) 0.5 == true ? 1 : -1];
-          bool e = &s;
-          char f[(_Bool) 0.0 == false ? 1 : -1];
-          char g[true];
-          char h[sizeof (_Bool)];
-          char i[sizeof s.t];
-          enum { j = false, k = true, l = false * true, m = true * 256 };
-          _Bool n[m];
-          char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-          char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-          #if defined __xlc__ || defined __GNUC__
-           /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
-              reported by James Lemley on 2005-10-05; see
-              http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
-              This test is not quite right, since xlc is allowed to
-              reject this program, as the initializer for xlcbug is
-              not one of the forms that C requires support for.
-              However, doing the test right would require a run-time
-              test, and that would make cross-compilation harder.
-              Let us hope that IBM fixes the xlc bug, and also adds
-              support for this kind of constant expression.  In the
-              meantime, this test will reject xlc, which is OK, since
-              our stdbool.h substitute should suffice.  We also test
-              this with GCC, where it should work, to detect more
-              quickly whether someone messes up the test in the
-              future.  */
-           char digs[] = "0123456789";
-           int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
-          #endif
-          /* Catch a bug in an HP-UX C compiler.  See
-             http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-             http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-           */
-          _Bool q = true;
-          _Bool *pq = &q;
-        ],
-        [
-          *pq |= q;
-          *pq |= ! q;
-          /* Refer to every declared value, to avoid compiler optimizations.  */
-          return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
-                  + !m + !n + !o + !p + !q + !pq);
-        ],
+             char a[true == 1 ? 1 : -1];
+             char b[false == 0 ? 1 : -1];
+             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+             char d[(bool) 0.5 == true ? 1 : -1];
+             /* See body of main program for 'e'.  */
+             char f[(_Bool) 0.0 == false ? 1 : -1];
+             char g[true];
+             char h[sizeof (_Bool)];
+             char i[sizeof s.t];
+             enum { j = false, k = true, l = false * true, m = true * 256 };
+             /* The following fails for
+                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+             _Bool n[m];
+             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+             char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+             /* Catch a bug in an HP-UX C compiler.  See
+                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+              */
+             _Bool q = true;
+             _Bool *pq = &q;
+           ]],
+           [[
+             bool e = &s;
+             *pq |= q;
+             *pq |= ! q;
+             /* Refer to every declared value, to avoid compiler optimizations.  */
+             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+                     + !m + !n + !o + !p + !q + !pq);
+           ]])],
         [ac_cv_header_stdbool_h=yes],
         [ac_cv_header_stdbool_h=no])])
    AC_CHECK_TYPES([_Bool])
-   if test $ac_cv_header_stdbool_h = yes; then
-     AC_DEFINE([HAVE_STDBOOL_H], [1], [Define to 1 if stdbool.h conforms to C99.])
-   fi])
+])
index c3ae569..c555e29 100644 (file)
@@ -1,6 +1,6 @@
 dnl A placeholder for POSIX 2008 <stddef.h>, for platforms that have issues.
-# stddef_h.m4 serial 2
-dnl Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+# stddef_h.m4 serial 4
+dnl Copyright (C) 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,6 +9,7 @@ AC_DEFUN([gl_STDDEF_H],
 [
   AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
   AC_REQUIRE([gt_TYPE_WCHAR_T])
+  STDDEF_H=
   if test $gt_cv_c_wchar_t = no; then
     HAVE_WCHAR_T=0
     STDDEF_H=stddef.h
@@ -24,8 +25,10 @@ AC_DEFUN([gl_STDDEF_H],
     REPLACE_NULL=1
     STDDEF_H=stddef.h
   fi
+  AC_SUBST([STDDEF_H])
+  AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"])
   if test -n "$STDDEF_H"; then
-    gl_CHECK_NEXT_HEADERS([stddef.h])
+    gl_NEXT_HEADERS([stddef.h])
   fi
 ])
 
@@ -41,5 +44,4 @@ AC_DEFUN([gl_STDDEF_H_DEFAULTS],
   dnl Assume proper GNU behavior unless another module says otherwise.
   REPLACE_NULL=0;                AC_SUBST([REPLACE_NULL])
   HAVE_WCHAR_T=1;                AC_SUBST([HAVE_WCHAR_T])
-  STDDEF_H='';                   AC_SUBST([STDDEF_H])
 ])
index 1cc57e6..1981d9d 100644 (file)
@@ -1,5 +1,5 @@
-# stdint.m4 serial 34
-dnl Copyright (C) 2001-2010 Free Software Foundation, Inc.
+# stdint.m4 serial 43
+dnl Copyright (C) 2001-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,7 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 dnl From Paul Eggert and Bruno Haible.
 dnl Test whether <stdint.h> is supported or must be substituted.
 
-AC_DEFUN([gl_STDINT_H],
+AC_DEFUN_ONCE([gl_STDINT_H],
 [
   AC_PREREQ([2.59])dnl
 
@@ -27,6 +27,15 @@ AC_DEFUN([gl_STDINT_H],
   fi
   AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT])
 
+  dnl Check for <wchar.h>, in the same way as gl_WCHAR_H does.
+  AC_CHECK_HEADERS_ONCE([wchar.h])
+  if test $ac_cv_header_wchar_h = yes; then
+    HAVE_WCHAR_H=1
+  else
+    HAVE_WCHAR_H=0
+  fi
+  AC_SUBST([HAVE_WCHAR_H])
+
   dnl Check for <inttypes.h>.
   dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h.
   if test $ac_cv_header_inttypes_h = yes; then
@@ -60,8 +69,6 @@ AC_DEFUN([gl_STDINT_H],
       [gl_cv_header_working_stdint_h=no
        AC_COMPILE_IFELSE([
          AC_LANG_PROGRAM([[
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
 #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
 #include <stdint.h>
 /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
@@ -145,9 +152,11 @@ uintmax_t j = UINTMAX_MAX;
 
 #include <limits.h> /* for CHAR_BIT */
 #define TYPE_MINIMUM(t) \
-  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
+  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
 #define TYPE_MAXIMUM(t) \
-  ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
+  ((t) ((t) 0 < (t) -1 \
+        ? (t) -1 \
+        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
 struct s {
   int check_PTRDIFF:
       PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
@@ -208,8 +217,6 @@ struct s {
           dnl This detects a bug on HP-UX 11.23/ia64.
           AC_RUN_IFELSE([
             AC_LANG_PROGRAM([[
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
 #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
 #include <stdint.h>
 ]
@@ -259,7 +266,7 @@ static const char *macro_values[] =
           || strncmp (value, "((int)"/*)*/, 6) == 0
           || strncmp (value, "((signed short)"/*)*/, 15) == 0
           || strncmp (value, "((signed char)"/*)*/, 14) == 0)
-        return 1;
+        return mv - macro_values + 1;
     }
   return 0;
 ]])],
@@ -290,14 +297,11 @@ static const char *macro_values[] =
     fi
     AC_SUBST([HAVE_SYS_BITYPES_H])
 
-    dnl Check for <wchar.h> (missing in Linux uClibc when built without wide
-    dnl character support).
-    AC_CHECK_HEADERS_ONCE([wchar.h])
-
     gl_STDINT_TYPE_PROPERTIES
     STDINT_H=stdint.h
   fi
   AC_SUBST([STDINT_H])
+  AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"])
 ])
 
 dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES)
@@ -309,7 +313,7 @@ AC_DEFUN([gl_STDINT_BITSIZEOF],
   dnl   config.h.in,
   dnl - extra AC_SUBST calls, so that the right substitutions are made.
   m4_foreach_w([gltype], [$1],
-    [AH_TEMPLATE([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+    [AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
        [Define to the number of bits in type ']gltype['.])])
   for gltype in $1 ; do
     AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}],
@@ -334,7 +338,7 @@ AC_DEFUN([gl_STDINT_BITSIZEOF],
     eval BITSIZEOF_${GLTYPE}=\$result
   done
   m4_foreach_w([gltype], [$1],
-    [AC_SUBST([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+    [AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
 ])
 
 dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES)
@@ -347,7 +351,7 @@ AC_DEFUN([gl_CHECK_TYPES_SIGNED],
   dnl   config.h.in,
   dnl - extra AC_SUBST calls, so that the right substitutions are made.
   m4_foreach_w([gltype], [$1],
-    [AH_TEMPLATE([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+    [AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
        [Define to 1 if ']gltype[' is a signed integer type.])])
   for gltype in $1 ; do
     AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed],
@@ -367,7 +371,7 @@ AC_DEFUN([gl_CHECK_TYPES_SIGNED],
     fi
   done
   m4_foreach_w([gltype], [$1],
-    [AC_SUBST([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+    [AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
 ])
 
 dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES)
@@ -380,7 +384,7 @@ AC_DEFUN([gl_INTEGER_TYPE_SUFFIX],
   dnl   config.h.in,
   dnl - extra AC_SUBST calls, so that the right substitutions are made.
   m4_foreach_w([gltype], [$1],
-    [AH_TEMPLATE(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX],
+    [AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX],
        [Define to l, ll, u, ul, ull, etc., as suitable for
         constants of type ']gltype['.])])
   for gltype in $1 ; do
@@ -419,7 +423,7 @@ AC_DEFUN([gl_INTEGER_TYPE_SUFFIX],
     AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result])
   done
   m4_foreach_w([gltype], [$1],
-    [AC_SUBST(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])])
+    [AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])])
 ])
 
 dnl gl_STDINT_INCLUDES
@@ -458,6 +462,14 @@ AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
   fi
   gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t],
     [gl_STDINT_INCLUDES])
+
+  dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99
+  dnl requirement that wint_t is "unchanged by default argument promotions".
+  dnl In this case gnulib's <wchar.h> and <wctype.h> override wint_t.
+  dnl Set the variable BITSIZEOF_WINT_T accordingly.
+  if test $BITSIZEOF_WINT_T -lt 32; then
+    BITSIZEOF_WINT_T=32
+  fi
 ])
 
 dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
index b8e3c6c..7fc2ce9 100644 (file)
@@ -1,5 +1,5 @@
-# stdint_h.m4 serial 8
-dnl Copyright (C) 1997-2004, 2006, 2008-2010 Free Software Foundation, Inc.
+# stdint_h.m4 serial 9
+dnl Copyright (C) 1997-2004, 2006, 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -12,12 +12,13 @@ dnl From Paul Eggert.
 AC_DEFUN([gl_AC_HEADER_STDINT_H],
 [
   AC_CACHE_CHECK([for stdint.h], [gl_cv_header_stdint_h],
-  [AC_TRY_COMPILE(
-    [#include <sys/types.h>
-#include <stdint.h>],
-    [uintmax_t i = (uintmax_t) -1; return !i;],
-    [gl_cv_header_stdint_h=yes],
-    [gl_cv_header_stdint_h=no])])
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <sys/types.h>
+            #include <stdint.h>]],
+          [[uintmax_t i = (uintmax_t) -1; return !i;]])],
+       [gl_cv_header_stdint_h=yes],
+       [gl_cv_header_stdint_h=no])])
   if test $gl_cv_header_stdint_h = yes; then
     AC_DEFINE_UNQUOTED([HAVE_STDINT_H_WITH_UINTMAX], [1],
       [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
diff --git a/gnulib-m4/stdio_h.m4 b/gnulib-m4/stdio_h.m4
new file mode 100644 (file)
index 0000000..d15913a
--- /dev/null
@@ -0,0 +1,194 @@
+# stdio_h.m4 serial 43
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_STDIO_H],
+[
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  gl_NEXT_HEADERS([stdio.h])
+
+  dnl No need to create extra modules for these functions. Everyone who uses
+  dnl <stdio.h> likely needs them.
+  GNULIB_FSCANF=1
+  gl_MODULE_INDICATOR([fscanf])
+  GNULIB_SCANF=1
+  gl_MODULE_INDICATOR([scanf])
+  GNULIB_FGETC=1
+  GNULIB_GETC=1
+  GNULIB_GETCHAR=1
+  GNULIB_FGETS=1
+  GNULIB_FREAD=1
+  dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
+  dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+  dnl also an optimization, to avoid performing a configure check whose result
+  dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
+  dnl or GNULIB_NONBLOCKING redundant.
+  m4_ifdef([gl_NONBLOCKING_IO], [
+    gl_NONBLOCKING_IO
+    if test $gl_cv_have_nonblocking != yes; then
+      REPLACE_STDIO_READ_FUNCS=1
+      AC_LIBOBJ([stdio-read])
+    fi
+  ])
+
+  dnl No need to create extra modules for these functions. Everyone who uses
+  dnl <stdio.h> likely needs them.
+  GNULIB_FPRINTF=1
+  GNULIB_PRINTF=1
+  GNULIB_VFPRINTF=1
+  GNULIB_VPRINTF=1
+  GNULIB_FPUTC=1
+  GNULIB_PUTC=1
+  GNULIB_PUTCHAR=1
+  GNULIB_FPUTS=1
+  GNULIB_PUTS=1
+  GNULIB_FWRITE=1
+  dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
+  dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+  dnl also an optimization, to avoid performing a configure check whose result
+  dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or
+  dnl GNULIB_SIGPIPE redundant.
+  m4_ifdef([gl_SIGNAL_SIGPIPE], [
+    gl_SIGNAL_SIGPIPE
+    if test $gl_cv_header_signal_h_SIGPIPE != yes; then
+      REPLACE_STDIO_WRITE_FUNCS=1
+      AC_LIBOBJ([stdio-write])
+    fi
+  ])
+  dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
+  dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+  dnl also an optimization, to avoid performing a configure check whose result
+  dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
+  dnl or GNULIB_NONBLOCKING redundant.
+  m4_ifdef([gl_NONBLOCKING_IO], [
+    gl_NONBLOCKING_IO
+    if test $gl_cv_have_nonblocking != yes; then
+      REPLACE_STDIO_WRITE_FUNCS=1
+      AC_LIBOBJ([stdio-write])
+    fi
+  ])
+
+  dnl Check for declarations of anything we want to poison if the
+  dnl corresponding gnulib module is not in use, and which is not
+  dnl guaranteed by both C89 and C11.
+  gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
+    ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen
+    renameat snprintf tmpfile vdprintf vsnprintf])
+])
+
+AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+  dnl Define it also as a C macro, for the benefit of the unit tests.
+  gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_STDIO_H_DEFAULTS],
+[
+  GNULIB_DPRINTF=0;              AC_SUBST([GNULIB_DPRINTF])
+  GNULIB_FCLOSE=0;               AC_SUBST([GNULIB_FCLOSE])
+  GNULIB_FDOPEN=0;               AC_SUBST([GNULIB_FDOPEN])
+  GNULIB_FFLUSH=0;               AC_SUBST([GNULIB_FFLUSH])
+  GNULIB_FGETC=0;                AC_SUBST([GNULIB_FGETC])
+  GNULIB_FGETS=0;                AC_SUBST([GNULIB_FGETS])
+  GNULIB_FOPEN=0;                AC_SUBST([GNULIB_FOPEN])
+  GNULIB_FPRINTF=0;              AC_SUBST([GNULIB_FPRINTF])
+  GNULIB_FPRINTF_POSIX=0;        AC_SUBST([GNULIB_FPRINTF_POSIX])
+  GNULIB_FPURGE=0;               AC_SUBST([GNULIB_FPURGE])
+  GNULIB_FPUTC=0;                AC_SUBST([GNULIB_FPUTC])
+  GNULIB_FPUTS=0;                AC_SUBST([GNULIB_FPUTS])
+  GNULIB_FREAD=0;                AC_SUBST([GNULIB_FREAD])
+  GNULIB_FREOPEN=0;              AC_SUBST([GNULIB_FREOPEN])
+  GNULIB_FSCANF=0;               AC_SUBST([GNULIB_FSCANF])
+  GNULIB_FSEEK=0;                AC_SUBST([GNULIB_FSEEK])
+  GNULIB_FSEEKO=0;               AC_SUBST([GNULIB_FSEEKO])
+  GNULIB_FTELL=0;                AC_SUBST([GNULIB_FTELL])
+  GNULIB_FTELLO=0;               AC_SUBST([GNULIB_FTELLO])
+  GNULIB_FWRITE=0;               AC_SUBST([GNULIB_FWRITE])
+  GNULIB_GETC=0;                 AC_SUBST([GNULIB_GETC])
+  GNULIB_GETCHAR=0;              AC_SUBST([GNULIB_GETCHAR])
+  GNULIB_GETDELIM=0;             AC_SUBST([GNULIB_GETDELIM])
+  GNULIB_GETLINE=0;              AC_SUBST([GNULIB_GETLINE])
+  GNULIB_OBSTACK_PRINTF=0;       AC_SUBST([GNULIB_OBSTACK_PRINTF])
+  GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
+  GNULIB_PCLOSE=0;               AC_SUBST([GNULIB_PCLOSE])
+  GNULIB_PERROR=0;               AC_SUBST([GNULIB_PERROR])
+  GNULIB_POPEN=0;                AC_SUBST([GNULIB_POPEN])
+  GNULIB_PRINTF=0;               AC_SUBST([GNULIB_PRINTF])
+  GNULIB_PRINTF_POSIX=0;         AC_SUBST([GNULIB_PRINTF_POSIX])
+  GNULIB_PUTC=0;                 AC_SUBST([GNULIB_PUTC])
+  GNULIB_PUTCHAR=0;              AC_SUBST([GNULIB_PUTCHAR])
+  GNULIB_PUTS=0;                 AC_SUBST([GNULIB_PUTS])
+  GNULIB_REMOVE=0;               AC_SUBST([GNULIB_REMOVE])
+  GNULIB_RENAME=0;               AC_SUBST([GNULIB_RENAME])
+  GNULIB_RENAMEAT=0;             AC_SUBST([GNULIB_RENAMEAT])
+  GNULIB_SCANF=0;                AC_SUBST([GNULIB_SCANF])
+  GNULIB_SNPRINTF=0;             AC_SUBST([GNULIB_SNPRINTF])
+  GNULIB_SPRINTF_POSIX=0;        AC_SUBST([GNULIB_SPRINTF_POSIX])
+  GNULIB_STDIO_H_NONBLOCKING=0;  AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
+  GNULIB_STDIO_H_SIGPIPE=0;      AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
+  GNULIB_TMPFILE=0;              AC_SUBST([GNULIB_TMPFILE])
+  GNULIB_VASPRINTF=0;            AC_SUBST([GNULIB_VASPRINTF])
+  GNULIB_VFSCANF=0;              AC_SUBST([GNULIB_VFSCANF])
+  GNULIB_VSCANF=0;               AC_SUBST([GNULIB_VSCANF])
+  GNULIB_VDPRINTF=0;             AC_SUBST([GNULIB_VDPRINTF])
+  GNULIB_VFPRINTF=0;             AC_SUBST([GNULIB_VFPRINTF])
+  GNULIB_VFPRINTF_POSIX=0;       AC_SUBST([GNULIB_VFPRINTF_POSIX])
+  GNULIB_VPRINTF=0;              AC_SUBST([GNULIB_VPRINTF])
+  GNULIB_VPRINTF_POSIX=0;        AC_SUBST([GNULIB_VPRINTF_POSIX])
+  GNULIB_VSNPRINTF=0;            AC_SUBST([GNULIB_VSNPRINTF])
+  GNULIB_VSPRINTF_POSIX=0;       AC_SUBST([GNULIB_VSPRINTF_POSIX])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_DECL_FPURGE=1;            AC_SUBST([HAVE_DECL_FPURGE])
+  HAVE_DECL_FSEEKO=1;            AC_SUBST([HAVE_DECL_FSEEKO])
+  HAVE_DECL_FTELLO=1;            AC_SUBST([HAVE_DECL_FTELLO])
+  HAVE_DECL_GETDELIM=1;          AC_SUBST([HAVE_DECL_GETDELIM])
+  HAVE_DECL_GETLINE=1;           AC_SUBST([HAVE_DECL_GETLINE])
+  HAVE_DECL_OBSTACK_PRINTF=1;    AC_SUBST([HAVE_DECL_OBSTACK_PRINTF])
+  HAVE_DECL_SNPRINTF=1;          AC_SUBST([HAVE_DECL_SNPRINTF])
+  HAVE_DECL_VSNPRINTF=1;         AC_SUBST([HAVE_DECL_VSNPRINTF])
+  HAVE_DPRINTF=1;                AC_SUBST([HAVE_DPRINTF])
+  HAVE_FSEEKO=1;                 AC_SUBST([HAVE_FSEEKO])
+  HAVE_FTELLO=1;                 AC_SUBST([HAVE_FTELLO])
+  HAVE_PCLOSE=1;                 AC_SUBST([HAVE_PCLOSE])
+  HAVE_POPEN=1;                  AC_SUBST([HAVE_POPEN])
+  HAVE_RENAMEAT=1;               AC_SUBST([HAVE_RENAMEAT])
+  HAVE_VASPRINTF=1;              AC_SUBST([HAVE_VASPRINTF])
+  HAVE_VDPRINTF=1;               AC_SUBST([HAVE_VDPRINTF])
+  REPLACE_DPRINTF=0;             AC_SUBST([REPLACE_DPRINTF])
+  REPLACE_FCLOSE=0;              AC_SUBST([REPLACE_FCLOSE])
+  REPLACE_FDOPEN=0;              AC_SUBST([REPLACE_FDOPEN])
+  REPLACE_FFLUSH=0;              AC_SUBST([REPLACE_FFLUSH])
+  REPLACE_FOPEN=0;               AC_SUBST([REPLACE_FOPEN])
+  REPLACE_FPRINTF=0;             AC_SUBST([REPLACE_FPRINTF])
+  REPLACE_FPURGE=0;              AC_SUBST([REPLACE_FPURGE])
+  REPLACE_FREOPEN=0;             AC_SUBST([REPLACE_FREOPEN])
+  REPLACE_FSEEK=0;               AC_SUBST([REPLACE_FSEEK])
+  REPLACE_FSEEKO=0;              AC_SUBST([REPLACE_FSEEKO])
+  REPLACE_FTELL=0;               AC_SUBST([REPLACE_FTELL])
+  REPLACE_FTELLO=0;              AC_SUBST([REPLACE_FTELLO])
+  REPLACE_GETDELIM=0;            AC_SUBST([REPLACE_GETDELIM])
+  REPLACE_GETLINE=0;             AC_SUBST([REPLACE_GETLINE])
+  REPLACE_OBSTACK_PRINTF=0;      AC_SUBST([REPLACE_OBSTACK_PRINTF])
+  REPLACE_PERROR=0;              AC_SUBST([REPLACE_PERROR])
+  REPLACE_POPEN=0;               AC_SUBST([REPLACE_POPEN])
+  REPLACE_PRINTF=0;              AC_SUBST([REPLACE_PRINTF])
+  REPLACE_REMOVE=0;              AC_SUBST([REPLACE_REMOVE])
+  REPLACE_RENAME=0;              AC_SUBST([REPLACE_RENAME])
+  REPLACE_RENAMEAT=0;            AC_SUBST([REPLACE_RENAMEAT])
+  REPLACE_SNPRINTF=0;            AC_SUBST([REPLACE_SNPRINTF])
+  REPLACE_SPRINTF=0;             AC_SUBST([REPLACE_SPRINTF])
+  REPLACE_STDIO_READ_FUNCS=0;    AC_SUBST([REPLACE_STDIO_READ_FUNCS])
+  REPLACE_STDIO_WRITE_FUNCS=0;   AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
+  REPLACE_TMPFILE=0;             AC_SUBST([REPLACE_TMPFILE])
+  REPLACE_VASPRINTF=0;           AC_SUBST([REPLACE_VASPRINTF])
+  REPLACE_VDPRINTF=0;            AC_SUBST([REPLACE_VDPRINTF])
+  REPLACE_VFPRINTF=0;            AC_SUBST([REPLACE_VFPRINTF])
+  REPLACE_VPRINTF=0;             AC_SUBST([REPLACE_VPRINTF])
+  REPLACE_VSNPRINTF=0;           AC_SUBST([REPLACE_VSNPRINTF])
+  REPLACE_VSPRINTF=0;            AC_SUBST([REPLACE_VSPRINTF])
+])
index dd84796..03b448b 100644 (file)
@@ -1,5 +1,5 @@
-# stdlib_h.m4 serial 28
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# stdlib_h.m4 serial 42
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,21 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_STDLIB_H],
 [
   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
-  gl_CHECK_NEXT_HEADERS([stdlib.h])
-  AC_CHECK_HEADERS([random.h], [], [], [AC_INCLUDES_DEFAULT])
-  if test $ac_cv_header_random_h = yes; then
-    HAVE_RANDOM_H=1
-  else
-    HAVE_RANDOM_H=0
-  fi
-  AC_SUBST([HAVE_RANDOM_H])
-  AC_CHECK_TYPES([struct random_data],
-    [], [HAVE_STRUCT_RANDOM_DATA=0],
-    [[#include <stdlib.h>
-      #if HAVE_RANDOM_H
-      # include <random.h>
-      #endif
-    ]])
+  gl_NEXT_HEADERS([stdlib.h])
 
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use, and which is not
@@ -33,10 +19,11 @@ AC_DEFUN([gl_STDLIB_H],
 #if HAVE_RANDOM_H
 # include <random.h>
 #endif
-    ]], [atoll canonicalize_file_name getloadavg getsubopt grantpt mkdtemp
-    mkostemp mkostemps mkstemp mkstemps ptsname random_r initstat_r srandom_r
-    setstate_r realpath rpmatch setenv strtod strtoll strtoull unlockpt
-    unsetenv])
+    ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt
+    initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps
+    posix_openpt ptsname ptsname_r random random_r realpath rpmatch
+    secure_getenv setenv setstate setstate_r srandom srandom_r
+    strtod strtoll strtoull unlockpt unsetenv])
 ])
 
 AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
@@ -50,6 +37,7 @@ AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
 
 AC_DEFUN([gl_STDLIB_H_DEFAULTS],
 [
+  GNULIB__EXIT=0;         AC_SUBST([GNULIB__EXIT])
   GNULIB_ATOLL=0;         AC_SUBST([GNULIB_ATOLL])
   GNULIB_CALLOC_POSIX=0;  AC_SUBST([GNULIB_CALLOC_POSIX])
   GNULIB_CANONICALIZE_FILE_NAME=0;  AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME])
@@ -57,54 +45,73 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   GNULIB_GETSUBOPT=0;     AC_SUBST([GNULIB_GETSUBOPT])
   GNULIB_GRANTPT=0;       AC_SUBST([GNULIB_GRANTPT])
   GNULIB_MALLOC_POSIX=0;  AC_SUBST([GNULIB_MALLOC_POSIX])
+  GNULIB_MBTOWC=0;        AC_SUBST([GNULIB_MBTOWC])
   GNULIB_MKDTEMP=0;       AC_SUBST([GNULIB_MKDTEMP])
   GNULIB_MKOSTEMP=0;      AC_SUBST([GNULIB_MKOSTEMP])
   GNULIB_MKOSTEMPS=0;     AC_SUBST([GNULIB_MKOSTEMPS])
   GNULIB_MKSTEMP=0;       AC_SUBST([GNULIB_MKSTEMP])
   GNULIB_MKSTEMPS=0;      AC_SUBST([GNULIB_MKSTEMPS])
+  GNULIB_POSIX_OPENPT=0;  AC_SUBST([GNULIB_POSIX_OPENPT])
   GNULIB_PTSNAME=0;       AC_SUBST([GNULIB_PTSNAME])
+  GNULIB_PTSNAME_R=0;     AC_SUBST([GNULIB_PTSNAME_R])
   GNULIB_PUTENV=0;        AC_SUBST([GNULIB_PUTENV])
+  GNULIB_RANDOM=0;        AC_SUBST([GNULIB_RANDOM])
   GNULIB_RANDOM_R=0;      AC_SUBST([GNULIB_RANDOM_R])
   GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
   GNULIB_REALPATH=0;      AC_SUBST([GNULIB_REALPATH])
   GNULIB_RPMATCH=0;       AC_SUBST([GNULIB_RPMATCH])
+  GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV])
   GNULIB_SETENV=0;        AC_SUBST([GNULIB_SETENV])
   GNULIB_STRTOD=0;        AC_SUBST([GNULIB_STRTOD])
   GNULIB_STRTOLL=0;       AC_SUBST([GNULIB_STRTOLL])
   GNULIB_STRTOULL=0;      AC_SUBST([GNULIB_STRTOULL])
+  GNULIB_SYSTEM_POSIX=0;  AC_SUBST([GNULIB_SYSTEM_POSIX])
   GNULIB_UNLOCKPT=0;      AC_SUBST([GNULIB_UNLOCKPT])
   GNULIB_UNSETENV=0;      AC_SUBST([GNULIB_UNSETENV])
+  GNULIB_WCTOMB=0;        AC_SUBST([GNULIB_WCTOMB])
   dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE__EXIT=1;              AC_SUBST([HAVE__EXIT])
   HAVE_ATOLL=1;              AC_SUBST([HAVE_ATOLL])
-  HAVE_CALLOC_POSIX=1;       AC_SUBST([HAVE_CALLOC_POSIX])
   HAVE_CANONICALIZE_FILE_NAME=1;  AC_SUBST([HAVE_CANONICALIZE_FILE_NAME])
   HAVE_DECL_GETLOADAVG=1;    AC_SUBST([HAVE_DECL_GETLOADAVG])
   HAVE_GETSUBOPT=1;          AC_SUBST([HAVE_GETSUBOPT])
   HAVE_GRANTPT=1;            AC_SUBST([HAVE_GRANTPT])
-  HAVE_MALLOC_POSIX=1;       AC_SUBST([HAVE_MALLOC_POSIX])
   HAVE_MKDTEMP=1;            AC_SUBST([HAVE_MKDTEMP])
   HAVE_MKOSTEMP=1;           AC_SUBST([HAVE_MKOSTEMP])
   HAVE_MKOSTEMPS=1;          AC_SUBST([HAVE_MKOSTEMPS])
   HAVE_MKSTEMP=1;            AC_SUBST([HAVE_MKSTEMP])
   HAVE_MKSTEMPS=1;           AC_SUBST([HAVE_MKSTEMPS])
+  HAVE_POSIX_OPENPT=1;       AC_SUBST([HAVE_POSIX_OPENPT])
   HAVE_PTSNAME=1;            AC_SUBST([HAVE_PTSNAME])
+  HAVE_PTSNAME_R=1;          AC_SUBST([HAVE_PTSNAME_R])
+  HAVE_RANDOM=1;             AC_SUBST([HAVE_RANDOM])
+  HAVE_RANDOM_H=1;           AC_SUBST([HAVE_RANDOM_H])
   HAVE_RANDOM_R=1;           AC_SUBST([HAVE_RANDOM_R])
-  HAVE_REALLOC_POSIX=1;      AC_SUBST([HAVE_REALLOC_POSIX])
   HAVE_REALPATH=1;           AC_SUBST([HAVE_REALPATH])
   HAVE_RPMATCH=1;            AC_SUBST([HAVE_RPMATCH])
+  HAVE_SECURE_GETENV=1;      AC_SUBST([HAVE_SECURE_GETENV])
   HAVE_SETENV=1;             AC_SUBST([HAVE_SETENV])
+  HAVE_DECL_SETENV=1;        AC_SUBST([HAVE_DECL_SETENV])
   HAVE_STRTOD=1;             AC_SUBST([HAVE_STRTOD])
   HAVE_STRTOLL=1;            AC_SUBST([HAVE_STRTOLL])
   HAVE_STRTOULL=1;           AC_SUBST([HAVE_STRTOULL])
   HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
   HAVE_SYS_LOADAVG_H=0;      AC_SUBST([HAVE_SYS_LOADAVG_H])
   HAVE_UNLOCKPT=1;           AC_SUBST([HAVE_UNLOCKPT])
-  HAVE_UNSETENV=1;           AC_SUBST([HAVE_UNSETENV])
+  HAVE_DECL_UNSETENV=1;      AC_SUBST([HAVE_DECL_UNSETENV])
+  REPLACE_CALLOC=0;          AC_SUBST([REPLACE_CALLOC])
   REPLACE_CANONICALIZE_FILE_NAME=0;  AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
+  REPLACE_MALLOC=0;          AC_SUBST([REPLACE_MALLOC])
+  REPLACE_MBTOWC=0;          AC_SUBST([REPLACE_MBTOWC])
   REPLACE_MKSTEMP=0;         AC_SUBST([REPLACE_MKSTEMP])
+  REPLACE_PTSNAME=0;         AC_SUBST([REPLACE_PTSNAME])
+  REPLACE_PTSNAME_R=0;       AC_SUBST([REPLACE_PTSNAME_R])
   REPLACE_PUTENV=0;          AC_SUBST([REPLACE_PUTENV])
+  REPLACE_RANDOM_R=0;        AC_SUBST([REPLACE_RANDOM_R])
+  REPLACE_REALLOC=0;         AC_SUBST([REPLACE_REALLOC])
   REPLACE_REALPATH=0;        AC_SUBST([REPLACE_REALPATH])
   REPLACE_SETENV=0;          AC_SUBST([REPLACE_SETENV])
   REPLACE_STRTOD=0;          AC_SUBST([REPLACE_STRTOD])
   REPLACE_UNSETENV=0;        AC_SUBST([REPLACE_UNSETENV])
+  REPLACE_WCTOMB=0;          AC_SUBST([REPLACE_WCTOMB])
 ])
index 1649b24..0763fe3 100644 (file)
@@ -1,68 +1,96 @@
-# strerror.m4 serial 9
-dnl Copyright (C) 2002, 2007-2010 Free Software Foundation, Inc.
+# strerror.m4 serial 17
+dnl Copyright (C) 2002, 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_FUNC_STRERROR],
 [
-  AC_REQUIRE([gl_FUNC_STRERROR_SEPARATE])
-  if test $REPLACE_STRERROR = 1; then
-    AC_LIBOBJ([strerror])
-    AC_DEFINE_UNQUOTED([REPLACE_STRERROR], [$REPLACE_STRERROR],
-      [Define this to 1 if strerror is broken.])
-  fi
-])
-
-# Like gl_FUNC_STRERROR, except prepare for separate compilation (no AC_LIBOBJ).
-AC_DEFUN([gl_FUNC_STRERROR_SEPARATE],
-[
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
   AC_REQUIRE([gl_HEADER_ERRNO_H])
-  if test -z "$ERRNO_H"; then
+  AC_REQUIRE([gl_FUNC_STRERROR_0])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+    AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
+  ])
+  if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
     AC_CACHE_CHECK([for working strerror function],
      [gl_cv_func_working_strerror],
      [AC_RUN_IFELSE(
         [AC_LANG_PROGRAM(
            [[#include <string.h>
            ]],
-           [[return !*strerror (-2);]])],
+           [[if (!*strerror (-2)) return 1;]])],
         [gl_cv_func_working_strerror=yes],
         [gl_cv_func_working_strerror=no],
-        [dnl Assume crossbuild works if it compiles.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_PROGRAM(
-              [[#include <string.h>
-              ]],
-              [[return !*strerror (-2);]])],
-           [gl_cv_func_working_strerror=yes],
-           [gl_cv_func_working_strerror=no])
-      ])
+        [case "$host_os" in
+                   # Guess yes on glibc systems.
+           *-gnu*) gl_cv_func_working_strerror="guessing yes" ;;
+                   # If we don't know, assume the worst.
+           *)      gl_cv_func_working_strerror="guessing no" ;;
+         esac
+        ])
+    ])
+    case "$gl_cv_func_working_strerror" in
+      *yes) ;;
+      *)
+        dnl The system's strerror() fails to return a string for out-of-range
+        dnl integers. Replace it.
+        REPLACE_STRERROR=1
+        ;;
+    esac
+    m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+      dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's
+      dnl buffer, we must replace strerror.
+      case "$gl_cv_func_strerror_r_works" in
+        *no) REPLACE_STRERROR=1 ;;
+      esac
     ])
-    if test $gl_cv_func_working_strerror = no; then
-      dnl The system's strerror() fails to return a string for out-of-range
-      dnl integers. Replace it.
-      REPLACE_STRERROR=1
-    fi
   else
     dnl The system's strerror() cannot know about the new errno values we add
-    dnl to <errno.h>. Replace it.
+    dnl to <errno.h>, or any fix for strerror(0). Replace it.
     REPLACE_STRERROR=1
   fi
-  if test $REPLACE_STRERROR = 1; then
-    gl_PREREQ_STRERROR
-  fi
 ])
 
-# Prerequisites of lib/strerror.c.
-AC_DEFUN([gl_PREREQ_STRERROR], [
-  AC_CHECK_DECLS([strerror])
-  AC_CHECK_HEADERS_ONCE([sys/socket.h])
-  if test $ac_cv_header_sys_socket_h != yes; then
-    dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
-    dnl the check for those headers unconditional; yet cygwin reports
-    dnl that the headers are present but cannot be compiled (since on
-    dnl cygwin, all socket information should come from sys/socket.h).
-    AC_CHECK_HEADERS([winsock2.h])
-  fi
+dnl Detect if strerror(0) passes (that is, does not set errno, and does not
+dnl return a string that matches strerror(-1)).
+AC_DEFUN([gl_FUNC_STRERROR_0],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  REPLACE_STRERROR_0=0
+  AC_CACHE_CHECK([whether strerror(0) succeeds],
+   [gl_cv_func_strerror_0_works],
+   [AC_RUN_IFELSE(
+      [AC_LANG_PROGRAM(
+         [[#include <string.h>
+           #include <errno.h>
+         ]],
+         [[int result = 0;
+           char *str;
+           errno = 0;
+           str = strerror (0);
+           if (!*str) result |= 1;
+           if (errno) result |= 2;
+           if (strstr (str, "nknown") || strstr (str, "ndefined"))
+             result |= 4;
+           return result;]])],
+      [gl_cv_func_strerror_0_works=yes],
+      [gl_cv_func_strerror_0_works=no],
+      [case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_strerror_0_works="guessing no" ;;
+       esac
+      ])
+  ])
+  case "$gl_cv_func_strerror_0_works" in
+    *yes) ;;
+    *)
+      REPLACE_STRERROR_0=1
+      AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0)
+        does not return a message implying success.])
+      ;;
+  esac
 ])
index 1977aec..64e683f 100644 (file)
@@ -1,11 +1,11 @@
 # Configure a GNU-like replacement for <string.h>.
 
-# Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# Copyright (C) 2007-2014 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 17
+# serial 21
 
 # Written by Paul Eggert.
 
@@ -20,16 +20,16 @@ AC_DEFUN([gl_HEADER_STRING_H_BODY],
 [
   AC_REQUIRE([AC_C_RESTRICT])
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
-  gl_CHECK_NEXT_HEADERS([string.h])
+  gl_NEXT_HEADERS([string.h])
 
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use, and which is not
   dnl guaranteed by C89.
   gl_WARN_ON_USE_PREPARE([[#include <string.h>
     ]],
-    [memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup
-     strncat strndup strnlen strpbrk strsep strcasestr strtok_r strsignal
-     strverscmp])
+    [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul
+     strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
+     strerror_r strsignal strverscmp])
 ])
 
 AC_DEFUN([gl_STRING_MODULE_INDICATOR],
@@ -43,6 +43,8 @@ AC_DEFUN([gl_STRING_MODULE_INDICATOR],
 
 AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
 [
+  GNULIB_FFSL=0;        AC_SUBST([GNULIB_FFSL])
+  GNULIB_FFSLL=0;       AC_SUBST([GNULIB_FFSLL])
   GNULIB_MEMCHR=0;      AC_SUBST([GNULIB_MEMCHR])
   GNULIB_MEMMEM=0;      AC_SUBST([GNULIB_MEMMEM])
   GNULIB_MEMPCPY=0;     AC_SUBST([GNULIB_MEMPCPY])
@@ -75,10 +77,13 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
   GNULIB_MBSSEP=0;      AC_SUBST([GNULIB_MBSSEP])
   GNULIB_MBSTOK_R=0;    AC_SUBST([GNULIB_MBSTOK_R])
   GNULIB_STRERROR=0;    AC_SUBST([GNULIB_STRERROR])
+  GNULIB_STRERROR_R=0;  AC_SUBST([GNULIB_STRERROR_R])
   GNULIB_STRSIGNAL=0;   AC_SUBST([GNULIB_STRSIGNAL])
   GNULIB_STRVERSCMP=0;  AC_SUBST([GNULIB_STRVERSCMP])
   HAVE_MBSLEN=0;        AC_SUBST([HAVE_MBSLEN])
   dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_FFSL=1;                  AC_SUBST([HAVE_FFSL])
+  HAVE_FFSLL=1;                 AC_SUBST([HAVE_FFSLL])
   HAVE_MEMCHR=1;                AC_SUBST([HAVE_MEMCHR])
   HAVE_DECL_MEMMEM=1;           AC_SUBST([HAVE_DECL_MEMMEM])
   HAVE_MEMPCPY=1;               AC_SUBST([HAVE_MEMPCPY])
@@ -94,6 +99,7 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
   HAVE_STRSEP=1;                AC_SUBST([HAVE_STRSEP])
   HAVE_STRCASESTR=1;            AC_SUBST([HAVE_STRCASESTR])
   HAVE_DECL_STRTOK_R=1;         AC_SUBST([HAVE_DECL_STRTOK_R])
+  HAVE_DECL_STRERROR_R=1;       AC_SUBST([HAVE_DECL_STRERROR_R])
   HAVE_DECL_STRSIGNAL=1;        AC_SUBST([HAVE_DECL_STRSIGNAL])
   HAVE_STRVERSCMP=1;            AC_SUBST([HAVE_STRVERSCMP])
   REPLACE_MEMCHR=0;             AC_SUBST([REPLACE_MEMCHR])
@@ -102,7 +108,9 @@ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
   REPLACE_STRDUP=0;             AC_SUBST([REPLACE_STRDUP])
   REPLACE_STRSTR=0;             AC_SUBST([REPLACE_STRSTR])
   REPLACE_STRCASESTR=0;         AC_SUBST([REPLACE_STRCASESTR])
+  REPLACE_STRCHRNUL=0;          AC_SUBST([REPLACE_STRCHRNUL])
   REPLACE_STRERROR=0;           AC_SUBST([REPLACE_STRERROR])
+  REPLACE_STRERROR_R=0;         AC_SUBST([REPLACE_STRERROR_R])
   REPLACE_STRNCAT=0;            AC_SUBST([REPLACE_STRNCAT])
   REPLACE_STRNDUP=0;            AC_SUBST([REPLACE_STRNDUP])
   REPLACE_STRNLEN=0;            AC_SUBST([REPLACE_STRNLEN])
index e4ff70e..8ea522e 100644 (file)
@@ -1,5 +1,5 @@
-# strncat.m4 serial 1
-dnl Copyright (C) 2002-2004, 2009-2010 Free Software Foundation, Inc.
+# strncat.m4 serial 2
+dnl Copyright (C) 2002-2004, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -92,11 +92,7 @@ AC_DEFUN_ONCE([gl_FUNC_STRNCAT],
     ])
   case "$gl_cv_func_strncat_works" in
     *yes) ;;
-    *)
-      REPLACE_STRNCAT=1
-      AC_LIBOBJ([strncat])
-      gl_PREREQ_STRNCAT
-      ;;
+    *) REPLACE_STRNCAT=1 ;;
   esac
 ])
 
diff --git a/gnulib-m4/strstr.m4 b/gnulib-m4/strstr.m4
new file mode 100644 (file)
index 0000000..33cd7a3
--- /dev/null
@@ -0,0 +1,130 @@
+# strstr.m4 serial 16
+dnl Copyright (C) 2008-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Check that strstr works.
+AC_DEFUN([gl_FUNC_STRSTR_SIMPLE],
+[
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_REQUIRE([gl_FUNC_MEMCHR])
+  if test "$gl_cv_func_memchr_works" != yes; then
+    REPLACE_STRSTR=1
+  else
+    dnl Detect http://sourceware.org/bugzilla/show_bug.cgi?id=12092.
+    AC_CACHE_CHECK([whether strstr works],
+      [gl_cv_func_strstr_works_always],
+      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <string.h> /* for strstr */
+#define P "_EF_BF_BD"
+#define HAYSTACK "F_BD_CE_BD" P P P P "_C3_88_20" P P P "_C3_A7_20" P
+#define NEEDLE P P P P P
+]], [[return !!strstr (HAYSTACK, NEEDLE);
+    ]])],
+        [gl_cv_func_strstr_works_always=yes],
+        [gl_cv_func_strstr_works_always=no],
+        [dnl glibc 2.12 and cygwin 1.7.7 have a known bug.  uClibc is not
+         dnl affected, since it uses different source code for strstr than
+         dnl glibc.
+         dnl Assume that it works on all other platforms, even if it is not
+         dnl linear.
+         AC_EGREP_CPP([Lucky user],
+           [
+#ifdef __GNU_LIBRARY__
+ #include <features.h>
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     || defined __UCLIBC__
+  Lucky user
+ #endif
+#elif defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
+  Lucky user
+ #endif
+#else
+  Lucky user
+#endif
+           ],
+           [gl_cv_func_strstr_works_always="guessing yes"],
+           [gl_cv_func_strstr_works_always="guessing no"])
+        ])
+      ])
+    case "$gl_cv_func_strstr_works_always" in
+      *yes) ;;
+      *)
+        REPLACE_STRSTR=1
+        ;;
+    esac
+  fi
+]) # gl_FUNC_STRSTR_SIMPLE
+
+dnl Additionally, check that strstr is efficient.
+AC_DEFUN([gl_FUNC_STRSTR],
+[
+  AC_REQUIRE([gl_FUNC_STRSTR_SIMPLE])
+  if test $REPLACE_STRSTR = 0; then
+    AC_CACHE_CHECK([whether strstr works in linear time],
+      [gl_cv_func_strstr_linear],
+      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <signal.h> /* for signal */
+#include <string.h> /* for strstr */
+#include <stdlib.h> /* for malloc */
+#include <unistd.h> /* for alarm */
+static void quit (int sig) { exit (sig + 128); }
+]], [[
+    int result = 0;
+    size_t m = 1000000;
+    char *haystack = (char *) malloc (2 * m + 2);
+    char *needle = (char *) malloc (m + 2);
+    /* Failure to compile this test due to missing alarm is okay,
+       since all such platforms (mingw) also have quadratic strstr.  */
+    signal (SIGALRM, quit);
+    alarm (5);
+    /* Check for quadratic performance.  */
+    if (haystack && needle)
+      {
+        memset (haystack, 'A', 2 * m);
+        haystack[2 * m] = 'B';
+        haystack[2 * m + 1] = 0;
+        memset (needle, 'A', m);
+        needle[m] = 'B';
+        needle[m + 1] = 0;
+        if (!strstr (haystack, needle))
+          result |= 1;
+      }
+    return result;
+    ]])],
+        [gl_cv_func_strstr_linear=yes], [gl_cv_func_strstr_linear=no],
+        [dnl Only glibc > 2.12 on processors without SSE 4.2 instructions and
+         dnl cygwin > 1.7.7 are known to have a bug-free strstr that works in
+         dnl linear time.
+         AC_EGREP_CPP([Lucky user],
+           [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 12) || (__GLIBC__ > 2)) \
+     && !(defined __i386__ || defined __x86_64__) \
+     && !defined __UCLIBC__
+  Lucky user
+ #endif
+#endif
+#ifdef __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 7)
+  Lucky user
+ #endif
+#endif
+           ],
+           [gl_cv_func_strstr_linear="guessing yes"],
+           [gl_cv_func_strstr_linear="guessing no"])
+        ])
+      ])
+    case "$gl_cv_func_strstr_linear" in
+      *yes) ;;
+      *)
+        REPLACE_STRSTR=1
+        ;;
+    esac
+  fi
+]) # gl_FUNC_STRSTR
diff --git a/gnulib-m4/sys_socket_h.m4 b/gnulib-m4/sys_socket_h.m4
new file mode 100644 (file)
index 0000000..114d828
--- /dev/null
@@ -0,0 +1,176 @@
+# sys_socket_h.m4 serial 23
+dnl Copyright (C) 2005-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Simon Josefsson.
+
+AC_DEFUN([gl_HEADER_SYS_SOCKET],
+[
+  AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+
+  dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have
+  dnl old-style declarations (with return type 'int' instead of 'ssize_t')
+  dnl unless _POSIX_PII_SOCKET is defined.
+  case "$host_os" in
+    osf*)
+      AC_DEFINE([_POSIX_PII_SOCKET], [1],
+        [Define to 1 in order to get the POSIX compatible declarations
+         of socket functions.])
+      ;;
+  esac
+
+  AC_CACHE_CHECK([whether <sys/socket.h> is self-contained],
+    [gl_cv_header_sys_socket_h_selfcontained],
+    [
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[]])],
+        [gl_cv_header_sys_socket_h_selfcontained=yes],
+        [gl_cv_header_sys_socket_h_selfcontained=no])
+    ])
+  if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
+    dnl If the shutdown function exists, <sys/socket.h> should define
+    dnl SHUT_RD, SHUT_WR, SHUT_RDWR.
+    AC_CHECK_FUNCS([shutdown])
+    if test $ac_cv_func_shutdown = yes; then
+      AC_CACHE_CHECK([whether <sys/socket.h> defines the SHUT_* macros],
+        [gl_cv_header_sys_socket_h_shut],
+        [
+          AC_COMPILE_IFELSE(
+            [AC_LANG_PROGRAM([[#include <sys/socket.h>]],
+               [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])],
+            [gl_cv_header_sys_socket_h_shut=yes],
+            [gl_cv_header_sys_socket_h_shut=no])
+        ])
+      if test $gl_cv_header_sys_socket_h_shut = no; then
+        SYS_SOCKET_H='sys/socket.h'
+      fi
+    fi
+  fi
+  # We need to check for ws2tcpip.h now.
+  gl_PREREQ_SYS_H_SOCKET
+  AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[
+  /* sys/types.h is not needed according to POSIX, but the
+     sys/socket.h in i386-unknown-freebsd4.10 and
+     powerpc-apple-darwin5.5 required it. */
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
+])
+  if test $ac_cv_type_struct_sockaddr_storage = no; then
+    HAVE_STRUCT_SOCKADDR_STORAGE=0
+  fi
+  if test $ac_cv_type_sa_family_t = no; then
+    HAVE_SA_FAMILY_T=0
+  fi
+  if test $ac_cv_type_struct_sockaddr_storage != no; then
+    AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family],
+      [],
+      [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0],
+      [#include <sys/types.h>
+       #ifdef HAVE_SYS_SOCKET_H
+       #include <sys/socket.h>
+       #endif
+       #ifdef HAVE_WS2TCPIP_H
+       #include <ws2tcpip.h>
+       #endif
+      ])
+  fi
+  if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \
+     || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then
+    SYS_SOCKET_H='sys/socket.h'
+  fi
+  gl_PREREQ_SYS_H_WINSOCK2
+
+  dnl Check for declarations of anything we want to poison if the
+  dnl corresponding gnulib module is not in use.
+  gl_WARN_ON_USE_PREPARE([[
+/* Some systems require prerequisite headers.  */
+#include <sys/types.h>
+#include <sys/socket.h>
+    ]], [socket connect accept bind getpeername getsockname getsockopt
+    listen recv send recvfrom sendto setsockopt shutdown accept4])
+])
+
+AC_DEFUN([gl_PREREQ_SYS_H_SOCKET],
+[
+  dnl Check prerequisites of the <sys/socket.h> replacement.
+  AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])
+  gl_CHECK_NEXT_HEADERS([sys/socket.h])
+  if test $ac_cv_header_sys_socket_h = yes; then
+    HAVE_SYS_SOCKET_H=1
+    HAVE_WS2TCPIP_H=0
+  else
+    HAVE_SYS_SOCKET_H=0
+    if test $ac_cv_header_ws2tcpip_h = yes; then
+      HAVE_WS2TCPIP_H=1
+    else
+      HAVE_WS2TCPIP_H=0
+    fi
+  fi
+  AC_SUBST([HAVE_SYS_SOCKET_H])
+  AC_SUBST([HAVE_WS2TCPIP_H])
+])
+
+# Common prerequisites of the <sys/socket.h> replacement and of the
+# <sys/select.h> replacement.
+# Sets and substitutes HAVE_WINSOCK2_H.
+AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2],
+[
+  m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])])
+  m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])])
+  AC_CHECK_HEADERS_ONCE([sys/socket.h])
+  if test $ac_cv_header_sys_socket_h != yes; then
+    dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
+    dnl the check for those headers unconditional; yet cygwin reports
+    dnl that the headers are present but cannot be compiled (since on
+    dnl cygwin, all socket information should come from sys/socket.h).
+    AC_CHECK_HEADERS([winsock2.h])
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
+  AC_SUBST([HAVE_WINSOCK2_H])
+])
+
+AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+  dnl Define it also as a C macro, for the benefit of the unit tests.
+  gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS],
+[
+  GNULIB_SOCKET=0;      AC_SUBST([GNULIB_SOCKET])
+  GNULIB_CONNECT=0;     AC_SUBST([GNULIB_CONNECT])
+  GNULIB_ACCEPT=0;      AC_SUBST([GNULIB_ACCEPT])
+  GNULIB_BIND=0;        AC_SUBST([GNULIB_BIND])
+  GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME])
+  GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME])
+  GNULIB_GETSOCKOPT=0;  AC_SUBST([GNULIB_GETSOCKOPT])
+  GNULIB_LISTEN=0;      AC_SUBST([GNULIB_LISTEN])
+  GNULIB_RECV=0;        AC_SUBST([GNULIB_RECV])
+  GNULIB_SEND=0;        AC_SUBST([GNULIB_SEND])
+  GNULIB_RECVFROM=0;    AC_SUBST([GNULIB_RECVFROM])
+  GNULIB_SENDTO=0;      AC_SUBST([GNULIB_SENDTO])
+  GNULIB_SETSOCKOPT=0;  AC_SUBST([GNULIB_SETSOCKOPT])
+  GNULIB_SHUTDOWN=0;    AC_SUBST([GNULIB_SHUTDOWN])
+  GNULIB_ACCEPT4=0;     AC_SUBST([GNULIB_ACCEPT4])
+  HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE])
+  HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1;
+                        AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY])
+  HAVE_SA_FAMILY_T=1;   AC_SUBST([HAVE_SA_FAMILY_T])
+  HAVE_ACCEPT4=1;       AC_SUBST([HAVE_ACCEPT4])
+])
diff --git a/gnulib-m4/sys_types_h.m4 b/gnulib-m4/sys_types_h.m4
new file mode 100644 (file)
index 0000000..9748905
--- /dev/null
@@ -0,0 +1,24 @@
+# sys_types_h.m4 serial 5
+dnl Copyright (C) 2011-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN_ONCE([gl_SYS_TYPES_H],
+[
+  AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS])
+  gl_NEXT_HEADERS([sys/types.h])
+
+  dnl Ensure the type pid_t gets defined.
+  AC_REQUIRE([AC_TYPE_PID_T])
+
+  dnl Ensure the type mode_t gets defined.
+  AC_REQUIRE([AC_TYPE_MODE_T])
+
+  dnl Whether to override the 'off_t' type.
+  AC_REQUIRE([gl_TYPE_OFF_T])
+])
+
+AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS],
+[
+])
index 8e79075..b6d602a 100644 (file)
@@ -1,5 +1,5 @@
-# thread.m4 serial 2
-dnl Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+# thread.m4 serial 3
+dnl Copyright (C) 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,7 +7,6 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_THREAD],
 [
   AC_REQUIRE([gl_THREADLIB])
-  AC_REQUIRE([AC_C_INLINE])
 
   if test $gl_threads_api = posix; then
     gl_save_LIBS="$LIBS"
index 05cc4ff..a881702 100644 (file)
@@ -1,5 +1,5 @@
-# threadlib.m4 serial 5 (gettext-0.18)
-dnl Copyright (C) 2005-2010 Free Software Foundation, Inc.
+# threadlib.m4 serial 10 (gettext-0.18.2)
+dnl Copyright (C) 2005-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -9,8 +9,13 @@ dnl From Bruno Haible.
 dnl gl_THREADLIB
 dnl ------------
 dnl Tests for a multithreading library to be used.
+dnl If the configure.ac contains a definition of the gl_THREADLIB_DEFAULT_NO
+dnl (it must be placed before the invocation of gl_THREADLIB_EARLY!), then the
+dnl default is 'no', otherwise it is system dependent. In both cases, the user
+dnl can change the choice through the options --enable-threads=choice or
+dnl --disable-threads.
 dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS,
-dnl USE_PTH_THREADS, USE_WIN32_THREADS
+dnl USE_PTH_THREADS, USE_WINDOWS_THREADS
 dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use
 dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with
 dnl libtool).
@@ -44,10 +49,12 @@ AC_DEFUN([gl_THREADLIB_EARLY_BODY],
     [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
     [AC_REQUIRE([AC_GNU_SOURCE])])
   dnl Check for multithreading.
-  m4_divert_text([DEFAULTS], [gl_use_threads_default=])
+  m4_ifdef([gl_THREADLIB_DEFAULT_NO],
+    [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])],
+    [m4_divert_text([DEFAULTS], [gl_use_threads_default=])])
   AC_ARG_ENABLE([threads],
-AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API])
-AC_HELP_STRING([--disable-threads], [build without multithread safety]),
+AC_HELP_STRING([--enable-threads={posix|solaris|pth|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [
+AC_HELP_STRING([--disable-threads], [build without multithread safety])]),
     [gl_use_threads=$enableval],
     [if test -n "$gl_use_threads_default"; then
        gl_use_threads="$gl_use_threads_default"
@@ -80,7 +87,7 @@ changequote([,])dnl
         # groks <pthread.h>. cc also understands the flag -pthread, but
         # we don't use it because 1. gcc-2.95 doesn't understand -pthread,
         # 2. putting a flag into CPPFLAGS that has an effect on the linker
-        # causes the AC_TRY_LINK test below to succeed unexpectedly,
+        # causes the AC_LINK_IFELSE test below to succeed unexpectedly,
         # leading to wrong values of LIBTHREAD and LTLIBTHREAD.
         CPPFLAGS="$CPPFLAGS -D_REENTRANT"
         ;;
@@ -111,18 +118,25 @@ AC_DEFUN([gl_THREADLIB_BODY],
       [gl_cv_have_weak],
       [gl_cv_have_weak=no
        dnl First, test whether the compiler accepts it syntactically.
-       AC_TRY_LINK([extern void xyzzy ();
-#pragma weak xyzzy], [xyzzy();], [gl_cv_have_weak=maybe])
+       AC_LINK_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[extern void xyzzy ();
+#pragma weak xyzzy]],
+            [[xyzzy();]])],
+         [gl_cv_have_weak=maybe])
        if test $gl_cv_have_weak = maybe; then
          dnl Second, test whether it actually works. On Cygwin 1.7.2, with
          dnl gcc 4.3, symbols declared weak always evaluate to the address 0.
-         AC_TRY_RUN([
+         AC_RUN_IFELSE(
+           [AC_LANG_SOURCE([[
 #include <stdio.h>
 #pragma weak fputs
 int main ()
 {
   return (fputs == NULL);
-}], [gl_cv_have_weak=yes], [gl_cv_have_weak=no],
+}]])],
+           [gl_cv_have_weak=yes],
+           [gl_cv_have_weak=no],
            [dnl When cross-compiling, assume that only ELF platforms support
             dnl weak symbols.
             AC_EGREP_CPP([Extensible Linking Format],
@@ -148,9 +162,11 @@ int main ()
         # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist
         # in libc. IRIX 6.5 has the first one in both libc and libpthread, but
         # the second one only in libpthread, and lock.c needs it.
-        AC_TRY_LINK([#include <pthread.h>],
-          [pthread_mutex_lock((pthread_mutex_t*)0);
-           pthread_mutexattr_init((pthread_mutexattr_t*)0);],
+        AC_LINK_IFELSE(
+          [AC_LANG_PROGRAM(
+             [[#include <pthread.h>]],
+             [[pthread_mutex_lock((pthread_mutex_t*)0);
+               pthread_mutexattr_init((pthread_mutexattr_t*)0);]])],
           [gl_have_pthread=yes])
         # Test for libpthread by looking for pthread_kill. (Not pthread_self,
         # since it is defined as a macro on OSF/1.)
@@ -203,9 +219,13 @@ int main ()
         gl_have_solaristhread=
         gl_save_LIBS="$LIBS"
         LIBS="$LIBS -lthread"
-        AC_TRY_LINK([#include <thread.h>
-#include <synch.h>],
-          [thr_self();],
+        AC_LINK_IFELSE(
+          [AC_LANG_PROGRAM(
+             [[
+#include <thread.h>
+#include <synch.h>
+             ]],
+             [[thr_self();]])],
           [gl_have_solaristhread=yes])
         LIBS="$gl_save_LIBS"
         if test -n "$gl_have_solaristhread"; then
@@ -230,8 +250,10 @@ int main ()
       AC_LIB_LINKFLAGS([pth])
       gl_have_pth=
       gl_save_LIBS="$LIBS"
-      LIBS="$LIBS -lpth"
-      AC_TRY_LINK([#include <pth.h>], [pth_self();], [gl_have_pth=yes])
+      LIBS="$LIBS $LIBPTH"
+      AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM([[#include <pth.h>]], [[pth_self();]])],
+        [gl_have_pth=yes])
       LIBS="$gl_save_LIBS"
       if test -n "$gl_have_pth"; then
         gl_threads_api=pth
@@ -254,17 +276,19 @@ int main ()
       fi
     fi
     if test -z "$gl_have_pthread"; then
-      if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then
-        if { case "$host_os" in
-               mingw*) true;;
-               *) false;;
-             esac
-           }; then
-          gl_threads_api=win32
-          AC_DEFINE([USE_WIN32_THREADS], [1],
-            [Define if the Win32 multithreading API can be used.])
-        fi
-      fi
+      case "$gl_use_threads" in
+        yes | windows | win32) # The 'win32' is for backward compatibility.
+          if { case "$host_os" in
+                 mingw*) true;;
+                 *) false;;
+               esac
+             }; then
+            gl_threads_api=windows
+            AC_DEFINE([USE_WINDOWS_THREADS], [1],
+              [Define if the native Windows multithreading API can be used.])
+          fi
+          ;;
+      esac
     fi
   fi
   AC_MSG_CHECKING([for multithread API to use])
@@ -295,50 +319,50 @@ AC_DEFUN([gl_DISABLE_THREADS], [
 
 dnl Survey of platforms:
 dnl
-dnl Platform          Available   Compiler    Supports   test-lock
-dnl                   flavours    option      weak       result
-dnl ---------------   ---------   ---------   --------   ---------
-dnl Linux 2.4/glibc   posix       -lpthread       Y      OK
+dnl Platform           Available  Compiler    Supports   test-lock
+dnl                    flavours   option      weak       result
+dnl ---------------    ---------  ---------   --------   ---------
+dnl Linux 2.4/glibc    posix      -lpthread       Y      OK
 dnl
-dnl GNU Hurd/glibc    posix
+dnl GNU Hurd/glibc     posix
 dnl
-dnl FreeBSD 5.3       posix       -lc_r           Y
-dnl                   posix       -lkse ?         Y
-dnl                   posix       -lpthread ?     Y
-dnl                   posix       -lthr           Y
+dnl FreeBSD 5.3        posix      -lc_r           Y
+dnl                    posix      -lkse ?         Y
+dnl                    posix      -lpthread ?     Y
+dnl                    posix      -lthr           Y
 dnl
-dnl FreeBSD 5.2       posix       -lc_r           Y
-dnl                   posix       -lkse           Y
-dnl                   posix       -lthr           Y
+dnl FreeBSD 5.2        posix      -lc_r           Y
+dnl                    posix      -lkse           Y
+dnl                    posix      -lthr           Y
 dnl
-dnl FreeBSD 4.0,4.10  posix       -lc_r           Y      OK
+dnl FreeBSD 4.0,4.10   posix      -lc_r           Y      OK
 dnl
-dnl NetBSD 1.6        --
+dnl NetBSD 1.6         --
 dnl
-dnl OpenBSD 3.4       posix       -lpthread       Y      OK
+dnl OpenBSD 3.4        posix      -lpthread       Y      OK
 dnl
-dnl MacOS X 10.[123]  posix       -lpthread       Y      OK
+dnl Mac OS X 10.[123]  posix      -lpthread       Y      OK
 dnl
-dnl Solaris 7,8,9     posix       -lpthread       Y      Sol 7,8: 0.0; Sol 9: OK
-dnl                   solaris     -lthread        Y      Sol 7,8: 0.0; Sol 9: OK
+dnl Solaris 7,8,9      posix      -lpthread       Y      Sol 7,8: 0.0; Sol 9: OK
+dnl                    solaris    -lthread        Y      Sol 7,8: 0.0; Sol 9: OK
 dnl
-dnl HP-UX 11          posix       -lpthread       N (cc) OK
+dnl HP-UX 11           posix      -lpthread       N (cc) OK
 dnl                                               Y (gcc)
 dnl
-dnl IRIX 6.5          posix       -lpthread       Y      0.5
+dnl IRIX 6.5           posix      -lpthread       Y      0.5
 dnl
-dnl AIX 4.3,5.1       posix       -lpthread       N      AIX 4: 0.5; AIX 5: OK
+dnl AIX 4.3,5.1        posix      -lpthread       N      AIX 4: 0.5; AIX 5: OK
 dnl
-dnl OSF/1 4.0,5.1     posix       -pthread (cc)   N      OK
+dnl OSF/1 4.0,5.1      posix      -pthread (cc)   N      OK
 dnl                               -lpthread (gcc) Y
 dnl
-dnl Cygwin            posix       -lpthread       Y      OK
+dnl Cygwin             posix      -lpthread       Y      OK
 dnl
-dnl Any of the above  pth         -lpth                  0.0
+dnl Any of the above   pth        -lpth                  0.0
 dnl
-dnl Mingw             win32                       N      OK
+dnl Mingw              windows                    N      OK
 dnl
-dnl BeOS 5            --
+dnl BeOS 5             --
 dnl
 dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is
 dnl turned off:
index b26d0a9..1fa197e 100644 (file)
@@ -1,5 +1,5 @@
-# unistd_h.m4 serial 46
-dnl Copyright (C) 2006-2010 Free Software Foundation, Inc.
+# unistd_h.m4 serial 67
+dnl Copyright (C) 2006-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -11,11 +11,8 @@ AC_DEFUN([gl_UNISTD_H],
   dnl Use AC_REQUIRE here, so that the default behavior below is expanded
   dnl once only, before all statements that occur in other macros.
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  AC_REQUIRE([AC_C_INLINE])
 
   gl_CHECK_NEXT_HEADERS([unistd.h])
-
-  AC_CHECK_HEADERS_ONCE([unistd.h])
   if test $ac_cv_header_unistd_h = yes; then
     HAVE_UNISTD_H=1
   else
@@ -23,11 +20,20 @@ AC_DEFUN([gl_UNISTD_H],
   fi
   AC_SUBST([HAVE_UNISTD_H])
 
+  dnl Ensure the type pid_t gets defined.
+  AC_REQUIRE([AC_TYPE_PID_T])
+
+  dnl Determine WINDOWS_64_BIT_OFF_T.
+  AC_REQUIRE([gl_TYPE_OFF_T])
+
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use.
-  gl_WARN_ON_USE_PREPARE([[#include <unistd.h>
+  gl_WARN_ON_USE_PREPARE([[
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 /* Some systems declare various items in the wrong headers.  */
-#ifndef __GLIBC__
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
 # include <fcntl.h>
 # include <stdio.h>
 # include <stdlib.h>
@@ -35,11 +41,13 @@ AC_DEFUN([gl_UNISTD_H],
 #  include <io.h>
 # endif
 #endif
-    ]], [chown dup2 dup3 environ euidaccess faccessat fchdir fchownat
-    fsync ftruncate getcwd getdomainname getdtablesize getgroups
-    gethostname getlogin getlogin_r getpagesize getusershell setusershell
-    endusershell lchown link linkat lseek pipe2 pread readlink readlinkat
-    rmdir sleep symlink symlinkat ttyname_r unlink unlinkat usleep])
+    ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat
+    fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups
+    gethostname getlogin getlogin_r getpagesize
+    getusershell setusershell endusershell
+    group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite
+    readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r
+    unlink unlinkat usleep])
 ])
 
 AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
@@ -53,45 +61,54 @@ AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
 
 AC_DEFUN([gl_UNISTD_H_DEFAULTS],
 [
-  GNULIB_CHOWN=0;            AC_SUBST([GNULIB_CHOWN])
-  GNULIB_CLOSE=0;            AC_SUBST([GNULIB_CLOSE])
-  GNULIB_DUP2=0;             AC_SUBST([GNULIB_DUP2])
-  GNULIB_DUP3=0;             AC_SUBST([GNULIB_DUP3])
-  GNULIB_ENVIRON=0;          AC_SUBST([GNULIB_ENVIRON])
-  GNULIB_EUIDACCESS=0;       AC_SUBST([GNULIB_EUIDACCESS])
-  GNULIB_FACCESSAT=0;        AC_SUBST([GNULIB_FACCESSAT])
-  GNULIB_FCHDIR=0;           AC_SUBST([GNULIB_FCHDIR])
-  GNULIB_FCHOWNAT=0;         AC_SUBST([GNULIB_FCHOWNAT])
-  GNULIB_FSYNC=0;            AC_SUBST([GNULIB_FSYNC])
-  GNULIB_FTRUNCATE=0;        AC_SUBST([GNULIB_FTRUNCATE])
-  GNULIB_GETCWD=0;           AC_SUBST([GNULIB_GETCWD])
-  GNULIB_GETDOMAINNAME=0;    AC_SUBST([GNULIB_GETDOMAINNAME])
-  GNULIB_GETDTABLESIZE=0;    AC_SUBST([GNULIB_GETDTABLESIZE])
-  GNULIB_GETGROUPS=0;        AC_SUBST([GNULIB_GETGROUPS])
-  GNULIB_GETHOSTNAME=0;      AC_SUBST([GNULIB_GETHOSTNAME])
-  GNULIB_GETLOGIN=0;         AC_SUBST([GNULIB_GETLOGIN])
-  GNULIB_GETLOGIN_R=0;       AC_SUBST([GNULIB_GETLOGIN_R])
-  GNULIB_GETPAGESIZE=0;      AC_SUBST([GNULIB_GETPAGESIZE])
-  GNULIB_GETUSERSHELL=0;     AC_SUBST([GNULIB_GETUSERSHELL])
-  GNULIB_LCHOWN=0;           AC_SUBST([GNULIB_LCHOWN])
-  GNULIB_LINK=0;             AC_SUBST([GNULIB_LINK])
-  GNULIB_LINKAT=0;           AC_SUBST([GNULIB_LINKAT])
-  GNULIB_LSEEK=0;            AC_SUBST([GNULIB_LSEEK])
-  GNULIB_PIPE2=0;            AC_SUBST([GNULIB_PIPE2])
-  GNULIB_PREAD=0;            AC_SUBST([GNULIB_PREAD])
-  GNULIB_READLINK=0;         AC_SUBST([GNULIB_READLINK])
-  GNULIB_READLINKAT=0;       AC_SUBST([GNULIB_READLINKAT])
-  GNULIB_RMDIR=0;            AC_SUBST([GNULIB_RMDIR])
-  GNULIB_SLEEP=0;            AC_SUBST([GNULIB_SLEEP])
-  GNULIB_SYMLINK=0;          AC_SUBST([GNULIB_SYMLINK])
-  GNULIB_SYMLINKAT=0;        AC_SUBST([GNULIB_SYMLINKAT])
-  GNULIB_TTYNAME_R=0;        AC_SUBST([GNULIB_TTYNAME_R])
-  GNULIB_UNISTD_H_GETOPT=0;  AC_SUBST([GNULIB_UNISTD_H_GETOPT])
-  GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE])
-  GNULIB_UNLINK=0;           AC_SUBST([GNULIB_UNLINK])
-  GNULIB_UNLINKAT=0;         AC_SUBST([GNULIB_UNLINKAT])
-  GNULIB_USLEEP=0;           AC_SUBST([GNULIB_USLEEP])
-  GNULIB_WRITE=0;            AC_SUBST([GNULIB_WRITE])
+  GNULIB_CHDIR=0;                AC_SUBST([GNULIB_CHDIR])
+  GNULIB_CHOWN=0;                AC_SUBST([GNULIB_CHOWN])
+  GNULIB_CLOSE=0;                AC_SUBST([GNULIB_CLOSE])
+  GNULIB_DUP=0;                  AC_SUBST([GNULIB_DUP])
+  GNULIB_DUP2=0;                 AC_SUBST([GNULIB_DUP2])
+  GNULIB_DUP3=0;                 AC_SUBST([GNULIB_DUP3])
+  GNULIB_ENVIRON=0;              AC_SUBST([GNULIB_ENVIRON])
+  GNULIB_EUIDACCESS=0;           AC_SUBST([GNULIB_EUIDACCESS])
+  GNULIB_FACCESSAT=0;            AC_SUBST([GNULIB_FACCESSAT])
+  GNULIB_FCHDIR=0;               AC_SUBST([GNULIB_FCHDIR])
+  GNULIB_FCHOWNAT=0;             AC_SUBST([GNULIB_FCHOWNAT])
+  GNULIB_FDATASYNC=0;            AC_SUBST([GNULIB_FDATASYNC])
+  GNULIB_FSYNC=0;                AC_SUBST([GNULIB_FSYNC])
+  GNULIB_FTRUNCATE=0;            AC_SUBST([GNULIB_FTRUNCATE])
+  GNULIB_GETCWD=0;               AC_SUBST([GNULIB_GETCWD])
+  GNULIB_GETDOMAINNAME=0;        AC_SUBST([GNULIB_GETDOMAINNAME])
+  GNULIB_GETDTABLESIZE=0;        AC_SUBST([GNULIB_GETDTABLESIZE])
+  GNULIB_GETGROUPS=0;            AC_SUBST([GNULIB_GETGROUPS])
+  GNULIB_GETHOSTNAME=0;          AC_SUBST([GNULIB_GETHOSTNAME])
+  GNULIB_GETLOGIN=0;             AC_SUBST([GNULIB_GETLOGIN])
+  GNULIB_GETLOGIN_R=0;           AC_SUBST([GNULIB_GETLOGIN_R])
+  GNULIB_GETPAGESIZE=0;          AC_SUBST([GNULIB_GETPAGESIZE])
+  GNULIB_GETUSERSHELL=0;         AC_SUBST([GNULIB_GETUSERSHELL])
+  GNULIB_GROUP_MEMBER=0;         AC_SUBST([GNULIB_GROUP_MEMBER])
+  GNULIB_ISATTY=0;               AC_SUBST([GNULIB_ISATTY])
+  GNULIB_LCHOWN=0;               AC_SUBST([GNULIB_LCHOWN])
+  GNULIB_LINK=0;                 AC_SUBST([GNULIB_LINK])
+  GNULIB_LINKAT=0;               AC_SUBST([GNULIB_LINKAT])
+  GNULIB_LSEEK=0;                AC_SUBST([GNULIB_LSEEK])
+  GNULIB_PIPE=0;                 AC_SUBST([GNULIB_PIPE])
+  GNULIB_PIPE2=0;                AC_SUBST([GNULIB_PIPE2])
+  GNULIB_PREAD=0;                AC_SUBST([GNULIB_PREAD])
+  GNULIB_PWRITE=0;               AC_SUBST([GNULIB_PWRITE])
+  GNULIB_READ=0;                 AC_SUBST([GNULIB_READ])
+  GNULIB_READLINK=0;             AC_SUBST([GNULIB_READLINK])
+  GNULIB_READLINKAT=0;           AC_SUBST([GNULIB_READLINKAT])
+  GNULIB_RMDIR=0;                AC_SUBST([GNULIB_RMDIR])
+  GNULIB_SETHOSTNAME=0;          AC_SUBST([GNULIB_SETHOSTNAME])
+  GNULIB_SLEEP=0;                AC_SUBST([GNULIB_SLEEP])
+  GNULIB_SYMLINK=0;              AC_SUBST([GNULIB_SYMLINK])
+  GNULIB_SYMLINKAT=0;            AC_SUBST([GNULIB_SYMLINKAT])
+  GNULIB_TTYNAME_R=0;            AC_SUBST([GNULIB_TTYNAME_R])
+  GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING])
+  GNULIB_UNISTD_H_SIGPIPE=0;     AC_SUBST([GNULIB_UNISTD_H_SIGPIPE])
+  GNULIB_UNLINK=0;               AC_SUBST([GNULIB_UNLINK])
+  GNULIB_UNLINKAT=0;             AC_SUBST([GNULIB_UNLINKAT])
+  GNULIB_USLEEP=0;               AC_SUBST([GNULIB_USLEEP])
+  GNULIB_WRITE=0;                AC_SUBST([GNULIB_WRITE])
   dnl Assume proper GNU behavior unless another module says otherwise.
   HAVE_CHOWN=1;           AC_SUBST([HAVE_CHOWN])
   HAVE_DUP2=1;            AC_SUBST([HAVE_DUP2])
@@ -100,31 +117,39 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   HAVE_FACCESSAT=1;       AC_SUBST([HAVE_FACCESSAT])
   HAVE_FCHDIR=1;          AC_SUBST([HAVE_FCHDIR])
   HAVE_FCHOWNAT=1;        AC_SUBST([HAVE_FCHOWNAT])
+  HAVE_FDATASYNC=1;       AC_SUBST([HAVE_FDATASYNC])
   HAVE_FSYNC=1;           AC_SUBST([HAVE_FSYNC])
   HAVE_FTRUNCATE=1;       AC_SUBST([HAVE_FTRUNCATE])
-  HAVE_GETDOMAINNAME=1;   AC_SUBST([HAVE_GETDOMAINNAME])
   HAVE_GETDTABLESIZE=1;   AC_SUBST([HAVE_GETDTABLESIZE])
   HAVE_GETGROUPS=1;       AC_SUBST([HAVE_GETGROUPS])
   HAVE_GETHOSTNAME=1;     AC_SUBST([HAVE_GETHOSTNAME])
   HAVE_GETLOGIN=1;        AC_SUBST([HAVE_GETLOGIN])
   HAVE_GETPAGESIZE=1;     AC_SUBST([HAVE_GETPAGESIZE])
+  HAVE_GROUP_MEMBER=1;    AC_SUBST([HAVE_GROUP_MEMBER])
   HAVE_LCHOWN=1;          AC_SUBST([HAVE_LCHOWN])
   HAVE_LINK=1;            AC_SUBST([HAVE_LINK])
   HAVE_LINKAT=1;          AC_SUBST([HAVE_LINKAT])
+  HAVE_PIPE=1;            AC_SUBST([HAVE_PIPE])
   HAVE_PIPE2=1;           AC_SUBST([HAVE_PIPE2])
   HAVE_PREAD=1;           AC_SUBST([HAVE_PREAD])
+  HAVE_PWRITE=1;          AC_SUBST([HAVE_PWRITE])
   HAVE_READLINK=1;        AC_SUBST([HAVE_READLINK])
   HAVE_READLINKAT=1;      AC_SUBST([HAVE_READLINKAT])
+  HAVE_SETHOSTNAME=1;     AC_SUBST([HAVE_SETHOSTNAME])
   HAVE_SLEEP=1;           AC_SUBST([HAVE_SLEEP])
   HAVE_SYMLINK=1;         AC_SUBST([HAVE_SYMLINK])
   HAVE_SYMLINKAT=1;       AC_SUBST([HAVE_SYMLINKAT])
-  HAVE_TTYNAME_R=1;       AC_SUBST([HAVE_TTYNAME_R])
   HAVE_UNLINKAT=1;        AC_SUBST([HAVE_UNLINKAT])
   HAVE_USLEEP=1;          AC_SUBST([HAVE_USLEEP])
   HAVE_DECL_ENVIRON=1;    AC_SUBST([HAVE_DECL_ENVIRON])
+  HAVE_DECL_FCHDIR=1;     AC_SUBST([HAVE_DECL_FCHDIR])
+  HAVE_DECL_FDATASYNC=1;  AC_SUBST([HAVE_DECL_FDATASYNC])
+  HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME])
   HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
   HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE])
   HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL])
+  HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME])
+  HAVE_DECL_TTYNAME_R=1;  AC_SUBST([HAVE_DECL_TTYNAME_R])
   HAVE_OS_H=0;            AC_SUBST([HAVE_OS_H])
   HAVE_SYS_PARAM_H=0;     AC_SUBST([HAVE_SYS_PARAM_H])
   REPLACE_CHOWN=0;        AC_SUBST([REPLACE_CHOWN])
@@ -132,14 +157,21 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   REPLACE_DUP=0;          AC_SUBST([REPLACE_DUP])
   REPLACE_DUP2=0;         AC_SUBST([REPLACE_DUP2])
   REPLACE_FCHOWNAT=0;     AC_SUBST([REPLACE_FCHOWNAT])
+  REPLACE_FTRUNCATE=0;    AC_SUBST([REPLACE_FTRUNCATE])
   REPLACE_GETCWD=0;       AC_SUBST([REPLACE_GETCWD])
+  REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME])
+  REPLACE_GETDTABLESIZE=0; AC_SUBST([REPLACE_GETDTABLESIZE])
+  REPLACE_GETLOGIN_R=0;   AC_SUBST([REPLACE_GETLOGIN_R])
   REPLACE_GETGROUPS=0;    AC_SUBST([REPLACE_GETGROUPS])
   REPLACE_GETPAGESIZE=0;  AC_SUBST([REPLACE_GETPAGESIZE])
+  REPLACE_ISATTY=0;       AC_SUBST([REPLACE_ISATTY])
   REPLACE_LCHOWN=0;       AC_SUBST([REPLACE_LCHOWN])
   REPLACE_LINK=0;         AC_SUBST([REPLACE_LINK])
   REPLACE_LINKAT=0;       AC_SUBST([REPLACE_LINKAT])
   REPLACE_LSEEK=0;        AC_SUBST([REPLACE_LSEEK])
   REPLACE_PREAD=0;        AC_SUBST([REPLACE_PREAD])
+  REPLACE_PWRITE=0;       AC_SUBST([REPLACE_PWRITE])
+  REPLACE_READ=0;         AC_SUBST([REPLACE_READ])
   REPLACE_READLINK=0;     AC_SUBST([REPLACE_READLINK])
   REPLACE_RMDIR=0;        AC_SUBST([REPLACE_RMDIR])
   REPLACE_SLEEP=0;        AC_SUBST([REPLACE_SLEEP])
index ebe3c52..106192e 100644 (file)
@@ -1,5 +1,5 @@
-# vasnprintf.m4 serial 31
-dnl Copyright (C) 2002-2004, 2006-2010 Free Software Foundation, Inc.
+# vasnprintf.m4 serial 36
+dnl Copyright (C) 2002-2004, 2006-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -29,7 +29,7 @@ AC_DEFUN([gl_REPLACE_VASNPRINTF],
   gl_PREREQ_ASNPRINTF
 ])
 
-# Prequisites of lib/printf-args.h, lib/printf-args.c.
+# Prerequisites of lib/printf-args.h, lib/printf-args.c.
 AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
 [
   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
@@ -37,9 +37,10 @@ AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
   AC_REQUIRE([gt_TYPE_WINT_T])
 ])
 
-# Prequisites of lib/printf-parse.h, lib/printf-parse.c.
+# Prerequisites of lib/printf-parse.h, lib/printf-parse.c.
 AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
 [
+  AC_REQUIRE([gl_FEATURES_H])
   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
   AC_REQUIRE([gt_TYPE_WCHAR_T])
   AC_REQUIRE([gt_TYPE_WINT_T])
@@ -54,7 +55,6 @@ AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
 # Prerequisites of lib/vasnprintf.c.
 AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
 [
-  AC_REQUIRE([AC_C_INLINE])
   AC_REQUIRE([AC_FUNC_ALLOCA])
   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
   AC_REQUIRE([gt_TYPE_WCHAR_T])
@@ -62,7 +62,10 @@ AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
   AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
   dnl Use the _snprintf function only if it is declared (because on NetBSD it
   dnl is defined as a weak alias of snprintf; we prefer to use the latter).
-  AC_CHECK_DECLS([_snprintf], , , [#include <stdio.h>])
+  AC_CHECK_DECLS([_snprintf], , , [[#include <stdio.h>]])
+  dnl Knowing DBL_EXPBIT0_WORD and DBL_EXPBIT0_BIT enables an optimization
+  dnl in the code for NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE.
+  AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION])
   dnl We can avoid a lot of code by assuming that snprintf's return value
   dnl conforms to ISO C99. So check that.
   AC_REQUIRE([gl_SNPRINTF_RETVAL_C99])
index 42daae8..cc690f8 100644 (file)
@@ -1,5 +1,5 @@
-# warn-on-use.m4 serial 2
-dnl Copyright (C) 2010 Free Software Foundation, Inc.
+# warn-on-use.m4 serial 5
+dnl Copyright (C) 2010-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -18,8 +18,8 @@ dnl with or without modifications, as long as this notice is preserved.
 # some systems declare functions in the wrong header, then INCLUDES
 # should do likewise.
 #
-# If you assume C89, then it is generally safe to assume declarations
-# for functions declared in that standard (such as gets) without
+# It is generally safe to assume declarations for functions declared
+# in the intersection of C89 and C11 (such as printf) without
 # needing gl_WARN_ON_USE_PREPARE.
 AC_DEFUN([gl_WARN_ON_USE_PREPARE],
 [
@@ -27,6 +27,8 @@ AC_DEFUN([gl_WARN_ON_USE_PREPARE],
     [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])),
       [Define to 1 if ]m4_defn([gl_decl])[ is declared even after
        undefining macros.])])dnl
+dnl FIXME: gl_Symbol must be used unquoted until we can assume
+dnl autoconf 2.64 or newer.
   for gl_func in m4_flatten([$2]); do
     AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl
     AC_CACHE_CHECK([whether $gl_func is declared without a macro],
@@ -35,8 +37,8 @@ AC_DEFUN([gl_WARN_ON_USE_PREPARE],
 [@%:@undef $gl_func
   (void) $gl_func;])],
         [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])])
-     AS_VAR_IF(gl_Symbol, [yes],
-       [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1])
+    AS_VAR_IF(gl_Symbol, [yes],
+      [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1])
        dnl shortcut - if the raw declaration exists, then set a cache
        dnl variable to allow skipping any later AC_CHECK_DECL efforts
        eval ac_cv_have_decl_$gl_func=yes])
index 8cae82d..85db952 100644 (file)
@@ -1,13 +1,13 @@
 dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
 
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 dnl Written by Eric Blake.
 
-# wchar_h.m4 serial 33
+# wchar_h.m4 serial 39
 
 AC_DEFUN([gl_WCHAR_H],
 [
@@ -17,7 +17,6 @@ AC_DEFUN([gl_WCHAR_H],
   dnl Check for <wchar.h> (missing in Linux uClibc when built without wide
   dnl character support).
   dnl <wchar.h> is always overridden, because of GNULIB_POSIXCHECK.
-  AC_CHECK_HEADERS_ONCE([wchar.h])
   gl_CHECK_NEXT_HEADERS([wchar.h])
   if test $ac_cv_header_wchar_h = yes; then
     HAVE_WCHAR_H=1
@@ -26,6 +25,8 @@ AC_DEFUN([gl_WCHAR_H],
   fi
   AC_SUBST([HAVE_WCHAR_H])
 
+  AC_REQUIRE([gl_FEATURES_H])
+
   AC_REQUIRE([gt_TYPE_WINT_T])
   if test $gt_cv_c_wint_t = yes; then
     HAVE_WINT_T=1
@@ -37,15 +38,23 @@ AC_DEFUN([gl_WCHAR_H],
   dnl Check for declarations of anything we want to poison if the
   dnl corresponding gnulib module is not in use.
   gl_WARN_ON_USE_PREPARE([[
-/* Some systems require additional headers.  */
-#ifndef __GLIBC__
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
 # include <stddef.h>
 # include <stdio.h>
 # include <time.h>
 #endif
 #include <wchar.h>
-    ]], [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb
-    wcsrtombs wcsnrtombs wcwidth])
+    ]],
+    [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb
+     wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset
+     wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp
+     wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr
+     wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth
+    ])
 ])
 
 dnl Check whether <wchar.h> is usable at all.
@@ -61,6 +70,13 @@ AC_DEFUN([gl_WCHAR_H_INLINE_OK],
     [gl_cv_header_wchar_h_correct_inline=yes
      AC_LANG_CONFTEST([
        AC_LANG_SOURCE([[#define wcstod renamed_wcstod
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
 #include <wchar.h>
 extern int zero (void);
 int main () { return zero(); }
@@ -69,6 +85,13 @@ int main () { return zero(); }
        mv conftest.$ac_objext conftest1.$ac_objext
        AC_LANG_CONFTEST([
          AC_LANG_SOURCE([[#define wcstod renamed_wcstod
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
 #include <wchar.h>
 int zero (void) { return 0; }
 ]])])
@@ -96,13 +119,6 @@ Configuration aborted.])
   fi
 ])
 
-dnl Unconditionally enables the replacement of <wchar.h>.
-AC_DEFUN([gl_REPLACE_WCHAR_H],
-[
-  dnl This is a no-op, because <wchar.h> is always overridden.
-  :
-])
-
 AC_DEFUN([gl_WCHAR_MODULE_INDICATOR],
 [
   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
@@ -114,17 +130,45 @@ AC_DEFUN([gl_WCHAR_MODULE_INDICATOR],
 
 AC_DEFUN([gl_WCHAR_H_DEFAULTS],
 [
-  GNULIB_BTOWC=0;      AC_SUBST([GNULIB_BTOWC])
-  GNULIB_WCTOB=0;      AC_SUBST([GNULIB_WCTOB])
-  GNULIB_MBSINIT=0;    AC_SUBST([GNULIB_MBSINIT])
-  GNULIB_MBRTOWC=0;    AC_SUBST([GNULIB_MBRTOWC])
-  GNULIB_MBRLEN=0;     AC_SUBST([GNULIB_MBRLEN])
-  GNULIB_MBSRTOWCS=0;  AC_SUBST([GNULIB_MBSRTOWCS])
-  GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS])
-  GNULIB_WCRTOMB=0;    AC_SUBST([GNULIB_WCRTOMB])
-  GNULIB_WCSRTOMBS=0;  AC_SUBST([GNULIB_WCSRTOMBS])
-  GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS])
-  GNULIB_WCWIDTH=0;    AC_SUBST([GNULIB_WCWIDTH])
+  GNULIB_BTOWC=0;       AC_SUBST([GNULIB_BTOWC])
+  GNULIB_WCTOB=0;       AC_SUBST([GNULIB_WCTOB])
+  GNULIB_MBSINIT=0;     AC_SUBST([GNULIB_MBSINIT])
+  GNULIB_MBRTOWC=0;     AC_SUBST([GNULIB_MBRTOWC])
+  GNULIB_MBRLEN=0;      AC_SUBST([GNULIB_MBRLEN])
+  GNULIB_MBSRTOWCS=0;   AC_SUBST([GNULIB_MBSRTOWCS])
+  GNULIB_MBSNRTOWCS=0;  AC_SUBST([GNULIB_MBSNRTOWCS])
+  GNULIB_WCRTOMB=0;     AC_SUBST([GNULIB_WCRTOMB])
+  GNULIB_WCSRTOMBS=0;   AC_SUBST([GNULIB_WCSRTOMBS])
+  GNULIB_WCSNRTOMBS=0;  AC_SUBST([GNULIB_WCSNRTOMBS])
+  GNULIB_WCWIDTH=0;     AC_SUBST([GNULIB_WCWIDTH])
+  GNULIB_WMEMCHR=0;     AC_SUBST([GNULIB_WMEMCHR])
+  GNULIB_WMEMCMP=0;     AC_SUBST([GNULIB_WMEMCMP])
+  GNULIB_WMEMCPY=0;     AC_SUBST([GNULIB_WMEMCPY])
+  GNULIB_WMEMMOVE=0;    AC_SUBST([GNULIB_WMEMMOVE])
+  GNULIB_WMEMSET=0;     AC_SUBST([GNULIB_WMEMSET])
+  GNULIB_WCSLEN=0;      AC_SUBST([GNULIB_WCSLEN])
+  GNULIB_WCSNLEN=0;     AC_SUBST([GNULIB_WCSNLEN])
+  GNULIB_WCSCPY=0;      AC_SUBST([GNULIB_WCSCPY])
+  GNULIB_WCPCPY=0;      AC_SUBST([GNULIB_WCPCPY])
+  GNULIB_WCSNCPY=0;     AC_SUBST([GNULIB_WCSNCPY])
+  GNULIB_WCPNCPY=0;     AC_SUBST([GNULIB_WCPNCPY])
+  GNULIB_WCSCAT=0;      AC_SUBST([GNULIB_WCSCAT])
+  GNULIB_WCSNCAT=0;     AC_SUBST([GNULIB_WCSNCAT])
+  GNULIB_WCSCMP=0;      AC_SUBST([GNULIB_WCSCMP])
+  GNULIB_WCSNCMP=0;     AC_SUBST([GNULIB_WCSNCMP])
+  GNULIB_WCSCASECMP=0;  AC_SUBST([GNULIB_WCSCASECMP])
+  GNULIB_WCSNCASECMP=0; AC_SUBST([GNULIB_WCSNCASECMP])
+  GNULIB_WCSCOLL=0;     AC_SUBST([GNULIB_WCSCOLL])
+  GNULIB_WCSXFRM=0;     AC_SUBST([GNULIB_WCSXFRM])
+  GNULIB_WCSDUP=0;      AC_SUBST([GNULIB_WCSDUP])
+  GNULIB_WCSCHR=0;      AC_SUBST([GNULIB_WCSCHR])
+  GNULIB_WCSRCHR=0;     AC_SUBST([GNULIB_WCSRCHR])
+  GNULIB_WCSCSPN=0;     AC_SUBST([GNULIB_WCSCSPN])
+  GNULIB_WCSSPN=0;      AC_SUBST([GNULIB_WCSSPN])
+  GNULIB_WCSPBRK=0;     AC_SUBST([GNULIB_WCSPBRK])
+  GNULIB_WCSSTR=0;      AC_SUBST([GNULIB_WCSSTR])
+  GNULIB_WCSTOK=0;      AC_SUBST([GNULIB_WCSTOK])
+  GNULIB_WCSWIDTH=0;    AC_SUBST([GNULIB_WCSWIDTH])
   dnl Assume proper GNU behavior unless another module says otherwise.
   HAVE_BTOWC=1;         AC_SUBST([HAVE_BTOWC])
   HAVE_MBSINIT=1;       AC_SUBST([HAVE_MBSINIT])
@@ -135,6 +179,34 @@ AC_DEFUN([gl_WCHAR_H_DEFAULTS],
   HAVE_WCRTOMB=1;       AC_SUBST([HAVE_WCRTOMB])
   HAVE_WCSRTOMBS=1;     AC_SUBST([HAVE_WCSRTOMBS])
   HAVE_WCSNRTOMBS=1;    AC_SUBST([HAVE_WCSNRTOMBS])
+  HAVE_WMEMCHR=1;       AC_SUBST([HAVE_WMEMCHR])
+  HAVE_WMEMCMP=1;       AC_SUBST([HAVE_WMEMCMP])
+  HAVE_WMEMCPY=1;       AC_SUBST([HAVE_WMEMCPY])
+  HAVE_WMEMMOVE=1;      AC_SUBST([HAVE_WMEMMOVE])
+  HAVE_WMEMSET=1;       AC_SUBST([HAVE_WMEMSET])
+  HAVE_WCSLEN=1;        AC_SUBST([HAVE_WCSLEN])
+  HAVE_WCSNLEN=1;       AC_SUBST([HAVE_WCSNLEN])
+  HAVE_WCSCPY=1;        AC_SUBST([HAVE_WCSCPY])
+  HAVE_WCPCPY=1;        AC_SUBST([HAVE_WCPCPY])
+  HAVE_WCSNCPY=1;       AC_SUBST([HAVE_WCSNCPY])
+  HAVE_WCPNCPY=1;       AC_SUBST([HAVE_WCPNCPY])
+  HAVE_WCSCAT=1;        AC_SUBST([HAVE_WCSCAT])
+  HAVE_WCSNCAT=1;       AC_SUBST([HAVE_WCSNCAT])
+  HAVE_WCSCMP=1;        AC_SUBST([HAVE_WCSCMP])
+  HAVE_WCSNCMP=1;       AC_SUBST([HAVE_WCSNCMP])
+  HAVE_WCSCASECMP=1;    AC_SUBST([HAVE_WCSCASECMP])
+  HAVE_WCSNCASECMP=1;   AC_SUBST([HAVE_WCSNCASECMP])
+  HAVE_WCSCOLL=1;       AC_SUBST([HAVE_WCSCOLL])
+  HAVE_WCSXFRM=1;       AC_SUBST([HAVE_WCSXFRM])
+  HAVE_WCSDUP=1;        AC_SUBST([HAVE_WCSDUP])
+  HAVE_WCSCHR=1;        AC_SUBST([HAVE_WCSCHR])
+  HAVE_WCSRCHR=1;       AC_SUBST([HAVE_WCSRCHR])
+  HAVE_WCSCSPN=1;       AC_SUBST([HAVE_WCSCSPN])
+  HAVE_WCSSPN=1;        AC_SUBST([HAVE_WCSSPN])
+  HAVE_WCSPBRK=1;       AC_SUBST([HAVE_WCSPBRK])
+  HAVE_WCSSTR=1;        AC_SUBST([HAVE_WCSSTR])
+  HAVE_WCSTOK=1;        AC_SUBST([HAVE_WCSTOK])
+  HAVE_WCSWIDTH=1;      AC_SUBST([HAVE_WCSWIDTH])
   HAVE_DECL_WCTOB=1;    AC_SUBST([HAVE_DECL_WCTOB])
   HAVE_DECL_WCWIDTH=1;  AC_SUBST([HAVE_DECL_WCWIDTH])
   REPLACE_MBSTATE_T=0;  AC_SUBST([REPLACE_MBSTATE_T])
@@ -149,4 +221,5 @@ AC_DEFUN([gl_WCHAR_H_DEFAULTS],
   REPLACE_WCSRTOMBS=0;  AC_SUBST([REPLACE_WCSRTOMBS])
   REPLACE_WCSNRTOMBS=0; AC_SUBST([REPLACE_WCSNRTOMBS])
   REPLACE_WCWIDTH=0;    AC_SUBST([REPLACE_WCWIDTH])
+  REPLACE_WCSWIDTH=0;   AC_SUBST([REPLACE_WCSWIDTH])
 ])
index ed804e6..839a04c 100644 (file)
@@ -1,5 +1,5 @@
-# wchar_t.m4 serial 3 (gettext-0.18)
-dnl Copyright (C) 2002-2003, 2008-2010 Free Software Foundation, Inc.
+# wchar_t.m4 serial 4 (gettext-0.18.2)
+dnl Copyright (C) 2002-2003, 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -11,9 +11,13 @@ dnl Prerequisite: AC_PROG_CC
 AC_DEFUN([gt_TYPE_WCHAR_T],
 [
   AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
-    [AC_TRY_COMPILE([#include <stddef.h>
-       wchar_t foo = (wchar_t)'\0';], ,
-       [gt_cv_c_wchar_t=yes], [gt_cv_c_wchar_t=no])])
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <stddef.h>
+            wchar_t foo = (wchar_t)'\0';]],
+          [[]])],
+       [gt_cv_c_wchar_t=yes],
+       [gt_cv_c_wchar_t=no])])
   if test $gt_cv_c_wchar_t = yes; then
     AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.])
   fi
diff --git a/gnulib-m4/wcrtomb.m4 b/gnulib-m4/wcrtomb.m4
new file mode 100644 (file)
index 0000000..844ef6a
--- /dev/null
@@ -0,0 +1,112 @@
+# wcrtomb.m4 serial 11
+dnl Copyright (C) 2008-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_WCRTOMB],
+[
+  AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+
+  AC_REQUIRE([AC_TYPE_MBSTATE_T])
+  gl_MBSTATE_T_BROKEN
+
+  AC_CHECK_FUNCS_ONCE([wcrtomb])
+  if test $ac_cv_func_wcrtomb = no; then
+    HAVE_WCRTOMB=0
+    AC_CHECK_DECLS([wcrtomb],,, [[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+]])
+    if test $ac_cv_have_decl_wcrtomb = yes; then
+      dnl On Minix 3.1.8, the system's <wchar.h> declares wcrtomb() although
+      dnl it does not have the function. Avoid a collision with gnulib's
+      dnl replacement.
+      REPLACE_WCRTOMB=1
+    fi
+  else
+    if test $REPLACE_MBSTATE_T = 1; then
+      REPLACE_WCRTOMB=1
+    else
+      dnl On AIX 4.3, OSF/1 5.1 and Solaris 10, wcrtomb (NULL, 0, NULL) sometimes
+      dnl returns 0 instead of 1.
+      AC_REQUIRE([AC_PROG_CC])
+      AC_REQUIRE([gt_LOCALE_FR])
+      AC_REQUIRE([gt_LOCALE_FR_UTF8])
+      AC_REQUIRE([gt_LOCALE_JA])
+      AC_REQUIRE([gt_LOCALE_ZH_CN])
+      AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+      AC_CACHE_CHECK([whether wcrtomb return value is correct],
+        [gl_cv_func_wcrtomb_retval],
+        [
+          dnl Initial guess, used when cross-compiling or when no suitable locale
+          dnl is present.
+changequote(,)dnl
+          case "$host_os" in
+                                     # Guess no on AIX 4, OSF/1 and Solaris.
+            aix4* | osf* | solaris*) gl_cv_func_wcrtomb_retval="guessing no" ;;
+                                     # Guess yes otherwise.
+            *)                       gl_cv_func_wcrtomb_retval="guessing yes" ;;
+          esac
+changequote([,])dnl
+          if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then
+            AC_RUN_IFELSE(
+              [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+int main ()
+{
+  int result = 0;
+  if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+    {
+      if (wcrtomb (NULL, 0, NULL) != 1)
+        result |= 1;
+    }
+  if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+    {
+      if (wcrtomb (NULL, 0, NULL) != 1)
+        result |= 2;
+    }
+  if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+    {
+      if (wcrtomb (NULL, 0, NULL) != 1)
+        result |= 4;
+    }
+  if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+    {
+      if (wcrtomb (NULL, 0, NULL) != 1)
+        result |= 8;
+    }
+  return result;
+}]])],
+              [gl_cv_func_wcrtomb_retval=yes],
+              [gl_cv_func_wcrtomb_retval=no],
+              [:])
+          fi
+        ])
+      case "$gl_cv_func_wcrtomb_retval" in
+        *yes) ;;
+        *) REPLACE_WCRTOMB=1 ;;
+      esac
+    fi
+  fi
+])
+
+# Prerequisites of lib/wcrtomb.c.
+AC_DEFUN([gl_PREREQ_WCRTOMB], [
+  :
+])
index 3af3cc7..41f57af 100644 (file)
@@ -1,5 +1,5 @@
-# wctob.m4 serial 5
-dnl Copyright (C) 2008-2010 Free Software Foundation, Inc.
+# wctob.m4 serial 10
+dnl Copyright (C) 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,11 +10,10 @@ AC_DEFUN([gl_FUNC_WCTOB],
 
   AC_CHECK_FUNCS_ONCE([wctob])
   if test $ac_cv_func_wctob = no; then
+    HAVE_WCTOB=0
     HAVE_DECL_WCTOB=0
-    gl_REPLACE_WCHAR_H
-    AC_LIBOBJ([wctob])
-    gl_PREREQ_WCTOB
   else
+    HAVE_WCTOB=1
 
     dnl Solaris 9 has the wctob() function but it does not work.
     dnl Cygwin 1.7.2 has the wctob() function but it clobbers caller-owned
@@ -38,8 +37,16 @@ changequote(,)dnl
 changequote([,])dnl
         case "$host_os" in
           cygwin*)
-            AC_TRY_RUN([
+            AC_RUN_IFELSE(
+              [AC_LANG_SOURCE([[
 #include <locale.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
 #include <wchar.h>
 
 register long global __asm__ ("%ebx");
@@ -54,13 +61,24 @@ int main ()
   if (global != 0x12345678)
     return 2;
   return 0;
-}], [:], [gl_cv_func_wctob_works=no], [:])
+}]])],
+              [:],
+              [gl_cv_func_wctob_works=no],
+              [:])
             ;;
         esac
         if test "$gl_cv_func_wctob_works" != no && test $LOCALE_FR != none; then
-          AC_TRY_RUN([
+          AC_RUN_IFELSE(
+            [AC_LANG_SOURCE([[
 #include <locale.h>
 #include <string.h>
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
 #include <wchar.h>
 int main ()
 {
@@ -73,7 +91,7 @@ int main ()
           return 1;
     }
   return 0;
-}],
+}]])],
             [gl_cv_func_wctob_works=yes],
             [gl_cv_func_wctob_works=no],
             [:])
@@ -83,14 +101,10 @@ int main ()
       *yes) ;;
       *) REPLACE_WCTOB=1 ;;
     esac
-    if test $REPLACE_WCTOB = 1; then
-      gl_REPLACE_WCHAR_H
-      AC_LIBOBJ([wctob])
-      gl_PREREQ_WCTOB
-    else
+    if test $REPLACE_WCTOB = 0; then
 
       dnl IRIX 6.5 has the wctob() function but does not declare it.
-      AC_CHECK_DECLS([wctob], [], [], [
+      AC_CHECK_DECLS([wctob], [], [], [[
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
@@ -99,10 +113,9 @@ int main ()
 #include <stdio.h>
 #include <time.h>
 #include <wchar.h>
-])
+]])
       if test $ac_cv_have_decl_wctob != yes; then
         HAVE_DECL_WCTOB=0
-        gl_REPLACE_WCHAR_H
       fi
     fi
   fi
diff --git a/gnulib-m4/wctomb.m4 b/gnulib-m4/wctomb.m4
new file mode 100644 (file)
index 0000000..3b4ff79
--- /dev/null
@@ -0,0 +1,19 @@
+# wctomb.m4 serial 2
+dnl Copyright (C) 2011-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_WCTOMB],
+[
+  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+
+  if false; then
+    REPLACE_WCTOMB=1
+  fi
+])
+
+# Prerequisites of lib/wctomb.c.
+AC_DEFUN([gl_PREREQ_WCTOMB], [
+  :
+])
index 3292451..3fac0ee 100644 (file)
@@ -1,8 +1,8 @@
-# wctype_h.m4 serial 6
+# wctype_h.m4 serial 18
 
 dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
 
-dnl Copyright (C) 2006-2010 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -11,6 +11,7 @@ dnl Written by Paul Eggert.
 
 AC_DEFUN([gl_WCTYPE_H],
 [
+  AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
   AC_REQUIRE([AC_PROG_CC])
   AC_REQUIRE([AC_CANONICAL_HOST])
   AC_CHECK_FUNCS_ONCE([iswcntrl])
@@ -20,15 +21,6 @@ AC_DEFUN([gl_WCTYPE_H],
     HAVE_ISWCNTRL=0
   fi
   AC_SUBST([HAVE_ISWCNTRL])
-  AC_CHECK_FUNCS_ONCE([iswblank])
-  if test $ac_cv_func_iswblank = yes; then
-    HAVE_ISWBLANK=1
-  else
-    HAVE_ISWBLANK=0
-  fi
-  AC_SUBST([HAVE_ISWBLANK])
-  AC_CHECK_HEADERS_ONCE([wctype.h])
-  AC_REQUIRE([AC_C_INLINE])
 
   AC_REQUIRE([gt_TYPE_WINT_T])
   if test $gt_cv_c_wint_t = yes; then
@@ -38,39 +30,180 @@ AC_DEFUN([gl_WCTYPE_H],
   fi
   AC_SUBST([HAVE_WINT_T])
 
+  gl_CHECK_NEXT_HEADERS([wctype.h])
   if test $ac_cv_header_wctype_h = yes; then
     if test $ac_cv_func_iswcntrl = yes; then
       dnl Linux libc5 has an iswprint function that returns 0 for all arguments.
       dnl The other functions are likely broken in the same way.
       AC_CACHE_CHECK([whether iswcntrl works], [gl_cv_func_iswcntrl_works],
         [
-          AC_RUN_IFELSE([AC_LANG_SOURCE([[
-                            #include <stddef.h>
-                            #include <stdio.h>
-                            #include <time.h>
-                            #include <wchar.h>
-                            #include <wctype.h>
-                            int main () { return iswprint ('x') == 0; }]])],
+          AC_RUN_IFELSE(
+            [AC_LANG_SOURCE([[
+               /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+                  included before <wchar.h>.
+                  BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+                  must be included before <wchar.h>.  */
+               #include <stddef.h>
+               #include <stdio.h>
+               #include <time.h>
+               #include <wchar.h>
+               #include <wctype.h>
+               int main () { return iswprint ('x') == 0; }
+            ]])],
             [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no],
             [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
                           #if __GNU_LIBRARY__ == 1
                           Linux libc5 i18n is broken.
                           #endif]], [])],
-              [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no])
+              [gl_cv_func_iswcntrl_works="guessing yes"],
+              [gl_cv_func_iswcntrl_works="guessing no"])
             ])
         ])
     fi
-    gl_CHECK_NEXT_HEADERS([wctype.h])
     HAVE_WCTYPE_H=1
   else
     HAVE_WCTYPE_H=0
   fi
   AC_SUBST([HAVE_WCTYPE_H])
 
-  if test "$gl_cv_func_iswcntrl_works" = no; then
-    REPLACE_ISWCNTRL=1
+  case "$gl_cv_func_iswcntrl_works" in
+    *yes) REPLACE_ISWCNTRL=0 ;;
+    *)    REPLACE_ISWCNTRL=1 ;;
+  esac
+  AC_SUBST([REPLACE_ISWCNTRL])
+
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+    dnl Redefine all of iswcntrl, ..., iswxdigit in <wctype.h>.
+    :
+  fi
+
+  if test $REPLACE_ISWCNTRL = 1; then
+    REPLACE_TOWLOWER=1
   else
-    REPLACE_ISWCNTRL=0
+    AC_CHECK_FUNCS([towlower])
+    if test $ac_cv_func_towlower = yes; then
+      REPLACE_TOWLOWER=0
+    else
+      AC_CHECK_DECLS([towlower],,,
+        [[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+             included before <wchar.h>.
+             BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+             must be included before <wchar.h>.  */
+          #include <stddef.h>
+          #include <stdio.h>
+          #include <time.h>
+          #include <wchar.h>
+          #if HAVE_WCTYPE_H
+          # include <wctype.h>
+          #endif
+        ]])
+      if test $ac_cv_have_decl_towlower = yes; then
+        dnl On Minix 3.1.8, the system's <wctype.h> declares towlower() and
+        dnl towupper() although it does not have the functions. Avoid a
+        dnl collision with gnulib's replacement.
+        REPLACE_TOWLOWER=1
+      else
+        REPLACE_TOWLOWER=0
+      fi
+    fi
   fi
-  AC_SUBST([REPLACE_ISWCNTRL])
+  AC_SUBST([REPLACE_TOWLOWER])
+
+  if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+    dnl Redefine towlower, towupper in <wctype.h>.
+    :
+  fi
+
+  dnl We assume that the wctype() and iswctype() functions exist if and only
+  dnl if the type wctype_t is defined in <wchar.h> or in <wctype.h> if that
+  dnl exists.
+  dnl HP-UX 11.00 declares all these in <wchar.h> and lacks <wctype.h>.
+  AC_CACHE_CHECK([for wctype_t], [gl_cv_type_wctype_t],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+               included before <wchar.h>.
+               BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+               must be included before <wchar.h>.  */
+            #include <stddef.h>
+            #include <stdio.h>
+            #include <time.h>
+            #include <wchar.h>
+            #if HAVE_WCTYPE_H
+            # include <wctype.h>
+            #endif
+            wctype_t a;
+          ]],
+          [[]])],
+       [gl_cv_type_wctype_t=yes],
+       [gl_cv_type_wctype_t=no])
+    ])
+  if test $gl_cv_type_wctype_t = no; then
+    HAVE_WCTYPE_T=0
+  fi
+
+  dnl We assume that the wctrans() and towctrans() functions exist if and only
+  dnl if the type wctrans_t is defined in <wctype.h>.
+  AC_CACHE_CHECK([for wctrans_t], [gl_cv_type_wctrans_t],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be
+               included before <wchar.h>.
+               BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h>
+               must be included before <wchar.h>.  */
+            #include <stddef.h>
+            #include <stdio.h>
+            #include <time.h>
+            #include <wchar.h>
+            #include <wctype.h>
+            wctrans_t a;
+          ]],
+          [[]])],
+       [gl_cv_type_wctrans_t=yes],
+       [gl_cv_type_wctrans_t=no])
+    ])
+  if test $gl_cv_type_wctrans_t = no; then
+    HAVE_WCTRANS_T=0
+  fi
+
+  dnl Check for declarations of anything we want to poison if the
+  dnl corresponding gnulib module is not in use.
+  gl_WARN_ON_USE_PREPARE([[
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+    ]],
+    [wctype iswctype wctrans towctrans
+    ])
+])
+
+AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+  dnl Define it also as a C macro, for the benefit of the unit tests.
+  gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_WCTYPE_H_DEFAULTS],
+[
+  GNULIB_ISWBLANK=0;    AC_SUBST([GNULIB_ISWBLANK])
+  GNULIB_WCTYPE=0;      AC_SUBST([GNULIB_WCTYPE])
+  GNULIB_ISWCTYPE=0;    AC_SUBST([GNULIB_ISWCTYPE])
+  GNULIB_WCTRANS=0;     AC_SUBST([GNULIB_WCTRANS])
+  GNULIB_TOWCTRANS=0;   AC_SUBST([GNULIB_TOWCTRANS])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_ISWBLANK=1;      AC_SUBST([HAVE_ISWBLANK])
+  HAVE_WCTYPE_T=1;      AC_SUBST([HAVE_WCTYPE_T])
+  HAVE_WCTRANS_T=1;     AC_SUBST([HAVE_WCTRANS_T])
+  REPLACE_ISWBLANK=0;   AC_SUBST([REPLACE_ISWBLANK])
 ])
index acceba5..f00a6cc 100644 (file)
@@ -1,5 +1,5 @@
-# wcwidth.m4 serial 16
-dnl Copyright (C) 2006-2010 Free Software Foundation, Inc.
+# wcwidth.m4 serial 23
+dnl Copyright (C) 2006-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -18,7 +18,7 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
   AC_CHECK_HEADERS_ONCE([wchar.h])
   AC_CHECK_FUNCS_ONCE([wcwidth])
 
-  AC_CHECK_DECLS([wcwidth], [], [], [
+  AC_CHECK_DECLS([wcwidth], [], [], [[
 /* AIX 3.2.5 declares wcwidth in <string.h>. */
 #include <string.h>
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
@@ -29,19 +29,22 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
 #include <stdio.h>
 #include <time.h>
 #include <wchar.h>
-])
+]])
   if test $ac_cv_have_decl_wcwidth != yes; then
     HAVE_DECL_WCWIDTH=0
   fi
 
   if test $ac_cv_func_wcwidth = yes; then
-    dnl On MacOS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
+    HAVE_WCWIDTH=1
+    dnl On Mac OS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
+    dnl On OpenBSD 5.0, wcwidth(0x05B0) (HEBREW POINT SHEVA) returns 1.
     dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
     dnl This leads to bugs in 'ls' (coreutils).
     AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales],
       [gl_cv_func_wcwidth_works],
       [
-        AC_TRY_RUN([
+        AC_RUN_IFELSE(
+          [AC_LANG_SOURCE([[
 #include <locale.h>
 /* AIX 3.2.5 declares wcwidth in <string.h>. */
 #include <string.h>
@@ -62,17 +65,26 @@ int wcwidth (int);
 #endif
 int main ()
 {
+  int result = 0;
   if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
-    if (wcwidth (0x0301) > 0 || wcwidth (0x200B) > 0)
-      return 1;
-  return 0;
-}], [gl_cv_func_wcwidth_works=yes], [gl_cv_func_wcwidth_works=no],
+    {
+      if (wcwidth (0x0301) > 0)
+        result |= 1;
+      if (wcwidth (0x05B0) > 0)
+        result |= 2;
+      if (wcwidth (0x200B) > 0)
+        result |= 4;
+    }
+  return result;
+}]])],
+          [gl_cv_func_wcwidth_works=yes],
+          [gl_cv_func_wcwidth_works=no],
           [
 changequote(,)dnl
            case "$host_os" in
-                     # Guess yes on glibc systems.
-             *-gnu*) gl_cv_func_wcwidth_works="guessing yes";;
-             *)      gl_cv_func_wcwidth_works="guessing no";;
+                     # Guess yes on glibc and AIX 7 systems.
+             *-gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
+             *)                  gl_cv_func_wcwidth_works="guessing no";;
            esac
 changequote([,])dnl
           ])
@@ -81,13 +93,8 @@ changequote([,])dnl
       *yes) ;;
       *no) REPLACE_WCWIDTH=1 ;;
     esac
-  fi
-  if test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1; then
-    AC_LIBOBJ([wcwidth])
-  fi
-  if test $ac_cv_func_wcwidth != yes || test $REPLACE_WCWIDTH = 1 \
-     || test $HAVE_DECL_WCWIDTH = 0; then
-    gl_REPLACE_WCHAR_H
+  else
+    HAVE_WCWIDTH=0
   fi
   dnl We don't substitute HAVE_WCWIDTH. We assume that if the system does not
   dnl have the wcwidth function, then it does not declare it.
index a6c7d15..9b07b07 100644 (file)
@@ -1,5 +1,5 @@
-# wint_t.m4 serial 4 (gettext-0.18)
-dnl Copyright (C) 2003, 2007-2010 Free Software Foundation, Inc.
+# wint_t.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2003, 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -11,7 +11,9 @@ dnl Prerequisite: AC_PROG_CC
 AC_DEFUN([gt_TYPE_WINT_T],
 [
   AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
-    [AC_TRY_COMPILE([
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
@@ -20,8 +22,10 @@ AC_DEFUN([gt_TYPE_WINT_T],
 #include <stdio.h>
 #include <time.h>
 #include <wchar.h>
-       wint_t foo = (wchar_t)'\0';], ,
-       [gt_cv_c_wint_t=yes], [gt_cv_c_wint_t=no])])
+            wint_t foo = (wchar_t)'\0';]],
+          [[]])],
+       [gt_cv_c_wint_t=yes],
+       [gt_cv_c_wint_t=no])])
   if test $gt_cv_c_wint_t = yes; then
     AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.])
   fi
index 83247fe..b6a2257 100644 (file)
@@ -1,25 +1,7 @@
-# xalloc.m4 serial 16
-dnl Copyright (C) 2002, 2003, 2004, 2005, 2006, 2009, 2010 Free Software
-dnl Foundation, Inc.
+# xalloc.m4 serial 18
+dnl Copyright (C) 2002-2006, 2009-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-AC_DEFUN([gl_XALLOC],
-[
-  AC_LIBOBJ([xmalloc])
-
-  gl_PREREQ_XALLOC
-  gl_PREREQ_XMALLOC
-])
-
-# Prerequisites of lib/xalloc.h.
-AC_DEFUN([gl_PREREQ_XALLOC], [
-  AC_REQUIRE([gl_INLINE])
-  :
-])
-
-# Prerequisites of lib/xmalloc.c.
-AC_DEFUN([gl_PREREQ_XMALLOC], [
-  :
-])
+AC_DEFUN([gl_XALLOC], [:])
index b653693..3af23ec 100644 (file)
@@ -1,5 +1,5 @@
-# xsize.m4 serial 4
-dnl Copyright (C) 2003-2004, 2008-2010 Free Software Foundation, Inc.
+# xsize.m4 serial 5
+dnl Copyright (C) 2003-2004, 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,6 +8,5 @@ AC_DEFUN([gl_XSIZE],
 [
   dnl Prerequisites of lib/xsize.h.
   AC_REQUIRE([gl_SIZE_MAX])
-  AC_REQUIRE([AC_C_INLINE])
   AC_CHECK_HEADERS([stdint.h])
 ])
index 7a543e4..e9442a6 100644 (file)
@@ -1,5 +1,5 @@
 # yield.m4 serial 2
-dnl Copyright (C) 2005-2010 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index ffbfae2..265ff46 100644 (file)
@@ -1,5 +1,5 @@
 ## Makefile for the lib subdirectory of GNU libunistring.
-## Copyright (C) 2009-2010 Free Software Foundation, Inc.
+## Copyright (C) 2009-2011 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
@@ -20,6 +20,7 @@ AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects no-dependencies
 EXTRA_DIST =
 BUILT_SOURCES =
 MOSTLYCLEANFILES = core *.stackdump
+MOSTLYCLEANDIRS =
 CLEANFILES =
 DISTCLEANFILES =
 MAINTAINERCLEANFILES =
@@ -35,6 +36,7 @@ nobase_include_HEADERS = \
   uniname.h \
   unictype.h \
   uniwidth.h \
+  unigbrk.h \
   uniwbrk.h \
   unilbrk.h \
   uninorm.h \
@@ -157,7 +159,7 @@ nobase_nodist_include_HEADERS += unistring/version.h
 
 # unistring/cdefs.h is not public, but is included by other header files.
 nobase_nodist_include_HEADERS += unistring/cdefs.h
-unistring/cdefs.h : unistring/cdefs.in.h
+unistring/cdefs.h : unistring/cdefs.in.h $(UNUSED_PARAMETER_H)
        @MKDIR_P@ unistring
        rm -f $@-t $@
        sed -e '/definition of _GL_UNUSED_PARAMETER/r $(UNUSED_PARAMETER_H)' \
@@ -199,6 +201,7 @@ HEADERS_WITH_EXTERNS = \
   uniname.h \
   unictype.h \
   uniwidth.h \
+  unigbrk.h \
   uniwbrk.h \
   unilbrk.h \
   uninorm.h \
@@ -208,15 +211,22 @@ HEADERS_WITH_EXTERNS = \
   unistring/version.in.h
 
 # List of exported symbols.
-# We extract it from the header files that get installed, removing symbols
-# start with "_UC".
+# We extract it from the header files that get installed.
+# We keep symbols that start with "_UC", because they may be needed for
+# compiling newer versions of gnulib modules when the gnulib module
+# 'libunistring-optional' is in use.
 # This file has the same format as the one expected by the libtool option
 # '-export-symbols', but we don't use this option, because it would prevent us
 # from building some of the gnulib unit tests.
 libunistring.sym : $(HEADERS_WITH_EXTERNS)
-       for f in $(HEADERS_WITH_EXTERNS); do cat $(srcdir)/$$f; done \
+       for f in $(HEADERS_WITH_EXTERNS); do \
+         if test -f $$f; then \
+           cat $$f; \
+         else \
+           cat $(srcdir)/$$f; \
+         fi; \
+       done \
          | $(srcdir)/declared.sh | LC_ALL=C sort | LC_ALL=C uniq \
-         | grep -v '^_UC' \
          > $@-t
        mv $@-t $@
 # We distribute it because declared.sh relies on GNU sed.
@@ -301,12 +311,11 @@ AM_CPPFLAGS += -DDEPENDS_ON_LIBICONV=1
 
 # Libtool's library version information for libunistring.
 # See the libtool documentation, section "Library interface versions".
-LTV_CURRENT=1
-LTV_REVISION=2
-LTV_AGE=1
+LTV_CURRENT=2
+LTV_REVISION=0
+LTV_AGE=0
 
 # How to build libunistring.la.
 libunistring_la_LDFLAGS += \
   -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
-  -rpath $(libdir) \
-  @INTL_MACOSX_LIBS@ -no-undefined
+  -rpath $(libdir)
index 3c3c6f5..2e0de29 100644 (file)
@@ -1,11 +1,23 @@
 ## DO NOT EDIT! GENERATED AUTOMATICALLY!
 ## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2010 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 #
-# This file is free software, distributed under the terms of the GNU
-# General Public License.  As a special exception to the GNU General
-# Public License, this file may be distributed as part of a program
-# that contains a configuration script generated by Autoconf, under
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file.  If not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License,
+# this file may be distributed as part of a program that
+# contains a configuration script generated by Autoconf, under
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
@@ -19,6 +31,19 @@ libunistring_la_LIBADD = $(gl_LTLIBOBJS)
 libunistring_la_DEPENDENCIES = $(gl_LTLIBOBJS)
 EXTRA_libunistring_la_SOURCES =
 libunistring_la_LDFLAGS = $(AM_LDFLAGS)
+libunistring_la_LDFLAGS += -no-undefined
+libunistring_la_LDFLAGS += $(LTLIBICONV)
+libunistring_la_LDFLAGS += $(LTLIBTHREAD)
+libunistring_la_LDFLAGS += @INTL_MACOSX_LIBS@
+
+## begin gnulib module absolute-header
+
+# Use this preprocessor expression to decide whether #include_next works.
+# Do not rely on a 'configure'-time test for this, since the expression
+# might appear in an installed header, which is used by some other compiler.
+HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER)
+
+## end   gnulib module absolute-header
 
 ## begin gnulib module alloca-opt
 
@@ -26,41 +51,30 @@ BUILT_SOURCES += $(ALLOCA_H)
 
 # We need the following in order to create <alloca.h> when the system
 # doesn't have one that works with the given compiler.
-alloca.h: alloca.in.h
+if GL_GENERATE_ALLOCA_H
+alloca.h: alloca.in.h $(top_builddir)/config.status
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
          cat $(srcdir)/alloca.in.h; \
        } > $@-t && \
        mv -f $@-t $@
+else
+alloca.h: $(top_builddir)/config.status
+       rm -f $@
+endif
 MOSTLYCLEANFILES += alloca.h alloca.h-t
 
 EXTRA_DIST += alloca.in.h
 
 ## end   gnulib module alloca-opt
 
-## begin gnulib module arg-nonnull
-
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-BUILT_SOURCES += arg-nonnull.h
-# The arg-nonnull.h that gets inserted into generated .h files is the same as
-# build-aux/arg-nonnull.h, except that it has the copyright header cut off.
-arg-nonnull.h: $(top_srcdir)/build-aux/arg-nonnull.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/GL_ARG_NONNULL/,$$p' \
-         < $(top_srcdir)/build-aux/arg-nonnull.h \
-         > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t
+## begin gnulib module amemxfrm
 
-ARG_NONNULL_H=arg-nonnull.h
+libunistring_la_SOURCES += amemxfrm.c
 
-EXTRA_DIST += $(top_srcdir)/build-aux/arg-nonnull.h
+EXTRA_DIST += amemxfrm.h
 
-## end   gnulib module arg-nonnull
+## end   gnulib module amemxfrm
 
 ## begin gnulib module array-mergesort
 
@@ -69,30 +83,6 @@ EXTRA_DIST += array-mergesort.h
 
 ## end   gnulib module array-mergesort
 
-## begin gnulib module c++defs
-
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-BUILT_SOURCES += c++defs.h
-# The c++defs.h that gets inserted into generated .h files is the same as
-# build-aux/c++defs.h, except that it has the copyright header cut off.
-c++defs.h: $(top_srcdir)/build-aux/c++defs.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/_GL_CXXDEFS/,$$p' \
-         < $(top_srcdir)/build-aux/c++defs.h \
-         > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += c++defs.h c++defs.h-t
-
-CXXDEFS_H=c++defs.h
-
-EXTRA_DIST += $(top_srcdir)/build-aux/c++defs.h
-
-## end   gnulib module c++defs
-
 ## begin gnulib module c-ctype
 
 libunistring_la_SOURCES += c-ctype.h c-ctype.c
@@ -114,21 +104,8 @@ EXTRA_DIST += c-strcaseeq.h
 
 ## begin gnulib module configmake
 
-# Retrieve values of the variables through 'configure' followed by
-# 'make', not directly through 'configure', so that a user who
-# sets some of these variables consistently on the 'make' command
-# line gets correct results.
-#
-# One advantage of this approach, compared to the classical
-# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
-# is that it protects against the use of undefined variables.
-# If, say, $(libdir) is not set in the Makefile, LIBDIR is not
-# defined by this module, and code using LIBDIR gives a
-# compilation error.
-#
-# Another advantage is that 'make' output is shorter.
-#
-# Listed in the same order as the GNU makefile conventions.
+# Listed in the same order as the GNU makefile conventions, and
+# provided by autoconf 2.59c+ or 2.70.
 # The Automake-defined pkg* macros are appended, in the order
 # listed in the Automake 1.10a+ documentation.
 configmake.h: Makefile
@@ -144,6 +121,7 @@ configmake.h: Makefile
          echo '#define SYSCONFDIR "$(sysconfdir)"'; \
          echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
          echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+         echo '#define RUNSTATEDIR "$(runstatedir)"'; \
          echo '#define INCLUDEDIR "$(includedir)"'; \
          echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
          echo '#define DOCDIR "$(docdir)"'; \
@@ -162,11 +140,7 @@ configmake.h: Makefile
          echo '#define PKGLIBDIR "$(pkglibdir)"'; \
          echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
        } | sed '/""/d' > $@-t && \
-       if test -f $@ && cmp $@-t $@ > /dev/null; then \
-         rm -f $@-t; \
-       else \
-         rm -f $@; mv $@-t $@; \
-       fi
+       mv -f $@-t $@
 
 BUILT_SOURCES += configmake.h
 CLEANFILES += configmake.h configmake.h-t
@@ -179,11 +153,14 @@ BUILT_SOURCES += $(ERRNO_H)
 
 # We need the following in order to create <errno.h> when the system
 # doesn't have one that is POSIX compliant.
-errno.h: errno.in.h
+if GL_GENERATE_ERRNO_H
+errno.h: errno.in.h $(top_builddir)/config.status
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
              -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
              -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
@@ -194,6 +171,10 @@ errno.h: errno.in.h
              < $(srcdir)/errno.in.h; \
        } > $@-t && \
        mv $@-t $@
+else
+errno.h: $(top_builddir)/config.status
+       rm -f $@
+endif
 MOSTLYCLEANFILES += errno.h errno.h-t
 
 EXTRA_DIST += errno.in.h
@@ -206,18 +187,28 @@ BUILT_SOURCES += $(FLOAT_H)
 
 # We need the following in order to create <float.h> when the system
 # doesn't have one that works with the given compiler.
-float.h: float.in.h
+if GL_GENERATE_FLOAT_H
+float.h: float.in.h $(top_builddir)/config.status
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+             -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
              < $(srcdir)/float.in.h; \
        } > $@-t && \
        mv $@-t $@
+else
+float.h: $(top_builddir)/config.status
+       rm -f $@
+endif
 MOSTLYCLEANFILES += float.h float.h-t
 
-EXTRA_DIST += float.in.h
+EXTRA_DIST += float.c float.in.h itold.c
+
+EXTRA_libunistring_la_SOURCES += float.c itold.c
 
 ## end   gnulib module float
 
@@ -228,6 +219,15 @@ EXTRA_DIST += fpucw.h
 
 ## end   gnulib module fpucw
 
+## begin gnulib module frexp-nolibm
+
+
+EXTRA_DIST += frexp.c
+
+EXTRA_libunistring_la_SOURCES += frexp.c
+
+## end   gnulib module frexp-nolibm
+
 ## begin gnulib module frexpl-nolibm
 
 
@@ -239,9 +239,10 @@ EXTRA_libunistring_la_SOURCES += frexp.c frexpl.c
 
 ## begin gnulib module fseterr
 
-libunistring_la_SOURCES += fseterr.c
 
-EXTRA_DIST += fseterr.h stdio-impl.h
+EXTRA_DIST += fseterr.c fseterr.h stdio-impl.h
+
+EXTRA_libunistring_la_SOURCES += fseterr.c
 
 ## end   gnulib module fseterr
 
@@ -264,12 +265,16 @@ BUILT_SOURCES += $(ICONV_H)
 
 # We need the following in order to create <iconv.h> when the system
 # doesn't have one that works with the given compiler.
-iconv.h: iconv.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+if GL_GENERATE_ICONV_H
+iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_ICONV_H''@|$(NEXT_ICONV_H)|g' \
+             -e 's/@''GNULIB_ICONV''@/$(GNULIB_ICONV)/g' \
              -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \
              -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \
              -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \
@@ -280,6 +285,10 @@ iconv.h: iconv.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              < $(srcdir)/iconv.in.h; \
        } > $@-t && \
        mv $@-t $@
+else
+iconv.h: $(top_builddir)/config.status
+       rm -f $@
+endif
 MOSTLYCLEANFILES += iconv.h iconv.h-t
 
 EXTRA_DIST += iconv.in.h
@@ -308,9 +317,9 @@ MOSTLYCLEANFILES     += iconv_open-aix.h-t iconv_open-hpux.h-t iconv_open-irix.h
 MAINTAINERCLEANFILES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h
 EXTRA_DIST           += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h
 
-EXTRA_DIST += iconv_open-aix.gperf iconv_open-hpux.gperf iconv_open-irix.gperf iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open.c
+EXTRA_DIST += iconv.c iconv_close.c iconv_open-aix.gperf iconv_open-hpux.gperf iconv_open-irix.gperf iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open.c
 
-EXTRA_libunistring_la_SOURCES += iconv_open.c
+EXTRA_libunistring_la_SOURCES += iconv.c iconv_close.c iconv_open.c
 
 ## end   gnulib module iconv_open
 
@@ -341,6 +350,15 @@ EXTRA_libunistring_la_SOURCES += isnan.c isnanl.c
 
 ## end   gnulib module isnanl-nolibm
 
+## begin gnulib module iswblank
+
+
+EXTRA_DIST += iswblank.c
+
+EXTRA_libunistring_la_SOURCES += iswblank.c
+
+## end   gnulib module iswblank
+
 ## begin gnulib module localcharset
 
 libunistring_la_SOURCES += localcharset.h localcharset.c
@@ -449,70 +467,202 @@ EXTRA_DIST += malloca.h malloca.valgrind
 ## begin gnulib module math
 
 BUILT_SOURCES += math.h
+libunistring_la_SOURCES += math.c
 
 # We need the following in order to create <math.h> when the system
 # doesn't have one that works with the given compiler.
-math.h: math.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \
-             -e 's|@''GNULIB_ACOSL''@|$(GNULIB_ACOSL)|g' \
-             -e 's|@''GNULIB_ASINL''@|$(GNULIB_ASINL)|g' \
-             -e 's|@''GNULIB_ATANL''@|$(GNULIB_ATANL)|g' \
-             -e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
-             -e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
-             -e 's|@''GNULIB_COSL''@|$(GNULIB_COSL)|g' \
-             -e 's|@''GNULIB_EXPL''@|$(GNULIB_EXPL)|g' \
-             -e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
-             -e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \
-             -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \
-             -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \
-             -e 's|@''GNULIB_ISFINITE''@|$(GNULIB_ISFINITE)|g' \
-             -e 's|@''GNULIB_ISINF''@|$(GNULIB_ISINF)|g' \
-             -e 's|@''GNULIB_ISNAN''@|$(GNULIB_ISNAN)|g' \
-             -e 's|@''GNULIB_ISNANF''@|$(GNULIB_ISNANF)|g' \
-             -e 's|@''GNULIB_ISNAND''@|$(GNULIB_ISNAND)|g' \
-             -e 's|@''GNULIB_ISNANL''@|$(GNULIB_ISNANL)|g' \
-             -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \
-             -e 's|@''GNULIB_LOGB''@|$(GNULIB_LOGB)|g' \
-             -e 's|@''GNULIB_LOGL''@|$(GNULIB_LOGL)|g' \
-             -e 's|@''GNULIB_ROUND''@|$(GNULIB_ROUND)|g' \
-             -e 's|@''GNULIB_ROUNDF''@|$(GNULIB_ROUNDF)|g' \
-             -e 's|@''GNULIB_ROUNDL''@|$(GNULIB_ROUNDL)|g' \
-             -e 's|@''GNULIB_SIGNBIT''@|$(GNULIB_SIGNBIT)|g' \
-             -e 's|@''GNULIB_SINL''@|$(GNULIB_SINL)|g' \
-             -e 's|@''GNULIB_SQRTL''@|$(GNULIB_SQRTL)|g' \
-             -e 's|@''GNULIB_TANL''@|$(GNULIB_TANL)|g' \
-             -e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \
-             -e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \
-             -e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \
+             -e 's/@''GNULIB_ACOSF''@/$(GNULIB_ACOSF)/g' \
+             -e 's/@''GNULIB_ACOSL''@/$(GNULIB_ACOSL)/g' \
+             -e 's/@''GNULIB_ASINF''@/$(GNULIB_ASINF)/g' \
+             -e 's/@''GNULIB_ASINL''@/$(GNULIB_ASINL)/g' \
+             -e 's/@''GNULIB_ATANF''@/$(GNULIB_ATANF)/g' \
+             -e 's/@''GNULIB_ATANL''@/$(GNULIB_ATANL)/g' \
+             -e 's/@''GNULIB_ATAN2F''@/$(GNULIB_ATAN2F)/g' \
+             -e 's/@''GNULIB_CBRT''@/$(GNULIB_CBRT)/g' \
+             -e 's/@''GNULIB_CBRTF''@/$(GNULIB_CBRTF)/g' \
+             -e 's/@''GNULIB_CBRTL''@/$(GNULIB_CBRTL)/g' \
+             -e 's/@''GNULIB_CEIL''@/$(GNULIB_CEIL)/g' \
+             -e 's/@''GNULIB_CEILF''@/$(GNULIB_CEILF)/g' \
+             -e 's/@''GNULIB_CEILL''@/$(GNULIB_CEILL)/g' \
+             -e 's/@''GNULIB_COPYSIGN''@/$(GNULIB_COPYSIGN)/g' \
+             -e 's/@''GNULIB_COPYSIGNF''@/$(GNULIB_COPYSIGNF)/g' \
+             -e 's/@''GNULIB_COPYSIGNL''@/$(GNULIB_COPYSIGNL)/g' \
+             -e 's/@''GNULIB_COSF''@/$(GNULIB_COSF)/g' \
+             -e 's/@''GNULIB_COSL''@/$(GNULIB_COSL)/g' \
+             -e 's/@''GNULIB_COSHF''@/$(GNULIB_COSHF)/g' \
+             -e 's/@''GNULIB_EXPF''@/$(GNULIB_EXPF)/g' \
+             -e 's/@''GNULIB_EXPL''@/$(GNULIB_EXPL)/g' \
+             -e 's/@''GNULIB_EXP2''@/$(GNULIB_EXP2)/g' \
+             -e 's/@''GNULIB_EXP2F''@/$(GNULIB_EXP2F)/g' \
+             -e 's/@''GNULIB_EXP2L''@/$(GNULIB_EXP2L)/g' \
+             -e 's/@''GNULIB_EXPM1''@/$(GNULIB_EXPM1)/g' \
+             -e 's/@''GNULIB_EXPM1F''@/$(GNULIB_EXPM1F)/g' \
+             -e 's/@''GNULIB_EXPM1L''@/$(GNULIB_EXPM1L)/g' \
+             -e 's/@''GNULIB_FABSF''@/$(GNULIB_FABSF)/g' \
+             -e 's/@''GNULIB_FABSL''@/$(GNULIB_FABSL)/g' \
+             -e 's/@''GNULIB_FLOOR''@/$(GNULIB_FLOOR)/g' \
+             -e 's/@''GNULIB_FLOORF''@/$(GNULIB_FLOORF)/g' \
+             -e 's/@''GNULIB_FLOORL''@/$(GNULIB_FLOORL)/g' \
+             -e 's/@''GNULIB_FMA''@/$(GNULIB_FMA)/g' \
+             -e 's/@''GNULIB_FMAF''@/$(GNULIB_FMAF)/g' \
+             -e 's/@''GNULIB_FMAL''@/$(GNULIB_FMAL)/g' \
+             -e 's/@''GNULIB_FMOD''@/$(GNULIB_FMOD)/g' \
+             -e 's/@''GNULIB_FMODF''@/$(GNULIB_FMODF)/g' \
+             -e 's/@''GNULIB_FMODL''@/$(GNULIB_FMODL)/g' \
+             -e 's/@''GNULIB_FREXPF''@/$(GNULIB_FREXPF)/g' \
+             -e 's/@''GNULIB_FREXP''@/$(GNULIB_FREXP)/g' \
+             -e 's/@''GNULIB_FREXPL''@/$(GNULIB_FREXPL)/g' \
+             -e 's/@''GNULIB_HYPOT''@/$(GNULIB_HYPOT)/g' \
+             -e 's/@''GNULIB_HYPOTF''@/$(GNULIB_HYPOTF)/g' \
+             -e 's/@''GNULIB_HYPOTL''@/$(GNULIB_HYPOTL)/g' \
+             < $(srcdir)/math.in.h | \
+         sed -e 's/@''GNULIB_ILOGB''@/$(GNULIB_ILOGB)/g' \
+             -e 's/@''GNULIB_ILOGBF''@/$(GNULIB_ILOGBF)/g' \
+             -e 's/@''GNULIB_ILOGBL''@/$(GNULIB_ILOGBL)/g' \
+             -e 's/@''GNULIB_ISFINITE''@/$(GNULIB_ISFINITE)/g' \
+             -e 's/@''GNULIB_ISINF''@/$(GNULIB_ISINF)/g' \
+             -e 's/@''GNULIB_ISNAN''@/$(GNULIB_ISNAN)/g' \
+             -e 's/@''GNULIB_ISNANF''@/$(GNULIB_ISNANF)/g' \
+             -e 's/@''GNULIB_ISNAND''@/$(GNULIB_ISNAND)/g' \
+             -e 's/@''GNULIB_ISNANL''@/$(GNULIB_ISNANL)/g' \
+             -e 's/@''GNULIB_LDEXPF''@/$(GNULIB_LDEXPF)/g' \
+             -e 's/@''GNULIB_LDEXPL''@/$(GNULIB_LDEXPL)/g' \
+             -e 's/@''GNULIB_LOG''@/$(GNULIB_LOG)/g' \
+             -e 's/@''GNULIB_LOGF''@/$(GNULIB_LOGF)/g' \
+             -e 's/@''GNULIB_LOGL''@/$(GNULIB_LOGL)/g' \
+             -e 's/@''GNULIB_LOG10''@/$(GNULIB_LOG10)/g' \
+             -e 's/@''GNULIB_LOG10F''@/$(GNULIB_LOG10F)/g' \
+             -e 's/@''GNULIB_LOG10L''@/$(GNULIB_LOG10L)/g' \
+             -e 's/@''GNULIB_LOG1P''@/$(GNULIB_LOG1P)/g' \
+             -e 's/@''GNULIB_LOG1PF''@/$(GNULIB_LOG1PF)/g' \
+             -e 's/@''GNULIB_LOG1PL''@/$(GNULIB_LOG1PL)/g' \
+             -e 's/@''GNULIB_LOG2''@/$(GNULIB_LOG2)/g' \
+             -e 's/@''GNULIB_LOG2F''@/$(GNULIB_LOG2F)/g' \
+             -e 's/@''GNULIB_LOG2L''@/$(GNULIB_LOG2L)/g' \
+             -e 's/@''GNULIB_LOGB''@/$(GNULIB_LOGB)/g' \
+             -e 's/@''GNULIB_LOGBF''@/$(GNULIB_LOGBF)/g' \
+             -e 's/@''GNULIB_LOGBL''@/$(GNULIB_LOGBL)/g' \
+             -e 's/@''GNULIB_MODF''@/$(GNULIB_MODF)/g' \
+             -e 's/@''GNULIB_MODFF''@/$(GNULIB_MODFF)/g' \
+             -e 's/@''GNULIB_MODFL''@/$(GNULIB_MODFL)/g' \
+             -e 's/@''GNULIB_POWF''@/$(GNULIB_POWF)/g' \
+             -e 's/@''GNULIB_REMAINDER''@/$(GNULIB_REMAINDER)/g' \
+             -e 's/@''GNULIB_REMAINDERF''@/$(GNULIB_REMAINDERF)/g' \
+             -e 's/@''GNULIB_REMAINDERL''@/$(GNULIB_REMAINDERL)/g' \
+             -e 's/@''GNULIB_RINT''@/$(GNULIB_RINT)/g' \
+             -e 's/@''GNULIB_RINTF''@/$(GNULIB_RINTF)/g' \
+             -e 's/@''GNULIB_RINTL''@/$(GNULIB_RINTL)/g' \
+             -e 's/@''GNULIB_ROUND''@/$(GNULIB_ROUND)/g' \
+             -e 's/@''GNULIB_ROUNDF''@/$(GNULIB_ROUNDF)/g' \
+             -e 's/@''GNULIB_ROUNDL''@/$(GNULIB_ROUNDL)/g' \
+             -e 's/@''GNULIB_SIGNBIT''@/$(GNULIB_SIGNBIT)/g' \
+             -e 's/@''GNULIB_SINF''@/$(GNULIB_SINF)/g' \
+             -e 's/@''GNULIB_SINL''@/$(GNULIB_SINL)/g' \
+             -e 's/@''GNULIB_SINHF''@/$(GNULIB_SINHF)/g' \
+             -e 's/@''GNULIB_SQRTF''@/$(GNULIB_SQRTF)/g' \
+             -e 's/@''GNULIB_SQRTL''@/$(GNULIB_SQRTL)/g' \
+             -e 's/@''GNULIB_TANF''@/$(GNULIB_TANF)/g' \
+             -e 's/@''GNULIB_TANL''@/$(GNULIB_TANL)/g' \
+             -e 's/@''GNULIB_TANHF''@/$(GNULIB_TANHF)/g' \
+             -e 's/@''GNULIB_TRUNC''@/$(GNULIB_TRUNC)/g' \
+             -e 's/@''GNULIB_TRUNCF''@/$(GNULIB_TRUNCF)/g' \
+             -e 's/@''GNULIB_TRUNCL''@/$(GNULIB_TRUNCL)/g' \
+         | \
+         sed -e 's|@''HAVE_ACOSF''@|$(HAVE_ACOSF)|g' \
              -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \
+             -e 's|@''HAVE_ASINF''@|$(HAVE_ASINF)|g' \
              -e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \
+             -e 's|@''HAVE_ATANF''@|$(HAVE_ATANF)|g' \
              -e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \
+             -e 's|@''HAVE_ATAN2F''@|$(HAVE_ATAN2F)|g' \
+             -e 's|@''HAVE_CBRT''@|$(HAVE_CBRT)|g' \
+             -e 's|@''HAVE_CBRTF''@|$(HAVE_CBRTF)|g' \
+             -e 's|@''HAVE_CBRTL''@|$(HAVE_CBRTL)|g' \
+             -e 's|@''HAVE_COPYSIGN''@|$(HAVE_COPYSIGN)|g' \
+             -e 's|@''HAVE_COPYSIGNL''@|$(HAVE_COPYSIGNL)|g' \
+             -e 's|@''HAVE_COSF''@|$(HAVE_COSF)|g' \
              -e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \
+             -e 's|@''HAVE_COSHF''@|$(HAVE_COSHF)|g' \
+             -e 's|@''HAVE_EXPF''@|$(HAVE_EXPF)|g' \
              -e 's|@''HAVE_EXPL''@|$(HAVE_EXPL)|g' \
+             -e 's|@''HAVE_EXPM1''@|$(HAVE_EXPM1)|g' \
+             -e 's|@''HAVE_EXPM1F''@|$(HAVE_EXPM1F)|g' \
+             -e 's|@''HAVE_FABSF''@|$(HAVE_FABSF)|g' \
+             -e 's|@''HAVE_FABSL''@|$(HAVE_FABSL)|g' \
+             -e 's|@''HAVE_FMA''@|$(HAVE_FMA)|g' \
+             -e 's|@''HAVE_FMAF''@|$(HAVE_FMAF)|g' \
+             -e 's|@''HAVE_FMAL''@|$(HAVE_FMAL)|g' \
+             -e 's|@''HAVE_FMODF''@|$(HAVE_FMODF)|g' \
+             -e 's|@''HAVE_FMODL''@|$(HAVE_FMODL)|g' \
+             -e 's|@''HAVE_FREXPF''@|$(HAVE_FREXPF)|g' \
+             -e 's|@''HAVE_HYPOTF''@|$(HAVE_HYPOTF)|g' \
+             -e 's|@''HAVE_HYPOTL''@|$(HAVE_HYPOTL)|g' \
+             -e 's|@''HAVE_ILOGB''@|$(HAVE_ILOGB)|g' \
+             -e 's|@''HAVE_ILOGBF''@|$(HAVE_ILOGBF)|g' \
+             -e 's|@''HAVE_ILOGBL''@|$(HAVE_ILOGBL)|g' \
              -e 's|@''HAVE_ISNANF''@|$(HAVE_ISNANF)|g' \
              -e 's|@''HAVE_ISNAND''@|$(HAVE_ISNAND)|g' \
              -e 's|@''HAVE_ISNANL''@|$(HAVE_ISNANL)|g' \
+             -e 's|@''HAVE_LDEXPF''@|$(HAVE_LDEXPF)|g' \
+             -e 's|@''HAVE_LOGF''@|$(HAVE_LOGF)|g' \
              -e 's|@''HAVE_LOGL''@|$(HAVE_LOGL)|g' \
+             -e 's|@''HAVE_LOG10F''@|$(HAVE_LOG10F)|g' \
+             -e 's|@''HAVE_LOG10L''@|$(HAVE_LOG10L)|g' \
+             -e 's|@''HAVE_LOG1P''@|$(HAVE_LOG1P)|g' \
+             -e 's|@''HAVE_LOG1PF''@|$(HAVE_LOG1PF)|g' \
+             -e 's|@''HAVE_LOG1PL''@|$(HAVE_LOG1PL)|g' \
+             -e 's|@''HAVE_LOGBF''@|$(HAVE_LOGBF)|g' \
+             -e 's|@''HAVE_LOGBL''@|$(HAVE_LOGBL)|g' \
+             -e 's|@''HAVE_MODFF''@|$(HAVE_MODFF)|g' \
+             -e 's|@''HAVE_MODFL''@|$(HAVE_MODFL)|g' \
+             -e 's|@''HAVE_POWF''@|$(HAVE_POWF)|g' \
+             -e 's|@''HAVE_REMAINDER''@|$(HAVE_REMAINDER)|g' \
+             -e 's|@''HAVE_REMAINDERF''@|$(HAVE_REMAINDERF)|g' \
+             -e 's|@''HAVE_RINT''@|$(HAVE_RINT)|g' \
+             -e 's|@''HAVE_RINTL''@|$(HAVE_RINTL)|g' \
+             -e 's|@''HAVE_SINF''@|$(HAVE_SINF)|g' \
              -e 's|@''HAVE_SINL''@|$(HAVE_SINL)|g' \
+             -e 's|@''HAVE_SINHF''@|$(HAVE_SINHF)|g' \
+             -e 's|@''HAVE_SQRTF''@|$(HAVE_SQRTF)|g' \
              -e 's|@''HAVE_SQRTL''@|$(HAVE_SQRTL)|g' \
+             -e 's|@''HAVE_TANF''@|$(HAVE_TANF)|g' \
              -e 's|@''HAVE_TANL''@|$(HAVE_TANL)|g' \
+             -e 's|@''HAVE_TANHF''@|$(HAVE_TANHF)|g' \
              -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \
              -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \
              -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \
+             -e 's|@''HAVE_DECL_CBRTF''@|$(HAVE_DECL_CBRTF)|g' \
+             -e 's|@''HAVE_DECL_CBRTL''@|$(HAVE_DECL_CBRTL)|g' \
              -e 's|@''HAVE_DECL_CEILF''@|$(HAVE_DECL_CEILF)|g' \
              -e 's|@''HAVE_DECL_CEILL''@|$(HAVE_DECL_CEILL)|g' \
+             -e 's|@''HAVE_DECL_COPYSIGNF''@|$(HAVE_DECL_COPYSIGNF)|g' \
              -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \
              -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \
+             -e 's|@''HAVE_DECL_EXP2''@|$(HAVE_DECL_EXP2)|g' \
+             -e 's|@''HAVE_DECL_EXP2F''@|$(HAVE_DECL_EXP2F)|g' \
+             -e 's|@''HAVE_DECL_EXP2L''@|$(HAVE_DECL_EXP2L)|g' \
+             -e 's|@''HAVE_DECL_EXPM1L''@|$(HAVE_DECL_EXPM1L)|g' \
              -e 's|@''HAVE_DECL_FLOORF''@|$(HAVE_DECL_FLOORF)|g' \
              -e 's|@''HAVE_DECL_FLOORL''@|$(HAVE_DECL_FLOORL)|g' \
              -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \
              -e 's|@''HAVE_DECL_LDEXPL''@|$(HAVE_DECL_LDEXPL)|g' \
-             -e 's|@''HAVE_DECL_LOGB''@|$(HAVE_DECL_LOGB)|g' \
              -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \
+             -e 's|@''HAVE_DECL_LOG10L''@|$(HAVE_DECL_LOG10L)|g' \
+             -e 's|@''HAVE_DECL_LOG2''@|$(HAVE_DECL_LOG2)|g' \
+             -e 's|@''HAVE_DECL_LOG2F''@|$(HAVE_DECL_LOG2F)|g' \
+             -e 's|@''HAVE_DECL_LOG2L''@|$(HAVE_DECL_LOG2L)|g' \
+             -e 's|@''HAVE_DECL_LOGB''@|$(HAVE_DECL_LOGB)|g' \
+             -e 's|@''HAVE_DECL_REMAINDER''@|$(HAVE_DECL_REMAINDER)|g' \
+             -e 's|@''HAVE_DECL_REMAINDERL''@|$(HAVE_DECL_REMAINDERL)|g' \
+             -e 's|@''HAVE_DECL_RINTF''@|$(HAVE_DECL_RINTF)|g' \
              -e 's|@''HAVE_DECL_ROUND''@|$(HAVE_DECL_ROUND)|g' \
              -e 's|@''HAVE_DECL_ROUNDF''@|$(HAVE_DECL_ROUNDF)|g' \
              -e 's|@''HAVE_DECL_ROUNDL''@|$(HAVE_DECL_ROUNDL)|g' \
@@ -522,28 +672,74 @@ math.h: math.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \
              -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \
              -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \
+         | \
+         sed -e 's|@''REPLACE_CBRTF''@|$(REPLACE_CBRTF)|g' \
+             -e 's|@''REPLACE_CBRTL''@|$(REPLACE_CBRTL)|g' \
+             -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \
              -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \
              -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
+             -e 's|@''REPLACE_EXPM1''@|$(REPLACE_EXPM1)|g' \
+             -e 's|@''REPLACE_EXPM1F''@|$(REPLACE_EXPM1F)|g' \
+             -e 's|@''REPLACE_EXP2''@|$(REPLACE_EXP2)|g' \
+             -e 's|@''REPLACE_EXP2L''@|$(REPLACE_EXP2L)|g' \
+             -e 's|@''REPLACE_FABSL''@|$(REPLACE_FABSL)|g' \
+             -e 's|@''REPLACE_FLOOR''@|$(REPLACE_FLOOR)|g' \
              -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \
              -e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \
+             -e 's|@''REPLACE_FMA''@|$(REPLACE_FMA)|g' \
+             -e 's|@''REPLACE_FMAF''@|$(REPLACE_FMAF)|g' \
+             -e 's|@''REPLACE_FMAL''@|$(REPLACE_FMAL)|g' \
+             -e 's|@''REPLACE_FMOD''@|$(REPLACE_FMOD)|g' \
+             -e 's|@''REPLACE_FMODF''@|$(REPLACE_FMODF)|g' \
+             -e 's|@''REPLACE_FMODL''@|$(REPLACE_FMODL)|g' \
+             -e 's|@''REPLACE_FREXPF''@|$(REPLACE_FREXPF)|g' \
              -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \
              -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \
              -e 's|@''REPLACE_HUGE_VAL''@|$(REPLACE_HUGE_VAL)|g' \
+             -e 's|@''REPLACE_HYPOT''@|$(REPLACE_HYPOT)|g' \
+             -e 's|@''REPLACE_HYPOTF''@|$(REPLACE_HYPOTF)|g' \
+             -e 's|@''REPLACE_HYPOTL''@|$(REPLACE_HYPOTL)|g' \
+             -e 's|@''REPLACE_ILOGB''@|$(REPLACE_ILOGB)|g' \
+             -e 's|@''REPLACE_ILOGBF''@|$(REPLACE_ILOGBF)|g' \
              -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \
              -e 's|@''REPLACE_ISINF''@|$(REPLACE_ISINF)|g' \
              -e 's|@''REPLACE_ISNAN''@|$(REPLACE_ISNAN)|g' \
+             -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
              -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \
+             -e 's|@''REPLACE_LOG''@|$(REPLACE_LOG)|g' \
+             -e 's|@''REPLACE_LOGF''@|$(REPLACE_LOGF)|g' \
+             -e 's|@''REPLACE_LOGL''@|$(REPLACE_LOGL)|g' \
+             -e 's|@''REPLACE_LOG10''@|$(REPLACE_LOG10)|g' \
+             -e 's|@''REPLACE_LOG10F''@|$(REPLACE_LOG10F)|g' \
+             -e 's|@''REPLACE_LOG10L''@|$(REPLACE_LOG10L)|g' \
+             -e 's|@''REPLACE_LOG1P''@|$(REPLACE_LOG1P)|g' \
+             -e 's|@''REPLACE_LOG1PF''@|$(REPLACE_LOG1PF)|g' \
+             -e 's|@''REPLACE_LOG1PL''@|$(REPLACE_LOG1PL)|g' \
+             -e 's|@''REPLACE_LOG2''@|$(REPLACE_LOG2)|g' \
+             -e 's|@''REPLACE_LOG2F''@|$(REPLACE_LOG2F)|g' \
+             -e 's|@''REPLACE_LOG2L''@|$(REPLACE_LOG2L)|g' \
+             -e 's|@''REPLACE_LOGB''@|$(REPLACE_LOGB)|g' \
+             -e 's|@''REPLACE_LOGBF''@|$(REPLACE_LOGBF)|g' \
+             -e 's|@''REPLACE_LOGBL''@|$(REPLACE_LOGBL)|g' \
+             -e 's|@''REPLACE_MODF''@|$(REPLACE_MODF)|g' \
+             -e 's|@''REPLACE_MODFF''@|$(REPLACE_MODFF)|g' \
+             -e 's|@''REPLACE_MODFL''@|$(REPLACE_MODFL)|g' \
              -e 's|@''REPLACE_NAN''@|$(REPLACE_NAN)|g' \
+             -e 's|@''REPLACE_REMAINDER''@|$(REPLACE_REMAINDER)|g' \
+             -e 's|@''REPLACE_REMAINDERF''@|$(REPLACE_REMAINDERF)|g' \
+             -e 's|@''REPLACE_REMAINDERL''@|$(REPLACE_REMAINDERL)|g' \
              -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \
              -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \
              -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \
              -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \
              -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \
+             -e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \
+             -e 's|@''REPLACE_TRUNC''@|$(REPLACE_TRUNC)|g' \
+             -e 's|@''REPLACE_TRUNCF''@|$(REPLACE_TRUNCF)|g' \
              -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/math.in.h; \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
        } > $@-t && \
        mv $@-t $@
 MOSTLYCLEANFILES += math.h math.h-t
@@ -562,7 +758,7 @@ EXTRA_DIST += mbchar.h
 
 ## begin gnulib module mbiter
 
-libunistring_la_SOURCES += mbiter.h
+libunistring_la_SOURCES += mbiter.h mbiter.c
 
 ## end   gnulib module mbiter
 
@@ -607,14 +803,6 @@ EXTRA_DIST += memcmp2.h
 
 ## end   gnulib module memcmp2
 
-## begin gnulib module memxfrm
-
-libunistring_la_SOURCES += memxfrm.c
-
-EXTRA_DIST += memxfrm.h
-
-## end   gnulib module memxfrm
-
 ## begin gnulib module minmax
 
 libunistring_la_SOURCES += minmax.h
@@ -664,18 +852,129 @@ libunistring_la_SOURCES += size_max.h
 
 ## end   gnulib module size_max
 
+## begin gnulib module snippet/_Noreturn
+
+# Because this Makefile snippet defines a variable used by other
+# gnulib Makefile snippets, it must be present in all Makefile.am that
+# need it. This is ensured by the applicability 'all' defined above.
+
+_NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/_Noreturn.h
+
+## end   gnulib module snippet/_Noreturn
+
+## begin gnulib module snippet/arg-nonnull
+
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# statements but through direct file reference. Therefore this snippet must be
+# present in all Makefile.am that need it. This is ensured by the applicability
+# 'all' defined above.
+
+BUILT_SOURCES += arg-nonnull.h
+# The arg-nonnull.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut
+# off.
+arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/GL_ARG_NONNULL/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t
+
+ARG_NONNULL_H=arg-nonnull.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+
+## end   gnulib module snippet/arg-nonnull
+
+## begin gnulib module snippet/c++defs
+
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# statements but through direct file reference. Therefore this snippet must be
+# present in all Makefile.am that need it. This is ensured by the applicability
+# 'all' defined above.
+
+BUILT_SOURCES += c++defs.h
+# The c++defs.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/c++defs.h, except that it has the copyright header cut off.
+c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/_GL_CXXDEFS/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/c++defs.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += c++defs.h c++defs.h-t
+
+CXXDEFS_H=c++defs.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h
+
+## end   gnulib module snippet/c++defs
+
+## begin gnulib module snippet/unused-parameter
+
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# statements but through direct file reference. Therefore this snippet must be
+# present in all Makefile.am that need it. This is ensured by the applicability
+# 'all' defined above.
+
+BUILT_SOURCES += unused-parameter.h
+# The unused-parameter.h that gets inserted into generated .h files is the same
+# as build-aux/snippet/unused-parameter.h, except that it has the copyright
+# header cut off.
+unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/unused-parameter.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t
+
+UNUSED_PARAMETER_H=unused-parameter.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/unused-parameter.h
+
+## end   gnulib module snippet/unused-parameter
+
+## begin gnulib module snippet/warn-on-use
+
+BUILT_SOURCES += warn-on-use.h
+# The warn-on-use.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut
+# off.
+warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/^.ifndef/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/warn-on-use.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t
+
+WARN_ON_USE_H=warn-on-use.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h
+
+## end   gnulib module snippet/warn-on-use
+
 ## begin gnulib module stdbool
 
 BUILT_SOURCES += $(STDBOOL_H)
 
 # We need the following in order to create <stdbool.h> when the system
 # doesn't have one that works.
-stdbool.h: stdbool.in.h
+if GL_GENERATE_STDBOOL_H
+stdbool.h: stdbool.in.h $(top_builddir)/config.status
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
          sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
        } > $@-t && \
        mv $@-t $@
+else
+stdbool.h: $(top_builddir)/config.status
+       rm -f $@
+endif
 MOSTLYCLEANFILES += stdbool.h stdbool.h-t
 
 EXTRA_DIST += stdbool.in.h
@@ -688,17 +987,24 @@ BUILT_SOURCES += $(STDDEF_H)
 
 # We need the following in order to create <stddef.h> when the system
 # doesn't have one that works with the given compiler.
-stddef.h: stddef.in.h
+if GL_GENERATE_STDDEF_H
+stddef.h: stddef.in.h $(top_builddir)/config.status
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
              -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
              -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
              < $(srcdir)/stddef.in.h; \
        } > $@-t && \
        mv $@-t $@
+else
+stddef.h: $(top_builddir)/config.status
+       rm -f $@
+endif
 MOSTLYCLEANFILES += stddef.h stddef.h-t
 
 EXTRA_DIST += stddef.in.h
@@ -711,17 +1017,21 @@ BUILT_SOURCES += $(STDINT_H)
 
 # We need the following in order to create <stdint.h> when the system
 # doesn't have one that works with the given compiler.
-stdint.h: stdint.in.h
+if GL_GENERATE_STDINT_H
+stdint.h: stdint.in.h $(top_builddir)/config.status
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
              -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
              -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
              -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
              -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+             -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
              -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
              -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
              -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
@@ -741,6 +1051,10 @@ stdint.h: stdint.in.h
              < $(srcdir)/stdint.in.h; \
        } > $@-t && \
        mv $@-t $@
+else
+stdint.h: $(top_builddir)/config.status
+       rm -f $@
+endif
 MOSTLYCLEANFILES += stdint.h stdint.h-t
 
 EXTRA_DIST += stdint.in.h
@@ -753,73 +1067,95 @@ BUILT_SOURCES += stdlib.h
 
 # We need the following in order to create <stdlib.h> when the system
 # doesn't have one that works with the given compiler.
-stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
+  $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
-             -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \
-             -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_CANONICALIZE_FILE_NAME''@|$(GNULIB_CANONICALIZE_FILE_NAME)|g' \
-             -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \
-             -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
-             -e 's|@''GNULIB_GRANTPT''@|$(GNULIB_GRANTPT)|g' \
-             -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
-             -e 's|@''GNULIB_MKOSTEMP''@|$(GNULIB_MKOSTEMP)|g' \
-             -e 's|@''GNULIB_MKOSTEMPS''@|$(GNULIB_MKOSTEMPS)|g' \
-             -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
-             -e 's|@''GNULIB_MKSTEMPS''@|$(GNULIB_MKSTEMPS)|g' \
-             -e 's|@''GNULIB_PTSNAME''@|$(GNULIB_PTSNAME)|g' \
-             -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
-             -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \
-             -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_REALPATH''@|$(GNULIB_REALPATH)|g' \
-             -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \
-             -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
-             -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \
-             -e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \
-             -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \
-             -e 's|@''GNULIB_UNLOCKPT''@|$(GNULIB_UNLOCKPT)|g' \
-             -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
+             -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \
+             -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \
+             -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \
+             -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \
+             -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \
+             -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \
+             -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \
+             -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \
+             -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \
+             -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \
+             -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \
+             -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \
+             -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \
+             -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \
+             -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \
+             -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \
+             -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
+             -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
+             -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
+             -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
+             -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
+             -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
+             -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
+             -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
+             -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \
+             -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
+             -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \
+             -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \
+             -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \
+             < $(srcdir)/stdlib.in.h | \
+         sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
              -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
-             -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \
              -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \
              -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
              -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
              -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
-             -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \
              -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
              -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \
              -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \
              -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \
              -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \
+             -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \
              -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \
+             -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \
+             -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \
              -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
              -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
-             -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \
              -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
              -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
-             -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \
+             -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
+             -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
              -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
              -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
              -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
              -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
              -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
              -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
-             -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \
+             -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
+             -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
              -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
+             -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
+             -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
              -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+             -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
+             -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
              -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+             -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
+             -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
              -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
              -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
              -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
              -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
+             -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _Noreturn/r $(_NORETURN_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/stdlib.in.h; \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
        } > $@-t && \
        mv $@-t $@
 MOSTLYCLEANFILES += stdlib.h stdlib.h-t
@@ -858,48 +1194,55 @@ BUILT_SOURCES += string.h
 
 # We need the following in order to create <string.h> when the system
 # doesn't have one that works with the given compiler.
-string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
-             -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
-             -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \
-             -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
-             -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
-             -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
-             -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
-             -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
-             -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
-             -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
-             -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
-             -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
-             -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
-             -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
-             -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
-             -e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \
-             -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
-             -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
-             -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
-             -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \
-             -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
-             -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
-             -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
-             -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
-             -e 's|@''GNULIB_STRNCAT''@|$(GNULIB_STRNCAT)|g' \
-             -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
-             -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
-             -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
-             -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
-             -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \
-             -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
-             -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
-             -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
-             -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
-             -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \
+             -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
+             -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \
+             -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \
+             -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \
+             -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \
+             -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \
+             -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \
+             -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \
+             -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \
+             -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \
+             -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \
+             -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \
+             -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \
+             -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \
+             -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \
+             -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \
+             -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \
+             -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \
+             -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \
+             -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \
+             -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \
+             -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \
+             -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \
+             -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \
+             -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \
+             -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \
+             -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \
+             -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \
+             -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \
+             -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \
+             -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \
+             -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \
+             -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \
+             -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \
+             -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \
+             -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
+             -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
              < $(srcdir)/string.in.h | \
-         sed -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
+         sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
+             -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
+             -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
              -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \
              -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
              -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
@@ -915,15 +1258,18 @@ string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
              -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
              -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+             -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \
              -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
              -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
              -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
              -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
              -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
              -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+             -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
              -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
              -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
              -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+             -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
              -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
              -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
              -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
@@ -951,6 +1297,40 @@ EXTRA_libunistring_la_SOURCES += strncat.c
 
 ## end   gnulib module strncat
 
+## begin gnulib module strstr-simple
+
+
+EXTRA_DIST += str-two-way.h strstr.c
+
+EXTRA_libunistring_la_SOURCES += strstr.c
+
+## end   gnulib module strstr-simple
+
+## begin gnulib module sys_types
+
+BUILT_SOURCES += sys/types.h
+
+# We need the following in order to create <sys/types.h> when the system
+# doesn't have one that works with the given compiler.
+sys/types.h: sys_types.in.h $(top_builddir)/config.status
+       $(AM_V_at)$(MKDIR_P) sys
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \
+             -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
+             < $(srcdir)/sys_types.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += sys/types.h sys/types.h-t
+
+EXTRA_DIST += sys_types.in.h
+
+## end   gnulib module sys_types
+
 ## begin gnulib module threadlib
 
 libunistring_la_SOURCES += glthread/threadlib.c
@@ -961,8 +1341,17 @@ EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
 
 ## begin gnulib module unicase/base
 
+BUILT_SOURCES += $(LIBUNISTRING_UNICASE_H)
+
+unicase.h: unicase.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unicase.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += unicase.h unicase.h-t
 
-EXTRA_DIST += unicase.h
+EXTRA_DIST += unicase.in.h
 
 ## end   gnulib module unicase/base
 
@@ -976,13 +1365,17 @@ EXTRA_DIST += unicase/cased.h unicase/caseprop.h unictype/bitmap.h
 
 ## begin gnulib module unicase/empty-prefix-context
 
+if LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT
 libunistring_la_SOURCES += unicase/empty-prefix-context.c
+endif
 
 ## end   gnulib module unicase/empty-prefix-context
 
 ## begin gnulib module unicase/empty-suffix-context
 
+if LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT
 libunistring_la_SOURCES += unicase/empty-suffix-context.c
+endif
 
 ## end   gnulib module unicase/empty-suffix-context
 
@@ -996,7 +1389,9 @@ EXTRA_DIST += unicase/caseprop.h unicase/ignorable.h unictype/bitmap.h
 
 ## begin gnulib module unicase/locale-language
 
+if LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE
 libunistring_la_SOURCES += unicase/locale-language.c
+endif
 
 unicase/locale-languages.h: $(srcdir)/unicase/locale-languages.gperf
        $(GPERF) -m 10 $(srcdir)/unicase/locale-languages.gperf > $(srcdir)/unicase/locale-languages.h-t
@@ -1036,7 +1431,9 @@ EXTRA_DIST += unicase/casefold.h unicase/simple-mapping.h unicase/tocasefold.h
 
 ## begin gnulib module unicase/tolower
 
+if LIBUNISTRING_COMPILE_UNICASE_TOLOWER
 libunistring_la_SOURCES += unicase/tolower.c
+endif
 
 EXTRA_DIST += unicase/simple-mapping.h unicase/tolower.h
 
@@ -1044,7 +1441,9 @@ EXTRA_DIST += unicase/simple-mapping.h unicase/tolower.h
 
 ## begin gnulib module unicase/totitle
 
+if LIBUNISTRING_COMPILE_UNICASE_TOTITLE
 libunistring_la_SOURCES += unicase/totitle.c
+endif
 
 EXTRA_DIST += unicase/simple-mapping.h unicase/totitle.h
 
@@ -1052,7 +1451,9 @@ EXTRA_DIST += unicase/simple-mapping.h unicase/totitle.h
 
 ## begin gnulib module unicase/toupper
 
+if LIBUNISTRING_COMPILE_UNICASE_TOUPPER
 libunistring_la_SOURCES += unicase/toupper.c
+endif
 
 EXTRA_DIST += unicase/simple-mapping.h unicase/toupper.h
 
@@ -1060,7 +1461,9 @@ EXTRA_DIST += unicase/simple-mapping.h unicase/toupper.h
 
 ## begin gnulib module unicase/u16-casecmp
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP
 libunistring_la_SOURCES += unicase/u16-casecmp.c
+endif
 
 EXTRA_DIST += unicase/u-casecmp.h
 
@@ -1068,7 +1471,9 @@ EXTRA_DIST += unicase/u-casecmp.h
 
 ## begin gnulib module unicase/u16-casecoll
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL
 libunistring_la_SOURCES += unicase/u16-casecoll.c
+endif
 
 EXTRA_DIST += unicase/u-casecoll.h
 
@@ -1076,7 +1481,9 @@ EXTRA_DIST += unicase/u-casecoll.h
 
 ## begin gnulib module unicase/u16-casefold
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD
 libunistring_la_SOURCES += unicase/u16-casefold.c
+endif
 
 EXTRA_DIST += unicase/u-casefold.h
 
@@ -1092,7 +1499,9 @@ EXTRA_DIST += unicase/context.h unicase/u-casemap.h unicase/unicasemap.h
 
 ## begin gnulib module unicase/u16-casexfrm
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM
 libunistring_la_SOURCES += unicase/u16-casexfrm.c
+endif
 
 EXTRA_DIST += unicase/u-casexfrm.h
 
@@ -1100,7 +1509,9 @@ EXTRA_DIST += unicase/u-casexfrm.h
 
 ## begin gnulib module unicase/u16-ct-casefold
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD
 libunistring_la_SOURCES += unicase/u16-ct-casefold.c
+endif
 
 EXTRA_DIST += unicase/u-ct-casefold.h
 
@@ -1108,13 +1519,17 @@ EXTRA_DIST += unicase/u-ct-casefold.h
 
 ## begin gnulib module unicase/u16-ct-tolower
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER
 libunistring_la_SOURCES += unicase/u16-ct-tolower.c
+endif
 
 ## end   gnulib module unicase/u16-ct-tolower
 
 ## begin gnulib module unicase/u16-ct-totitle
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE
 libunistring_la_SOURCES += unicase/u16-ct-totitle.c
+endif
 
 EXTRA_DIST += unicase/context.h unicase/u-ct-totitle.h
 
@@ -1122,13 +1537,17 @@ EXTRA_DIST += unicase/context.h unicase/u-ct-totitle.h
 
 ## begin gnulib module unicase/u16-ct-toupper
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER
 libunistring_la_SOURCES += unicase/u16-ct-toupper.c
+endif
 
 ## end   gnulib module unicase/u16-ct-toupper
 
 ## begin gnulib module unicase/u16-is-cased
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED
 libunistring_la_SOURCES += unicase/u16-is-cased.c
+endif
 
 EXTRA_DIST += unicase/u-is-cased.h
 
@@ -1136,7 +1555,9 @@ EXTRA_DIST += unicase/u-is-cased.h
 
 ## begin gnulib module unicase/u16-is-casefolded
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED
 libunistring_la_SOURCES += unicase/u16-is-casefolded.c
+endif
 
 ## end   gnulib module unicase/u16-is-casefolded
 
@@ -1150,31 +1571,41 @@ EXTRA_DIST += unicase/invariant.h unicase/u-is-invariant.h
 
 ## begin gnulib module unicase/u16-is-lowercase
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE
 libunistring_la_SOURCES += unicase/u16-is-lowercase.c
+endif
 
 ## end   gnulib module unicase/u16-is-lowercase
 
 ## begin gnulib module unicase/u16-is-titlecase
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE
 libunistring_la_SOURCES += unicase/u16-is-titlecase.c
+endif
 
 ## end   gnulib module unicase/u16-is-titlecase
 
 ## begin gnulib module unicase/u16-is-uppercase
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE
 libunistring_la_SOURCES += unicase/u16-is-uppercase.c
+endif
 
 ## end   gnulib module unicase/u16-is-uppercase
 
 ## begin gnulib module unicase/u16-tolower
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER
 libunistring_la_SOURCES += unicase/u16-tolower.c
+endif
 
 ## end   gnulib module unicase/u16-tolower
 
 ## begin gnulib module unicase/u16-totitle
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE
 libunistring_la_SOURCES += unicase/u16-totitle.c
+endif
 
 EXTRA_DIST += unicase/u-totitle.h
 
@@ -1182,13 +1613,17 @@ EXTRA_DIST += unicase/u-totitle.h
 
 ## begin gnulib module unicase/u16-toupper
 
+if LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER
 libunistring_la_SOURCES += unicase/u16-toupper.c
+endif
 
 ## end   gnulib module unicase/u16-toupper
 
 ## begin gnulib module unicase/u32-casecmp
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP
 libunistring_la_SOURCES += unicase/u32-casecmp.c
+endif
 
 EXTRA_DIST += unicase/u-casecmp.h
 
@@ -1196,7 +1631,9 @@ EXTRA_DIST += unicase/u-casecmp.h
 
 ## begin gnulib module unicase/u32-casecoll
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL
 libunistring_la_SOURCES += unicase/u32-casecoll.c
+endif
 
 EXTRA_DIST += unicase/u-casecoll.h
 
@@ -1204,7 +1641,9 @@ EXTRA_DIST += unicase/u-casecoll.h
 
 ## begin gnulib module unicase/u32-casefold
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD
 libunistring_la_SOURCES += unicase/u32-casefold.c
+endif
 
 EXTRA_DIST += unicase/u-casefold.h
 
@@ -1220,7 +1659,9 @@ EXTRA_DIST += unicase/context.h unicase/u-casemap.h unicase/unicasemap.h
 
 ## begin gnulib module unicase/u32-casexfrm
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM
 libunistring_la_SOURCES += unicase/u32-casexfrm.c
+endif
 
 EXTRA_DIST += unicase/u-casexfrm.h
 
@@ -1228,7 +1669,9 @@ EXTRA_DIST += unicase/u-casexfrm.h
 
 ## begin gnulib module unicase/u32-ct-casefold
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD
 libunistring_la_SOURCES += unicase/u32-ct-casefold.c
+endif
 
 EXTRA_DIST += unicase/u-ct-casefold.h
 
@@ -1236,13 +1679,17 @@ EXTRA_DIST += unicase/u-ct-casefold.h
 
 ## begin gnulib module unicase/u32-ct-tolower
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER
 libunistring_la_SOURCES += unicase/u32-ct-tolower.c
+endif
 
 ## end   gnulib module unicase/u32-ct-tolower
 
 ## begin gnulib module unicase/u32-ct-totitle
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE
 libunistring_la_SOURCES += unicase/u32-ct-totitle.c
+endif
 
 EXTRA_DIST += unicase/context.h unicase/u-ct-totitle.h
 
@@ -1250,13 +1697,17 @@ EXTRA_DIST += unicase/context.h unicase/u-ct-totitle.h
 
 ## begin gnulib module unicase/u32-ct-toupper
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER
 libunistring_la_SOURCES += unicase/u32-ct-toupper.c
+endif
 
 ## end   gnulib module unicase/u32-ct-toupper
 
 ## begin gnulib module unicase/u32-is-cased
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED
 libunistring_la_SOURCES += unicase/u32-is-cased.c
+endif
 
 EXTRA_DIST += unicase/u-is-cased.h
 
@@ -1264,7 +1715,9 @@ EXTRA_DIST += unicase/u-is-cased.h
 
 ## begin gnulib module unicase/u32-is-casefolded
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED
 libunistring_la_SOURCES += unicase/u32-is-casefolded.c
+endif
 
 ## end   gnulib module unicase/u32-is-casefolded
 
@@ -1278,31 +1731,41 @@ EXTRA_DIST += unicase/invariant.h unicase/u-is-invariant.h
 
 ## begin gnulib module unicase/u32-is-lowercase
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE
 libunistring_la_SOURCES += unicase/u32-is-lowercase.c
+endif
 
 ## end   gnulib module unicase/u32-is-lowercase
 
 ## begin gnulib module unicase/u32-is-titlecase
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE
 libunistring_la_SOURCES += unicase/u32-is-titlecase.c
+endif
 
 ## end   gnulib module unicase/u32-is-titlecase
 
 ## begin gnulib module unicase/u32-is-uppercase
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE
 libunistring_la_SOURCES += unicase/u32-is-uppercase.c
+endif
 
 ## end   gnulib module unicase/u32-is-uppercase
 
 ## begin gnulib module unicase/u32-tolower
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER
 libunistring_la_SOURCES += unicase/u32-tolower.c
+endif
 
 ## end   gnulib module unicase/u32-tolower
 
 ## begin gnulib module unicase/u32-totitle
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE
 libunistring_la_SOURCES += unicase/u32-totitle.c
+endif
 
 EXTRA_DIST += unicase/u-totitle.h
 
@@ -1310,13 +1773,17 @@ EXTRA_DIST += unicase/u-totitle.h
 
 ## begin gnulib module unicase/u32-toupper
 
+if LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER
 libunistring_la_SOURCES += unicase/u32-toupper.c
+endif
 
 ## end   gnulib module unicase/u32-toupper
 
 ## begin gnulib module unicase/u8-casecmp
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP
 libunistring_la_SOURCES += unicase/u8-casecmp.c
+endif
 
 EXTRA_DIST += unicase/u-casecmp.h
 
@@ -1324,7 +1791,9 @@ EXTRA_DIST += unicase/u-casecmp.h
 
 ## begin gnulib module unicase/u8-casecoll
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL
 libunistring_la_SOURCES += unicase/u8-casecoll.c
+endif
 
 EXTRA_DIST += unicase/u-casecoll.h
 
@@ -1332,7 +1801,9 @@ EXTRA_DIST += unicase/u-casecoll.h
 
 ## begin gnulib module unicase/u8-casefold
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD
 libunistring_la_SOURCES += unicase/u8-casefold.c
+endif
 
 EXTRA_DIST += unicase/u-casefold.h
 
@@ -1348,7 +1819,9 @@ EXTRA_DIST += unicase/context.h unicase/u-casemap.h unicase/unicasemap.h
 
 ## begin gnulib module unicase/u8-casexfrm
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM
 libunistring_la_SOURCES += unicase/u8-casexfrm.c
+endif
 
 EXTRA_DIST += unicase/u-casexfrm.h
 
@@ -1356,7 +1829,9 @@ EXTRA_DIST += unicase/u-casexfrm.h
 
 ## begin gnulib module unicase/u8-ct-casefold
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD
 libunistring_la_SOURCES += unicase/u8-ct-casefold.c
+endif
 
 EXTRA_DIST += unicase/u-ct-casefold.h
 
@@ -1364,13 +1839,17 @@ EXTRA_DIST += unicase/u-ct-casefold.h
 
 ## begin gnulib module unicase/u8-ct-tolower
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER
 libunistring_la_SOURCES += unicase/u8-ct-tolower.c
+endif
 
 ## end   gnulib module unicase/u8-ct-tolower
 
 ## begin gnulib module unicase/u8-ct-totitle
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE
 libunistring_la_SOURCES += unicase/u8-ct-totitle.c
+endif
 
 EXTRA_DIST += unicase/context.h unicase/u-ct-totitle.h
 
@@ -1378,13 +1857,17 @@ EXTRA_DIST += unicase/context.h unicase/u-ct-totitle.h
 
 ## begin gnulib module unicase/u8-ct-toupper
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER
 libunistring_la_SOURCES += unicase/u8-ct-toupper.c
+endif
 
 ## end   gnulib module unicase/u8-ct-toupper
 
 ## begin gnulib module unicase/u8-is-cased
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED
 libunistring_la_SOURCES += unicase/u8-is-cased.c
+endif
 
 EXTRA_DIST += unicase/u-is-cased.h
 
@@ -1392,7 +1875,9 @@ EXTRA_DIST += unicase/u-is-cased.h
 
 ## begin gnulib module unicase/u8-is-casefolded
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED
 libunistring_la_SOURCES += unicase/u8-is-casefolded.c
+endif
 
 ## end   gnulib module unicase/u8-is-casefolded
 
@@ -1406,31 +1891,41 @@ EXTRA_DIST += unicase/invariant.h unicase/u-is-invariant.h
 
 ## begin gnulib module unicase/u8-is-lowercase
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE
 libunistring_la_SOURCES += unicase/u8-is-lowercase.c
+endif
 
 ## end   gnulib module unicase/u8-is-lowercase
 
 ## begin gnulib module unicase/u8-is-titlecase
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE
 libunistring_la_SOURCES += unicase/u8-is-titlecase.c
+endif
 
 ## end   gnulib module unicase/u8-is-titlecase
 
 ## begin gnulib module unicase/u8-is-uppercase
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE
 libunistring_la_SOURCES += unicase/u8-is-uppercase.c
+endif
 
 ## end   gnulib module unicase/u8-is-uppercase
 
 ## begin gnulib module unicase/u8-tolower
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER
 libunistring_la_SOURCES += unicase/u8-tolower.c
+endif
 
 ## end   gnulib module unicase/u8-tolower
 
 ## begin gnulib module unicase/u8-totitle
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE
 libunistring_la_SOURCES += unicase/u8-totitle.c
+endif
 
 EXTRA_DIST += unicase/u-totitle.h
 
@@ -1438,13 +1933,17 @@ EXTRA_DIST += unicase/u-totitle.h
 
 ## begin gnulib module unicase/u8-toupper
 
+if LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER
 libunistring_la_SOURCES += unicase/u8-toupper.c
+endif
 
 ## end   gnulib module unicase/u8-toupper
 
 ## begin gnulib module unicase/ulc-casecmp
 
+if LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP
 libunistring_la_SOURCES += unicase/ulc-casecmp.c
+endif
 
 EXTRA_DIST += unicase/u-casecmp.h
 
@@ -1452,7 +1951,9 @@ EXTRA_DIST += unicase/u-casecmp.h
 
 ## begin gnulib module unicase/ulc-casecoll
 
+if LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL
 libunistring_la_SOURCES += unicase/ulc-casecoll.c
+endif
 
 EXTRA_DIST += unicase/u-casecoll.h
 
@@ -1460,20 +1961,33 @@ EXTRA_DIST += unicase/u-casecoll.h
 
 ## begin gnulib module unicase/ulc-casexfrm
 
+if LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM
 libunistring_la_SOURCES += unicase/ulc-casexfrm.c
+endif
 
 ## end   gnulib module unicase/ulc-casexfrm
 
 ## begin gnulib module uniconv/base
 
+BUILT_SOURCES += $(LIBUNISTRING_UNICONV_H)
+
+uniconv.h: uniconv.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/uniconv.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += uniconv.h uniconv.h-t
 
-EXTRA_DIST += iconveh.h localcharset.h striconveha.h uniconv.h
+EXTRA_DIST += iconveh.h localcharset.h striconveha.h uniconv.in.h
 
 ## end   gnulib module uniconv/base
 
 ## begin gnulib module uniconv/u16-conv-from-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC
 libunistring_la_SOURCES += uniconv/u16-conv-from-enc.c
+endif
 
 EXTRA_DIST += uniconv/u-conv-from-enc.h
 
@@ -1481,7 +1995,9 @@ EXTRA_DIST += uniconv/u-conv-from-enc.h
 
 ## begin gnulib module uniconv/u16-conv-to-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC
 libunistring_la_SOURCES += uniconv/u16-conv-to-enc.c
+endif
 
 EXTRA_DIST += uniconv/u-conv-to-enc.h
 
@@ -1489,7 +2005,9 @@ EXTRA_DIST += uniconv/u-conv-to-enc.h
 
 ## begin gnulib module uniconv/u16-strconv-from-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC
 libunistring_la_SOURCES += uniconv/u16-strconv-from-enc.c
+endif
 
 EXTRA_DIST += uniconv/u-strconv-from-enc.h
 
@@ -1497,13 +2015,17 @@ EXTRA_DIST += uniconv/u-strconv-from-enc.h
 
 ## begin gnulib module uniconv/u16-strconv-from-locale
 
+if LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE
 libunistring_la_SOURCES += uniconv/u16-strconv-from-locale.c
+endif
 
 ## end   gnulib module uniconv/u16-strconv-from-locale
 
 ## begin gnulib module uniconv/u16-strconv-to-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC
 libunistring_la_SOURCES += uniconv/u16-strconv-to-enc.c
+endif
 
 EXTRA_DIST += uniconv/u-strconv-to-enc.h
 
@@ -1511,13 +2033,17 @@ EXTRA_DIST += uniconv/u-strconv-to-enc.h
 
 ## begin gnulib module uniconv/u16-strconv-to-locale
 
+if LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE
 libunistring_la_SOURCES += uniconv/u16-strconv-to-locale.c
+endif
 
 ## end   gnulib module uniconv/u16-strconv-to-locale
 
 ## begin gnulib module uniconv/u32-conv-from-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC
 libunistring_la_SOURCES += uniconv/u32-conv-from-enc.c
+endif
 
 EXTRA_DIST += uniconv/u-conv-from-enc.h
 
@@ -1525,7 +2051,9 @@ EXTRA_DIST += uniconv/u-conv-from-enc.h
 
 ## begin gnulib module uniconv/u32-conv-to-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC
 libunistring_la_SOURCES += uniconv/u32-conv-to-enc.c
+endif
 
 EXTRA_DIST += uniconv/u-conv-to-enc.h
 
@@ -1533,7 +2061,9 @@ EXTRA_DIST += uniconv/u-conv-to-enc.h
 
 ## begin gnulib module uniconv/u32-strconv-from-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC
 libunistring_la_SOURCES += uniconv/u32-strconv-from-enc.c
+endif
 
 EXTRA_DIST += uniconv/u-strconv-from-enc.h
 
@@ -1541,13 +2071,17 @@ EXTRA_DIST += uniconv/u-strconv-from-enc.h
 
 ## begin gnulib module uniconv/u32-strconv-from-locale
 
+if LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE
 libunistring_la_SOURCES += uniconv/u32-strconv-from-locale.c
+endif
 
 ## end   gnulib module uniconv/u32-strconv-from-locale
 
 ## begin gnulib module uniconv/u32-strconv-to-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC
 libunistring_la_SOURCES += uniconv/u32-strconv-to-enc.c
+endif
 
 EXTRA_DIST += uniconv/u-strconv-to-enc.h
 
@@ -1555,25 +2089,33 @@ EXTRA_DIST += uniconv/u-strconv-to-enc.h
 
 ## begin gnulib module uniconv/u32-strconv-to-locale
 
+if LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE
 libunistring_la_SOURCES += uniconv/u32-strconv-to-locale.c
+endif
 
 ## end   gnulib module uniconv/u32-strconv-to-locale
 
 ## begin gnulib module uniconv/u8-conv-from-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC
 libunistring_la_SOURCES += uniconv/u8-conv-from-enc.c
+endif
 
 ## end   gnulib module uniconv/u8-conv-from-enc
 
 ## begin gnulib module uniconv/u8-conv-to-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC
 libunistring_la_SOURCES += uniconv/u8-conv-to-enc.c
+endif
 
 ## end   gnulib module uniconv/u8-conv-to-enc
 
 ## begin gnulib module uniconv/u8-strconv-from-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC
 libunistring_la_SOURCES += uniconv/u8-strconv-from-enc.c
+endif
 
 EXTRA_DIST += uniconv/u-strconv-from-enc.h
 
@@ -1581,58 +2123,101 @@ EXTRA_DIST += uniconv/u-strconv-from-enc.h
 
 ## begin gnulib module uniconv/u8-strconv-from-locale
 
+if LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE
 libunistring_la_SOURCES += uniconv/u8-strconv-from-locale.c
+endif
 
 ## end   gnulib module uniconv/u8-strconv-from-locale
 
 ## begin gnulib module uniconv/u8-strconv-to-enc
 
+if LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC
 libunistring_la_SOURCES += uniconv/u8-strconv-to-enc.c
+endif
 
 ## end   gnulib module uniconv/u8-strconv-to-enc
 
 ## begin gnulib module uniconv/u8-strconv-to-locale
 
+if LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE
 libunistring_la_SOURCES += uniconv/u8-strconv-to-locale.c
+endif
 
 ## end   gnulib module uniconv/u8-strconv-to-locale
 
 ## begin gnulib module unictype/base
 
+BUILT_SOURCES += $(LIBUNISTRING_UNICTYPE_H)
 
-EXTRA_DIST += unictype.h
+unictype.h: unictype.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unictype.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += unictype.h unictype.h-t
+
+EXTRA_DIST += unictype.in.h
 
 ## end   gnulib module unictype/base
 
-## begin gnulib module unictype/bidicategory-byname
+## begin gnulib module unictype/bidiclass-byname
 
+if LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME
 libunistring_la_SOURCES += unictype/bidi_byname.c
+endif
+
+unictype/bidi_byname.h: unictype/bidi_byname.gperf
+       $(GPERF) -m 10 $(srcdir)/unictype/bidi_byname.gperf > $(srcdir)/unictype/bidi_byname.h-t
+       mv $(srcdir)/unictype/bidi_byname.h-t $(srcdir)/unictype/bidi_byname.h
+BUILT_SOURCES        += unictype/bidi_byname.h
+MOSTLYCLEANFILES     += unictype/bidi_byname.h-t
+MAINTAINERCLEANFILES += unictype/bidi_byname.h
+EXTRA_DIST           += unictype/bidi_byname.h
+
+EXTRA_DIST += unictype/bidi_byname.gperf
+
+## end   gnulib module unictype/bidiclass-byname
+
+## begin gnulib module unictype/bidiclass-longname
+
+if LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME
+libunistring_la_SOURCES += unictype/bidi_longname.c
+endif
 
-## end   gnulib module unictype/bidicategory-byname
+## end   gnulib module unictype/bidiclass-longname
 
-## begin gnulib module unictype/bidicategory-name
+## begin gnulib module unictype/bidiclass-name
 
+if LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME
 libunistring_la_SOURCES += unictype/bidi_name.c
+endif
 
-## end   gnulib module unictype/bidicategory-name
+## end   gnulib module unictype/bidiclass-name
 
-## begin gnulib module unictype/bidicategory-of
+## begin gnulib module unictype/bidiclass-of
 
+if LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF
 libunistring_la_SOURCES += unictype/bidi_of.c
+endif
 
 EXTRA_DIST += unictype/bidi_of.h
 
-## end   gnulib module unictype/bidicategory-of
+## end   gnulib module unictype/bidiclass-of
 
-## begin gnulib module unictype/bidicategory-test
+## begin gnulib module unictype/bidiclass-test
 
+if LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST
 libunistring_la_SOURCES += unictype/bidi_test.c
+endif
 
-## end   gnulib module unictype/bidicategory-test
+## end   gnulib module unictype/bidiclass-test
 
 ## begin gnulib module unictype/block-list
 
+if LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST
 libunistring_la_SOURCES += unictype/blocks.c
+endif
 
 EXTRA_DIST += unictype/blocks.h
 
@@ -1640,13 +2225,17 @@ EXTRA_DIST += unictype/blocks.h
 
 ## begin gnulib module unictype/block-test
 
+if LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST
 libunistring_la_SOURCES += unictype/block_test.c
+endif
 
 ## end   gnulib module unictype/block-test
 
 ## begin gnulib module unictype/category-C
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C
 libunistring_la_SOURCES += unictype/categ_C.c
+endif
 
 EXTRA_DIST += unictype/categ_C.h
 
@@ -1654,7 +2243,9 @@ EXTRA_DIST += unictype/categ_C.h
 
 ## begin gnulib module unictype/category-Cc
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC
 libunistring_la_SOURCES += unictype/categ_Cc.c
+endif
 
 EXTRA_DIST += unictype/categ_Cc.h
 
@@ -1662,7 +2253,9 @@ EXTRA_DIST += unictype/categ_Cc.h
 
 ## begin gnulib module unictype/category-Cf
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF
 libunistring_la_SOURCES += unictype/categ_Cf.c
+endif
 
 EXTRA_DIST += unictype/categ_Cf.h
 
@@ -1670,7 +2263,9 @@ EXTRA_DIST += unictype/categ_Cf.h
 
 ## begin gnulib module unictype/category-Cn
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN
 libunistring_la_SOURCES += unictype/categ_Cn.c
+endif
 
 EXTRA_DIST += unictype/categ_Cn.h
 
@@ -1678,7 +2273,9 @@ EXTRA_DIST += unictype/categ_Cn.h
 
 ## begin gnulib module unictype/category-Co
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO
 libunistring_la_SOURCES += unictype/categ_Co.c
+endif
 
 EXTRA_DIST += unictype/categ_Co.h
 
@@ -1686,7 +2283,9 @@ EXTRA_DIST += unictype/categ_Co.h
 
 ## begin gnulib module unictype/category-Cs
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS
 libunistring_la_SOURCES += unictype/categ_Cs.c
+endif
 
 EXTRA_DIST += unictype/categ_Cs.h
 
@@ -1694,15 +2293,29 @@ EXTRA_DIST += unictype/categ_Cs.h
 
 ## begin gnulib module unictype/category-L
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L
 libunistring_la_SOURCES += unictype/categ_L.c
+endif
 
 EXTRA_DIST += unictype/categ_L.h
 
 ## end   gnulib module unictype/category-L
 
+## begin gnulib module unictype/category-LC
+
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC
+libunistring_la_SOURCES += unictype/categ_LC.c
+endif
+
+EXTRA_DIST += unictype/categ_LC.h
+
+## end   gnulib module unictype/category-LC
+
 ## begin gnulib module unictype/category-Ll
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL
 libunistring_la_SOURCES += unictype/categ_Ll.c
+endif
 
 EXTRA_DIST += unictype/categ_Ll.h
 
@@ -1710,7 +2323,9 @@ EXTRA_DIST += unictype/categ_Ll.h
 
 ## begin gnulib module unictype/category-Lm
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM
 libunistring_la_SOURCES += unictype/categ_Lm.c
+endif
 
 EXTRA_DIST += unictype/categ_Lm.h
 
@@ -1718,7 +2333,9 @@ EXTRA_DIST += unictype/categ_Lm.h
 
 ## begin gnulib module unictype/category-Lo
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO
 libunistring_la_SOURCES += unictype/categ_Lo.c
+endif
 
 EXTRA_DIST += unictype/categ_Lo.h
 
@@ -1726,7 +2343,9 @@ EXTRA_DIST += unictype/categ_Lo.h
 
 ## begin gnulib module unictype/category-Lt
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT
 libunistring_la_SOURCES += unictype/categ_Lt.c
+endif
 
 EXTRA_DIST += unictype/categ_Lt.h
 
@@ -1734,7 +2353,9 @@ EXTRA_DIST += unictype/categ_Lt.h
 
 ## begin gnulib module unictype/category-Lu
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU
 libunistring_la_SOURCES += unictype/categ_Lu.c
+endif
 
 EXTRA_DIST += unictype/categ_Lu.h
 
@@ -1742,7 +2363,9 @@ EXTRA_DIST += unictype/categ_Lu.h
 
 ## begin gnulib module unictype/category-M
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M
 libunistring_la_SOURCES += unictype/categ_M.c
+endif
 
 EXTRA_DIST += unictype/categ_M.h
 
@@ -1750,7 +2373,9 @@ EXTRA_DIST += unictype/categ_M.h
 
 ## begin gnulib module unictype/category-Mc
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC
 libunistring_la_SOURCES += unictype/categ_Mc.c
+endif
 
 EXTRA_DIST += unictype/categ_Mc.h
 
@@ -1758,7 +2383,9 @@ EXTRA_DIST += unictype/categ_Mc.h
 
 ## begin gnulib module unictype/category-Me
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME
 libunistring_la_SOURCES += unictype/categ_Me.c
+endif
 
 EXTRA_DIST += unictype/categ_Me.h
 
@@ -1766,7 +2393,9 @@ EXTRA_DIST += unictype/categ_Me.h
 
 ## begin gnulib module unictype/category-Mn
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN
 libunistring_la_SOURCES += unictype/categ_Mn.c
+endif
 
 EXTRA_DIST += unictype/categ_Mn.h
 
@@ -1774,7 +2403,9 @@ EXTRA_DIST += unictype/categ_Mn.h
 
 ## begin gnulib module unictype/category-N
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N
 libunistring_la_SOURCES += unictype/categ_N.c
+endif
 
 EXTRA_DIST += unictype/categ_N.h
 
@@ -1782,7 +2413,9 @@ EXTRA_DIST += unictype/categ_N.h
 
 ## begin gnulib module unictype/category-Nd
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND
 libunistring_la_SOURCES += unictype/categ_Nd.c
+endif
 
 EXTRA_DIST += unictype/categ_Nd.h
 
@@ -1790,7 +2423,9 @@ EXTRA_DIST += unictype/categ_Nd.h
 
 ## begin gnulib module unictype/category-Nl
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL
 libunistring_la_SOURCES += unictype/categ_Nl.c
+endif
 
 EXTRA_DIST += unictype/categ_Nl.h
 
@@ -1798,7 +2433,9 @@ EXTRA_DIST += unictype/categ_Nl.h
 
 ## begin gnulib module unictype/category-No
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO
 libunistring_la_SOURCES += unictype/categ_No.c
+endif
 
 EXTRA_DIST += unictype/categ_No.h
 
@@ -1806,7 +2443,9 @@ EXTRA_DIST += unictype/categ_No.h
 
 ## begin gnulib module unictype/category-P
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P
 libunistring_la_SOURCES += unictype/categ_P.c
+endif
 
 EXTRA_DIST += unictype/categ_P.h
 
@@ -1814,7 +2453,9 @@ EXTRA_DIST += unictype/categ_P.h
 
 ## begin gnulib module unictype/category-Pc
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC
 libunistring_la_SOURCES += unictype/categ_Pc.c
+endif
 
 EXTRA_DIST += unictype/categ_Pc.h
 
@@ -1822,7 +2463,9 @@ EXTRA_DIST += unictype/categ_Pc.h
 
 ## begin gnulib module unictype/category-Pd
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD
 libunistring_la_SOURCES += unictype/categ_Pd.c
+endif
 
 EXTRA_DIST += unictype/categ_Pd.h
 
@@ -1830,7 +2473,9 @@ EXTRA_DIST += unictype/categ_Pd.h
 
 ## begin gnulib module unictype/category-Pe
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE
 libunistring_la_SOURCES += unictype/categ_Pe.c
+endif
 
 EXTRA_DIST += unictype/categ_Pe.h
 
@@ -1838,7 +2483,9 @@ EXTRA_DIST += unictype/categ_Pe.h
 
 ## begin gnulib module unictype/category-Pf
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF
 libunistring_la_SOURCES += unictype/categ_Pf.c
+endif
 
 EXTRA_DIST += unictype/categ_Pf.h
 
@@ -1846,7 +2493,9 @@ EXTRA_DIST += unictype/categ_Pf.h
 
 ## begin gnulib module unictype/category-Pi
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI
 libunistring_la_SOURCES += unictype/categ_Pi.c
+endif
 
 EXTRA_DIST += unictype/categ_Pi.h
 
@@ -1854,7 +2503,9 @@ EXTRA_DIST += unictype/categ_Pi.h
 
 ## begin gnulib module unictype/category-Po
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO
 libunistring_la_SOURCES += unictype/categ_Po.c
+endif
 
 EXTRA_DIST += unictype/categ_Po.h
 
@@ -1862,7 +2513,9 @@ EXTRA_DIST += unictype/categ_Po.h
 
 ## begin gnulib module unictype/category-Ps
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS
 libunistring_la_SOURCES += unictype/categ_Ps.c
+endif
 
 EXTRA_DIST += unictype/categ_Ps.h
 
@@ -1870,7 +2523,9 @@ EXTRA_DIST += unictype/categ_Ps.h
 
 ## begin gnulib module unictype/category-S
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S
 libunistring_la_SOURCES += unictype/categ_S.c
+endif
 
 EXTRA_DIST += unictype/categ_S.h
 
@@ -1878,7 +2533,9 @@ EXTRA_DIST += unictype/categ_S.h
 
 ## begin gnulib module unictype/category-Sc
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC
 libunistring_la_SOURCES += unictype/categ_Sc.c
+endif
 
 EXTRA_DIST += unictype/categ_Sc.h
 
@@ -1886,7 +2543,9 @@ EXTRA_DIST += unictype/categ_Sc.h
 
 ## begin gnulib module unictype/category-Sk
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK
 libunistring_la_SOURCES += unictype/categ_Sk.c
+endif
 
 EXTRA_DIST += unictype/categ_Sk.h
 
@@ -1894,7 +2553,9 @@ EXTRA_DIST += unictype/categ_Sk.h
 
 ## begin gnulib module unictype/category-Sm
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM
 libunistring_la_SOURCES += unictype/categ_Sm.c
+endif
 
 EXTRA_DIST += unictype/categ_Sm.h
 
@@ -1902,7 +2563,9 @@ EXTRA_DIST += unictype/categ_Sm.h
 
 ## begin gnulib module unictype/category-So
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO
 libunistring_la_SOURCES += unictype/categ_So.c
+endif
 
 EXTRA_DIST += unictype/categ_So.h
 
@@ -1910,7 +2573,9 @@ EXTRA_DIST += unictype/categ_So.h
 
 ## begin gnulib module unictype/category-Z
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z
 libunistring_la_SOURCES += unictype/categ_Z.c
+endif
 
 EXTRA_DIST += unictype/categ_Z.h
 
@@ -1918,7 +2583,9 @@ EXTRA_DIST += unictype/categ_Z.h
 
 ## begin gnulib module unictype/category-Zl
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL
 libunistring_la_SOURCES += unictype/categ_Zl.c
+endif
 
 EXTRA_DIST += unictype/categ_Zl.h
 
@@ -1926,7 +2593,9 @@ EXTRA_DIST += unictype/categ_Zl.h
 
 ## begin gnulib module unictype/category-Zp
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP
 libunistring_la_SOURCES += unictype/categ_Zp.c
+endif
 
 EXTRA_DIST += unictype/categ_Zp.h
 
@@ -1934,7 +2603,9 @@ EXTRA_DIST += unictype/categ_Zp.h
 
 ## begin gnulib module unictype/category-Zs
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS
 libunistring_la_SOURCES += unictype/categ_Zs.c
+endif
 
 EXTRA_DIST += unictype/categ_Zs.h
 
@@ -1942,37 +2613,67 @@ EXTRA_DIST += unictype/categ_Zs.h
 
 ## begin gnulib module unictype/category-and
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND
 libunistring_la_SOURCES += unictype/categ_and.c
+endif
 
 ## end   gnulib module unictype/category-and
 
 ## begin gnulib module unictype/category-and-not
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT
 libunistring_la_SOURCES += unictype/categ_and_not.c
+endif
 
 ## end   gnulib module unictype/category-and-not
 
 ## begin gnulib module unictype/category-byname
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME
 libunistring_la_SOURCES += unictype/categ_byname.c
+endif
+
+unictype/categ_byname.h: unictype/categ_byname.gperf
+       $(GPERF) -m 10 $(srcdir)/unictype/categ_byname.gperf > $(srcdir)/unictype/categ_byname.h-t
+       mv $(srcdir)/unictype/categ_byname.h-t $(srcdir)/unictype/categ_byname.h
+BUILT_SOURCES        += unictype/categ_byname.h
+MOSTLYCLEANFILES     += unictype/categ_byname.h-t
+MAINTAINERCLEANFILES += unictype/categ_byname.h
+EXTRA_DIST           += unictype/categ_byname.h
+
+EXTRA_DIST += unictype/categ_byname.gperf
 
 ## end   gnulib module unictype/category-byname
 
+## begin gnulib module unictype/category-longname
+
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME
+libunistring_la_SOURCES += unictype/categ_longname.c
+endif
+
+## end   gnulib module unictype/category-longname
+
 ## begin gnulib module unictype/category-name
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME
 libunistring_la_SOURCES += unictype/categ_name.c
+endif
 
 ## end   gnulib module unictype/category-name
 
 ## begin gnulib module unictype/category-none
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE
 libunistring_la_SOURCES += unictype/categ_none.c
+endif
 
 ## end   gnulib module unictype/category-none
 
 ## begin gnulib module unictype/category-of
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF
 libunistring_la_SOURCES += unictype/categ_of.c
+endif
 
 EXTRA_DIST += unictype/categ_of.h
 
@@ -1980,13 +2681,17 @@ EXTRA_DIST += unictype/categ_of.h
 
 ## begin gnulib module unictype/category-or
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR
 libunistring_la_SOURCES += unictype/categ_or.c
+endif
 
 ## end   gnulib module unictype/category-or
 
 ## begin gnulib module unictype/category-test
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST
 libunistring_la_SOURCES += unictype/categ_test.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h
 
@@ -1994,15 +2699,53 @@ EXTRA_DIST += unictype/bitmap.h
 
 ## begin gnulib module unictype/combining-class
 
-libunistring_la_SOURCES += unictype/combining.c
+if LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS
+libunistring_la_SOURCES += unictype/combiningclass.c
+endif
 
-EXTRA_DIST += unictype/combining.h
+EXTRA_DIST += unictype/combiningclass.h
 
 ## end   gnulib module unictype/combining-class
 
+## begin gnulib module unictype/combining-class-byname
+
+if LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME
+libunistring_la_SOURCES += unictype/combiningclass_byname.c
+endif
+
+unictype/combiningclass_byname.h: unictype/combiningclass_byname.gperf
+       $(GPERF) -m 10 $(srcdir)/unictype/combiningclass_byname.gperf > $(srcdir)/unictype/combiningclass_byname.h-t
+       mv $(srcdir)/unictype/combiningclass_byname.h-t $(srcdir)/unictype/combiningclass_byname.h
+BUILT_SOURCES        += unictype/combiningclass_byname.h
+MOSTLYCLEANFILES     += unictype/combiningclass_byname.h-t
+MAINTAINERCLEANFILES += unictype/combiningclass_byname.h
+EXTRA_DIST           += unictype/combiningclass_byname.h
+
+EXTRA_DIST += unictype/combiningclass_byname.gperf
+
+## end   gnulib module unictype/combining-class-byname
+
+## begin gnulib module unictype/combining-class-longname
+
+if LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME
+libunistring_la_SOURCES += unictype/combiningclass_longname.c
+endif
+
+## end   gnulib module unictype/combining-class-longname
+
+## begin gnulib module unictype/combining-class-name
+
+if LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME
+libunistring_la_SOURCES += unictype/combiningclass_name.c
+endif
+
+## end   gnulib module unictype/combining-class-name
+
 ## begin gnulib module unictype/ctype-alnum
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM
 libunistring_la_SOURCES += unictype/ctype_alnum.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_alnum.h
 
@@ -2010,7 +2753,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_alnum.h
 
 ## begin gnulib module unictype/ctype-alpha
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA
 libunistring_la_SOURCES += unictype/ctype_alpha.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_alpha.h
 
@@ -2018,7 +2763,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_alpha.h
 
 ## begin gnulib module unictype/ctype-blank
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK
 libunistring_la_SOURCES += unictype/ctype_blank.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_blank.h
 
@@ -2026,7 +2773,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_blank.h
 
 ## begin gnulib module unictype/ctype-cntrl
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL
 libunistring_la_SOURCES += unictype/ctype_cntrl.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_cntrl.h
 
@@ -2034,7 +2783,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_cntrl.h
 
 ## begin gnulib module unictype/ctype-digit
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT
 libunistring_la_SOURCES += unictype/ctype_digit.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_digit.h
 
@@ -2042,7 +2793,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_digit.h
 
 ## begin gnulib module unictype/ctype-graph
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH
 libunistring_la_SOURCES += unictype/ctype_graph.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_graph.h
 
@@ -2050,7 +2803,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_graph.h
 
 ## begin gnulib module unictype/ctype-lower
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER
 libunistring_la_SOURCES += unictype/ctype_lower.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_lower.h
 
@@ -2058,7 +2813,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_lower.h
 
 ## begin gnulib module unictype/ctype-print
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT
 libunistring_la_SOURCES += unictype/ctype_print.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_print.h
 
@@ -2066,7 +2823,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_print.h
 
 ## begin gnulib module unictype/ctype-punct
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT
 libunistring_la_SOURCES += unictype/ctype_punct.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_punct.h
 
@@ -2074,7 +2833,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_punct.h
 
 ## begin gnulib module unictype/ctype-space
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE
 libunistring_la_SOURCES += unictype/ctype_space.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_space.h
 
@@ -2082,7 +2843,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_space.h
 
 ## begin gnulib module unictype/ctype-upper
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER
 libunistring_la_SOURCES += unictype/ctype_upper.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_upper.h
 
@@ -2090,7 +2853,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_upper.h
 
 ## begin gnulib module unictype/ctype-xdigit
 
+if LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT
 libunistring_la_SOURCES += unictype/ctype_xdigit.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/ctype_xdigit.h
 
@@ -2098,7 +2863,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/ctype_xdigit.h
 
 ## begin gnulib module unictype/decimal-digit
 
+if LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT
 libunistring_la_SOURCES += unictype/decdigit.c
+endif
 
 EXTRA_DIST += unictype/decdigit.h
 
@@ -2106,15 +2873,101 @@ EXTRA_DIST += unictype/decdigit.h
 
 ## begin gnulib module unictype/digit
 
+if LIBUNISTRING_COMPILE_UNICTYPE_DIGIT
 libunistring_la_SOURCES += unictype/digit.c
+endif
 
 EXTRA_DIST += unictype/digit.h
 
 ## end   gnulib module unictype/digit
 
+## begin gnulib module unictype/joininggroup-byname
+
+if LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME
+libunistring_la_SOURCES += unictype/joininggroup_byname.c
+endif
+
+unictype/joininggroup_byname.h: unictype/joininggroup_byname.gperf
+       $(GPERF) -m 10 $(srcdir)/unictype/joininggroup_byname.gperf > $(srcdir)/unictype/joininggroup_byname.h-t
+       mv $(srcdir)/unictype/joininggroup_byname.h-t $(srcdir)/unictype/joininggroup_byname.h
+BUILT_SOURCES        += unictype/joininggroup_byname.h
+MOSTLYCLEANFILES     += unictype/joininggroup_byname.h-t
+MAINTAINERCLEANFILES += unictype/joininggroup_byname.h
+EXTRA_DIST           += unictype/joininggroup_byname.h
+
+EXTRA_DIST += unictype/joininggroup_byname.gperf
+
+## end   gnulib module unictype/joininggroup-byname
+
+## begin gnulib module unictype/joininggroup-name
+
+if LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME
+libunistring_la_SOURCES += unictype/joininggroup_name.c
+endif
+
+EXTRA_DIST += unictype/joininggroup_name.h
+
+## end   gnulib module unictype/joininggroup-name
+
+## begin gnulib module unictype/joininggroup-of
+
+if LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF
+libunistring_la_SOURCES += unictype/joininggroup_of.c
+endif
+
+EXTRA_DIST += unictype/joininggroup_of.h
+
+## end   gnulib module unictype/joininggroup-of
+
+## begin gnulib module unictype/joiningtype-byname
+
+if LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME
+libunistring_la_SOURCES += unictype/joiningtype_byname.c
+endif
+
+unictype/joiningtype_byname.h: unictype/joiningtype_byname.gperf
+       $(GPERF) -m 10 $(srcdir)/unictype/joiningtype_byname.gperf > $(srcdir)/unictype/joiningtype_byname.h-t
+       mv $(srcdir)/unictype/joiningtype_byname.h-t $(srcdir)/unictype/joiningtype_byname.h
+BUILT_SOURCES        += unictype/joiningtype_byname.h
+MOSTLYCLEANFILES     += unictype/joiningtype_byname.h-t
+MAINTAINERCLEANFILES += unictype/joiningtype_byname.h
+EXTRA_DIST           += unictype/joiningtype_byname.h
+
+EXTRA_DIST += unictype/joiningtype_byname.gperf
+
+## end   gnulib module unictype/joiningtype-byname
+
+## begin gnulib module unictype/joiningtype-longname
+
+if LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME
+libunistring_la_SOURCES += unictype/joiningtype_longname.c
+endif
+
+## end   gnulib module unictype/joiningtype-longname
+
+## begin gnulib module unictype/joiningtype-name
+
+if LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME
+libunistring_la_SOURCES += unictype/joiningtype_name.c
+endif
+
+## end   gnulib module unictype/joiningtype-name
+
+## begin gnulib module unictype/joiningtype-of
+
+if LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF
+libunistring_la_SOURCES += unictype/joiningtype_of.c
+endif
+
+EXTRA_DIST += unictype/joiningtype_of.h
+
+## end   gnulib module unictype/joiningtype-of
+
 ## begin gnulib module unictype/mirror
 
+if LIBUNISTRING_COMPILE_UNICTYPE_MIRROR
 libunistring_la_SOURCES += unictype/mirror.c
+endif
 
 EXTRA_DIST += unictype/mirror.h
 
@@ -2122,7 +2975,9 @@ EXTRA_DIST += unictype/mirror.h
 
 ## begin gnulib module unictype/numeric
 
+if LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC
 libunistring_la_SOURCES += unictype/numeric.c
+endif
 
 EXTRA_DIST += unictype/numeric.h
 
@@ -2130,7 +2985,9 @@ EXTRA_DIST += unictype/numeric.h
 
 ## begin gnulib module unictype/property-alphabetic
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC
 libunistring_la_SOURCES += unictype/pr_alphabetic.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_alphabetic.h
 
@@ -2138,7 +2995,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_alphabetic.h
 
 ## begin gnulib module unictype/property-ascii-hex-digit
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT
 libunistring_la_SOURCES += unictype/pr_ascii_hex_digit.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_ascii_hex_digit.h
 
@@ -2146,7 +3005,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_ascii_hex_digit.h
 
 ## begin gnulib module unictype/property-bidi-arabic-digit
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT
 libunistring_la_SOURCES += unictype/pr_bidi_arabic_digit.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_arabic_digit.h
 
@@ -2154,7 +3015,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_arabic_digit.h
 
 ## begin gnulib module unictype/property-bidi-arabic-right-to-left
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT
 libunistring_la_SOURCES += unictype/pr_bidi_arabic_right_to_left.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_arabic_right_to_left.h
 
@@ -2162,7 +3025,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_arabic_right_to_left.h
 
 ## begin gnulib module unictype/property-bidi-block-separator
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR
 libunistring_la_SOURCES += unictype/pr_bidi_block_separator.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_block_separator.h
 
@@ -2170,7 +3035,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_block_separator.h
 
 ## begin gnulib module unictype/property-bidi-boundary-neutral
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL
 libunistring_la_SOURCES += unictype/pr_bidi_boundary_neutral.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_boundary_neutral.h
 
@@ -2178,7 +3045,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_boundary_neutral.h
 
 ## begin gnulib module unictype/property-bidi-common-separator
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR
 libunistring_la_SOURCES += unictype/pr_bidi_common_separator.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_common_separator.h
 
@@ -2186,7 +3055,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_common_separator.h
 
 ## begin gnulib module unictype/property-bidi-control
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL
 libunistring_la_SOURCES += unictype/pr_bidi_control.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_control.h
 
@@ -2194,7 +3065,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_control.h
 
 ## begin gnulib module unictype/property-bidi-embedding-or-override
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE
 libunistring_la_SOURCES += unictype/pr_bidi_embedding_or_override.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_embedding_or_override.h
 
@@ -2202,7 +3075,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_embedding_or_override.h
 
 ## begin gnulib module unictype/property-bidi-eur-num-separator
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR
 libunistring_la_SOURCES += unictype/pr_bidi_eur_num_separator.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_eur_num_separator.h
 
@@ -2210,7 +3085,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_eur_num_separator.h
 
 ## begin gnulib module unictype/property-bidi-eur-num-terminator
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR
 libunistring_la_SOURCES += unictype/pr_bidi_eur_num_terminator.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_eur_num_terminator.h
 
@@ -2218,7 +3095,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_eur_num_terminator.h
 
 ## begin gnulib module unictype/property-bidi-european-digit
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT
 libunistring_la_SOURCES += unictype/pr_bidi_european_digit.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_european_digit.h
 
@@ -2226,7 +3105,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_european_digit.h
 
 ## begin gnulib module unictype/property-bidi-hebrew-right-to-left
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT
 libunistring_la_SOURCES += unictype/pr_bidi_hebrew_right_to_left.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_hebrew_right_to_left.h
 
@@ -2234,7 +3115,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_hebrew_right_to_left.h
 
 ## begin gnulib module unictype/property-bidi-left-to-right
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT
 libunistring_la_SOURCES += unictype/pr_bidi_left_to_right.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_left_to_right.h
 
@@ -2242,7 +3125,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_left_to_right.h
 
 ## begin gnulib module unictype/property-bidi-non-spacing-mark
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK
 libunistring_la_SOURCES += unictype/pr_bidi_non_spacing_mark.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_non_spacing_mark.h
 
@@ -2250,7 +3135,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_non_spacing_mark.h
 
 ## begin gnulib module unictype/property-bidi-other-neutral
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL
 libunistring_la_SOURCES += unictype/pr_bidi_other_neutral.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_other_neutral.h
 
@@ -2258,7 +3145,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_other_neutral.h
 
 ## begin gnulib module unictype/property-bidi-pdf
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF
 libunistring_la_SOURCES += unictype/pr_bidi_pdf.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_pdf.h
 
@@ -2266,7 +3155,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_pdf.h
 
 ## begin gnulib module unictype/property-bidi-segment-separator
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR
 libunistring_la_SOURCES += unictype/pr_bidi_segment_separator.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_segment_separator.h
 
@@ -2274,7 +3165,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_segment_separator.h
 
 ## begin gnulib module unictype/property-bidi-whitespace
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE
 libunistring_la_SOURCES += unictype/pr_bidi_whitespace.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_whitespace.h
 
@@ -2282,7 +3175,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_bidi_whitespace.h
 
 ## begin gnulib module unictype/property-byname
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME
 libunistring_la_SOURCES += unictype/pr_byname.c
+endif
 
 unictype/pr_byname.h: unictype/pr_byname.gperf
        $(GPERF) -m 10 $(srcdir)/unictype/pr_byname.gperf > $(srcdir)/unictype/pr_byname.h-t
@@ -2296,9 +3191,81 @@ EXTRA_DIST += unictype/pr_byname.gperf
 
 ## end   gnulib module unictype/property-byname
 
+## begin gnulib module unictype/property-case-ignorable
+
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE
+libunistring_la_SOURCES += unictype/pr_case_ignorable.c
+endif
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_case_ignorable.h
+
+## end   gnulib module unictype/property-case-ignorable
+
+## begin gnulib module unictype/property-cased
+
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED
+libunistring_la_SOURCES += unictype/pr_cased.c
+endif
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_cased.h
+
+## end   gnulib module unictype/property-cased
+
+## begin gnulib module unictype/property-changes-when-casefolded
+
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED
+libunistring_la_SOURCES += unictype/pr_changes_when_casefolded.c
+endif
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_changes_when_casefolded.h
+
+## end   gnulib module unictype/property-changes-when-casefolded
+
+## begin gnulib module unictype/property-changes-when-casemapped
+
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED
+libunistring_la_SOURCES += unictype/pr_changes_when_casemapped.c
+endif
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_changes_when_casemapped.h
+
+## end   gnulib module unictype/property-changes-when-casemapped
+
+## begin gnulib module unictype/property-changes-when-lowercased
+
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED
+libunistring_la_SOURCES += unictype/pr_changes_when_lowercased.c
+endif
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_changes_when_lowercased.h
+
+## end   gnulib module unictype/property-changes-when-lowercased
+
+## begin gnulib module unictype/property-changes-when-titlecased
+
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED
+libunistring_la_SOURCES += unictype/pr_changes_when_titlecased.c
+endif
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_changes_when_titlecased.h
+
+## end   gnulib module unictype/property-changes-when-titlecased
+
+## begin gnulib module unictype/property-changes-when-uppercased
+
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED
+libunistring_la_SOURCES += unictype/pr_changes_when_uppercased.c
+endif
+
+EXTRA_DIST += unictype/bitmap.h unictype/pr_changes_when_uppercased.h
+
+## end   gnulib module unictype/property-changes-when-uppercased
+
 ## begin gnulib module unictype/property-combining
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING
 libunistring_la_SOURCES += unictype/pr_combining.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_combining.h
 
@@ -2306,7 +3273,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_combining.h
 
 ## begin gnulib module unictype/property-composite
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE
 libunistring_la_SOURCES += unictype/pr_composite.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_composite.h
 
@@ -2314,7 +3283,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_composite.h
 
 ## begin gnulib module unictype/property-currency-symbol
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL
 libunistring_la_SOURCES += unictype/pr_currency_symbol.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_currency_symbol.h
 
@@ -2322,7 +3293,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_currency_symbol.h
 
 ## begin gnulib module unictype/property-dash
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH
 libunistring_la_SOURCES += unictype/pr_dash.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_dash.h
 
@@ -2330,7 +3303,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_dash.h
 
 ## begin gnulib module unictype/property-decimal-digit
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT
 libunistring_la_SOURCES += unictype/pr_decimal_digit.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_decimal_digit.h
 
@@ -2338,7 +3313,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_decimal_digit.h
 
 ## begin gnulib module unictype/property-default-ignorable-code-point
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT
 libunistring_la_SOURCES += unictype/pr_default_ignorable_code_point.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_default_ignorable_code_point.h
 
@@ -2346,7 +3323,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_default_ignorable_code_point.h
 
 ## begin gnulib module unictype/property-deprecated
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED
 libunistring_la_SOURCES += unictype/pr_deprecated.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_deprecated.h
 
@@ -2354,7 +3333,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_deprecated.h
 
 ## begin gnulib module unictype/property-diacritic
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC
 libunistring_la_SOURCES += unictype/pr_diacritic.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_diacritic.h
 
@@ -2362,7 +3343,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_diacritic.h
 
 ## begin gnulib module unictype/property-extender
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER
 libunistring_la_SOURCES += unictype/pr_extender.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_extender.h
 
@@ -2370,7 +3353,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_extender.h
 
 ## begin gnulib module unictype/property-format-control
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL
 libunistring_la_SOURCES += unictype/pr_format_control.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_format_control.h
 
@@ -2378,7 +3363,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_format_control.h
 
 ## begin gnulib module unictype/property-grapheme-base
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE
 libunistring_la_SOURCES += unictype/pr_grapheme_base.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_grapheme_base.h
 
@@ -2386,7 +3373,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_grapheme_base.h
 
 ## begin gnulib module unictype/property-grapheme-extend
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND
 libunistring_la_SOURCES += unictype/pr_grapheme_extend.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_grapheme_extend.h
 
@@ -2394,7 +3383,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_grapheme_extend.h
 
 ## begin gnulib module unictype/property-grapheme-link
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK
 libunistring_la_SOURCES += unictype/pr_grapheme_link.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_grapheme_link.h
 
@@ -2402,7 +3393,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_grapheme_link.h
 
 ## begin gnulib module unictype/property-hex-digit
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT
 libunistring_la_SOURCES += unictype/pr_hex_digit.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_hex_digit.h
 
@@ -2410,7 +3403,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_hex_digit.h
 
 ## begin gnulib module unictype/property-hyphen
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN
 libunistring_la_SOURCES += unictype/pr_hyphen.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_hyphen.h
 
@@ -2418,7 +3413,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_hyphen.h
 
 ## begin gnulib module unictype/property-id-continue
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE
 libunistring_la_SOURCES += unictype/pr_id_continue.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_id_continue.h
 
@@ -2426,7 +3423,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_id_continue.h
 
 ## begin gnulib module unictype/property-id-start
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START
 libunistring_la_SOURCES += unictype/pr_id_start.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_id_start.h
 
@@ -2434,7 +3433,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_id_start.h
 
 ## begin gnulib module unictype/property-ideographic
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC
 libunistring_la_SOURCES += unictype/pr_ideographic.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_ideographic.h
 
@@ -2442,7 +3443,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_ideographic.h
 
 ## begin gnulib module unictype/property-ids-binary-operator
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR
 libunistring_la_SOURCES += unictype/pr_ids_binary_operator.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_ids_binary_operator.h
 
@@ -2450,7 +3453,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_ids_binary_operator.h
 
 ## begin gnulib module unictype/property-ids-trinary-operator
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR
 libunistring_la_SOURCES += unictype/pr_ids_trinary_operator.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_ids_trinary_operator.h
 
@@ -2458,7 +3463,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_ids_trinary_operator.h
 
 ## begin gnulib module unictype/property-ignorable-control
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL
 libunistring_la_SOURCES += unictype/pr_ignorable_control.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_ignorable_control.h
 
@@ -2466,7 +3473,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_ignorable_control.h
 
 ## begin gnulib module unictype/property-iso-control
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL
 libunistring_la_SOURCES += unictype/pr_iso_control.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_iso_control.h
 
@@ -2474,7 +3483,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_iso_control.h
 
 ## begin gnulib module unictype/property-join-control
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL
 libunistring_la_SOURCES += unictype/pr_join_control.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_join_control.h
 
@@ -2482,7 +3493,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_join_control.h
 
 ## begin gnulib module unictype/property-left-of-pair
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR
 libunistring_la_SOURCES += unictype/pr_left_of_pair.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_left_of_pair.h
 
@@ -2490,7 +3503,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_left_of_pair.h
 
 ## begin gnulib module unictype/property-line-separator
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR
 libunistring_la_SOURCES += unictype/pr_line_separator.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_line_separator.h
 
@@ -2498,7 +3513,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_line_separator.h
 
 ## begin gnulib module unictype/property-logical-order-exception
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION
 libunistring_la_SOURCES += unictype/pr_logical_order_exception.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_logical_order_exception.h
 
@@ -2506,7 +3523,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_logical_order_exception.h
 
 ## begin gnulib module unictype/property-lowercase
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE
 libunistring_la_SOURCES += unictype/pr_lowercase.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_lowercase.h
 
@@ -2514,7 +3533,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_lowercase.h
 
 ## begin gnulib module unictype/property-math
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH
 libunistring_la_SOURCES += unictype/pr_math.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_math.h
 
@@ -2522,7 +3543,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_math.h
 
 ## begin gnulib module unictype/property-non-break
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK
 libunistring_la_SOURCES += unictype/pr_non_break.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_non_break.h
 
@@ -2530,7 +3553,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_non_break.h
 
 ## begin gnulib module unictype/property-not-a-character
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER
 libunistring_la_SOURCES += unictype/pr_not_a_character.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_not_a_character.h
 
@@ -2538,7 +3563,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_not_a_character.h
 
 ## begin gnulib module unictype/property-numeric
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC
 libunistring_la_SOURCES += unictype/pr_numeric.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_numeric.h
 
@@ -2546,7 +3573,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_numeric.h
 
 ## begin gnulib module unictype/property-other-alphabetic
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC
 libunistring_la_SOURCES += unictype/pr_other_alphabetic.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_other_alphabetic.h
 
@@ -2554,7 +3583,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_other_alphabetic.h
 
 ## begin gnulib module unictype/property-other-default-ignorable-code-point
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT
 libunistring_la_SOURCES += unictype/pr_other_default_ignorable_code_point.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_other_default_ignorable_code_point.h
 
@@ -2562,7 +3593,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_other_default_ignorable_code_point.h
 
 ## begin gnulib module unictype/property-other-grapheme-extend
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND
 libunistring_la_SOURCES += unictype/pr_other_grapheme_extend.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_other_grapheme_extend.h
 
@@ -2570,7 +3603,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_other_grapheme_extend.h
 
 ## begin gnulib module unictype/property-other-id-continue
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE
 libunistring_la_SOURCES += unictype/pr_other_id_continue.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_other_id_continue.h
 
@@ -2578,7 +3613,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_other_id_continue.h
 
 ## begin gnulib module unictype/property-other-id-start
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START
 libunistring_la_SOURCES += unictype/pr_other_id_start.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_other_id_start.h
 
@@ -2586,7 +3623,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_other_id_start.h
 
 ## begin gnulib module unictype/property-other-lowercase
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE
 libunistring_la_SOURCES += unictype/pr_other_lowercase.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_other_lowercase.h
 
@@ -2594,7 +3633,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_other_lowercase.h
 
 ## begin gnulib module unictype/property-other-math
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH
 libunistring_la_SOURCES += unictype/pr_other_math.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_other_math.h
 
@@ -2602,7 +3643,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_other_math.h
 
 ## begin gnulib module unictype/property-other-uppercase
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE
 libunistring_la_SOURCES += unictype/pr_other_uppercase.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_other_uppercase.h
 
@@ -2610,7 +3653,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_other_uppercase.h
 
 ## begin gnulib module unictype/property-paired-punctuation
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION
 libunistring_la_SOURCES += unictype/pr_paired_punctuation.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_paired_punctuation.h
 
@@ -2618,7 +3663,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_paired_punctuation.h
 
 ## begin gnulib module unictype/property-paragraph-separator
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR
 libunistring_la_SOURCES += unictype/pr_paragraph_separator.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_paragraph_separator.h
 
@@ -2626,7 +3673,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_paragraph_separator.h
 
 ## begin gnulib module unictype/property-pattern-syntax
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX
 libunistring_la_SOURCES += unictype/pr_pattern_syntax.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_pattern_syntax.h
 
@@ -2634,7 +3683,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_pattern_syntax.h
 
 ## begin gnulib module unictype/property-pattern-white-space
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE
 libunistring_la_SOURCES += unictype/pr_pattern_white_space.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_pattern_white_space.h
 
@@ -2642,7 +3693,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_pattern_white_space.h
 
 ## begin gnulib module unictype/property-private-use
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE
 libunistring_la_SOURCES += unictype/pr_private_use.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_private_use.h
 
@@ -2650,7 +3703,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_private_use.h
 
 ## begin gnulib module unictype/property-punctuation
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION
 libunistring_la_SOURCES += unictype/pr_punctuation.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_punctuation.h
 
@@ -2658,7 +3713,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_punctuation.h
 
 ## begin gnulib module unictype/property-quotation-mark
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK
 libunistring_la_SOURCES += unictype/pr_quotation_mark.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_quotation_mark.h
 
@@ -2666,7 +3723,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_quotation_mark.h
 
 ## begin gnulib module unictype/property-radical
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL
 libunistring_la_SOURCES += unictype/pr_radical.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_radical.h
 
@@ -2674,7 +3733,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_radical.h
 
 ## begin gnulib module unictype/property-sentence-terminal
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL
 libunistring_la_SOURCES += unictype/pr_sentence_terminal.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_sentence_terminal.h
 
@@ -2682,7 +3743,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_sentence_terminal.h
 
 ## begin gnulib module unictype/property-soft-dotted
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED
 libunistring_la_SOURCES += unictype/pr_soft_dotted.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_soft_dotted.h
 
@@ -2690,7 +3753,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_soft_dotted.h
 
 ## begin gnulib module unictype/property-space
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE
 libunistring_la_SOURCES += unictype/pr_space.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_space.h
 
@@ -2698,7 +3763,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_space.h
 
 ## begin gnulib module unictype/property-terminal-punctuation
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION
 libunistring_la_SOURCES += unictype/pr_terminal_punctuation.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_terminal_punctuation.h
 
@@ -2706,13 +3773,17 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_terminal_punctuation.h
 
 ## begin gnulib module unictype/property-test
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST
 libunistring_la_SOURCES += unictype/pr_test.c
+endif
 
 ## end   gnulib module unictype/property-test
 
 ## begin gnulib module unictype/property-titlecase
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE
 libunistring_la_SOURCES += unictype/pr_titlecase.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_titlecase.h
 
@@ -2720,7 +3791,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_titlecase.h
 
 ## begin gnulib module unictype/property-unassigned-code-value
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE
 libunistring_la_SOURCES += unictype/pr_unassigned_code_value.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_unassigned_code_value.h
 
@@ -2728,7 +3801,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_unassigned_code_value.h
 
 ## begin gnulib module unictype/property-unified-ideograph
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH
 libunistring_la_SOURCES += unictype/pr_unified_ideograph.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_unified_ideograph.h
 
@@ -2736,7 +3811,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_unified_ideograph.h
 
 ## begin gnulib module unictype/property-uppercase
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE
 libunistring_la_SOURCES += unictype/pr_uppercase.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_uppercase.h
 
@@ -2744,7 +3821,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_uppercase.h
 
 ## begin gnulib module unictype/property-variation-selector
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR
 libunistring_la_SOURCES += unictype/pr_variation_selector.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_variation_selector.h
 
@@ -2752,7 +3831,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_variation_selector.h
 
 ## begin gnulib module unictype/property-white-space
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE
 libunistring_la_SOURCES += unictype/pr_white_space.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_white_space.h
 
@@ -2760,7 +3841,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_white_space.h
 
 ## begin gnulib module unictype/property-xid-continue
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE
 libunistring_la_SOURCES += unictype/pr_xid_continue.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_xid_continue.h
 
@@ -2768,7 +3851,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_xid_continue.h
 
 ## begin gnulib module unictype/property-xid-start
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START
 libunistring_la_SOURCES += unictype/pr_xid_start.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_xid_start.h
 
@@ -2776,7 +3861,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_xid_start.h
 
 ## begin gnulib module unictype/property-zero-width
 
+if LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH
 libunistring_la_SOURCES += unictype/pr_zero_width.c
+endif
 
 EXTRA_DIST += unictype/bitmap.h unictype/pr_zero_width.h
 
@@ -2784,7 +3871,9 @@ EXTRA_DIST += unictype/bitmap.h unictype/pr_zero_width.h
 
 ## begin gnulib module unictype/scripts
 
+if LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS
 libunistring_la_SOURCES += unictype/scripts.c
+endif
 
 unictype/scripts_byname.h: unictype/scripts_byname.gperf
        $(GPERF) -m 10 $(srcdir)/unictype/scripts_byname.gperf > $(srcdir)/unictype/scripts_byname.h-t
@@ -2800,7 +3889,9 @@ EXTRA_DIST += unictype/scripts.h unictype/scripts_byname.gperf
 
 ## begin gnulib module unictype/syntax-c-ident
 
+if LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT
 libunistring_la_SOURCES += unictype/sy_c_ident.c
+endif
 
 EXTRA_DIST += unictype/identsyntaxmap.h unictype/sy_c_ident.h
 
@@ -2808,13 +3899,17 @@ EXTRA_DIST += unictype/identsyntaxmap.h unictype/sy_c_ident.h
 
 ## begin gnulib module unictype/syntax-c-whitespace
 
+if LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE
 libunistring_la_SOURCES += unictype/sy_c_whitespace.c
+endif
 
 ## end   gnulib module unictype/syntax-c-whitespace
 
 ## begin gnulib module unictype/syntax-java-ident
 
+if LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT
 libunistring_la_SOURCES += unictype/sy_java_ident.c
+endif
 
 EXTRA_DIST += unictype/identsyntaxmap.h unictype/sy_java_ident.h
 
@@ -2822,14 +3917,139 @@ EXTRA_DIST += unictype/identsyntaxmap.h unictype/sy_java_ident.h
 
 ## begin gnulib module unictype/syntax-java-whitespace
 
+if LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE
 libunistring_la_SOURCES += unictype/sy_java_whitespace.c
+endif
 
 ## end   gnulib module unictype/syntax-java-whitespace
 
+## begin gnulib module unigbrk/base
+
+BUILT_SOURCES += $(LIBUNISTRING_UNIGBRK_H)
+
+unigbrk.h: unigbrk.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unigbrk.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += unigbrk.h unigbrk.h-t
+
+EXTRA_DIST += unigbrk.in.h
+
+## end   gnulib module unigbrk/base
+
+## begin gnulib module unigbrk/u16-grapheme-breaks
+
+if LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS
+libunistring_la_SOURCES += unigbrk/u16-grapheme-breaks.c
+endif
+
+## end   gnulib module unigbrk/u16-grapheme-breaks
+
+## begin gnulib module unigbrk/u16-grapheme-next
+
+if LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT
+libunistring_la_SOURCES += unigbrk/u16-grapheme-next.c
+endif
+
+## end   gnulib module unigbrk/u16-grapheme-next
+
+## begin gnulib module unigbrk/u16-grapheme-prev
+
+if LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV
+libunistring_la_SOURCES += unigbrk/u16-grapheme-prev.c
+endif
+
+## end   gnulib module unigbrk/u16-grapheme-prev
+
+## begin gnulib module unigbrk/u32-grapheme-breaks
+
+if LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS
+libunistring_la_SOURCES += unigbrk/u32-grapheme-breaks.c
+endif
+
+## end   gnulib module unigbrk/u32-grapheme-breaks
+
+## begin gnulib module unigbrk/u32-grapheme-next
+
+if LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT
+libunistring_la_SOURCES += unigbrk/u32-grapheme-next.c
+endif
+
+## end   gnulib module unigbrk/u32-grapheme-next
+
+## begin gnulib module unigbrk/u32-grapheme-prev
+
+if LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV
+libunistring_la_SOURCES += unigbrk/u32-grapheme-prev.c
+endif
+
+## end   gnulib module unigbrk/u32-grapheme-prev
+
+## begin gnulib module unigbrk/u8-grapheme-breaks
+
+if LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS
+libunistring_la_SOURCES += unigbrk/u8-grapheme-breaks.c
+endif
+
+## end   gnulib module unigbrk/u8-grapheme-breaks
+
+## begin gnulib module unigbrk/u8-grapheme-next
+
+if LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT
+libunistring_la_SOURCES += unigbrk/u8-grapheme-next.c
+endif
+
+## end   gnulib module unigbrk/u8-grapheme-next
+
+## begin gnulib module unigbrk/u8-grapheme-prev
+
+if LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV
+libunistring_la_SOURCES += unigbrk/u8-grapheme-prev.c
+endif
+
+## end   gnulib module unigbrk/u8-grapheme-prev
+
+## begin gnulib module unigbrk/uc-gbrk-prop
+
+if LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP
+libunistring_la_SOURCES += unigbrk/uc-gbrk-prop.c
+endif
+
+EXTRA_DIST += unigbrk/gbrkprop.h
+
+## end   gnulib module unigbrk/uc-gbrk-prop
+
+## begin gnulib module unigbrk/uc-is-grapheme-break
+
+if LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK
+libunistring_la_SOURCES += unigbrk/uc-is-grapheme-break.c
+endif
+
+## end   gnulib module unigbrk/uc-is-grapheme-break
+
+## begin gnulib module unigbrk/ulc-grapheme-breaks
+
+if LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS
+libunistring_la_SOURCES += unigbrk/ulc-grapheme-breaks.c
+endif
+
+## end   gnulib module unigbrk/ulc-grapheme-breaks
+
 ## begin gnulib module unilbrk/base
 
+BUILT_SOURCES += $(LIBUNISTRING_UNILBRK_H)
 
-EXTRA_DIST += unilbrk.h
+unilbrk.h: unilbrk.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unilbrk.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += unilbrk.h unilbrk.h-t
+
+EXTRA_DIST += unilbrk.in.h
 
 ## end   gnulib module unilbrk/base
 
@@ -2843,7 +4063,9 @@ EXTRA_DIST += unilbrk/lbrkprop1.h unilbrk/lbrkprop2.h unilbrk/lbrktables.h
 
 ## begin gnulib module unilbrk/u16-possible-linebreaks
 
+if LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS
 libunistring_la_SOURCES += unilbrk/u16-possible-linebreaks.c
+endif
 
 EXTRA_DIST += uniwidth/cjk.h
 
@@ -2851,13 +4073,17 @@ EXTRA_DIST += uniwidth/cjk.h
 
 ## begin gnulib module unilbrk/u16-width-linebreaks
 
+if LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS
 libunistring_la_SOURCES += unilbrk/u16-width-linebreaks.c
+endif
 
 ## end   gnulib module unilbrk/u16-width-linebreaks
 
 ## begin gnulib module unilbrk/u32-possible-linebreaks
 
+if LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS
 libunistring_la_SOURCES += unilbrk/u32-possible-linebreaks.c
+endif
 
 EXTRA_DIST += uniwidth/cjk.h
 
@@ -2865,13 +4091,17 @@ EXTRA_DIST += uniwidth/cjk.h
 
 ## begin gnulib module unilbrk/u32-width-linebreaks
 
+if LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS
 libunistring_la_SOURCES += unilbrk/u32-width-linebreaks.c
+endif
 
 ## end   gnulib module unilbrk/u32-width-linebreaks
 
 ## begin gnulib module unilbrk/u8-possible-linebreaks
 
+if LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS
 libunistring_la_SOURCES += unilbrk/u8-possible-linebreaks.c
+endif
 
 EXTRA_DIST += uniwidth/cjk.h
 
@@ -2879,7 +4109,9 @@ EXTRA_DIST += uniwidth/cjk.h
 
 ## begin gnulib module unilbrk/u8-width-linebreaks
 
+if LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS
 libunistring_la_SOURCES += unilbrk/u8-width-linebreaks.c
+endif
 
 ## end   gnulib module unilbrk/u8-width-linebreaks
 
@@ -2893,26 +4125,41 @@ EXTRA_DIST += unilbrk/ulc-common.h
 
 ## begin gnulib module unilbrk/ulc-possible-linebreaks
 
+if LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS
 libunistring_la_SOURCES += unilbrk/ulc-possible-linebreaks.c
+endif
 
 ## end   gnulib module unilbrk/ulc-possible-linebreaks
 
 ## begin gnulib module unilbrk/ulc-width-linebreaks
 
+if LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS
 libunistring_la_SOURCES += unilbrk/ulc-width-linebreaks.c
+endif
 
 ## end   gnulib module unilbrk/ulc-width-linebreaks
 
 ## begin gnulib module uniname/base
 
+BUILT_SOURCES += $(LIBUNISTRING_UNINAME_H)
+
+uniname.h: uniname.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/uniname.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += uniname.h uniname.h-t
 
-EXTRA_DIST += uniname.h
+EXTRA_DIST += uniname.in.h
 
 ## end   gnulib module uniname/base
 
 ## begin gnulib module uniname/uniname
 
+if LIBUNISTRING_COMPILE_UNINAME_UNINAME
 libunistring_la_SOURCES += uniname/uniname.c
+endif
 
 EXTRA_DIST += uniname/gen-uninames.lisp uniname/uninames.h
 
@@ -2920,14 +4167,25 @@ EXTRA_DIST += uniname/gen-uninames.lisp uniname/uninames.h
 
 ## begin gnulib module uninorm/base
 
+BUILT_SOURCES += $(LIBUNISTRING_UNINORM_H)
 
-EXTRA_DIST += uninorm.h
+uninorm.h: uninorm.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/uninorm.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += uninorm.h uninorm.h-t
+
+EXTRA_DIST += uninorm.in.h
 
 ## end   gnulib module uninorm/base
 
 ## begin gnulib module uninorm/canonical-decomposition
 
+if LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION
 libunistring_la_SOURCES += uninorm/canonical-decomposition.c
+endif
 
 ## end   gnulib module uninorm/canonical-decomposition
 
@@ -2941,7 +4199,9 @@ EXTRA_DIST += uninorm/decompose-internal.h
 
 ## begin gnulib module uninorm/composition
 
+if LIBUNISTRING_COMPILE_UNINORM_COMPOSITION
 libunistring_la_SOURCES += uninorm/composition.c
+endif
 
 uninorm/composition-table.h: $(srcdir)/uninorm/composition-table.gperf
        $(GPERF) -m 1 $(srcdir)/uninorm/composition-table.gperf > $(srcdir)/uninorm/composition-table.h-t
@@ -2965,7 +4225,9 @@ EXTRA_DIST += uninorm/decompose-internal.h
 
 ## begin gnulib module uninorm/decomposing-form
 
+if LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM
 libunistring_la_SOURCES += uninorm/decomposing-form.c
+endif
 
 EXTRA_DIST += uninorm/normalize-internal.h
 
@@ -2973,7 +4235,9 @@ EXTRA_DIST += uninorm/normalize-internal.h
 
 ## begin gnulib module uninorm/decomposition
 
+if LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION
 libunistring_la_SOURCES += uninorm/decomposition.c
+endif
 
 ## end   gnulib module uninorm/decomposition
 
@@ -2987,7 +4251,9 @@ EXTRA_DIST += uninorm/decomposition-table.h uninorm/decomposition-table1.h unino
 
 ## begin gnulib module uninorm/filter
 
+if LIBUNISTRING_COMPILE_UNINORM_FILTER
 libunistring_la_SOURCES += uninorm/uninorm-filter.c
+endif
 
 EXTRA_DIST += uninorm/normalize-internal.h
 
@@ -2995,7 +4261,9 @@ EXTRA_DIST += uninorm/normalize-internal.h
 
 ## begin gnulib module uninorm/nfc
 
+if LIBUNISTRING_COMPILE_UNINORM_NFC
 libunistring_la_SOURCES += uninorm/nfc.c
+endif
 
 EXTRA_DIST += uninorm/normalize-internal.h
 
@@ -3003,7 +4271,9 @@ EXTRA_DIST += uninorm/normalize-internal.h
 
 ## begin gnulib module uninorm/nfd
 
+if LIBUNISTRING_COMPILE_UNINORM_NFD
 libunistring_la_SOURCES += uninorm/nfd.c
+endif
 
 EXTRA_DIST += uninorm/normalize-internal.h
 
@@ -3011,7 +4281,9 @@ EXTRA_DIST += uninorm/normalize-internal.h
 
 ## begin gnulib module uninorm/nfkc
 
+if LIBUNISTRING_COMPILE_UNINORM_NFKC
 libunistring_la_SOURCES += uninorm/nfkc.c
+endif
 
 EXTRA_DIST += uninorm/normalize-internal.h
 
@@ -3019,7 +4291,9 @@ EXTRA_DIST += uninorm/normalize-internal.h
 
 ## begin gnulib module uninorm/nfkd
 
+if LIBUNISTRING_COMPILE_UNINORM_NFKD
 libunistring_la_SOURCES += uninorm/nfkd.c
+endif
 
 EXTRA_DIST += uninorm/normalize-internal.h
 
@@ -3027,7 +4301,9 @@ EXTRA_DIST += uninorm/normalize-internal.h
 
 ## begin gnulib module uninorm/u16-normalize
 
+if LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE
 libunistring_la_SOURCES += uninorm/u16-normalize.c
+endif
 
 EXTRA_DIST += uninorm/normalize-internal.h uninorm/u-normalize-internal.h
 
@@ -3035,7 +4311,9 @@ EXTRA_DIST += uninorm/normalize-internal.h uninorm/u-normalize-internal.h
 
 ## begin gnulib module uninorm/u16-normcmp
 
+if LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP
 libunistring_la_SOURCES += uninorm/u16-normcmp.c
+endif
 
 EXTRA_DIST += uninorm/u-normcmp.h
 
@@ -3043,7 +4321,9 @@ EXTRA_DIST += uninorm/u-normcmp.h
 
 ## begin gnulib module uninorm/u16-normcoll
 
+if LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL
 libunistring_la_SOURCES += uninorm/u16-normcoll.c
+endif
 
 EXTRA_DIST += uninorm/u-normcoll.h
 
@@ -3051,7 +4331,9 @@ EXTRA_DIST += uninorm/u-normcoll.h
 
 ## begin gnulib module uninorm/u16-normxfrm
 
+if LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM
 libunistring_la_SOURCES += uninorm/u16-normxfrm.c
+endif
 
 EXTRA_DIST += uninorm/u-normxfrm.h
 
@@ -3059,7 +4341,9 @@ EXTRA_DIST += uninorm/u-normxfrm.h
 
 ## begin gnulib module uninorm/u32-normalize
 
+if LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE
 libunistring_la_SOURCES += uninorm/u32-normalize.c
+endif
 
 EXTRA_DIST += uninorm/normalize-internal.h uninorm/u-normalize-internal.h
 
@@ -3067,7 +4351,9 @@ EXTRA_DIST += uninorm/normalize-internal.h uninorm/u-normalize-internal.h
 
 ## begin gnulib module uninorm/u32-normcmp
 
+if LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP
 libunistring_la_SOURCES += uninorm/u32-normcmp.c
+endif
 
 EXTRA_DIST += uninorm/u-normcmp.h
 
@@ -3075,7 +4361,9 @@ EXTRA_DIST += uninorm/u-normcmp.h
 
 ## begin gnulib module uninorm/u32-normcoll
 
+if LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL
 libunistring_la_SOURCES += uninorm/u32-normcoll.c
+endif
 
 EXTRA_DIST += uninorm/u-normcoll.h
 
@@ -3083,7 +4371,9 @@ EXTRA_DIST += uninorm/u-normcoll.h
 
 ## begin gnulib module uninorm/u32-normxfrm
 
+if LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM
 libunistring_la_SOURCES += uninorm/u32-normxfrm.c
+endif
 
 EXTRA_DIST += uninorm/u-normxfrm.h
 
@@ -3091,7 +4381,9 @@ EXTRA_DIST += uninorm/u-normxfrm.h
 
 ## begin gnulib module uninorm/u8-normalize
 
+if LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE
 libunistring_la_SOURCES += uninorm/u8-normalize.c
+endif
 
 EXTRA_DIST += uninorm/normalize-internal.h uninorm/u-normalize-internal.h
 
@@ -3099,7 +4391,9 @@ EXTRA_DIST += uninorm/normalize-internal.h uninorm/u-normalize-internal.h
 
 ## begin gnulib module uninorm/u8-normcmp
 
+if LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP
 libunistring_la_SOURCES += uninorm/u8-normcmp.c
+endif
 
 EXTRA_DIST += uninorm/u-normcmp.h
 
@@ -3107,7 +4401,9 @@ EXTRA_DIST += uninorm/u-normcmp.h
 
 ## begin gnulib module uninorm/u8-normcoll
 
+if LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL
 libunistring_la_SOURCES += uninorm/u8-normcoll.c
+endif
 
 EXTRA_DIST += uninorm/u-normcoll.h
 
@@ -3115,7 +4411,9 @@ EXTRA_DIST += uninorm/u-normcoll.h
 
 ## begin gnulib module uninorm/u8-normxfrm
 
+if LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM
 libunistring_la_SOURCES += uninorm/u8-normxfrm.c
+endif
 
 EXTRA_DIST += uninorm/u-normxfrm.h
 
@@ -3124,55 +4422,69 @@ EXTRA_DIST += uninorm/u-normxfrm.h
 ## begin gnulib module unistd
 
 BUILT_SOURCES += unistd.h
+libunistring_la_SOURCES += unistd.c
 
 # We need the following in order to create an empty placeholder for
 # <unistd.h> when the system doesn't have one.
-unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
-             -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
-             -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \
-             -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
-             -e 's|@''GNULIB_DUP3''@|$(GNULIB_DUP3)|g' \
-             -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \
-             -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \
-             -e 's|@''GNULIB_FACCESSAT''@|$(GNULIB_FACCESSAT)|g' \
-             -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
-             -e 's|@''GNULIB_FCHOWNAT''@|$(GNULIB_FCHOWNAT)|g' \
-             -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \
-             -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
-             -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
-             -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \
-             -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \
-             -e 's|@''GNULIB_GETGROUPS''@|$(GNULIB_GETGROUPS)|g' \
-             -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \
-             -e 's|@''GNULIB_GETLOGIN''@|$(GNULIB_GETLOGIN)|g' \
-             -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
-             -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
-             -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \
-             -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
-             -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \
-             -e 's|@''GNULIB_LINKAT''@|$(GNULIB_LINKAT)|g' \
-             -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
-             -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \
-             -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \
-             -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
-             -e 's|@''GNULIB_READLINKAT''@|$(GNULIB_READLINKAT)|g' \
-             -e 's|@''GNULIB_RMDIR''@|$(GNULIB_RMDIR)|g' \
-             -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
-             -e 's|@''GNULIB_SYMLINK''@|$(GNULIB_SYMLINK)|g' \
-             -e 's|@''GNULIB_SYMLINKAT''@|$(GNULIB_SYMLINKAT)|g' \
-             -e 's|@''GNULIB_TTYNAME_R''@|$(GNULIB_TTYNAME_R)|g' \
-             -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \
-             -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
-             -e 's|@''GNULIB_UNLINK''@|$(GNULIB_UNLINK)|g' \
-             -e 's|@''GNULIB_UNLINKAT''@|$(GNULIB_UNLINKAT)|g' \
-             -e 's|@''GNULIB_USLEEP''@|$(GNULIB_USLEEP)|g' \
-             -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
+             -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
+             -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
+             -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
+             -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
+             -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \
+             -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \
+             -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \
+             -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \
+             -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \
+             -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \
+             -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \
+             -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \
+             -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \
+             -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \
+             -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \
+             -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \
+             -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \
+             -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \
+             -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \
+             -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \
+             -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \
+             -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \
+             -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \
+             -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \
+             -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
+             -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \
+             -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \
+             -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \
+             -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \
+             -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \
+             -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \
+             -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \
+             -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \
+             -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \
+             -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \
+             -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \
+             -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \
+             -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \
+             -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \
+             -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \
+             -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \
+             -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \
+             -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \
+             -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \
+             -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \
+             -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \
+             -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \
+             -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \
+             -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \
+             -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \
              < $(srcdir)/unistd.in.h | \
          sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
              -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
@@ -3181,46 +4493,62 @@ unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \
              -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \
              -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \
+             -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \
              -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
              -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
-             -e 's|@''HAVE_GETDOMAINNAME''@|$(HAVE_GETDOMAINNAME)|g' \
              -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
              -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \
              -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
              -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \
              -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+             -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \
              -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \
              -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
              -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \
+             -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \
              -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \
              -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \
+             -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \
              -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
              -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \
+             -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \
              -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
              -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \
              -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \
-             -e 's|@''HAVE_TTYNAME_R''@|$(HAVE_TTYNAME_R)|g' \
              -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \
              -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \
              -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
+             -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \
+             -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \
+             -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \
              -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
              -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
              -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
+             -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \
+             -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
              -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
              -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
-             -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+         | \
+         sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
              -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
              -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
              -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
              -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
+             -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
              -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+             -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
+             -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \
+             -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
              -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
              -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+             -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \
              -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
              -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
              -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \
              -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
              -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \
+             -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
+             -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
              -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
              -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \
              -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \
@@ -3245,8 +4573,17 @@ EXTRA_DIST += unistd.in.h
 
 ## begin gnulib module unistdio/base
 
+BUILT_SOURCES += $(LIBUNISTRING_UNISTDIO_H)
 
-EXTRA_DIST += unistdio.h
+unistdio.h: unistdio.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unistdio.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += unistdio.h unistdio.h-t
+
+EXTRA_DIST += unistdio.in.h
 
 ## end   gnulib module unistdio/base
 
@@ -3262,7 +4599,9 @@ EXTRA_libunistring_la_SOURCES += printf-args.c
 
 ## begin gnulib module unistdio/u16-asnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF
 libunistring_la_SOURCES += unistdio/u16-asnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asnprintf.h
 
@@ -3270,7 +4609,9 @@ EXTRA_DIST += unistdio/u-asnprintf.h
 
 ## begin gnulib module unistdio/u16-asprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF
 libunistring_la_SOURCES += unistdio/u16-asprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asprintf.h
 
@@ -3288,7 +4629,9 @@ EXTRA_libunistring_la_SOURCES += printf-parse.c
 
 ## begin gnulib module unistdio/u16-snprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF
 libunistring_la_SOURCES += unistdio/u16-snprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-snprintf.h
 
@@ -3296,7 +4639,9 @@ EXTRA_DIST += unistdio/u-snprintf.h
 
 ## begin gnulib module unistdio/u16-sprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF
 libunistring_la_SOURCES += unistdio/u16-sprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-sprintf.h
 
@@ -3304,7 +4649,9 @@ EXTRA_DIST += unistdio/u-sprintf.h
 
 ## begin gnulib module unistdio/u16-u16-asnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF
 libunistring_la_SOURCES += unistdio/u16-u16-asnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asnprintf.h
 
@@ -3312,7 +4659,9 @@ EXTRA_DIST += unistdio/u-asnprintf.h
 
 ## begin gnulib module unistdio/u16-u16-asprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF
 libunistring_la_SOURCES += unistdio/u16-u16-asprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asprintf.h
 
@@ -3320,7 +4669,9 @@ EXTRA_DIST += unistdio/u-asprintf.h
 
 ## begin gnulib module unistdio/u16-u16-snprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF
 libunistring_la_SOURCES += unistdio/u16-u16-snprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-snprintf.h
 
@@ -3328,7 +4679,9 @@ EXTRA_DIST += unistdio/u-snprintf.h
 
 ## begin gnulib module unistdio/u16-u16-sprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF
 libunistring_la_SOURCES += unistdio/u16-u16-sprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-sprintf.h
 
@@ -3336,7 +4689,9 @@ EXTRA_DIST += unistdio/u-sprintf.h
 
 ## begin gnulib module unistdio/u16-u16-vasnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF
 libunistring_la_SOURCES += unistdio/u16-u16-vasnprintf.c
+endif
 
 EXTRA_DIST += vasnprintf.c
 
@@ -3346,7 +4701,9 @@ EXTRA_libunistring_la_SOURCES += vasnprintf.c
 
 ## begin gnulib module unistdio/u16-u16-vasprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF
 libunistring_la_SOURCES += unistdio/u16-u16-vasprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vasprintf.h
 
@@ -3354,7 +4711,9 @@ EXTRA_DIST += unistdio/u-vasprintf.h
 
 ## begin gnulib module unistdio/u16-u16-vsnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF
 libunistring_la_SOURCES += unistdio/u16-u16-vsnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsnprintf.h
 
@@ -3362,7 +4721,9 @@ EXTRA_DIST += unistdio/u-vsnprintf.h
 
 ## begin gnulib module unistdio/u16-u16-vsprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF
 libunistring_la_SOURCES += unistdio/u16-u16-vsprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsprintf.h
 
@@ -3370,7 +4731,9 @@ EXTRA_DIST += unistdio/u-vsprintf.h
 
 ## begin gnulib module unistdio/u16-vasnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF
 libunistring_la_SOURCES += unistdio/u16-vasnprintf.c
+endif
 
 EXTRA_DIST += vasnprintf.c
 
@@ -3380,7 +4743,9 @@ EXTRA_libunistring_la_SOURCES += vasnprintf.c
 
 ## begin gnulib module unistdio/u16-vasprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF
 libunistring_la_SOURCES += unistdio/u16-vasprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vasprintf.h
 
@@ -3388,7 +4753,9 @@ EXTRA_DIST += unistdio/u-vasprintf.h
 
 ## begin gnulib module unistdio/u16-vsnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF
 libunistring_la_SOURCES += unistdio/u16-vsnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsnprintf.h
 
@@ -3396,7 +4763,9 @@ EXTRA_DIST += unistdio/u-vsnprintf.h
 
 ## begin gnulib module unistdio/u16-vsprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF
 libunistring_la_SOURCES += unistdio/u16-vsprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsprintf.h
 
@@ -3404,7 +4773,9 @@ EXTRA_DIST += unistdio/u-vsprintf.h
 
 ## begin gnulib module unistdio/u32-asnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF
 libunistring_la_SOURCES += unistdio/u32-asnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asnprintf.h
 
@@ -3412,7 +4783,9 @@ EXTRA_DIST += unistdio/u-asnprintf.h
 
 ## begin gnulib module unistdio/u32-asprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF
 libunistring_la_SOURCES += unistdio/u32-asprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asprintf.h
 
@@ -3430,7 +4803,9 @@ EXTRA_libunistring_la_SOURCES += printf-parse.c
 
 ## begin gnulib module unistdio/u32-snprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF
 libunistring_la_SOURCES += unistdio/u32-snprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-snprintf.h
 
@@ -3438,7 +4813,9 @@ EXTRA_DIST += unistdio/u-snprintf.h
 
 ## begin gnulib module unistdio/u32-sprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF
 libunistring_la_SOURCES += unistdio/u32-sprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-sprintf.h
 
@@ -3446,7 +4823,9 @@ EXTRA_DIST += unistdio/u-sprintf.h
 
 ## begin gnulib module unistdio/u32-u32-asnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF
 libunistring_la_SOURCES += unistdio/u32-u32-asnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asnprintf.h
 
@@ -3454,7 +4833,9 @@ EXTRA_DIST += unistdio/u-asnprintf.h
 
 ## begin gnulib module unistdio/u32-u32-asprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF
 libunistring_la_SOURCES += unistdio/u32-u32-asprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asprintf.h
 
@@ -3462,7 +4843,9 @@ EXTRA_DIST += unistdio/u-asprintf.h
 
 ## begin gnulib module unistdio/u32-u32-snprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF
 libunistring_la_SOURCES += unistdio/u32-u32-snprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-snprintf.h
 
@@ -3470,7 +4853,9 @@ EXTRA_DIST += unistdio/u-snprintf.h
 
 ## begin gnulib module unistdio/u32-u32-sprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF
 libunistring_la_SOURCES += unistdio/u32-u32-sprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-sprintf.h
 
@@ -3478,7 +4863,9 @@ EXTRA_DIST += unistdio/u-sprintf.h
 
 ## begin gnulib module unistdio/u32-u32-vasnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF
 libunistring_la_SOURCES += unistdio/u32-u32-vasnprintf.c
+endif
 
 EXTRA_DIST += vasnprintf.c
 
@@ -3488,7 +4875,9 @@ EXTRA_libunistring_la_SOURCES += vasnprintf.c
 
 ## begin gnulib module unistdio/u32-u32-vasprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF
 libunistring_la_SOURCES += unistdio/u32-u32-vasprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vasprintf.h
 
@@ -3496,7 +4885,9 @@ EXTRA_DIST += unistdio/u-vasprintf.h
 
 ## begin gnulib module unistdio/u32-u32-vsnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF
 libunistring_la_SOURCES += unistdio/u32-u32-vsnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsnprintf.h
 
@@ -3504,7 +4895,9 @@ EXTRA_DIST += unistdio/u-vsnprintf.h
 
 ## begin gnulib module unistdio/u32-u32-vsprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF
 libunistring_la_SOURCES += unistdio/u32-u32-vsprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsprintf.h
 
@@ -3512,7 +4905,9 @@ EXTRA_DIST += unistdio/u-vsprintf.h
 
 ## begin gnulib module unistdio/u32-vasnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF
 libunistring_la_SOURCES += unistdio/u32-vasnprintf.c
+endif
 
 EXTRA_DIST += vasnprintf.c
 
@@ -3522,7 +4917,9 @@ EXTRA_libunistring_la_SOURCES += vasnprintf.c
 
 ## begin gnulib module unistdio/u32-vasprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF
 libunistring_la_SOURCES += unistdio/u32-vasprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vasprintf.h
 
@@ -3530,7 +4927,9 @@ EXTRA_DIST += unistdio/u-vasprintf.h
 
 ## begin gnulib module unistdio/u32-vsnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF
 libunistring_la_SOURCES += unistdio/u32-vsnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsnprintf.h
 
@@ -3538,7 +4937,9 @@ EXTRA_DIST += unistdio/u-vsnprintf.h
 
 ## begin gnulib module unistdio/u32-vsprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF
 libunistring_la_SOURCES += unistdio/u32-vsprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsprintf.h
 
@@ -3546,7 +4947,9 @@ EXTRA_DIST += unistdio/u-vsprintf.h
 
 ## begin gnulib module unistdio/u8-asnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF
 libunistring_la_SOURCES += unistdio/u8-asnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asnprintf.h
 
@@ -3554,7 +4957,9 @@ EXTRA_DIST += unistdio/u-asnprintf.h
 
 ## begin gnulib module unistdio/u8-asprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF
 libunistring_la_SOURCES += unistdio/u8-asprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asprintf.h
 
@@ -3572,7 +4977,9 @@ EXTRA_libunistring_la_SOURCES += printf-parse.c
 
 ## begin gnulib module unistdio/u8-snprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF
 libunistring_la_SOURCES += unistdio/u8-snprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-snprintf.h
 
@@ -3580,7 +4987,9 @@ EXTRA_DIST += unistdio/u-snprintf.h
 
 ## begin gnulib module unistdio/u8-sprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF
 libunistring_la_SOURCES += unistdio/u8-sprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-sprintf.h
 
@@ -3588,7 +4997,9 @@ EXTRA_DIST += unistdio/u-sprintf.h
 
 ## begin gnulib module unistdio/u8-u8-asnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF
 libunistring_la_SOURCES += unistdio/u8-u8-asnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asnprintf.h
 
@@ -3596,7 +5007,9 @@ EXTRA_DIST += unistdio/u-asnprintf.h
 
 ## begin gnulib module unistdio/u8-u8-asprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF
 libunistring_la_SOURCES += unistdio/u8-u8-asprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asprintf.h
 
@@ -3604,7 +5017,9 @@ EXTRA_DIST += unistdio/u-asprintf.h
 
 ## begin gnulib module unistdio/u8-u8-snprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF
 libunistring_la_SOURCES += unistdio/u8-u8-snprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-snprintf.h
 
@@ -3612,7 +5027,9 @@ EXTRA_DIST += unistdio/u-snprintf.h
 
 ## begin gnulib module unistdio/u8-u8-sprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF
 libunistring_la_SOURCES += unistdio/u8-u8-sprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-sprintf.h
 
@@ -3620,7 +5037,9 @@ EXTRA_DIST += unistdio/u-sprintf.h
 
 ## begin gnulib module unistdio/u8-u8-vasnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF
 libunistring_la_SOURCES += unistdio/u8-u8-vasnprintf.c
+endif
 
 EXTRA_DIST += vasnprintf.c
 
@@ -3630,7 +5049,9 @@ EXTRA_libunistring_la_SOURCES += vasnprintf.c
 
 ## begin gnulib module unistdio/u8-u8-vasprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF
 libunistring_la_SOURCES += unistdio/u8-u8-vasprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vasprintf.h
 
@@ -3638,7 +5059,9 @@ EXTRA_DIST += unistdio/u-vasprintf.h
 
 ## begin gnulib module unistdio/u8-u8-vsnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF
 libunistring_la_SOURCES += unistdio/u8-u8-vsnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsnprintf.h
 
@@ -3646,7 +5069,9 @@ EXTRA_DIST += unistdio/u-vsnprintf.h
 
 ## begin gnulib module unistdio/u8-u8-vsprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF
 libunistring_la_SOURCES += unistdio/u8-u8-vsprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsprintf.h
 
@@ -3654,7 +5079,9 @@ EXTRA_DIST += unistdio/u-vsprintf.h
 
 ## begin gnulib module unistdio/u8-vasnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF
 libunistring_la_SOURCES += unistdio/u8-vasnprintf.c
+endif
 
 EXTRA_DIST += vasnprintf.c
 
@@ -3664,7 +5091,9 @@ EXTRA_libunistring_la_SOURCES += vasnprintf.c
 
 ## begin gnulib module unistdio/u8-vasprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF
 libunistring_la_SOURCES += unistdio/u8-vasprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vasprintf.h
 
@@ -3672,7 +5101,9 @@ EXTRA_DIST += unistdio/u-vasprintf.h
 
 ## begin gnulib module unistdio/u8-vsnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF
 libunistring_la_SOURCES += unistdio/u8-vsnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsnprintf.h
 
@@ -3680,7 +5111,9 @@ EXTRA_DIST += unistdio/u-vsnprintf.h
 
 ## begin gnulib module unistdio/u8-vsprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF
 libunistring_la_SOURCES += unistdio/u8-vsprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsprintf.h
 
@@ -3688,7 +5121,9 @@ EXTRA_DIST += unistdio/u-vsprintf.h
 
 ## begin gnulib module unistdio/ulc-asnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF
 libunistring_la_SOURCES += unistdio/ulc-asnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asnprintf.h
 
@@ -3696,7 +5131,9 @@ EXTRA_DIST += unistdio/u-asnprintf.h
 
 ## begin gnulib module unistdio/ulc-asprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF
 libunistring_la_SOURCES += unistdio/ulc-asprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-asprintf.h
 
@@ -3704,7 +5141,9 @@ EXTRA_DIST += unistdio/u-asprintf.h
 
 ## begin gnulib module unistdio/ulc-fprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF
 libunistring_la_SOURCES += unistdio/ulc-fprintf.c
+endif
 
 ## end   gnulib module unistdio/ulc-fprintf
 
@@ -3720,7 +5159,9 @@ EXTRA_libunistring_la_SOURCES += printf-parse.c
 
 ## begin gnulib module unistdio/ulc-snprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF
 libunistring_la_SOURCES += unistdio/ulc-snprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-snprintf.h
 
@@ -3728,7 +5169,9 @@ EXTRA_DIST += unistdio/u-snprintf.h
 
 ## begin gnulib module unistdio/ulc-sprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF
 libunistring_la_SOURCES += unistdio/ulc-sprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-sprintf.h
 
@@ -3736,7 +5179,9 @@ EXTRA_DIST += unistdio/u-sprintf.h
 
 ## begin gnulib module unistdio/ulc-vasnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF
 libunistring_la_SOURCES += unistdio/ulc-vasnprintf.c
+endif
 
 EXTRA_DIST += vasnprintf.c
 
@@ -3746,7 +5191,9 @@ EXTRA_libunistring_la_SOURCES += vasnprintf.c
 
 ## begin gnulib module unistdio/ulc-vasprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF
 libunistring_la_SOURCES += unistdio/ulc-vasprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vasprintf.h
 
@@ -3754,13 +5201,17 @@ EXTRA_DIST += unistdio/u-vasprintf.h
 
 ## begin gnulib module unistdio/ulc-vfprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF
 libunistring_la_SOURCES += unistdio/ulc-vfprintf.c
+endif
 
 ## end   gnulib module unistdio/ulc-vfprintf
 
 ## begin gnulib module unistdio/ulc-vsnprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF
 libunistring_la_SOURCES += unistdio/ulc-vsnprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsnprintf.h
 
@@ -3768,7 +5219,9 @@ EXTRA_DIST += unistdio/u-vsnprintf.h
 
 ## begin gnulib module unistdio/ulc-vsprintf
 
+if LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF
 libunistring_la_SOURCES += unistdio/ulc-vsprintf.c
+endif
 
 EXTRA_DIST += unistdio/u-vsprintf.h
 
@@ -3776,32 +5229,49 @@ EXTRA_DIST += unistdio/u-vsprintf.h
 
 ## begin gnulib module unistr/base
 
+BUILT_SOURCES += $(LIBUNISTRING_UNISTR_H)
+
+unistr.h: unistr.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unistr.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += unistr.h unistr.h-t
 
-EXTRA_DIST += unistr.h
+EXTRA_DIST += unistr.in.h
 
 ## end   gnulib module unistr/base
 
 ## begin gnulib module unistr/u16-check
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_CHECK
 libunistring_la_SOURCES += unistr/u16-check.c
+endif
 
 ## end   gnulib module unistr/u16-check
 
 ## begin gnulib module unistr/u16-chr
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_CHR
 libunistring_la_SOURCES += unistr/u16-chr.c
+endif
 
 ## end   gnulib module unistr/u16-chr
 
 ## begin gnulib module unistr/u16-cmp
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_CMP
 libunistring_la_SOURCES += unistr/u16-cmp.c
+endif
 
 ## end   gnulib module unistr/u16-cmp
 
 ## begin gnulib module unistr/u16-cmp2
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_CMP2
 libunistring_la_SOURCES += unistr/u16-cmp2.c
+endif
 
 EXTRA_DIST += unistr/u-cmp2.h
 
@@ -3809,7 +5279,9 @@ EXTRA_DIST += unistr/u-cmp2.h
 
 ## begin gnulib module unistr/u16-cpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_CPY
 libunistring_la_SOURCES += unistr/u16-cpy.c
+endif
 
 EXTRA_DIST += unistr/u-cpy.h
 
@@ -3817,7 +5289,9 @@ EXTRA_DIST += unistr/u-cpy.h
 
 ## begin gnulib module unistr/u16-cpy-alloc
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC
 libunistring_la_SOURCES += unistr/u16-cpy-alloc.c
+endif
 
 EXTRA_DIST += unistr/u-cpy-alloc.h
 
@@ -3825,7 +5299,9 @@ EXTRA_DIST += unistr/u-cpy-alloc.h
 
 ## begin gnulib module unistr/u16-endswith
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH
 libunistring_la_SOURCES += unistr/u16-endswith.c
+endif
 
 EXTRA_DIST += unistr/u-endswith.h
 
@@ -3833,37 +5309,49 @@ EXTRA_DIST += unistr/u-endswith.h
 
 ## begin gnulib module unistr/u16-mblen
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN
 libunistring_la_SOURCES += unistr/u16-mblen.c
+endif
 
 ## end   gnulib module unistr/u16-mblen
 
 ## begin gnulib module unistr/u16-mbsnlen
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN
 libunistring_la_SOURCES += unistr/u16-mbsnlen.c
+endif
 
 ## end   gnulib module unistr/u16-mbsnlen
 
 ## begin gnulib module unistr/u16-mbtouc
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC
 libunistring_la_SOURCES += unistr/u16-mbtouc.c unistr/u16-mbtouc-aux.c
+endif
 
 ## end   gnulib module unistr/u16-mbtouc
 
 ## begin gnulib module unistr/u16-mbtouc-unsafe
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE
 libunistring_la_SOURCES += unistr/u16-mbtouc-unsafe.c unistr/u16-mbtouc-unsafe-aux.c
+endif
 
 ## end   gnulib module unistr/u16-mbtouc-unsafe
 
 ## begin gnulib module unistr/u16-mbtoucr
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR
 libunistring_la_SOURCES += unistr/u16-mbtoucr.c
+endif
 
 ## end   gnulib module unistr/u16-mbtoucr
 
 ## begin gnulib module unistr/u16-move
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_MOVE
 libunistring_la_SOURCES += unistr/u16-move.c
+endif
 
 EXTRA_DIST += unistr/u-move.h
 
@@ -3871,19 +5359,25 @@ EXTRA_DIST += unistr/u-move.h
 
 ## begin gnulib module unistr/u16-next
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_NEXT
 libunistring_la_SOURCES += unistr/u16-next.c
+endif
 
 ## end   gnulib module unistr/u16-next
 
 ## begin gnulib module unistr/u16-prev
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_PREV
 libunistring_la_SOURCES += unistr/u16-prev.c
+endif
 
 ## end   gnulib module unistr/u16-prev
 
 ## begin gnulib module unistr/u16-set
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_SET
 libunistring_la_SOURCES += unistr/u16-set.c
+endif
 
 EXTRA_DIST += unistr/u-set.h
 
@@ -3891,7 +5385,9 @@ EXTRA_DIST += unistr/u-set.h
 
 ## begin gnulib module unistr/u16-startswith
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH
 libunistring_la_SOURCES += unistr/u16-startswith.c
+endif
 
 EXTRA_DIST += unistr/u-startswith.h
 
@@ -3899,7 +5395,9 @@ EXTRA_DIST += unistr/u-startswith.h
 
 ## begin gnulib module unistr/u16-stpcpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY
 libunistring_la_SOURCES += unistr/u16-stpcpy.c
+endif
 
 EXTRA_DIST += unistr/u-stpcpy.h
 
@@ -3907,7 +5405,9 @@ EXTRA_DIST += unistr/u-stpcpy.h
 
 ## begin gnulib module unistr/u16-stpncpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY
 libunistring_la_SOURCES += unistr/u16-stpncpy.c
+endif
 
 EXTRA_DIST += unistr/u-stpncpy.h
 
@@ -3915,7 +5415,9 @@ EXTRA_DIST += unistr/u-stpncpy.h
 
 ## begin gnulib module unistr/u16-strcat
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT
 libunistring_la_SOURCES += unistr/u16-strcat.c
+endif
 
 EXTRA_DIST += unistr/u-strcat.h
 
@@ -3923,19 +5425,25 @@ EXTRA_DIST += unistr/u-strcat.h
 
 ## begin gnulib module unistr/u16-strchr
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR
 libunistring_la_SOURCES += unistr/u16-strchr.c
+endif
 
 ## end   gnulib module unistr/u16-strchr
 
 ## begin gnulib module unistr/u16-strcmp
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP
 libunistring_la_SOURCES += unistr/u16-strcmp.c
+endif
 
 ## end   gnulib module unistr/u16-strcmp
 
 ## begin gnulib module unistr/u16-strcoll
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL
 libunistring_la_SOURCES += unistr/u16-strcoll.c
+endif
 
 EXTRA_DIST += unistr/u-strcoll.h
 
@@ -3943,7 +5451,9 @@ EXTRA_DIST += unistr/u-strcoll.h
 
 ## begin gnulib module unistr/u16-strcpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY
 libunistring_la_SOURCES += unistr/u16-strcpy.c
+endif
 
 EXTRA_DIST += unistr/u-strcpy.h
 
@@ -3951,7 +5461,9 @@ EXTRA_DIST += unistr/u-strcpy.h
 
 ## begin gnulib module unistr/u16-strcspn
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN
 libunistring_la_SOURCES += unistr/u16-strcspn.c
+endif
 
 EXTRA_DIST += unistr/u-strcspn.h
 
@@ -3959,7 +5471,9 @@ EXTRA_DIST += unistr/u-strcspn.h
 
 ## begin gnulib module unistr/u16-strdup
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP
 libunistring_la_SOURCES += unistr/u16-strdup.c
+endif
 
 EXTRA_DIST += unistr/u-strdup.h
 
@@ -3967,7 +5481,9 @@ EXTRA_DIST += unistr/u-strdup.h
 
 ## begin gnulib module unistr/u16-strlen
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN
 libunistring_la_SOURCES += unistr/u16-strlen.c
+endif
 
 EXTRA_DIST += unistr/u-strlen.h
 
@@ -3975,19 +5491,25 @@ EXTRA_DIST += unistr/u-strlen.h
 
 ## begin gnulib module unistr/u16-strmblen
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN
 libunistring_la_SOURCES += unistr/u16-strmblen.c
+endif
 
 ## end   gnulib module unistr/u16-strmblen
 
 ## begin gnulib module unistr/u16-strmbtouc
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC
 libunistring_la_SOURCES += unistr/u16-strmbtouc.c
+endif
 
 ## end   gnulib module unistr/u16-strmbtouc
 
 ## begin gnulib module unistr/u16-strncat
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT
 libunistring_la_SOURCES += unistr/u16-strncat.c
+endif
 
 EXTRA_DIST += unistr/u-strncat.h
 
@@ -3995,13 +5517,17 @@ EXTRA_DIST += unistr/u-strncat.h
 
 ## begin gnulib module unistr/u16-strncmp
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP
 libunistring_la_SOURCES += unistr/u16-strncmp.c
+endif
 
 ## end   gnulib module unistr/u16-strncmp
 
 ## begin gnulib module unistr/u16-strncpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY
 libunistring_la_SOURCES += unistr/u16-strncpy.c
+endif
 
 EXTRA_DIST += unistr/u-strncpy.h
 
@@ -4009,7 +5535,9 @@ EXTRA_DIST += unistr/u-strncpy.h
 
 ## begin gnulib module unistr/u16-strnlen
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN
 libunistring_la_SOURCES += unistr/u16-strnlen.c
+endif
 
 EXTRA_DIST += unistr/u-strnlen.h
 
@@ -4017,7 +5545,9 @@ EXTRA_DIST += unistr/u-strnlen.h
 
 ## begin gnulib module unistr/u16-strpbrk
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK
 libunistring_la_SOURCES += unistr/u16-strpbrk.c
+endif
 
 EXTRA_DIST += unistr/u-strpbrk.h
 
@@ -4025,13 +5555,17 @@ EXTRA_DIST += unistr/u-strpbrk.h
 
 ## begin gnulib module unistr/u16-strrchr
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR
 libunistring_la_SOURCES += unistr/u16-strrchr.c
+endif
 
 ## end   gnulib module unistr/u16-strrchr
 
 ## begin gnulib module unistr/u16-strspn
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN
 libunistring_la_SOURCES += unistr/u16-strspn.c
+endif
 
 EXTRA_DIST += unistr/u-strspn.h
 
@@ -4039,15 +5573,19 @@ EXTRA_DIST += unistr/u-strspn.h
 
 ## begin gnulib module unistr/u16-strstr
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR
 libunistring_la_SOURCES += unistr/u16-strstr.c
+endif
 
-EXTRA_DIST += unistr/u-strstr.h
+EXTRA_DIST += str-kmp.h unistr/u-strstr.h
 
 ## end   gnulib module unistr/u16-strstr
 
 ## begin gnulib module unistr/u16-strtok
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK
 libunistring_la_SOURCES += unistr/u16-strtok.c
+endif
 
 EXTRA_DIST += unistr/u-strtok.h
 
@@ -4055,43 +5593,57 @@ EXTRA_DIST += unistr/u-strtok.h
 
 ## begin gnulib module unistr/u16-to-u32
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32
 libunistring_la_SOURCES += unistr/u16-to-u32.c
+endif
 
 ## end   gnulib module unistr/u16-to-u32
 
 ## begin gnulib module unistr/u16-to-u8
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8
 libunistring_la_SOURCES += unistr/u16-to-u8.c
+endif
 
 ## end   gnulib module unistr/u16-to-u8
 
 ## begin gnulib module unistr/u16-uctomb
 
+if LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB
 libunistring_la_SOURCES += unistr/u16-uctomb.c unistr/u16-uctomb-aux.c
+endif
 
 ## end   gnulib module unistr/u16-uctomb
 
 ## begin gnulib module unistr/u32-check
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_CHECK
 libunistring_la_SOURCES += unistr/u32-check.c
+endif
 
 ## end   gnulib module unistr/u32-check
 
 ## begin gnulib module unistr/u32-chr
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_CHR
 libunistring_la_SOURCES += unistr/u32-chr.c
+endif
 
 ## end   gnulib module unistr/u32-chr
 
 ## begin gnulib module unistr/u32-cmp
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_CMP
 libunistring_la_SOURCES += unistr/u32-cmp.c
+endif
 
 ## end   gnulib module unistr/u32-cmp
 
 ## begin gnulib module unistr/u32-cmp2
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_CMP2
 libunistring_la_SOURCES += unistr/u32-cmp2.c
+endif
 
 EXTRA_DIST += unistr/u-cmp2.h
 
@@ -4099,7 +5651,9 @@ EXTRA_DIST += unistr/u-cmp2.h
 
 ## begin gnulib module unistr/u32-cpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_CPY
 libunistring_la_SOURCES += unistr/u32-cpy.c
+endif
 
 EXTRA_DIST += unistr/u-cpy.h
 
@@ -4107,7 +5661,9 @@ EXTRA_DIST += unistr/u-cpy.h
 
 ## begin gnulib module unistr/u32-cpy-alloc
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC
 libunistring_la_SOURCES += unistr/u32-cpy-alloc.c
+endif
 
 EXTRA_DIST += unistr/u-cpy-alloc.h
 
@@ -4115,7 +5671,9 @@ EXTRA_DIST += unistr/u-cpy-alloc.h
 
 ## begin gnulib module unistr/u32-endswith
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH
 libunistring_la_SOURCES += unistr/u32-endswith.c
+endif
 
 EXTRA_DIST += unistr/u-endswith.h
 
@@ -4123,37 +5681,49 @@ EXTRA_DIST += unistr/u-endswith.h
 
 ## begin gnulib module unistr/u32-mblen
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN
 libunistring_la_SOURCES += unistr/u32-mblen.c
+endif
 
 ## end   gnulib module unistr/u32-mblen
 
 ## begin gnulib module unistr/u32-mbsnlen
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN
 libunistring_la_SOURCES += unistr/u32-mbsnlen.c
+endif
 
 ## end   gnulib module unistr/u32-mbsnlen
 
 ## begin gnulib module unistr/u32-mbtouc
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC
 libunistring_la_SOURCES += unistr/u32-mbtouc.c
+endif
 
 ## end   gnulib module unistr/u32-mbtouc
 
 ## begin gnulib module unistr/u32-mbtouc-unsafe
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE
 libunistring_la_SOURCES += unistr/u32-mbtouc-unsafe.c
+endif
 
 ## end   gnulib module unistr/u32-mbtouc-unsafe
 
 ## begin gnulib module unistr/u32-mbtoucr
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR
 libunistring_la_SOURCES += unistr/u32-mbtoucr.c
+endif
 
 ## end   gnulib module unistr/u32-mbtoucr
 
 ## begin gnulib module unistr/u32-move
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_MOVE
 libunistring_la_SOURCES += unistr/u32-move.c
+endif
 
 EXTRA_DIST += unistr/u-move.h
 
@@ -4161,19 +5731,25 @@ EXTRA_DIST += unistr/u-move.h
 
 ## begin gnulib module unistr/u32-next
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_NEXT
 libunistring_la_SOURCES += unistr/u32-next.c
+endif
 
 ## end   gnulib module unistr/u32-next
 
 ## begin gnulib module unistr/u32-prev
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_PREV
 libunistring_la_SOURCES += unistr/u32-prev.c
+endif
 
 ## end   gnulib module unistr/u32-prev
 
 ## begin gnulib module unistr/u32-set
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_SET
 libunistring_la_SOURCES += unistr/u32-set.c
+endif
 
 EXTRA_DIST += unistr/u-set.h
 
@@ -4181,7 +5757,9 @@ EXTRA_DIST += unistr/u-set.h
 
 ## begin gnulib module unistr/u32-startswith
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH
 libunistring_la_SOURCES += unistr/u32-startswith.c
+endif
 
 EXTRA_DIST += unistr/u-startswith.h
 
@@ -4189,7 +5767,9 @@ EXTRA_DIST += unistr/u-startswith.h
 
 ## begin gnulib module unistr/u32-stpcpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY
 libunistring_la_SOURCES += unistr/u32-stpcpy.c
+endif
 
 EXTRA_DIST += unistr/u-stpcpy.h
 
@@ -4197,7 +5777,9 @@ EXTRA_DIST += unistr/u-stpcpy.h
 
 ## begin gnulib module unistr/u32-stpncpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY
 libunistring_la_SOURCES += unistr/u32-stpncpy.c
+endif
 
 EXTRA_DIST += unistr/u-stpncpy.h
 
@@ -4205,7 +5787,9 @@ EXTRA_DIST += unistr/u-stpncpy.h
 
 ## begin gnulib module unistr/u32-strcat
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT
 libunistring_la_SOURCES += unistr/u32-strcat.c
+endif
 
 EXTRA_DIST += unistr/u-strcat.h
 
@@ -4213,19 +5797,25 @@ EXTRA_DIST += unistr/u-strcat.h
 
 ## begin gnulib module unistr/u32-strchr
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR
 libunistring_la_SOURCES += unistr/u32-strchr.c
+endif
 
 ## end   gnulib module unistr/u32-strchr
 
 ## begin gnulib module unistr/u32-strcmp
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP
 libunistring_la_SOURCES += unistr/u32-strcmp.c
+endif
 
 ## end   gnulib module unistr/u32-strcmp
 
 ## begin gnulib module unistr/u32-strcoll
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL
 libunistring_la_SOURCES += unistr/u32-strcoll.c
+endif
 
 EXTRA_DIST += unistr/u-strcoll.h
 
@@ -4233,7 +5823,9 @@ EXTRA_DIST += unistr/u-strcoll.h
 
 ## begin gnulib module unistr/u32-strcpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY
 libunistring_la_SOURCES += unistr/u32-strcpy.c
+endif
 
 EXTRA_DIST += unistr/u-strcpy.h
 
@@ -4241,13 +5833,17 @@ EXTRA_DIST += unistr/u-strcpy.h
 
 ## begin gnulib module unistr/u32-strcspn
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN
 libunistring_la_SOURCES += unistr/u32-strcspn.c
+endif
 
 ## end   gnulib module unistr/u32-strcspn
 
 ## begin gnulib module unistr/u32-strdup
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP
 libunistring_la_SOURCES += unistr/u32-strdup.c
+endif
 
 EXTRA_DIST += unistr/u-strdup.h
 
@@ -4255,7 +5851,9 @@ EXTRA_DIST += unistr/u-strdup.h
 
 ## begin gnulib module unistr/u32-strlen
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN
 libunistring_la_SOURCES += unistr/u32-strlen.c
+endif
 
 EXTRA_DIST += unistr/u-strlen.h
 
@@ -4263,19 +5861,25 @@ EXTRA_DIST += unistr/u-strlen.h
 
 ## begin gnulib module unistr/u32-strmblen
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN
 libunistring_la_SOURCES += unistr/u32-strmblen.c
+endif
 
 ## end   gnulib module unistr/u32-strmblen
 
 ## begin gnulib module unistr/u32-strmbtouc
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC
 libunistring_la_SOURCES += unistr/u32-strmbtouc.c
+endif
 
 ## end   gnulib module unistr/u32-strmbtouc
 
 ## begin gnulib module unistr/u32-strncat
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT
 libunistring_la_SOURCES += unistr/u32-strncat.c
+endif
 
 EXTRA_DIST += unistr/u-strncat.h
 
@@ -4283,13 +5887,17 @@ EXTRA_DIST += unistr/u-strncat.h
 
 ## begin gnulib module unistr/u32-strncmp
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP
 libunistring_la_SOURCES += unistr/u32-strncmp.c
+endif
 
 ## end   gnulib module unistr/u32-strncmp
 
 ## begin gnulib module unistr/u32-strncpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY
 libunistring_la_SOURCES += unistr/u32-strncpy.c
+endif
 
 EXTRA_DIST += unistr/u-strncpy.h
 
@@ -4297,7 +5905,9 @@ EXTRA_DIST += unistr/u-strncpy.h
 
 ## begin gnulib module unistr/u32-strnlen
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN
 libunistring_la_SOURCES += unistr/u32-strnlen.c
+endif
 
 EXTRA_DIST += unistr/u-strnlen.h
 
@@ -4305,33 +5915,43 @@ EXTRA_DIST += unistr/u-strnlen.h
 
 ## begin gnulib module unistr/u32-strpbrk
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK
 libunistring_la_SOURCES += unistr/u32-strpbrk.c
+endif
 
 ## end   gnulib module unistr/u32-strpbrk
 
 ## begin gnulib module unistr/u32-strrchr
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR
 libunistring_la_SOURCES += unistr/u32-strrchr.c
+endif
 
 ## end   gnulib module unistr/u32-strrchr
 
 ## begin gnulib module unistr/u32-strspn
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN
 libunistring_la_SOURCES += unistr/u32-strspn.c
+endif
 
 ## end   gnulib module unistr/u32-strspn
 
 ## begin gnulib module unistr/u32-strstr
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR
 libunistring_la_SOURCES += unistr/u32-strstr.c
+endif
 
-EXTRA_DIST += unistr/u-strstr.h
+EXTRA_DIST += str-kmp.h unistr/u-strstr.h
 
 ## end   gnulib module unistr/u32-strstr
 
 ## begin gnulib module unistr/u32-strtok
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK
 libunistring_la_SOURCES += unistr/u32-strtok.c
+endif
 
 EXTRA_DIST += unistr/u-strtok.h
 
@@ -4339,43 +5959,57 @@ EXTRA_DIST += unistr/u-strtok.h
 
 ## begin gnulib module unistr/u32-to-u16
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16
 libunistring_la_SOURCES += unistr/u32-to-u16.c
+endif
 
 ## end   gnulib module unistr/u32-to-u16
 
 ## begin gnulib module unistr/u32-to-u8
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8
 libunistring_la_SOURCES += unistr/u32-to-u8.c
+endif
 
 ## end   gnulib module unistr/u32-to-u8
 
 ## begin gnulib module unistr/u32-uctomb
 
+if LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB
 libunistring_la_SOURCES += unistr/u32-uctomb.c
+endif
 
 ## end   gnulib module unistr/u32-uctomb
 
 ## begin gnulib module unistr/u8-check
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_CHECK
 libunistring_la_SOURCES += unistr/u8-check.c
+endif
 
 ## end   gnulib module unistr/u8-check
 
 ## begin gnulib module unistr/u8-chr
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_CHR
 libunistring_la_SOURCES += unistr/u8-chr.c
+endif
 
 ## end   gnulib module unistr/u8-chr
 
 ## begin gnulib module unistr/u8-cmp
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_CMP
 libunistring_la_SOURCES += unistr/u8-cmp.c
+endif
 
 ## end   gnulib module unistr/u8-cmp
 
 ## begin gnulib module unistr/u8-cmp2
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_CMP2
 libunistring_la_SOURCES += unistr/u8-cmp2.c
+endif
 
 EXTRA_DIST += unistr/u-cmp2.h
 
@@ -4383,7 +6017,9 @@ EXTRA_DIST += unistr/u-cmp2.h
 
 ## begin gnulib module unistr/u8-cpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_CPY
 libunistring_la_SOURCES += unistr/u8-cpy.c
+endif
 
 EXTRA_DIST += unistr/u-cpy.h
 
@@ -4391,7 +6027,9 @@ EXTRA_DIST += unistr/u-cpy.h
 
 ## begin gnulib module unistr/u8-cpy-alloc
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC
 libunistring_la_SOURCES += unistr/u8-cpy-alloc.c
+endif
 
 EXTRA_DIST += unistr/u-cpy-alloc.h
 
@@ -4399,7 +6037,9 @@ EXTRA_DIST += unistr/u-cpy-alloc.h
 
 ## begin gnulib module unistr/u8-endswith
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH
 libunistring_la_SOURCES += unistr/u8-endswith.c
+endif
 
 EXTRA_DIST += unistr/u-endswith.h
 
@@ -4407,37 +6047,49 @@ EXTRA_DIST += unistr/u-endswith.h
 
 ## begin gnulib module unistr/u8-mblen
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN
 libunistring_la_SOURCES += unistr/u8-mblen.c
+endif
 
 ## end   gnulib module unistr/u8-mblen
 
 ## begin gnulib module unistr/u8-mbsnlen
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN
 libunistring_la_SOURCES += unistr/u8-mbsnlen.c
+endif
 
 ## end   gnulib module unistr/u8-mbsnlen
 
 ## begin gnulib module unistr/u8-mbtouc
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC
 libunistring_la_SOURCES += unistr/u8-mbtouc.c unistr/u8-mbtouc-aux.c
+endif
 
 ## end   gnulib module unistr/u8-mbtouc
 
 ## begin gnulib module unistr/u8-mbtouc-unsafe
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE
 libunistring_la_SOURCES += unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc-unsafe-aux.c
+endif
 
 ## end   gnulib module unistr/u8-mbtouc-unsafe
 
 ## begin gnulib module unistr/u8-mbtoucr
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR
 libunistring_la_SOURCES += unistr/u8-mbtoucr.c
+endif
 
 ## end   gnulib module unistr/u8-mbtoucr
 
 ## begin gnulib module unistr/u8-move
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_MOVE
 libunistring_la_SOURCES += unistr/u8-move.c
+endif
 
 EXTRA_DIST += unistr/u-move.h
 
@@ -4445,25 +6097,33 @@ EXTRA_DIST += unistr/u-move.h
 
 ## begin gnulib module unistr/u8-next
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_NEXT
 libunistring_la_SOURCES += unistr/u8-next.c
+endif
 
 ## end   gnulib module unistr/u8-next
 
 ## begin gnulib module unistr/u8-prev
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_PREV
 libunistring_la_SOURCES += unistr/u8-prev.c
+endif
 
 ## end   gnulib module unistr/u8-prev
 
 ## begin gnulib module unistr/u8-set
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_SET
 libunistring_la_SOURCES += unistr/u8-set.c
+endif
 
 ## end   gnulib module unistr/u8-set
 
 ## begin gnulib module unistr/u8-startswith
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH
 libunistring_la_SOURCES += unistr/u8-startswith.c
+endif
 
 EXTRA_DIST += unistr/u-startswith.h
 
@@ -4471,7 +6131,9 @@ EXTRA_DIST += unistr/u-startswith.h
 
 ## begin gnulib module unistr/u8-stpcpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY
 libunistring_la_SOURCES += unistr/u8-stpcpy.c
+endif
 
 EXTRA_DIST += unistr/u-stpcpy.h
 
@@ -4479,7 +6141,9 @@ EXTRA_DIST += unistr/u-stpcpy.h
 
 ## begin gnulib module unistr/u8-stpncpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY
 libunistring_la_SOURCES += unistr/u8-stpncpy.c
+endif
 
 EXTRA_DIST += unistr/u-stpncpy.h
 
@@ -4487,25 +6151,33 @@ EXTRA_DIST += unistr/u-stpncpy.h
 
 ## begin gnulib module unistr/u8-strcat
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT
 libunistring_la_SOURCES += unistr/u8-strcat.c
+endif
 
 ## end   gnulib module unistr/u8-strcat
 
 ## begin gnulib module unistr/u8-strchr
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR
 libunistring_la_SOURCES += unistr/u8-strchr.c
+endif
 
 ## end   gnulib module unistr/u8-strchr
 
 ## begin gnulib module unistr/u8-strcmp
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP
 libunistring_la_SOURCES += unistr/u8-strcmp.c
+endif
 
 ## end   gnulib module unistr/u8-strcmp
 
 ## begin gnulib module unistr/u8-strcoll
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL
 libunistring_la_SOURCES += unistr/u8-strcoll.c
+endif
 
 EXTRA_DIST += unistr/u-strcoll.h
 
@@ -4513,13 +6185,17 @@ EXTRA_DIST += unistr/u-strcoll.h
 
 ## begin gnulib module unistr/u8-strcpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY
 libunistring_la_SOURCES += unistr/u8-strcpy.c
+endif
 
 ## end   gnulib module unistr/u8-strcpy
 
 ## begin gnulib module unistr/u8-strcspn
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN
 libunistring_la_SOURCES += unistr/u8-strcspn.c
+endif
 
 EXTRA_DIST += unistr/u-strcspn.h
 
@@ -4527,7 +6203,9 @@ EXTRA_DIST += unistr/u-strcspn.h
 
 ## begin gnulib module unistr/u8-strdup
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP
 libunistring_la_SOURCES += unistr/u8-strdup.c
+endif
 
 EXTRA_DIST += unistr/u-strdup.h
 
@@ -4535,43 +6213,57 @@ EXTRA_DIST += unistr/u-strdup.h
 
 ## begin gnulib module unistr/u8-strlen
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN
 libunistring_la_SOURCES += unistr/u8-strlen.c
+endif
 
 ## end   gnulib module unistr/u8-strlen
 
 ## begin gnulib module unistr/u8-strmblen
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN
 libunistring_la_SOURCES += unistr/u8-strmblen.c
+endif
 
 ## end   gnulib module unistr/u8-strmblen
 
 ## begin gnulib module unistr/u8-strmbtouc
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC
 libunistring_la_SOURCES += unistr/u8-strmbtouc.c
+endif
 
 ## end   gnulib module unistr/u8-strmbtouc
 
 ## begin gnulib module unistr/u8-strncat
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT
 libunistring_la_SOURCES += unistr/u8-strncat.c
+endif
 
 ## end   gnulib module unistr/u8-strncat
 
 ## begin gnulib module unistr/u8-strncmp
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP
 libunistring_la_SOURCES += unistr/u8-strncmp.c
+endif
 
 ## end   gnulib module unistr/u8-strncmp
 
 ## begin gnulib module unistr/u8-strncpy
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY
 libunistring_la_SOURCES += unistr/u8-strncpy.c
+endif
 
 ## end   gnulib module unistr/u8-strncpy
 
 ## begin gnulib module unistr/u8-strnlen
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN
 libunistring_la_SOURCES += unistr/u8-strnlen.c
+endif
 
 EXTRA_DIST += unistr/u-strnlen.h
 
@@ -4579,7 +6271,9 @@ EXTRA_DIST += unistr/u-strnlen.h
 
 ## begin gnulib module unistr/u8-strpbrk
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK
 libunistring_la_SOURCES += unistr/u8-strpbrk.c
+endif
 
 EXTRA_DIST += unistr/u-strpbrk.h
 
@@ -4587,13 +6281,17 @@ EXTRA_DIST += unistr/u-strpbrk.h
 
 ## begin gnulib module unistr/u8-strrchr
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR
 libunistring_la_SOURCES += unistr/u8-strrchr.c
+endif
 
 ## end   gnulib module unistr/u8-strrchr
 
 ## begin gnulib module unistr/u8-strspn
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN
 libunistring_la_SOURCES += unistr/u8-strspn.c
+endif
 
 EXTRA_DIST += unistr/u-strspn.h
 
@@ -4601,7 +6299,9 @@ EXTRA_DIST += unistr/u-strspn.h
 
 ## begin gnulib module unistr/u8-strstr
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR
 libunistring_la_SOURCES += unistr/u8-strstr.c
+endif
 
 EXTRA_DIST += unistr/u-strstr.h
 
@@ -4609,7 +6309,9 @@ EXTRA_DIST += unistr/u-strstr.h
 
 ## begin gnulib module unistr/u8-strtok
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK
 libunistring_la_SOURCES += unistr/u8-strtok.c
+endif
 
 EXTRA_DIST += unistr/u-strtok.h
 
@@ -4617,33 +6319,57 @@ EXTRA_DIST += unistr/u-strtok.h
 
 ## begin gnulib module unistr/u8-to-u16
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16
 libunistring_la_SOURCES += unistr/u8-to-u16.c
+endif
 
 ## end   gnulib module unistr/u8-to-u16
 
 ## begin gnulib module unistr/u8-to-u32
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32
 libunistring_la_SOURCES += unistr/u8-to-u32.c
+endif
 
 ## end   gnulib module unistr/u8-to-u32
 
 ## begin gnulib module unistr/u8-uctomb
 
+if LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB
 libunistring_la_SOURCES += unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
+endif
 
 ## end   gnulib module unistr/u8-uctomb
 
 ## begin gnulib module unitypes
 
+BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H)
+
+unitypes.h: unitypes.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unitypes.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += unitypes.h unitypes.h-t
 
-EXTRA_DIST += unitypes.h
+EXTRA_DIST += unitypes.in.h
 
 ## end   gnulib module unitypes
 
 ## begin gnulib module uniwbrk/base
 
+BUILT_SOURCES += $(LIBUNISTRING_UNIWBRK_H)
+
+uniwbrk.h: uniwbrk.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/uniwbrk.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += uniwbrk.h uniwbrk.h-t
 
-EXTRA_DIST += uniwbrk.h
+EXTRA_DIST += uniwbrk.in.h
 
 ## end   gnulib module uniwbrk/base
 
@@ -4657,7 +6383,9 @@ EXTRA_DIST += uniwbrk/wbrktable.h
 
 ## begin gnulib module uniwbrk/u16-wordbreaks
 
+if LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS
 libunistring_la_SOURCES += uniwbrk/u16-wordbreaks.c
+endif
 
 EXTRA_DIST += uniwbrk/u-wordbreaks.h
 
@@ -4665,7 +6393,9 @@ EXTRA_DIST += uniwbrk/u-wordbreaks.h
 
 ## begin gnulib module uniwbrk/u32-wordbreaks
 
+if LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS
 libunistring_la_SOURCES += uniwbrk/u32-wordbreaks.c
+endif
 
 EXTRA_DIST += uniwbrk/u-wordbreaks.h
 
@@ -4673,7 +6403,9 @@ EXTRA_DIST += uniwbrk/u-wordbreaks.h
 
 ## begin gnulib module uniwbrk/u8-wordbreaks
 
+if LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS
 libunistring_la_SOURCES += uniwbrk/u8-wordbreaks.c
+endif
 
 EXTRA_DIST += uniwbrk/u-wordbreaks.h
 
@@ -4681,13 +6413,17 @@ EXTRA_DIST += uniwbrk/u-wordbreaks.h
 
 ## begin gnulib module uniwbrk/ulc-wordbreaks
 
+if LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS
 libunistring_la_SOURCES += uniwbrk/ulc-wordbreaks.c
+endif
 
 ## end   gnulib module uniwbrk/ulc-wordbreaks
 
 ## begin gnulib module uniwbrk/wordbreak-property
 
+if LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY
 libunistring_la_SOURCES += uniwbrk/wordbreak-property.c
+endif
 
 EXTRA_DIST += uniwbrk/wbrkprop.h
 
@@ -4695,104 +6431,84 @@ EXTRA_DIST += uniwbrk/wbrkprop.h
 
 ## begin gnulib module uniwidth/base
 
+BUILT_SOURCES += $(LIBUNISTRING_UNIWIDTH_H)
 
-EXTRA_DIST += localcharset.h uniwidth.h
+uniwidth.h: uniwidth.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/uniwidth.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += uniwidth.h uniwidth.h-t
+
+EXTRA_DIST += localcharset.h uniwidth.in.h
 
 ## end   gnulib module uniwidth/base
 
 ## begin gnulib module uniwidth/u16-strwidth
 
+if LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH
 libunistring_la_SOURCES += uniwidth/u16-strwidth.c
+endif
 
 ## end   gnulib module uniwidth/u16-strwidth
 
 ## begin gnulib module uniwidth/u16-width
 
+if LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH
 libunistring_la_SOURCES += uniwidth/u16-width.c
+endif
 
 ## end   gnulib module uniwidth/u16-width
 
 ## begin gnulib module uniwidth/u32-strwidth
 
+if LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH
 libunistring_la_SOURCES += uniwidth/u32-strwidth.c
+endif
 
 ## end   gnulib module uniwidth/u32-strwidth
 
 ## begin gnulib module uniwidth/u32-width
 
+if LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH
 libunistring_la_SOURCES += uniwidth/u32-width.c
+endif
 
 ## end   gnulib module uniwidth/u32-width
 
 ## begin gnulib module uniwidth/u8-strwidth
 
+if LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH
 libunistring_la_SOURCES += uniwidth/u8-strwidth.c
+endif
 
 ## end   gnulib module uniwidth/u8-strwidth
 
 ## begin gnulib module uniwidth/u8-width
 
+if LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH
 libunistring_la_SOURCES += uniwidth/u8-width.c
+endif
 
 ## end   gnulib module uniwidth/u8-width
 
 ## begin gnulib module uniwidth/width
 
+if LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH
 libunistring_la_SOURCES += uniwidth/width.c
+endif
 
 EXTRA_DIST += uniwidth/cjk.h
 
 ## end   gnulib module uniwidth/width
 
-## begin gnulib module unused-parameter
-
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-BUILT_SOURCES += unused-parameter.h
-# The unused-parameter.h that gets inserted into generated .h files is the same
-# as build-aux/unused-parameter.h, except that it has the copyright header cut
-# off.
-unused-parameter.h: $(top_srcdir)/build-aux/unused-parameter.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
-         < $(top_srcdir)/build-aux/unused-parameter.h \
-         > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t
-
-UNUSED_PARAMETER_H=unused-parameter.h
-
-EXTRA_DIST += $(top_srcdir)/build-aux/unused-parameter.h
-
-## end   gnulib module unused-parameter
-
 ## begin gnulib module verify
 
-libunistring_la_SOURCES += verify.h
-
-## end   gnulib module verify
-
-## begin gnulib module warn-on-use
-
-BUILT_SOURCES += warn-on-use.h
-# The warn-on-use.h that gets inserted into generated .h files is the same as
-# build-aux/warn-on-use.h, except that it has the copyright header cut off.
-warn-on-use.h: $(top_srcdir)/build-aux/warn-on-use.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/^.ifndef/,$$p' \
-         < $(top_srcdir)/build-aux/warn-on-use.h \
-         > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t
-
-WARN_ON_USE_H=warn-on-use.h
 
-EXTRA_DIST += $(top_srcdir)/build-aux/warn-on-use.h
+EXTRA_DIST += verify.h
 
-## end   gnulib module warn-on-use
+## end   gnulib module verify
 
 ## begin gnulib module wchar
 
@@ -4800,25 +6516,57 @@ BUILT_SOURCES += wchar.h
 
 # We need the following in order to create <wchar.h> when the system
 # version does not work standalone.
-wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
              -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
              -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
-             -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \
-             -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \
-             -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \
-             -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \
-             -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \
-             -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \
-             -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \
-             -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \
-             -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \
-             -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \
-             -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
-             -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
+             -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \
+             -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \
+             -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \
+             -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \
+             -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \
+             -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \
+             -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \
+             -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \
+             -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \
+             -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \
+             -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \
+             -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \
+             -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \
+             -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \
+             -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \
+             -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \
+             -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \
+             -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \
+             -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \
+             -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \
+             -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \
+             -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \
+             -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \
+             -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \
+             -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \
+             -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \
+             -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \
+             -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \
+             -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \
+             -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \
+             -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \
+             -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \
+             -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \
+             -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \
+             -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \
+             -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \
+             -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \
+             -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \
+             -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \
+             < $(srcdir)/wchar.in.h | \
+         sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
              -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
              -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \
              -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \
@@ -4828,9 +6576,38 @@ wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \
              -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \
              -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \
+             -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \
+             -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \
+             -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \
+             -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \
+             -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \
+             -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \
+             -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \
+             -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \
+             -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \
+             -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \
+             -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \
+             -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \
+             -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \
+             -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \
+             -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \
+             -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \
+             -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \
+             -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \
+             -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \
+             -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \
+             -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \
+             -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \
+             -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \
+             -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \
+             -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \
+             -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \
+             -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \
+             -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \
              -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
              -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
-             -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
+         | \
+         sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
              -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
              -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
              -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
@@ -4842,10 +6619,10 @@ wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \
              -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \
              -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
+             -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-           < $(srcdir)/wchar.in.h; \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
        } > $@-t && \
        mv $@-t $@
 MOSTLYCLEANFILES += wchar.h wchar.h-t
@@ -4854,23 +6631,35 @@ EXTRA_DIST += wchar.in.h
 
 ## end   gnulib module wchar
 
-## begin gnulib module wctype
+## begin gnulib module wctype-h
 
 BUILT_SOURCES += wctype.h
+libunistring_la_SOURCES += wctype-h.c
 
 # We need the following in order to create <wctype.h> when the system
 # doesn't have one that works with the given compiler.
-wctype.h: wctype.in.h $(CXXDEFS_H) $(WARN_ON_USE_H)
+wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+             -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \
+             -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \
+             -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \
+             -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \
+             -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \
              -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \
              -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+             -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \
+             -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \
              -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+             -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
              -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+             -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
              < $(srcdir)/wctype.in.h; \
@@ -4880,7 +6669,7 @@ MOSTLYCLEANFILES += wctype.h wctype.h-t
 
 EXTRA_DIST += wctype.in.h
 
-## end   gnulib module wctype
+## end   gnulib module wctype-h
 
 ## begin gnulib module wcwidth
 
@@ -4893,7 +6682,7 @@ EXTRA_libunistring_la_SOURCES += wcwidth.c
 
 ## begin gnulib module xsize
 
-libunistring_la_SOURCES += xsize.h
+libunistring_la_SOURCES += xsize.h xsize.c
 
 ## end   gnulib module xsize
 
index 6e97923..b1e7dd4 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-# Copyright (C) 2002-2010 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file.  If not, see <http://www.gnu.org/licenses/>.
 #
-# This file is free software, distributed under the terms of the GNU
-# General Public License.  As a special exception to the GNU General
-# Public License, this file may be distributed as part of a program
-# that contains a configuration script generated by Autoconf, under
+# As a special exception to the GNU General Public License,
+# this file may be distributed as part of a program that
+# contains a configuration script generated by Autoconf, under
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
 
 
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -45,20 +100,507 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-DIST_COMMON = $(nobase_include_HEADERS) $(noinst_HEADERS) \
-       $(srcdir)/Makefile.am $(srcdir)/Makefile.gnulib \
-       $(srcdir)/Makefile.in $(srcdir)/exported.sh.in
+DIST_COMMON = $(srcdir)/Makefile.gnulib $(srcdir)/Makefile.in \
+       $(srcdir)/Makefile.am $(srcdir)/exported.sh.in \
+       $(nobase_include_HEADERS) $(noinst_HEADERS)
 @GL_COND_LIBTOOL_TRUE@am__append_1 = $(LTLIBICONV)
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE@am__append_2 = unicase/empty-prefix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE@am__append_3 = unicase/empty-suffix-context.c
+@LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE@am__append_4 = unicase/locale-language.c
+@LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE@am__append_5 = unicase/tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE@am__append_6 = unicase/totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE@am__append_7 = unicase/toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE@am__append_8 = unicase/u16-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE@am__append_9 = unicase/u16-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE@am__append_10 = unicase/u16-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE@am__append_11 = unicase/u16-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE@am__append_12 = unicase/u16-ct-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE@am__append_13 = unicase/u16-ct-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE@am__append_14 = unicase/u16-ct-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE@am__append_15 = unicase/u16-ct-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE@am__append_16 = unicase/u16-is-cased.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE@am__append_17 = unicase/u16-is-casefolded.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE@am__append_18 = unicase/u16-is-lowercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE@am__append_19 = unicase/u16-is-titlecase.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE@am__append_20 = unicase/u16-is-uppercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE@am__append_21 = unicase/u16-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE@am__append_22 = unicase/u16-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE@am__append_23 = unicase/u16-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE@am__append_24 = unicase/u32-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE@am__append_25 = unicase/u32-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE@am__append_26 = unicase/u32-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE@am__append_27 = unicase/u32-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE@am__append_28 = unicase/u32-ct-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE@am__append_29 = unicase/u32-ct-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE@am__append_30 = unicase/u32-ct-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE@am__append_31 = unicase/u32-ct-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE@am__append_32 = unicase/u32-is-cased.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE@am__append_33 = unicase/u32-is-casefolded.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE@am__append_34 = unicase/u32-is-lowercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE@am__append_35 = unicase/u32-is-titlecase.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE@am__append_36 = unicase/u32-is-uppercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE@am__append_37 = unicase/u32-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE@am__append_38 = unicase/u32-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE@am__append_39 = unicase/u32-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE@am__append_40 = unicase/u8-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE@am__append_41 = unicase/u8-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE@am__append_42 = unicase/u8-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE@am__append_43 = unicase/u8-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE@am__append_44 = unicase/u8-ct-casefold.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE@am__append_45 = unicase/u8-ct-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE@am__append_46 = unicase/u8-ct-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE@am__append_47 = unicase/u8-ct-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE@am__append_48 = unicase/u8-is-cased.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE@am__append_49 = unicase/u8-is-casefolded.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE@am__append_50 = unicase/u8-is-lowercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE@am__append_51 = unicase/u8-is-titlecase.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE@am__append_52 = unicase/u8-is-uppercase.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE@am__append_53 = unicase/u8-tolower.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE@am__append_54 = unicase/u8-totitle.c
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE@am__append_55 = unicase/u8-toupper.c
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE@am__append_56 = unicase/ulc-casecmp.c
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE@am__append_57 = unicase/ulc-casecoll.c
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE@am__append_58 = unicase/ulc-casexfrm.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE@am__append_59 = uniconv/u16-conv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE@am__append_60 = uniconv/u16-conv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE@am__append_61 = uniconv/u16-strconv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE@am__append_62 = uniconv/u16-strconv-from-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE@am__append_63 = uniconv/u16-strconv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE@am__append_64 = uniconv/u16-strconv-to-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE@am__append_65 = uniconv/u32-conv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE@am__append_66 = uniconv/u32-conv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE@am__append_67 = uniconv/u32-strconv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE@am__append_68 = uniconv/u32-strconv-from-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE@am__append_69 = uniconv/u32-strconv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE@am__append_70 = uniconv/u32-strconv-to-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__append_71 = uniconv/u8-conv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE@am__append_72 = uniconv/u8-conv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE@am__append_73 = uniconv/u8-strconv-from-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE@am__append_74 = uniconv/u8-strconv-from-locale.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE@am__append_75 = uniconv/u8-strconv-to-enc.c
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE@am__append_76 = uniconv/u8-strconv-to-locale.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE@am__append_77 = unictype/bidi_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE@am__append_78 = unictype/bidi_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE@am__append_79 = unictype/bidi_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE@am__append_80 = unictype/bidi_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE@am__append_81 = unictype/bidi_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE@am__append_82 = unictype/blocks.c
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE@am__append_83 = unictype/block_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE@am__append_84 = unictype/categ_C.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE@am__append_85 = unictype/categ_Cc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE@am__append_86 = unictype/categ_Cf.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE@am__append_87 = unictype/categ_Cn.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE@am__append_88 = unictype/categ_Co.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE@am__append_89 = unictype/categ_Cs.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE@am__append_90 = unictype/categ_L.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE@am__append_91 = unictype/categ_LC.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE@am__append_92 = unictype/categ_Ll.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE@am__append_93 = unictype/categ_Lm.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE@am__append_94 = unictype/categ_Lo.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE@am__append_95 = unictype/categ_Lt.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE@am__append_96 = unictype/categ_Lu.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE@am__append_97 = unictype/categ_M.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE@am__append_98 = unictype/categ_Mc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE@am__append_99 = unictype/categ_Me.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE@am__append_100 = unictype/categ_Mn.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE@am__append_101 = unictype/categ_N.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE@am__append_102 = unictype/categ_Nd.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE@am__append_103 = unictype/categ_Nl.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE@am__append_104 = unictype/categ_No.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE@am__append_105 = unictype/categ_P.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE@am__append_106 = unictype/categ_Pc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE@am__append_107 = unictype/categ_Pd.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE@am__append_108 = unictype/categ_Pe.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE@am__append_109 = unictype/categ_Pf.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE@am__append_110 = unictype/categ_Pi.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE@am__append_111 = unictype/categ_Po.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE@am__append_112 = unictype/categ_Ps.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE@am__append_113 = unictype/categ_S.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE@am__append_114 = unictype/categ_Sc.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE@am__append_115 = unictype/categ_Sk.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE@am__append_116 = unictype/categ_Sm.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE@am__append_117 = unictype/categ_So.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE@am__append_118 = unictype/categ_Z.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE@am__append_119 = unictype/categ_Zl.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE@am__append_120 = unictype/categ_Zp.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE@am__append_121 = unictype/categ_Zs.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE@am__append_122 = unictype/categ_and.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE@am__append_123 = unictype/categ_and_not.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE@am__append_124 = unictype/categ_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE@am__append_125 = unictype/categ_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE@am__append_126 = unictype/categ_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE_TRUE@am__append_127 = unictype/categ_none.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE@am__append_128 = unictype/categ_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE@am__append_129 = unictype/categ_or.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE@am__append_130 = unictype/categ_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE@am__append_131 = unictype/combiningclass.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE@am__append_132 = unictype/combiningclass_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE@am__append_133 = unictype/combiningclass_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE@am__append_134 = unictype/combiningclass_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE@am__append_135 = unictype/ctype_alnum.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE@am__append_136 = unictype/ctype_alpha.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE@am__append_137 = unictype/ctype_blank.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE@am__append_138 = unictype/ctype_cntrl.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE@am__append_139 = unictype/ctype_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE@am__append_140 = unictype/ctype_graph.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE@am__append_141 = unictype/ctype_lower.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE@am__append_142 = unictype/ctype_print.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE@am__append_143 = unictype/ctype_punct.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE@am__append_144 = unictype/ctype_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE@am__append_145 = unictype/ctype_upper.c
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE@am__append_146 = unictype/ctype_xdigit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE@am__append_147 = unictype/decdigit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE@am__append_148 = unictype/digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE@am__append_149 = unictype/joininggroup_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE@am__append_150 = unictype/joininggroup_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE@am__append_151 = unictype/joininggroup_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE@am__append_152 = unictype/joiningtype_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE@am__append_153 = unictype/joiningtype_longname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE@am__append_154 = unictype/joiningtype_name.c
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE@am__append_155 = unictype/joiningtype_of.c
+@LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE@am__append_156 = unictype/mirror.c
+@LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE@am__append_157 = unictype/numeric.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE@am__append_158 = unictype/pr_alphabetic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE@am__append_159 = unictype/pr_ascii_hex_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE@am__append_160 = unictype/pr_bidi_arabic_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE@am__append_161 = unictype/pr_bidi_arabic_right_to_left.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE@am__append_162 = unictype/pr_bidi_block_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE@am__append_163 = unictype/pr_bidi_boundary_neutral.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE@am__append_164 = unictype/pr_bidi_common_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE@am__append_165 = unictype/pr_bidi_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE@am__append_166 = unictype/pr_bidi_embedding_or_override.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE@am__append_167 = unictype/pr_bidi_eur_num_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE@am__append_168 = unictype/pr_bidi_eur_num_terminator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE@am__append_169 = unictype/pr_bidi_european_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE@am__append_170 = unictype/pr_bidi_hebrew_right_to_left.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE@am__append_171 = unictype/pr_bidi_left_to_right.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE@am__append_172 = unictype/pr_bidi_non_spacing_mark.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE@am__append_173 = unictype/pr_bidi_other_neutral.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE@am__append_174 = unictype/pr_bidi_pdf.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE@am__append_175 = unictype/pr_bidi_segment_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE@am__append_176 = unictype/pr_bidi_whitespace.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE@am__append_177 = unictype/pr_byname.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE@am__append_178 = unictype/pr_case_ignorable.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE@am__append_179 = unictype/pr_cased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE@am__append_180 = unictype/pr_changes_when_casefolded.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE@am__append_181 = unictype/pr_changes_when_casemapped.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE@am__append_182 = unictype/pr_changes_when_lowercased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE@am__append_183 = unictype/pr_changes_when_titlecased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE@am__append_184 = unictype/pr_changes_when_uppercased.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE@am__append_185 = unictype/pr_combining.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE@am__append_186 = unictype/pr_composite.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE@am__append_187 = unictype/pr_currency_symbol.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE@am__append_188 = unictype/pr_dash.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE@am__append_189 = unictype/pr_decimal_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__append_190 = unictype/pr_default_ignorable_code_point.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE@am__append_191 = unictype/pr_deprecated.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE@am__append_192 = unictype/pr_diacritic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE@am__append_193 = unictype/pr_extender.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE@am__append_194 = unictype/pr_format_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE@am__append_195 = unictype/pr_grapheme_base.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE@am__append_196 = unictype/pr_grapheme_extend.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE@am__append_197 = unictype/pr_grapheme_link.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE@am__append_198 = unictype/pr_hex_digit.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE@am__append_199 = unictype/pr_hyphen.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE@am__append_200 = unictype/pr_id_continue.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE@am__append_201 = unictype/pr_id_start.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE@am__append_202 = unictype/pr_ideographic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE@am__append_203 = unictype/pr_ids_binary_operator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE@am__append_204 = unictype/pr_ids_trinary_operator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE@am__append_205 = unictype/pr_ignorable_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE@am__append_206 = unictype/pr_iso_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE@am__append_207 = unictype/pr_join_control.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE@am__append_208 = unictype/pr_left_of_pair.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE@am__append_209 = unictype/pr_line_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE@am__append_210 = unictype/pr_logical_order_exception.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE@am__append_211 = unictype/pr_lowercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE@am__append_212 = unictype/pr_math.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE@am__append_213 = unictype/pr_non_break.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE@am__append_214 = unictype/pr_not_a_character.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE@am__append_215 = unictype/pr_numeric.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE@am__append_216 = unictype/pr_other_alphabetic.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__append_217 = unictype/pr_other_default_ignorable_code_point.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE@am__append_218 = unictype/pr_other_grapheme_extend.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE@am__append_219 = unictype/pr_other_id_continue.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE@am__append_220 = unictype/pr_other_id_start.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE@am__append_221 = unictype/pr_other_lowercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE@am__append_222 = unictype/pr_other_math.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE@am__append_223 = unictype/pr_other_uppercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE@am__append_224 = unictype/pr_paired_punctuation.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE@am__append_225 = unictype/pr_paragraph_separator.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE@am__append_226 = unictype/pr_pattern_syntax.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE@am__append_227 = unictype/pr_pattern_white_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE@am__append_228 = unictype/pr_private_use.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE@am__append_229 = unictype/pr_punctuation.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE@am__append_230 = unictype/pr_quotation_mark.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE@am__append_231 = unictype/pr_radical.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE@am__append_232 = unictype/pr_sentence_terminal.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE@am__append_233 = unictype/pr_soft_dotted.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE@am__append_234 = unictype/pr_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE@am__append_235 = unictype/pr_terminal_punctuation.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE@am__append_236 = unictype/pr_test.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE@am__append_237 = unictype/pr_titlecase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE@am__append_238 = unictype/pr_unassigned_code_value.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE@am__append_239 = unictype/pr_unified_ideograph.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE@am__append_240 = unictype/pr_uppercase.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE@am__append_241 = unictype/pr_variation_selector.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE@am__append_242 = unictype/pr_white_space.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE@am__append_243 = unictype/pr_xid_continue.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE@am__append_244 = unictype/pr_xid_start.c
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE@am__append_245 = unictype/pr_zero_width.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE@am__append_246 = unictype/scripts.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE@am__append_247 = unictype/sy_c_ident.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE@am__append_248 = unictype/sy_c_whitespace.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE@am__append_249 = unictype/sy_java_ident.c
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE@am__append_250 = unictype/sy_java_whitespace.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE@am__append_251 = unigbrk/u16-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE@am__append_252 = unigbrk/u16-grapheme-next.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE@am__append_253 = unigbrk/u16-grapheme-prev.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE@am__append_254 = unigbrk/u32-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE@am__append_255 = unigbrk/u32-grapheme-next.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE@am__append_256 = unigbrk/u32-grapheme-prev.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE@am__append_257 = unigbrk/u8-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE@am__append_258 = unigbrk/u8-grapheme-next.c
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE@am__append_259 = unigbrk/u8-grapheme-prev.c
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE@am__append_260 = unigbrk/uc-gbrk-prop.c
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE@am__append_261 = unigbrk/uc-is-grapheme-break.c
+@LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE@am__append_262 = unigbrk/ulc-grapheme-breaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE@am__append_263 = unilbrk/u16-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE@am__append_264 = unilbrk/u16-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE@am__append_265 = unilbrk/u32-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE@am__append_266 = unilbrk/u32-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE@am__append_267 = unilbrk/u8-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE@am__append_268 = unilbrk/u8-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE@am__append_269 = unilbrk/ulc-possible-linebreaks.c
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE@am__append_270 = unilbrk/ulc-width-linebreaks.c
+@LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE@am__append_271 = uniname/uniname.c
+@LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE@am__append_272 = uninorm/canonical-decomposition.c
+@LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE@am__append_273 = uninorm/composition.c
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE@am__append_274 = uninorm/decomposing-form.c
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE@am__append_275 = uninorm/decomposition.c
+@LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE@am__append_276 = uninorm/uninorm-filter.c
+@LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE@am__append_277 = uninorm/nfc.c
+@LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE@am__append_278 = uninorm/nfd.c
+@LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE@am__append_279 = uninorm/nfkc.c
+@LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE@am__append_280 = uninorm/nfkd.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE@am__append_281 = uninorm/u16-normalize.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE@am__append_282 = uninorm/u16-normcmp.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE@am__append_283 = uninorm/u16-normcoll.c
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE@am__append_284 = uninorm/u16-normxfrm.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE@am__append_285 = uninorm/u32-normalize.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE@am__append_286 = uninorm/u32-normcmp.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE@am__append_287 = uninorm/u32-normcoll.c
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE@am__append_288 = uninorm/u32-normxfrm.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE@am__append_289 = uninorm/u8-normalize.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE@am__append_290 = uninorm/u8-normcmp.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE@am__append_291 = uninorm/u8-normcoll.c
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE@am__append_292 = uninorm/u8-normxfrm.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE@am__append_293 = unistdio/u16-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE@am__append_294 = unistdio/u16-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE@am__append_295 = unistdio/u16-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE@am__append_296 = unistdio/u16-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE@am__append_297 = unistdio/u16-u16-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE@am__append_298 = unistdio/u16-u16-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE@am__append_299 = unistdio/u16-u16-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE@am__append_300 = unistdio/u16-u16-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE@am__append_301 = unistdio/u16-u16-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE@am__append_302 = unistdio/u16-u16-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE@am__append_303 = unistdio/u16-u16-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE@am__append_304 = unistdio/u16-u16-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE@am__append_305 = unistdio/u16-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE@am__append_306 = unistdio/u16-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE@am__append_307 = unistdio/u16-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE@am__append_308 = unistdio/u16-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE@am__append_309 = unistdio/u32-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE@am__append_310 = unistdio/u32-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE@am__append_311 = unistdio/u32-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE@am__append_312 = unistdio/u32-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE@am__append_313 = unistdio/u32-u32-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE@am__append_314 = unistdio/u32-u32-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE@am__append_315 = unistdio/u32-u32-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE@am__append_316 = unistdio/u32-u32-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE@am__append_317 = unistdio/u32-u32-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE@am__append_318 = unistdio/u32-u32-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE@am__append_319 = unistdio/u32-u32-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE@am__append_320 = unistdio/u32-u32-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE@am__append_321 = unistdio/u32-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE@am__append_322 = unistdio/u32-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE@am__append_323 = unistdio/u32-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE@am__append_324 = unistdio/u32-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE@am__append_325 = unistdio/u8-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE@am__append_326 = unistdio/u8-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE@am__append_327 = unistdio/u8-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__append_328 = unistdio/u8-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE@am__append_329 = unistdio/u8-u8-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE@am__append_330 = unistdio/u8-u8-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE@am__append_331 = unistdio/u8-u8-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE@am__append_332 = unistdio/u8-u8-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE@am__append_333 = unistdio/u8-u8-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE@am__append_334 = unistdio/u8-u8-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE@am__append_335 = unistdio/u8-u8-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE@am__append_336 = unistdio/u8-u8-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__append_337 = unistdio/u8-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE@am__append_338 = unistdio/u8-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE@am__append_339 = unistdio/u8-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__append_340 = unistdio/u8-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE@am__append_341 = unistdio/ulc-asnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE@am__append_342 = unistdio/ulc-asprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE@am__append_343 = unistdio/ulc-fprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE@am__append_344 = unistdio/ulc-snprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE@am__append_345 = unistdio/ulc-sprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE@am__append_346 = unistdio/ulc-vasnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE@am__append_347 = unistdio/ulc-vasprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE@am__append_348 = unistdio/ulc-vfprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE@am__append_349 = unistdio/ulc-vsnprintf.c
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE@am__append_350 = unistdio/ulc-vsprintf.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE@am__append_351 = unistr/u16-check.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE@am__append_352 = unistr/u16-chr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE@am__append_353 = unistr/u16-cmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE@am__append_354 = unistr/u16-cmp2.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE@am__append_355 = unistr/u16-cpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE@am__append_356 = unistr/u16-cpy-alloc.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE@am__append_357 = unistr/u16-endswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE@am__append_358 = unistr/u16-mblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE@am__append_359 = unistr/u16-mbsnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@am__append_360 = unistr/u16-mbtouc.c unistr/u16-mbtouc-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@am__append_361 = unistr/u16-mbtouc-unsafe.c unistr/u16-mbtouc-unsafe-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__append_362 = unistr/u16-mbtoucr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE@am__append_363 = unistr/u16-move.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE@am__append_364 = unistr/u16-next.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE@am__append_365 = unistr/u16-prev.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE@am__append_366 = unistr/u16-set.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE@am__append_367 = unistr/u16-startswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE@am__append_368 = unistr/u16-stpcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE@am__append_369 = unistr/u16-stpncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE@am__append_370 = unistr/u16-strcat.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE@am__append_371 = unistr/u16-strchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE@am__append_372 = unistr/u16-strcmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE@am__append_373 = unistr/u16-strcoll.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE@am__append_374 = unistr/u16-strcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE@am__append_375 = unistr/u16-strcspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE@am__append_376 = unistr/u16-strdup.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__append_377 = unistr/u16-strlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__append_378 = unistr/u16-strmblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE@am__append_379 = unistr/u16-strmbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE@am__append_380 = unistr/u16-strncat.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE@am__append_381 = unistr/u16-strncmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE@am__append_382 = unistr/u16-strncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE@am__append_383 = unistr/u16-strnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE@am__append_384 = unistr/u16-strpbrk.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE@am__append_385 = unistr/u16-strrchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE@am__append_386 = unistr/u16-strspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE@am__append_387 = unistr/u16-strstr.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE@am__append_388 = unistr/u16-strtok.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE@am__append_389 = unistr/u16-to-u32.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__append_390 = unistr/u16-to-u8.c
+@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@am__append_391 = unistr/u16-uctomb.c unistr/u16-uctomb-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE@am__append_392 = unistr/u32-check.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE@am__append_393 = unistr/u32-chr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE@am__append_394 = unistr/u32-cmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE@am__append_395 = unistr/u32-cmp2.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE@am__append_396 = unistr/u32-cpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE@am__append_397 = unistr/u32-cpy-alloc.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE@am__append_398 = unistr/u32-endswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE@am__append_399 = unistr/u32-mblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE@am__append_400 = unistr/u32-mbsnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE@am__append_401 = unistr/u32-mbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE@am__append_402 = unistr/u32-mbtouc-unsafe.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE@am__append_403 = unistr/u32-mbtoucr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE@am__append_404 = unistr/u32-move.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE@am__append_405 = unistr/u32-next.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE@am__append_406 = unistr/u32-prev.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE@am__append_407 = unistr/u32-set.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE@am__append_408 = unistr/u32-startswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE@am__append_409 = unistr/u32-stpcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE@am__append_410 = unistr/u32-stpncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE@am__append_411 = unistr/u32-strcat.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE@am__append_412 = unistr/u32-strchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE@am__append_413 = unistr/u32-strcmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE@am__append_414 = unistr/u32-strcoll.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE@am__append_415 = unistr/u32-strcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE@am__append_416 = unistr/u32-strcspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE@am__append_417 = unistr/u32-strdup.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__append_418 = unistr/u32-strlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__append_419 = unistr/u32-strmblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE@am__append_420 = unistr/u32-strmbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE@am__append_421 = unistr/u32-strncat.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE@am__append_422 = unistr/u32-strncmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE@am__append_423 = unistr/u32-strncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE@am__append_424 = unistr/u32-strnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE@am__append_425 = unistr/u32-strpbrk.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE@am__append_426 = unistr/u32-strrchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE@am__append_427 = unistr/u32-strspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE@am__append_428 = unistr/u32-strstr.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE@am__append_429 = unistr/u32-strtok.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE@am__append_430 = unistr/u32-to-u16.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__append_431 = unistr/u32-to-u8.c
+@LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE@am__append_432 = unistr/u32-uctomb.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__append_433 = unistr/u8-check.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE@am__append_434 = unistr/u8-chr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE@am__append_435 = unistr/u8-cmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE@am__append_436 = unistr/u8-cmp2.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__append_437 = unistr/u8-cpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE@am__append_438 = unistr/u8-cpy-alloc.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE@am__append_439 = unistr/u8-endswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__append_440 = unistr/u8-mblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__append_441 = unistr/u8-mbsnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__append_442 = unistr/u8-mbtouc.c unistr/u8-mbtouc-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__append_443 = unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc-unsafe-aux.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_444 = unistr/u8-mbtoucr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE@am__append_445 = unistr/u8-move.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE@am__append_446 = unistr/u8-next.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__append_447 = unistr/u8-prev.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__append_448 = unistr/u8-set.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE@am__append_449 = unistr/u8-startswith.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE@am__append_450 = unistr/u8-stpcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE@am__append_451 = unistr/u8-stpncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE@am__append_452 = unistr/u8-strcat.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE@am__append_453 = unistr/u8-strchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE@am__append_454 = unistr/u8-strcmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE@am__append_455 = unistr/u8-strcoll.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE@am__append_456 = unistr/u8-strcpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE@am__append_457 = unistr/u8-strcspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE@am__append_458 = unistr/u8-strdup.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__append_459 = unistr/u8-strlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__append_460 = unistr/u8-strmblen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE@am__append_461 = unistr/u8-strmbtouc.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE@am__append_462 = unistr/u8-strncat.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE@am__append_463 = unistr/u8-strncmp.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE@am__append_464 = unistr/u8-strncpy.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE@am__append_465 = unistr/u8-strnlen.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE@am__append_466 = unistr/u8-strpbrk.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE@am__append_467 = unistr/u8-strrchr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE@am__append_468 = unistr/u8-strspn.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE@am__append_469 = unistr/u8-strstr.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE@am__append_470 = unistr/u8-strtok.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE@am__append_471 = unistr/u8-to-u16.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE@am__append_472 = unistr/u8-to-u32.c
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_473 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
+@LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE@am__append_474 = uniwbrk/u16-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE@am__append_475 = uniwbrk/u32-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE@am__append_476 = uniwbrk/u8-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE@am__append_477 = uniwbrk/ulc-wordbreaks.c
+@LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE@am__append_478 = uniwbrk/wordbreak-property.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE@am__append_479 = uniwidth/u16-strwidth.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE@am__append_480 = uniwidth/u16-width.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE@am__append_481 = uniwidth/u32-strwidth.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE@am__append_482 = uniwidth/u32-width.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE@am__append_483 = uniwidth/u8-strwidth.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE@am__append_484 = uniwidth/u8-width.c
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_485 = uniwidth/width.c
 
 # Tell the mingw or Cygwin linker which symbols to export.
-@WOE32DLL_TRUE@am__append_2 = ../woe32dll/unistring-exports.c
-@WOE32DLL_TRUE@am__append_3 = -Wl,--export-all-symbols
-@WOE32_TRUE@am__append_4 = libunistring.res.lo
+@WOE32DLL_TRUE@am__append_486 = ../woe32dll/unistring-exports.c
+@WOE32DLL_TRUE@am__append_487 = -Wl,--export-all-symbols
+@WOE32_TRUE@am__append_488 = libunistring.res.lo
 subdir = lib
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
+       $(top_srcdir)/gnulib-m4/absolute-header.m4 \
        $(top_srcdir)/gnulib-m4/alloca.m4 \
+       $(top_srcdir)/gnulib-m4/btowc.m4 \
        $(top_srcdir)/gnulib-m4/codeset.m4 \
+       $(top_srcdir)/gnulib-m4/configmake.m4 \
        $(top_srcdir)/gnulib-m4/eealloc.m4 \
        $(top_srcdir)/gnulib-m4/environ.m4 \
        $(top_srcdir)/gnulib-m4/errno_h.m4 \
@@ -67,11 +609,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/exponentf.m4 \
        $(top_srcdir)/gnulib-m4/exponentl.m4 \
        $(top_srcdir)/gnulib-m4/extensions.m4 \
+       $(top_srcdir)/gnulib-m4/extern-inline.m4 \
        $(top_srcdir)/gnulib-m4/fcntl-o.m4 \
+       $(top_srcdir)/gnulib-m4/fdopen.m4 \
        $(top_srcdir)/gnulib-m4/float_h.m4 \
        $(top_srcdir)/gnulib-m4/fpieee.m4 \
        $(top_srcdir)/gnulib-m4/frexp.m4 \
        $(top_srcdir)/gnulib-m4/frexpl.m4 \
+       $(top_srcdir)/gnulib-m4/fseterr.m4 \
        $(top_srcdir)/gnulib-m4/getpagesize.m4 \
        $(top_srcdir)/gnulib-m4/glibc21.m4 \
        $(top_srcdir)/gnulib-m4/gnulib-common.m4 \
@@ -83,16 +628,21 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/inline.m4 \
        $(top_srcdir)/gnulib-m4/intlmacosx.m4 \
        $(top_srcdir)/gnulib-m4/intmax_t.m4 \
+       $(top_srcdir)/gnulib-m4/inttypes-pri.m4 \
+       $(top_srcdir)/gnulib-m4/inttypes.m4 \
        $(top_srcdir)/gnulib-m4/inttypes_h.m4 \
        $(top_srcdir)/gnulib-m4/isnand.m4 \
        $(top_srcdir)/gnulib-m4/isnanf.m4 \
        $(top_srcdir)/gnulib-m4/isnanl.m4 \
+       $(top_srcdir)/gnulib-m4/iswblank.m4 \
        $(top_srcdir)/gnulib-m4/lcmessage.m4 \
        $(top_srcdir)/gnulib-m4/ldexpl.m4 \
        $(top_srcdir)/gnulib-m4/lib-ld.m4 \
        $(top_srcdir)/gnulib-m4/lib-link.m4 \
        $(top_srcdir)/gnulib-m4/lib-prefix.m4 \
+       $(top_srcdir)/gnulib-m4/libunistring-base.m4 \
        $(top_srcdir)/gnulib-m4/localcharset.m4 \
+       $(top_srcdir)/gnulib-m4/locale-ar.m4 \
        $(top_srcdir)/gnulib-m4/locale-fr.m4 \
        $(top_srcdir)/gnulib-m4/locale-ja.m4 \
        $(top_srcdir)/gnulib-m4/locale-tr.m4 \
@@ -109,27 +659,37 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/mbrtowc.m4 \
        $(top_srcdir)/gnulib-m4/mbsinit.m4 \
        $(top_srcdir)/gnulib-m4/mbstate_t.m4 \
+       $(top_srcdir)/gnulib-m4/mbtowc.m4 \
        $(top_srcdir)/gnulib-m4/memchr.m4 \
        $(top_srcdir)/gnulib-m4/minmax.m4 \
        $(top_srcdir)/gnulib-m4/mmap-anon.m4 \
+       $(top_srcdir)/gnulib-m4/msvc-inval.m4 \
+       $(top_srcdir)/gnulib-m4/msvc-nothrow.m4 \
        $(top_srcdir)/gnulib-m4/multiarch.m4 \
        $(top_srcdir)/gnulib-m4/nocrash.m4 \
+       $(top_srcdir)/gnulib-m4/off_t.m4 \
        $(top_srcdir)/gnulib-m4/printf-frexp.m4 \
        $(top_srcdir)/gnulib-m4/printf-frexpl.m4 \
        $(top_srcdir)/gnulib-m4/printf.m4 \
        $(top_srcdir)/gnulib-m4/putenv.m4 \
        $(top_srcdir)/gnulib-m4/relocatable-lib.m4 \
        $(top_srcdir)/gnulib-m4/setenv.m4 \
+       $(top_srcdir)/gnulib-m4/setlocale.m4 \
        $(top_srcdir)/gnulib-m4/signbit.m4 \
        $(top_srcdir)/gnulib-m4/size_max.m4 \
+       $(top_srcdir)/gnulib-m4/ssize_t.m4 \
        $(top_srcdir)/gnulib-m4/stdbool.m4 \
        $(top_srcdir)/gnulib-m4/stddef_h.m4 \
        $(top_srcdir)/gnulib-m4/stdint.m4 \
        $(top_srcdir)/gnulib-m4/stdint_h.m4 \
+       $(top_srcdir)/gnulib-m4/stdio_h.m4 \
        $(top_srcdir)/gnulib-m4/stdlib_h.m4 \
        $(top_srcdir)/gnulib-m4/strerror.m4 \
        $(top_srcdir)/gnulib-m4/string_h.m4 \
        $(top_srcdir)/gnulib-m4/strncat.m4 \
+       $(top_srcdir)/gnulib-m4/strstr.m4 \
+       $(top_srcdir)/gnulib-m4/sys_socket_h.m4 \
+       $(top_srcdir)/gnulib-m4/sys_types_h.m4 \
        $(top_srcdir)/gnulib-m4/thread.m4 \
        $(top_srcdir)/gnulib-m4/threadlib.m4 \
        $(top_srcdir)/gnulib-m4/unistd_h.m4 \
@@ -137,7 +697,9 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/warn-on-use.m4 \
        $(top_srcdir)/gnulib-m4/wchar_h.m4 \
        $(top_srcdir)/gnulib-m4/wchar_t.m4 \
+       $(top_srcdir)/gnulib-m4/wcrtomb.m4 \
        $(top_srcdir)/gnulib-m4/wctob.m4 \
+       $(top_srcdir)/gnulib-m4/wctomb.m4 \
        $(top_srcdir)/gnulib-m4/wctype_h.m4 \
        $(top_srcdir)/gnulib-m4/wcwidth.m4 \
        $(top_srcdir)/gnulib-m4/wint_t.m4 \
@@ -176,16 +738,22 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \
        "$(DESTDIR)$(includedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 @WOE32_TRUE@am__DEPENDENCIES_2 = libunistring.res.lo
-am__libunistring_la_SOURCES_DIST = c-ctype.h c-ctype.c c-strcase.h \
-       c-strcasecmp.c c-strncasecmp.c fseterr.c localcharset.h \
+am__libunistring_la_SOURCES_DIST = amemxfrm.c c-ctype.h c-ctype.c \
+       c-strcase.h c-strcasecmp.c c-strncasecmp.c localcharset.h \
        localcharset.c localename.c glthread/lock.h glthread/lock.c \
-       malloca.c mbchar.c mbiter.h mbsnlen.c memcmp2.c memxfrm.c \
-       minmax.h printf-frexp.c printf-frexpl.c size_max.h \
+       malloca.c math.c mbchar.c mbiter.h mbiter.c mbsnlen.c \
+       memcmp2.c minmax.h printf-frexp.c printf-frexpl.c size_max.h \
        striconveh.h striconveh.c striconveha.h striconveha.c \
        glthread/threadlib.c unicase/cased.c \
        unicase/empty-prefix-context.c unicase/empty-suffix-context.c \
@@ -230,10 +798,11 @@ am__libunistring_la_SOURCES_DIST = c-ctype.h c-ctype.c c-strcase.h \
        uniconv/u8-conv-to-enc.c uniconv/u8-strconv-from-enc.c \
        uniconv/u8-strconv-from-locale.c uniconv/u8-strconv-to-enc.c \
        uniconv/u8-strconv-to-locale.c unictype/bidi_byname.c \
-       unictype/bidi_name.c unictype/bidi_of.c unictype/bidi_test.c \
-       unictype/blocks.c unictype/block_test.c unictype/categ_C.c \
-       unictype/categ_Cc.c unictype/categ_Cf.c unictype/categ_Cn.c \
-       unictype/categ_Co.c unictype/categ_Cs.c unictype/categ_L.c \
+       unictype/bidi_longname.c unictype/bidi_name.c \
+       unictype/bidi_of.c unictype/bidi_test.c unictype/blocks.c \
+       unictype/block_test.c unictype/categ_C.c unictype/categ_Cc.c \
+       unictype/categ_Cf.c unictype/categ_Cn.c unictype/categ_Co.c \
+       unictype/categ_Cs.c unictype/categ_L.c unictype/categ_LC.c \
        unictype/categ_Ll.c unictype/categ_Lm.c unictype/categ_Lo.c \
        unictype/categ_Lt.c unictype/categ_Lu.c unictype/categ_M.c \
        unictype/categ_Mc.c unictype/categ_Me.c unictype/categ_Mn.c \
@@ -245,18 +814,24 @@ am__libunistring_la_SOURCES_DIST = c-ctype.h c-ctype.c c-strcase.h \
        unictype/categ_Sm.c unictype/categ_So.c unictype/categ_Z.c \
        unictype/categ_Zl.c unictype/categ_Zp.c unictype/categ_Zs.c \
        unictype/categ_and.c unictype/categ_and_not.c \
-       unictype/categ_byname.c unictype/categ_name.c \
-       unictype/categ_none.c unictype/categ_of.c unictype/categ_or.c \
-       unictype/categ_test.c unictype/combining.c \
-       unictype/ctype_alnum.c unictype/ctype_alpha.c \
-       unictype/ctype_blank.c unictype/ctype_cntrl.c \
-       unictype/ctype_digit.c unictype/ctype_graph.c \
-       unictype/ctype_lower.c unictype/ctype_print.c \
-       unictype/ctype_punct.c unictype/ctype_space.c \
-       unictype/ctype_upper.c unictype/ctype_xdigit.c \
-       unictype/decdigit.c unictype/digit.c unictype/mirror.c \
-       unictype/numeric.c unictype/pr_alphabetic.c \
-       unictype/pr_ascii_hex_digit.c unictype/pr_bidi_arabic_digit.c \
+       unictype/categ_byname.c unictype/categ_longname.c \
+       unictype/categ_name.c unictype/categ_none.c \
+       unictype/categ_of.c unictype/categ_or.c unictype/categ_test.c \
+       unictype/combiningclass.c unictype/combiningclass_byname.c \
+       unictype/combiningclass_longname.c \
+       unictype/combiningclass_name.c unictype/ctype_alnum.c \
+       unictype/ctype_alpha.c unictype/ctype_blank.c \
+       unictype/ctype_cntrl.c unictype/ctype_digit.c \
+       unictype/ctype_graph.c unictype/ctype_lower.c \
+       unictype/ctype_print.c unictype/ctype_punct.c \
+       unictype/ctype_space.c unictype/ctype_upper.c \
+       unictype/ctype_xdigit.c unictype/decdigit.c unictype/digit.c \
+       unictype/joininggroup_byname.c unictype/joininggroup_name.c \
+       unictype/joininggroup_of.c unictype/joiningtype_byname.c \
+       unictype/joiningtype_longname.c unictype/joiningtype_name.c \
+       unictype/joiningtype_of.c unictype/mirror.c unictype/numeric.c \
+       unictype/pr_alphabetic.c unictype/pr_ascii_hex_digit.c \
+       unictype/pr_bidi_arabic_digit.c \
        unictype/pr_bidi_arabic_right_to_left.c \
        unictype/pr_bidi_block_separator.c \
        unictype/pr_bidi_boundary_neutral.c \
@@ -271,9 +846,14 @@ am__libunistring_la_SOURCES_DIST = c-ctype.h c-ctype.c c-strcase.h \
        unictype/pr_bidi_other_neutral.c unictype/pr_bidi_pdf.c \
        unictype/pr_bidi_segment_separator.c \
        unictype/pr_bidi_whitespace.c unictype/pr_byname.c \
-       unictype/pr_combining.c unictype/pr_composite.c \
-       unictype/pr_currency_symbol.c unictype/pr_dash.c \
-       unictype/pr_decimal_digit.c \
+       unictype/pr_case_ignorable.c unictype/pr_cased.c \
+       unictype/pr_changes_when_casefolded.c \
+       unictype/pr_changes_when_casemapped.c \
+       unictype/pr_changes_when_lowercased.c \
+       unictype/pr_changes_when_titlecased.c \
+       unictype/pr_changes_when_uppercased.c unictype/pr_combining.c \
+       unictype/pr_composite.c unictype/pr_currency_symbol.c \
+       unictype/pr_dash.c unictype/pr_decimal_digit.c \
        unictype/pr_default_ignorable_code_point.c \
        unictype/pr_deprecated.c unictype/pr_diacritic.c \
        unictype/pr_extender.c unictype/pr_format_control.c \
@@ -308,6 +888,12 @@ am__libunistring_la_SOURCES_DIST = c-ctype.h c-ctype.c c-strcase.h \
        unictype/pr_zero_width.c unictype/scripts.c \
        unictype/sy_c_ident.c unictype/sy_c_whitespace.c \
        unictype/sy_java_ident.c unictype/sy_java_whitespace.c \
+       unigbrk/u16-grapheme-breaks.c unigbrk/u16-grapheme-next.c \
+       unigbrk/u16-grapheme-prev.c unigbrk/u32-grapheme-breaks.c \
+       unigbrk/u32-grapheme-next.c unigbrk/u32-grapheme-prev.c \
+       unigbrk/u8-grapheme-breaks.c unigbrk/u8-grapheme-next.c \
+       unigbrk/u8-grapheme-prev.c unigbrk/uc-gbrk-prop.c \
+       unigbrk/uc-is-grapheme-break.c unigbrk/ulc-grapheme-breaks.c \
        unilbrk/lbrktables.c unilbrk/u16-possible-linebreaks.c \
        unilbrk/u16-width-linebreaks.c \
        unilbrk/u32-possible-linebreaks.c \
@@ -326,7 +912,7 @@ am__libunistring_la_SOURCES_DIST = c-ctype.h c-ctype.c c-strcase.h \
        uninorm/u32-normcmp.c uninorm/u32-normcoll.c \
        uninorm/u32-normxfrm.c uninorm/u8-normalize.c \
        uninorm/u8-normcmp.c uninorm/u8-normcoll.c \
-       uninorm/u8-normxfrm.c unistdio/u-printf-args.c \
+       uninorm/u8-normxfrm.c unistd.c unistdio/u-printf-args.c \
        unistdio/u16-asnprintf.c unistdio/u16-asprintf.c \
        unistdio/u16-printf-parse.c unistdio/u16-snprintf.c \
        unistdio/u16-sprintf.c unistdio/u16-u16-asnprintf.c \
@@ -410,261 +996,738 @@ am__libunistring_la_SOURCES_DIST = c-ctype.h c-ctype.c c-strcase.h \
        uniwidth/u16-strwidth.c uniwidth/u16-width.c \
        uniwidth/u32-strwidth.c uniwidth/u32-width.c \
        uniwidth/u8-strwidth.c uniwidth/u8-width.c uniwidth/width.c \
-       verify.h xsize.h version.c ../woe32dll/unistring-exports.c
+       wctype-h.c xsize.h xsize.c version.c \
+       ../woe32dll/unistring-exports.c
 am__dirstamp = $(am__leading_dot)dirstamp
-@WOE32DLL_TRUE@am__objects_1 = ../woe32dll/unistring-exports.lo
-am_libunistring_la_OBJECTS = c-ctype.lo c-strcasecmp.lo \
-       c-strncasecmp.lo fseterr.lo localcharset.lo localename.lo \
-       glthread/lock.lo malloca.lo mbchar.lo mbsnlen.lo memcmp2.lo \
-       memxfrm.lo printf-frexp.lo printf-frexpl.lo striconveh.lo \
-       striconveha.lo glthread/threadlib.lo unicase/cased.lo \
-       unicase/empty-prefix-context.lo \
-       unicase/empty-suffix-context.lo unicase/ignorable.lo \
-       unicase/locale-language.lo unicase/special-casing.lo \
-       unicase/tocasefold.lo unicase/tolower.lo unicase/totitle.lo \
-       unicase/toupper.lo unicase/u16-casecmp.lo \
-       unicase/u16-casecoll.lo unicase/u16-casefold.lo \
-       unicase/u16-casemap.lo unicase/u16-casexfrm.lo \
-       unicase/u16-ct-casefold.lo unicase/u16-ct-tolower.lo \
-       unicase/u16-ct-totitle.lo unicase/u16-ct-toupper.lo \
-       unicase/u16-is-cased.lo unicase/u16-is-casefolded.lo \
-       unicase/u16-is-invariant.lo unicase/u16-is-lowercase.lo \
-       unicase/u16-is-titlecase.lo unicase/u16-is-uppercase.lo \
-       unicase/u16-tolower.lo unicase/u16-totitle.lo \
-       unicase/u16-toupper.lo unicase/u32-casecmp.lo \
-       unicase/u32-casecoll.lo unicase/u32-casefold.lo \
-       unicase/u32-casemap.lo unicase/u32-casexfrm.lo \
-       unicase/u32-ct-casefold.lo unicase/u32-ct-tolower.lo \
-       unicase/u32-ct-totitle.lo unicase/u32-ct-toupper.lo \
-       unicase/u32-is-cased.lo unicase/u32-is-casefolded.lo \
-       unicase/u32-is-invariant.lo unicase/u32-is-lowercase.lo \
-       unicase/u32-is-titlecase.lo unicase/u32-is-uppercase.lo \
-       unicase/u32-tolower.lo unicase/u32-totitle.lo \
-       unicase/u32-toupper.lo unicase/u8-casecmp.lo \
-       unicase/u8-casecoll.lo unicase/u8-casefold.lo \
-       unicase/u8-casemap.lo unicase/u8-casexfrm.lo \
-       unicase/u8-ct-casefold.lo unicase/u8-ct-tolower.lo \
-       unicase/u8-ct-totitle.lo unicase/u8-ct-toupper.lo \
-       unicase/u8-is-cased.lo unicase/u8-is-casefolded.lo \
-       unicase/u8-is-invariant.lo unicase/u8-is-lowercase.lo \
-       unicase/u8-is-titlecase.lo unicase/u8-is-uppercase.lo \
-       unicase/u8-tolower.lo unicase/u8-totitle.lo \
-       unicase/u8-toupper.lo unicase/ulc-casecmp.lo \
-       unicase/ulc-casecoll.lo unicase/ulc-casexfrm.lo \
-       uniconv/u16-conv-from-enc.lo uniconv/u16-conv-to-enc.lo \
-       uniconv/u16-strconv-from-enc.lo \
-       uniconv/u16-strconv-from-locale.lo \
-       uniconv/u16-strconv-to-enc.lo uniconv/u16-strconv-to-locale.lo \
-       uniconv/u32-conv-from-enc.lo uniconv/u32-conv-to-enc.lo \
-       uniconv/u32-strconv-from-enc.lo \
-       uniconv/u32-strconv-from-locale.lo \
-       uniconv/u32-strconv-to-enc.lo uniconv/u32-strconv-to-locale.lo \
-       uniconv/u8-conv-from-enc.lo uniconv/u8-conv-to-enc.lo \
-       uniconv/u8-strconv-from-enc.lo \
-       uniconv/u8-strconv-from-locale.lo uniconv/u8-strconv-to-enc.lo \
-       uniconv/u8-strconv-to-locale.lo unictype/bidi_byname.lo \
-       unictype/bidi_name.lo unictype/bidi_of.lo \
-       unictype/bidi_test.lo unictype/blocks.lo \
-       unictype/block_test.lo unictype/categ_C.lo \
-       unictype/categ_Cc.lo unictype/categ_Cf.lo unictype/categ_Cn.lo \
-       unictype/categ_Co.lo unictype/categ_Cs.lo unictype/categ_L.lo \
-       unictype/categ_Ll.lo unictype/categ_Lm.lo unictype/categ_Lo.lo \
-       unictype/categ_Lt.lo unictype/categ_Lu.lo unictype/categ_M.lo \
-       unictype/categ_Mc.lo unictype/categ_Me.lo unictype/categ_Mn.lo \
-       unictype/categ_N.lo unictype/categ_Nd.lo unictype/categ_Nl.lo \
-       unictype/categ_No.lo unictype/categ_P.lo unictype/categ_Pc.lo \
-       unictype/categ_Pd.lo unictype/categ_Pe.lo unictype/categ_Pf.lo \
-       unictype/categ_Pi.lo unictype/categ_Po.lo unictype/categ_Ps.lo \
-       unictype/categ_S.lo unictype/categ_Sc.lo unictype/categ_Sk.lo \
-       unictype/categ_Sm.lo unictype/categ_So.lo unictype/categ_Z.lo \
-       unictype/categ_Zl.lo unictype/categ_Zp.lo unictype/categ_Zs.lo \
-       unictype/categ_and.lo unictype/categ_and_not.lo \
-       unictype/categ_byname.lo unictype/categ_name.lo \
-       unictype/categ_none.lo unictype/categ_of.lo \
-       unictype/categ_or.lo unictype/categ_test.lo \
-       unictype/combining.lo unictype/ctype_alnum.lo \
-       unictype/ctype_alpha.lo unictype/ctype_blank.lo \
-       unictype/ctype_cntrl.lo unictype/ctype_digit.lo \
-       unictype/ctype_graph.lo unictype/ctype_lower.lo \
-       unictype/ctype_print.lo unictype/ctype_punct.lo \
-       unictype/ctype_space.lo unictype/ctype_upper.lo \
-       unictype/ctype_xdigit.lo unictype/decdigit.lo \
-       unictype/digit.lo unictype/mirror.lo unictype/numeric.lo \
-       unictype/pr_alphabetic.lo unictype/pr_ascii_hex_digit.lo \
-       unictype/pr_bidi_arabic_digit.lo \
-       unictype/pr_bidi_arabic_right_to_left.lo \
-       unictype/pr_bidi_block_separator.lo \
-       unictype/pr_bidi_boundary_neutral.lo \
-       unictype/pr_bidi_common_separator.lo \
-       unictype/pr_bidi_control.lo \
-       unictype/pr_bidi_embedding_or_override.lo \
-       unictype/pr_bidi_eur_num_separator.lo \
-       unictype/pr_bidi_eur_num_terminator.lo \
-       unictype/pr_bidi_european_digit.lo \
-       unictype/pr_bidi_hebrew_right_to_left.lo \
-       unictype/pr_bidi_left_to_right.lo \
-       unictype/pr_bidi_non_spacing_mark.lo \
-       unictype/pr_bidi_other_neutral.lo unictype/pr_bidi_pdf.lo \
-       unictype/pr_bidi_segment_separator.lo \
-       unictype/pr_bidi_whitespace.lo unictype/pr_byname.lo \
-       unictype/pr_combining.lo unictype/pr_composite.lo \
-       unictype/pr_currency_symbol.lo unictype/pr_dash.lo \
-       unictype/pr_decimal_digit.lo \
-       unictype/pr_default_ignorable_code_point.lo \
-       unictype/pr_deprecated.lo unictype/pr_diacritic.lo \
-       unictype/pr_extender.lo unictype/pr_format_control.lo \
-       unictype/pr_grapheme_base.lo unictype/pr_grapheme_extend.lo \
-       unictype/pr_grapheme_link.lo unictype/pr_hex_digit.lo \
-       unictype/pr_hyphen.lo unictype/pr_id_continue.lo \
-       unictype/pr_id_start.lo unictype/pr_ideographic.lo \
-       unictype/pr_ids_binary_operator.lo \
-       unictype/pr_ids_trinary_operator.lo \
-       unictype/pr_ignorable_control.lo unictype/pr_iso_control.lo \
-       unictype/pr_join_control.lo unictype/pr_left_of_pair.lo \
-       unictype/pr_line_separator.lo \
-       unictype/pr_logical_order_exception.lo \
-       unictype/pr_lowercase.lo unictype/pr_math.lo \
-       unictype/pr_non_break.lo unictype/pr_not_a_character.lo \
-       unictype/pr_numeric.lo unictype/pr_other_alphabetic.lo \
-       unictype/pr_other_default_ignorable_code_point.lo \
-       unictype/pr_other_grapheme_extend.lo \
-       unictype/pr_other_id_continue.lo unictype/pr_other_id_start.lo \
-       unictype/pr_other_lowercase.lo unictype/pr_other_math.lo \
-       unictype/pr_other_uppercase.lo \
-       unictype/pr_paired_punctuation.lo \
-       unictype/pr_paragraph_separator.lo \
-       unictype/pr_pattern_syntax.lo \
-       unictype/pr_pattern_white_space.lo unictype/pr_private_use.lo \
-       unictype/pr_punctuation.lo unictype/pr_quotation_mark.lo \
-       unictype/pr_radical.lo unictype/pr_sentence_terminal.lo \
-       unictype/pr_soft_dotted.lo unictype/pr_space.lo \
-       unictype/pr_terminal_punctuation.lo unictype/pr_test.lo \
-       unictype/pr_titlecase.lo unictype/pr_unassigned_code_value.lo \
-       unictype/pr_unified_ideograph.lo unictype/pr_uppercase.lo \
-       unictype/pr_variation_selector.lo unictype/pr_white_space.lo \
-       unictype/pr_xid_continue.lo unictype/pr_xid_start.lo \
-       unictype/pr_zero_width.lo unictype/scripts.lo \
-       unictype/sy_c_ident.lo unictype/sy_c_whitespace.lo \
-       unictype/sy_java_ident.lo unictype/sy_java_whitespace.lo \
-       unilbrk/lbrktables.lo unilbrk/u16-possible-linebreaks.lo \
-       unilbrk/u16-width-linebreaks.lo \
-       unilbrk/u32-possible-linebreaks.lo \
-       unilbrk/u32-width-linebreaks.lo \
-       unilbrk/u8-possible-linebreaks.lo \
-       unilbrk/u8-width-linebreaks.lo unilbrk/ulc-common.lo \
-       unilbrk/ulc-possible-linebreaks.lo \
-       unilbrk/ulc-width-linebreaks.lo uniname/uniname.lo \
-       uninorm/canonical-decomposition.lo \
-       uninorm/compat-decomposition.lo uninorm/composition.lo \
-       uninorm/decompose-internal.lo uninorm/decomposing-form.lo \
-       uninorm/decomposition.lo uninorm/decomposition-table.lo \
-       uninorm/uninorm-filter.lo uninorm/nfc.lo uninorm/nfd.lo \
-       uninorm/nfkc.lo uninorm/nfkd.lo uninorm/u16-normalize.lo \
-       uninorm/u16-normcmp.lo uninorm/u16-normcoll.lo \
-       uninorm/u16-normxfrm.lo uninorm/u32-normalize.lo \
-       uninorm/u32-normcmp.lo uninorm/u32-normcoll.lo \
-       uninorm/u32-normxfrm.lo uninorm/u8-normalize.lo \
-       uninorm/u8-normcmp.lo uninorm/u8-normcoll.lo \
-       uninorm/u8-normxfrm.lo unistdio/u-printf-args.lo \
-       unistdio/u16-asnprintf.lo unistdio/u16-asprintf.lo \
-       unistdio/u16-printf-parse.lo unistdio/u16-snprintf.lo \
-       unistdio/u16-sprintf.lo unistdio/u16-u16-asnprintf.lo \
-       unistdio/u16-u16-asprintf.lo unistdio/u16-u16-snprintf.lo \
-       unistdio/u16-u16-sprintf.lo unistdio/u16-u16-vasnprintf.lo \
-       unistdio/u16-u16-vasprintf.lo unistdio/u16-u16-vsnprintf.lo \
-       unistdio/u16-u16-vsprintf.lo unistdio/u16-vasnprintf.lo \
-       unistdio/u16-vasprintf.lo unistdio/u16-vsnprintf.lo \
-       unistdio/u16-vsprintf.lo unistdio/u32-asnprintf.lo \
-       unistdio/u32-asprintf.lo unistdio/u32-printf-parse.lo \
-       unistdio/u32-snprintf.lo unistdio/u32-sprintf.lo \
-       unistdio/u32-u32-asnprintf.lo unistdio/u32-u32-asprintf.lo \
-       unistdio/u32-u32-snprintf.lo unistdio/u32-u32-sprintf.lo \
-       unistdio/u32-u32-vasnprintf.lo unistdio/u32-u32-vasprintf.lo \
-       unistdio/u32-u32-vsnprintf.lo unistdio/u32-u32-vsprintf.lo \
-       unistdio/u32-vasnprintf.lo unistdio/u32-vasprintf.lo \
-       unistdio/u32-vsnprintf.lo unistdio/u32-vsprintf.lo \
-       unistdio/u8-asnprintf.lo unistdio/u8-asprintf.lo \
-       unistdio/u8-printf-parse.lo unistdio/u8-snprintf.lo \
-       unistdio/u8-sprintf.lo unistdio/u8-u8-asnprintf.lo \
-       unistdio/u8-u8-asprintf.lo unistdio/u8-u8-snprintf.lo \
-       unistdio/u8-u8-sprintf.lo unistdio/u8-u8-vasnprintf.lo \
-       unistdio/u8-u8-vasprintf.lo unistdio/u8-u8-vsnprintf.lo \
-       unistdio/u8-u8-vsprintf.lo unistdio/u8-vasnprintf.lo \
-       unistdio/u8-vasprintf.lo unistdio/u8-vsnprintf.lo \
-       unistdio/u8-vsprintf.lo unistdio/ulc-asnprintf.lo \
-       unistdio/ulc-asprintf.lo unistdio/ulc-fprintf.lo \
-       unistdio/ulc-printf-parse.lo unistdio/ulc-snprintf.lo \
-       unistdio/ulc-sprintf.lo unistdio/ulc-vasnprintf.lo \
-       unistdio/ulc-vasprintf.lo unistdio/ulc-vfprintf.lo \
-       unistdio/ulc-vsnprintf.lo unistdio/ulc-vsprintf.lo \
-       unistr/u16-check.lo unistr/u16-chr.lo unistr/u16-cmp.lo \
-       unistr/u16-cmp2.lo unistr/u16-cpy.lo unistr/u16-cpy-alloc.lo \
-       unistr/u16-endswith.lo unistr/u16-mblen.lo \
-       unistr/u16-mbsnlen.lo unistr/u16-mbtouc.lo \
-       unistr/u16-mbtouc-aux.lo unistr/u16-mbtouc-unsafe.lo \
-       unistr/u16-mbtouc-unsafe-aux.lo unistr/u16-mbtoucr.lo \
-       unistr/u16-move.lo unistr/u16-next.lo unistr/u16-prev.lo \
-       unistr/u16-set.lo unistr/u16-startswith.lo \
-       unistr/u16-stpcpy.lo unistr/u16-stpncpy.lo \
-       unistr/u16-strcat.lo unistr/u16-strchr.lo unistr/u16-strcmp.lo \
-       unistr/u16-strcoll.lo unistr/u16-strcpy.lo \
-       unistr/u16-strcspn.lo unistr/u16-strdup.lo \
-       unistr/u16-strlen.lo unistr/u16-strmblen.lo \
-       unistr/u16-strmbtouc.lo unistr/u16-strncat.lo \
-       unistr/u16-strncmp.lo unistr/u16-strncpy.lo \
-       unistr/u16-strnlen.lo unistr/u16-strpbrk.lo \
-       unistr/u16-strrchr.lo unistr/u16-strspn.lo \
-       unistr/u16-strstr.lo unistr/u16-strtok.lo unistr/u16-to-u32.lo \
-       unistr/u16-to-u8.lo unistr/u16-uctomb.lo \
-       unistr/u16-uctomb-aux.lo unistr/u32-check.lo unistr/u32-chr.lo \
-       unistr/u32-cmp.lo unistr/u32-cmp2.lo unistr/u32-cpy.lo \
-       unistr/u32-cpy-alloc.lo unistr/u32-endswith.lo \
-       unistr/u32-mblen.lo unistr/u32-mbsnlen.lo unistr/u32-mbtouc.lo \
-       unistr/u32-mbtouc-unsafe.lo unistr/u32-mbtoucr.lo \
-       unistr/u32-move.lo unistr/u32-next.lo unistr/u32-prev.lo \
-       unistr/u32-set.lo unistr/u32-startswith.lo \
-       unistr/u32-stpcpy.lo unistr/u32-stpncpy.lo \
-       unistr/u32-strcat.lo unistr/u32-strchr.lo unistr/u32-strcmp.lo \
-       unistr/u32-strcoll.lo unistr/u32-strcpy.lo \
-       unistr/u32-strcspn.lo unistr/u32-strdup.lo \
-       unistr/u32-strlen.lo unistr/u32-strmblen.lo \
-       unistr/u32-strmbtouc.lo unistr/u32-strncat.lo \
-       unistr/u32-strncmp.lo unistr/u32-strncpy.lo \
-       unistr/u32-strnlen.lo unistr/u32-strpbrk.lo \
-       unistr/u32-strrchr.lo unistr/u32-strspn.lo \
-       unistr/u32-strstr.lo unistr/u32-strtok.lo unistr/u32-to-u16.lo \
-       unistr/u32-to-u8.lo unistr/u32-uctomb.lo unistr/u8-check.lo \
-       unistr/u8-chr.lo unistr/u8-cmp.lo unistr/u8-cmp2.lo \
-       unistr/u8-cpy.lo unistr/u8-cpy-alloc.lo unistr/u8-endswith.lo \
-       unistr/u8-mblen.lo unistr/u8-mbsnlen.lo unistr/u8-mbtouc.lo \
-       unistr/u8-mbtouc-aux.lo unistr/u8-mbtouc-unsafe.lo \
-       unistr/u8-mbtouc-unsafe-aux.lo unistr/u8-mbtoucr.lo \
-       unistr/u8-move.lo unistr/u8-next.lo unistr/u8-prev.lo \
-       unistr/u8-set.lo unistr/u8-startswith.lo unistr/u8-stpcpy.lo \
-       unistr/u8-stpncpy.lo unistr/u8-strcat.lo unistr/u8-strchr.lo \
-       unistr/u8-strcmp.lo unistr/u8-strcoll.lo unistr/u8-strcpy.lo \
-       unistr/u8-strcspn.lo unistr/u8-strdup.lo unistr/u8-strlen.lo \
-       unistr/u8-strmblen.lo unistr/u8-strmbtouc.lo \
-       unistr/u8-strncat.lo unistr/u8-strncmp.lo unistr/u8-strncpy.lo \
-       unistr/u8-strnlen.lo unistr/u8-strpbrk.lo unistr/u8-strrchr.lo \
-       unistr/u8-strspn.lo unistr/u8-strstr.lo unistr/u8-strtok.lo \
-       unistr/u8-to-u16.lo unistr/u8-to-u32.lo unistr/u8-uctomb.lo \
-       unistr/u8-uctomb-aux.lo uniwbrk/wbrktable.lo \
-       uniwbrk/u16-wordbreaks.lo uniwbrk/u32-wordbreaks.lo \
-       uniwbrk/u8-wordbreaks.lo uniwbrk/ulc-wordbreaks.lo \
-       uniwbrk/wordbreak-property.lo uniwidth/u16-strwidth.lo \
-       uniwidth/u16-width.lo uniwidth/u32-strwidth.lo \
-       uniwidth/u32-width.lo uniwidth/u8-strwidth.lo \
-       uniwidth/u8-width.lo uniwidth/width.lo version.lo \
-       $(am__objects_1)
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_PREFIX_CONTEXT_TRUE@am__objects_1 = unicase/empty-prefix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_EMPTY_SUFFIX_CONTEXT_TRUE@am__objects_2 = unicase/empty-suffix-context.lo
+@LIBUNISTRING_COMPILE_UNICASE_LOCALE_LANGUAGE_TRUE@am__objects_3 = unicase/locale-language.lo
+@LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE@am__objects_4 =  \
+@LIBUNISTRING_COMPILE_UNICASE_TOLOWER_TRUE@    unicase/tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE@am__objects_5 =  \
+@LIBUNISTRING_COMPILE_UNICASE_TOTITLE_TRUE@    unicase/totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE@am__objects_6 =  \
+@LIBUNISTRING_COMPILE_UNICASE_TOUPPER_TRUE@    unicase/toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECMP_TRUE@am__objects_7 = unicase/u16-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASECOLL_TRUE@am__objects_8 = unicase/u16-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEFOLD_TRUE@am__objects_9 = unicase/u16-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CASEXFRM_TRUE@am__objects_10 = unicase/u16-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_CASEFOLD_TRUE@am__objects_11 = unicase/u16-ct-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOLOWER_TRUE@am__objects_12 = unicase/u16-ct-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOTITLE_TRUE@am__objects_13 = unicase/u16-ct-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_CT_TOUPPER_TRUE@am__objects_14 = unicase/u16-ct-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASED_TRUE@am__objects_15 = unicase/u16-is-cased.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_CASEFOLDED_TRUE@am__objects_16 = unicase/u16-is-casefolded.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_LOWERCASE_TRUE@am__objects_17 = unicase/u16-is-lowercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_TITLECASE_TRUE@am__objects_18 = unicase/u16-is-titlecase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_IS_UPPERCASE_TRUE@am__objects_19 = unicase/u16-is-uppercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOLOWER_TRUE@am__objects_20 = unicase/u16-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOTITLE_TRUE@am__objects_21 = unicase/u16-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U16_TOUPPER_TRUE@am__objects_22 = unicase/u16-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECMP_TRUE@am__objects_23 = unicase/u32-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASECOLL_TRUE@am__objects_24 = unicase/u32-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEFOLD_TRUE@am__objects_25 = unicase/u32-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CASEXFRM_TRUE@am__objects_26 = unicase/u32-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_CASEFOLD_TRUE@am__objects_27 = unicase/u32-ct-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOLOWER_TRUE@am__objects_28 = unicase/u32-ct-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOTITLE_TRUE@am__objects_29 = unicase/u32-ct-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_CT_TOUPPER_TRUE@am__objects_30 = unicase/u32-ct-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASED_TRUE@am__objects_31 = unicase/u32-is-cased.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_CASEFOLDED_TRUE@am__objects_32 = unicase/u32-is-casefolded.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_LOWERCASE_TRUE@am__objects_33 = unicase/u32-is-lowercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_TITLECASE_TRUE@am__objects_34 = unicase/u32-is-titlecase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_IS_UPPERCASE_TRUE@am__objects_35 = unicase/u32-is-uppercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOLOWER_TRUE@am__objects_36 = unicase/u32-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOTITLE_TRUE@am__objects_37 = unicase/u32-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U32_TOUPPER_TRUE@am__objects_38 = unicase/u32-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECMP_TRUE@am__objects_39 = unicase/u8-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASECOLL_TRUE@am__objects_40 = unicase/u8-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEFOLD_TRUE@am__objects_41 = unicase/u8-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CASEXFRM_TRUE@am__objects_42 = unicase/u8-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_CASEFOLD_TRUE@am__objects_43 = unicase/u8-ct-casefold.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOLOWER_TRUE@am__objects_44 = unicase/u8-ct-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOTITLE_TRUE@am__objects_45 = unicase/u8-ct-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_CT_TOUPPER_TRUE@am__objects_46 = unicase/u8-ct-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASED_TRUE@am__objects_47 = unicase/u8-is-cased.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_CASEFOLDED_TRUE@am__objects_48 = unicase/u8-is-casefolded.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_LOWERCASE_TRUE@am__objects_49 = unicase/u8-is-lowercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_TITLECASE_TRUE@am__objects_50 = unicase/u8-is-titlecase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_IS_UPPERCASE_TRUE@am__objects_51 = unicase/u8-is-uppercase.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOLOWER_TRUE@am__objects_52 = unicase/u8-tolower.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOTITLE_TRUE@am__objects_53 = unicase/u8-totitle.lo
+@LIBUNISTRING_COMPILE_UNICASE_U8_TOUPPER_TRUE@am__objects_54 = unicase/u8-toupper.lo
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECMP_TRUE@am__objects_55 = unicase/ulc-casecmp.lo
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASECOLL_TRUE@am__objects_56 = unicase/ulc-casecoll.lo
+@LIBUNISTRING_COMPILE_UNICASE_ULC_CASEXFRM_TRUE@am__objects_57 = unicase/ulc-casexfrm.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_FROM_ENC_TRUE@am__objects_58 = uniconv/u16-conv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_CONV_TO_ENC_TRUE@am__objects_59 = uniconv/u16-conv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_ENC_TRUE@am__objects_60 = uniconv/u16-strconv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_FROM_LOCALE_TRUE@am__objects_61 = uniconv/u16-strconv-from-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_ENC_TRUE@am__objects_62 = uniconv/u16-strconv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U16_STRCONV_TO_LOCALE_TRUE@am__objects_63 = uniconv/u16-strconv-to-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_FROM_ENC_TRUE@am__objects_64 = uniconv/u32-conv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_CONV_TO_ENC_TRUE@am__objects_65 = uniconv/u32-conv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_ENC_TRUE@am__objects_66 = uniconv/u32-strconv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_FROM_LOCALE_TRUE@am__objects_67 = uniconv/u32-strconv-from-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_ENC_TRUE@am__objects_68 = uniconv/u32-strconv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U32_STRCONV_TO_LOCALE_TRUE@am__objects_69 = uniconv/u32-strconv-to-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_FROM_ENC_TRUE@am__objects_70 = uniconv/u8-conv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_CONV_TO_ENC_TRUE@am__objects_71 = uniconv/u8-conv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_ENC_TRUE@am__objects_72 = uniconv/u8-strconv-from-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_FROM_LOCALE_TRUE@am__objects_73 = uniconv/u8-strconv-from-locale.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_ENC_TRUE@am__objects_74 = uniconv/u8-strconv-to-enc.lo
+@LIBUNISTRING_COMPILE_UNICONV_U8_STRCONV_TO_LOCALE_TRUE@am__objects_75 = uniconv/u8-strconv-to-locale.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_BYNAME_TRUE@am__objects_76 = unictype/bidi_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_LONGNAME_TRUE@am__objects_77 = unictype/bidi_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_NAME_TRUE@am__objects_78 = unictype/bidi_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_OF_TRUE@am__objects_79 = unictype/bidi_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BIDICLASS_TEST_TRUE@am__objects_80 = unictype/bidi_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_LIST_TRUE@am__objects_81 = unictype/blocks.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_BLOCK_TEST_TRUE@am__objects_82 = unictype/block_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_C_TRUE@am__objects_83 = unictype/categ_C.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CC_TRUE@am__objects_84 = unictype/categ_Cc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CF_TRUE@am__objects_85 = unictype/categ_Cf.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CN_TRUE@am__objects_86 = unictype/categ_Cn.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CO_TRUE@am__objects_87 = unictype/categ_Co.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_CS_TRUE@am__objects_88 = unictype/categ_Cs.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_L_TRUE@am__objects_89 = unictype/categ_L.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LC_TRUE@am__objects_90 = unictype/categ_LC.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LL_TRUE@am__objects_91 = unictype/categ_Ll.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LM_TRUE@am__objects_92 = unictype/categ_Lm.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LO_TRUE@am__objects_93 = unictype/categ_Lo.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LT_TRUE@am__objects_94 = unictype/categ_Lt.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LU_TRUE@am__objects_95 = unictype/categ_Lu.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_M_TRUE@am__objects_96 = unictype/categ_M.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MC_TRUE@am__objects_97 = unictype/categ_Mc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ME_TRUE@am__objects_98 = unictype/categ_Me.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_MN_TRUE@am__objects_99 = unictype/categ_Mn.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_N_TRUE@am__objects_100 = unictype/categ_N.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ND_TRUE@am__objects_101 = unictype/categ_Nd.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NL_TRUE@am__objects_102 = unictype/categ_Nl.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NO_TRUE@am__objects_103 = unictype/categ_No.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_P_TRUE@am__objects_104 = unictype/categ_P.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PC_TRUE@am__objects_105 = unictype/categ_Pc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PD_TRUE@am__objects_106 = unictype/categ_Pd.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PE_TRUE@am__objects_107 = unictype/categ_Pe.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PF_TRUE@am__objects_108 = unictype/categ_Pf.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PI_TRUE@am__objects_109 = unictype/categ_Pi.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PO_TRUE@am__objects_110 = unictype/categ_Po.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_PS_TRUE@am__objects_111 = unictype/categ_Ps.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_S_TRUE@am__objects_112 = unictype/categ_S.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SC_TRUE@am__objects_113 = unictype/categ_Sc.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SK_TRUE@am__objects_114 = unictype/categ_Sk.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SM_TRUE@am__objects_115 = unictype/categ_Sm.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_SO_TRUE@am__objects_116 = unictype/categ_So.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_Z_TRUE@am__objects_117 = unictype/categ_Z.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZL_TRUE@am__objects_118 = unictype/categ_Zl.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZP_TRUE@am__objects_119 = unictype/categ_Zp.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_ZS_TRUE@am__objects_120 = unictype/categ_Zs.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_TRUE@am__objects_121 = unictype/categ_and.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_AND_NOT_TRUE@am__objects_122 = unictype/categ_and_not.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_BYNAME_TRUE@am__objects_123 = unictype/categ_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_LONGNAME_TRUE@am__objects_124 = unictype/categ_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NAME_TRUE@am__objects_125 = unictype/categ_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_NONE_TRUE@am__objects_126 = unictype/categ_none.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OF_TRUE@am__objects_127 = unictype/categ_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_OR_TRUE@am__objects_128 = unictype/categ_or.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CATEGORY_TEST_TRUE@am__objects_129 = unictype/categ_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_TRUE@am__objects_130 = unictype/combiningclass.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_BYNAME_TRUE@am__objects_131 = unictype/combiningclass_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_LONGNAME_TRUE@am__objects_132 = unictype/combiningclass_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_COMBINING_CLASS_NAME_TRUE@am__objects_133 = unictype/combiningclass_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALNUM_TRUE@am__objects_134 = unictype/ctype_alnum.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_ALPHA_TRUE@am__objects_135 = unictype/ctype_alpha.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_BLANK_TRUE@am__objects_136 = unictype/ctype_blank.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_CNTRL_TRUE@am__objects_137 = unictype/ctype_cntrl.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_DIGIT_TRUE@am__objects_138 = unictype/ctype_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_GRAPH_TRUE@am__objects_139 = unictype/ctype_graph.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_LOWER_TRUE@am__objects_140 = unictype/ctype_lower.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PRINT_TRUE@am__objects_141 = unictype/ctype_print.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_PUNCT_TRUE@am__objects_142 = unictype/ctype_punct.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_SPACE_TRUE@am__objects_143 = unictype/ctype_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_UPPER_TRUE@am__objects_144 = unictype/ctype_upper.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_CTYPE_XDIGIT_TRUE@am__objects_145 = unictype/ctype_xdigit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_DECIMAL_DIGIT_TRUE@am__objects_146 = unictype/decdigit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE@am__objects_147 =  \
+@LIBUNISTRING_COMPILE_UNICTYPE_DIGIT_TRUE@     unictype/digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_BYNAME_TRUE@am__objects_148 = unictype/joininggroup_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_NAME_TRUE@am__objects_149 = unictype/joininggroup_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGGROUP_OF_TRUE@am__objects_150 = unictype/joininggroup_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_BYNAME_TRUE@am__objects_151 = unictype/joiningtype_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_LONGNAME_TRUE@am__objects_152 = unictype/joiningtype_longname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_NAME_TRUE@am__objects_153 = unictype/joiningtype_name.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_JOININGTYPE_OF_TRUE@am__objects_154 = unictype/joiningtype_of.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE@am__objects_155 =  \
+@LIBUNISTRING_COMPILE_UNICTYPE_MIRROR_TRUE@    unictype/mirror.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_NUMERIC_TRUE@am__objects_156 = unictype/numeric.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ALPHABETIC_TRUE@am__objects_157 = unictype/pr_alphabetic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ASCII_HEX_DIGIT_TRUE@am__objects_158 = unictype/pr_ascii_hex_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_DIGIT_TRUE@am__objects_159 = unictype/pr_bidi_arabic_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT_TRUE@am__objects_160 = unictype/pr_bidi_arabic_right_to_left.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BLOCK_SEPARATOR_TRUE@am__objects_161 = unictype/pr_bidi_block_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_BOUNDARY_NEUTRAL_TRUE@am__objects_162 = unictype/pr_bidi_boundary_neutral.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_COMMON_SEPARATOR_TRUE@am__objects_163 = unictype/pr_bidi_common_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_CONTROL_TRUE@am__objects_164 = unictype/pr_bidi_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE_TRUE@am__objects_165 = unictype/pr_bidi_embedding_or_override.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_SEPARATOR_TRUE@am__objects_166 = unictype/pr_bidi_eur_num_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUR_NUM_TERMINATOR_TRUE@am__objects_167 = unictype/pr_bidi_eur_num_terminator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_EUROPEAN_DIGIT_TRUE@am__objects_168 = unictype/pr_bidi_european_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT_TRUE@am__objects_169 = unictype/pr_bidi_hebrew_right_to_left.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_LEFT_TO_RIGHT_TRUE@am__objects_170 = unictype/pr_bidi_left_to_right.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_NON_SPACING_MARK_TRUE@am__objects_171 = unictype/pr_bidi_non_spacing_mark.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_OTHER_NEUTRAL_TRUE@am__objects_172 = unictype/pr_bidi_other_neutral.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_PDF_TRUE@am__objects_173 = unictype/pr_bidi_pdf.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_SEGMENT_SEPARATOR_TRUE@am__objects_174 = unictype/pr_bidi_segment_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BIDI_WHITESPACE_TRUE@am__objects_175 = unictype/pr_bidi_whitespace.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_BYNAME_TRUE@am__objects_176 = unictype/pr_byname.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASE_IGNORABLE_TRUE@am__objects_177 = unictype/pr_case_ignorable.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CASED_TRUE@am__objects_178 = unictype/pr_cased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEFOLDED_TRUE@am__objects_179 = unictype/pr_changes_when_casefolded.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_CASEMAPPED_TRUE@am__objects_180 = unictype/pr_changes_when_casemapped.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_LOWERCASED_TRUE@am__objects_181 = unictype/pr_changes_when_lowercased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_TITLECASED_TRUE@am__objects_182 = unictype/pr_changes_when_titlecased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CHANGES_WHEN_UPPERCASED_TRUE@am__objects_183 = unictype/pr_changes_when_uppercased.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMBINING_TRUE@am__objects_184 = unictype/pr_combining.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_COMPOSITE_TRUE@am__objects_185 = unictype/pr_composite.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_CURRENCY_SYMBOL_TRUE@am__objects_186 = unictype/pr_currency_symbol.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DASH_TRUE@am__objects_187 = unictype/pr_dash.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DECIMAL_DIGIT_TRUE@am__objects_188 = unictype/pr_decimal_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__objects_189 = unictype/pr_default_ignorable_code_point.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DEPRECATED_TRUE@am__objects_190 = unictype/pr_deprecated.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_DIACRITIC_TRUE@am__objects_191 = unictype/pr_diacritic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_EXTENDER_TRUE@am__objects_192 = unictype/pr_extender.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_FORMAT_CONTROL_TRUE@am__objects_193 = unictype/pr_format_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_BASE_TRUE@am__objects_194 = unictype/pr_grapheme_base.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_EXTEND_TRUE@am__objects_195 = unictype/pr_grapheme_extend.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_GRAPHEME_LINK_TRUE@am__objects_196 = unictype/pr_grapheme_link.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HEX_DIGIT_TRUE@am__objects_197 = unictype/pr_hex_digit.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_HYPHEN_TRUE@am__objects_198 = unictype/pr_hyphen.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_CONTINUE_TRUE@am__objects_199 = unictype/pr_id_continue.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ID_START_TRUE@am__objects_200 = unictype/pr_id_start.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDEOGRAPHIC_TRUE@am__objects_201 = unictype/pr_ideographic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_BINARY_OPERATOR_TRUE@am__objects_202 = unictype/pr_ids_binary_operator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IDS_TRINARY_OPERATOR_TRUE@am__objects_203 = unictype/pr_ids_trinary_operator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_IGNORABLE_CONTROL_TRUE@am__objects_204 = unictype/pr_ignorable_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ISO_CONTROL_TRUE@am__objects_205 = unictype/pr_iso_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_JOIN_CONTROL_TRUE@am__objects_206 = unictype/pr_join_control.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LEFT_OF_PAIR_TRUE@am__objects_207 = unictype/pr_left_of_pair.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LINE_SEPARATOR_TRUE@am__objects_208 = unictype/pr_line_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOGICAL_ORDER_EXCEPTION_TRUE@am__objects_209 = unictype/pr_logical_order_exception.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_LOWERCASE_TRUE@am__objects_210 = unictype/pr_lowercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_MATH_TRUE@am__objects_211 = unictype/pr_math.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NON_BREAK_TRUE@am__objects_212 = unictype/pr_non_break.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NOT_A_CHARACTER_TRUE@am__objects_213 = unictype/pr_not_a_character.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_NUMERIC_TRUE@am__objects_214 = unictype/pr_numeric.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ALPHABETIC_TRUE@am__objects_215 = unictype/pr_other_alphabetic.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT_TRUE@am__objects_216 = unictype/pr_other_default_ignorable_code_point.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_GRAPHEME_EXTEND_TRUE@am__objects_217 = unictype/pr_other_grapheme_extend.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_CONTINUE_TRUE@am__objects_218 = unictype/pr_other_id_continue.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_ID_START_TRUE@am__objects_219 = unictype/pr_other_id_start.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_LOWERCASE_TRUE@am__objects_220 = unictype/pr_other_lowercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_MATH_TRUE@am__objects_221 = unictype/pr_other_math.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_OTHER_UPPERCASE_TRUE@am__objects_222 = unictype/pr_other_uppercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PAIRED_PUNCTUATION_TRUE@am__objects_223 = unictype/pr_paired_punctuation.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PARAGRAPH_SEPARATOR_TRUE@am__objects_224 = unictype/pr_paragraph_separator.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_SYNTAX_TRUE@am__objects_225 = unictype/pr_pattern_syntax.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PATTERN_WHITE_SPACE_TRUE@am__objects_226 = unictype/pr_pattern_white_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PRIVATE_USE_TRUE@am__objects_227 = unictype/pr_private_use.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_PUNCTUATION_TRUE@am__objects_228 = unictype/pr_punctuation.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_QUOTATION_MARK_TRUE@am__objects_229 = unictype/pr_quotation_mark.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_RADICAL_TRUE@am__objects_230 = unictype/pr_radical.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SENTENCE_TERMINAL_TRUE@am__objects_231 = unictype/pr_sentence_terminal.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SOFT_DOTTED_TRUE@am__objects_232 = unictype/pr_soft_dotted.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_SPACE_TRUE@am__objects_233 = unictype/pr_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TERMINAL_PUNCTUATION_TRUE@am__objects_234 = unictype/pr_terminal_punctuation.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TEST_TRUE@am__objects_235 = unictype/pr_test.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_TITLECASE_TRUE@am__objects_236 = unictype/pr_titlecase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNASSIGNED_CODE_VALUE_TRUE@am__objects_237 = unictype/pr_unassigned_code_value.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UNIFIED_IDEOGRAPH_TRUE@am__objects_238 = unictype/pr_unified_ideograph.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_UPPERCASE_TRUE@am__objects_239 = unictype/pr_uppercase.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_VARIATION_SELECTOR_TRUE@am__objects_240 = unictype/pr_variation_selector.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_WHITE_SPACE_TRUE@am__objects_241 = unictype/pr_white_space.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_CONTINUE_TRUE@am__objects_242 = unictype/pr_xid_continue.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_XID_START_TRUE@am__objects_243 = unictype/pr_xid_start.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_PROPERTY_ZERO_WIDTH_TRUE@am__objects_244 = unictype/pr_zero_width.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SCRIPTS_TRUE@am__objects_245 = unictype/scripts.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_IDENT_TRUE@am__objects_246 = unictype/sy_c_ident.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_C_WHITESPACE_TRUE@am__objects_247 = unictype/sy_c_whitespace.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_IDENT_TRUE@am__objects_248 = unictype/sy_java_ident.lo
+@LIBUNISTRING_COMPILE_UNICTYPE_SYNTAX_JAVA_WHITESPACE_TRUE@am__objects_249 = unictype/sy_java_whitespace.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_BREAKS_TRUE@am__objects_250 = unigbrk/u16-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_NEXT_TRUE@am__objects_251 = unigbrk/u16-grapheme-next.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U16_GRAPHEME_PREV_TRUE@am__objects_252 = unigbrk/u16-grapheme-prev.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_BREAKS_TRUE@am__objects_253 = unigbrk/u32-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_NEXT_TRUE@am__objects_254 = unigbrk/u32-grapheme-next.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U32_GRAPHEME_PREV_TRUE@am__objects_255 = unigbrk/u32-grapheme-prev.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_BREAKS_TRUE@am__objects_256 = unigbrk/u8-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_NEXT_TRUE@am__objects_257 = unigbrk/u8-grapheme-next.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_U8_GRAPHEME_PREV_TRUE@am__objects_258 = unigbrk/u8-grapheme-prev.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_GBRK_PROP_TRUE@am__objects_259 = unigbrk/uc-gbrk-prop.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_UC_IS_GRAPHEME_BREAK_TRUE@am__objects_260 = unigbrk/uc-is-grapheme-break.lo
+@LIBUNISTRING_COMPILE_UNIGBRK_ULC_GRAPHEME_BREAKS_TRUE@am__objects_261 = unigbrk/ulc-grapheme-breaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U16_POSSIBLE_LINEBREAKS_TRUE@am__objects_262 = unilbrk/u16-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U16_WIDTH_LINEBREAKS_TRUE@am__objects_263 = unilbrk/u16-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U32_POSSIBLE_LINEBREAKS_TRUE@am__objects_264 = unilbrk/u32-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U32_WIDTH_LINEBREAKS_TRUE@am__objects_265 = unilbrk/u32-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U8_POSSIBLE_LINEBREAKS_TRUE@am__objects_266 = unilbrk/u8-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_U8_WIDTH_LINEBREAKS_TRUE@am__objects_267 = unilbrk/u8-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_POSSIBLE_LINEBREAKS_TRUE@am__objects_268 = unilbrk/ulc-possible-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNILBRK_ULC_WIDTH_LINEBREAKS_TRUE@am__objects_269 = unilbrk/ulc-width-linebreaks.lo
+@LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE@am__objects_270 =  \
+@LIBUNISTRING_COMPILE_UNINAME_UNINAME_TRUE@    uniname/uniname.lo
+@LIBUNISTRING_COMPILE_UNINORM_CANONICAL_DECOMPOSITION_TRUE@am__objects_271 = uninorm/canonical-decomposition.lo
+@LIBUNISTRING_COMPILE_UNINORM_COMPOSITION_TRUE@am__objects_272 = uninorm/composition.lo
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSING_FORM_TRUE@am__objects_273 = uninorm/decomposing-form.lo
+@LIBUNISTRING_COMPILE_UNINORM_DECOMPOSITION_TRUE@am__objects_274 = uninorm/decomposition.lo
+@LIBUNISTRING_COMPILE_UNINORM_FILTER_TRUE@am__objects_275 = uninorm/uninorm-filter.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE@am__objects_276 =  \
+@LIBUNISTRING_COMPILE_UNINORM_NFC_TRUE@        uninorm/nfc.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE@am__objects_277 =  \
+@LIBUNISTRING_COMPILE_UNINORM_NFD_TRUE@        uninorm/nfd.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE@am__objects_278 =  \
+@LIBUNISTRING_COMPILE_UNINORM_NFKC_TRUE@       uninorm/nfkc.lo
+@LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE@am__objects_279 =  \
+@LIBUNISTRING_COMPILE_UNINORM_NFKD_TRUE@       uninorm/nfkd.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMALIZE_TRUE@am__objects_280 = uninorm/u16-normalize.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCMP_TRUE@am__objects_281 = uninorm/u16-normcmp.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMCOLL_TRUE@am__objects_282 = uninorm/u16-normcoll.lo
+@LIBUNISTRING_COMPILE_UNINORM_U16_NORMXFRM_TRUE@am__objects_283 = uninorm/u16-normxfrm.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMALIZE_TRUE@am__objects_284 = uninorm/u32-normalize.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCMP_TRUE@am__objects_285 = uninorm/u32-normcmp.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMCOLL_TRUE@am__objects_286 = uninorm/u32-normcoll.lo
+@LIBUNISTRING_COMPILE_UNINORM_U32_NORMXFRM_TRUE@am__objects_287 = uninorm/u32-normxfrm.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMALIZE_TRUE@am__objects_288 = uninorm/u8-normalize.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCMP_TRUE@am__objects_289 = uninorm/u8-normcmp.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMCOLL_TRUE@am__objects_290 = uninorm/u8-normcoll.lo
+@LIBUNISTRING_COMPILE_UNINORM_U8_NORMXFRM_TRUE@am__objects_291 = uninorm/u8-normxfrm.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASNPRINTF_TRUE@am__objects_292 = unistdio/u16-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_ASPRINTF_TRUE@am__objects_293 = unistdio/u16-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SNPRINTF_TRUE@am__objects_294 = unistdio/u16-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_SPRINTF_TRUE@am__objects_295 = unistdio/u16-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASNPRINTF_TRUE@am__objects_296 = unistdio/u16-u16-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_ASPRINTF_TRUE@am__objects_297 = unistdio/u16-u16-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SNPRINTF_TRUE@am__objects_298 = unistdio/u16-u16-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_SPRINTF_TRUE@am__objects_299 = unistdio/u16-u16-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASNPRINTF_TRUE@am__objects_300 = unistdio/u16-u16-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VASPRINTF_TRUE@am__objects_301 = unistdio/u16-u16-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSNPRINTF_TRUE@am__objects_302 = unistdio/u16-u16-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_U16_VSPRINTF_TRUE@am__objects_303 = unistdio/u16-u16-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASNPRINTF_TRUE@am__objects_304 = unistdio/u16-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VASPRINTF_TRUE@am__objects_305 = unistdio/u16-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSNPRINTF_TRUE@am__objects_306 = unistdio/u16-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U16_VSPRINTF_TRUE@am__objects_307 = unistdio/u16-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASNPRINTF_TRUE@am__objects_308 = unistdio/u32-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_ASPRINTF_TRUE@am__objects_309 = unistdio/u32-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SNPRINTF_TRUE@am__objects_310 = unistdio/u32-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_SPRINTF_TRUE@am__objects_311 = unistdio/u32-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASNPRINTF_TRUE@am__objects_312 = unistdio/u32-u32-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_ASPRINTF_TRUE@am__objects_313 = unistdio/u32-u32-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SNPRINTF_TRUE@am__objects_314 = unistdio/u32-u32-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_SPRINTF_TRUE@am__objects_315 = unistdio/u32-u32-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASNPRINTF_TRUE@am__objects_316 = unistdio/u32-u32-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VASPRINTF_TRUE@am__objects_317 = unistdio/u32-u32-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSNPRINTF_TRUE@am__objects_318 = unistdio/u32-u32-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_U32_VSPRINTF_TRUE@am__objects_319 = unistdio/u32-u32-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASNPRINTF_TRUE@am__objects_320 = unistdio/u32-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VASPRINTF_TRUE@am__objects_321 = unistdio/u32-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSNPRINTF_TRUE@am__objects_322 = unistdio/u32-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U32_VSPRINTF_TRUE@am__objects_323 = unistdio/u32-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASNPRINTF_TRUE@am__objects_324 = unistdio/u8-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_ASPRINTF_TRUE@am__objects_325 = unistdio/u8-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SNPRINTF_TRUE@am__objects_326 = unistdio/u8-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_SPRINTF_TRUE@am__objects_327 = unistdio/u8-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASNPRINTF_TRUE@am__objects_328 = unistdio/u8-u8-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_ASPRINTF_TRUE@am__objects_329 = unistdio/u8-u8-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SNPRINTF_TRUE@am__objects_330 = unistdio/u8-u8-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_SPRINTF_TRUE@am__objects_331 = unistdio/u8-u8-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASNPRINTF_TRUE@am__objects_332 = unistdio/u8-u8-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VASPRINTF_TRUE@am__objects_333 = unistdio/u8-u8-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSNPRINTF_TRUE@am__objects_334 = unistdio/u8-u8-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_U8_VSPRINTF_TRUE@am__objects_335 = unistdio/u8-u8-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASNPRINTF_TRUE@am__objects_336 = unistdio/u8-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VASPRINTF_TRUE@am__objects_337 = unistdio/u8-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSNPRINTF_TRUE@am__objects_338 = unistdio/u8-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_U8_VSPRINTF_TRUE@am__objects_339 = unistdio/u8-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASNPRINTF_TRUE@am__objects_340 = unistdio/ulc-asnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_ASPRINTF_TRUE@am__objects_341 = unistdio/ulc-asprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_FPRINTF_TRUE@am__objects_342 = unistdio/ulc-fprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SNPRINTF_TRUE@am__objects_343 = unistdio/ulc-snprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_SPRINTF_TRUE@am__objects_344 = unistdio/ulc-sprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASNPRINTF_TRUE@am__objects_345 = unistdio/ulc-vasnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VASPRINTF_TRUE@am__objects_346 = unistdio/ulc-vasprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VFPRINTF_TRUE@am__objects_347 = unistdio/ulc-vfprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSNPRINTF_TRUE@am__objects_348 = unistdio/ulc-vsnprintf.lo
+@LIBUNISTRING_COMPILE_UNISTDIO_ULC_VSPRINTF_TRUE@am__objects_349 = unistdio/ulc-vsprintf.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHECK_TRUE@am__objects_350 = unistr/u16-check.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE@am__objects_351 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U16_CHR_TRUE@     unistr/u16-chr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE@am__objects_352 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP_TRUE@     unistr/u16-cmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE@am__objects_353 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U16_CMP2_TRUE@    unistr/u16-cmp2.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE@am__objects_354 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_TRUE@     unistr/u16-cpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_CPY_ALLOC_TRUE@am__objects_355 = unistr/u16-cpy-alloc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_ENDSWITH_TRUE@am__objects_356 = unistr/u16-endswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBLEN_TRUE@am__objects_357 = unistr/u16-mblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBSNLEN_TRUE@am__objects_358 = unistr/u16-mbsnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@am__objects_359 = unistr/u16-mbtouc.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_TRUE@  unistr/u16-mbtouc-aux.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@am__objects_360 = unistr/u16-mbtouc-unsafe.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUC_UNSAFE_TRUE@   unistr/u16-mbtouc-unsafe-aux.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MBTOUCR_TRUE@am__objects_361 = unistr/u16-mbtoucr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE@am__objects_362 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U16_MOVE_TRUE@    unistr/u16-move.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE@am__objects_363 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U16_NEXT_TRUE@    unistr/u16-next.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE@am__objects_364 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U16_PREV_TRUE@    unistr/u16-prev.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE@am__objects_365 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U16_SET_TRUE@     unistr/u16-set.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STARTSWITH_TRUE@am__objects_366 = unistr/u16-startswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPCPY_TRUE@am__objects_367 = unistr/u16-stpcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STPNCPY_TRUE@am__objects_368 = unistr/u16-stpncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCAT_TRUE@am__objects_369 = unistr/u16-strcat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCHR_TRUE@am__objects_370 = unistr/u16-strchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCMP_TRUE@am__objects_371 = unistr/u16-strcmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCOLL_TRUE@am__objects_372 = unistr/u16-strcoll.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCPY_TRUE@am__objects_373 = unistr/u16-strcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRCSPN_TRUE@am__objects_374 = unistr/u16-strcspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRDUP_TRUE@am__objects_375 = unistr/u16-strdup.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRLEN_TRUE@am__objects_376 = unistr/u16-strlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBLEN_TRUE@am__objects_377 = unistr/u16-strmblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRMBTOUC_TRUE@am__objects_378 = unistr/u16-strmbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCAT_TRUE@am__objects_379 = unistr/u16-strncat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCMP_TRUE@am__objects_380 = unistr/u16-strncmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNCPY_TRUE@am__objects_381 = unistr/u16-strncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRNLEN_TRUE@am__objects_382 = unistr/u16-strnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRPBRK_TRUE@am__objects_383 = unistr/u16-strpbrk.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRRCHR_TRUE@am__objects_384 = unistr/u16-strrchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSPN_TRUE@am__objects_385 = unistr/u16-strspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRSTR_TRUE@am__objects_386 = unistr/u16-strstr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_STRTOK_TRUE@am__objects_387 = unistr/u16-strtok.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U32_TRUE@am__objects_388 = unistr/u16-to-u32.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_TO_U8_TRUE@am__objects_389 = unistr/u16-to-u8.lo
+@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@am__objects_390 = unistr/u16-uctomb.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U16_UCTOMB_TRUE@  unistr/u16-uctomb-aux.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHECK_TRUE@am__objects_391 = unistr/u32-check.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE@am__objects_392 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U32_CHR_TRUE@     unistr/u32-chr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE@am__objects_393 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP_TRUE@     unistr/u32-cmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE@am__objects_394 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U32_CMP2_TRUE@    unistr/u32-cmp2.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE@am__objects_395 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_TRUE@     unistr/u32-cpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_CPY_ALLOC_TRUE@am__objects_396 = unistr/u32-cpy-alloc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_ENDSWITH_TRUE@am__objects_397 = unistr/u32-endswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBLEN_TRUE@am__objects_398 = unistr/u32-mblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBSNLEN_TRUE@am__objects_399 = unistr/u32-mbsnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_TRUE@am__objects_400 = unistr/u32-mbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUC_UNSAFE_TRUE@am__objects_401 = unistr/u32-mbtouc-unsafe.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MBTOUCR_TRUE@am__objects_402 = unistr/u32-mbtoucr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE@am__objects_403 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U32_MOVE_TRUE@    unistr/u32-move.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE@am__objects_404 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U32_NEXT_TRUE@    unistr/u32-next.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE@am__objects_405 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U32_PREV_TRUE@    unistr/u32-prev.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE@am__objects_406 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U32_SET_TRUE@     unistr/u32-set.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STARTSWITH_TRUE@am__objects_407 = unistr/u32-startswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPCPY_TRUE@am__objects_408 = unistr/u32-stpcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STPNCPY_TRUE@am__objects_409 = unistr/u32-stpncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCAT_TRUE@am__objects_410 = unistr/u32-strcat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCHR_TRUE@am__objects_411 = unistr/u32-strchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCMP_TRUE@am__objects_412 = unistr/u32-strcmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCOLL_TRUE@am__objects_413 = unistr/u32-strcoll.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCPY_TRUE@am__objects_414 = unistr/u32-strcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRCSPN_TRUE@am__objects_415 = unistr/u32-strcspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRDUP_TRUE@am__objects_416 = unistr/u32-strdup.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRLEN_TRUE@am__objects_417 = unistr/u32-strlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBLEN_TRUE@am__objects_418 = unistr/u32-strmblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRMBTOUC_TRUE@am__objects_419 = unistr/u32-strmbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCAT_TRUE@am__objects_420 = unistr/u32-strncat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCMP_TRUE@am__objects_421 = unistr/u32-strncmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNCPY_TRUE@am__objects_422 = unistr/u32-strncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRNLEN_TRUE@am__objects_423 = unistr/u32-strnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRPBRK_TRUE@am__objects_424 = unistr/u32-strpbrk.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRRCHR_TRUE@am__objects_425 = unistr/u32-strrchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSPN_TRUE@am__objects_426 = unistr/u32-strspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRSTR_TRUE@am__objects_427 = unistr/u32-strstr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_STRTOK_TRUE@am__objects_428 = unistr/u32-strtok.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U16_TRUE@am__objects_429 = unistr/u32-to-u16.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_TO_U8_TRUE@am__objects_430 = unistr/u32-to-u8.lo
+@LIBUNISTRING_COMPILE_UNISTR_U32_UCTOMB_TRUE@am__objects_431 = unistr/u32-uctomb.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@am__objects_432 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHECK_TRUE@    unistr/u8-check.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE@am__objects_433 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U8_CHR_TRUE@      unistr/u8-chr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE@am__objects_434 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP_TRUE@      unistr/u8-cmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE@am__objects_435 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U8_CMP2_TRUE@     unistr/u8-cmp2.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@am__objects_436 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_TRUE@      unistr/u8-cpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_CPY_ALLOC_TRUE@am__objects_437 = unistr/u8-cpy-alloc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_ENDSWITH_TRUE@am__objects_438 = unistr/u8-endswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@am__objects_439 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBLEN_TRUE@    unistr/u8-mblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBSNLEN_TRUE@am__objects_440 = unistr/u8-mbsnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@am__objects_441 = unistr/u8-mbtouc.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_TRUE@   unistr/u8-mbtouc-aux.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@am__objects_442 = unistr/u8-mbtouc-unsafe.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUC_UNSAFE_TRUE@    unistr/u8-mbtouc-unsafe-aux.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_443 = unistr/u8-mbtoucr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE@am__objects_444 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U8_MOVE_TRUE@     unistr/u8-move.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE@am__objects_445 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U8_NEXT_TRUE@     unistr/u8-next.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@am__objects_446 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U8_PREV_TRUE@     unistr/u8-prev.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@am__objects_447 =  \
+@LIBUNISTRING_COMPILE_UNISTR_U8_SET_TRUE@      unistr/u8-set.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STARTSWITH_TRUE@am__objects_448 = unistr/u8-startswith.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPCPY_TRUE@am__objects_449 = unistr/u8-stpcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STPNCPY_TRUE@am__objects_450 = unistr/u8-stpncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCAT_TRUE@am__objects_451 = unistr/u8-strcat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCHR_TRUE@am__objects_452 = unistr/u8-strchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCMP_TRUE@am__objects_453 = unistr/u8-strcmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCOLL_TRUE@am__objects_454 = unistr/u8-strcoll.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCPY_TRUE@am__objects_455 = unistr/u8-strcpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRCSPN_TRUE@am__objects_456 = unistr/u8-strcspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRDUP_TRUE@am__objects_457 = unistr/u8-strdup.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRLEN_TRUE@am__objects_458 = unistr/u8-strlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBLEN_TRUE@am__objects_459 = unistr/u8-strmblen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRMBTOUC_TRUE@am__objects_460 = unistr/u8-strmbtouc.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCAT_TRUE@am__objects_461 = unistr/u8-strncat.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCMP_TRUE@am__objects_462 = unistr/u8-strncmp.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNCPY_TRUE@am__objects_463 = unistr/u8-strncpy.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRNLEN_TRUE@am__objects_464 = unistr/u8-strnlen.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRPBRK_TRUE@am__objects_465 = unistr/u8-strpbrk.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRRCHR_TRUE@am__objects_466 = unistr/u8-strrchr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSPN_TRUE@am__objects_467 = unistr/u8-strspn.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRSTR_TRUE@am__objects_468 = unistr/u8-strstr.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_STRTOK_TRUE@am__objects_469 = unistr/u8-strtok.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U16_TRUE@am__objects_470 = unistr/u8-to-u16.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_TO_U32_TRUE@am__objects_471 = unistr/u8-to-u32.lo
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_472 = unistr/u8-uctomb.lo \
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@   unistr/u8-uctomb-aux.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_U16_WORDBREAKS_TRUE@am__objects_473 = uniwbrk/u16-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_U32_WORDBREAKS_TRUE@am__objects_474 = uniwbrk/u32-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_U8_WORDBREAKS_TRUE@am__objects_475 = uniwbrk/u8-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_ULC_WORDBREAKS_TRUE@am__objects_476 = uniwbrk/ulc-wordbreaks.lo
+@LIBUNISTRING_COMPILE_UNIWBRK_WORDBREAK_PROPERTY_TRUE@am__objects_477 = uniwbrk/wordbreak-property.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_STRWIDTH_TRUE@am__objects_478 = uniwidth/u16-strwidth.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U16_WIDTH_TRUE@am__objects_479 = uniwidth/u16-width.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_STRWIDTH_TRUE@am__objects_480 = uniwidth/u32-strwidth.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U32_WIDTH_TRUE@am__objects_481 = uniwidth/u32-width.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_STRWIDTH_TRUE@am__objects_482 = uniwidth/u8-strwidth.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_U8_WIDTH_TRUE@am__objects_483 = uniwidth/u8-width.lo
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_484 =  \
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@     uniwidth/width.lo
+@WOE32DLL_TRUE@am__objects_485 = ../woe32dll/unistring-exports.lo
+am_libunistring_la_OBJECTS = amemxfrm.lo c-ctype.lo c-strcasecmp.lo \
+       c-strncasecmp.lo localcharset.lo localename.lo \
+       glthread/lock.lo malloca.lo math.lo mbchar.lo mbiter.lo \
+       mbsnlen.lo memcmp2.lo printf-frexp.lo printf-frexpl.lo \
+       striconveh.lo striconveha.lo glthread/threadlib.lo \
+       unicase/cased.lo $(am__objects_1) $(am__objects_2) \
+       unicase/ignorable.lo $(am__objects_3) \
+       unicase/special-casing.lo unicase/tocasefold.lo \
+       $(am__objects_4) $(am__objects_5) $(am__objects_6) \
+       $(am__objects_7) $(am__objects_8) $(am__objects_9) \
+       unicase/u16-casemap.lo $(am__objects_10) $(am__objects_11) \
+       $(am__objects_12) $(am__objects_13) $(am__objects_14) \
+       $(am__objects_15) $(am__objects_16) \
+       unicase/u16-is-invariant.lo $(am__objects_17) \
+       $(am__objects_18) $(am__objects_19) $(am__objects_20) \
+       $(am__objects_21) $(am__objects_22) $(am__objects_23) \
+       $(am__objects_24) $(am__objects_25) unicase/u32-casemap.lo \
+       $(am__objects_26) $(am__objects_27) $(am__objects_28) \
+       $(am__objects_29) $(am__objects_30) $(am__objects_31) \
+       $(am__objects_32) unicase/u32-is-invariant.lo \
+       $(am__objects_33) $(am__objects_34) $(am__objects_35) \
+       $(am__objects_36) $(am__objects_37) $(am__objects_38) \
+       $(am__objects_39) $(am__objects_40) $(am__objects_41) \
+       unicase/u8-casemap.lo $(am__objects_42) $(am__objects_43) \
+       $(am__objects_44) $(am__objects_45) $(am__objects_46) \
+       $(am__objects_47) $(am__objects_48) unicase/u8-is-invariant.lo \
+       $(am__objects_49) $(am__objects_50) $(am__objects_51) \
+       $(am__objects_52) $(am__objects_53) $(am__objects_54) \
+       $(am__objects_55) $(am__objects_56) $(am__objects_57) \
+       $(am__objects_58) $(am__objects_59) $(am__objects_60) \
+       $(am__objects_61) $(am__objects_62) $(am__objects_63) \
+       $(am__objects_64) $(am__objects_65) $(am__objects_66) \
+       $(am__objects_67) $(am__objects_68) $(am__objects_69) \
+       $(am__objects_70) $(am__objects_71) $(am__objects_72) \
+       $(am__objects_73) $(am__objects_74) $(am__objects_75) \
+       $(am__objects_76) $(am__objects_77) $(am__objects_78) \
+       $(am__objects_79) $(am__objects_80) $(am__objects_81) \
+       $(am__objects_82) $(am__objects_83) $(am__objects_84) \
+       $(am__objects_85) $(am__objects_86) $(am__objects_87) \
+       $(am__objects_88) $(am__objects_89) $(am__objects_90) \
+       $(am__objects_91) $(am__objects_92) $(am__objects_93) \
+       $(am__objects_94) $(am__objects_95) $(am__objects_96) \
+       $(am__objects_97) $(am__objects_98) $(am__objects_99) \
+       $(am__objects_100) $(am__objects_101) $(am__objects_102) \
+       $(am__objects_103) $(am__objects_104) $(am__objects_105) \
+       $(am__objects_106) $(am__objects_107) $(am__objects_108) \
+       $(am__objects_109) $(am__objects_110) $(am__objects_111) \
+       $(am__objects_112) $(am__objects_113) $(am__objects_114) \
+       $(am__objects_115) $(am__objects_116) $(am__objects_117) \
+       $(am__objects_118) $(am__objects_119) $(am__objects_120) \
+       $(am__objects_121) $(am__objects_122) $(am__objects_123) \
+       $(am__objects_124) $(am__objects_125) $(am__objects_126) \
+       $(am__objects_127) $(am__objects_128) $(am__objects_129) \
+       $(am__objects_130) $(am__objects_131) $(am__objects_132) \
+       $(am__objects_133) $(am__objects_134) $(am__objects_135) \
+       $(am__objects_136) $(am__objects_137) $(am__objects_138) \
+       $(am__objects_139) $(am__objects_140) $(am__objects_141) \
+       $(am__objects_142) $(am__objects_143) $(am__objects_144) \
+       $(am__objects_145) $(am__objects_146) $(am__objects_147) \
+       $(am__objects_148) $(am__objects_149) $(am__objects_150) \
+       $(am__objects_151) $(am__objects_152) $(am__objects_153) \
+       $(am__objects_154) $(am__objects_155) $(am__objects_156) \
+       $(am__objects_157) $(am__objects_158) $(am__objects_159) \
+       $(am__objects_160) $(am__objects_161) $(am__objects_162) \
+       $(am__objects_163) $(am__objects_164) $(am__objects_165) \
+       $(am__objects_166) $(am__objects_167) $(am__objects_168) \
+       $(am__objects_169) $(am__objects_170) $(am__objects_171) \
+       $(am__objects_172) $(am__objects_173) $(am__objects_174) \
+       $(am__objects_175) $(am__objects_176) $(am__objects_177) \
+       $(am__objects_178) $(am__objects_179) $(am__objects_180) \
+       $(am__objects_181) $(am__objects_182) $(am__objects_183) \
+       $(am__objects_184) $(am__objects_185) $(am__objects_186) \
+       $(am__objects_187) $(am__objects_188) $(am__objects_189) \
+       $(am__objects_190) $(am__objects_191) $(am__objects_192) \
+       $(am__objects_193) $(am__objects_194) $(am__objects_195) \
+       $(am__objects_196) $(am__objects_197) $(am__objects_198) \
+       $(am__objects_199) $(am__objects_200) $(am__objects_201) \
+       $(am__objects_202) $(am__objects_203) $(am__objects_204) \
+       $(am__objects_205) $(am__objects_206) $(am__objects_207) \
+       $(am__objects_208) $(am__objects_209) $(am__objects_210) \
+       $(am__objects_211) $(am__objects_212) $(am__objects_213) \
+       $(am__objects_214) $(am__objects_215) $(am__objects_216) \
+       $(am__objects_217) $(am__objects_218) $(am__objects_219) \
+       $(am__objects_220) $(am__objects_221) $(am__objects_222) \
+       $(am__objects_223) $(am__objects_224) $(am__objects_225) \
+       $(am__objects_226) $(am__objects_227) $(am__objects_228) \
+       $(am__objects_229) $(am__objects_230) $(am__objects_231) \
+       $(am__objects_232) $(am__objects_233) $(am__objects_234) \
+       $(am__objects_235) $(am__objects_236) $(am__objects_237) \
+       $(am__objects_238) $(am__objects_239) $(am__objects_240) \
+       $(am__objects_241) $(am__objects_242) $(am__objects_243) \
+       $(am__objects_244) $(am__objects_245) $(am__objects_246) \
+       $(am__objects_247) $(am__objects_248) $(am__objects_249) \
+       $(am__objects_250) $(am__objects_251) $(am__objects_252) \
+       $(am__objects_253) $(am__objects_254) $(am__objects_255) \
+       $(am__objects_256) $(am__objects_257) $(am__objects_258) \
+       $(am__objects_259) $(am__objects_260) $(am__objects_261) \
+       unilbrk/lbrktables.lo $(am__objects_262) $(am__objects_263) \
+       $(am__objects_264) $(am__objects_265) $(am__objects_266) \
+       $(am__objects_267) unilbrk/ulc-common.lo $(am__objects_268) \
+       $(am__objects_269) $(am__objects_270) $(am__objects_271) \
+       uninorm/compat-decomposition.lo $(am__objects_272) \
+       uninorm/decompose-internal.lo $(am__objects_273) \
+       $(am__objects_274) uninorm/decomposition-table.lo \
+       $(am__objects_275) $(am__objects_276) $(am__objects_277) \
+       $(am__objects_278) $(am__objects_279) $(am__objects_280) \
+       $(am__objects_281) $(am__objects_282) $(am__objects_283) \
+       $(am__objects_284) $(am__objects_285) $(am__objects_286) \
+       $(am__objects_287) $(am__objects_288) $(am__objects_289) \
+       $(am__objects_290) $(am__objects_291) unistd.lo \
+       unistdio/u-printf-args.lo $(am__objects_292) \
+       $(am__objects_293) unistdio/u16-printf-parse.lo \
+       $(am__objects_294) $(am__objects_295) $(am__objects_296) \
+       $(am__objects_297) $(am__objects_298) $(am__objects_299) \
+       $(am__objects_300) $(am__objects_301) $(am__objects_302) \
+       $(am__objects_303) $(am__objects_304) $(am__objects_305) \
+       $(am__objects_306) $(am__objects_307) $(am__objects_308) \
+       $(am__objects_309) unistdio/u32-printf-parse.lo \
+       $(am__objects_310) $(am__objects_311) $(am__objects_312) \
+       $(am__objects_313) $(am__objects_314) $(am__objects_315) \
+       $(am__objects_316) $(am__objects_317) $(am__objects_318) \
+       $(am__objects_319) $(am__objects_320) $(am__objects_321) \
+       $(am__objects_322) $(am__objects_323) $(am__objects_324) \
+       $(am__objects_325) unistdio/u8-printf-parse.lo \
+       $(am__objects_326) $(am__objects_327) $(am__objects_328) \
+       $(am__objects_329) $(am__objects_330) $(am__objects_331) \
+       $(am__objects_332) $(am__objects_333) $(am__objects_334) \
+       $(am__objects_335) $(am__objects_336) $(am__objects_337) \
+       $(am__objects_338) $(am__objects_339) $(am__objects_340) \
+       $(am__objects_341) $(am__objects_342) \
+       unistdio/ulc-printf-parse.lo $(am__objects_343) \
+       $(am__objects_344) $(am__objects_345) $(am__objects_346) \
+       $(am__objects_347) $(am__objects_348) $(am__objects_349) \
+       $(am__objects_350) $(am__objects_351) $(am__objects_352) \
+       $(am__objects_353) $(am__objects_354) $(am__objects_355) \
+       $(am__objects_356) $(am__objects_357) $(am__objects_358) \
+       $(am__objects_359) $(am__objects_360) $(am__objects_361) \
+       $(am__objects_362) $(am__objects_363) $(am__objects_364) \
+       $(am__objects_365) $(am__objects_366) $(am__objects_367) \
+       $(am__objects_368) $(am__objects_369) $(am__objects_370) \
+       $(am__objects_371) $(am__objects_372) $(am__objects_373) \
+       $(am__objects_374) $(am__objects_375) $(am__objects_376) \
+       $(am__objects_377) $(am__objects_378) $(am__objects_379) \
+       $(am__objects_380) $(am__objects_381) $(am__objects_382) \
+       $(am__objects_383) $(am__objects_384) $(am__objects_385) \
+       $(am__objects_386) $(am__objects_387) $(am__objects_388) \
+       $(am__objects_389) $(am__objects_390) $(am__objects_391) \
+       $(am__objects_392) $(am__objects_393) $(am__objects_394) \
+       $(am__objects_395) $(am__objects_396) $(am__objects_397) \
+       $(am__objects_398) $(am__objects_399) $(am__objects_400) \
+       $(am__objects_401) $(am__objects_402) $(am__objects_403) \
+       $(am__objects_404) $(am__objects_405) $(am__objects_406) \
+       $(am__objects_407) $(am__objects_408) $(am__objects_409) \
+       $(am__objects_410) $(am__objects_411) $(am__objects_412) \
+       $(am__objects_413) $(am__objects_414) $(am__objects_415) \
+       $(am__objects_416) $(am__objects_417) $(am__objects_418) \
+       $(am__objects_419) $(am__objects_420) $(am__objects_421) \
+       $(am__objects_422) $(am__objects_423) $(am__objects_424) \
+       $(am__objects_425) $(am__objects_426) $(am__objects_427) \
+       $(am__objects_428) $(am__objects_429) $(am__objects_430) \
+       $(am__objects_431) $(am__objects_432) $(am__objects_433) \
+       $(am__objects_434) $(am__objects_435) $(am__objects_436) \
+       $(am__objects_437) $(am__objects_438) $(am__objects_439) \
+       $(am__objects_440) $(am__objects_441) $(am__objects_442) \
+       $(am__objects_443) $(am__objects_444) $(am__objects_445) \
+       $(am__objects_446) $(am__objects_447) $(am__objects_448) \
+       $(am__objects_449) $(am__objects_450) $(am__objects_451) \
+       $(am__objects_452) $(am__objects_453) $(am__objects_454) \
+       $(am__objects_455) $(am__objects_456) $(am__objects_457) \
+       $(am__objects_458) $(am__objects_459) $(am__objects_460) \
+       $(am__objects_461) $(am__objects_462) $(am__objects_463) \
+       $(am__objects_464) $(am__objects_465) $(am__objects_466) \
+       $(am__objects_467) $(am__objects_468) $(am__objects_469) \
+       $(am__objects_470) $(am__objects_471) $(am__objects_472) \
+       uniwbrk/wbrktable.lo $(am__objects_473) $(am__objects_474) \
+       $(am__objects_475) $(am__objects_476) $(am__objects_477) \
+       $(am__objects_478) $(am__objects_479) $(am__objects_480) \
+       $(am__objects_481) $(am__objects_482) $(am__objects_483) \
+       $(am__objects_484) wctype-h.lo xsize.lo version.lo \
+       $(am__objects_485)
 libunistring_la_OBJECTS = $(am_libunistring_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libunistring_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
        $(AM_CFLAGS) $(CFLAGS) $(libunistring_la_LDFLAGS) $(LDFLAGS) \
        -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp =
 am__depfiles_maybe =
@@ -674,30 +1737,49 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libunistring_la_SOURCES) $(EXTRA_libunistring_la_SOURCES)
 DIST_SOURCES = $(am__libunistring_la_SOURCES_DIST) \
        $(EXTRA_libunistring_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(nobase_include_HEADERS) $(nobase_nodist_include_HEADERS) \
        $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -705,6 +1787,7 @@ AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
+ARFLAGS = @ARFLAGS@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -744,38 +1827,97 @@ FGREP = @FGREP@
 FLOAT_H = @FLOAT_H@
 GLIBC21 = @GLIBC21@
 GLOBAL_SYMBOL_PIPE = @GLOBAL_SYMBOL_PIPE@
+GNULIB_ACOSF = @GNULIB_ACOSF@
 GNULIB_ACOSL = @GNULIB_ACOSL@
+GNULIB_ASINF = @GNULIB_ASINF@
 GNULIB_ASINL = @GNULIB_ASINL@
+GNULIB_ATAN2F = @GNULIB_ATAN2F@
+GNULIB_ATANF = @GNULIB_ATANF@
 GNULIB_ATANL = @GNULIB_ATANL@
 GNULIB_ATOLL = @GNULIB_ATOLL@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
+GNULIB_CBRT = @GNULIB_CBRT@
+GNULIB_CBRTF = @GNULIB_CBRTF@
+GNULIB_CBRTL = @GNULIB_CBRTL@
+GNULIB_CEIL = @GNULIB_CEIL@
 GNULIB_CEILF = @GNULIB_CEILF@
 GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_COPYSIGN = @GNULIB_COPYSIGN@
+GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@
+GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@
+GNULIB_COSF = @GNULIB_COSF@
+GNULIB_COSHF = @GNULIB_COSHF@
 GNULIB_COSL = @GNULIB_COSL@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
 GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXP2 = @GNULIB_EXP2@
+GNULIB_EXP2F = @GNULIB_EXP2F@
+GNULIB_EXP2L = @GNULIB_EXP2L@
+GNULIB_EXPF = @GNULIB_EXPF@
 GNULIB_EXPL = @GNULIB_EXPL@
+GNULIB_EXPM1 = @GNULIB_EXPM1@
+GNULIB_EXPM1F = @GNULIB_EXPM1F@
+GNULIB_EXPM1L = @GNULIB_EXPM1L@
+GNULIB_FABSF = @GNULIB_FABSF@
+GNULIB_FABSL = @GNULIB_FABSL@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
 GNULIB_FCHDIR = @GNULIB_FCHDIR@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
+GNULIB_FCLOSE = @GNULIB_FCLOSE@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FLOOR = @GNULIB_FLOOR@
 GNULIB_FLOORF = @GNULIB_FLOORF@
 GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FMA = @GNULIB_FMA@
+GNULIB_FMAF = @GNULIB_FMAF@
+GNULIB_FMAL = @GNULIB_FMAL@
+GNULIB_FMOD = @GNULIB_FMOD@
+GNULIB_FMODF = @GNULIB_FMODF@
+GNULIB_FMODL = @GNULIB_FMODL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF = @GNULIB_FPRINTF@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FPURGE = @GNULIB_FPURGE@
+GNULIB_FPUTC = @GNULIB_FPUTC@
+GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
 GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPF = @GNULIB_FREXPF@
 GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
 GNULIB_FSYNC = @GNULIB_FSYNC@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
 GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
 GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
 GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
+GNULIB_GETLINE = @GNULIB_GETLINE@
 GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
@@ -783,17 +1925,45 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_HYPOT = @GNULIB_HYPOT@
+GNULIB_HYPOTF = @GNULIB_HYPOTF@
+GNULIB_HYPOTL = @GNULIB_HYPOTL@
+GNULIB_ICONV = @GNULIB_ICONV@
+GNULIB_ILOGB = @GNULIB_ILOGB@
+GNULIB_ILOGBF = @GNULIB_ILOGBF@
+GNULIB_ILOGBL = @GNULIB_ILOGBL@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 GNULIB_ISFINITE = @GNULIB_ISFINITE@
 GNULIB_ISINF = @GNULIB_ISINF@
 GNULIB_ISNAN = @GNULIB_ISNAN@
 GNULIB_ISNAND = @GNULIB_ISNAND@
 GNULIB_ISNANF = @GNULIB_ISNANF@
 GNULIB_ISNANL = @GNULIB_ISNANL@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPF = @GNULIB_LDEXPF@
 GNULIB_LDEXPL = @GNULIB_LDEXPL@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOG = @GNULIB_LOG@
+GNULIB_LOG10 = @GNULIB_LOG10@
+GNULIB_LOG10F = @GNULIB_LOG10F@
+GNULIB_LOG10L = @GNULIB_LOG10L@
+GNULIB_LOG1P = @GNULIB_LOG1P@
+GNULIB_LOG1PF = @GNULIB_LOG1PF@
+GNULIB_LOG1PL = @GNULIB_LOG1PL@
+GNULIB_LOG2 = @GNULIB_LOG2@
+GNULIB_LOG2F = @GNULIB_LOG2F@
+GNULIB_LOG2L = @GNULIB_LOG2L@
 GNULIB_LOGB = @GNULIB_LOGB@
+GNULIB_LOGBF = @GNULIB_LOGBF@
+GNULIB_LOGBL = @GNULIB_LOGBL@
+GNULIB_LOGF = @GNULIB_LOGF@
 GNULIB_LOGL = @GNULIB_LOGL@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -816,6 +1986,7 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@
 GNULIB_MBSSPN = @GNULIB_MBSSPN@
 GNULIB_MBSSTR = @GNULIB_MBSSTR@
 GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MBTOWC = @GNULIB_MBTOWC@
 GNULIB_MEMCHR = @GNULIB_MEMCHR@
 GNULIB_MEMMEM = @GNULIB_MEMMEM@
 GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
@@ -825,32 +1996,73 @@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
 GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
 GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
 GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
+GNULIB_MODF = @GNULIB_MODF@
+GNULIB_MODFF = @GNULIB_MODFF@
+GNULIB_MODFL = @GNULIB_MODFL@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_POWF = @GNULIB_POWF@
 GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_REMAINDER = @GNULIB_REMAINDER@
+GNULIB_REMAINDERF = @GNULIB_REMAINDERF@
+GNULIB_REMAINDERL = @GNULIB_REMAINDERL@
+GNULIB_REMOVE = @GNULIB_REMOVE@
+GNULIB_RENAME = @GNULIB_RENAME@
+GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_RINT = @GNULIB_RINT@
+GNULIB_RINTF = @GNULIB_RINTF@
+GNULIB_RINTL = @GNULIB_RINTL@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_ROUND = @GNULIB_ROUND@
 GNULIB_ROUNDF = @GNULIB_ROUNDF@
 GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
 GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SINF = @GNULIB_SINF@
+GNULIB_SINHF = @GNULIB_SINHF@
 GNULIB_SINL = @GNULIB_SINL@
 GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_SQRTF = @GNULIB_SQRTF@
 GNULIB_SQRTL = @GNULIB_SQRTL@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
 GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
 GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
 GNULIB_STRDUP = @GNULIB_STRDUP@
 GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRERROR_R = @GNULIB_STRERROR_R@
 GNULIB_STRNCAT = @GNULIB_STRNCAT@
 GNULIB_STRNDUP = @GNULIB_STRNDUP@
 GNULIB_STRNLEN = @GNULIB_STRNLEN@
@@ -859,87 +2071,197 @@ GNULIB_STRSEP = @GNULIB_STRSEP@
 GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
 GNULIB_STRSTR = @GNULIB_STRSTR@
 GNULIB_STRTOD = @GNULIB_STRTOD@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
 GNULIB_STRTOLL = @GNULIB_STRTOLL@
 GNULIB_STRTOULL = @GNULIB_STRTOULL@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
+GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TANF = @GNULIB_TANF@
+GNULIB_TANHF = @GNULIB_TANHF@
 GNULIB_TANL = @GNULIB_TANL@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TRUNC = @GNULIB_TRUNC@
 GNULIB_TRUNCF = @GNULIB_TRUNCF@
 GNULIB_TRUNCL = @GNULIB_TRUNCL@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
 GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
 GNULIB_UNSETENV = @GNULIB_UNSETENV@
 GNULIB_USLEEP = @GNULIB_USLEEP@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
+GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
 GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
 GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
 GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
 GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACOSF = @HAVE_ACOSF@
 HAVE_ACOSL = @HAVE_ACOSL@
+HAVE_ASINF = @HAVE_ASINF@
 HAVE_ASINL = @HAVE_ASINL@
+HAVE_ATAN2F = @HAVE_ATAN2F@
+HAVE_ATANF = @HAVE_ATANF@
 HAVE_ATANL = @HAVE_ATANL@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CBRT = @HAVE_CBRT@
+HAVE_CBRTF = @HAVE_CBRTF@
+HAVE_CBRTL = @HAVE_CBRTL@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_COPYSIGN = @HAVE_COPYSIGN@
+HAVE_COPYSIGNL = @HAVE_COPYSIGNL@
+HAVE_COSF = @HAVE_COSF@
+HAVE_COSHF = @HAVE_COSHF@
 HAVE_COSL = @HAVE_COSL@
 HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
 HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
 HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@
+HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@
 HAVE_DECL_CEILF = @HAVE_DECL_CEILF@
 HAVE_DECL_CEILL = @HAVE_DECL_CEILL@
+HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@
 HAVE_DECL_COSL = @HAVE_DECL_COSL@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@
+HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@
+HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@
 HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@
 HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
 HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@
+HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@
+HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@
+HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@
 HAVE_DECL_LOGB = @HAVE_DECL_LOGB@
 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_REMAINDER = @HAVE_DECL_REMAINDER@
+HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@
+HAVE_DECL_RINTF = @HAVE_DECL_RINTF@
 HAVE_DECL_ROUND = @HAVE_DECL_ROUND@
 HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@
 HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
 HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
 HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
 HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
 HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
 HAVE_DECL_TANL = @HAVE_DECL_TANL@
 HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
 HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
 HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPF = @HAVE_EXPF@
 HAVE_EXPL = @HAVE_EXPL@
+HAVE_EXPM1 = @HAVE_EXPM1@
+HAVE_EXPM1F = @HAVE_EXPM1F@
+HAVE_FABSF = @HAVE_FABSF@
+HAVE_FABSL = @HAVE_FABSL@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FMA = @HAVE_FMA@
+HAVE_FMAF = @HAVE_FMAF@
+HAVE_FMAL = @HAVE_FMAL@
+HAVE_FMODF = @HAVE_FMODF@
+HAVE_FMODL = @HAVE_FMODL@
+HAVE_FREXPF = @HAVE_FREXPF@
+HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
 HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@
 HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
 HAVE_GETGROUPS = @HAVE_GETGROUPS@
 HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
@@ -948,6 +2270,12 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GLOBAL_SYMBOL_PIPE = @HAVE_GLOBAL_SYMBOL_PIPE@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_HYPOTF = @HAVE_HYPOTF@
+HAVE_HYPOTL = @HAVE_HYPOTL@
+HAVE_ILOGB = @HAVE_ILOGB@
+HAVE_ILOGBF = @HAVE_ILOGBF@
+HAVE_ILOGBL = @HAVE_ILOGBL@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISNAND = @HAVE_ISNAND@
 HAVE_ISNANF = @HAVE_ISNANF@
@@ -955,11 +2283,19 @@ HAVE_ISNANL = @HAVE_ISNANL@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
+HAVE_LOG10F = @HAVE_LOG10F@
+HAVE_LOG10L = @HAVE_LOG10L@
+HAVE_LOG1P = @HAVE_LOG1P@
+HAVE_LOG1PF = @HAVE_LOG1PF@
+HAVE_LOG1PL = @HAVE_LOG1PL@
+HAVE_LOGBF = @HAVE_LOGBF@
+HAVE_LOGBL = @HAVE_LOGBL@
+HAVE_LOGF = @HAVE_LOGF@
 HAVE_LOGL = @HAVE_LOGL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -973,24 +2309,45 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MODFF = @HAVE_MODFF@
+HAVE_MODFL = @HAVE_MODFL@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POWF = @HAVE_POWF@
 HAVE_PREAD = @HAVE_PREAD@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
 HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_REMAINDER = @HAVE_REMAINDER@
+HAVE_REMAINDERF = @HAVE_REMAINDERF@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_RINT = @HAVE_RINT@
+HAVE_RINTL = @HAVE_RINTL@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SINF = @HAVE_SINF@
+HAVE_SINHF = @HAVE_SINHF@
 HAVE_SINL = @HAVE_SINL@
 HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_SQRTF = @HAVE_SQRTF@
 HAVE_SQRTL = @HAVE_SQRTL@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -1011,24 +2368,59 @@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_TANF = @HAVE_TANF@
+HAVE_TANHF = @HAVE_TANHF@
 HAVE_TANL = @HAVE_TANL@
-HAVE_TTYNAME_R = @HAVE_TTYNAME_R@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
 HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_VDPRINTF = @HAVE_VDPRINTF@
 HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCHAR_T = @HAVE_WCHAR_T@
+HAVE_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
 HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
 HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
 HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
 HEXVERSION = @HEXVERSION@
+ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
@@ -1037,6 +2429,8 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 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@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
@@ -1050,9 +2444,22 @@ LIBS = @LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
+LIBUNISTRING_UNICASE_H = @LIBUNISTRING_UNICASE_H@
+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_UNINAME_H = @LIBUNISTRING_UNINAME_H@
+LIBUNISTRING_UNINORM_H = @LIBUNISTRING_UNINORM_H@
+LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@
+LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWBRK_H = @LIBUNISTRING_UNIWBRK_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+LOCALE_AR = @LOCALE_AR@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
 LOCALE_JA = @LOCALE_JA@
@@ -1065,29 +2472,36 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 NAMESPACING = @NAMESPACING@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_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@
+NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
 NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
+NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_ICONV_H = @NEXT_ICONV_H@
+NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
 NEXT_MATH_H = @NEXT_MATH_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
 NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
@@ -1106,86 +2520,192 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 RC = @RC@
 RELOCATABLE = @RELOCATABLE@
 REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CBRTF = @REPLACE_CBRTF@
+REPLACE_CBRTL = @REPLACE_CBRTL@
+REPLACE_CEIL = @REPLACE_CEIL@
 REPLACE_CEILF = @REPLACE_CEILF@
 REPLACE_CEILL = @REPLACE_CEILL@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_EXP2 = @REPLACE_EXP2@
+REPLACE_EXP2L = @REPLACE_EXP2L@
+REPLACE_EXPM1 = @REPLACE_EXPM1@
+REPLACE_EXPM1F = @REPLACE_EXPM1F@
+REPLACE_FABSL = @REPLACE_FABSL@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOOR = @REPLACE_FLOOR@
 REPLACE_FLOORF = @REPLACE_FLOORF@
 REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FMA = @REPLACE_FMA@
+REPLACE_FMAF = @REPLACE_FMAF@
+REPLACE_FMAL = @REPLACE_FMAL@
+REPLACE_FMOD = @REPLACE_FMOD@
+REPLACE_FMODF = @REPLACE_FMODF@
+REPLACE_FMODL = @REPLACE_FMODL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
 REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPF = @REPLACE_FREXPF@
 REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETDELIM = @REPLACE_GETDELIM@
+REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@
+REPLACE_HYPOT = @REPLACE_HYPOT@
+REPLACE_HYPOTF = @REPLACE_HYPOTF@
+REPLACE_HYPOTL = @REPLACE_HYPOTL@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_ILOGB = @REPLACE_ILOGB@
+REPLACE_ILOGBF = @REPLACE_ILOGBF@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISFINITE = @REPLACE_ISFINITE@
 REPLACE_ISINF = @REPLACE_ISINF@
 REPLACE_ISNAN = @REPLACE_ISNAN@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LDEXPL = @REPLACE_LDEXPL@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOG = @REPLACE_LOG@
+REPLACE_LOG10 = @REPLACE_LOG10@
+REPLACE_LOG10F = @REPLACE_LOG10F@
+REPLACE_LOG10L = @REPLACE_LOG10L@
+REPLACE_LOG1P = @REPLACE_LOG1P@
+REPLACE_LOG1PF = @REPLACE_LOG1PF@
+REPLACE_LOG1PL = @REPLACE_LOG1PL@
+REPLACE_LOG2 = @REPLACE_LOG2@
+REPLACE_LOG2F = @REPLACE_LOG2F@
+REPLACE_LOG2L = @REPLACE_LOG2L@
+REPLACE_LOGB = @REPLACE_LOGB@
+REPLACE_LOGBF = @REPLACE_LOGBF@
+REPLACE_LOGBL = @REPLACE_LOGBL@
+REPLACE_LOGF = @REPLACE_LOGF@
+REPLACE_LOGL = @REPLACE_LOGL@
 REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MALLOC = @REPLACE_MALLOC@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBTOWC = @REPLACE_MBTOWC@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_MODF = @REPLACE_MODF@
+REPLACE_MODFF = @REPLACE_MODFF@
+REPLACE_MODFL = @REPLACE_MODFL@
 REPLACE_NAN = @REPLACE_NAN@
 REPLACE_NULL = @REPLACE_NULL@
+REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
+REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
+REPLACE_REMAINDER = @REPLACE_REMAINDER@
+REPLACE_REMAINDERF = @REPLACE_REMAINDERF@
+REPLACE_REMAINDERL = @REPLACE_REMAINDERL@
+REPLACE_REMOVE = @REPLACE_REMOVE@
+REPLACE_RENAME = @REPLACE_RENAME@
+REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_ROUND = @REPLACE_ROUND@
 REPLACE_ROUNDF = @REPLACE_ROUNDF@
 REPLACE_ROUNDL = @REPLACE_ROUNDL@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
 REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
 REPLACE_SLEEP = @REPLACE_SLEEP@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_SQRTL = @REPLACE_SQRTL@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
 REPLACE_STRNCAT = @REPLACE_STRNCAT@
 REPLACE_STRNDUP = @REPLACE_STRNDUP@
 REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TRUNC = @REPLACE_TRUNC@
+REPLACE_TRUNCF = @REPLACE_TRUNCF@
 REPLACE_TRUNCL = @REPLACE_TRUNCL@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
 REPLACE_UNSETENV = @REPLACE_UNSETENV@
 REPLACE_USLEEP = @REPLACE_USLEEP@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
 SED = @SED@
@@ -1198,17 +2718,21 @@ STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
 TEXI2DVI = @TEXI2DVI@
+UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
+UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 VERSION = @VERSION@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 YIELD_LIB = @YIELD_LIB@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -1244,9 +2768,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+lispdir = @lispdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -1254,6 +2778,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -1265,27 +2790,32 @@ top_srcdir = @top_srcdir@
 AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects no-dependencies
 
 # Version information according to Woe32 conventions.
-EXTRA_DIST = alloca.in.h $(top_srcdir)/build-aux/arg-nonnull.h \
-       array-mergesort.h $(top_srcdir)/build-aux/c++defs.h \
-       c-strcaseeq.h errno.in.h float.in.h fpucw.h frexp.c frexpl.c \
-       fseterr.h stdio-impl.h $(top_srcdir)/build-aux/config.rpath \
-       iconv.in.h iconv_open-aix.h iconv_open-hpux.h \
-       iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h \
+EXTRA_DIST = alloca.in.h amemxfrm.h array-mergesort.h c-strcaseeq.h \
+       errno.in.h float.c float.in.h itold.c fpucw.h frexp.c frexp.c \
+       frexpl.c fseterr.c fseterr.h stdio-impl.h \
+       $(top_srcdir)/build-aux/config.rpath iconv.in.h \
+       iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h \
+       iconv_open-osf.h iconv_open-solaris.h iconv.c iconv_close.c \
        iconv_open-aix.gperf iconv_open-hpux.gperf \
        iconv_open-irix.gperf iconv_open-osf.gperf \
        iconv_open-solaris.gperf iconv_open.c float+.h isnan.c \
        isnand-nolibm.h isnand.c float+.h isnan.c isnanf-nolibm.h \
-       isnanf.c float+.h isnan.c isnanl-nolibm.h isnanl.c \
+       isnanf.c float+.h isnan.c isnanl-nolibm.h isnanl.c iswblank.c \
        config.charset ref-add.sin ref-del.sin localename.h malloc.c \
        malloca.h malloca.valgrind math.in.h mbchar.h mbrtowc.c \
-       mbsinit.c memchr.c memchr.valgrind memcmp2.h memxfrm.h \
-       printf-frexp.h printf-frexp.c printf-frexpl.h relocatable.c \
-       relocatable.h float+.h signbitd.c signbitf.c signbitl.c \
-       stdbool.in.h stddef.in.h stdint.in.h stdlib.in.h streq.h \
-       iconveh.h string.in.h strncat.c \
-       $(top_srcdir)/build-aux/config.rpath unicase.h unicase/cased.h \
-       unicase/caseprop.h unictype/bitmap.h unicase/caseprop.h \
-       unicase/ignorable.h unictype/bitmap.h \
+       mbsinit.c memchr.c memchr.valgrind memcmp2.h printf-frexp.h \
+       printf-frexp.c printf-frexpl.h relocatable.c relocatable.h \
+       float+.h signbitd.c signbitf.c signbitl.c \
+       $(top_srcdir)/build-aux/snippet/_Noreturn.h \
+       $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
+       $(top_srcdir)/build-aux/snippet/c++defs.h \
+       $(top_srcdir)/build-aux/snippet/unused-parameter.h \
+       $(top_srcdir)/build-aux/snippet/warn-on-use.h stdbool.in.h \
+       stddef.in.h stdint.in.h stdlib.in.h streq.h iconveh.h \
+       string.in.h strncat.c str-two-way.h strstr.c sys_types.in.h \
+       $(top_srcdir)/build-aux/config.rpath unicase.in.h \
+       unicase/cased.h unicase/caseprop.h unictype/bitmap.h \
+       unicase/caseprop.h unicase/ignorable.h unictype/bitmap.h \
        unicase/locale-languages.h unicase/locale-languages.gperf \
        unicase/special-casing-table.h \
        unicase/special-casing-table.gperf unicase/special-casing.h \
@@ -1311,26 +2841,31 @@ EXTRA_DIST = alloca.in.h $(top_srcdir)/build-aux/arg-nonnull.h \
        unicase/u-ct-totitle.h unicase/u-is-cased.h \
        unicase/invariant.h unicase/u-is-invariant.h \
        unicase/u-totitle.h unicase/u-casecmp.h unicase/u-casecoll.h \
-       iconveh.h localcharset.h striconveha.h uniconv.h \
+       iconveh.h localcharset.h striconveha.h uniconv.in.h \
        uniconv/u-conv-from-enc.h uniconv/u-conv-to-enc.h \
        uniconv/u-strconv-from-enc.h uniconv/u-strconv-to-enc.h \
        uniconv/u-conv-from-enc.h uniconv/u-conv-to-enc.h \
        uniconv/u-strconv-from-enc.h uniconv/u-strconv-to-enc.h \
-       uniconv/u-strconv-from-enc.h unictype.h unictype/bidi_of.h \
-       unictype/blocks.h unictype/categ_C.h unictype/categ_Cc.h \
-       unictype/categ_Cf.h unictype/categ_Cn.h unictype/categ_Co.h \
-       unictype/categ_Cs.h unictype/categ_L.h unictype/categ_Ll.h \
-       unictype/categ_Lm.h unictype/categ_Lo.h unictype/categ_Lt.h \
-       unictype/categ_Lu.h unictype/categ_M.h unictype/categ_Mc.h \
-       unictype/categ_Me.h unictype/categ_Mn.h unictype/categ_N.h \
-       unictype/categ_Nd.h unictype/categ_Nl.h unictype/categ_No.h \
-       unictype/categ_P.h unictype/categ_Pc.h unictype/categ_Pd.h \
-       unictype/categ_Pe.h unictype/categ_Pf.h unictype/categ_Pi.h \
-       unictype/categ_Po.h unictype/categ_Ps.h unictype/categ_S.h \
-       unictype/categ_Sc.h unictype/categ_Sk.h unictype/categ_Sm.h \
-       unictype/categ_So.h unictype/categ_Z.h unictype/categ_Zl.h \
-       unictype/categ_Zp.h unictype/categ_Zs.h unictype/categ_of.h \
-       unictype/bitmap.h unictype/combining.h unictype/bitmap.h \
+       uniconv/u-strconv-from-enc.h unictype.in.h \
+       unictype/bidi_byname.h unictype/bidi_byname.gperf \
+       unictype/bidi_of.h unictype/blocks.h unictype/categ_C.h \
+       unictype/categ_Cc.h unictype/categ_Cf.h unictype/categ_Cn.h \
+       unictype/categ_Co.h unictype/categ_Cs.h unictype/categ_L.h \
+       unictype/categ_LC.h unictype/categ_Ll.h unictype/categ_Lm.h \
+       unictype/categ_Lo.h unictype/categ_Lt.h unictype/categ_Lu.h \
+       unictype/categ_M.h unictype/categ_Mc.h unictype/categ_Me.h \
+       unictype/categ_Mn.h unictype/categ_N.h unictype/categ_Nd.h \
+       unictype/categ_Nl.h unictype/categ_No.h unictype/categ_P.h \
+       unictype/categ_Pc.h unictype/categ_Pd.h unictype/categ_Pe.h \
+       unictype/categ_Pf.h unictype/categ_Pi.h unictype/categ_Po.h \
+       unictype/categ_Ps.h unictype/categ_S.h unictype/categ_Sc.h \
+       unictype/categ_Sk.h unictype/categ_Sm.h unictype/categ_So.h \
+       unictype/categ_Z.h unictype/categ_Zl.h unictype/categ_Zp.h \
+       unictype/categ_Zs.h unictype/categ_byname.h \
+       unictype/categ_byname.gperf unictype/categ_of.h \
+       unictype/bitmap.h unictype/combiningclass.h \
+       unictype/combiningclass_byname.h \
+       unictype/combiningclass_byname.gperf unictype/bitmap.h \
        unictype/ctype_alnum.h unictype/bitmap.h \
        unictype/ctype_alpha.h unictype/bitmap.h \
        unictype/ctype_blank.h unictype/bitmap.h \
@@ -1343,6 +2878,11 @@ EXTRA_DIST = alloca.in.h $(top_srcdir)/build-aux/arg-nonnull.h \
        unictype/ctype_space.h unictype/bitmap.h \
        unictype/ctype_upper.h unictype/bitmap.h \
        unictype/ctype_xdigit.h unictype/decdigit.h unictype/digit.h \
+       unictype/joininggroup_byname.h \
+       unictype/joininggroup_byname.gperf \
+       unictype/joininggroup_name.h unictype/joininggroup_of.h \
+       unictype/joiningtype_byname.h \
+       unictype/joiningtype_byname.gperf unictype/joiningtype_of.h \
        unictype/mirror.h unictype/numeric.h unictype/bitmap.h \
        unictype/pr_alphabetic.h unictype/bitmap.h \
        unictype/pr_ascii_hex_digit.h unictype/bitmap.h \
@@ -1364,6 +2904,13 @@ EXTRA_DIST = alloca.in.h $(top_srcdir)/build-aux/arg-nonnull.h \
        unictype/pr_bidi_segment_separator.h unictype/bitmap.h \
        unictype/pr_bidi_whitespace.h unictype/pr_byname.h \
        unictype/pr_byname.gperf unictype/bitmap.h \
+       unictype/pr_case_ignorable.h unictype/bitmap.h \
+       unictype/pr_cased.h unictype/bitmap.h \
+       unictype/pr_changes_when_casefolded.h unictype/bitmap.h \
+       unictype/pr_changes_when_casemapped.h unictype/bitmap.h \
+       unictype/pr_changes_when_lowercased.h unictype/bitmap.h \
+       unictype/pr_changes_when_titlecased.h unictype/bitmap.h \
+       unictype/pr_changes_when_uppercased.h unictype/bitmap.h \
        unictype/pr_combining.h unictype/bitmap.h \
        unictype/pr_composite.h unictype/bitmap.h \
        unictype/pr_currency_symbol.h unictype/bitmap.h \
@@ -1424,11 +2971,12 @@ EXTRA_DIST = alloca.in.h $(top_srcdir)/build-aux/arg-nonnull.h \
        unictype/pr_zero_width.h unictype/scripts_byname.h \
        unictype/scripts.h unictype/scripts_byname.gperf \
        unictype/identsyntaxmap.h unictype/sy_c_ident.h \
-       unictype/identsyntaxmap.h unictype/sy_java_ident.h unilbrk.h \
+       unictype/identsyntaxmap.h unictype/sy_java_ident.h \
+       unigbrk.in.h unigbrk/gbrkprop.h unilbrk.in.h \
        unilbrk/lbrkprop1.h unilbrk/lbrkprop2.h unilbrk/lbrktables.h \
        uniwidth/cjk.h uniwidth/cjk.h uniwidth/cjk.h \
-       unilbrk/ulc-common.h uniname.h uniname/gen-uninames.lisp \
-       uniname/uninames.h uninorm.h uninorm/decompose-internal.h \
+       unilbrk/ulc-common.h uniname.in.h uniname/gen-uninames.lisp \
+       uniname/uninames.h uninorm.in.h uninorm/decompose-internal.h \
        uninorm/composition-table.h uninorm/composition-table.gperf \
        uninorm/decompose-internal.h uninorm/normalize-internal.h \
        uninorm/decomposition-table.h uninorm/decomposition-table1.h \
@@ -1441,7 +2989,7 @@ EXTRA_DIST = alloca.in.h $(top_srcdir)/build-aux/arg-nonnull.h \
        uninorm/u-normcmp.h uninorm/u-normcoll.h uninorm/u-normxfrm.h \
        uninorm/normalize-internal.h uninorm/u-normalize-internal.h \
        uninorm/u-normcmp.h uninorm/u-normcoll.h uninorm/u-normxfrm.h \
-       unistd.in.h unistdio.h printf-args.c printf-args.h \
+       unistd.in.h unistdio.in.h printf-args.c printf-args.h \
        unistdio/u-printf-args.h unistdio/u-asnprintf.h \
        unistdio/u-asprintf.h printf-parse.c printf-parse.h \
        unistdio/u-printf-parse.h unistdio/u-snprintf.h \
@@ -1470,34 +3018,33 @@ EXTRA_DIST = alloca.in.h $(top_srcdir)/build-aux/arg-nonnull.h \
        unistdio/u-asprintf.h printf-parse.c printf-parse.h \
        unistdio/u-printf-parse.h unistdio/u-snprintf.h \
        unistdio/u-sprintf.h vasnprintf.c unistdio/u-vasprintf.h \
-       unistdio/u-vsnprintf.h unistdio/u-vsprintf.h unistr.h \
+       unistdio/u-vsnprintf.h unistdio/u-vsprintf.h unistr.in.h \
        unistr/u-cmp2.h unistr/u-cpy.h unistr/u-cpy-alloc.h \
        unistr/u-endswith.h unistr/u-move.h unistr/u-set.h \
        unistr/u-startswith.h unistr/u-stpcpy.h unistr/u-stpncpy.h \
        unistr/u-strcat.h unistr/u-strcoll.h unistr/u-strcpy.h \
        unistr/u-strcspn.h unistr/u-strdup.h unistr/u-strlen.h \
        unistr/u-strncat.h unistr/u-strncpy.h unistr/u-strnlen.h \
-       unistr/u-strpbrk.h unistr/u-strspn.h unistr/u-strstr.h \
-       unistr/u-strtok.h unistr/u-cmp2.h unistr/u-cpy.h \
-       unistr/u-cpy-alloc.h unistr/u-endswith.h unistr/u-move.h \
-       unistr/u-set.h unistr/u-startswith.h unistr/u-stpcpy.h \
-       unistr/u-stpncpy.h unistr/u-strcat.h unistr/u-strcoll.h \
-       unistr/u-strcpy.h unistr/u-strdup.h unistr/u-strlen.h \
-       unistr/u-strncat.h unistr/u-strncpy.h unistr/u-strnlen.h \
+       unistr/u-strpbrk.h unistr/u-strspn.h str-kmp.h \
        unistr/u-strstr.h unistr/u-strtok.h unistr/u-cmp2.h \
        unistr/u-cpy.h unistr/u-cpy-alloc.h unistr/u-endswith.h \
-       unistr/u-move.h unistr/u-startswith.h unistr/u-stpcpy.h \
-       unistr/u-stpncpy.h unistr/u-strcoll.h unistr/u-strcspn.h \
-       unistr/u-strdup.h unistr/u-strnlen.h unistr/u-strpbrk.h \
-       unistr/u-strspn.h unistr/u-strstr.h unistr/u-strtok.h \
-       unitypes.h uniwbrk.h uniwbrk/wbrktable.h \
+       unistr/u-move.h unistr/u-set.h unistr/u-startswith.h \
+       unistr/u-stpcpy.h unistr/u-stpncpy.h unistr/u-strcat.h \
+       unistr/u-strcoll.h unistr/u-strcpy.h unistr/u-strdup.h \
+       unistr/u-strlen.h unistr/u-strncat.h unistr/u-strncpy.h \
+       unistr/u-strnlen.h str-kmp.h unistr/u-strstr.h \
+       unistr/u-strtok.h unistr/u-cmp2.h unistr/u-cpy.h \
+       unistr/u-cpy-alloc.h unistr/u-endswith.h unistr/u-move.h \
+       unistr/u-startswith.h unistr/u-stpcpy.h unistr/u-stpncpy.h \
+       unistr/u-strcoll.h unistr/u-strcspn.h unistr/u-strdup.h \
+       unistr/u-strnlen.h unistr/u-strpbrk.h unistr/u-strspn.h \
+       unistr/u-strstr.h unistr/u-strtok.h unitypes.in.h uniwbrk.in.h \
+       uniwbrk/wbrktable.h uniwbrk/u-wordbreaks.h \
        uniwbrk/u-wordbreaks.h uniwbrk/u-wordbreaks.h \
-       uniwbrk/u-wordbreaks.h uniwbrk/wbrkprop.h localcharset.h \
-       uniwidth.h uniwidth/cjk.h \
-       $(top_srcdir)/build-aux/unused-parameter.h \
-       $(top_srcdir)/build-aux/warn-on-use.h wchar.in.h wctype.in.h \
-       wcwidth.c stdbool.mini.h stdint.mini.h unistring/cdefs.in.h \
-       libunistring.sym declared.sh libunistring.rc
+       uniwbrk/wbrkprop.h localcharset.h uniwidth.in.h uniwidth/cjk.h \
+       verify.h wchar.in.h wctype.in.h wcwidth.c stdbool.mini.h \
+       stdint.mini.h unistring/cdefs.in.h libunistring.sym \
+       declared.sh libunistring.rc
 
 # The BUILT_SOURCES created by this Makefile snippet are not used via #include
 # statements but through direct file reference. Therefore this snippet must be
@@ -1513,33 +3060,52 @@ EXTRA_DIST = alloca.in.h $(top_srcdir)/build-aux/arg-nonnull.h \
 # statements but through direct file reference. Therefore this snippet must be
 # present in all Makefile.am that need it. This is ensured by the applicability
 # 'all' defined above.
-BUILT_SOURCES = $(ALLOCA_H) arg-nonnull.h c++defs.h configmake.h \
-       $(ERRNO_H) $(FLOAT_H) $(ICONV_H) iconv_open-aix.h \
-       iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h \
-       iconv_open-solaris.h math.h $(STDBOOL_H) $(STDDEF_H) \
-       $(STDINT_H) stdlib.h string.h unicase/locale-languages.h \
-       unicase/special-casing-table.h unictype/pr_byname.h \
-       unictype/scripts_byname.h uninorm/composition-table.h unistd.h \
-       unused-parameter.h warn-on-use.h wchar.h wctype.h \
+BUILT_SOURCES = $(ALLOCA_H) configmake.h $(ERRNO_H) $(FLOAT_H) \
+       $(ICONV_H) iconv_open-aix.h iconv_open-hpux.h \
+       iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h math.h \
+       arg-nonnull.h c++defs.h unused-parameter.h warn-on-use.h \
+       $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) stdlib.h string.h \
+       sys/types.h $(LIBUNISTRING_UNICASE_H) \
+       unicase/locale-languages.h unicase/special-casing-table.h \
+       $(LIBUNISTRING_UNICONV_H) $(LIBUNISTRING_UNICTYPE_H) \
+       unictype/bidi_byname.h unictype/categ_byname.h \
+       unictype/combiningclass_byname.h \
+       unictype/joininggroup_byname.h unictype/joiningtype_byname.h \
+       unictype/pr_byname.h unictype/scripts_byname.h \
+       $(LIBUNISTRING_UNIGBRK_H) $(LIBUNISTRING_UNILBRK_H) \
+       $(LIBUNISTRING_UNINAME_H) $(LIBUNISTRING_UNINORM_H) \
+       uninorm/composition-table.h unistd.h \
+       $(LIBUNISTRING_UNISTDIO_H) $(LIBUNISTRING_UNISTR_H) \
+       $(LIBUNISTRING_UNITYPES_H) $(LIBUNISTRING_UNIWBRK_H) \
+       $(LIBUNISTRING_UNIWIDTH_H) wchar.h wctype.h \
        unistring/stdbool.h unistring/stdint.h \
        unistring/localcharset.h unistring/iconveh.h unistring/cdefs.h
 # We distribute it because declared.sh relies on GNU sed.
 MOSTLYCLEANFILES = core *.stackdump core *.stackdump alloca.h \
-       alloca.h-t arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \
-       errno.h errno.h-t float.h float.h-t iconv.h iconv.h-t \
-       iconv_open-aix.h-t iconv_open-hpux.h-t iconv_open-irix.h-t \
-       iconv_open-osf.h-t iconv_open-solaris.h-t math.h math.h-t \
-       stdbool.h stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t \
-       stdlib.h stdlib.h-t string.h string.h-t \
+       alloca.h-t errno.h errno.h-t float.h float.h-t iconv.h \
+       iconv.h-t iconv_open-aix.h-t iconv_open-hpux.h-t \
+       iconv_open-irix.h-t iconv_open-osf.h-t iconv_open-solaris.h-t \
+       math.h math.h-t arg-nonnull.h arg-nonnull.h-t c++defs.h \
+       c++defs.h-t unused-parameter.h unused-parameter.h-t \
+       warn-on-use.h warn-on-use.h-t stdbool.h stdbool.h-t stddef.h \
+       stddef.h-t stdint.h stdint.h-t stdlib.h stdlib.h-t string.h \
+       string.h-t sys/types.h sys/types.h-t unicase.h unicase.h-t \
        unicase/locale-languages.h-t unicase/special-casing-table.h-t \
-       unictype/pr_byname.h-t unictype/scripts_byname.h-t \
-       uninorm/composition-table.h-t unistd.h unistd.h-t \
-       unused-parameter.h unused-parameter.h-t warn-on-use.h \
-       warn-on-use.h-t wchar.h wchar.h-t wctype.h wctype.h-t \
-       unistring/stdbool.h-t unistring/stdint.h-t \
-       unistring/localcharset.h-t unistring/iconveh.h-t \
-       unistring/cdefs.h-t libunistring.sym-t config.h config.h-t \
-       $(am__append_4)
+       uniconv.h uniconv.h-t unictype.h unictype.h-t \
+       unictype/bidi_byname.h-t unictype/categ_byname.h-t \
+       unictype/combiningclass_byname.h-t \
+       unictype/joininggroup_byname.h-t \
+       unictype/joiningtype_byname.h-t unictype/pr_byname.h-t \
+       unictype/scripts_byname.h-t unigbrk.h unigbrk.h-t unilbrk.h \
+       unilbrk.h-t uniname.h uniname.h-t uninorm.h uninorm.h-t \
+       uninorm/composition-table.h-t unistd.h unistd.h-t unistdio.h \
+       unistdio.h-t unistr.h unistr.h-t unitypes.h unitypes.h-t \
+       uniwbrk.h uniwbrk.h-t uniwidth.h uniwidth.h-t wchar.h \
+       wchar.h-t wctype.h wctype.h-t unistring/stdbool.h-t \
+       unistring/stdint.h-t unistring/localcharset.h-t \
+       unistring/iconveh.h-t unistring/cdefs.h-t libunistring.sym-t \
+       config.h config.h-t $(am__append_488)
+MOSTLYCLEANDIRS = 
 CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
        ref-del.sed unistring/stdbool.h unistring/stdint.h \
        unistring/localcharset.h unistring/iconveh.h unistring/cdefs.h
@@ -1547,6 +3113,9 @@ DISTCLEANFILES =
 MAINTAINERCLEANFILES = iconv_open-aix.h iconv_open-hpux.h \
        iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h \
        unicase/locale-languages.h unicase/special-casing-table.h \
+       unictype/bidi_byname.h unictype/categ_byname.h \
+       unictype/combiningclass_byname.h \
+       unictype/joininggroup_byname.h unictype/joiningtype_byname.h \
        unictype/pr_byname.h unictype/scripts_byname.h \
        uninorm/composition-table.h libunistring.sym
 SUFFIXES = .sed .sin
@@ -1559,6 +3128,7 @@ nobase_include_HEADERS = \
   uniname.h \
   unictype.h \
   uniwidth.h \
+  unigbrk.h \
   uniwbrk.h \
   unilbrk.h \
   uninorm.h \
@@ -1576,256 +3146,217 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_builddir) -I$(top_srcdir) \
 # Rules generated and collected by gnulib-tool.
 
 # Additional source files.
-libunistring_la_SOURCES = c-ctype.h c-ctype.c c-strcase.h \
-       c-strcasecmp.c c-strncasecmp.c fseterr.c localcharset.h \
-       localcharset.c localename.c glthread/lock.h glthread/lock.c \
-       malloca.c mbchar.c mbiter.h mbsnlen.c memcmp2.c memxfrm.c \
-       minmax.h printf-frexp.c printf-frexpl.c size_max.h \
-       striconveh.h striconveh.c striconveha.h striconveha.c \
-       glthread/threadlib.c unicase/cased.c \
-       unicase/empty-prefix-context.c unicase/empty-suffix-context.c \
-       unicase/ignorable.c unicase/locale-language.c \
-       unicase/special-casing.c unicase/tocasefold.c \
-       unicase/tolower.c unicase/totitle.c unicase/toupper.c \
-       unicase/u16-casecmp.c unicase/u16-casecoll.c \
-       unicase/u16-casefold.c unicase/u16-casemap.c \
-       unicase/u16-casexfrm.c unicase/u16-ct-casefold.c \
-       unicase/u16-ct-tolower.c unicase/u16-ct-totitle.c \
-       unicase/u16-ct-toupper.c unicase/u16-is-cased.c \
-       unicase/u16-is-casefolded.c unicase/u16-is-invariant.c \
-       unicase/u16-is-lowercase.c unicase/u16-is-titlecase.c \
-       unicase/u16-is-uppercase.c unicase/u16-tolower.c \
-       unicase/u16-totitle.c unicase/u16-toupper.c \
-       unicase/u32-casecmp.c unicase/u32-casecoll.c \
-       unicase/u32-casefold.c unicase/u32-casemap.c \
-       unicase/u32-casexfrm.c unicase/u32-ct-casefold.c \
-       unicase/u32-ct-tolower.c unicase/u32-ct-totitle.c \
-       unicase/u32-ct-toupper.c unicase/u32-is-cased.c \
-       unicase/u32-is-casefolded.c unicase/u32-is-invariant.c \
-       unicase/u32-is-lowercase.c unicase/u32-is-titlecase.c \
-       unicase/u32-is-uppercase.c unicase/u32-tolower.c \
-       unicase/u32-totitle.c unicase/u32-toupper.c \
-       unicase/u8-casecmp.c unicase/u8-casecoll.c \
-       unicase/u8-casefold.c unicase/u8-casemap.c \
-       unicase/u8-casexfrm.c unicase/u8-ct-casefold.c \
-       unicase/u8-ct-tolower.c unicase/u8-ct-totitle.c \
-       unicase/u8-ct-toupper.c unicase/u8-is-cased.c \
-       unicase/u8-is-casefolded.c unicase/u8-is-invariant.c \
-       unicase/u8-is-lowercase.c unicase/u8-is-titlecase.c \
-       unicase/u8-is-uppercase.c unicase/u8-tolower.c \
-       unicase/u8-totitle.c unicase/u8-toupper.c \
-       unicase/ulc-casecmp.c unicase/ulc-casecoll.c \
-       unicase/ulc-casexfrm.c uniconv/u16-conv-from-enc.c \
-       uniconv/u16-conv-to-enc.c uniconv/u16-strconv-from-enc.c \
-       uniconv/u16-strconv-from-locale.c uniconv/u16-strconv-to-enc.c \
-       uniconv/u16-strconv-to-locale.c uniconv/u32-conv-from-enc.c \
-       uniconv/u32-conv-to-enc.c uniconv/u32-strconv-from-enc.c \
-       uniconv/u32-strconv-from-locale.c uniconv/u32-strconv-to-enc.c \
-       uniconv/u32-strconv-to-locale.c uniconv/u8-conv-from-enc.c \
-       uniconv/u8-conv-to-enc.c uniconv/u8-strconv-from-enc.c \
-       uniconv/u8-strconv-from-locale.c uniconv/u8-strconv-to-enc.c \
-       uniconv/u8-strconv-to-locale.c unictype/bidi_byname.c \
-       unictype/bidi_name.c unictype/bidi_of.c unictype/bidi_test.c \
-       unictype/blocks.c unictype/block_test.c unictype/categ_C.c \
-       unictype/categ_Cc.c unictype/categ_Cf.c unictype/categ_Cn.c \
-       unictype/categ_Co.c unictype/categ_Cs.c unictype/categ_L.c \
-       unictype/categ_Ll.c unictype/categ_Lm.c unictype/categ_Lo.c \
-       unictype/categ_Lt.c unictype/categ_Lu.c unictype/categ_M.c \
-       unictype/categ_Mc.c unictype/categ_Me.c unictype/categ_Mn.c \
-       unictype/categ_N.c unictype/categ_Nd.c unictype/categ_Nl.c \
-       unictype/categ_No.c unictype/categ_P.c unictype/categ_Pc.c \
-       unictype/categ_Pd.c unictype/categ_Pe.c unictype/categ_Pf.c \
-       unictype/categ_Pi.c unictype/categ_Po.c unictype/categ_Ps.c \
-       unictype/categ_S.c unictype/categ_Sc.c unictype/categ_Sk.c \
-       unictype/categ_Sm.c unictype/categ_So.c unictype/categ_Z.c \
-       unictype/categ_Zl.c unictype/categ_Zp.c unictype/categ_Zs.c \
-       unictype/categ_and.c unictype/categ_and_not.c \
-       unictype/categ_byname.c unictype/categ_name.c \
-       unictype/categ_none.c unictype/categ_of.c unictype/categ_or.c \
-       unictype/categ_test.c unictype/combining.c \
-       unictype/ctype_alnum.c unictype/ctype_alpha.c \
-       unictype/ctype_blank.c unictype/ctype_cntrl.c \
-       unictype/ctype_digit.c unictype/ctype_graph.c \
-       unictype/ctype_lower.c unictype/ctype_print.c \
-       unictype/ctype_punct.c unictype/ctype_space.c \
-       unictype/ctype_upper.c unictype/ctype_xdigit.c \
-       unictype/decdigit.c unictype/digit.c unictype/mirror.c \
-       unictype/numeric.c unictype/pr_alphabetic.c \
-       unictype/pr_ascii_hex_digit.c unictype/pr_bidi_arabic_digit.c \
-       unictype/pr_bidi_arabic_right_to_left.c \
-       unictype/pr_bidi_block_separator.c \
-       unictype/pr_bidi_boundary_neutral.c \
-       unictype/pr_bidi_common_separator.c unictype/pr_bidi_control.c \
-       unictype/pr_bidi_embedding_or_override.c \
-       unictype/pr_bidi_eur_num_separator.c \
-       unictype/pr_bidi_eur_num_terminator.c \
-       unictype/pr_bidi_european_digit.c \
-       unictype/pr_bidi_hebrew_right_to_left.c \
-       unictype/pr_bidi_left_to_right.c \
-       unictype/pr_bidi_non_spacing_mark.c \
-       unictype/pr_bidi_other_neutral.c unictype/pr_bidi_pdf.c \
-       unictype/pr_bidi_segment_separator.c \
-       unictype/pr_bidi_whitespace.c unictype/pr_byname.c \
-       unictype/pr_combining.c unictype/pr_composite.c \
-       unictype/pr_currency_symbol.c unictype/pr_dash.c \
-       unictype/pr_decimal_digit.c \
-       unictype/pr_default_ignorable_code_point.c \
-       unictype/pr_deprecated.c unictype/pr_diacritic.c \
-       unictype/pr_extender.c unictype/pr_format_control.c \
-       unictype/pr_grapheme_base.c unictype/pr_grapheme_extend.c \
-       unictype/pr_grapheme_link.c unictype/pr_hex_digit.c \
-       unictype/pr_hyphen.c unictype/pr_id_continue.c \
-       unictype/pr_id_start.c unictype/pr_ideographic.c \
-       unictype/pr_ids_binary_operator.c \
-       unictype/pr_ids_trinary_operator.c \
-       unictype/pr_ignorable_control.c unictype/pr_iso_control.c \
-       unictype/pr_join_control.c unictype/pr_left_of_pair.c \
-       unictype/pr_line_separator.c \
-       unictype/pr_logical_order_exception.c unictype/pr_lowercase.c \
-       unictype/pr_math.c unictype/pr_non_break.c \
-       unictype/pr_not_a_character.c unictype/pr_numeric.c \
-       unictype/pr_other_alphabetic.c \
-       unictype/pr_other_default_ignorable_code_point.c \
-       unictype/pr_other_grapheme_extend.c \
-       unictype/pr_other_id_continue.c unictype/pr_other_id_start.c \
-       unictype/pr_other_lowercase.c unictype/pr_other_math.c \
-       unictype/pr_other_uppercase.c unictype/pr_paired_punctuation.c \
-       unictype/pr_paragraph_separator.c unictype/pr_pattern_syntax.c \
-       unictype/pr_pattern_white_space.c unictype/pr_private_use.c \
-       unictype/pr_punctuation.c unictype/pr_quotation_mark.c \
-       unictype/pr_radical.c unictype/pr_sentence_terminal.c \
-       unictype/pr_soft_dotted.c unictype/pr_space.c \
-       unictype/pr_terminal_punctuation.c unictype/pr_test.c \
-       unictype/pr_titlecase.c unictype/pr_unassigned_code_value.c \
-       unictype/pr_unified_ideograph.c unictype/pr_uppercase.c \
-       unictype/pr_variation_selector.c unictype/pr_white_space.c \
-       unictype/pr_xid_continue.c unictype/pr_xid_start.c \
-       unictype/pr_zero_width.c unictype/scripts.c \
-       unictype/sy_c_ident.c unictype/sy_c_whitespace.c \
-       unictype/sy_java_ident.c unictype/sy_java_whitespace.c \
-       unilbrk/lbrktables.c unilbrk/u16-possible-linebreaks.c \
-       unilbrk/u16-width-linebreaks.c \
-       unilbrk/u32-possible-linebreaks.c \
-       unilbrk/u32-width-linebreaks.c \
-       unilbrk/u8-possible-linebreaks.c unilbrk/u8-width-linebreaks.c \
-       unilbrk/ulc-common.c unilbrk/ulc-possible-linebreaks.c \
-       unilbrk/ulc-width-linebreaks.c uniname/uniname.c \
-       uninorm/canonical-decomposition.c \
-       uninorm/compat-decomposition.c uninorm/composition.c \
-       uninorm/decompose-internal.c uninorm/decomposing-form.c \
-       uninorm/decomposition.c uninorm/decomposition-table.c \
-       uninorm/uninorm-filter.c uninorm/nfc.c uninorm/nfd.c \
-       uninorm/nfkc.c uninorm/nfkd.c uninorm/u16-normalize.c \
-       uninorm/u16-normcmp.c uninorm/u16-normcoll.c \
-       uninorm/u16-normxfrm.c uninorm/u32-normalize.c \
-       uninorm/u32-normcmp.c uninorm/u32-normcoll.c \
-       uninorm/u32-normxfrm.c uninorm/u8-normalize.c \
-       uninorm/u8-normcmp.c uninorm/u8-normcoll.c \
-       uninorm/u8-normxfrm.c unistdio/u-printf-args.c \
-       unistdio/u16-asnprintf.c unistdio/u16-asprintf.c \
-       unistdio/u16-printf-parse.c unistdio/u16-snprintf.c \
-       unistdio/u16-sprintf.c unistdio/u16-u16-asnprintf.c \
-       unistdio/u16-u16-asprintf.c unistdio/u16-u16-snprintf.c \
-       unistdio/u16-u16-sprintf.c unistdio/u16-u16-vasnprintf.c \
-       unistdio/u16-u16-vasprintf.c unistdio/u16-u16-vsnprintf.c \
-       unistdio/u16-u16-vsprintf.c unistdio/u16-vasnprintf.c \
-       unistdio/u16-vasprintf.c unistdio/u16-vsnprintf.c \
-       unistdio/u16-vsprintf.c unistdio/u32-asnprintf.c \
-       unistdio/u32-asprintf.c unistdio/u32-printf-parse.c \
-       unistdio/u32-snprintf.c unistdio/u32-sprintf.c \
-       unistdio/u32-u32-asnprintf.c unistdio/u32-u32-asprintf.c \
-       unistdio/u32-u32-snprintf.c unistdio/u32-u32-sprintf.c \
-       unistdio/u32-u32-vasnprintf.c unistdio/u32-u32-vasprintf.c \
-       unistdio/u32-u32-vsnprintf.c unistdio/u32-u32-vsprintf.c \
-       unistdio/u32-vasnprintf.c unistdio/u32-vasprintf.c \
-       unistdio/u32-vsnprintf.c unistdio/u32-vsprintf.c \
-       unistdio/u8-asnprintf.c unistdio/u8-asprintf.c \
-       unistdio/u8-printf-parse.c unistdio/u8-snprintf.c \
-       unistdio/u8-sprintf.c unistdio/u8-u8-asnprintf.c \
-       unistdio/u8-u8-asprintf.c unistdio/u8-u8-snprintf.c \
-       unistdio/u8-u8-sprintf.c unistdio/u8-u8-vasnprintf.c \
-       unistdio/u8-u8-vasprintf.c unistdio/u8-u8-vsnprintf.c \
-       unistdio/u8-u8-vsprintf.c unistdio/u8-vasnprintf.c \
-       unistdio/u8-vasprintf.c unistdio/u8-vsnprintf.c \
-       unistdio/u8-vsprintf.c unistdio/ulc-asnprintf.c \
-       unistdio/ulc-asprintf.c unistdio/ulc-fprintf.c \
-       unistdio/ulc-printf-parse.c unistdio/ulc-snprintf.c \
-       unistdio/ulc-sprintf.c unistdio/ulc-vasnprintf.c \
-       unistdio/ulc-vasprintf.c unistdio/ulc-vfprintf.c \
-       unistdio/ulc-vsnprintf.c unistdio/ulc-vsprintf.c \
-       unistr/u16-check.c unistr/u16-chr.c unistr/u16-cmp.c \
-       unistr/u16-cmp2.c unistr/u16-cpy.c unistr/u16-cpy-alloc.c \
-       unistr/u16-endswith.c unistr/u16-mblen.c unistr/u16-mbsnlen.c \
-       unistr/u16-mbtouc.c unistr/u16-mbtouc-aux.c \
-       unistr/u16-mbtouc-unsafe.c unistr/u16-mbtouc-unsafe-aux.c \
-       unistr/u16-mbtoucr.c unistr/u16-move.c unistr/u16-next.c \
-       unistr/u16-prev.c unistr/u16-set.c unistr/u16-startswith.c \
-       unistr/u16-stpcpy.c unistr/u16-stpncpy.c unistr/u16-strcat.c \
-       unistr/u16-strchr.c unistr/u16-strcmp.c unistr/u16-strcoll.c \
-       unistr/u16-strcpy.c unistr/u16-strcspn.c unistr/u16-strdup.c \
-       unistr/u16-strlen.c unistr/u16-strmblen.c \
-       unistr/u16-strmbtouc.c unistr/u16-strncat.c \
-       unistr/u16-strncmp.c unistr/u16-strncpy.c unistr/u16-strnlen.c \
-       unistr/u16-strpbrk.c unistr/u16-strrchr.c unistr/u16-strspn.c \
-       unistr/u16-strstr.c unistr/u16-strtok.c unistr/u16-to-u32.c \
-       unistr/u16-to-u8.c unistr/u16-uctomb.c unistr/u16-uctomb-aux.c \
-       unistr/u32-check.c unistr/u32-chr.c unistr/u32-cmp.c \
-       unistr/u32-cmp2.c unistr/u32-cpy.c unistr/u32-cpy-alloc.c \
-       unistr/u32-endswith.c unistr/u32-mblen.c unistr/u32-mbsnlen.c \
-       unistr/u32-mbtouc.c unistr/u32-mbtouc-unsafe.c \
-       unistr/u32-mbtoucr.c unistr/u32-move.c unistr/u32-next.c \
-       unistr/u32-prev.c unistr/u32-set.c unistr/u32-startswith.c \
-       unistr/u32-stpcpy.c unistr/u32-stpncpy.c unistr/u32-strcat.c \
-       unistr/u32-strchr.c unistr/u32-strcmp.c unistr/u32-strcoll.c \
-       unistr/u32-strcpy.c unistr/u32-strcspn.c unistr/u32-strdup.c \
-       unistr/u32-strlen.c unistr/u32-strmblen.c \
-       unistr/u32-strmbtouc.c unistr/u32-strncat.c \
-       unistr/u32-strncmp.c unistr/u32-strncpy.c unistr/u32-strnlen.c \
-       unistr/u32-strpbrk.c unistr/u32-strrchr.c unistr/u32-strspn.c \
-       unistr/u32-strstr.c unistr/u32-strtok.c unistr/u32-to-u16.c \
-       unistr/u32-to-u8.c unistr/u32-uctomb.c unistr/u8-check.c \
-       unistr/u8-chr.c unistr/u8-cmp.c unistr/u8-cmp2.c \
-       unistr/u8-cpy.c unistr/u8-cpy-alloc.c unistr/u8-endswith.c \
-       unistr/u8-mblen.c unistr/u8-mbsnlen.c unistr/u8-mbtouc.c \
-       unistr/u8-mbtouc-aux.c unistr/u8-mbtouc-unsafe.c \
-       unistr/u8-mbtouc-unsafe-aux.c unistr/u8-mbtoucr.c \
-       unistr/u8-move.c unistr/u8-next.c unistr/u8-prev.c \
-       unistr/u8-set.c unistr/u8-startswith.c unistr/u8-stpcpy.c \
-       unistr/u8-stpncpy.c unistr/u8-strcat.c unistr/u8-strchr.c \
-       unistr/u8-strcmp.c unistr/u8-strcoll.c unistr/u8-strcpy.c \
-       unistr/u8-strcspn.c unistr/u8-strdup.c unistr/u8-strlen.c \
-       unistr/u8-strmblen.c unistr/u8-strmbtouc.c unistr/u8-strncat.c \
-       unistr/u8-strncmp.c unistr/u8-strncpy.c unistr/u8-strnlen.c \
-       unistr/u8-strpbrk.c unistr/u8-strrchr.c unistr/u8-strspn.c \
-       unistr/u8-strstr.c unistr/u8-strtok.c unistr/u8-to-u16.c \
-       unistr/u8-to-u32.c unistr/u8-uctomb.c unistr/u8-uctomb-aux.c \
-       uniwbrk/wbrktable.c uniwbrk/u16-wordbreaks.c \
-       uniwbrk/u32-wordbreaks.c uniwbrk/u8-wordbreaks.c \
-       uniwbrk/ulc-wordbreaks.c uniwbrk/wordbreak-property.c \
-       uniwidth/u16-strwidth.c uniwidth/u16-width.c \
-       uniwidth/u32-strwidth.c uniwidth/u32-width.c \
-       uniwidth/u8-strwidth.c uniwidth/u8-width.c uniwidth/width.c \
-       verify.h xsize.h version.c $(am__append_2)
+libunistring_la_SOURCES = amemxfrm.c c-ctype.h c-ctype.c c-strcase.h \
+       c-strcasecmp.c c-strncasecmp.c localcharset.h localcharset.c \
+       localename.c glthread/lock.h glthread/lock.c malloca.c math.c \
+       mbchar.c mbiter.h mbiter.c mbsnlen.c memcmp2.c minmax.h \
+       printf-frexp.c printf-frexpl.c size_max.h striconveh.h \
+       striconveh.c striconveha.h striconveha.c glthread/threadlib.c \
+       unicase/cased.c $(am__append_2) $(am__append_3) \
+       unicase/ignorable.c $(am__append_4) unicase/special-casing.c \
+       unicase/tocasefold.c $(am__append_5) $(am__append_6) \
+       $(am__append_7) $(am__append_8) $(am__append_9) \
+       $(am__append_10) unicase/u16-casemap.c $(am__append_11) \
+       $(am__append_12) $(am__append_13) $(am__append_14) \
+       $(am__append_15) $(am__append_16) $(am__append_17) \
+       unicase/u16-is-invariant.c $(am__append_18) $(am__append_19) \
+       $(am__append_20) $(am__append_21) $(am__append_22) \
+       $(am__append_23) $(am__append_24) $(am__append_25) \
+       $(am__append_26) unicase/u32-casemap.c $(am__append_27) \
+       $(am__append_28) $(am__append_29) $(am__append_30) \
+       $(am__append_31) $(am__append_32) $(am__append_33) \
+       unicase/u32-is-invariant.c $(am__append_34) $(am__append_35) \
+       $(am__append_36) $(am__append_37) $(am__append_38) \
+       $(am__append_39) $(am__append_40) $(am__append_41) \
+       $(am__append_42) unicase/u8-casemap.c $(am__append_43) \
+       $(am__append_44) $(am__append_45) $(am__append_46) \
+       $(am__append_47) $(am__append_48) $(am__append_49) \
+       unicase/u8-is-invariant.c $(am__append_50) $(am__append_51) \
+       $(am__append_52) $(am__append_53) $(am__append_54) \
+       $(am__append_55) $(am__append_56) $(am__append_57) \
+       $(am__append_58) $(am__append_59) $(am__append_60) \
+       $(am__append_61) $(am__append_62) $(am__append_63) \
+       $(am__append_64) $(am__append_65) $(am__append_66) \
+       $(am__append_67) $(am__append_68) $(am__append_69) \
+       $(am__append_70) $(am__append_71) $(am__append_72) \
+       $(am__append_73) $(am__append_74) $(am__append_75) \
+       $(am__append_76) $(am__append_77) $(am__append_78) \
+       $(am__append_79) $(am__append_80) $(am__append_81) \
+       $(am__append_82) $(am__append_83) $(am__append_84) \
+       $(am__append_85) $(am__append_86) $(am__append_87) \
+       $(am__append_88) $(am__append_89) $(am__append_90) \
+       $(am__append_91) $(am__append_92) $(am__append_93) \
+       $(am__append_94) $(am__append_95) $(am__append_96) \
+       $(am__append_97) $(am__append_98) $(am__append_99) \
+       $(am__append_100) $(am__append_101) $(am__append_102) \
+       $(am__append_103) $(am__append_104) $(am__append_105) \
+       $(am__append_106) $(am__append_107) $(am__append_108) \
+       $(am__append_109) $(am__append_110) $(am__append_111) \
+       $(am__append_112) $(am__append_113) $(am__append_114) \
+       $(am__append_115) $(am__append_116) $(am__append_117) \
+       $(am__append_118) $(am__append_119) $(am__append_120) \
+       $(am__append_121) $(am__append_122) $(am__append_123) \
+       $(am__append_124) $(am__append_125) $(am__append_126) \
+       $(am__append_127) $(am__append_128) $(am__append_129) \
+       $(am__append_130) $(am__append_131) $(am__append_132) \
+       $(am__append_133) $(am__append_134) $(am__append_135) \
+       $(am__append_136) $(am__append_137) $(am__append_138) \
+       $(am__append_139) $(am__append_140) $(am__append_141) \
+       $(am__append_142) $(am__append_143) $(am__append_144) \
+       $(am__append_145) $(am__append_146) $(am__append_147) \
+       $(am__append_148) $(am__append_149) $(am__append_150) \
+       $(am__append_151) $(am__append_152) $(am__append_153) \
+       $(am__append_154) $(am__append_155) $(am__append_156) \
+       $(am__append_157) $(am__append_158) $(am__append_159) \
+       $(am__append_160) $(am__append_161) $(am__append_162) \
+       $(am__append_163) $(am__append_164) $(am__append_165) \
+       $(am__append_166) $(am__append_167) $(am__append_168) \
+       $(am__append_169) $(am__append_170) $(am__append_171) \
+       $(am__append_172) $(am__append_173) $(am__append_174) \
+       $(am__append_175) $(am__append_176) $(am__append_177) \
+       $(am__append_178) $(am__append_179) $(am__append_180) \
+       $(am__append_181) $(am__append_182) $(am__append_183) \
+       $(am__append_184) $(am__append_185) $(am__append_186) \
+       $(am__append_187) $(am__append_188) $(am__append_189) \
+       $(am__append_190) $(am__append_191) $(am__append_192) \
+       $(am__append_193) $(am__append_194) $(am__append_195) \
+       $(am__append_196) $(am__append_197) $(am__append_198) \
+       $(am__append_199) $(am__append_200) $(am__append_201) \
+       $(am__append_202) $(am__append_203) $(am__append_204) \
+       $(am__append_205) $(am__append_206) $(am__append_207) \
+       $(am__append_208) $(am__append_209) $(am__append_210) \
+       $(am__append_211) $(am__append_212) $(am__append_213) \
+       $(am__append_214) $(am__append_215) $(am__append_216) \
+       $(am__append_217) $(am__append_218) $(am__append_219) \
+       $(am__append_220) $(am__append_221) $(am__append_222) \
+       $(am__append_223) $(am__append_224) $(am__append_225) \
+       $(am__append_226) $(am__append_227) $(am__append_228) \
+       $(am__append_229) $(am__append_230) $(am__append_231) \
+       $(am__append_232) $(am__append_233) $(am__append_234) \
+       $(am__append_235) $(am__append_236) $(am__append_237) \
+       $(am__append_238) $(am__append_239) $(am__append_240) \
+       $(am__append_241) $(am__append_242) $(am__append_243) \
+       $(am__append_244) $(am__append_245) $(am__append_246) \
+       $(am__append_247) $(am__append_248) $(am__append_249) \
+       $(am__append_250) $(am__append_251) $(am__append_252) \
+       $(am__append_253) $(am__append_254) $(am__append_255) \
+       $(am__append_256) $(am__append_257) $(am__append_258) \
+       $(am__append_259) $(am__append_260) $(am__append_261) \
+       $(am__append_262) unilbrk/lbrktables.c $(am__append_263) \
+       $(am__append_264) $(am__append_265) $(am__append_266) \
+       $(am__append_267) $(am__append_268) unilbrk/ulc-common.c \
+       $(am__append_269) $(am__append_270) $(am__append_271) \
+       $(am__append_272) uninorm/compat-decomposition.c \
+       $(am__append_273) uninorm/decompose-internal.c \
+       $(am__append_274) $(am__append_275) \
+       uninorm/decomposition-table.c $(am__append_276) \
+       $(am__append_277) $(am__append_278) $(am__append_279) \
+       $(am__append_280) $(am__append_281) $(am__append_282) \
+       $(am__append_283) $(am__append_284) $(am__append_285) \
+       $(am__append_286) $(am__append_287) $(am__append_288) \
+       $(am__append_289) $(am__append_290) $(am__append_291) \
+       $(am__append_292) unistd.c unistdio/u-printf-args.c \
+       $(am__append_293) $(am__append_294) \
+       unistdio/u16-printf-parse.c $(am__append_295) \
+       $(am__append_296) $(am__append_297) $(am__append_298) \
+       $(am__append_299) $(am__append_300) $(am__append_301) \
+       $(am__append_302) $(am__append_303) $(am__append_304) \
+       $(am__append_305) $(am__append_306) $(am__append_307) \
+       $(am__append_308) $(am__append_309) $(am__append_310) \
+       unistdio/u32-printf-parse.c $(am__append_311) \
+       $(am__append_312) $(am__append_313) $(am__append_314) \
+       $(am__append_315) $(am__append_316) $(am__append_317) \
+       $(am__append_318) $(am__append_319) $(am__append_320) \
+       $(am__append_321) $(am__append_322) $(am__append_323) \
+       $(am__append_324) $(am__append_325) $(am__append_326) \
+       unistdio/u8-printf-parse.c $(am__append_327) $(am__append_328) \
+       $(am__append_329) $(am__append_330) $(am__append_331) \
+       $(am__append_332) $(am__append_333) $(am__append_334) \
+       $(am__append_335) $(am__append_336) $(am__append_337) \
+       $(am__append_338) $(am__append_339) $(am__append_340) \
+       $(am__append_341) $(am__append_342) $(am__append_343) \
+       unistdio/ulc-printf-parse.c $(am__append_344) \
+       $(am__append_345) $(am__append_346) $(am__append_347) \
+       $(am__append_348) $(am__append_349) $(am__append_350) \
+       $(am__append_351) $(am__append_352) $(am__append_353) \
+       $(am__append_354) $(am__append_355) $(am__append_356) \
+       $(am__append_357) $(am__append_358) $(am__append_359) \
+       $(am__append_360) $(am__append_361) $(am__append_362) \
+       $(am__append_363) $(am__append_364) $(am__append_365) \
+       $(am__append_366) $(am__append_367) $(am__append_368) \
+       $(am__append_369) $(am__append_370) $(am__append_371) \
+       $(am__append_372) $(am__append_373) $(am__append_374) \
+       $(am__append_375) $(am__append_376) $(am__append_377) \
+       $(am__append_378) $(am__append_379) $(am__append_380) \
+       $(am__append_381) $(am__append_382) $(am__append_383) \
+       $(am__append_384) $(am__append_385) $(am__append_386) \
+       $(am__append_387) $(am__append_388) $(am__append_389) \
+       $(am__append_390) $(am__append_391) $(am__append_392) \
+       $(am__append_393) $(am__append_394) $(am__append_395) \
+       $(am__append_396) $(am__append_397) $(am__append_398) \
+       $(am__append_399) $(am__append_400) $(am__append_401) \
+       $(am__append_402) $(am__append_403) $(am__append_404) \
+       $(am__append_405) $(am__append_406) $(am__append_407) \
+       $(am__append_408) $(am__append_409) $(am__append_410) \
+       $(am__append_411) $(am__append_412) $(am__append_413) \
+       $(am__append_414) $(am__append_415) $(am__append_416) \
+       $(am__append_417) $(am__append_418) $(am__append_419) \
+       $(am__append_420) $(am__append_421) $(am__append_422) \
+       $(am__append_423) $(am__append_424) $(am__append_425) \
+       $(am__append_426) $(am__append_427) $(am__append_428) \
+       $(am__append_429) $(am__append_430) $(am__append_431) \
+       $(am__append_432) $(am__append_433) $(am__append_434) \
+       $(am__append_435) $(am__append_436) $(am__append_437) \
+       $(am__append_438) $(am__append_439) $(am__append_440) \
+       $(am__append_441) $(am__append_442) $(am__append_443) \
+       $(am__append_444) $(am__append_445) $(am__append_446) \
+       $(am__append_447) $(am__append_448) $(am__append_449) \
+       $(am__append_450) $(am__append_451) $(am__append_452) \
+       $(am__append_453) $(am__append_454) $(am__append_455) \
+       $(am__append_456) $(am__append_457) $(am__append_458) \
+       $(am__append_459) $(am__append_460) $(am__append_461) \
+       $(am__append_462) $(am__append_463) $(am__append_464) \
+       $(am__append_465) $(am__append_466) $(am__append_467) \
+       $(am__append_468) $(am__append_469) $(am__append_470) \
+       $(am__append_471) $(am__append_472) $(am__append_473) \
+       uniwbrk/wbrktable.c $(am__append_474) $(am__append_475) \
+       $(am__append_476) $(am__append_477) $(am__append_478) \
+       $(am__append_479) $(am__append_480) $(am__append_481) \
+       $(am__append_482) $(am__append_483) $(am__append_484) \
+       $(am__append_485) wctype-h.c xsize.h xsize.c version.c \
+       $(am__append_486)
 libunistring_la_LIBADD = $(gl_LTLIBOBJS) $(WOE32_LIBADD)
 libunistring_la_DEPENDENCIES = $(gl_LTLIBOBJS) $(WOE32_LIBADD)
-EXTRA_libunistring_la_SOURCES = frexp.c frexpl.c iconv_open.c isnan.c \
-       isnand.c isnan.c isnanf.c isnan.c isnanl.c malloc.c mbrtowc.c \
-       mbsinit.c memchr.c printf-frexp.c relocatable.c signbitd.c \
-       signbitf.c signbitl.c strncat.c printf-args.c printf-parse.c \
+EXTRA_libunistring_la_SOURCES = float.c itold.c frexp.c frexp.c \
+       frexpl.c fseterr.c iconv.c iconv_close.c iconv_open.c isnan.c \
+       isnand.c isnan.c isnanf.c isnan.c isnanl.c iswblank.c malloc.c \
+       mbrtowc.c mbsinit.c memchr.c printf-frexp.c relocatable.c \
+       signbitd.c signbitf.c signbitl.c strncat.c strstr.c \
+       printf-args.c printf-parse.c vasnprintf.c vasnprintf.c \
+       printf-parse.c vasnprintf.c vasnprintf.c printf-parse.c \
        vasnprintf.c vasnprintf.c printf-parse.c vasnprintf.c \
-       vasnprintf.c printf-parse.c vasnprintf.c vasnprintf.c \
-       printf-parse.c vasnprintf.c wcwidth.c
+       wcwidth.c
 
 # How to build libunistring.la.
-libunistring_la_LDFLAGS = $(AM_LDFLAGS) $(am__append_1) \
-       $(am__append_3) -version-info \
-       $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) -rpath $(libdir) \
-       @INTL_MACOSX_LIBS@ -no-undefined
-ARG_NONNULL_H = arg-nonnull.h
-CXXDEFS_H = c++defs.h
+libunistring_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(LTLIBICONV) \
+       $(LTLIBTHREAD) @INTL_MACOSX_LIBS@ $(am__append_1) \
+       $(am__append_487) -version-info \
+       $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) -rpath $(libdir)
+
+# Use this preprocessor expression to decide whether #include_next works.
+# Do not rely on a 'configure'-time test for this, since the expression
+# might appear in an installed header, which is used by some other compiler.
+HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER)
 GPERF = gperf
 charset_alias = $(DESTDIR)$(libdir)/charset.alias
 charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+
+# Because this Makefile snippet defines a variable used by other
+# gnulib Makefile snippets, it must be present in all Makefile.am that
+# need it. This is ensured by the applicability 'all' defined above.
+_NORETURN_H = $(top_srcdir)/build-aux/snippet/_Noreturn.h
+ARG_NONNULL_H = arg-nonnull.h
+CXXDEFS_H = c++defs.h
 UNUSED_PARAMETER_H = unused-parameter.h
 WARN_ON_USE_H = warn-on-use.h
 
@@ -1857,6 +3388,7 @@ HEADERS_WITH_EXTERNS = \
   uniname.h \
   unictype.h \
   uniwidth.h \
+  unigbrk.h \
   uniwbrk.h \
   unilbrk.h \
   uninorm.h \
@@ -1870,9 +3402,9 @@ HEADERS_WITH_EXTERNS = \
 
 # Libtool's library version information for libunistring.
 # See the libtool documentation, section "Library interface versions".
-LTV_CURRENT = 1
-LTV_REVISION = 2
-LTV_AGE = 1
+LTV_CURRENT = 2
+LTV_REVISION = 0
+LTV_AGE = 0
 all: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) all-am
 
@@ -1899,6 +3431,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(srcdir)/Makefile.gnulib:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1910,9 +3443,9 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 exported.sh: $(top_builddir)/config.status $(srcdir)/exported.sh.in
        cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
        @$(NORMAL_INSTALL)
-       test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
        @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
        list2=; for p in $$list; do \
          if test -f $$p; then \
@@ -1920,6 +3453,8 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
          else :; fi; \
        done; \
        test -z "$$list2" || { \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
          echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
          $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
        }
@@ -1935,12 +3470,14 @@ uninstall-libLTLIBRARIES:
 
 clean-libLTLIBRARIES:
        -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-         test "$$dir" != "$$p" || dir=.; \
-         echo "rm -f \"$${dir}/so_locations\""; \
-         rm -f "$${dir}/so_locations"; \
-       done
+       @list='$(lib_LTLIBRARIES)'; \
+       locs=`for p in $$list; do echo $$p; done | \
+             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+             sort -u`; \
+       test -z "$$locs" || { \
+         echo rm -f $${locs}; \
+         rm -f $${locs}; \
+       }
 glthread/$(am__dirstamp):
        @$(MKDIR_P) glthread
        @: > glthread/$(am__dirstamp)
@@ -2041,6 +3578,7 @@ unictype/$(am__dirstamp):
        @$(MKDIR_P) unictype
        @: > unictype/$(am__dirstamp)
 unictype/bidi_byname.lo: unictype/$(am__dirstamp)
+unictype/bidi_longname.lo: unictype/$(am__dirstamp)
 unictype/bidi_name.lo: unictype/$(am__dirstamp)
 unictype/bidi_of.lo: unictype/$(am__dirstamp)
 unictype/bidi_test.lo: unictype/$(am__dirstamp)
@@ -2053,6 +3591,7 @@ unictype/categ_Cn.lo: unictype/$(am__dirstamp)
 unictype/categ_Co.lo: unictype/$(am__dirstamp)
 unictype/categ_Cs.lo: unictype/$(am__dirstamp)
 unictype/categ_L.lo: unictype/$(am__dirstamp)
+unictype/categ_LC.lo: unictype/$(am__dirstamp)
 unictype/categ_Ll.lo: unictype/$(am__dirstamp)
 unictype/categ_Lm.lo: unictype/$(am__dirstamp)
 unictype/categ_Lo.lo: unictype/$(am__dirstamp)
@@ -2086,12 +3625,16 @@ unictype/categ_Zs.lo: unictype/$(am__dirstamp)
 unictype/categ_and.lo: unictype/$(am__dirstamp)
 unictype/categ_and_not.lo: unictype/$(am__dirstamp)
 unictype/categ_byname.lo: unictype/$(am__dirstamp)
+unictype/categ_longname.lo: unictype/$(am__dirstamp)
 unictype/categ_name.lo: unictype/$(am__dirstamp)
 unictype/categ_none.lo: unictype/$(am__dirstamp)
 unictype/categ_of.lo: unictype/$(am__dirstamp)
 unictype/categ_or.lo: unictype/$(am__dirstamp)
 unictype/categ_test.lo: unictype/$(am__dirstamp)
-unictype/combining.lo: unictype/$(am__dirstamp)
+unictype/combiningclass.lo: unictype/$(am__dirstamp)
+unictype/combiningclass_byname.lo: unictype/$(am__dirstamp)
+unictype/combiningclass_longname.lo: unictype/$(am__dirstamp)
+unictype/combiningclass_name.lo: unictype/$(am__dirstamp)
 unictype/ctype_alnum.lo: unictype/$(am__dirstamp)
 unictype/ctype_alpha.lo: unictype/$(am__dirstamp)
 unictype/ctype_blank.lo: unictype/$(am__dirstamp)
@@ -2106,6 +3649,13 @@ unictype/ctype_upper.lo: unictype/$(am__dirstamp)
 unictype/ctype_xdigit.lo: unictype/$(am__dirstamp)
 unictype/decdigit.lo: unictype/$(am__dirstamp)
 unictype/digit.lo: unictype/$(am__dirstamp)
+unictype/joininggroup_byname.lo: unictype/$(am__dirstamp)
+unictype/joininggroup_name.lo: unictype/$(am__dirstamp)
+unictype/joininggroup_of.lo: unictype/$(am__dirstamp)
+unictype/joiningtype_byname.lo: unictype/$(am__dirstamp)
+unictype/joiningtype_longname.lo: unictype/$(am__dirstamp)
+unictype/joiningtype_name.lo: unictype/$(am__dirstamp)
+unictype/joiningtype_of.lo: unictype/$(am__dirstamp)
 unictype/mirror.lo: unictype/$(am__dirstamp)
 unictype/numeric.lo: unictype/$(am__dirstamp)
 unictype/pr_alphabetic.lo: unictype/$(am__dirstamp)
@@ -2128,6 +3678,13 @@ unictype/pr_bidi_pdf.lo: unictype/$(am__dirstamp)
 unictype/pr_bidi_segment_separator.lo: unictype/$(am__dirstamp)
 unictype/pr_bidi_whitespace.lo: unictype/$(am__dirstamp)
 unictype/pr_byname.lo: unictype/$(am__dirstamp)
+unictype/pr_case_ignorable.lo: unictype/$(am__dirstamp)
+unictype/pr_cased.lo: unictype/$(am__dirstamp)
+unictype/pr_changes_when_casefolded.lo: unictype/$(am__dirstamp)
+unictype/pr_changes_when_casemapped.lo: unictype/$(am__dirstamp)
+unictype/pr_changes_when_lowercased.lo: unictype/$(am__dirstamp)
+unictype/pr_changes_when_titlecased.lo: unictype/$(am__dirstamp)
+unictype/pr_changes_when_uppercased.lo: unictype/$(am__dirstamp)
 unictype/pr_combining.lo: unictype/$(am__dirstamp)
 unictype/pr_composite.lo: unictype/$(am__dirstamp)
 unictype/pr_currency_symbol.lo: unictype/$(am__dirstamp)
@@ -2195,6 +3752,21 @@ unictype/sy_c_ident.lo: unictype/$(am__dirstamp)
 unictype/sy_c_whitespace.lo: unictype/$(am__dirstamp)
 unictype/sy_java_ident.lo: unictype/$(am__dirstamp)
 unictype/sy_java_whitespace.lo: unictype/$(am__dirstamp)
+unigbrk/$(am__dirstamp):
+       @$(MKDIR_P) unigbrk
+       @: > unigbrk/$(am__dirstamp)
+unigbrk/u16-grapheme-breaks.lo: unigbrk/$(am__dirstamp)
+unigbrk/u16-grapheme-next.lo: unigbrk/$(am__dirstamp)
+unigbrk/u16-grapheme-prev.lo: unigbrk/$(am__dirstamp)
+unigbrk/u32-grapheme-breaks.lo: unigbrk/$(am__dirstamp)
+unigbrk/u32-grapheme-next.lo: unigbrk/$(am__dirstamp)
+unigbrk/u32-grapheme-prev.lo: unigbrk/$(am__dirstamp)
+unigbrk/u8-grapheme-breaks.lo: unigbrk/$(am__dirstamp)
+unigbrk/u8-grapheme-next.lo: unigbrk/$(am__dirstamp)
+unigbrk/u8-grapheme-prev.lo: unigbrk/$(am__dirstamp)
+unigbrk/uc-gbrk-prop.lo: unigbrk/$(am__dirstamp)
+unigbrk/uc-is-grapheme-break.lo: unigbrk/$(am__dirstamp)
+unigbrk/ulc-grapheme-breaks.lo: unigbrk/$(am__dirstamp)
 unilbrk/$(am__dirstamp):
        @$(MKDIR_P) unilbrk
        @: > unilbrk/$(am__dirstamp)
@@ -2460,990 +4032,50 @@ uniwidth/width.lo: uniwidth/$(am__dirstamp)
        @$(MKDIR_P) ../woe32dll
        @: > ../woe32dll/$(am__dirstamp)
 ../woe32dll/unistring-exports.lo: ../woe32dll/$(am__dirstamp)
-libunistring.la: $(libunistring_la_OBJECTS) $(libunistring_la_DEPENDENCIES) 
+
+libunistring.la: $(libunistring_la_OBJECTS) $(libunistring_la_DEPENDENCIES) $(EXTRA_libunistring_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libunistring_la_LINK) -rpath $(libdir) $(libunistring_la_OBJECTS) $(libunistring_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
-       -rm -f ../woe32dll/unistring-exports.$(OBJEXT)
-       -rm -f ../woe32dll/unistring-exports.lo
-       -rm -f glthread/lock.$(OBJEXT)
-       -rm -f glthread/lock.lo
-       -rm -f glthread/threadlib.$(OBJEXT)
-       -rm -f glthread/threadlib.lo
-       -rm -f unicase/cased.$(OBJEXT)
-       -rm -f unicase/cased.lo
-       -rm -f unicase/empty-prefix-context.$(OBJEXT)
-       -rm -f unicase/empty-prefix-context.lo
-       -rm -f unicase/empty-suffix-context.$(OBJEXT)
-       -rm -f unicase/empty-suffix-context.lo
-       -rm -f unicase/ignorable.$(OBJEXT)
-       -rm -f unicase/ignorable.lo
-       -rm -f unicase/locale-language.$(OBJEXT)
-       -rm -f unicase/locale-language.lo
-       -rm -f unicase/special-casing.$(OBJEXT)
-       -rm -f unicase/special-casing.lo
-       -rm -f unicase/tocasefold.$(OBJEXT)
-       -rm -f unicase/tocasefold.lo
-       -rm -f unicase/tolower.$(OBJEXT)
-       -rm -f unicase/tolower.lo
-       -rm -f unicase/totitle.$(OBJEXT)
-       -rm -f unicase/totitle.lo
-       -rm -f unicase/toupper.$(OBJEXT)
-       -rm -f unicase/toupper.lo
-       -rm -f unicase/u16-casecmp.$(OBJEXT)
-       -rm -f unicase/u16-casecmp.lo
-       -rm -f unicase/u16-casecoll.$(OBJEXT)
-       -rm -f unicase/u16-casecoll.lo
-       -rm -f unicase/u16-casefold.$(OBJEXT)
-       -rm -f unicase/u16-casefold.lo
-       -rm -f unicase/u16-casemap.$(OBJEXT)
-       -rm -f unicase/u16-casemap.lo
-       -rm -f unicase/u16-casexfrm.$(OBJEXT)
-       -rm -f unicase/u16-casexfrm.lo
-       -rm -f unicase/u16-ct-casefold.$(OBJEXT)
-       -rm -f unicase/u16-ct-casefold.lo
-       -rm -f unicase/u16-ct-tolower.$(OBJEXT)
-       -rm -f unicase/u16-ct-tolower.lo
-       -rm -f unicase/u16-ct-totitle.$(OBJEXT)
-       -rm -f unicase/u16-ct-totitle.lo
-       -rm -f unicase/u16-ct-toupper.$(OBJEXT)
-       -rm -f unicase/u16-ct-toupper.lo
-       -rm -f unicase/u16-is-cased.$(OBJEXT)
-       -rm -f unicase/u16-is-cased.lo
-       -rm -f unicase/u16-is-casefolded.$(OBJEXT)
-       -rm -f unicase/u16-is-casefolded.lo
-       -rm -f unicase/u16-is-invariant.$(OBJEXT)
-       -rm -f unicase/u16-is-invariant.lo
-       -rm -f unicase/u16-is-lowercase.$(OBJEXT)
-       -rm -f unicase/u16-is-lowercase.lo
-       -rm -f unicase/u16-is-titlecase.$(OBJEXT)
-       -rm -f unicase/u16-is-titlecase.lo
-       -rm -f unicase/u16-is-uppercase.$(OBJEXT)
-       -rm -f unicase/u16-is-uppercase.lo
-       -rm -f unicase/u16-tolower.$(OBJEXT)
-       -rm -f unicase/u16-tolower.lo
-       -rm -f unicase/u16-totitle.$(OBJEXT)
-       -rm -f unicase/u16-totitle.lo
-       -rm -f unicase/u16-toupper.$(OBJEXT)
-       -rm -f unicase/u16-toupper.lo
-       -rm -f unicase/u32-casecmp.$(OBJEXT)
-       -rm -f unicase/u32-casecmp.lo
-       -rm -f unicase/u32-casecoll.$(OBJEXT)
-       -rm -f unicase/u32-casecoll.lo
-       -rm -f unicase/u32-casefold.$(OBJEXT)
-       -rm -f unicase/u32-casefold.lo
-       -rm -f unicase/u32-casemap.$(OBJEXT)
-       -rm -f unicase/u32-casemap.lo
-       -rm -f unicase/u32-casexfrm.$(OBJEXT)
-       -rm -f unicase/u32-casexfrm.lo
-       -rm -f unicase/u32-ct-casefold.$(OBJEXT)
-       -rm -f unicase/u32-ct-casefold.lo
-       -rm -f unicase/u32-ct-tolower.$(OBJEXT)
-       -rm -f unicase/u32-ct-tolower.lo
-       -rm -f unicase/u32-ct-totitle.$(OBJEXT)
-       -rm -f unicase/u32-ct-totitle.lo
-       -rm -f unicase/u32-ct-toupper.$(OBJEXT)
-       -rm -f unicase/u32-ct-toupper.lo
-       -rm -f unicase/u32-is-cased.$(OBJEXT)
-       -rm -f unicase/u32-is-cased.lo
-       -rm -f unicase/u32-is-casefolded.$(OBJEXT)
-       -rm -f unicase/u32-is-casefolded.lo
-       -rm -f unicase/u32-is-invariant.$(OBJEXT)
-       -rm -f unicase/u32-is-invariant.lo
-       -rm -f unicase/u32-is-lowercase.$(OBJEXT)
-       -rm -f unicase/u32-is-lowercase.lo
-       -rm -f unicase/u32-is-titlecase.$(OBJEXT)
-       -rm -f unicase/u32-is-titlecase.lo
-       -rm -f unicase/u32-is-uppercase.$(OBJEXT)
-       -rm -f unicase/u32-is-uppercase.lo
-       -rm -f unicase/u32-tolower.$(OBJEXT)
-       -rm -f unicase/u32-tolower.lo
-       -rm -f unicase/u32-totitle.$(OBJEXT)
-       -rm -f unicase/u32-totitle.lo
-       -rm -f unicase/u32-toupper.$(OBJEXT)
-       -rm -f unicase/u32-toupper.lo
-       -rm -f unicase/u8-casecmp.$(OBJEXT)
-       -rm -f unicase/u8-casecmp.lo
-       -rm -f unicase/u8-casecoll.$(OBJEXT)
-       -rm -f unicase/u8-casecoll.lo
-       -rm -f unicase/u8-casefold.$(OBJEXT)
-       -rm -f unicase/u8-casefold.lo
-       -rm -f unicase/u8-casemap.$(OBJEXT)
-       -rm -f unicase/u8-casemap.lo
-       -rm -f unicase/u8-casexfrm.$(OBJEXT)
-       -rm -f unicase/u8-casexfrm.lo
-       -rm -f unicase/u8-ct-casefold.$(OBJEXT)
-       -rm -f unicase/u8-ct-casefold.lo
-       -rm -f unicase/u8-ct-tolower.$(OBJEXT)
-       -rm -f unicase/u8-ct-tolower.lo
-       -rm -f unicase/u8-ct-totitle.$(OBJEXT)
-       -rm -f unicase/u8-ct-totitle.lo
-       -rm -f unicase/u8-ct-toupper.$(OBJEXT)
-       -rm -f unicase/u8-ct-toupper.lo
-       -rm -f unicase/u8-is-cased.$(OBJEXT)
-       -rm -f unicase/u8-is-cased.lo
-       -rm -f unicase/u8-is-casefolded.$(OBJEXT)
-       -rm -f unicase/u8-is-casefolded.lo
-       -rm -f unicase/u8-is-invariant.$(OBJEXT)
-       -rm -f unicase/u8-is-invariant.lo
-       -rm -f unicase/u8-is-lowercase.$(OBJEXT)
-       -rm -f unicase/u8-is-lowercase.lo
-       -rm -f unicase/u8-is-titlecase.$(OBJEXT)
-       -rm -f unicase/u8-is-titlecase.lo
-       -rm -f unicase/u8-is-uppercase.$(OBJEXT)
-       -rm -f unicase/u8-is-uppercase.lo
-       -rm -f unicase/u8-tolower.$(OBJEXT)
-       -rm -f unicase/u8-tolower.lo
-       -rm -f unicase/u8-totitle.$(OBJEXT)
-       -rm -f unicase/u8-totitle.lo
-       -rm -f unicase/u8-toupper.$(OBJEXT)
-       -rm -f unicase/u8-toupper.lo
-       -rm -f unicase/ulc-casecmp.$(OBJEXT)
-       -rm -f unicase/ulc-casecmp.lo
-       -rm -f unicase/ulc-casecoll.$(OBJEXT)
-       -rm -f unicase/ulc-casecoll.lo
-       -rm -f unicase/ulc-casexfrm.$(OBJEXT)
-       -rm -f unicase/ulc-casexfrm.lo
-       -rm -f uniconv/u16-conv-from-enc.$(OBJEXT)
-       -rm -f uniconv/u16-conv-from-enc.lo
-       -rm -f uniconv/u16-conv-to-enc.$(OBJEXT)
-       -rm -f uniconv/u16-conv-to-enc.lo
-       -rm -f uniconv/u16-strconv-from-enc.$(OBJEXT)
-       -rm -f uniconv/u16-strconv-from-enc.lo
-       -rm -f uniconv/u16-strconv-from-locale.$(OBJEXT)
-       -rm -f uniconv/u16-strconv-from-locale.lo
-       -rm -f uniconv/u16-strconv-to-enc.$(OBJEXT)
-       -rm -f uniconv/u16-strconv-to-enc.lo
-       -rm -f uniconv/u16-strconv-to-locale.$(OBJEXT)
-       -rm -f uniconv/u16-strconv-to-locale.lo
-       -rm -f uniconv/u32-conv-from-enc.$(OBJEXT)
-       -rm -f uniconv/u32-conv-from-enc.lo
-       -rm -f uniconv/u32-conv-to-enc.$(OBJEXT)
-       -rm -f uniconv/u32-conv-to-enc.lo
-       -rm -f uniconv/u32-strconv-from-enc.$(OBJEXT)
-       -rm -f uniconv/u32-strconv-from-enc.lo
-       -rm -f uniconv/u32-strconv-from-locale.$(OBJEXT)
-       -rm -f uniconv/u32-strconv-from-locale.lo
-       -rm -f uniconv/u32-strconv-to-enc.$(OBJEXT)
-       -rm -f uniconv/u32-strconv-to-enc.lo
-       -rm -f uniconv/u32-strconv-to-locale.$(OBJEXT)
-       -rm -f uniconv/u32-strconv-to-locale.lo
-       -rm -f uniconv/u8-conv-from-enc.$(OBJEXT)
-       -rm -f uniconv/u8-conv-from-enc.lo
-       -rm -f uniconv/u8-conv-to-enc.$(OBJEXT)
-       -rm -f uniconv/u8-conv-to-enc.lo
-       -rm -f uniconv/u8-strconv-from-enc.$(OBJEXT)
-       -rm -f uniconv/u8-strconv-from-enc.lo
-       -rm -f uniconv/u8-strconv-from-locale.$(OBJEXT)
-       -rm -f uniconv/u8-strconv-from-locale.lo
-       -rm -f uniconv/u8-strconv-to-enc.$(OBJEXT)
-       -rm -f uniconv/u8-strconv-to-enc.lo
-       -rm -f uniconv/u8-strconv-to-locale.$(OBJEXT)
-       -rm -f uniconv/u8-strconv-to-locale.lo
-       -rm -f unictype/bidi_byname.$(OBJEXT)
-       -rm -f unictype/bidi_byname.lo
-       -rm -f unictype/bidi_name.$(OBJEXT)
-       -rm -f unictype/bidi_name.lo
-       -rm -f unictype/bidi_of.$(OBJEXT)
-       -rm -f unictype/bidi_of.lo
-       -rm -f unictype/bidi_test.$(OBJEXT)
-       -rm -f unictype/bidi_test.lo
-       -rm -f unictype/block_test.$(OBJEXT)
-       -rm -f unictype/block_test.lo
-       -rm -f unictype/blocks.$(OBJEXT)
-       -rm -f unictype/blocks.lo
-       -rm -f unictype/categ_C.$(OBJEXT)
-       -rm -f unictype/categ_C.lo
-       -rm -f unictype/categ_Cc.$(OBJEXT)
-       -rm -f unictype/categ_Cc.lo
-       -rm -f unictype/categ_Cf.$(OBJEXT)
-       -rm -f unictype/categ_Cf.lo
-       -rm -f unictype/categ_Cn.$(OBJEXT)
-       -rm -f unictype/categ_Cn.lo
-       -rm -f unictype/categ_Co.$(OBJEXT)
-       -rm -f unictype/categ_Co.lo
-       -rm -f unictype/categ_Cs.$(OBJEXT)
-       -rm -f unictype/categ_Cs.lo
-       -rm -f unictype/categ_L.$(OBJEXT)
-       -rm -f unictype/categ_L.lo
-       -rm -f unictype/categ_Ll.$(OBJEXT)
-       -rm -f unictype/categ_Ll.lo
-       -rm -f unictype/categ_Lm.$(OBJEXT)
-       -rm -f unictype/categ_Lm.lo
-       -rm -f unictype/categ_Lo.$(OBJEXT)
-       -rm -f unictype/categ_Lo.lo
-       -rm -f unictype/categ_Lt.$(OBJEXT)
-       -rm -f unictype/categ_Lt.lo
-       -rm -f unictype/categ_Lu.$(OBJEXT)
-       -rm -f unictype/categ_Lu.lo
-       -rm -f unictype/categ_M.$(OBJEXT)
-       -rm -f unictype/categ_M.lo
-       -rm -f unictype/categ_Mc.$(OBJEXT)
-       -rm -f unictype/categ_Mc.lo
-       -rm -f unictype/categ_Me.$(OBJEXT)
-       -rm -f unictype/categ_Me.lo
-       -rm -f unictype/categ_Mn.$(OBJEXT)
-       -rm -f unictype/categ_Mn.lo
-       -rm -f unictype/categ_N.$(OBJEXT)
-       -rm -f unictype/categ_N.lo
-       -rm -f unictype/categ_Nd.$(OBJEXT)
-       -rm -f unictype/categ_Nd.lo
-       -rm -f unictype/categ_Nl.$(OBJEXT)
-       -rm -f unictype/categ_Nl.lo
-       -rm -f unictype/categ_No.$(OBJEXT)
-       -rm -f unictype/categ_No.lo
-       -rm -f unictype/categ_P.$(OBJEXT)
-       -rm -f unictype/categ_P.lo
-       -rm -f unictype/categ_Pc.$(OBJEXT)
-       -rm -f unictype/categ_Pc.lo
-       -rm -f unictype/categ_Pd.$(OBJEXT)
-       -rm -f unictype/categ_Pd.lo
-       -rm -f unictype/categ_Pe.$(OBJEXT)
-       -rm -f unictype/categ_Pe.lo
-       -rm -f unictype/categ_Pf.$(OBJEXT)
-       -rm -f unictype/categ_Pf.lo
-       -rm -f unictype/categ_Pi.$(OBJEXT)
-       -rm -f unictype/categ_Pi.lo
-       -rm -f unictype/categ_Po.$(OBJEXT)
-       -rm -f unictype/categ_Po.lo
-       -rm -f unictype/categ_Ps.$(OBJEXT)
-       -rm -f unictype/categ_Ps.lo
-       -rm -f unictype/categ_S.$(OBJEXT)
-       -rm -f unictype/categ_S.lo
-       -rm -f unictype/categ_Sc.$(OBJEXT)
-       -rm -f unictype/categ_Sc.lo
-       -rm -f unictype/categ_Sk.$(OBJEXT)
-       -rm -f unictype/categ_Sk.lo
-       -rm -f unictype/categ_Sm.$(OBJEXT)
-       -rm -f unictype/categ_Sm.lo
-       -rm -f unictype/categ_So.$(OBJEXT)
-       -rm -f unictype/categ_So.lo
-       -rm -f unictype/categ_Z.$(OBJEXT)
-       -rm -f unictype/categ_Z.lo
-       -rm -f unictype/categ_Zl.$(OBJEXT)
-       -rm -f unictype/categ_Zl.lo
-       -rm -f unictype/categ_Zp.$(OBJEXT)
-       -rm -f unictype/categ_Zp.lo
-       -rm -f unictype/categ_Zs.$(OBJEXT)
-       -rm -f unictype/categ_Zs.lo
-       -rm -f unictype/categ_and.$(OBJEXT)
-       -rm -f unictype/categ_and.lo
-       -rm -f unictype/categ_and_not.$(OBJEXT)
-       -rm -f unictype/categ_and_not.lo
-       -rm -f unictype/categ_byname.$(OBJEXT)
-       -rm -f unictype/categ_byname.lo
-       -rm -f unictype/categ_name.$(OBJEXT)
-       -rm -f unictype/categ_name.lo
-       -rm -f unictype/categ_none.$(OBJEXT)
-       -rm -f unictype/categ_none.lo
-       -rm -f unictype/categ_of.$(OBJEXT)
-       -rm -f unictype/categ_of.lo
-       -rm -f unictype/categ_or.$(OBJEXT)
-       -rm -f unictype/categ_or.lo
-       -rm -f unictype/categ_test.$(OBJEXT)
-       -rm -f unictype/categ_test.lo
-       -rm -f unictype/combining.$(OBJEXT)
-       -rm -f unictype/combining.lo
-       -rm -f unictype/ctype_alnum.$(OBJEXT)
-       -rm -f unictype/ctype_alnum.lo
-       -rm -f unictype/ctype_alpha.$(OBJEXT)
-       -rm -f unictype/ctype_alpha.lo
-       -rm -f unictype/ctype_blank.$(OBJEXT)
-       -rm -f unictype/ctype_blank.lo
-       -rm -f unictype/ctype_cntrl.$(OBJEXT)
-       -rm -f unictype/ctype_cntrl.lo
-       -rm -f unictype/ctype_digit.$(OBJEXT)
-       -rm -f unictype/ctype_digit.lo
-       -rm -f unictype/ctype_graph.$(OBJEXT)
-       -rm -f unictype/ctype_graph.lo
-       -rm -f unictype/ctype_lower.$(OBJEXT)
-       -rm -f unictype/ctype_lower.lo
-       -rm -f unictype/ctype_print.$(OBJEXT)
-       -rm -f unictype/ctype_print.lo
-       -rm -f unictype/ctype_punct.$(OBJEXT)
-       -rm -f unictype/ctype_punct.lo
-       -rm -f unictype/ctype_space.$(OBJEXT)
-       -rm -f unictype/ctype_space.lo
-       -rm -f unictype/ctype_upper.$(OBJEXT)
-       -rm -f unictype/ctype_upper.lo
-       -rm -f unictype/ctype_xdigit.$(OBJEXT)
-       -rm -f unictype/ctype_xdigit.lo
-       -rm -f unictype/decdigit.$(OBJEXT)
-       -rm -f unictype/decdigit.lo
-       -rm -f unictype/digit.$(OBJEXT)
-       -rm -f unictype/digit.lo
-       -rm -f unictype/mirror.$(OBJEXT)
-       -rm -f unictype/mirror.lo
-       -rm -f unictype/numeric.$(OBJEXT)
-       -rm -f unictype/numeric.lo
-       -rm -f unictype/pr_alphabetic.$(OBJEXT)
-       -rm -f unictype/pr_alphabetic.lo
-       -rm -f unictype/pr_ascii_hex_digit.$(OBJEXT)
-       -rm -f unictype/pr_ascii_hex_digit.lo
-       -rm -f unictype/pr_bidi_arabic_digit.$(OBJEXT)
-       -rm -f unictype/pr_bidi_arabic_digit.lo
-       -rm -f unictype/pr_bidi_arabic_right_to_left.$(OBJEXT)
-       -rm -f unictype/pr_bidi_arabic_right_to_left.lo
-       -rm -f unictype/pr_bidi_block_separator.$(OBJEXT)
-       -rm -f unictype/pr_bidi_block_separator.lo
-       -rm -f unictype/pr_bidi_boundary_neutral.$(OBJEXT)
-       -rm -f unictype/pr_bidi_boundary_neutral.lo
-       -rm -f unictype/pr_bidi_common_separator.$(OBJEXT)
-       -rm -f unictype/pr_bidi_common_separator.lo
-       -rm -f unictype/pr_bidi_control.$(OBJEXT)
-       -rm -f unictype/pr_bidi_control.lo
-       -rm -f unictype/pr_bidi_embedding_or_override.$(OBJEXT)
-       -rm -f unictype/pr_bidi_embedding_or_override.lo
-       -rm -f unictype/pr_bidi_eur_num_separator.$(OBJEXT)
-       -rm -f unictype/pr_bidi_eur_num_separator.lo
-       -rm -f unictype/pr_bidi_eur_num_terminator.$(OBJEXT)
-       -rm -f unictype/pr_bidi_eur_num_terminator.lo
-       -rm -f unictype/pr_bidi_european_digit.$(OBJEXT)
-       -rm -f unictype/pr_bidi_european_digit.lo
-       -rm -f unictype/pr_bidi_hebrew_right_to_left.$(OBJEXT)
-       -rm -f unictype/pr_bidi_hebrew_right_to_left.lo
-       -rm -f unictype/pr_bidi_left_to_right.$(OBJEXT)
-       -rm -f unictype/pr_bidi_left_to_right.lo
-       -rm -f unictype/pr_bidi_non_spacing_mark.$(OBJEXT)
-       -rm -f unictype/pr_bidi_non_spacing_mark.lo
-       -rm -f unictype/pr_bidi_other_neutral.$(OBJEXT)
-       -rm -f unictype/pr_bidi_other_neutral.lo
-       -rm -f unictype/pr_bidi_pdf.$(OBJEXT)
-       -rm -f unictype/pr_bidi_pdf.lo
-       -rm -f unictype/pr_bidi_segment_separator.$(OBJEXT)
-       -rm -f unictype/pr_bidi_segment_separator.lo
-       -rm -f unictype/pr_bidi_whitespace.$(OBJEXT)
-       -rm -f unictype/pr_bidi_whitespace.lo
-       -rm -f unictype/pr_byname.$(OBJEXT)
-       -rm -f unictype/pr_byname.lo
-       -rm -f unictype/pr_combining.$(OBJEXT)
-       -rm -f unictype/pr_combining.lo
-       -rm -f unictype/pr_composite.$(OBJEXT)
-       -rm -f unictype/pr_composite.lo
-       -rm -f unictype/pr_currency_symbol.$(OBJEXT)
-       -rm -f unictype/pr_currency_symbol.lo
-       -rm -f unictype/pr_dash.$(OBJEXT)
-       -rm -f unictype/pr_dash.lo
-       -rm -f unictype/pr_decimal_digit.$(OBJEXT)
-       -rm -f unictype/pr_decimal_digit.lo
-       -rm -f unictype/pr_default_ignorable_code_point.$(OBJEXT)
-       -rm -f unictype/pr_default_ignorable_code_point.lo
-       -rm -f unictype/pr_deprecated.$(OBJEXT)
-       -rm -f unictype/pr_deprecated.lo
-       -rm -f unictype/pr_diacritic.$(OBJEXT)
-       -rm -f unictype/pr_diacritic.lo
-       -rm -f unictype/pr_extender.$(OBJEXT)
-       -rm -f unictype/pr_extender.lo
-       -rm -f unictype/pr_format_control.$(OBJEXT)
-       -rm -f unictype/pr_format_control.lo
-       -rm -f unictype/pr_grapheme_base.$(OBJEXT)
-       -rm -f unictype/pr_grapheme_base.lo
-       -rm -f unictype/pr_grapheme_extend.$(OBJEXT)
-       -rm -f unictype/pr_grapheme_extend.lo
-       -rm -f unictype/pr_grapheme_link.$(OBJEXT)
-       -rm -f unictype/pr_grapheme_link.lo
-       -rm -f unictype/pr_hex_digit.$(OBJEXT)
-       -rm -f unictype/pr_hex_digit.lo
-       -rm -f unictype/pr_hyphen.$(OBJEXT)
-       -rm -f unictype/pr_hyphen.lo
-       -rm -f unictype/pr_id_continue.$(OBJEXT)
-       -rm -f unictype/pr_id_continue.lo
-       -rm -f unictype/pr_id_start.$(OBJEXT)
-       -rm -f unictype/pr_id_start.lo
-       -rm -f unictype/pr_ideographic.$(OBJEXT)
-       -rm -f unictype/pr_ideographic.lo
-       -rm -f unictype/pr_ids_binary_operator.$(OBJEXT)
-       -rm -f unictype/pr_ids_binary_operator.lo
-       -rm -f unictype/pr_ids_trinary_operator.$(OBJEXT)
-       -rm -f unictype/pr_ids_trinary_operator.lo
-       -rm -f unictype/pr_ignorable_control.$(OBJEXT)
-       -rm -f unictype/pr_ignorable_control.lo
-       -rm -f unictype/pr_iso_control.$(OBJEXT)
-       -rm -f unictype/pr_iso_control.lo
-       -rm -f unictype/pr_join_control.$(OBJEXT)
-       -rm -f unictype/pr_join_control.lo
-       -rm -f unictype/pr_left_of_pair.$(OBJEXT)
-       -rm -f unictype/pr_left_of_pair.lo
-       -rm -f unictype/pr_line_separator.$(OBJEXT)
-       -rm -f unictype/pr_line_separator.lo
-       -rm -f unictype/pr_logical_order_exception.$(OBJEXT)
-       -rm -f unictype/pr_logical_order_exception.lo
-       -rm -f unictype/pr_lowercase.$(OBJEXT)
-       -rm -f unictype/pr_lowercase.lo
-       -rm -f unictype/pr_math.$(OBJEXT)
-       -rm -f unictype/pr_math.lo
-       -rm -f unictype/pr_non_break.$(OBJEXT)
-       -rm -f unictype/pr_non_break.lo
-       -rm -f unictype/pr_not_a_character.$(OBJEXT)
-       -rm -f unictype/pr_not_a_character.lo
-       -rm -f unictype/pr_numeric.$(OBJEXT)
-       -rm -f unictype/pr_numeric.lo
-       -rm -f unictype/pr_other_alphabetic.$(OBJEXT)
-       -rm -f unictype/pr_other_alphabetic.lo
-       -rm -f unictype/pr_other_default_ignorable_code_point.$(OBJEXT)
-       -rm -f unictype/pr_other_default_ignorable_code_point.lo
-       -rm -f unictype/pr_other_grapheme_extend.$(OBJEXT)
-       -rm -f unictype/pr_other_grapheme_extend.lo
-       -rm -f unictype/pr_other_id_continue.$(OBJEXT)
-       -rm -f unictype/pr_other_id_continue.lo
-       -rm -f unictype/pr_other_id_start.$(OBJEXT)
-       -rm -f unictype/pr_other_id_start.lo
-       -rm -f unictype/pr_other_lowercase.$(OBJEXT)
-       -rm -f unictype/pr_other_lowercase.lo
-       -rm -f unictype/pr_other_math.$(OBJEXT)
-       -rm -f unictype/pr_other_math.lo
-       -rm -f unictype/pr_other_uppercase.$(OBJEXT)
-       -rm -f unictype/pr_other_uppercase.lo
-       -rm -f unictype/pr_paired_punctuation.$(OBJEXT)
-       -rm -f unictype/pr_paired_punctuation.lo
-       -rm -f unictype/pr_paragraph_separator.$(OBJEXT)
-       -rm -f unictype/pr_paragraph_separator.lo
-       -rm -f unictype/pr_pattern_syntax.$(OBJEXT)
-       -rm -f unictype/pr_pattern_syntax.lo
-       -rm -f unictype/pr_pattern_white_space.$(OBJEXT)
-       -rm -f unictype/pr_pattern_white_space.lo
-       -rm -f unictype/pr_private_use.$(OBJEXT)
-       -rm -f unictype/pr_private_use.lo
-       -rm -f unictype/pr_punctuation.$(OBJEXT)
-       -rm -f unictype/pr_punctuation.lo
-       -rm -f unictype/pr_quotation_mark.$(OBJEXT)
-       -rm -f unictype/pr_quotation_mark.lo
-       -rm -f unictype/pr_radical.$(OBJEXT)
-       -rm -f unictype/pr_radical.lo
-       -rm -f unictype/pr_sentence_terminal.$(OBJEXT)
-       -rm -f unictype/pr_sentence_terminal.lo
-       -rm -f unictype/pr_soft_dotted.$(OBJEXT)
-       -rm -f unictype/pr_soft_dotted.lo
-       -rm -f unictype/pr_space.$(OBJEXT)
-       -rm -f unictype/pr_space.lo
-       -rm -f unictype/pr_terminal_punctuation.$(OBJEXT)
-       -rm -f unictype/pr_terminal_punctuation.lo
-       -rm -f unictype/pr_test.$(OBJEXT)
-       -rm -f unictype/pr_test.lo
-       -rm -f unictype/pr_titlecase.$(OBJEXT)
-       -rm -f unictype/pr_titlecase.lo
-       -rm -f unictype/pr_unassigned_code_value.$(OBJEXT)
-       -rm -f unictype/pr_unassigned_code_value.lo
-       -rm -f unictype/pr_unified_ideograph.$(OBJEXT)
-       -rm -f unictype/pr_unified_ideograph.lo
-       -rm -f unictype/pr_uppercase.$(OBJEXT)
-       -rm -f unictype/pr_uppercase.lo
-       -rm -f unictype/pr_variation_selector.$(OBJEXT)
-       -rm -f unictype/pr_variation_selector.lo
-       -rm -f unictype/pr_white_space.$(OBJEXT)
-       -rm -f unictype/pr_white_space.lo
-       -rm -f unictype/pr_xid_continue.$(OBJEXT)
-       -rm -f unictype/pr_xid_continue.lo
-       -rm -f unictype/pr_xid_start.$(OBJEXT)
-       -rm -f unictype/pr_xid_start.lo
-       -rm -f unictype/pr_zero_width.$(OBJEXT)
-       -rm -f unictype/pr_zero_width.lo
-       -rm -f unictype/scripts.$(OBJEXT)
-       -rm -f unictype/scripts.lo
-       -rm -f unictype/sy_c_ident.$(OBJEXT)
-       -rm -f unictype/sy_c_ident.lo
-       -rm -f unictype/sy_c_whitespace.$(OBJEXT)
-       -rm -f unictype/sy_c_whitespace.lo
-       -rm -f unictype/sy_java_ident.$(OBJEXT)
-       -rm -f unictype/sy_java_ident.lo
-       -rm -f unictype/sy_java_whitespace.$(OBJEXT)
-       -rm -f unictype/sy_java_whitespace.lo
-       -rm -f unilbrk/lbrktables.$(OBJEXT)
-       -rm -f unilbrk/lbrktables.lo
-       -rm -f unilbrk/u16-possible-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/u16-possible-linebreaks.lo
-       -rm -f unilbrk/u16-width-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/u16-width-linebreaks.lo
-       -rm -f unilbrk/u32-possible-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/u32-possible-linebreaks.lo
-       -rm -f unilbrk/u32-width-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/u32-width-linebreaks.lo
-       -rm -f unilbrk/u8-possible-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/u8-possible-linebreaks.lo
-       -rm -f unilbrk/u8-width-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/u8-width-linebreaks.lo
-       -rm -f unilbrk/ulc-common.$(OBJEXT)
-       -rm -f unilbrk/ulc-common.lo
-       -rm -f unilbrk/ulc-possible-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/ulc-possible-linebreaks.lo
-       -rm -f unilbrk/ulc-width-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/ulc-width-linebreaks.lo
-       -rm -f uniname/uniname.$(OBJEXT)
-       -rm -f uniname/uniname.lo
-       -rm -f uninorm/canonical-decomposition.$(OBJEXT)
-       -rm -f uninorm/canonical-decomposition.lo
-       -rm -f uninorm/compat-decomposition.$(OBJEXT)
-       -rm -f uninorm/compat-decomposition.lo
-       -rm -f uninorm/composition.$(OBJEXT)
-       -rm -f uninorm/composition.lo
-       -rm -f uninorm/decompose-internal.$(OBJEXT)
-       -rm -f uninorm/decompose-internal.lo
-       -rm -f uninorm/decomposing-form.$(OBJEXT)
-       -rm -f uninorm/decomposing-form.lo
-       -rm -f uninorm/decomposition-table.$(OBJEXT)
-       -rm -f uninorm/decomposition-table.lo
-       -rm -f uninorm/decomposition.$(OBJEXT)
-       -rm -f uninorm/decomposition.lo
-       -rm -f uninorm/nfc.$(OBJEXT)
-       -rm -f uninorm/nfc.lo
-       -rm -f uninorm/nfd.$(OBJEXT)
-       -rm -f uninorm/nfd.lo
-       -rm -f uninorm/nfkc.$(OBJEXT)
-       -rm -f uninorm/nfkc.lo
-       -rm -f uninorm/nfkd.$(OBJEXT)
-       -rm -f uninorm/nfkd.lo
-       -rm -f uninorm/u16-normalize.$(OBJEXT)
-       -rm -f uninorm/u16-normalize.lo
-       -rm -f uninorm/u16-normcmp.$(OBJEXT)
-       -rm -f uninorm/u16-normcmp.lo
-       -rm -f uninorm/u16-normcoll.$(OBJEXT)
-       -rm -f uninorm/u16-normcoll.lo
-       -rm -f uninorm/u16-normxfrm.$(OBJEXT)
-       -rm -f uninorm/u16-normxfrm.lo
-       -rm -f uninorm/u32-normalize.$(OBJEXT)
-       -rm -f uninorm/u32-normalize.lo
-       -rm -f uninorm/u32-normcmp.$(OBJEXT)
-       -rm -f uninorm/u32-normcmp.lo
-       -rm -f uninorm/u32-normcoll.$(OBJEXT)
-       -rm -f uninorm/u32-normcoll.lo
-       -rm -f uninorm/u32-normxfrm.$(OBJEXT)
-       -rm -f uninorm/u32-normxfrm.lo
-       -rm -f uninorm/u8-normalize.$(OBJEXT)
-       -rm -f uninorm/u8-normalize.lo
-       -rm -f uninorm/u8-normcmp.$(OBJEXT)
-       -rm -f uninorm/u8-normcmp.lo
-       -rm -f uninorm/u8-normcoll.$(OBJEXT)
-       -rm -f uninorm/u8-normcoll.lo
-       -rm -f uninorm/u8-normxfrm.$(OBJEXT)
-       -rm -f uninorm/u8-normxfrm.lo
-       -rm -f uninorm/uninorm-filter.$(OBJEXT)
-       -rm -f uninorm/uninorm-filter.lo
-       -rm -f unistdio/u-printf-args.$(OBJEXT)
-       -rm -f unistdio/u-printf-args.lo
-       -rm -f unistdio/u16-asnprintf.$(OBJEXT)
-       -rm -f unistdio/u16-asnprintf.lo
-       -rm -f unistdio/u16-asprintf.$(OBJEXT)
-       -rm -f unistdio/u16-asprintf.lo
-       -rm -f unistdio/u16-printf-parse.$(OBJEXT)
-       -rm -f unistdio/u16-printf-parse.lo
-       -rm -f unistdio/u16-snprintf.$(OBJEXT)
-       -rm -f unistdio/u16-snprintf.lo
-       -rm -f unistdio/u16-sprintf.$(OBJEXT)
-       -rm -f unistdio/u16-sprintf.lo
-       -rm -f unistdio/u16-u16-asnprintf.$(OBJEXT)
-       -rm -f unistdio/u16-u16-asnprintf.lo
-       -rm -f unistdio/u16-u16-asprintf.$(OBJEXT)
-       -rm -f unistdio/u16-u16-asprintf.lo
-       -rm -f unistdio/u16-u16-snprintf.$(OBJEXT)
-       -rm -f unistdio/u16-u16-snprintf.lo
-       -rm -f unistdio/u16-u16-sprintf.$(OBJEXT)
-       -rm -f unistdio/u16-u16-sprintf.lo
-       -rm -f unistdio/u16-u16-vasnprintf.$(OBJEXT)
-       -rm -f unistdio/u16-u16-vasnprintf.lo
-       -rm -f unistdio/u16-u16-vasprintf.$(OBJEXT)
-       -rm -f unistdio/u16-u16-vasprintf.lo
-       -rm -f unistdio/u16-u16-vsnprintf.$(OBJEXT)
-       -rm -f unistdio/u16-u16-vsnprintf.lo
-       -rm -f unistdio/u16-u16-vsprintf.$(OBJEXT)
-       -rm -f unistdio/u16-u16-vsprintf.lo
-       -rm -f unistdio/u16-vasnprintf.$(OBJEXT)
-       -rm -f unistdio/u16-vasnprintf.lo
-       -rm -f unistdio/u16-vasprintf.$(OBJEXT)
-       -rm -f unistdio/u16-vasprintf.lo
-       -rm -f unistdio/u16-vsnprintf.$(OBJEXT)
-       -rm -f unistdio/u16-vsnprintf.lo
-       -rm -f unistdio/u16-vsprintf.$(OBJEXT)
-       -rm -f unistdio/u16-vsprintf.lo
-       -rm -f unistdio/u32-asnprintf.$(OBJEXT)
-       -rm -f unistdio/u32-asnprintf.lo
-       -rm -f unistdio/u32-asprintf.$(OBJEXT)
-       -rm -f unistdio/u32-asprintf.lo
-       -rm -f unistdio/u32-printf-parse.$(OBJEXT)
-       -rm -f unistdio/u32-printf-parse.lo
-       -rm -f unistdio/u32-snprintf.$(OBJEXT)
-       -rm -f unistdio/u32-snprintf.lo
-       -rm -f unistdio/u32-sprintf.$(OBJEXT)
-       -rm -f unistdio/u32-sprintf.lo
-       -rm -f unistdio/u32-u32-asnprintf.$(OBJEXT)
-       -rm -f unistdio/u32-u32-asnprintf.lo
-       -rm -f unistdio/u32-u32-asprintf.$(OBJEXT)
-       -rm -f unistdio/u32-u32-asprintf.lo
-       -rm -f unistdio/u32-u32-snprintf.$(OBJEXT)
-       -rm -f unistdio/u32-u32-snprintf.lo
-       -rm -f unistdio/u32-u32-sprintf.$(OBJEXT)
-       -rm -f unistdio/u32-u32-sprintf.lo
-       -rm -f unistdio/u32-u32-vasnprintf.$(OBJEXT)
-       -rm -f unistdio/u32-u32-vasnprintf.lo
-       -rm -f unistdio/u32-u32-vasprintf.$(OBJEXT)
-       -rm -f unistdio/u32-u32-vasprintf.lo
-       -rm -f unistdio/u32-u32-vsnprintf.$(OBJEXT)
-       -rm -f unistdio/u32-u32-vsnprintf.lo
-       -rm -f unistdio/u32-u32-vsprintf.$(OBJEXT)
-       -rm -f unistdio/u32-u32-vsprintf.lo
-       -rm -f unistdio/u32-vasnprintf.$(OBJEXT)
-       -rm -f unistdio/u32-vasnprintf.lo
-       -rm -f unistdio/u32-vasprintf.$(OBJEXT)
-       -rm -f unistdio/u32-vasprintf.lo
-       -rm -f unistdio/u32-vsnprintf.$(OBJEXT)
-       -rm -f unistdio/u32-vsnprintf.lo
-       -rm -f unistdio/u32-vsprintf.$(OBJEXT)
-       -rm -f unistdio/u32-vsprintf.lo
-       -rm -f unistdio/u8-asnprintf.$(OBJEXT)
-       -rm -f unistdio/u8-asnprintf.lo
-       -rm -f unistdio/u8-asprintf.$(OBJEXT)
-       -rm -f unistdio/u8-asprintf.lo
-       -rm -f unistdio/u8-printf-parse.$(OBJEXT)
-       -rm -f unistdio/u8-printf-parse.lo
-       -rm -f unistdio/u8-snprintf.$(OBJEXT)
-       -rm -f unistdio/u8-snprintf.lo
-       -rm -f unistdio/u8-sprintf.$(OBJEXT)
-       -rm -f unistdio/u8-sprintf.lo
-       -rm -f unistdio/u8-u8-asnprintf.$(OBJEXT)
-       -rm -f unistdio/u8-u8-asnprintf.lo
-       -rm -f unistdio/u8-u8-asprintf.$(OBJEXT)
-       -rm -f unistdio/u8-u8-asprintf.lo
-       -rm -f unistdio/u8-u8-snprintf.$(OBJEXT)
-       -rm -f unistdio/u8-u8-snprintf.lo
-       -rm -f unistdio/u8-u8-sprintf.$(OBJEXT)
-       -rm -f unistdio/u8-u8-sprintf.lo
-       -rm -f unistdio/u8-u8-vasnprintf.$(OBJEXT)
-       -rm -f unistdio/u8-u8-vasnprintf.lo
-       -rm -f unistdio/u8-u8-vasprintf.$(OBJEXT)
-       -rm -f unistdio/u8-u8-vasprintf.lo
-       -rm -f unistdio/u8-u8-vsnprintf.$(OBJEXT)
-       -rm -f unistdio/u8-u8-vsnprintf.lo
-       -rm -f unistdio/u8-u8-vsprintf.$(OBJEXT)
-       -rm -f unistdio/u8-u8-vsprintf.lo
-       -rm -f unistdio/u8-vasnprintf.$(OBJEXT)
-       -rm -f unistdio/u8-vasnprintf.lo
-       -rm -f unistdio/u8-vasprintf.$(OBJEXT)
-       -rm -f unistdio/u8-vasprintf.lo
-       -rm -f unistdio/u8-vsnprintf.$(OBJEXT)
-       -rm -f unistdio/u8-vsnprintf.lo
-       -rm -f unistdio/u8-vsprintf.$(OBJEXT)
-       -rm -f unistdio/u8-vsprintf.lo
-       -rm -f unistdio/ulc-asnprintf.$(OBJEXT)
-       -rm -f unistdio/ulc-asnprintf.lo
-       -rm -f unistdio/ulc-asprintf.$(OBJEXT)
-       -rm -f unistdio/ulc-asprintf.lo
-       -rm -f unistdio/ulc-fprintf.$(OBJEXT)
-       -rm -f unistdio/ulc-fprintf.lo
-       -rm -f unistdio/ulc-printf-parse.$(OBJEXT)
-       -rm -f unistdio/ulc-printf-parse.lo
-       -rm -f unistdio/ulc-snprintf.$(OBJEXT)
-       -rm -f unistdio/ulc-snprintf.lo
-       -rm -f unistdio/ulc-sprintf.$(OBJEXT)
-       -rm -f unistdio/ulc-sprintf.lo
-       -rm -f unistdio/ulc-vasnprintf.$(OBJEXT)
-       -rm -f unistdio/ulc-vasnprintf.lo
-       -rm -f unistdio/ulc-vasprintf.$(OBJEXT)
-       -rm -f unistdio/ulc-vasprintf.lo
-       -rm -f unistdio/ulc-vfprintf.$(OBJEXT)
-       -rm -f unistdio/ulc-vfprintf.lo
-       -rm -f unistdio/ulc-vsnprintf.$(OBJEXT)
-       -rm -f unistdio/ulc-vsnprintf.lo
-       -rm -f unistdio/ulc-vsprintf.$(OBJEXT)
-       -rm -f unistdio/ulc-vsprintf.lo
-       -rm -f unistr/u16-check.$(OBJEXT)
-       -rm -f unistr/u16-check.lo
-       -rm -f unistr/u16-chr.$(OBJEXT)
-       -rm -f unistr/u16-chr.lo
-       -rm -f unistr/u16-cmp.$(OBJEXT)
-       -rm -f unistr/u16-cmp.lo
-       -rm -f unistr/u16-cmp2.$(OBJEXT)
-       -rm -f unistr/u16-cmp2.lo
-       -rm -f unistr/u16-cpy-alloc.$(OBJEXT)
-       -rm -f unistr/u16-cpy-alloc.lo
-       -rm -f unistr/u16-cpy.$(OBJEXT)
-       -rm -f unistr/u16-cpy.lo
-       -rm -f unistr/u16-endswith.$(OBJEXT)
-       -rm -f unistr/u16-endswith.lo
-       -rm -f unistr/u16-mblen.$(OBJEXT)
-       -rm -f unistr/u16-mblen.lo
-       -rm -f unistr/u16-mbsnlen.$(OBJEXT)
-       -rm -f unistr/u16-mbsnlen.lo
-       -rm -f unistr/u16-mbtouc-aux.$(OBJEXT)
-       -rm -f unistr/u16-mbtouc-aux.lo
-       -rm -f unistr/u16-mbtouc-unsafe-aux.$(OBJEXT)
-       -rm -f unistr/u16-mbtouc-unsafe-aux.lo
-       -rm -f unistr/u16-mbtouc-unsafe.$(OBJEXT)
-       -rm -f unistr/u16-mbtouc-unsafe.lo
-       -rm -f unistr/u16-mbtouc.$(OBJEXT)
-       -rm -f unistr/u16-mbtouc.lo
-       -rm -f unistr/u16-mbtoucr.$(OBJEXT)
-       -rm -f unistr/u16-mbtoucr.lo
-       -rm -f unistr/u16-move.$(OBJEXT)
-       -rm -f unistr/u16-move.lo
-       -rm -f unistr/u16-next.$(OBJEXT)
-       -rm -f unistr/u16-next.lo
-       -rm -f unistr/u16-prev.$(OBJEXT)
-       -rm -f unistr/u16-prev.lo
-       -rm -f unistr/u16-set.$(OBJEXT)
-       -rm -f unistr/u16-set.lo
-       -rm -f unistr/u16-startswith.$(OBJEXT)
-       -rm -f unistr/u16-startswith.lo
-       -rm -f unistr/u16-stpcpy.$(OBJEXT)
-       -rm -f unistr/u16-stpcpy.lo
-       -rm -f unistr/u16-stpncpy.$(OBJEXT)
-       -rm -f unistr/u16-stpncpy.lo
-       -rm -f unistr/u16-strcat.$(OBJEXT)
-       -rm -f unistr/u16-strcat.lo
-       -rm -f unistr/u16-strchr.$(OBJEXT)
-       -rm -f unistr/u16-strchr.lo
-       -rm -f unistr/u16-strcmp.$(OBJEXT)
-       -rm -f unistr/u16-strcmp.lo
-       -rm -f unistr/u16-strcoll.$(OBJEXT)
-       -rm -f unistr/u16-strcoll.lo
-       -rm -f unistr/u16-strcpy.$(OBJEXT)
-       -rm -f unistr/u16-strcpy.lo
-       -rm -f unistr/u16-strcspn.$(OBJEXT)
-       -rm -f unistr/u16-strcspn.lo
-       -rm -f unistr/u16-strdup.$(OBJEXT)
-       -rm -f unistr/u16-strdup.lo
-       -rm -f unistr/u16-strlen.$(OBJEXT)
-       -rm -f unistr/u16-strlen.lo
-       -rm -f unistr/u16-strmblen.$(OBJEXT)
-       -rm -f unistr/u16-strmblen.lo
-       -rm -f unistr/u16-strmbtouc.$(OBJEXT)
-       -rm -f unistr/u16-strmbtouc.lo
-       -rm -f unistr/u16-strncat.$(OBJEXT)
-       -rm -f unistr/u16-strncat.lo
-       -rm -f unistr/u16-strncmp.$(OBJEXT)
-       -rm -f unistr/u16-strncmp.lo
-       -rm -f unistr/u16-strncpy.$(OBJEXT)
-       -rm -f unistr/u16-strncpy.lo
-       -rm -f unistr/u16-strnlen.$(OBJEXT)
-       -rm -f unistr/u16-strnlen.lo
-       -rm -f unistr/u16-strpbrk.$(OBJEXT)
-       -rm -f unistr/u16-strpbrk.lo
-       -rm -f unistr/u16-strrchr.$(OBJEXT)
-       -rm -f unistr/u16-strrchr.lo
-       -rm -f unistr/u16-strspn.$(OBJEXT)
-       -rm -f unistr/u16-strspn.lo
-       -rm -f unistr/u16-strstr.$(OBJEXT)
-       -rm -f unistr/u16-strstr.lo
-       -rm -f unistr/u16-strtok.$(OBJEXT)
-       -rm -f unistr/u16-strtok.lo
-       -rm -f unistr/u16-to-u32.$(OBJEXT)
-       -rm -f unistr/u16-to-u32.lo
-       -rm -f unistr/u16-to-u8.$(OBJEXT)
-       -rm -f unistr/u16-to-u8.lo
-       -rm -f unistr/u16-uctomb-aux.$(OBJEXT)
-       -rm -f unistr/u16-uctomb-aux.lo
-       -rm -f unistr/u16-uctomb.$(OBJEXT)
-       -rm -f unistr/u16-uctomb.lo
-       -rm -f unistr/u32-check.$(OBJEXT)
-       -rm -f unistr/u32-check.lo
-       -rm -f unistr/u32-chr.$(OBJEXT)
-       -rm -f unistr/u32-chr.lo
-       -rm -f unistr/u32-cmp.$(OBJEXT)
-       -rm -f unistr/u32-cmp.lo
-       -rm -f unistr/u32-cmp2.$(OBJEXT)
-       -rm -f unistr/u32-cmp2.lo
-       -rm -f unistr/u32-cpy-alloc.$(OBJEXT)
-       -rm -f unistr/u32-cpy-alloc.lo
-       -rm -f unistr/u32-cpy.$(OBJEXT)
-       -rm -f unistr/u32-cpy.lo
-       -rm -f unistr/u32-endswith.$(OBJEXT)
-       -rm -f unistr/u32-endswith.lo
-       -rm -f unistr/u32-mblen.$(OBJEXT)
-       -rm -f unistr/u32-mblen.lo
-       -rm -f unistr/u32-mbsnlen.$(OBJEXT)
-       -rm -f unistr/u32-mbsnlen.lo
-       -rm -f unistr/u32-mbtouc-unsafe.$(OBJEXT)
-       -rm -f unistr/u32-mbtouc-unsafe.lo
-       -rm -f unistr/u32-mbtouc.$(OBJEXT)
-       -rm -f unistr/u32-mbtouc.lo
-       -rm -f unistr/u32-mbtoucr.$(OBJEXT)
-       -rm -f unistr/u32-mbtoucr.lo
-       -rm -f unistr/u32-move.$(OBJEXT)
-       -rm -f unistr/u32-move.lo
-       -rm -f unistr/u32-next.$(OBJEXT)
-       -rm -f unistr/u32-next.lo
-       -rm -f unistr/u32-prev.$(OBJEXT)
-       -rm -f unistr/u32-prev.lo
-       -rm -f unistr/u32-set.$(OBJEXT)
-       -rm -f unistr/u32-set.lo
-       -rm -f unistr/u32-startswith.$(OBJEXT)
-       -rm -f unistr/u32-startswith.lo
-       -rm -f unistr/u32-stpcpy.$(OBJEXT)
-       -rm -f unistr/u32-stpcpy.lo
-       -rm -f unistr/u32-stpncpy.$(OBJEXT)
-       -rm -f unistr/u32-stpncpy.lo
-       -rm -f unistr/u32-strcat.$(OBJEXT)
-       -rm -f unistr/u32-strcat.lo
-       -rm -f unistr/u32-strchr.$(OBJEXT)
-       -rm -f unistr/u32-strchr.lo
-       -rm -f unistr/u32-strcmp.$(OBJEXT)
-       -rm -f unistr/u32-strcmp.lo
-       -rm -f unistr/u32-strcoll.$(OBJEXT)
-       -rm -f unistr/u32-strcoll.lo
-       -rm -f unistr/u32-strcpy.$(OBJEXT)
-       -rm -f unistr/u32-strcpy.lo
-       -rm -f unistr/u32-strcspn.$(OBJEXT)
-       -rm -f unistr/u32-strcspn.lo
-       -rm -f unistr/u32-strdup.$(OBJEXT)
-       -rm -f unistr/u32-strdup.lo
-       -rm -f unistr/u32-strlen.$(OBJEXT)
-       -rm -f unistr/u32-strlen.lo
-       -rm -f unistr/u32-strmblen.$(OBJEXT)
-       -rm -f unistr/u32-strmblen.lo
-       -rm -f unistr/u32-strmbtouc.$(OBJEXT)
-       -rm -f unistr/u32-strmbtouc.lo
-       -rm -f unistr/u32-strncat.$(OBJEXT)
-       -rm -f unistr/u32-strncat.lo
-       -rm -f unistr/u32-strncmp.$(OBJEXT)
-       -rm -f unistr/u32-strncmp.lo
-       -rm -f unistr/u32-strncpy.$(OBJEXT)
-       -rm -f unistr/u32-strncpy.lo
-       -rm -f unistr/u32-strnlen.$(OBJEXT)
-       -rm -f unistr/u32-strnlen.lo
-       -rm -f unistr/u32-strpbrk.$(OBJEXT)
-       -rm -f unistr/u32-strpbrk.lo
-       -rm -f unistr/u32-strrchr.$(OBJEXT)
-       -rm -f unistr/u32-strrchr.lo
-       -rm -f unistr/u32-strspn.$(OBJEXT)
-       -rm -f unistr/u32-strspn.lo
-       -rm -f unistr/u32-strstr.$(OBJEXT)
-       -rm -f unistr/u32-strstr.lo
-       -rm -f unistr/u32-strtok.$(OBJEXT)
-       -rm -f unistr/u32-strtok.lo
-       -rm -f unistr/u32-to-u16.$(OBJEXT)
-       -rm -f unistr/u32-to-u16.lo
-       -rm -f unistr/u32-to-u8.$(OBJEXT)
-       -rm -f unistr/u32-to-u8.lo
-       -rm -f unistr/u32-uctomb.$(OBJEXT)
-       -rm -f unistr/u32-uctomb.lo
-       -rm -f unistr/u8-check.$(OBJEXT)
-       -rm -f unistr/u8-check.lo
-       -rm -f unistr/u8-chr.$(OBJEXT)
-       -rm -f unistr/u8-chr.lo
-       -rm -f unistr/u8-cmp.$(OBJEXT)
-       -rm -f unistr/u8-cmp.lo
-       -rm -f unistr/u8-cmp2.$(OBJEXT)
-       -rm -f unistr/u8-cmp2.lo
-       -rm -f unistr/u8-cpy-alloc.$(OBJEXT)
-       -rm -f unistr/u8-cpy-alloc.lo
-       -rm -f unistr/u8-cpy.$(OBJEXT)
-       -rm -f unistr/u8-cpy.lo
-       -rm -f unistr/u8-endswith.$(OBJEXT)
-       -rm -f unistr/u8-endswith.lo
-       -rm -f unistr/u8-mblen.$(OBJEXT)
-       -rm -f unistr/u8-mblen.lo
-       -rm -f unistr/u8-mbsnlen.$(OBJEXT)
-       -rm -f unistr/u8-mbsnlen.lo
-       -rm -f unistr/u8-mbtouc-aux.$(OBJEXT)
-       -rm -f unistr/u8-mbtouc-aux.lo
-       -rm -f unistr/u8-mbtouc-unsafe-aux.$(OBJEXT)
-       -rm -f unistr/u8-mbtouc-unsafe-aux.lo
-       -rm -f unistr/u8-mbtouc-unsafe.$(OBJEXT)
-       -rm -f unistr/u8-mbtouc-unsafe.lo
-       -rm -f unistr/u8-mbtouc.$(OBJEXT)
-       -rm -f unistr/u8-mbtouc.lo
-       -rm -f unistr/u8-mbtoucr.$(OBJEXT)
-       -rm -f unistr/u8-mbtoucr.lo
-       -rm -f unistr/u8-move.$(OBJEXT)
-       -rm -f unistr/u8-move.lo
-       -rm -f unistr/u8-next.$(OBJEXT)
-       -rm -f unistr/u8-next.lo
-       -rm -f unistr/u8-prev.$(OBJEXT)
-       -rm -f unistr/u8-prev.lo
-       -rm -f unistr/u8-set.$(OBJEXT)
-       -rm -f unistr/u8-set.lo
-       -rm -f unistr/u8-startswith.$(OBJEXT)
-       -rm -f unistr/u8-startswith.lo
-       -rm -f unistr/u8-stpcpy.$(OBJEXT)
-       -rm -f unistr/u8-stpcpy.lo
-       -rm -f unistr/u8-stpncpy.$(OBJEXT)
-       -rm -f unistr/u8-stpncpy.lo
-       -rm -f unistr/u8-strcat.$(OBJEXT)
-       -rm -f unistr/u8-strcat.lo
-       -rm -f unistr/u8-strchr.$(OBJEXT)
-       -rm -f unistr/u8-strchr.lo
-       -rm -f unistr/u8-strcmp.$(OBJEXT)
-       -rm -f unistr/u8-strcmp.lo
-       -rm -f unistr/u8-strcoll.$(OBJEXT)
-       -rm -f unistr/u8-strcoll.lo
-       -rm -f unistr/u8-strcpy.$(OBJEXT)
-       -rm -f unistr/u8-strcpy.lo
-       -rm -f unistr/u8-strcspn.$(OBJEXT)
-       -rm -f unistr/u8-strcspn.lo
-       -rm -f unistr/u8-strdup.$(OBJEXT)
-       -rm -f unistr/u8-strdup.lo
-       -rm -f unistr/u8-strlen.$(OBJEXT)
-       -rm -f unistr/u8-strlen.lo
-       -rm -f unistr/u8-strmblen.$(OBJEXT)
-       -rm -f unistr/u8-strmblen.lo
-       -rm -f unistr/u8-strmbtouc.$(OBJEXT)
-       -rm -f unistr/u8-strmbtouc.lo
-       -rm -f unistr/u8-strncat.$(OBJEXT)
-       -rm -f unistr/u8-strncat.lo
-       -rm -f unistr/u8-strncmp.$(OBJEXT)
-       -rm -f unistr/u8-strncmp.lo
-       -rm -f unistr/u8-strncpy.$(OBJEXT)
-       -rm -f unistr/u8-strncpy.lo
-       -rm -f unistr/u8-strnlen.$(OBJEXT)
-       -rm -f unistr/u8-strnlen.lo
-       -rm -f unistr/u8-strpbrk.$(OBJEXT)
-       -rm -f unistr/u8-strpbrk.lo
-       -rm -f unistr/u8-strrchr.$(OBJEXT)
-       -rm -f unistr/u8-strrchr.lo
-       -rm -f unistr/u8-strspn.$(OBJEXT)
-       -rm -f unistr/u8-strspn.lo
-       -rm -f unistr/u8-strstr.$(OBJEXT)
-       -rm -f unistr/u8-strstr.lo
-       -rm -f unistr/u8-strtok.$(OBJEXT)
-       -rm -f unistr/u8-strtok.lo
-       -rm -f unistr/u8-to-u16.$(OBJEXT)
-       -rm -f unistr/u8-to-u16.lo
-       -rm -f unistr/u8-to-u32.$(OBJEXT)
-       -rm -f unistr/u8-to-u32.lo
-       -rm -f unistr/u8-uctomb-aux.$(OBJEXT)
-       -rm -f unistr/u8-uctomb-aux.lo
-       -rm -f unistr/u8-uctomb.$(OBJEXT)
-       -rm -f unistr/u8-uctomb.lo
-       -rm -f uniwbrk/u16-wordbreaks.$(OBJEXT)
-       -rm -f uniwbrk/u16-wordbreaks.lo
-       -rm -f uniwbrk/u32-wordbreaks.$(OBJEXT)
-       -rm -f uniwbrk/u32-wordbreaks.lo
-       -rm -f uniwbrk/u8-wordbreaks.$(OBJEXT)
-       -rm -f uniwbrk/u8-wordbreaks.lo
-       -rm -f uniwbrk/ulc-wordbreaks.$(OBJEXT)
-       -rm -f uniwbrk/ulc-wordbreaks.lo
-       -rm -f uniwbrk/wbrktable.$(OBJEXT)
-       -rm -f uniwbrk/wbrktable.lo
-       -rm -f uniwbrk/wordbreak-property.$(OBJEXT)
-       -rm -f uniwbrk/wordbreak-property.lo
-       -rm -f uniwidth/u16-strwidth.$(OBJEXT)
-       -rm -f uniwidth/u16-strwidth.lo
-       -rm -f uniwidth/u16-width.$(OBJEXT)
-       -rm -f uniwidth/u16-width.lo
-       -rm -f uniwidth/u32-strwidth.$(OBJEXT)
-       -rm -f uniwidth/u32-strwidth.lo
-       -rm -f uniwidth/u32-width.$(OBJEXT)
-       -rm -f uniwidth/u32-width.lo
-       -rm -f uniwidth/u8-strwidth.$(OBJEXT)
-       -rm -f uniwidth/u8-strwidth.lo
-       -rm -f uniwidth/u8-width.$(OBJEXT)
-       -rm -f uniwidth/u8-width.lo
-       -rm -f uniwidth/width.$(OBJEXT)
-       -rm -f uniwidth/width.lo
+       -rm -f ../woe32dll/*.$(OBJEXT)
+       -rm -f ../woe32dll/*.lo
+       -rm -f glthread/*.$(OBJEXT)
+       -rm -f glthread/*.lo
+       -rm -f unicase/*.$(OBJEXT)
+       -rm -f unicase/*.lo
+       -rm -f uniconv/*.$(OBJEXT)
+       -rm -f uniconv/*.lo
+       -rm -f unictype/*.$(OBJEXT)
+       -rm -f unictype/*.lo
+       -rm -f unigbrk/*.$(OBJEXT)
+       -rm -f unigbrk/*.lo
+       -rm -f unilbrk/*.$(OBJEXT)
+       -rm -f unilbrk/*.lo
+       -rm -f uniname/*.$(OBJEXT)
+       -rm -f uniname/*.lo
+       -rm -f uninorm/*.$(OBJEXT)
+       -rm -f uninorm/*.lo
+       -rm -f unistdio/*.$(OBJEXT)
+       -rm -f unistdio/*.lo
+       -rm -f unistr/*.$(OBJEXT)
+       -rm -f unistr/*.lo
+       -rm -f uniwbrk/*.$(OBJEXT)
+       -rm -f uniwbrk/*.lo
+       -rm -f uniwidth/*.$(OBJEXT)
+       -rm -f uniwidth/*.lo
 
 distclean-compile:
        -rm -f *.tab.c
 
 .c.o:
-       $(AM_V_CC) @AM_BACKSLASH@
-       $(COMPILE) -c -o $@ $<
+       $(AM_V_CC)$(COMPILE) -c -o $@ $<
 
 .c.obj:
-       $(AM_V_CC) @AM_BACKSLASH@
-       $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+       $(AM_V_CC)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
-       $(AM_V_CC) @AM_BACKSLASH@
-       $(LTCOMPILE) -c -o $@ $<
+       $(AM_V_CC)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -3455,6 +4087,7 @@ clean-libtool:
        -rm -rf unicase/.libs unicase/_libs
        -rm -rf uniconv/.libs uniconv/_libs
        -rm -rf unictype/.libs unictype/_libs
+       -rm -rf unigbrk/.libs unigbrk/_libs
        -rm -rf unilbrk/.libs unilbrk/_libs
        -rm -rf uniname/.libs uniname/_libs
        -rm -rf uninorm/.libs uninorm/_libs
@@ -3464,15 +4097,18 @@ clean-libtool:
        -rm -rf uniwidth/.libs uniwidth/_libs
 install-nobase_includeHEADERS: $(nobase_include_HEADERS)
        @$(NORMAL_INSTALL)
-       test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
        @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
+       fi; \
        $(am__nobase_list) | while read dir files; do \
          xfiles=; for file in $$files; do \
            if test -f "$$file"; then xfiles="$$xfiles $$file"; \
            else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
          test -z "$$xfiles" || { \
            test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
+             echo " $(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
              $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \
            echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \
            $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \
@@ -3482,20 +4118,21 @@ uninstall-nobase_includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
        $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
 install-nobase_nodist_includeHEADERS: $(nobase_nodist_include_HEADERS)
        @$(NORMAL_INSTALL)
-       test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
        @list='$(nobase_nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
+       fi; \
        $(am__nobase_list) | while read dir files; do \
          xfiles=; for file in $$files; do \
            if test -f "$$file"; then xfiles="$$xfiles $$file"; \
            else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
          test -z "$$xfiles" || { \
            test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
+             echo " $(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
              $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \
            echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \
            $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \
@@ -3505,30 +4142,17 @@ uninstall-nobase_nodist_includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(nobase_nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \
        $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(includedir)" && rm -f $$files
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+       dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -3540,15 +4164,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -3557,6 +4177,21 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -3610,10 +4245,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
        -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
 
@@ -3628,6 +4268,7 @@ distclean-generic:
        -rm -f unicase/$(am__dirstamp)
        -rm -f uniconv/$(am__dirstamp)
        -rm -f unictype/$(am__dirstamp)
+       -rm -f unigbrk/$(am__dirstamp)
        -rm -f unilbrk/$(am__dirstamp)
        -rm -f uniname/$(am__dirstamp)
        -rm -f uninorm/$(am__dirstamp)
@@ -3716,13 +4357,13 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-local \
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
        clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
-       ctags distclean distclean-compile distclean-generic \
-       distclean-libtool distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-exec-local install-html \
+       cscopelist-am ctags ctags-am distclean distclean-compile \
+       distclean-generic distclean-libtool distclean-tags distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-exec-local install-html \
        install-html-am install-info install-info-am \
        install-libLTLIBRARIES install-man \
        install-nobase_includeHEADERS \
@@ -3731,7 +4372,7 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-local \
        installcheck installcheck-am installdirs maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-compile \
        mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \
-       pdf-am ps ps-am tags uninstall uninstall-am \
+       pdf-am ps ps-am tags tags-am uninstall uninstall-am \
        uninstall-libLTLIBRARIES uninstall-local \
        uninstall-nobase_includeHEADERS \
        uninstall-nobase_nodist_includeHEADERS
@@ -3739,44 +4380,17 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-local \
 
 # We need the following in order to create <alloca.h> when the system
 # doesn't have one that works with the given compiler.
-alloca.h: alloca.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         cat $(srcdir)/alloca.in.h; \
-       } > $@-t && \
-       mv -f $@-t $@
-# The arg-nonnull.h that gets inserted into generated .h files is the same as
-# build-aux/arg-nonnull.h, except that it has the copyright header cut off.
-arg-nonnull.h: $(top_srcdir)/build-aux/arg-nonnull.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/GL_ARG_NONNULL/,$$p' \
-         < $(top_srcdir)/build-aux/arg-nonnull.h \
-         > $@-t && \
-       mv $@-t $@
-# The c++defs.h that gets inserted into generated .h files is the same as
-# build-aux/c++defs.h, except that it has the copyright header cut off.
-c++defs.h: $(top_srcdir)/build-aux/c++defs.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/_GL_CXXDEFS/,$$p' \
-         < $(top_srcdir)/build-aux/c++defs.h \
-         > $@-t && \
-       mv $@-t $@
+@GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status
+@GL_GENERATE_ALLOCA_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_ALLOCA_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_ALLOCA_H_TRUE@      cat $(srcdir)/alloca.in.h; \
+@GL_GENERATE_ALLOCA_H_TRUE@    } > $@-t && \
+@GL_GENERATE_ALLOCA_H_TRUE@    mv -f $@-t $@
+@GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status
+@GL_GENERATE_ALLOCA_H_FALSE@   rm -f $@
 
-# Retrieve values of the variables through 'configure' followed by
-# 'make', not directly through 'configure', so that a user who
-# sets some of these variables consistently on the 'make' command
-# line gets correct results.
-#
-# One advantage of this approach, compared to the classical
-# approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
-# is that it protects against the use of undefined variables.
-# If, say, $(libdir) is not set in the Makefile, LIBDIR is not
-# defined by this module, and code using LIBDIR gives a
-# compilation error.
-#
-# Another advantage is that 'make' output is shorter.
-#
-# Listed in the same order as the GNU makefile conventions.
+# Listed in the same order as the GNU makefile conventions, and
+# provided by autoconf 2.59c+ or 2.70.
 # The Automake-defined pkg* macros are appended, in the order
 # listed in the Automake 1.10a+ documentation.
 configmake.h: Makefile
@@ -3792,6 +4406,7 @@ configmake.h: Makefile
          echo '#define SYSCONFDIR "$(sysconfdir)"'; \
          echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
          echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+         echo '#define RUNSTATEDIR "$(runstatedir)"'; \
          echo '#define INCLUDEDIR "$(includedir)"'; \
          echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
          echo '#define DOCDIR "$(docdir)"'; \
@@ -3810,60 +4425,70 @@ configmake.h: Makefile
          echo '#define PKGLIBDIR "$(pkglibdir)"'; \
          echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
        } | sed '/""/d' > $@-t && \
-       if test -f $@ && cmp $@-t $@ > /dev/null; then \
-         rm -f $@-t; \
-       else \
-         rm -f $@; mv $@-t $@; \
-       fi
+       mv -f $@-t $@
 
 # We need the following in order to create <errno.h> when the system
 # doesn't have one that is POSIX compliant.
-errno.h: errno.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
-             -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
-             -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
-             -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
-             -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
-             -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
-             -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
-             < $(srcdir)/errno.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+@GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status
+@GL_GENERATE_ERRNO_H_TRUE@     $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_ERRNO_H_TRUE@     { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_ERRNO_H_TRUE@       sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@           < $(srcdir)/errno.in.h; \
+@GL_GENERATE_ERRNO_H_TRUE@     } > $@-t && \
+@GL_GENERATE_ERRNO_H_TRUE@     mv $@-t $@
+@GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status
+@GL_GENERATE_ERRNO_H_FALSE@    rm -f $@
 
 # We need the following in order to create <float.h> when the system
 # doesn't have one that works with the given compiler.
-float.h: float.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
-             < $(srcdir)/float.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+@GL_GENERATE_FLOAT_H_TRUE@float.h: float.in.h $(top_builddir)/config.status
+@GL_GENERATE_FLOAT_H_TRUE@     $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_FLOAT_H_TRUE@     { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_FLOAT_H_TRUE@       sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@           < $(srcdir)/float.in.h; \
+@GL_GENERATE_FLOAT_H_TRUE@     } > $@-t && \
+@GL_GENERATE_FLOAT_H_TRUE@     mv $@-t $@
+@GL_GENERATE_FLOAT_H_FALSE@float.h: $(top_builddir)/config.status
+@GL_GENERATE_FLOAT_H_FALSE@    rm -f $@
 
 # We need the following in order to create <iconv.h> when the system
 # doesn't have one that works with the given compiler.
-iconv.h: iconv.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''NEXT_ICONV_H''@|$(NEXT_ICONV_H)|g' \
-             -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \
-             -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \
-             -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \
-             -e 's|@''REPLACE_ICONV_UTF''@|$(REPLACE_ICONV_UTF)|g' \
-             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/iconv.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+@GL_GENERATE_ICONV_H_TRUE@iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+@GL_GENERATE_ICONV_H_TRUE@     $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_ICONV_H_TRUE@     { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_ICONV_H_TRUE@       sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_ICONV_H_TRUE@           -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_ICONV_H_TRUE@           -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_ICONV_H_TRUE@           -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_ICONV_H_TRUE@           -e 's|@''NEXT_ICONV_H''@|$(NEXT_ICONV_H)|g' \
+@GL_GENERATE_ICONV_H_TRUE@           -e 's/@''GNULIB_ICONV''@/$(GNULIB_ICONV)/g' \
+@GL_GENERATE_ICONV_H_TRUE@           -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \
+@GL_GENERATE_ICONV_H_TRUE@           -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \
+@GL_GENERATE_ICONV_H_TRUE@           -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \
+@GL_GENERATE_ICONV_H_TRUE@           -e 's|@''REPLACE_ICONV_UTF''@|$(REPLACE_ICONV_UTF)|g' \
+@GL_GENERATE_ICONV_H_TRUE@           -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+@GL_GENERATE_ICONV_H_TRUE@           -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+@GL_GENERATE_ICONV_H_TRUE@           -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+@GL_GENERATE_ICONV_H_TRUE@           < $(srcdir)/iconv.in.h; \
+@GL_GENERATE_ICONV_H_TRUE@     } > $@-t && \
+@GL_GENERATE_ICONV_H_TRUE@     mv $@-t $@
+@GL_GENERATE_ICONV_H_FALSE@iconv.h: $(top_builddir)/config.status
+@GL_GENERATE_ICONV_H_FALSE@    rm -f $@
 
 iconv_open-aix.h: iconv_open-aix.gperf
        $(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t
@@ -3942,67 +4567,198 @@ charset.alias: config.charset
 
 # We need the following in order to create <math.h> when the system
 # doesn't have one that works with the given compiler.
-math.h: math.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+math.h: math.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@|$(INCLUDE_NEXT_AS_FIRST_DIRECTIVE)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@|$(NEXT_AS_FIRST_DIRECTIVE_MATH_H)|g' \
-             -e 's|@''GNULIB_ACOSL''@|$(GNULIB_ACOSL)|g' \
-             -e 's|@''GNULIB_ASINL''@|$(GNULIB_ASINL)|g' \
-             -e 's|@''GNULIB_ATANL''@|$(GNULIB_ATANL)|g' \
-             -e 's|@''GNULIB_CEILF''@|$(GNULIB_CEILF)|g' \
-             -e 's|@''GNULIB_CEILL''@|$(GNULIB_CEILL)|g' \
-             -e 's|@''GNULIB_COSL''@|$(GNULIB_COSL)|g' \
-             -e 's|@''GNULIB_EXPL''@|$(GNULIB_EXPL)|g' \
-             -e 's|@''GNULIB_FLOORF''@|$(GNULIB_FLOORF)|g' \
-             -e 's|@''GNULIB_FLOORL''@|$(GNULIB_FLOORL)|g' \
-             -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \
-             -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \
-             -e 's|@''GNULIB_ISFINITE''@|$(GNULIB_ISFINITE)|g' \
-             -e 's|@''GNULIB_ISINF''@|$(GNULIB_ISINF)|g' \
-             -e 's|@''GNULIB_ISNAN''@|$(GNULIB_ISNAN)|g' \
-             -e 's|@''GNULIB_ISNANF''@|$(GNULIB_ISNANF)|g' \
-             -e 's|@''GNULIB_ISNAND''@|$(GNULIB_ISNAND)|g' \
-             -e 's|@''GNULIB_ISNANL''@|$(GNULIB_ISNANL)|g' \
-             -e 's|@''GNULIB_LDEXPL''@|$(GNULIB_LDEXPL)|g' \
-             -e 's|@''GNULIB_LOGB''@|$(GNULIB_LOGB)|g' \
-             -e 's|@''GNULIB_LOGL''@|$(GNULIB_LOGL)|g' \
-             -e 's|@''GNULIB_ROUND''@|$(GNULIB_ROUND)|g' \
-             -e 's|@''GNULIB_ROUNDF''@|$(GNULIB_ROUNDF)|g' \
-             -e 's|@''GNULIB_ROUNDL''@|$(GNULIB_ROUNDL)|g' \
-             -e 's|@''GNULIB_SIGNBIT''@|$(GNULIB_SIGNBIT)|g' \
-             -e 's|@''GNULIB_SINL''@|$(GNULIB_SINL)|g' \
-             -e 's|@''GNULIB_SQRTL''@|$(GNULIB_SQRTL)|g' \
-             -e 's|@''GNULIB_TANL''@|$(GNULIB_TANL)|g' \
-             -e 's|@''GNULIB_TRUNC''@|$(GNULIB_TRUNC)|g' \
-             -e 's|@''GNULIB_TRUNCF''@|$(GNULIB_TRUNCF)|g' \
-             -e 's|@''GNULIB_TRUNCL''@|$(GNULIB_TRUNCL)|g' \
+             -e 's/@''GNULIB_ACOSF''@/$(GNULIB_ACOSF)/g' \
+             -e 's/@''GNULIB_ACOSL''@/$(GNULIB_ACOSL)/g' \
+             -e 's/@''GNULIB_ASINF''@/$(GNULIB_ASINF)/g' \
+             -e 's/@''GNULIB_ASINL''@/$(GNULIB_ASINL)/g' \
+             -e 's/@''GNULIB_ATANF''@/$(GNULIB_ATANF)/g' \
+             -e 's/@''GNULIB_ATANL''@/$(GNULIB_ATANL)/g' \
+             -e 's/@''GNULIB_ATAN2F''@/$(GNULIB_ATAN2F)/g' \
+             -e 's/@''GNULIB_CBRT''@/$(GNULIB_CBRT)/g' \
+             -e 's/@''GNULIB_CBRTF''@/$(GNULIB_CBRTF)/g' \
+             -e 's/@''GNULIB_CBRTL''@/$(GNULIB_CBRTL)/g' \
+             -e 's/@''GNULIB_CEIL''@/$(GNULIB_CEIL)/g' \
+             -e 's/@''GNULIB_CEILF''@/$(GNULIB_CEILF)/g' \
+             -e 's/@''GNULIB_CEILL''@/$(GNULIB_CEILL)/g' \
+             -e 's/@''GNULIB_COPYSIGN''@/$(GNULIB_COPYSIGN)/g' \
+             -e 's/@''GNULIB_COPYSIGNF''@/$(GNULIB_COPYSIGNF)/g' \
+             -e 's/@''GNULIB_COPYSIGNL''@/$(GNULIB_COPYSIGNL)/g' \
+             -e 's/@''GNULIB_COSF''@/$(GNULIB_COSF)/g' \
+             -e 's/@''GNULIB_COSL''@/$(GNULIB_COSL)/g' \
+             -e 's/@''GNULIB_COSHF''@/$(GNULIB_COSHF)/g' \
+             -e 's/@''GNULIB_EXPF''@/$(GNULIB_EXPF)/g' \
+             -e 's/@''GNULIB_EXPL''@/$(GNULIB_EXPL)/g' \
+             -e 's/@''GNULIB_EXP2''@/$(GNULIB_EXP2)/g' \
+             -e 's/@''GNULIB_EXP2F''@/$(GNULIB_EXP2F)/g' \
+             -e 's/@''GNULIB_EXP2L''@/$(GNULIB_EXP2L)/g' \
+             -e 's/@''GNULIB_EXPM1''@/$(GNULIB_EXPM1)/g' \
+             -e 's/@''GNULIB_EXPM1F''@/$(GNULIB_EXPM1F)/g' \
+             -e 's/@''GNULIB_EXPM1L''@/$(GNULIB_EXPM1L)/g' \
+             -e 's/@''GNULIB_FABSF''@/$(GNULIB_FABSF)/g' \
+             -e 's/@''GNULIB_FABSL''@/$(GNULIB_FABSL)/g' \
+             -e 's/@''GNULIB_FLOOR''@/$(GNULIB_FLOOR)/g' \
+             -e 's/@''GNULIB_FLOORF''@/$(GNULIB_FLOORF)/g' \
+             -e 's/@''GNULIB_FLOORL''@/$(GNULIB_FLOORL)/g' \
+             -e 's/@''GNULIB_FMA''@/$(GNULIB_FMA)/g' \
+             -e 's/@''GNULIB_FMAF''@/$(GNULIB_FMAF)/g' \
+             -e 's/@''GNULIB_FMAL''@/$(GNULIB_FMAL)/g' \
+             -e 's/@''GNULIB_FMOD''@/$(GNULIB_FMOD)/g' \
+             -e 's/@''GNULIB_FMODF''@/$(GNULIB_FMODF)/g' \
+             -e 's/@''GNULIB_FMODL''@/$(GNULIB_FMODL)/g' \
+             -e 's/@''GNULIB_FREXPF''@/$(GNULIB_FREXPF)/g' \
+             -e 's/@''GNULIB_FREXP''@/$(GNULIB_FREXP)/g' \
+             -e 's/@''GNULIB_FREXPL''@/$(GNULIB_FREXPL)/g' \
+             -e 's/@''GNULIB_HYPOT''@/$(GNULIB_HYPOT)/g' \
+             -e 's/@''GNULIB_HYPOTF''@/$(GNULIB_HYPOTF)/g' \
+             -e 's/@''GNULIB_HYPOTL''@/$(GNULIB_HYPOTL)/g' \
+             < $(srcdir)/math.in.h | \
+         sed -e 's/@''GNULIB_ILOGB''@/$(GNULIB_ILOGB)/g' \
+             -e 's/@''GNULIB_ILOGBF''@/$(GNULIB_ILOGBF)/g' \
+             -e 's/@''GNULIB_ILOGBL''@/$(GNULIB_ILOGBL)/g' \
+             -e 's/@''GNULIB_ISFINITE''@/$(GNULIB_ISFINITE)/g' \
+             -e 's/@''GNULIB_ISINF''@/$(GNULIB_ISINF)/g' \
+             -e 's/@''GNULIB_ISNAN''@/$(GNULIB_ISNAN)/g' \
+             -e 's/@''GNULIB_ISNANF''@/$(GNULIB_ISNANF)/g' \
+             -e 's/@''GNULIB_ISNAND''@/$(GNULIB_ISNAND)/g' \
+             -e 's/@''GNULIB_ISNANL''@/$(GNULIB_ISNANL)/g' \
+             -e 's/@''GNULIB_LDEXPF''@/$(GNULIB_LDEXPF)/g' \
+             -e 's/@''GNULIB_LDEXPL''@/$(GNULIB_LDEXPL)/g' \
+             -e 's/@''GNULIB_LOG''@/$(GNULIB_LOG)/g' \
+             -e 's/@''GNULIB_LOGF''@/$(GNULIB_LOGF)/g' \
+             -e 's/@''GNULIB_LOGL''@/$(GNULIB_LOGL)/g' \
+             -e 's/@''GNULIB_LOG10''@/$(GNULIB_LOG10)/g' \
+             -e 's/@''GNULIB_LOG10F''@/$(GNULIB_LOG10F)/g' \
+             -e 's/@''GNULIB_LOG10L''@/$(GNULIB_LOG10L)/g' \
+             -e 's/@''GNULIB_LOG1P''@/$(GNULIB_LOG1P)/g' \
+             -e 's/@''GNULIB_LOG1PF''@/$(GNULIB_LOG1PF)/g' \
+             -e 's/@''GNULIB_LOG1PL''@/$(GNULIB_LOG1PL)/g' \
+             -e 's/@''GNULIB_LOG2''@/$(GNULIB_LOG2)/g' \
+             -e 's/@''GNULIB_LOG2F''@/$(GNULIB_LOG2F)/g' \
+             -e 's/@''GNULIB_LOG2L''@/$(GNULIB_LOG2L)/g' \
+             -e 's/@''GNULIB_LOGB''@/$(GNULIB_LOGB)/g' \
+             -e 's/@''GNULIB_LOGBF''@/$(GNULIB_LOGBF)/g' \
+             -e 's/@''GNULIB_LOGBL''@/$(GNULIB_LOGBL)/g' \
+             -e 's/@''GNULIB_MODF''@/$(GNULIB_MODF)/g' \
+             -e 's/@''GNULIB_MODFF''@/$(GNULIB_MODFF)/g' \
+             -e 's/@''GNULIB_MODFL''@/$(GNULIB_MODFL)/g' \
+             -e 's/@''GNULIB_POWF''@/$(GNULIB_POWF)/g' \
+             -e 's/@''GNULIB_REMAINDER''@/$(GNULIB_REMAINDER)/g' \
+             -e 's/@''GNULIB_REMAINDERF''@/$(GNULIB_REMAINDERF)/g' \
+             -e 's/@''GNULIB_REMAINDERL''@/$(GNULIB_REMAINDERL)/g' \
+             -e 's/@''GNULIB_RINT''@/$(GNULIB_RINT)/g' \
+             -e 's/@''GNULIB_RINTF''@/$(GNULIB_RINTF)/g' \
+             -e 's/@''GNULIB_RINTL''@/$(GNULIB_RINTL)/g' \
+             -e 's/@''GNULIB_ROUND''@/$(GNULIB_ROUND)/g' \
+             -e 's/@''GNULIB_ROUNDF''@/$(GNULIB_ROUNDF)/g' \
+             -e 's/@''GNULIB_ROUNDL''@/$(GNULIB_ROUNDL)/g' \
+             -e 's/@''GNULIB_SIGNBIT''@/$(GNULIB_SIGNBIT)/g' \
+             -e 's/@''GNULIB_SINF''@/$(GNULIB_SINF)/g' \
+             -e 's/@''GNULIB_SINL''@/$(GNULIB_SINL)/g' \
+             -e 's/@''GNULIB_SINHF''@/$(GNULIB_SINHF)/g' \
+             -e 's/@''GNULIB_SQRTF''@/$(GNULIB_SQRTF)/g' \
+             -e 's/@''GNULIB_SQRTL''@/$(GNULIB_SQRTL)/g' \
+             -e 's/@''GNULIB_TANF''@/$(GNULIB_TANF)/g' \
+             -e 's/@''GNULIB_TANL''@/$(GNULIB_TANL)/g' \
+             -e 's/@''GNULIB_TANHF''@/$(GNULIB_TANHF)/g' \
+             -e 's/@''GNULIB_TRUNC''@/$(GNULIB_TRUNC)/g' \
+             -e 's/@''GNULIB_TRUNCF''@/$(GNULIB_TRUNCF)/g' \
+             -e 's/@''GNULIB_TRUNCL''@/$(GNULIB_TRUNCL)/g' \
+         | \
+         sed -e 's|@''HAVE_ACOSF''@|$(HAVE_ACOSF)|g' \
              -e 's|@''HAVE_ACOSL''@|$(HAVE_ACOSL)|g' \
+             -e 's|@''HAVE_ASINF''@|$(HAVE_ASINF)|g' \
              -e 's|@''HAVE_ASINL''@|$(HAVE_ASINL)|g' \
+             -e 's|@''HAVE_ATANF''@|$(HAVE_ATANF)|g' \
              -e 's|@''HAVE_ATANL''@|$(HAVE_ATANL)|g' \
+             -e 's|@''HAVE_ATAN2F''@|$(HAVE_ATAN2F)|g' \
+             -e 's|@''HAVE_CBRT''@|$(HAVE_CBRT)|g' \
+             -e 's|@''HAVE_CBRTF''@|$(HAVE_CBRTF)|g' \
+             -e 's|@''HAVE_CBRTL''@|$(HAVE_CBRTL)|g' \
+             -e 's|@''HAVE_COPYSIGN''@|$(HAVE_COPYSIGN)|g' \
+             -e 's|@''HAVE_COPYSIGNL''@|$(HAVE_COPYSIGNL)|g' \
+             -e 's|@''HAVE_COSF''@|$(HAVE_COSF)|g' \
              -e 's|@''HAVE_COSL''@|$(HAVE_COSL)|g' \
+             -e 's|@''HAVE_COSHF''@|$(HAVE_COSHF)|g' \
+             -e 's|@''HAVE_EXPF''@|$(HAVE_EXPF)|g' \
              -e 's|@''HAVE_EXPL''@|$(HAVE_EXPL)|g' \
+             -e 's|@''HAVE_EXPM1''@|$(HAVE_EXPM1)|g' \
+             -e 's|@''HAVE_EXPM1F''@|$(HAVE_EXPM1F)|g' \
+             -e 's|@''HAVE_FABSF''@|$(HAVE_FABSF)|g' \
+             -e 's|@''HAVE_FABSL''@|$(HAVE_FABSL)|g' \
+             -e 's|@''HAVE_FMA''@|$(HAVE_FMA)|g' \
+             -e 's|@''HAVE_FMAF''@|$(HAVE_FMAF)|g' \
+             -e 's|@''HAVE_FMAL''@|$(HAVE_FMAL)|g' \
+             -e 's|@''HAVE_FMODF''@|$(HAVE_FMODF)|g' \
+             -e 's|@''HAVE_FMODL''@|$(HAVE_FMODL)|g' \
+             -e 's|@''HAVE_FREXPF''@|$(HAVE_FREXPF)|g' \
+             -e 's|@''HAVE_HYPOTF''@|$(HAVE_HYPOTF)|g' \
+             -e 's|@''HAVE_HYPOTL''@|$(HAVE_HYPOTL)|g' \
+             -e 's|@''HAVE_ILOGB''@|$(HAVE_ILOGB)|g' \
+             -e 's|@''HAVE_ILOGBF''@|$(HAVE_ILOGBF)|g' \
+             -e 's|@''HAVE_ILOGBL''@|$(HAVE_ILOGBL)|g' \
              -e 's|@''HAVE_ISNANF''@|$(HAVE_ISNANF)|g' \
              -e 's|@''HAVE_ISNAND''@|$(HAVE_ISNAND)|g' \
              -e 's|@''HAVE_ISNANL''@|$(HAVE_ISNANL)|g' \
+             -e 's|@''HAVE_LDEXPF''@|$(HAVE_LDEXPF)|g' \
+             -e 's|@''HAVE_LOGF''@|$(HAVE_LOGF)|g' \
              -e 's|@''HAVE_LOGL''@|$(HAVE_LOGL)|g' \
+             -e 's|@''HAVE_LOG10F''@|$(HAVE_LOG10F)|g' \
+             -e 's|@''HAVE_LOG10L''@|$(HAVE_LOG10L)|g' \
+             -e 's|@''HAVE_LOG1P''@|$(HAVE_LOG1P)|g' \
+             -e 's|@''HAVE_LOG1PF''@|$(HAVE_LOG1PF)|g' \
+             -e 's|@''HAVE_LOG1PL''@|$(HAVE_LOG1PL)|g' \
+             -e 's|@''HAVE_LOGBF''@|$(HAVE_LOGBF)|g' \
+             -e 's|@''HAVE_LOGBL''@|$(HAVE_LOGBL)|g' \
+             -e 's|@''HAVE_MODFF''@|$(HAVE_MODFF)|g' \
+             -e 's|@''HAVE_MODFL''@|$(HAVE_MODFL)|g' \
+             -e 's|@''HAVE_POWF''@|$(HAVE_POWF)|g' \
+             -e 's|@''HAVE_REMAINDER''@|$(HAVE_REMAINDER)|g' \
+             -e 's|@''HAVE_REMAINDERF''@|$(HAVE_REMAINDERF)|g' \
+             -e 's|@''HAVE_RINT''@|$(HAVE_RINT)|g' \
+             -e 's|@''HAVE_RINTL''@|$(HAVE_RINTL)|g' \
+             -e 's|@''HAVE_SINF''@|$(HAVE_SINF)|g' \
              -e 's|@''HAVE_SINL''@|$(HAVE_SINL)|g' \
+             -e 's|@''HAVE_SINHF''@|$(HAVE_SINHF)|g' \
+             -e 's|@''HAVE_SQRTF''@|$(HAVE_SQRTF)|g' \
              -e 's|@''HAVE_SQRTL''@|$(HAVE_SQRTL)|g' \
+             -e 's|@''HAVE_TANF''@|$(HAVE_TANF)|g' \
              -e 's|@''HAVE_TANL''@|$(HAVE_TANL)|g' \
+             -e 's|@''HAVE_TANHF''@|$(HAVE_TANHF)|g' \
              -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \
              -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \
              -e 's|@''HAVE_DECL_ATANL''@|$(HAVE_DECL_ATANL)|g' \
+             -e 's|@''HAVE_DECL_CBRTF''@|$(HAVE_DECL_CBRTF)|g' \
+             -e 's|@''HAVE_DECL_CBRTL''@|$(HAVE_DECL_CBRTL)|g' \
              -e 's|@''HAVE_DECL_CEILF''@|$(HAVE_DECL_CEILF)|g' \
              -e 's|@''HAVE_DECL_CEILL''@|$(HAVE_DECL_CEILL)|g' \
+             -e 's|@''HAVE_DECL_COPYSIGNF''@|$(HAVE_DECL_COPYSIGNF)|g' \
              -e 's|@''HAVE_DECL_COSL''@|$(HAVE_DECL_COSL)|g' \
              -e 's|@''HAVE_DECL_EXPL''@|$(HAVE_DECL_EXPL)|g' \
+             -e 's|@''HAVE_DECL_EXP2''@|$(HAVE_DECL_EXP2)|g' \
+             -e 's|@''HAVE_DECL_EXP2F''@|$(HAVE_DECL_EXP2F)|g' \
+             -e 's|@''HAVE_DECL_EXP2L''@|$(HAVE_DECL_EXP2L)|g' \
+             -e 's|@''HAVE_DECL_EXPM1L''@|$(HAVE_DECL_EXPM1L)|g' \
              -e 's|@''HAVE_DECL_FLOORF''@|$(HAVE_DECL_FLOORF)|g' \
              -e 's|@''HAVE_DECL_FLOORL''@|$(HAVE_DECL_FLOORL)|g' \
              -e 's|@''HAVE_DECL_FREXPL''@|$(HAVE_DECL_FREXPL)|g' \
              -e 's|@''HAVE_DECL_LDEXPL''@|$(HAVE_DECL_LDEXPL)|g' \
-             -e 's|@''HAVE_DECL_LOGB''@|$(HAVE_DECL_LOGB)|g' \
              -e 's|@''HAVE_DECL_LOGL''@|$(HAVE_DECL_LOGL)|g' \
+             -e 's|@''HAVE_DECL_LOG10L''@|$(HAVE_DECL_LOG10L)|g' \
+             -e 's|@''HAVE_DECL_LOG2''@|$(HAVE_DECL_LOG2)|g' \
+             -e 's|@''HAVE_DECL_LOG2F''@|$(HAVE_DECL_LOG2F)|g' \
+             -e 's|@''HAVE_DECL_LOG2L''@|$(HAVE_DECL_LOG2L)|g' \
+             -e 's|@''HAVE_DECL_LOGB''@|$(HAVE_DECL_LOGB)|g' \
+             -e 's|@''HAVE_DECL_REMAINDER''@|$(HAVE_DECL_REMAINDER)|g' \
+             -e 's|@''HAVE_DECL_REMAINDERL''@|$(HAVE_DECL_REMAINDERL)|g' \
+             -e 's|@''HAVE_DECL_RINTF''@|$(HAVE_DECL_RINTF)|g' \
              -e 's|@''HAVE_DECL_ROUND''@|$(HAVE_DECL_ROUND)|g' \
              -e 's|@''HAVE_DECL_ROUNDF''@|$(HAVE_DECL_ROUNDF)|g' \
              -e 's|@''HAVE_DECL_ROUNDL''@|$(HAVE_DECL_ROUNDL)|g' \
@@ -4012,203 +4768,324 @@ math.h: math.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_DECL_TRUNC''@|$(HAVE_DECL_TRUNC)|g' \
              -e 's|@''HAVE_DECL_TRUNCF''@|$(HAVE_DECL_TRUNCF)|g' \
              -e 's|@''HAVE_DECL_TRUNCL''@|$(HAVE_DECL_TRUNCL)|g' \
+         | \
+         sed -e 's|@''REPLACE_CBRTF''@|$(REPLACE_CBRTF)|g' \
+             -e 's|@''REPLACE_CBRTL''@|$(REPLACE_CBRTL)|g' \
+             -e 's|@''REPLACE_CEIL''@|$(REPLACE_CEIL)|g' \
              -e 's|@''REPLACE_CEILF''@|$(REPLACE_CEILF)|g' \
              -e 's|@''REPLACE_CEILL''@|$(REPLACE_CEILL)|g' \
+             -e 's|@''REPLACE_EXPM1''@|$(REPLACE_EXPM1)|g' \
+             -e 's|@''REPLACE_EXPM1F''@|$(REPLACE_EXPM1F)|g' \
+             -e 's|@''REPLACE_EXP2''@|$(REPLACE_EXP2)|g' \
+             -e 's|@''REPLACE_EXP2L''@|$(REPLACE_EXP2L)|g' \
+             -e 's|@''REPLACE_FABSL''@|$(REPLACE_FABSL)|g' \
+             -e 's|@''REPLACE_FLOOR''@|$(REPLACE_FLOOR)|g' \
              -e 's|@''REPLACE_FLOORF''@|$(REPLACE_FLOORF)|g' \
              -e 's|@''REPLACE_FLOORL''@|$(REPLACE_FLOORL)|g' \
+             -e 's|@''REPLACE_FMA''@|$(REPLACE_FMA)|g' \
+             -e 's|@''REPLACE_FMAF''@|$(REPLACE_FMAF)|g' \
+             -e 's|@''REPLACE_FMAL''@|$(REPLACE_FMAL)|g' \
+             -e 's|@''REPLACE_FMOD''@|$(REPLACE_FMOD)|g' \
+             -e 's|@''REPLACE_FMODF''@|$(REPLACE_FMODF)|g' \
+             -e 's|@''REPLACE_FMODL''@|$(REPLACE_FMODL)|g' \
+             -e 's|@''REPLACE_FREXPF''@|$(REPLACE_FREXPF)|g' \
              -e 's|@''REPLACE_FREXP''@|$(REPLACE_FREXP)|g' \
              -e 's|@''REPLACE_FREXPL''@|$(REPLACE_FREXPL)|g' \
              -e 's|@''REPLACE_HUGE_VAL''@|$(REPLACE_HUGE_VAL)|g' \
+             -e 's|@''REPLACE_HYPOT''@|$(REPLACE_HYPOT)|g' \
+             -e 's|@''REPLACE_HYPOTF''@|$(REPLACE_HYPOTF)|g' \
+             -e 's|@''REPLACE_HYPOTL''@|$(REPLACE_HYPOTL)|g' \
+             -e 's|@''REPLACE_ILOGB''@|$(REPLACE_ILOGB)|g' \
+             -e 's|@''REPLACE_ILOGBF''@|$(REPLACE_ILOGBF)|g' \
              -e 's|@''REPLACE_ISFINITE''@|$(REPLACE_ISFINITE)|g' \
              -e 's|@''REPLACE_ISINF''@|$(REPLACE_ISINF)|g' \
              -e 's|@''REPLACE_ISNAN''@|$(REPLACE_ISNAN)|g' \
+             -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
              -e 's|@''REPLACE_LDEXPL''@|$(REPLACE_LDEXPL)|g' \
+             -e 's|@''REPLACE_LOG''@|$(REPLACE_LOG)|g' \
+             -e 's|@''REPLACE_LOGF''@|$(REPLACE_LOGF)|g' \
+             -e 's|@''REPLACE_LOGL''@|$(REPLACE_LOGL)|g' \
+             -e 's|@''REPLACE_LOG10''@|$(REPLACE_LOG10)|g' \
+             -e 's|@''REPLACE_LOG10F''@|$(REPLACE_LOG10F)|g' \
+             -e 's|@''REPLACE_LOG10L''@|$(REPLACE_LOG10L)|g' \
+             -e 's|@''REPLACE_LOG1P''@|$(REPLACE_LOG1P)|g' \
+             -e 's|@''REPLACE_LOG1PF''@|$(REPLACE_LOG1PF)|g' \
+             -e 's|@''REPLACE_LOG1PL''@|$(REPLACE_LOG1PL)|g' \
+             -e 's|@''REPLACE_LOG2''@|$(REPLACE_LOG2)|g' \
+             -e 's|@''REPLACE_LOG2F''@|$(REPLACE_LOG2F)|g' \
+             -e 's|@''REPLACE_LOG2L''@|$(REPLACE_LOG2L)|g' \
+             -e 's|@''REPLACE_LOGB''@|$(REPLACE_LOGB)|g' \
+             -e 's|@''REPLACE_LOGBF''@|$(REPLACE_LOGBF)|g' \
+             -e 's|@''REPLACE_LOGBL''@|$(REPLACE_LOGBL)|g' \
+             -e 's|@''REPLACE_MODF''@|$(REPLACE_MODF)|g' \
+             -e 's|@''REPLACE_MODFF''@|$(REPLACE_MODFF)|g' \
+             -e 's|@''REPLACE_MODFL''@|$(REPLACE_MODFL)|g' \
              -e 's|@''REPLACE_NAN''@|$(REPLACE_NAN)|g' \
+             -e 's|@''REPLACE_REMAINDER''@|$(REPLACE_REMAINDER)|g' \
+             -e 's|@''REPLACE_REMAINDERF''@|$(REPLACE_REMAINDERF)|g' \
+             -e 's|@''REPLACE_REMAINDERL''@|$(REPLACE_REMAINDERL)|g' \
              -e 's|@''REPLACE_ROUND''@|$(REPLACE_ROUND)|g' \
              -e 's|@''REPLACE_ROUNDF''@|$(REPLACE_ROUNDF)|g' \
              -e 's|@''REPLACE_ROUNDL''@|$(REPLACE_ROUNDL)|g' \
              -e 's|@''REPLACE_SIGNBIT''@|$(REPLACE_SIGNBIT)|g' \
              -e 's|@''REPLACE_SIGNBIT_USING_GCC''@|$(REPLACE_SIGNBIT_USING_GCC)|g' \
+             -e 's|@''REPLACE_SQRTL''@|$(REPLACE_SQRTL)|g' \
+             -e 's|@''REPLACE_TRUNC''@|$(REPLACE_TRUNC)|g' \
+             -e 's|@''REPLACE_TRUNCF''@|$(REPLACE_TRUNCF)|g' \
              -e 's|@''REPLACE_TRUNCL''@|$(REPLACE_TRUNCL)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/math.in.h; \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
        } > $@-t && \
        mv $@-t $@
+# The arg-nonnull.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut
+# off.
+arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/GL_ARG_NONNULL/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
+         > $@-t && \
+       mv $@-t $@
+# The c++defs.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/c++defs.h, except that it has the copyright header cut off.
+c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/_GL_CXXDEFS/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/c++defs.h \
+         > $@-t && \
+       mv $@-t $@
+# The unused-parameter.h that gets inserted into generated .h files is the same
+# as build-aux/snippet/unused-parameter.h, except that it has the copyright
+# header cut off.
+unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/unused-parameter.h \
+         > $@-t && \
+       mv $@-t $@
+# The warn-on-use.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut
+# off.
+warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/^.ifndef/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/warn-on-use.h \
+         > $@-t && \
+       mv $@-t $@
 
 # We need the following in order to create <stdbool.h> when the system
 # doesn't have one that works.
-stdbool.h: stdbool.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+@GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDBOOL_H_TRUE@   $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDBOOL_H_TRUE@   { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_STDBOOL_H_TRUE@     sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
+@GL_GENERATE_STDBOOL_H_TRUE@   } > $@-t && \
+@GL_GENERATE_STDBOOL_H_TRUE@   mv $@-t $@
+@GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status
+@GL_GENERATE_STDBOOL_H_FALSE@  rm -f $@
 
 # We need the following in order to create <stddef.h> when the system
 # doesn't have one that works with the given compiler.
-stddef.h: stddef.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
-             -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
-             -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
-             < $(srcdir)/stddef.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+@GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDDEF_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDDEF_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_STDDEF_H_TRUE@      sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          < $(srcdir)/stddef.in.h; \
+@GL_GENERATE_STDDEF_H_TRUE@    } > $@-t && \
+@GL_GENERATE_STDDEF_H_TRUE@    mv $@-t $@
+@GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status
+@GL_GENERATE_STDDEF_H_FALSE@   rm -f $@
 
 # We need the following in order to create <stdint.h> when the system
 # doesn't have one that works with the given compiler.
-stdint.h: stdint.in.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
-             -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
-             -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
-             -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
-             -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
-             -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
-             -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
-             -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
-             -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
-             -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
-             -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
-             -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
-             -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
-             -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
-             -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
-             -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
-             -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
-             -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
-             < $(srcdir)/stdint.in.h; \
-       } > $@-t && \
-       mv $@-t $@
+@GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDINT_H_TRUE@    $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDINT_H_TRUE@    { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_STDINT_H_TRUE@      sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@          < $(srcdir)/stdint.in.h; \
+@GL_GENERATE_STDINT_H_TRUE@    } > $@-t && \
+@GL_GENERATE_STDINT_H_TRUE@    mv $@-t $@
+@GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status
+@GL_GENERATE_STDINT_H_FALSE@   rm -f $@
 
 # We need the following in order to create <stdlib.h> when the system
 # doesn't have one that works with the given compiler.
-stdlib.h: stdlib.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
+  $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
-             -e 's|@''GNULIB_ATOLL''@|$(GNULIB_ATOLL)|g' \
-             -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_CANONICALIZE_FILE_NAME''@|$(GNULIB_CANONICALIZE_FILE_NAME)|g' \
-             -e 's|@''GNULIB_GETLOADAVG''@|$(GNULIB_GETLOADAVG)|g' \
-             -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
-             -e 's|@''GNULIB_GRANTPT''@|$(GNULIB_GRANTPT)|g' \
-             -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
-             -e 's|@''GNULIB_MKOSTEMP''@|$(GNULIB_MKOSTEMP)|g' \
-             -e 's|@''GNULIB_MKOSTEMPS''@|$(GNULIB_MKOSTEMPS)|g' \
-             -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
-             -e 's|@''GNULIB_MKSTEMPS''@|$(GNULIB_MKSTEMPS)|g' \
-             -e 's|@''GNULIB_PTSNAME''@|$(GNULIB_PTSNAME)|g' \
-             -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
-             -e 's|@''GNULIB_RANDOM_R''@|$(GNULIB_RANDOM_R)|g' \
-             -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
-             -e 's|@''GNULIB_REALPATH''@|$(GNULIB_REALPATH)|g' \
-             -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \
-             -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
-             -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \
-             -e 's|@''GNULIB_STRTOLL''@|$(GNULIB_STRTOLL)|g' \
-             -e 's|@''GNULIB_STRTOULL''@|$(GNULIB_STRTOULL)|g' \
-             -e 's|@''GNULIB_UNLOCKPT''@|$(GNULIB_UNLOCKPT)|g' \
-             -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
+             -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \
+             -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \
+             -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \
+             -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \
+             -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \
+             -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \
+             -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \
+             -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \
+             -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \
+             -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \
+             -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \
+             -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \
+             -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \
+             -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \
+             -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \
+             -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \
+             -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
+             -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
+             -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
+             -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
+             -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
+             -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
+             -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
+             -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
+             -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
+             -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \
+             -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
+             -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \
+             -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \
+             -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \
+             < $(srcdir)/stdlib.in.h | \
+         sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
              -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \
-             -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \
              -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \
              -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \
              -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
              -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \
-             -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \
              -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
              -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \
              -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \
              -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \
              -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \
+             -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \
              -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \
+             -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \
+             -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \
              -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
              -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
-             -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \
              -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
              -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
-             -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \
+             -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \
+             -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \
              -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
              -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
              -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
              -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
              -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
              -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
-             -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \
+             -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
+             -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
              -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
+             -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
+             -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
              -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+             -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \
+             -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
              -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+             -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
+             -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
              -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
              -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
              -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
              -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
+             -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _Noreturn/r $(_NORETURN_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/stdlib.in.h; \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
        } > $@-t && \
        mv $@-t $@
 
 # We need the following in order to create <string.h> when the system
 # doesn't have one that works with the given compiler.
-string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
-             -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
-             -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \
-             -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
-             -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
-             -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
-             -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
-             -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
-             -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
-             -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
-             -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
-             -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
-             -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
-             -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
-             -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
-             -e 's|@''GNULIB_MEMCHR''@|$(GNULIB_MEMCHR)|g' \
-             -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
-             -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
-             -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
-             -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \
-             -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
-             -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
-             -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
-             -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
-             -e 's|@''GNULIB_STRNCAT''@|$(GNULIB_STRNCAT)|g' \
-             -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
-             -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
-             -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
-             -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
-             -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \
-             -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
-             -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
-             -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
-             -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
-             -e 's|@''GNULIB_STRVERSCMP''@|$(GNULIB_STRVERSCMP)|g' \
+             -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
+             -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \
+             -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \
+             -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \
+             -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \
+             -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \
+             -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \
+             -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \
+             -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \
+             -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \
+             -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \
+             -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \
+             -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \
+             -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \
+             -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \
+             -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \
+             -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \
+             -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \
+             -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \
+             -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \
+             -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \
+             -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \
+             -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \
+             -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \
+             -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \
+             -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \
+             -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \
+             -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \
+             -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \
+             -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \
+             -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \
+             -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \
+             -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \
+             -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \
+             -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \
+             -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
+             -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
              < $(srcdir)/string.in.h | \
-         sed -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
+         sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
+             -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
+             -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
              -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \
              -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
              -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
@@ -4224,15 +5101,18 @@ string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
              -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
              -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+             -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \
              -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
              -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
              -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \
              -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \
              -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
              -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+             -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \
              -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \
              -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
              -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+             -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
              -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
              -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
              -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \
@@ -4246,6 +5126,29 @@ string.h: string.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        } > $@-t && \
        mv $@-t $@
 
+# We need the following in order to create <sys/types.h> when the system
+# doesn't have one that works with the given compiler.
+sys/types.h: sys_types.in.h $(top_builddir)/config.status
+       $(AM_V_at)$(MKDIR_P) sys
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \
+             -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
+             < $(srcdir)/sys_types.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+
+unicase.h: unicase.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unicase.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+
 unicase/locale-languages.h: $(srcdir)/unicase/locale-languages.gperf
        $(GPERF) -m 10 $(srcdir)/unicase/locale-languages.gperf > $(srcdir)/unicase/locale-languages.h-t
        mv $(srcdir)/unicase/locale-languages.h-t $(srcdir)/unicase/locale-languages.h
@@ -4254,6 +5157,40 @@ unicase/special-casing-table.h: $(srcdir)/unicase/special-casing-table.gperf
        $(GPERF) -m 10 $(srcdir)/unicase/special-casing-table.gperf > $(srcdir)/unicase/special-casing-table.h-t
        mv $(srcdir)/unicase/special-casing-table.h-t $(srcdir)/unicase/special-casing-table.h
 
+uniconv.h: uniconv.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/uniconv.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+
+unictype.h: unictype.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unictype.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+
+unictype/bidi_byname.h: unictype/bidi_byname.gperf
+       $(GPERF) -m 10 $(srcdir)/unictype/bidi_byname.gperf > $(srcdir)/unictype/bidi_byname.h-t
+       mv $(srcdir)/unictype/bidi_byname.h-t $(srcdir)/unictype/bidi_byname.h
+
+unictype/categ_byname.h: unictype/categ_byname.gperf
+       $(GPERF) -m 10 $(srcdir)/unictype/categ_byname.gperf > $(srcdir)/unictype/categ_byname.h-t
+       mv $(srcdir)/unictype/categ_byname.h-t $(srcdir)/unictype/categ_byname.h
+
+unictype/combiningclass_byname.h: unictype/combiningclass_byname.gperf
+       $(GPERF) -m 10 $(srcdir)/unictype/combiningclass_byname.gperf > $(srcdir)/unictype/combiningclass_byname.h-t
+       mv $(srcdir)/unictype/combiningclass_byname.h-t $(srcdir)/unictype/combiningclass_byname.h
+
+unictype/joininggroup_byname.h: unictype/joininggroup_byname.gperf
+       $(GPERF) -m 10 $(srcdir)/unictype/joininggroup_byname.gperf > $(srcdir)/unictype/joininggroup_byname.h-t
+       mv $(srcdir)/unictype/joininggroup_byname.h-t $(srcdir)/unictype/joininggroup_byname.h
+
+unictype/joiningtype_byname.h: unictype/joiningtype_byname.gperf
+       $(GPERF) -m 10 $(srcdir)/unictype/joiningtype_byname.gperf > $(srcdir)/unictype/joiningtype_byname.h-t
+       mv $(srcdir)/unictype/joiningtype_byname.h-t $(srcdir)/unictype/joiningtype_byname.h
+
 unictype/pr_byname.h: unictype/pr_byname.gperf
        $(GPERF) -m 10 $(srcdir)/unictype/pr_byname.gperf > $(srcdir)/unictype/pr_byname.h-t
        mv $(srcdir)/unictype/pr_byname.h-t $(srcdir)/unictype/pr_byname.h
@@ -4262,58 +5199,99 @@ unictype/scripts_byname.h: unictype/scripts_byname.gperf
        $(GPERF) -m 10 $(srcdir)/unictype/scripts_byname.gperf > $(srcdir)/unictype/scripts_byname.h-t
        mv $(srcdir)/unictype/scripts_byname.h-t $(srcdir)/unictype/scripts_byname.h
 
+unigbrk.h: unigbrk.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unigbrk.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+
+unilbrk.h: unilbrk.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unilbrk.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+
+uniname.h: uniname.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/uniname.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+
+uninorm.h: uninorm.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/uninorm.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+
 uninorm/composition-table.h: $(srcdir)/uninorm/composition-table.gperf
        $(GPERF) -m 1 $(srcdir)/uninorm/composition-table.gperf > $(srcdir)/uninorm/composition-table.h-t
        mv $(srcdir)/uninorm/composition-table.h-t $(srcdir)/uninorm/composition-table.h
 
 # We need the following in order to create an empty placeholder for
 # <unistd.h> when the system doesn't have one.
-unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
-             -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
-             -e 's|@''GNULIB_CLOSE''@|$(GNULIB_CLOSE)|g' \
-             -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
-             -e 's|@''GNULIB_DUP3''@|$(GNULIB_DUP3)|g' \
-             -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \
-             -e 's|@''GNULIB_EUIDACCESS''@|$(GNULIB_EUIDACCESS)|g' \
-             -e 's|@''GNULIB_FACCESSAT''@|$(GNULIB_FACCESSAT)|g' \
-             -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
-             -e 's|@''GNULIB_FCHOWNAT''@|$(GNULIB_FCHOWNAT)|g' \
-             -e 's|@''GNULIB_FSYNC''@|$(GNULIB_FSYNC)|g' \
-             -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
-             -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
-             -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \
-             -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \
-             -e 's|@''GNULIB_GETGROUPS''@|$(GNULIB_GETGROUPS)|g' \
-             -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \
-             -e 's|@''GNULIB_GETLOGIN''@|$(GNULIB_GETLOGIN)|g' \
-             -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
-             -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
-             -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \
-             -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
-             -e 's|@''GNULIB_LINK''@|$(GNULIB_LINK)|g' \
-             -e 's|@''GNULIB_LINKAT''@|$(GNULIB_LINKAT)|g' \
-             -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
-             -e 's|@''GNULIB_PIPE2''@|$(GNULIB_PIPE2)|g' \
-             -e 's|@''GNULIB_PREAD''@|$(GNULIB_PREAD)|g' \
-             -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
-             -e 's|@''GNULIB_READLINKAT''@|$(GNULIB_READLINKAT)|g' \
-             -e 's|@''GNULIB_RMDIR''@|$(GNULIB_RMDIR)|g' \
-             -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
-             -e 's|@''GNULIB_SYMLINK''@|$(GNULIB_SYMLINK)|g' \
-             -e 's|@''GNULIB_SYMLINKAT''@|$(GNULIB_SYMLINKAT)|g' \
-             -e 's|@''GNULIB_TTYNAME_R''@|$(GNULIB_TTYNAME_R)|g' \
-             -e 's|@''GNULIB_UNISTD_H_GETOPT''@|$(GNULIB_UNISTD_H_GETOPT)|g' \
-             -e 's|@''GNULIB_UNISTD_H_SIGPIPE''@|$(GNULIB_UNISTD_H_SIGPIPE)|g' \
-             -e 's|@''GNULIB_UNLINK''@|$(GNULIB_UNLINK)|g' \
-             -e 's|@''GNULIB_UNLINKAT''@|$(GNULIB_UNLINKAT)|g' \
-             -e 's|@''GNULIB_USLEEP''@|$(GNULIB_USLEEP)|g' \
-             -e 's|@''GNULIB_WRITE''@|$(GNULIB_WRITE)|g' \
+             -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
+             -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
+             -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
+             -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
+             -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \
+             -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \
+             -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \
+             -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \
+             -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \
+             -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \
+             -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \
+             -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \
+             -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \
+             -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \
+             -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \
+             -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \
+             -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \
+             -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \
+             -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \
+             -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \
+             -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \
+             -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \
+             -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \
+             -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \
+             -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
+             -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \
+             -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \
+             -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \
+             -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \
+             -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \
+             -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \
+             -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \
+             -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \
+             -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \
+             -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \
+             -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \
+             -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \
+             -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \
+             -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \
+             -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \
+             -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \
+             -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \
+             -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \
+             -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \
+             -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \
+             -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \
+             -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \
+             -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \
+             -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \
+             -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \
              < $(srcdir)/unistd.in.h | \
          sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
              -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
@@ -4322,46 +5300,62 @@ unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \
              -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \
              -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \
+             -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \
              -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
              -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
-             -e 's|@''HAVE_GETDOMAINNAME''@|$(HAVE_GETDOMAINNAME)|g' \
              -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
              -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \
              -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
              -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \
              -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+             -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \
              -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \
              -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \
              -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \
+             -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \
              -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \
              -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \
+             -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \
              -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
              -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \
+             -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \
              -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
              -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \
              -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \
-             -e 's|@''HAVE_TTYNAME_R''@|$(HAVE_TTYNAME_R)|g' \
              -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \
              -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \
              -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
+             -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \
+             -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \
+             -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \
              -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
              -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
              -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
+             -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \
+             -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
              -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
              -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
-             -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+         | \
+         sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
              -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \
              -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \
              -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \
              -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
+             -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
              -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+             -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
+             -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \
+             -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
              -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
              -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+             -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \
              -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
              -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \
              -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \
              -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
              -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \
+             -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \
+             -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \
              -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \
              -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \
              -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \
@@ -4378,45 +5372,95 @@ unistd.h: unistd.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
        } > $@-t && \
        mv $@-t $@
-# The unused-parameter.h that gets inserted into generated .h files is the same
-# as build-aux/unused-parameter.h, except that it has the copyright header cut
-# off.
-unused-parameter.h: $(top_srcdir)/build-aux/unused-parameter.h
+
+unistdio.h: unistdio.in.h
        $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
-         < $(top_srcdir)/build-aux/unused-parameter.h \
-         > $@-t && \
-       mv $@-t $@
-# The warn-on-use.h that gets inserted into generated .h files is the same as
-# build-aux/warn-on-use.h, except that it has the copyright header cut off.
-warn-on-use.h: $(top_srcdir)/build-aux/warn-on-use.h
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unistdio.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+
+unistr.h: unistr.in.h
        $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/^.ifndef/,$$p' \
-         < $(top_srcdir)/build-aux/warn-on-use.h \
-         > $@-t && \
-       mv $@-t $@
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unistr.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+
+unitypes.h: unitypes.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/unitypes.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+
+uniwbrk.h: uniwbrk.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/uniwbrk.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+
+uniwidth.h: uniwidth.in.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         cat $(srcdir)/uniwidth.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
 
 # We need the following in order to create <wchar.h> when the system
 # version does not work standalone.
-wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
              -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
              -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
-             -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \
-             -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \
-             -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \
-             -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \
-             -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \
-             -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \
-             -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \
-             -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \
-             -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \
-             -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \
-             -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
-             -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
+             -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \
+             -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \
+             -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \
+             -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \
+             -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \
+             -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \
+             -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \
+             -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \
+             -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \
+             -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \
+             -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \
+             -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \
+             -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \
+             -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \
+             -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \
+             -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \
+             -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \
+             -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \
+             -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \
+             -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \
+             -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \
+             -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \
+             -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \
+             -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \
+             -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \
+             -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \
+             -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \
+             -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \
+             -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \
+             -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \
+             -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \
+             -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \
+             -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \
+             -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \
+             -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \
+             -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \
+             -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \
+             -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \
+             -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \
+             < $(srcdir)/wchar.in.h | \
+         sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
              -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
              -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \
              -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \
@@ -4426,9 +5470,38 @@ wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \
              -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \
              -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \
+             -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \
+             -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \
+             -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \
+             -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \
+             -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \
+             -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \
+             -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \
+             -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \
+             -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \
+             -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \
+             -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \
+             -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \
+             -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \
+             -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \
+             -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \
+             -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \
+             -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \
+             -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \
+             -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \
+             -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \
+             -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \
+             -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \
+             -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \
+             -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \
+             -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \
+             -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \
+             -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \
+             -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \
              -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
              -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
-             -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
+         | \
+         sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
              -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
              -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
              -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
@@ -4440,26 +5513,37 @@ wchar.h: wchar.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
              -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \
              -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \
              -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
+             -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-           < $(srcdir)/wchar.in.h; \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
        } > $@-t && \
        mv $@-t $@
 
 # We need the following in order to create <wctype.h> when the system
 # doesn't have one that works with the given compiler.
-wctype.h: wctype.in.h $(CXXDEFS_H) $(WARN_ON_USE_H)
+wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
              -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+             -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \
+             -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \
+             -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \
+             -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \
+             -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \
              -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \
              -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+             -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \
+             -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \
              -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+             -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
              -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+             -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
              < $(srcdir)/wctype.in.h; \
@@ -4545,7 +5629,7 @@ unistring/iconveh.h : iconveh.h
        rm -f $@-t $@
        cp $(srcdir)/iconveh.h $@-t
        mv $@-t $@
-unistring/cdefs.h : unistring/cdefs.in.h
+unistring/cdefs.h : unistring/cdefs.in.h $(UNUSED_PARAMETER_H)
        @MKDIR_P@ unistring
        rm -f $@-t $@
        sed -e '/definition of _GL_UNUSED_PARAMETER/r $(UNUSED_PARAMETER_H)' \
@@ -4568,15 +5652,22 @@ clean-local: clean-generic
         :
 
 # List of exported symbols.
-# We extract it from the header files that get installed, removing symbols
-# start with "_UC".
+# We extract it from the header files that get installed.
+# We keep symbols that start with "_UC", because they may be needed for
+# compiling newer versions of gnulib modules when the gnulib module
+# 'libunistring-optional' is in use.
 # This file has the same format as the one expected by the libtool option
 # '-export-symbols', but we don't use this option, because it would prevent us
 # from building some of the gnulib unit tests.
 libunistring.sym : $(HEADERS_WITH_EXTERNS)
-       for f in $(HEADERS_WITH_EXTERNS); do cat $(srcdir)/$$f; done \
+       for f in $(HEADERS_WITH_EXTERNS); do \
+         if test -f $$f; then \
+           cat $$f; \
+         else \
+           cat $(srcdir)/$$f; \
+         fi; \
+       done \
          | $(srcdir)/declared.sh | LC_ALL=C sort | LC_ALL=C uniq \
-         | grep -v '^_UC' \
          > $@-t
        mv $@-t $@
 
index ee7aa9a..e3aa62d 100644 (file)
@@ -1,6 +1,6 @@
 /* Memory allocation on the stack.
 
-   Copyright (C) 1995, 1999, 2001-2004, 2006-2010 Free Software Foundation,
+   Copyright (C) 1995, 1999, 2001-2004, 2006-2014 Free Software Foundation,
    Inc.
 
    This program is free software; you can redistribute it and/or modify it
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
+   Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
+   License along with this program; if not, see
+   <http://www.gnu.org/licenses/>.
+  */
 
 /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
    means there is a real alloca function.  */
 #  define alloca _alloca
 # elif defined __DECC && defined __VMS
 #  define alloca __ALLOCA
+# elif defined __TANDEM && defined _TNS_E_TARGET
+#  ifdef  __cplusplus
+extern "C"
+#  endif
+void *_alloca (unsigned short);
+#  pragma intrinsic (_alloca)
+#  define alloca _alloca
 # else
 #  include <stddef.h>
 #  ifdef  __cplusplus
similarity index 54%
rename from lib/memxfrm.c
rename to lib/amemxfrm.c
index a1c6cf8..2abf414 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent memory area transformation for comparison.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
 #include <config.h>
 
 /* Specification.  */
-#include "memxfrm.h"
+#include "amemxfrm.h"
 
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
 
 char *
-memxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
+amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
 {
   /* Result accumulator.  */
   char *result;
@@ -64,12 +64,40 @@ memxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
     for (;;)
       {
         /* Search next NUL byte.  */
-        const char *q = p + strlen (p);
+        size_t l = strlen (p);
 
         for (;;)
           {
             size_t k;
 
+            /* A call to strxfrm costs about 20 times more than a call to
+               strdup of the result.  Therefore it is worth to try to avoid
+               calling strxfrm more than once on a given string, by making
+               enough room before calling strxfrm.
+               The size of the strxfrm result, k, is likely to be between
+               l and 3 * l.  */
+            if (3 * l >= allocated - length)
+              {
+                /* Grow the result buffer.  */
+                size_t new_allocated;
+                char *new_result;
+
+                new_allocated = length + 3 * l + 1;
+                if (new_allocated < 2 * allocated)
+                  new_allocated = 2 * allocated;
+                if (new_allocated < 64)
+                  new_allocated = 64;
+                if (result == resultbuf)
+                  new_result = (char *) malloc (new_allocated);
+                else
+                  new_result = (char *) realloc (result, new_allocated);
+                if (new_result != NULL)
+                  {
+                    allocated = new_allocated;
+                    result = new_result;
+                  }
+              }
+
             errno = 0;
             k = strxfrm (result + length, p, allocated - length);
             if (errno != 0)
@@ -77,17 +105,21 @@ memxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
             if (k >= allocated - length)
               {
                 /* Grow the result buffer.  */
+                size_t new_allocated;
                 char *new_result;
 
-                allocated = 2 * allocated;
-                if (allocated < 64)
-                  allocated = 64;
+                new_allocated = length + k + 1;
+                if (new_allocated < 2 * allocated)
+                  new_allocated = 2 * allocated;
+                if (new_allocated < 64)
+                  new_allocated = 64;
                 if (result == resultbuf)
-                  new_result = (char *) malloc (allocated);
+                  new_result = (char *) malloc (new_allocated);
                 else
-                  new_result = (char *) realloc (result, allocated);
+                  new_result = (char *) realloc (result, new_allocated);
                 if (new_result == NULL)
                   goto out_of_memory_1;
+                allocated = new_allocated;
                 result = new_result;
               }
             else
@@ -97,7 +129,7 @@ memxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
               }
           }
 
-        p = q + 1;
+        p = p + l + 1;
         if (p == p_end)
           break;
         result[length] = '\0';
@@ -105,12 +137,23 @@ memxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp)
       }
   }
 
-  /* Shrink the allocated memory if possible.  */
-  if (result != resultbuf && (length > 0 ? length : 1) < allocated)
+  /* Shrink the allocated memory if possible.
+     It is not worth calling realloc when length + 1 == allocated; it would
+     save just one byte.  */
+  if (result != resultbuf && length + 1 < allocated)
     {
-      char *memory = (char *) realloc (result, length > 0 ? length : 1);
-      if (memory != NULL)
-        result = memory;
+      if ((length > 0 ? length : 1) <= *lengthp)
+        {
+          memcpy (resultbuf, result, length);
+          free (result);
+          result = resultbuf;
+        }
+      else
+        {
+          char *memory = (char *) realloc (result, length > 0 ? length : 1);
+          if (memory != NULL)
+            result = memory;
+        }
     }
 
   s[n] = orig_sentinel;
similarity index 86%
rename from lib/memxfrm.h
rename to lib/amemxfrm.h
index 8b7284a..27b4534 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent memory area transformation for comparison.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -14,8 +14,8 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef MEMXFRM_H
-#define MEMXFRM_H
+#ifndef AMEMXFRM_H
+#define AMEMXFRM_H
 
 #include <stddef.h>
 
@@ -28,7 +28,7 @@ extern "C" {
 
 /* Transform the memory area [S..S+N-1] to a memory area, in such a way that
    comparing (S1,N1) and (S2,N2) with memcoll() is equivalent to comparing
-   memxfrm(S1,N1) and memxfrm(S2,N2) with memcmp2().
+   amemxfrm(S1,N1) and amemxfrm(S2,N2) with memcmp2().
    The byte S[N] may be temporarily overwritten by this function, but will be
    restored before this function returns.
    The result of this function depends on the LC_COLLATE category of the
@@ -38,11 +38,11 @@ extern "C" {
    freshly allocated string is returned.  In both cases, *lengthp is set to the
    length of the returned string.
    Upon failure, return NULL, with errno set.  */
-extern char * memxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp);
+extern char * amemxfrm (char *s, size_t n, char *resultbuf, size_t *lengthp);
 
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* MEMXFRM_H */
+#endif /* AMEMXFRM_H */
index 61bf728..dddc88b 100644 (file)
@@ -1,5 +1,5 @@
 /* Stable-sorting of an array using mergesort.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 403adc2..7fe3f7e 100644 (file)
@@ -1,6 +1,6 @@
 /* Character handling in C locale.
 
-   Copyright 2000-2003, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright 2000-2003, 2006, 2009-2014 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
@@ -13,8 +13,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU Lesser General Public License for more details.
 
 You should have received a copy of the GNU Lesser General Public License
-along with this program; if not, write to the Free Software Foundation,
-Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index 00c0a26..a258019 100644 (file)
@@ -5,7 +5,7 @@
    <ctype.h> functions' behaviour depends on the current locale set via
    setlocale.
 
-   Copyright (C) 2000-2003, 2006, 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003, 2006, 2008-2014 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
@@ -18,8 +18,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU Lesser General Public License for more details.
 
 You should have received a copy of the GNU Lesser General Public License
-along with this program; if not, write to the Free Software Foundation,
-Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef C_CTYPE_H
 #define C_CTYPE_H
@@ -118,26 +117,27 @@ extern "C" {
          if (c_isalpha (*s)) ...
  */
 
-extern bool c_isascii (int c); /* not locale dependent */
+extern bool c_isascii (int c) _GL_ATTRIBUTE_CONST; /* not locale dependent */
 
-extern bool c_isalnum (int c);
-extern bool c_isalpha (int c);
-extern bool c_isblank (int c);
-extern bool c_iscntrl (int c);
-extern bool c_isdigit (int c);
-extern bool c_islower (int c);
-extern bool c_isgraph (int c);
-extern bool c_isprint (int c);
-extern bool c_ispunct (int c);
-extern bool c_isspace (int c);
-extern bool c_isupper (int c);
-extern bool c_isxdigit (int c);
+extern bool c_isalnum (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isalpha (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isblank (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_iscntrl (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isdigit (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_islower (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isgraph (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isprint (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_ispunct (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isspace (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isupper (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isxdigit (int c) _GL_ATTRIBUTE_CONST;
 
-extern int c_tolower (int c);
-extern int c_toupper (int c);
+extern int c_tolower (int c) _GL_ATTRIBUTE_CONST;
+extern int c_toupper (int c) _GL_ATTRIBUTE_CONST;
 
 
-#if defined __GNUC__ && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ && !defined NO_C_CTYPE_MACROS
+#if (defined __GNUC__ && !defined __STRICT_ANSI__ && defined __OPTIMIZE__ \
+     && !defined __OPTIMIZE_SIZE__ && !defined NO_C_CTYPE_MACROS)
 
 /* ASCII optimizations. */
 
index 99e7faf..ee3bd3f 100644 (file)
@@ -1,5 +1,5 @@
 /* Case-insensitive string comparison functions in C locale.
-   Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2010 Free Software
+   Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2014 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef C_STRCASE_H
 #define C_STRCASE_H
@@ -40,12 +39,13 @@ extern "C" {
 /* Compare strings S1 and S2, ignoring case, returning less than, equal to or
    greater than zero if S1 is lexicographically less than, equal to or greater
    than S2.  */
-extern int c_strcasecmp (const char *s1, const char *s2);
+extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE;
 
 /* Compare no more than N characters of strings S1 and S2, ignoring case,
    returning less than, equal to or greater than zero if S1 is
    lexicographically less than, equal to or greater than S2.  */
-extern int c_strncasecmp (const char *s1, const char *s2, size_t n);
+extern int c_strncasecmp (const char *s1, const char *s2, size_t n)
+  _GL_ATTRIBUTE_PURE;
 
 
 #ifdef __cplusplus
index bc3e76d..5059cc6 100644 (file)
@@ -1,5 +1,5 @@
 /* c-strcasecmp.c -- case insensitive string comparator in C locale
-   Copyright (C) 1998-1999, 2005-2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2006, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -12,8 +12,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index 0af82f3..44d3751 100644 (file)
@@ -1,5 +1,5 @@
 /* Optimized case-insensitive string comparison in C locale.
-   Copyright (C) 2001-2002, 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index 01dbf39..6145981 100644 (file)
@@ -1,5 +1,5 @@
 /* c-strncasecmp.c -- case insensitive string comparator in C locale
-   Copyright (C) 1998-1999, 2005-2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2006, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -12,8 +12,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
index ae2efc4..8fe2507 100644 (file)
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Output a system dependent table of character encoding aliases.
 #
-#   Copyright (C) 2000-2004, 2006-2010 Free Software Foundation, Inc.
+#   Copyright (C) 2000-2004, 2006-2014 Free Software Foundation, Inc.
 #
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU Lesser General Public License as published by
@@ -14,8 +14,7 @@
 #   GNU Lesser General Public License for more details.
 #
 #   You should have received a copy of the GNU Lesser General Public License along
-#   with this program; if not, write to the Free Software Foundation,
-#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#   with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # The table consists of lines of the form
 #    ALIAS  CANONICAL
 # The current list of GNU canonical charset names is as follows.
 #
 #       name              MIME?             used by which systems
-#   ASCII, ANSI_X3.4-1968       glibc solaris freebsd netbsd darwin
-#   ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
-#   ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
-#   ISO-8859-3              Y   glibc solaris
+#                                    (darwin = Mac OS X, woe32 = native Windows)
+#
+#   ASCII, ANSI_X3.4-1968       glibc solaris freebsd netbsd darwin cygwin
+#   ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
+#   ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
+#   ISO-8859-3              Y   glibc solaris cygwin
 #   ISO-8859-4              Y   osf solaris freebsd netbsd openbsd darwin
-#   ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
-#   ISO-8859-6              Y   glibc aix hpux solaris
-#   ISO-8859-7              Y   glibc aix hpux irix osf solaris netbsd openbsd darwin
-#   ISO-8859-8              Y   glibc aix hpux osf solaris
-#   ISO-8859-9              Y   glibc aix hpux irix osf solaris darwin
-#   ISO-8859-13                 glibc netbsd openbsd darwin
-#   ISO-8859-14                 glibc
-#   ISO-8859-15                 glibc aix osf solaris freebsd netbsd openbsd darwin
+#   ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
+#   ISO-8859-6              Y   glibc aix hpux solaris cygwin
+#   ISO-8859-7              Y   glibc aix hpux irix osf solaris netbsd openbsd darwin cygwin
+#   ISO-8859-8              Y   glibc aix hpux osf solaris cygwin
+#   ISO-8859-9              Y   glibc aix hpux irix osf solaris darwin cygwin
+#   ISO-8859-13                 glibc netbsd openbsd darwin cygwin
+#   ISO-8859-14                 glibc cygwin
+#   ISO-8859-15                 glibc aix osf solaris freebsd netbsd openbsd darwin cygwin
 #   KOI8-R                  Y   glibc solaris freebsd netbsd openbsd darwin
-#   KOI8-U                  Y   glibc freebsd netbsd openbsd darwin
+#   KOI8-U                  Y   glibc freebsd netbsd openbsd darwin cygwin
 #   KOI8-T                      glibc
 #   CP437                       dos
 #   CP775                       dos
@@ -61,7 +62,7 @@
 #   CP869                       dos
 #   CP874                       woe32 dos
 #   CP922                       aix
-#   CP932                       aix woe32 dos
+#   CP932                       aix cygwin woe32 dos
 #   CP943                       aix
 #   CP949                       osf darwin woe32 dos
 #   CP950                       woe32 dos
@@ -71,7 +72,7 @@
 #   CP1129                      aix
 #   CP1131                      darwin
 #   CP1250                      woe32
-#   CP1251                      glibc solaris netbsd openbsd darwin woe32
+#   CP1251                      glibc solaris netbsd openbsd darwin cygwin woe32
 #   CP1252                      aix woe32
 #   CP1253                      woe32
 #   CP1254                      woe32
 #   CP1257                      woe32
 #   GB2312                  Y   glibc aix hpux irix solaris freebsd netbsd darwin
 #   EUC-JP                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
-#   EUC-KR                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+#   EUC-KR                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin
 #   EUC-TW                      glibc aix hpux irix osf solaris netbsd
-#   BIG5                    Y   glibc aix hpux osf solaris freebsd netbsd darwin
+#   BIG5                    Y   glibc aix hpux osf solaris freebsd netbsd darwin cygwin
 #   BIG5-HKSCS                  glibc solaris darwin
-#   GBK                         glibc aix osf solaris darwin woe32 dos
+#   GBK                         glibc aix osf solaris darwin cygwin woe32 dos
 #   GB18030                     glibc solaris netbsd darwin
 #   SHIFT_JIS               Y   hpux osf solaris freebsd netbsd darwin
 #   JOHAB                       glibc solaris woe32
-#   TIS-620                     glibc aix hpux osf solaris
+#   TIS-620                     glibc aix hpux osf solaris cygwin
 #   VISCII                  Y   glibc
 #   TCVN5712-1                  glibc
 #   ARMSCII-8                   glibc darwin
-#   GEORGIAN-PS                 glibc
+#   GEORGIAN-PS                 glibc cygwin
 #   PT154                       glibc
 #   HP-ROMAN8                   hpux
 #   HP-ARABIC8                  hpux
 #   HP-KANA8                    hpux
 #   DEC-KANJI                   osf
 #   DEC-HANYU                   osf
-#   UTF-8                   Y   glibc aix hpux osf solaris netbsd darwin
+#   UTF-8                   Y   glibc aix hpux osf solaris netbsd darwin cygwin
 #
 # Note: Names which are not marked as being a MIME name should not be used in
 # Internet protocols for information interchange (mail, news, etc.).
index 0e6fb7f..8dbb5f9 100644 (file)
@@ -1,6 +1,6 @@
 /* A POSIX-like <errno.h>.
 
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GL_ERRNO_H
+#ifndef _@GUARD_PREFIX@_ERRNO_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
 
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_ERRNO_H@
 
-#ifndef _GL_ERRNO_H
-#define _GL_ERRNO_H
+#ifndef _@GUARD_PREFIX@_ERRNO_H
+#define _@GUARD_PREFIX@_ERRNO_H
 
 
 /* On native Windows platforms, many macros are not defined.  */
 # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 
-/* POSIX says that EAGAIN and EWOULDBLOCK may have the same value.  */
-#  define EWOULDBLOCK     EAGAIN
+/* These are the same values as defined by MSVC 10, for interoperability.  */
 
-/* Values >= 100 seem safe to use.  */
-#  define ETXTBSY   100
-#  define GNULIB_defined_ETXTBSY 1
+#  ifndef ENOMSG
+#   define ENOMSG    122
+#   define GNULIB_defined_ENOMSG 1
+#  endif
+
+#  ifndef EIDRM
+#   define EIDRM     111
+#   define GNULIB_defined_EIDRM 1
+#  endif
+
+#  ifndef ENOLINK
+#   define ENOLINK   121
+#   define GNULIB_defined_ENOLINK 1
+#  endif
+
+#  ifndef EPROTO
+#   define EPROTO    134
+#   define GNULIB_defined_EPROTO 1
+#  endif
+
+#  ifndef EBADMSG
+#   define EBADMSG   104
+#   define GNULIB_defined_EBADMSG 1
+#  endif
+
+#  ifndef EOVERFLOW
+#   define EOVERFLOW 132
+#   define GNULIB_defined_EOVERFLOW 1
+#  endif
+
+#  ifndef ENOTSUP
+#   define ENOTSUP   129
+#   define GNULIB_defined_ENOTSUP 1
+#  endif
+
+#  ifndef ENETRESET
+#   define ENETRESET 117
+#   define GNULIB_defined_ENETRESET 1
+#  endif
+
+#  ifndef ECONNABORTED
+#   define ECONNABORTED 106
+#   define GNULIB_defined_ECONNABORTED 1
+#  endif
+
+#  ifndef ECANCELED
+#   define ECANCELED 105
+#   define GNULIB_defined_ECANCELED 1
+#  endif
+
+#  ifndef EOWNERDEAD
+#   define EOWNERDEAD 133
+#   define GNULIB_defined_EOWNERDEAD 1
+#  endif
+
+#  ifndef ENOTRECOVERABLE
+#   define ENOTRECOVERABLE 127
+#   define GNULIB_defined_ENOTRECOVERABLE 1
+#  endif
+
+#  ifndef EINPROGRESS
+#   define EINPROGRESS     112
+#   define EALREADY        103
+#   define ENOTSOCK        128
+#   define EDESTADDRREQ    109
+#   define EMSGSIZE        115
+#   define EPROTOTYPE      136
+#   define ENOPROTOOPT     123
+#   define EPROTONOSUPPORT 135
+#   define EOPNOTSUPP      130
+#   define EAFNOSUPPORT    102
+#   define EADDRINUSE      100
+#   define EADDRNOTAVAIL   101
+#   define ENETDOWN        116
+#   define ENETUNREACH     118
+#   define ECONNRESET      108
+#   define ENOBUFS         119
+#   define EISCONN         113
+#   define ENOTCONN        126
+#   define ETIMEDOUT       138
+#   define ECONNREFUSED    107
+#   define ELOOP           114
+#   define EHOSTUNREACH    110
+#   define EWOULDBLOCK     140
+#   define GNULIB_defined_ESOCK 1
+#  endif
+
+#  ifndef ETXTBSY
+#   define ETXTBSY         139
+#   define ENODATA         120  /* not required by POSIX */
+#   define ENOSR           124  /* not required by POSIX */
+#   define ENOSTR          125  /* not required by POSIX */
+#   define ETIME           137  /* not required by POSIX */
+#   define EOTHER          131  /* not required by POSIX */
+#   define GNULIB_defined_ESTREAMS 1
+#  endif
 
 /* These are intentionally the same values as the WSA* error numbers, defined
    in <winsock2.h>.  */
-#  define EINPROGRESS     10036
-#  define EALREADY        10037
-#  define ENOTSOCK        10038
-#  define EDESTADDRREQ    10039
-#  define EMSGSIZE        10040
-#  define EPROTOTYPE      10041
-#  define ENOPROTOOPT     10042
-#  define EPROTONOSUPPORT 10043
 #  define ESOCKTNOSUPPORT 10044  /* not required by POSIX */
-#  define EOPNOTSUPP      10045
 #  define EPFNOSUPPORT    10046  /* not required by POSIX */
-#  define EAFNOSUPPORT    10047
-#  define EADDRINUSE      10048
-#  define EADDRNOTAVAIL   10049
-#  define ENETDOWN        10050
-#  define ENETUNREACH     10051
-#  define ENETRESET       10052
-#  define ECONNABORTED    10053
-#  define ECONNRESET      10054
-#  define ENOBUFS         10055
-#  define EISCONN         10056
-#  define ENOTCONN        10057
 #  define ESHUTDOWN       10058  /* not required by POSIX */
 #  define ETOOMANYREFS    10059  /* not required by POSIX */
-#  define ETIMEDOUT       10060
-#  define ECONNREFUSED    10061
-#  define ELOOP           10062
 #  define EHOSTDOWN       10064  /* not required by POSIX */
-#  define EHOSTUNREACH    10065
 #  define EPROCLIM        10067  /* not required by POSIX */
 #  define EUSERS          10068  /* not required by POSIX */
 #  define EDQUOT          10069
 #  define ESTALE          10070
 #  define EREMOTE         10071  /* not required by POSIX */
-#  define GNULIB_defined_ESOCK 1
+#  define GNULIB_defined_EWINSOCK 1
 
 # endif
 
 
 /* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK,
    EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined.
+   Likewise, on NonStop Kernel, EDQUOT is not defined.
    Define them here.  Values >= 2000 seem safe to use: Solaris ESTALE = 151,
    HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133.
 
 #  define GNULIB_defined_ENOTSUP 1
 # endif
 
+# ifndef ENETRESET
+#  define ENETRESET 2011
+#  define GNULIB_defined_ENETRESET 1
+# endif
+
+# ifndef ECONNABORTED
+#  define ECONNABORTED 2012
+#  define GNULIB_defined_ECONNABORTED 1
+# endif
+
 # ifndef ESTALE
 #  define ESTALE    2009
 #  define GNULIB_defined_ESTALE 1
 # endif
 
+# ifndef EDQUOT
+#  define EDQUOT 2010
+#  define GNULIB_defined_EDQUOT 1
+# endif
+
 # ifndef ECANCELED
 #  define ECANCELED 2008
 #  define GNULIB_defined_ECANCELED 1
 # endif
 
+/* On many platforms, the macros EOWNERDEAD and ENOTRECOVERABLE are not
+   defined.  */
+
+# ifndef EOWNERDEAD
+#  if defined __sun
+    /* Use the same values as defined for Solaris >= 8, for
+       interoperability.  */
+#   define EOWNERDEAD      58
+#   define ENOTRECOVERABLE 59
+#  elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+    /* We have a conflict here: pthreads-win32 defines these values
+       differently than MSVC 10.  It's hairy to decide which one to use.  */
+#   if defined __MINGW32__ && !defined USE_WINDOWS_THREADS
+     /* Use the same values as defined by pthreads-win32, for
+        interoperability.  */
+#    define EOWNERDEAD      43
+#    define ENOTRECOVERABLE 44
+#   else
+     /* Use the same values as defined by MSVC 10, for
+        interoperability.  */
+#    define EOWNERDEAD      133
+#    define ENOTRECOVERABLE 127
+#   endif
+#  else
+#   define EOWNERDEAD      2013
+#   define ENOTRECOVERABLE 2014
+#  endif
+#  define GNULIB_defined_EOWNERDEAD 1
+#  define GNULIB_defined_ENOTRECOVERABLE 1
+# endif
+
+# ifndef EILSEQ
+#  define EILSEQ 2015
+#  define GNULIB_defined_EILSEQ 1
+# endif
 
-#endif /* _GL_ERRNO_H */
-#endif /* _GL_ERRNO_H */
+#endif /* _@GUARD_PREFIX@_ERRNO_H */
+#endif /* _@GUARD_PREFIX@_ERRNO_H */
index 956eb28..085c379 100644 (file)
@@ -1,5 +1,5 @@
 /* Supplemental information about the floating-point formats.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software; you can redistribute it and/or modify
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _FLOATPLUS_H
 #define _FLOATPLUS_H
 #define SIZEOF_LDBL ((LDBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
 
 /* Verify that SIZEOF_FLT <= sizeof (float) etc.  */
-typedef int verify_sizeof_flt[2 * (SIZEOF_FLT <= sizeof (float)) - 1];
-typedef int verify_sizeof_dbl[2 * (SIZEOF_DBL <= sizeof (double)) - 1];
-typedef int verify_sizeof_ldbl[2 * (SIZEOF_LDBL <= sizeof (long double)) - 1];
+typedef int verify_sizeof_flt[SIZEOF_FLT <= sizeof (float) ? 1 : -1];
+typedef int verify_sizeof_dbl[SIZEOF_DBL <= sizeof (double) ? 1 : - 1];
+typedef int verify_sizeof_ldbl[SIZEOF_LDBL <= sizeof (long double) ? 1 : - 1];
 
 #endif /* _FLOATPLUS_H */
diff --git a/lib/float.c b/lib/float.c
new file mode 100644 (file)
index 0000000..3faa5ee
--- /dev/null
@@ -0,0 +1,33 @@
+/* Auxiliary definitions for <float.h>.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <float.h>
+
+#if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__
+const union gl_long_double_union gl_LDBL_MAX =
+  { { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL } };
+#elif defined __i386__
+const union gl_long_double_union gl_LDBL_MAX =
+  { { 0xFFFFFFFF, 0xFFFFFFFF, 32766 } };
+#else
+/* This declaration is solely to ensure that after preprocessing
+   this file is never empty.  */
+typedef int dummy;
+#endif
index ad99af3..e814eab 100644 (file)
@@ -1,6 +1,6 @@
 /* A correct <float.h>.
 
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GL_FLOAT_H
+#ifndef _@GUARD_PREFIX@_FLOAT_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
 
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_FLOAT_H@
 
-#ifndef _GL_FLOAT_H
-#define _GL_FLOAT_H
+#ifndef _@GUARD_PREFIX@_FLOAT_H
+#define _@GUARD_PREFIX@_FLOAT_H
 
 /* 'long double' properties.  */
+
 #if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
 /* Number of mantissa units, in base FLT_RADIX.  */
 # undef LDBL_MANT_DIG
 # define LDBL_MAX_10_EXP 4932
 #endif
 
-#endif /* _GL_FLOAT_H */
-#endif /* _GL_FLOAT_H */
+/* On FreeBSD/x86 6.4, the 'long double' type really has only 53 bits of
+   precision in the compiler but 64 bits of precision at runtime.  See
+   <http://lists.gnu.org/archive/html/bug-gnulib/2008-07/msg00063.html>.  */
+#if defined __i386__ && defined __FreeBSD__
+/* Number of mantissa units, in base FLT_RADIX.  */
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG   64
+/* Number of decimal digits that is sufficient for representing a number.  */
+# undef LDBL_DIG
+# define LDBL_DIG        18
+/* x-1 where x is the smallest representable number > 1.  */
+# undef LDBL_EPSILON
+# define LDBL_EPSILON 1.084202172485504434007452800869941711426e-19L /* 2^-63 */
+/* Minimum e such that FLT_RADIX^(e-1) is a normalized number.  */
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP    (-16381)
+/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number.  */
+# undef LDBL_MAX_EXP
+# define LDBL_MAX_EXP    16384
+/* Minimum positive normalized number.  */
+# undef LDBL_MIN
+# define LDBL_MIN        3.3621031431120935E-4932L /* = 0x1p-16382L */
+/* Maximum representable finite number.  */
+# undef LDBL_MAX
+/* LDBL_MAX is represented as { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }.
+   But the largest literal that GCC allows us to write is
+   0x0.fffffffffffff8p16384L = { 0xFFFFF800, 0xFFFFFFFF, 32766 }.
+   So, define it like this through a reference to an external variable
+
+     const unsigned int LDBL_MAX[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 32766 };
+     extern const long double LDBL_MAX;
+
+   Unfortunately, this is not a constant expression.  */
+union gl_long_double_union
+  {
+    struct { unsigned int lo; unsigned int hi; unsigned int exponent; } xd;
+    long double ld;
+  };
+extern const union gl_long_double_union gl_LDBL_MAX;
+# define LDBL_MAX (gl_LDBL_MAX.ld)
+/* Minimum e such that 10^e is in the range of normalized numbers.  */
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP (-4931)
+/* Maximum e such that 10^e is in the range of representable finite numbers.  */
+# undef LDBL_MAX_10_EXP
+# define LDBL_MAX_10_EXP 4932
+#endif
+
+/* On AIX 7.1 with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_MAX are
+   wrong.
+   On Linux/PowerPC with gcc 4.4, the value of LDBL_MAX is wrong.  */
+#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP DBL_MIN_10_EXP
+# undef LDBL_MIN
+# define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */
+#endif
+#if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MAX
+/* LDBL_MAX is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xFFFFFFFF }.
+   It is not easy to define:
+     #define LDBL_MAX 1.79769313486231580793728971405302307166e308L
+   is too small, whereas
+     #define LDBL_MAX 1.79769313486231580793728971405302307167e308L
+   is too large.  Apparently a bug in GCC decimal-to-binary conversion.
+   Also, I can't get values larger than
+     #define LDBL63 ((long double) (1ULL << 63))
+     #define LDBL882 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+     #define LDBL945 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+     #define LDBL1008 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+     #define LDBL_MAX (LDBL1008 * 65535.0L + LDBL945 * (long double) 9223372036821221375ULL + LDBL882 * (long double) 4611686018427387904ULL)
+   which is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xF8000000 }.
+   So, define it like this through a reference to an external variable
+
+     const double LDBL_MAX[2] = { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL };
+     extern const long double LDBL_MAX;
+
+   or through a pointer cast
+
+     #define LDBL_MAX \
+       (*(const long double *) (double[]) { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL })
+
+   Unfortunately, this is not a constant expression, and the latter expression
+   does not work well when GCC is optimizing..  */
+union gl_long_double_union
+  {
+    struct { double hi; double lo; } dd;
+    long double ld;
+  };
+extern const union gl_long_double_union gl_LDBL_MAX;
+# define LDBL_MAX (gl_LDBL_MAX.ld)
+#endif
+
+/* On IRIX 6.5, with cc, the value of LDBL_MANT_DIG is wrong.
+   On IRIX 6.5, with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_EPSILON
+   are wrong.  */
+#if defined __sgi && (LDBL_MANT_DIG >= 106)
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG 106
+# if defined __GNUC__
+#  undef LDBL_MIN_EXP
+#  define LDBL_MIN_EXP DBL_MIN_EXP
+#  undef LDBL_MIN_10_EXP
+#  define LDBL_MIN_10_EXP DBL_MIN_10_EXP
+#  undef LDBL_MIN
+#  define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */
+#  undef LDBL_EPSILON
+#  define LDBL_EPSILON 2.46519032881566189191165176650870696773e-32L /* 2^-105 */
+# endif
+#endif
+
+#if @REPLACE_ITOLD@
+/* Pull in a function that fixes the 'int' to 'long double' conversion
+   of glibc 2.7.  */
+extern
+# ifdef __cplusplus
+"C"
+# endif
+void _Qp_itoq (long double *, int);
+static void (*_gl_float_fix_itold) (long double *, int) = _Qp_itoq;
+#endif
+
+#endif /* _@GUARD_PREFIX@_FLOAT_H */
+#endif /* _@GUARD_PREFIX@_FLOAT_H */
index dbbe363..5a52197 100644 (file)
@@ -1,5 +1,5 @@
 /* Manipulating the FPU control word.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify
@@ -30,7 +30,8 @@
 
    On some platforms, such as NetBSD, the default precision is set to
    "double precision".  This means that 'long double' instructions will operate
-   only as 'double', i.e. lead wrong results.
+   only as 'double', i.e. lead to wrong results.  Similarly on FreeBSD 6.4, at
+   least for the division of 'long double' numbers.
 
    The FPU control word is under control of the application, i.e. it is
    not required to be set either way by the ABI.  (In fact, the i386 ABI
index 5828d62..6eff945 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a double into fraction and mantissa.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -17,7 +17,9 @@
 /* Written by Paolo Bonzini <bonzini@gnu.org>, 2003, and
    Bruno Haible <bruno@clisp.org>, 2007.  */
 
-#include <config.h>
+#if ! defined USE_LONG_DOUBLE
+# include <config.h>
+#endif
 
 /* Specification.  */
 #include <math.h>
index 9cf9bf6..d602332 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a 'long double' into fraction and mantissa.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#define USE_LONG_DOUBLE
-#include "frexp.c"
+#include <config.h>
+
+#if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
+
+/* Specification.  */
+# include <math.h>
+
+long double
+frexpl (long double x, int *expptr)
+{
+  return frexp (x, expptr);
+}
+
+#else
+
+# define USE_LONG_DOUBLE
+# include "frexp.c"
+
+#endif
index 359b86e..030f6e5 100644 (file)
@@ -1,5 +1,5 @@
 /* Set the error indicator of a stream.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -31,11 +31,13 @@ fseterr (FILE *fp)
      fast macros.  */
 #if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
   fp->_flags |= _IO_ERR_SEEN;
-#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
   fp_->_flags |= __SERR;
 #elif defined __EMX__               /* emx+gcc */
   fp->_flags |= _IOERR;
-#elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */
+#elif defined __minix               /* Minix */
+  fp->_flags |= _IOERR;
+#elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
   fp_->_flag |= _IOERR;
 #elif defined __UCLIBC__            /* uClibc */
   fp->__modeflags |= __FLAG_ERROR;
@@ -43,6 +45,9 @@ fseterr (FILE *fp)
   fp->_Mode |= 0x200 /* _MERR */;
 #elif defined __MINT__              /* Atari FreeMiNT */
   fp->__error = 1;
+#elif defined EPLAN9                /* Plan9 */
+  if (fp->state != 0 /* CLOSED */)
+    fp->state = 5 /* ERR */;
 #elif 0                             /* unknown  */
   /* Portable fallback, based on an idea by Rich Felker.
      Wow! 6 system calls for something that is just a bit operation!
index 7c1d34d..0a7b2dd 100644 (file)
@@ -1,5 +1,5 @@
 /* Set the error indicator of a stream.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
 
 #include <stdio.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
 /* Set the error indicator of the stream FP.
    The "error indicator" is set when an I/O operation on the stream fails, and
    is cleared (together with the "end-of-file" indicator) by clearerr (FP).  */
-extern void fseterr (FILE *fp);
 
+#if HAVE___FSETERR /* musl libc */
+
+# include <stdio_ext.h>
+# define fseterr(fp) __fseterr (fp)
 
-#ifdef __cplusplus
+#else
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+extern void fseterr (FILE *fp);
+
+# ifdef __cplusplus
 }
+# endif
+
 #endif
 
 #endif /* _FSETERR_H */
index 2f4de9f..0454cc2 100644 (file)
@@ -1,5 +1,5 @@
 /* Locking in multithreaded situations.
-   Copyright (C) 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 2005-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -12,8 +12,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
    Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
@@ -630,7 +629,7 @@ glthread_once_singlethreaded (gl_once_t *once_control)
 
 /* ========================================================================= */
 
-#if USE_WIN32_THREADS
+#if USE_WINDOWS_THREADS
 
 /* -------------------------- gl_lock_t datatype -------------------------- */
 
@@ -683,7 +682,7 @@ glthread_lock_destroy_func (gl_lock_t *lock)
 /* In this file, the waitqueues are implemented as circular arrays.  */
 #define gl_waitqueue_t gl_carray_waitqueue_t
 
-static inline void
+static void
 gl_waitqueue_init (gl_waitqueue_t *wq)
 {
   wq->array = NULL;
@@ -744,7 +743,7 @@ gl_waitqueue_add (gl_waitqueue_t *wq)
 }
 
 /* Notifies the first thread from a wait queue and dequeues it.  */
-static inline void
+static void
 gl_waitqueue_notify_first (gl_waitqueue_t *wq)
 {
   SetEvent (wq->array[wq->offset + 0]);
@@ -755,7 +754,7 @@ gl_waitqueue_notify_first (gl_waitqueue_t *wq)
 }
 
 /* Notifies all threads from a wait queue and dequeues them all.  */
-static inline void
+static void
 gl_waitqueue_notify_all (gl_waitqueue_t *wq)
 {
   unsigned int i;
index 47ce773..894b1fb 100644 (file)
@@ -1,5 +1,5 @@
 /* Locking in multithreaded situations.
-   Copyright (C) 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 2005-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -12,8 +12,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
    Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
@@ -614,16 +613,17 @@ extern int glthread_once_singlethreaded (gl_once_t *once_control);
 
 /* ========================================================================= */
 
-#if USE_WIN32_THREADS
+#if USE_WINDOWS_THREADS
 
+# define WIN32_LEAN_AND_MEAN  /* avoid including junk */
 # include <windows.h>
 
 # ifdef __cplusplus
 extern "C" {
 # endif
 
-/* We can use CRITICAL_SECTION directly, rather than the Win32 Event, Mutex,
-   Semaphore types, because
+/* We can use CRITICAL_SECTION directly, rather than the native Windows Event,
+   Mutex, Semaphore types, because
      - we need only to synchronize inside a single process (address space),
        not inter-process locking,
      - we don't need to support trylock operations.  (TryEnterCriticalSection
@@ -709,9 +709,9 @@ extern int glthread_rwlock_destroy_func (gl_rwlock_t *lock);
 
 /* --------------------- gl_recursive_lock_t datatype --------------------- */
 
-/* The Win32 documentation says that CRITICAL_SECTION already implements a
-   recursive lock.  But we need not rely on it: It's easy to implement a
-   recursive lock without this assumption.  */
+/* The native Windows documentation says that CRITICAL_SECTION already
+   implements a recursive lock.  But we need not rely on it: It's easy to
+   implement a recursive lock without this assumption.  */
 
 typedef struct
         {
@@ -763,7 +763,7 @@ extern void glthread_once_func (gl_once_t *once_control, void (*initfunction) (v
 
 /* ========================================================================= */
 
-#if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WIN32_THREADS)
+#if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS)
 
 /* Provide dummy implementation if threads are not supported.  */
 
index 8cb1bb2..37a5762 100644 (file)
@@ -1,5 +1,5 @@
 /* Multithreading primitives.
-   Copyright (C) 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 2005-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -12,8 +12,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2005.  */
 
diff --git a/lib/iconv.c b/lib/iconv.c
new file mode 100644 (file)
index 0000000..a6dfed3
--- /dev/null
@@ -0,0 +1,449 @@
+/* Character set conversion.
+   Copyright (C) 1999-2001, 2007, 2009-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <iconv.h>
+
+#include <stddef.h>
+
+#if REPLACE_ICONV_UTF
+# include <errno.h>
+# include <stdint.h>
+# include <stdlib.h>
+# include "unistr.h"
+# ifndef uintptr_t
+#  define uintptr_t unsigned long
+# endif
+#endif
+
+#if REPLACE_ICONV_UTF
+
+/* UTF-{16,32}{BE,LE} converters taken from GNU libiconv 1.11.  */
+
+/* Return code if invalid. (xxx_mbtowc) */
+# define RET_ILSEQ      -1
+/* Return code if no bytes were read. (xxx_mbtowc) */
+# define RET_TOOFEW     -2
+
+/* Return code if invalid. (xxx_wctomb) */
+# define RET_ILUNI      -1
+/* Return code if output buffer is too small. (xxx_wctomb, xxx_reset) */
+# define RET_TOOSMALL   -2
+
+/*
+ * UTF-16BE
+ */
+
+/* Specification: RFC 2781 */
+
+static int
+utf16be_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+  if (n >= 2)
+    {
+      ucs4_t wc = (s[0] << 8) + s[1];
+      if (wc >= 0xd800 && wc < 0xdc00)
+        {
+          if (n >= 4)
+            {
+              ucs4_t wc2 = (s[2] << 8) + s[3];
+              if (!(wc2 >= 0xdc00 && wc2 < 0xe000))
+                return RET_ILSEQ;
+              *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00);
+              return 4;
+            }
+        }
+      else if (wc >= 0xdc00 && wc < 0xe000)
+        {
+          return RET_ILSEQ;
+        }
+      else
+        {
+          *pwc = wc;
+          return 2;
+        }
+    }
+  return RET_TOOFEW;
+}
+
+static int
+utf16be_wctomb (unsigned char *r, ucs4_t wc, size_t n)
+{
+  if (!(wc >= 0xd800 && wc < 0xe000))
+    {
+      if (wc < 0x10000)
+        {
+          if (n >= 2)
+            {
+              r[0] = (unsigned char) (wc >> 8);
+              r[1] = (unsigned char) wc;
+              return 2;
+            }
+          else
+            return RET_TOOSMALL;
+        }
+      else if (wc < 0x110000)
+        {
+          if (n >= 4)
+            {
+              ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10);
+              ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff);
+              r[0] = (unsigned char) (wc1 >> 8);
+              r[1] = (unsigned char) wc1;
+              r[2] = (unsigned char) (wc2 >> 8);
+              r[3] = (unsigned char) wc2;
+              return 4;
+            }
+          else
+            return RET_TOOSMALL;
+        }
+    }
+  return RET_ILUNI;
+}
+
+/*
+ * UTF-16LE
+ */
+
+/* Specification: RFC 2781 */
+
+static int
+utf16le_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+  if (n >= 2)
+    {
+      ucs4_t wc = s[0] + (s[1] << 8);
+      if (wc >= 0xd800 && wc < 0xdc00)
+        {
+          if (n >= 4)
+            {
+              ucs4_t wc2 = s[2] + (s[3] << 8);
+              if (!(wc2 >= 0xdc00 && wc2 < 0xe000))
+                return RET_ILSEQ;
+              *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00);
+              return 4;
+            }
+        }
+      else if (wc >= 0xdc00 && wc < 0xe000)
+        {
+          return RET_ILSEQ;
+        }
+      else
+        {
+          *pwc = wc;
+          return 2;
+        }
+    }
+  return RET_TOOFEW;
+}
+
+static int
+utf16le_wctomb (unsigned char *r, ucs4_t wc, size_t n)
+{
+  if (!(wc >= 0xd800 && wc < 0xe000))
+    {
+      if (wc < 0x10000)
+        {
+          if (n >= 2)
+            {
+              r[0] = (unsigned char) wc;
+              r[1] = (unsigned char) (wc >> 8);
+              return 2;
+            }
+          else
+            return RET_TOOSMALL;
+        }
+      else if (wc < 0x110000)
+        {
+          if (n >= 4)
+            {
+              ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10);
+              ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff);
+              r[0] = (unsigned char) wc1;
+              r[1] = (unsigned char) (wc1 >> 8);
+              r[2] = (unsigned char) wc2;
+              r[3] = (unsigned char) (wc2 >> 8);
+              return 4;
+            }
+          else
+            return RET_TOOSMALL;
+        }
+    }
+  return RET_ILUNI;
+}
+
+/*
+ * UTF-32BE
+ */
+
+/* Specification: Unicode 3.1 Standard Annex #19 */
+
+static int
+utf32be_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+  if (n >= 4)
+    {
+      ucs4_t wc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3];
+      if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000))
+        {
+          *pwc = wc;
+          return 4;
+        }
+      else
+        return RET_ILSEQ;
+    }
+  return RET_TOOFEW;
+}
+
+static int
+utf32be_wctomb (unsigned char *r, ucs4_t wc, size_t n)
+{
+  if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000))
+    {
+      if (n >= 4)
+        {
+          r[0] = 0;
+          r[1] = (unsigned char) (wc >> 16);
+          r[2] = (unsigned char) (wc >> 8);
+          r[3] = (unsigned char) wc;
+          return 4;
+        }
+      else
+        return RET_TOOSMALL;
+    }
+  return RET_ILUNI;
+}
+
+/*
+ * UTF-32LE
+ */
+
+/* Specification: Unicode 3.1 Standard Annex #19 */
+
+static int
+utf32le_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n)
+{
+  if (n >= 4)
+    {
+      ucs4_t wc = s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24);
+      if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000))
+        {
+          *pwc = wc;
+          return 4;
+        }
+      else
+        return RET_ILSEQ;
+    }
+  return RET_TOOFEW;
+}
+
+static int
+utf32le_wctomb (unsigned char *r, ucs4_t wc, size_t n)
+{
+  if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000))
+    {
+      if (n >= 4)
+        {
+          r[0] = (unsigned char) wc;
+          r[1] = (unsigned char) (wc >> 8);
+          r[2] = (unsigned char) (wc >> 16);
+          r[3] = 0;
+          return 4;
+        }
+      else
+        return RET_TOOSMALL;
+    }
+  return RET_ILUNI;
+}
+
+#endif
+
+size_t
+rpl_iconv (iconv_t cd,
+           ICONV_CONST char **inbuf, size_t *inbytesleft,
+           char **outbuf, size_t *outbytesleft)
+#undef iconv
+{
+#if REPLACE_ICONV_UTF
+  switch ((uintptr_t) cd)
+    {
+      {
+        int (*xxx_wctomb) (unsigned char *, ucs4_t, size_t);
+
+        case (uintptr_t) _ICONV_UTF8_UTF16BE:
+          xxx_wctomb = utf16be_wctomb;
+          goto loop_from_utf8;
+        case (uintptr_t) _ICONV_UTF8_UTF16LE:
+          xxx_wctomb = utf16le_wctomb;
+          goto loop_from_utf8;
+        case (uintptr_t) _ICONV_UTF8_UTF32BE:
+          xxx_wctomb = utf32be_wctomb;
+          goto loop_from_utf8;
+        case (uintptr_t) _ICONV_UTF8_UTF32LE:
+          xxx_wctomb = utf32le_wctomb;
+          goto loop_from_utf8;
+
+       loop_from_utf8:
+        if (inbuf == NULL || *inbuf == NULL)
+          return 0;
+        {
+          ICONV_CONST char *inptr = *inbuf;
+          size_t inleft = *inbytesleft;
+          char *outptr = *outbuf;
+          size_t outleft = *outbytesleft;
+          size_t res = 0;
+          while (inleft > 0)
+            {
+              ucs4_t uc;
+              int m = u8_mbtoucr (&uc, (const uint8_t *) inptr, inleft);
+              if (m <= 0)
+                {
+                  if (m == -1)
+                    {
+                      errno = EILSEQ;
+                      res = (size_t)(-1);
+                      break;
+                    }
+                  if (m == -2)
+                    {
+                      errno = EINVAL;
+                      res = (size_t)(-1);
+                      break;
+                    }
+                  abort ();
+                }
+              else
+                {
+                  int n = xxx_wctomb ((uint8_t *) outptr, uc, outleft);
+                  if (n < 0)
+                    {
+                      if (n == RET_ILUNI)
+                        {
+                          errno = EILSEQ;
+                          res = (size_t)(-1);
+                          break;
+                        }
+                      if (n == RET_TOOSMALL)
+                        {
+                          errno = E2BIG;
+                          res = (size_t)(-1);
+                          break;
+                        }
+                      abort ();
+                    }
+                  else
+                    {
+                      inptr += m;
+                      inleft -= m;
+                      outptr += n;
+                      outleft -= n;
+                    }
+                }
+            }
+          *inbuf = inptr;
+          *inbytesleft = inleft;
+          *outbuf = outptr;
+          *outbytesleft = outleft;
+          return res;
+        }
+      }
+
+      {
+        int (*xxx_mbtowc) (ucs4_t *, const unsigned char *, size_t);
+
+        case (uintptr_t) _ICONV_UTF16BE_UTF8:
+          xxx_mbtowc = utf16be_mbtowc;
+          goto loop_to_utf8;
+        case (uintptr_t) _ICONV_UTF16LE_UTF8:
+          xxx_mbtowc = utf16le_mbtowc;
+          goto loop_to_utf8;
+        case (uintptr_t) _ICONV_UTF32BE_UTF8:
+          xxx_mbtowc = utf32be_mbtowc;
+          goto loop_to_utf8;
+        case (uintptr_t) _ICONV_UTF32LE_UTF8:
+          xxx_mbtowc = utf32le_mbtowc;
+          goto loop_to_utf8;
+
+       loop_to_utf8:
+        if (inbuf == NULL || *inbuf == NULL)
+          return 0;
+        {
+          ICONV_CONST char *inptr = *inbuf;
+          size_t inleft = *inbytesleft;
+          char *outptr = *outbuf;
+          size_t outleft = *outbytesleft;
+          size_t res = 0;
+          while (inleft > 0)
+            {
+              ucs4_t uc;
+              int m = xxx_mbtowc (&uc, (const uint8_t *) inptr, inleft);
+              if (m <= 0)
+                {
+                  if (m == RET_ILSEQ)
+                    {
+                      errno = EILSEQ;
+                      res = (size_t)(-1);
+                      break;
+                    }
+                  if (m == RET_TOOFEW)
+                    {
+                      errno = EINVAL;
+                      res = (size_t)(-1);
+                      break;
+                    }
+                  abort ();
+                }
+              else
+                {
+                  int n = u8_uctomb ((uint8_t *) outptr, uc, outleft);
+                  if (n < 0)
+                    {
+                      if (n == -1)
+                        {
+                          errno = EILSEQ;
+                          res = (size_t)(-1);
+                          break;
+                        }
+                      if (n == -2)
+                        {
+                          errno = E2BIG;
+                          res = (size_t)(-1);
+                          break;
+                        }
+                      abort ();
+                    }
+                  else
+                    {
+                      inptr += m;
+                      inleft -= m;
+                      outptr += n;
+                      outleft -= n;
+                    }
+                }
+            }
+          *inbuf = inptr;
+          *inbytesleft = inleft;
+          *outbuf = outptr;
+          *outbytesleft = outleft;
+          return res;
+        }
+      }
+    }
+#endif
+  return iconv (cd, inbuf, inbytesleft, outbuf, outbytesleft);
+}
index 5512c60..ed95ed7 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <iconv.h>.
 
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GL_ICONV_H
+#ifndef _@GUARD_PREFIX@_ICONV_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
 
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_ICONV_H@
 
-#ifndef _GL_ICONV_H
-#define _GL_ICONV_H
+#ifndef _@GUARD_PREFIX@_ICONV_H
+#define _@GUARD_PREFIX@_ICONV_H
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
 
-#if @REPLACE_ICONV_OPEN@
+#if @GNULIB_ICONV@
+# if @REPLACE_ICONV_OPEN@
 /* An iconv_open wrapper that supports the IANA standardized encoding names
    ("ISO-8859-1" etc.) as far as possible.  */
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define iconv_open rpl_iconv_open
-# endif
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define iconv_open rpl_iconv_open
+#  endif
 _GL_FUNCDECL_RPL (iconv_open, iconv_t,
                   (const char *tocode, const char *fromcode)
                   _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (iconv_open, iconv_t,
                   (const char *tocode, const char *fromcode));
-#else
+# else
 _GL_CXXALIAS_SYS (iconv_open, iconv_t,
                   (const char *tocode, const char *fromcode));
-#endif
+# endif
 _GL_CXXALIASWARN (iconv_open);
+#endif
 
 #if @REPLACE_ICONV_UTF@
 /* Special constants for supporting UTF-{16,32}{BE,LE} encodings.
@@ -65,10 +67,11 @@ _GL_CXXALIASWARN (iconv_open);
 # define _ICONV_UTF32LE_UTF8 (iconv_t)(-168)
 #endif
 
-#if @REPLACE_ICONV@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define iconv rpl_iconv
-# endif
+#if @GNULIB_ICONV@
+# if @REPLACE_ICONV@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define iconv rpl_iconv
+#  endif
 _GL_FUNCDECL_RPL (iconv, size_t,
                   (iconv_t cd,
                    @ICONV_CONST@ char **inbuf, size_t *inbytesleft,
@@ -77,25 +80,31 @@ _GL_CXXALIAS_RPL (iconv, size_t,
                   (iconv_t cd,
                    @ICONV_CONST@ char **inbuf, size_t *inbytesleft,
                    char **outbuf, size_t *outbytesleft));
-#else
+# else
 _GL_CXXALIAS_SYS (iconv, size_t,
                   (iconv_t cd,
                    @ICONV_CONST@ char **inbuf, size_t *inbytesleft,
                    char **outbuf, size_t *outbytesleft));
-#endif
+# endif
 _GL_CXXALIASWARN (iconv);
-
-#if @REPLACE_ICONV@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define iconv_close rpl_iconv_close
+# ifndef ICONV_CONST
+#  define ICONV_CONST @ICONV_CONST@
 # endif
+#endif
+
+#if @GNULIB_ICONV@
+# if @REPLACE_ICONV@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define iconv_close rpl_iconv_close
+#  endif
 _GL_FUNCDECL_RPL (iconv_close, int, (iconv_t cd));
 _GL_CXXALIAS_RPL (iconv_close, int, (iconv_t cd));
-#else
+# else
 _GL_CXXALIAS_SYS (iconv_close, int, (iconv_t cd));
-#endif
+# endif
 _GL_CXXALIASWARN (iconv_close);
+#endif
 
 
-#endif /* _GL_ICONV_H */
-#endif /* _GL_ICONV_H */
+#endif /* _@GUARD_PREFIX@_ICONV_H */
+#endif /* _@GUARD_PREFIX@_ICONV_H */
diff --git a/lib/iconv_close.c b/lib/iconv_close.c
new file mode 100644 (file)
index 0000000..6e28673
--- /dev/null
@@ -0,0 +1,46 @@
+/* Character set conversion.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <iconv.h>
+
+#include <stdint.h>
+#ifndef uintptr_t
+# define uintptr_t unsigned long
+#endif
+
+int
+rpl_iconv_close (iconv_t cd)
+#undef iconv_close
+{
+#if REPLACE_ICONV_UTF
+  switch ((uintptr_t) cd)
+    {
+    case (uintptr_t) _ICONV_UTF8_UTF16BE:
+    case (uintptr_t) _ICONV_UTF8_UTF16LE:
+    case (uintptr_t) _ICONV_UTF8_UTF32BE:
+    case (uintptr_t) _ICONV_UTF8_UTF32LE:
+    case (uintptr_t) _ICONV_UTF16BE_UTF8:
+    case (uintptr_t) _ICONV_UTF16LE_UTF8:
+    case (uintptr_t) _ICONV_UTF32BE_UTF8:
+    case (uintptr_t) _ICONV_UTF32LE_UTF8:
+      return 0;
+    }
+#endif
+  return iconv_close (cd);
+}
index 1d1c053..fc19d44 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -12,8 +12,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
@@ -57,7 +56,7 @@ rpl_iconv_open (const char *tocode, const char *fromcode)
      iconv() to these encoding inserts a BOM, which is wrong.
      We do not need to handle conversion between arbitrary encodings and
      UTF-{16,32}{BE,LE}, because the 'striconveh' module implements two-step
-     conversion throough UTF-8.
+     conversion through UTF-8.
      The _ICONV_* constants are chosen to be disjoint from any iconv_t
      returned by the system's iconv_open() functions.  Recall that iconv_t
      is a scalar type.  */
index da15126..43b23eb 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion handler type.
-   Copyright (C) 2001-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible.
 
    This program is free software: you can redistribute it and/or modify
index a59dea7..1557733 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -21,7 +21,7 @@
 /* Specification.  */
 #ifdef USE_LONG_DOUBLE
 /* Specification found in math.h or isnanl-nolibm.h.  */
-extern int rpl_isnanl (long double x);
+extern int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
 #elif ! defined USE_FLOAT
 /* Specification found in math.h or isnand-nolibm.h.  */
 extern int rpl_isnand (double x);
@@ -79,11 +79,22 @@ extern int rpl_isnanf (float x);
   ((sizeof (DOUBLE) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
 typedef union { DOUBLE value; unsigned int word[NWORDS]; } memory_double;
 
+/* Most hosts nowadays use IEEE floating point, so they use IEC 60559
+   representations, have infinities and NaNs, and do not trap on
+   exceptions.  Define IEEE_FLOATING_POINT if this host is one of the
+   typical ones.  The C11 macro __STDC_IEC_559__ is close to what is
+   wanted here, but is not quite right because this file does not require
+   all the features of C11 Annex F (and does not require C11 at all,
+   for that matter).  */
+
+#define IEEE_FLOATING_POINT (FLT_RADIX == 2 && FLT_MANT_DIG == 24 \
+                             && FLT_MIN_EXP == -125 && FLT_MAX_EXP == 128)
+
 int
 FUNC (DOUBLE x)
 {
-#ifdef KNOWN_EXPBIT0_LOCATION
-# if defined USE_LONG_DOUBLE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
+#if defined KNOWN_EXPBIT0_LOCATION && IEEE_FLOATING_POINT
+# if defined USE_LONG_DOUBLE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
   /* Special CPU dependent code is needed to treat bit patterns outside the
      IEEE 754 specification (such as Pseudo-NaNs, Pseudo-Infinities,
      Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals) as NaNs.
@@ -117,16 +128,20 @@ FUNC (DOUBLE x)
 # else
   /* Be careful to not do any floating-point operation on x, such as x == x,
      because x may be a signaling NaN.  */
-#  if defined __SUNPRO_C || defined __DECC || (defined __sgi && !defined __GNUC__)
-  /* The Sun C 5.0 compilers and the Compaq (ex-DEC) 6.4 compilers don't
-     recognize the initializers as constant expressions.  The latter compiler
-     also fails when constant-folding 0.0 / 0.0 even when constant-folding is
-     not required.  The SGI MIPSpro C compiler complains about "floating-point
-     operation result is out of range".  */
+#  if defined __SUNPRO_C || defined __ICC || defined _MSC_VER \
+      || defined __DECC || defined __TINYC__ \
+      || (defined __sgi && !defined __GNUC__)
+  /* The Sun C 5.0, Intel ICC 10.0, Microsoft Visual C/C++ 9.0, Compaq (ex-DEC)
+     6.4, and TinyCC compilers don't recognize the initializers as constant
+     expressions.  The Compaq compiler also fails when constant-folding
+     0.0 / 0.0 even when constant-folding is not required.  The Microsoft
+     Visual C/C++ compiler also fails when constant-folding 1.0 / 0.0 even
+     when constant-folding is not required. The SGI MIPSpro C compiler
+     complains about "floating-point operation result is out of range".  */
   static DOUBLE zero = L_(0.0);
   memory_double nan;
-  DOUBLE plus_inf = L_(1.0) / L_(0.0);
-  DOUBLE minus_inf = -L_(1.0) / L_(0.0);
+  DOUBLE plus_inf = L_(1.0) / zero;
+  DOUBLE minus_inf = -L_(1.0) / zero;
   nan.value = zero / zero;
 #  else
   static memory_double nan = { L_(0.0) / L_(0.0) };
@@ -149,11 +164,12 @@ FUNC (DOUBLE x)
   }
 # endif
 #else
-  /* The configuration did not find sufficient information.  Give up about
-     the signaling NaNs, handle only the quiet NaNs.  */
+  /* The configuration did not find sufficient information, or does
+     not use IEEE floating point.  Give up about the signaling NaNs;
+     handle only the quiet NaNs.  */
   if (x == x)
     {
-# if defined USE_LONG_DOUBLE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
+# if defined USE_LONG_DOUBLE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
       /* Detect any special bit patterns that pass ==; see comment above.  */
       memory_double m1;
       memory_double m2;
index cc1d476..b0498ef 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
index f7a1565..11efbf8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
index 5e29207..9e2aa2f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
 # elif defined isnan
 #  undef isnanf
 #  define isnanf(x) isnan ((float)(x))
+# else
+   /* Get declaration of isnanf(), if not declared in <math.h>.  */
+#  if defined __sgi
+   /* We can't include <ieeefp.h>, because it conflicts with our definition of
+      isnand.  Therefore declare isnanf separately.  */
+extern int isnanf (float x);
+#  endif
 # endif
 #else
 /* Test whether X is a NaN.  */
index a352fdb..c7a66ca 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
index e89a7fe..9cf090c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
index b45fef0..dbf9d5d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for NaN that does not need libm.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
diff --git a/lib/iswblank.c b/lib/iswblank.c
new file mode 100644 (file)
index 0000000..52a241a
--- /dev/null
@@ -0,0 +1,26 @@
+/* Test wide character for being blank.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <wctype.h>
+
+int
+iswblank (wint_t wc)
+{
+  return wc == ' ' || wc == '\t';
+}
diff --git a/lib/itold.c b/lib/itold.c
new file mode 100644 (file)
index 0000000..136742e
--- /dev/null
@@ -0,0 +1,28 @@
+/* Replacement for 'int' to 'long double' conversion routine.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <float.h>
+
+void
+_Qp_itoq (long double *result, int a)
+{
+  /* Convert from 'int' to 'double', then from 'double' to 'long double'.  */
+  *result = (double) a;
+}
index e86f978..5274632 100644 (file)
@@ -24,7 +24,7 @@ BEGIN
             VALUE "FileDescription", "LGPLed libunistring for Windows NT/2000/XP/Vista/7 and Windows 95/98/ME\0"
             VALUE "FileVersion", PACKAGE_VERSION_STRING "\0"
             VALUE "InternalName", "unistring.dll\0"
-            VALUE "LegalCopyright", "Copyright (C) 2001-2010\0"
+            VALUE "LegalCopyright", "Copyright (C) 2001-2011\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "unistring.dll\0"
             VALUE "ProductName", "libunistring: Unicode string library\0"
index b7e824f..98ad21c 100644 (file)
@@ -5,6 +5,7 @@ UC_CATEGORY_Cn
 UC_CATEGORY_Co
 UC_CATEGORY_Cs
 UC_CATEGORY_L
+UC_CATEGORY_LC
 UC_CATEGORY_Ll
 UC_CATEGORY_Lm
 UC_CATEGORY_Lo
@@ -54,6 +55,13 @@ UC_PROPERTY_BIDI_OTHER_NEUTRAL
 UC_PROPERTY_BIDI_PDF
 UC_PROPERTY_BIDI_SEGMENT_SEPARATOR
 UC_PROPERTY_BIDI_WHITESPACE
+UC_PROPERTY_CASED
+UC_PROPERTY_CASE_IGNORABLE
+UC_PROPERTY_CHANGES_WHEN_CASEFOLDED
+UC_PROPERTY_CHANGES_WHEN_CASEMAPPED
+UC_PROPERTY_CHANGES_WHEN_LOWERCASED
+UC_PROPERTY_CHANGES_WHEN_TITLECASED
+UC_PROPERTY_CHANGES_WHEN_UPPERCASED
 UC_PROPERTY_COMBINING
 UC_PROPERTY_COMPOSITE
 UC_PROPERTY_CURRENCY_SYMBOL
@@ -114,6 +122,7 @@ UC_PROPERTY_WHITE_SPACE
 UC_PROPERTY_XID_CONTINUE
 UC_PROPERTY_XID_START
 UC_PROPERTY_ZERO_WIDTH
+_UC_CATEGORY_NONE
 _libunistring_version
 locale_charset
 u16_asnprintf
@@ -139,6 +148,9 @@ u16_ct_tolower
 u16_ct_totitle
 u16_ct_toupper
 u16_endswith
+u16_grapheme_breaks
+u16_grapheme_next
+u16_grapheme_prev
 u16_is_cased
 u16_is_casefolded
 u16_is_lowercase
@@ -234,6 +246,9 @@ u32_ct_tolower
 u32_ct_totitle
 u32_ct_toupper
 u32_endswith
+u32_grapheme_breaks
+u32_grapheme_next
+u32_grapheme_prev
 u32_is_cased
 u32_is_casefolded
 u32_is_lowercase
@@ -326,6 +341,9 @@ u8_ct_tolower
 u8_ct_totitle
 u8_ct_toupper
 u8_endswith
+u8_grapheme_breaks
+u8_grapheme_next
+u8_grapheme_prev
 u8_is_cased
 u8_is_casefolded
 u8_is_lowercase
@@ -355,6 +373,7 @@ u8_stpncpy
 u8_strcat
 u8_strchr
 u8_strcmp
+u8_strcmp_gnu
 u8_strcoll
 u8_strconv_from_encoding
 u8_strconv_from_locale
@@ -403,10 +422,17 @@ uc_all_scripts
 uc_bidi_category
 uc_bidi_category_byname
 uc_bidi_category_name
+uc_bidi_class
+uc_bidi_class_byname
+uc_bidi_class_long_name
+uc_bidi_class_name
 uc_block
 uc_c_ident_category
 uc_canonical_decomposition
 uc_combining_class
+uc_combining_class_byname
+uc_combining_class_long_name
+uc_combining_class_name
 uc_composition
 uc_decimal_value
 uc_decomposition
@@ -415,11 +441,14 @@ uc_general_category
 uc_general_category_and
 uc_general_category_and_not
 uc_general_category_byname
+uc_general_category_long_name
 uc_general_category_name
 uc_general_category_or
+uc_graphemeclusterbreak_property
 uc_is_alnum
 uc_is_alpha
 uc_is_bidi_category
+uc_is_bidi_class
 uc_is_blank
 uc_is_block
 uc_is_c_whitespace
@@ -428,6 +457,7 @@ uc_is_digit
 uc_is_general_category
 uc_is_general_category_withtable
 uc_is_graph
+uc_is_grapheme_break
 uc_is_java_whitespace
 uc_is_lower
 uc_is_print
@@ -451,6 +481,13 @@ uc_is_property_bidi_other_neutral
 uc_is_property_bidi_pdf
 uc_is_property_bidi_segment_separator
 uc_is_property_bidi_whitespace
+uc_is_property_case_ignorable
+uc_is_property_cased
+uc_is_property_changes_when_casefolded
+uc_is_property_changes_when_casemapped
+uc_is_property_changes_when_lowercased
+uc_is_property_changes_when_titlecased
+uc_is_property_changes_when_uppercased
 uc_is_property_combining
 uc_is_property_composite
 uc_is_property_currency_symbol
@@ -517,6 +554,13 @@ uc_is_space
 uc_is_upper
 uc_is_xdigit
 uc_java_ident_category
+uc_joining_group
+uc_joining_group_byname
+uc_joining_group_name
+uc_joining_type
+uc_joining_type_byname
+uc_joining_type_long_name
+uc_joining_type_name
 uc_locale_language
 uc_mirror_char
 uc_numeric_value
@@ -534,6 +578,7 @@ ulc_casecmp
 ulc_casecoll
 ulc_casexfrm
 ulc_fprintf
+ulc_grapheme_breaks
 ulc_possible_linebreaks
 ulc_snprintf
 ulc_sprintf
index 29de23d..1f51adc 100644 (file)
@@ -1,6 +1,6 @@
 /* Determine a canonical name for the current locale's character encoding.
 
-   Copyright (C) 2000-2006, 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2000-2006, 2008-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Bruno Haible <bruno@clisp.org>.  */
 
 #include <stdlib.h>
 
 #if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET
-# define DARWIN7 /* Darwin 7 or newer, i.e. MacOS X 10.3 or newer */
+# define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */
 #endif
 
 #if defined _WIN32 || defined __WIN32__
-# define WIN32_NATIVE
+# define WINDOWS_NATIVE
+# include <locale.h>
 #endif
 
 #if defined __EMX__
@@ -44,7 +44,7 @@
 # endif
 #endif
 
-#if !defined WIN32_NATIVE
+#if !defined WINDOWS_NATIVE
 # include <unistd.h>
 # if HAVE_LANGINFO_CODESET
 #  include <langinfo.h>
@@ -57,7 +57,7 @@
 #  define WIN32_LEAN_AND_MEAN
 #  include <windows.h>
 # endif
-#elif defined WIN32_NATIVE
+#elif defined WINDOWS_NATIVE
 # define WIN32_LEAN_AND_MEAN
 # include <windows.h>
 #endif
 # include <os2.h>
 #endif
 
+/* For MB_CUR_MAX_L */
+#if defined DARWIN7
+# include <xlocale.h>
+#endif
+
 #if ENABLE_RELOCATABLE
 # include "relocatable.h"
 #else
@@ -83,7 +88,7 @@
 #endif
 
 #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
-  /* Win32, Cygwin, OS/2, DOS */
+  /* Native Windows, Cygwin, OS/2, DOS */
 # define ISSLASH(C) ((C) == '/' || (C) == '\\')
 #endif
 
@@ -123,7 +128,7 @@ get_charset_aliases (void)
   cp = charset_aliases;
   if (cp == NULL)
     {
-#if !(defined DARWIN7 || defined VMS || defined WIN32_NATIVE || defined __CYGWIN__)
+#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__)
       const char *dir;
       const char *base = "charset.alias";
       char *file_name;
@@ -228,8 +233,7 @@ get_charset_aliases (void)
                         {
                           /* Out of memory. */
                           res_size = 0;
-                          if (old_res_ptr != NULL)
-                            free (old_res_ptr);
+                          free (old_res_ptr);
                           break;
                         }
                       strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
@@ -309,7 +313,7 @@ get_charset_aliases (void)
            "DECKOREAN" "\0" "EUC-KR" "\0";
 # endif
 
-# if defined WIN32_NATIVE || defined __CYGWIN__
+# if defined WINDOWS_NATIVE || defined __CYGWIN__
       /* To avoid the troubles of installing a separate file in the same
          directory as the DLL and of retrieving the DLL's directory at
          runtime, simply inline the aliases here.  */
@@ -361,7 +365,7 @@ locale_charset (void)
   const char *codeset;
   const char *aliases;
 
-#if !(defined WIN32_NATIVE || defined OS2)
+#if !(defined WINDOWS_NATIVE || defined OS2)
 
 # if HAVE_LANGINFO_CODESET
 
@@ -369,10 +373,9 @@ locale_charset (void)
   codeset = nl_langinfo (CODESET);
 
 #  ifdef __CYGWIN__
-  /* Cygwin 1.5.x does not have locales.  nl_langinfo (CODESET) always
-     returns "US-ASCII".  As long as this is not fixed, return the suffix
-     of the locale name from the environment variables (if present) or
-     the codepage as a number.  */
+  /* Cygwin < 1.7 does not have locales.  nl_langinfo (CODESET) always
+     returns "US-ASCII".  Return the suffix of the locale name from the
+     environment variables (if present) or the codepage as a number.  */
   if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
     {
       const char *locale;
@@ -409,10 +412,10 @@ locale_charset (void)
             }
         }
 
-      /* Woe32 has a function returning the locale's codepage as a number:
-         GetACP().  This encoding is used by Cygwin, unless the user has set
-         the environment variable CYGWIN=codepage:oem (which very few people
-         do).
+      /* The Windows API has a function returning the locale's codepage as a
+         number: GetACP().  This encoding is used by Cygwin, unless the user
+         has set the environment variable CYGWIN=codepage:oem (which very few
+         people do).
          Output directed to console windows needs to be converted (to
          GetOEMCP() if the console is using a raster font, or to
          GetConsoleOutputCP() if it is using a TrueType font).  Cygwin does
@@ -455,18 +458,38 @@ locale_charset (void)
 
 # endif
 
-#elif defined WIN32_NATIVE
+#elif defined WINDOWS_NATIVE
 
   static char buf[2 + 10 + 1];
 
-  /* Woe32 has a function returning the locale's codepage as a number:
-     GetACP().
-     When the output goes to a console window, it needs to be provided in
-     GetOEMCP() encoding if the console is using a raster font, or in
-     GetConsoleOutputCP() encoding if it is using a TrueType font.
-     But in GUI programs and for output sent to files and pipes, GetACP()
-     encoding is the best bet.  */
-  sprintf (buf, "CP%u", GetACP ());
+  /* The Windows API has a function returning the locale's codepage as
+     a number, but the value doesn't change according to what the
+     'setlocale' call specified.  So we use it as a last resort, in
+     case the string returned by 'setlocale' doesn't specify the
+     codepage.  */
+  char *current_locale = setlocale (LC_ALL, NULL);
+  char *pdot;
+
+  /* If they set different locales for different categories,
+     'setlocale' will return a semi-colon separated list of locale
+     values.  To make sure we use the correct one, we choose LC_CTYPE.  */
+  if (strchr (current_locale, ';'))
+    current_locale = setlocale (LC_CTYPE, NULL);
+
+  pdot = strrchr (current_locale, '.');
+  if (pdot)
+    sprintf (buf, "CP%s", pdot + 1);
+  else
+    {
+      /* The Windows API has a function returning the locale's codepage as a
+        number: GetACP().
+        When the output goes to a console window, it needs to be provided in
+        GetOEMCP() encoding if the console is using a raster font, or in
+        GetConsoleOutputCP() encoding if it is using a TrueType font.
+        But in GUI programs and for output sent to files and pipes, GetACP()
+        encoding is the best bet.  */
+      sprintf (buf, "CP%u", GetACP ());
+    }
   codeset = buf;
 
 #elif defined OS2
@@ -545,5 +568,12 @@ locale_charset (void)
   if (codeset[0] == '\0')
     codeset = "ASCII";
 
+#ifdef DARWIN7
+  /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8"
+     (the default codeset) does not work when MB_CUR_MAX is 1.  */
+  if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX_L (uselocale (NULL)) <= 1)
+    codeset = "ASCII";
+#endif
+
   return codeset;
 }
index c18f492..bca028f 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine a canonical name for the current locale's character encoding.
-   Copyright (C) 2000-2003, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003, 2009-2014 Free Software Foundation, Inc.
    This file is part of the GNU CHARSET Library.
 
    This program is free software; you can redistribute it and/or modify
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _LOCALCHARSET_H
 #define _LOCALCHARSET_H
index ea646c5..78dc344 100644 (file)
@@ -1,24 +1,22 @@
 /* Determine name of the currently selected locale.
-   Copyright (C) 1995-2010 Free Software Foundation, Inc.
+   Copyright (C) 1995-2014 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU Library General Public License as published
-   by the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
-   License along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Ulrich Drepper <drepper@gnu.org>, 1995.  */
-/* Win32 code written by Tor Lillqvist <tml@iki.fi>.  */
-/* MacOS X code written by Bruno Haible <bruno@clisp.org>.  */
+/* Native Windows code written by Tor Lillqvist <tml@iki.fi>.  */
+/* Mac OS X code written by Bruno Haible <bruno@clisp.org>.  */
 
 #include <config.h>
 
@@ -36,7 +34,7 @@
 #include <string.h>
 
 #if HAVE_USELOCALE
-/* MacOS X 10.5 defines the locale_t type in <xlocale.h>.  */
+/* Mac OS X 10.5 defines the locale_t type in <xlocale.h>.  */
 # if defined __APPLE__ && defined __MACH__
 #  include <xlocale.h>
 # endif
 #endif
 
 #if defined _WIN32 || defined __WIN32__
-# define WIN32_NATIVE
+# define WINDOWS_NATIVE
+# if !defined IN_LIBINTL
+#  include "glthread/lock.h"
+# endif
 #endif
 
-#if defined WIN32_NATIVE || defined __CYGWIN__ /* WIN32 or Cygwin */
+#if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
 # define WIN32_LEAN_AND_MEAN
 # include <windows.h>
+# include <winnls.h>
 /* List of language codes, sorted by value:
    0x01 LANG_ARABIC
    0x02 LANG_BULGARIAN
 # ifndef LOCALE_SNAME
 # define LOCALE_SNAME 0x5c
 # endif
+# ifndef LOCALE_NAME_MAX_LENGTH
+# define LOCALE_NAME_MAX_LENGTH 85
+# endif
 #endif
 
 
 #if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
-/* MacOS X 10.2 or newer */
+/* Mac OS X 10.2 or newer */
 
-/* Canonicalize a MacOS X locale name to a Unix locale name.
+/* Canonicalize a Mac OS X locale name to a Unix locale name.
    NAME is a sufficiently large buffer.
-   On input, it contains the MacOS X locale name.
+   On input, it contains the Mac OS X locale name.
    On output, it contains the Unix locale name.  */
 # if !defined IN_LIBINTL
 static
@@ -1147,9 +1152,9 @@ gl_locale_name_canonicalize (char *name)
      http://lists.apple.com/archives/carbon-dev/2005/Mar/msg00293.html */
 
   /* Convert legacy (NeXTstep inherited) English names to Unix (ISO 639 and
-     ISO 3166) names.  Prior to MacOS X 10.3, there is no API for doing this.
+     ISO 3166) names.  Prior to Mac OS X 10.3, there is no API for doing this.
      Therefore we do it ourselves, using a table based on the results of the
-     MacOS X 10.3.8 function
+     Mac OS X 10.3.8 function
      CFLocaleCreateCanonicalLocaleIdentifierFromString().  */
   typedef struct { const char legacy[21+1]; const char unixy[5+1]; }
           legacy_entry;
@@ -1292,26 +1297,26 @@ gl_locale_name_canonicalize (char *name)
   typedef struct { const char langtag[7+1]; const char unixy[12+1]; }
           langtag_entry;
   static const langtag_entry langtag_table[] = {
-    /* MacOS X has "az-Arab", "az-Cyrl", "az-Latn".
+    /* Mac OS X has "az-Arab", "az-Cyrl", "az-Latn".
        The default script for az on Unix is Latin.  */
     { "az-Latn", "az" },
-    /* MacOS X has "ga-dots".  Does not yet exist on Unix.  */
+    /* Mac OS X has "ga-dots".  Does not yet exist on Unix.  */
     { "ga-dots", "ga" },
-    /* MacOS X has "kk-Cyrl".  Does not yet exist on Unix.  */
-    /* MacOS X has "mn-Cyrl", "mn-Mong".
+    /* Mac OS X has "kk-Cyrl".  Does not yet exist on Unix.  */
+    /* Mac OS X has "mn-Cyrl", "mn-Mong".
        The default script for mn on Unix is Cyrillic.  */
     { "mn-Cyrl", "mn" },
-    /* MacOS X has "ms-Arab", "ms-Latn".
+    /* Mac OS X has "ms-Arab", "ms-Latn".
        The default script for ms on Unix is Latin.  */
     { "ms-Latn", "ms" },
-    /* MacOS X has "tg-Cyrl".
+    /* Mac OS X has "tg-Cyrl".
        The default script for tg on Unix is Cyrillic.  */
     { "tg-Cyrl", "tg" },
-    /* MacOS X has "tk-Cyrl".  Does not yet exist on Unix.  */
-    /* MacOS X has "tt-Cyrl".
+    /* Mac OS X has "tk-Cyrl".  Does not yet exist on Unix.  */
+    /* Mac OS X has "tt-Cyrl".
        The default script for tt on Unix is Cyrillic.  */
     { "tt-Cyrl", "tt" },
-    /* MacOS X has "zh-Hans", "zh-Hant".
+    /* Mac OS X has "zh-Hans", "zh-Hant".
        Country codes are used to distinguish these on Unix.  */
     { "zh-Hans", "zh_CN" },
     { "zh-Hant", "zh_TW" }
@@ -1407,11 +1412,11 @@ gl_locale_name_canonicalize (char *name)
 #endif
 
 
-#if defined WIN32_NATIVE || defined __CYGWIN__ /* WIN32 or Cygwin */
+#if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
 
-/* Canonicalize a Win32 native locale name to a Unix locale name.
+/* Canonicalize a Windows native locale name to a Unix locale name.
    NAME is a sufficiently large buffer.
-   On input, it contains the Win32 locale name.
+   On input, it contains the Windows locale name.
    On output, it contains the Unix locale name.  */
 # if !defined IN_LIBINTL
 static
@@ -1467,9 +1472,9 @@ gl_locale_name_from_win32_LANGID (LANGID langid)
     }
   /* Internet Explorer has an LCID to RFC3066 name mapping stored in
      HKEY_CLASSES_ROOT\Mime\Database\Rfc1766.  But we better don't use that
-     since IE's i18n subsystem is known to be inconsistent with the Win32 base
-     (e.g. they have different character conversion facilities that produce
-     different results).  */
+     since IE's i18n subsystem is known to be inconsistent with the native
+     Windows base (e.g. they have different character conversion facilities
+     that produce different results).  */
   /* Use our own table.  */
   {
     int primary, sub;
@@ -2504,10 +2509,82 @@ gl_locale_name_from_win32_LCID (LCID lcid)
   return gl_locale_name_from_win32_LANGID (langid);
 }
 
+# ifdef WINDOWS_NATIVE
+
+/* Two variables to interface between get_lcid and the EnumLocales
+   callback function below.  */
+static LCID found_lcid;
+static char lname[LC_MAX * (LOCALE_NAME_MAX_LENGTH + 1) + 1];
+
+/* Callback function for EnumLocales.  */
+static BOOL CALLBACK
+enum_locales_fn (LPTSTR locale_num_str)
+{
+  char *endp;
+  char locval[2 * LOCALE_NAME_MAX_LENGTH + 1 + 1];
+  LCID try_lcid = strtoul (locale_num_str, &endp, 16);
+
+  if (GetLocaleInfo (try_lcid, LOCALE_SENGLANGUAGE,
+                    locval, LOCALE_NAME_MAX_LENGTH))
+    {
+      strcat (locval, "_");
+      if (GetLocaleInfo (try_lcid, LOCALE_SENGCOUNTRY,
+                        locval + strlen (locval), LOCALE_NAME_MAX_LENGTH))
+       {
+         size_t locval_len = strlen (locval);
+
+         if (strncmp (locval, lname, locval_len) == 0
+             && (lname[locval_len] == '.'
+                 || lname[locval_len] == '\0'))
+           {
+             found_lcid = try_lcid;
+             return FALSE;
+           }
+       }
+    }
+  return TRUE;
+}
+
+/* This lock protects the get_lcid against multiple simultaneous calls.  */
+gl_lock_define_initialized(static, get_lcid_lock)
+
+/* Return the Locale ID (LCID) number given the locale's name, a
+   string, in LOCALE_NAME.  This works by enumerating all the locales
+   supported by the system, until we find one whose name matches
+   LOCALE_NAME.  */
+static LCID
+get_lcid (const char *locale_name)
+{
+  /* A simple cache.  */
+  static LCID last_lcid;
+  static char last_locale[1000];
+
+  /* Lock while looking for an LCID, to protect access to static
+     variables: last_lcid, last_locale, found_lcid, and lname.  */
+  gl_lock_lock (get_lcid_lock);
+  if (last_lcid > 0 && strcmp (locale_name, last_locale) == 0)
+    {
+      gl_lock_unlock (get_lcid_lock);
+      return last_lcid;
+    }
+  strncpy (lname, locale_name, sizeof (lname) - 1);
+  lname[sizeof (lname) - 1] = '\0';
+  found_lcid = 0;
+  EnumSystemLocales (enum_locales_fn, LCID_SUPPORTED);
+  if (found_lcid > 0)
+    {
+      last_lcid = found_lcid;
+      strcpy (last_locale, locale_name);
+    }
+  gl_lock_unlock (get_lcid_lock);
+  return found_lcid;
+}
+
+# endif
 #endif
 
 
-#if HAVE_USELOCALE /* glibc or MacOS X */
+#if HAVE_USELOCALE /* glibc or Mac OS X */
 
 /* Simple hash set of strings.  We don't want to drag in lots of hash table
    code here.  */
@@ -2517,7 +2594,7 @@ gl_locale_name_from_win32_LCID (LCID lcid)
 /* A hash function for NUL-terminated char* strings using
    the method described by Bruno Haible.
    See http://www.haible.de/bruno/hashfunc.html.  */
-static size_t
+static size_t _GL_ATTRIBUTE_PURE
 string_hash (const void *x)
 {
   const char *s = (const char *) x;
@@ -2607,7 +2684,7 @@ gl_locale_name_thread_unsafe (int category, const char *categoryname)
     locale_t thread_locale = uselocale (NULL);
     if (thread_locale != LC_GLOBAL_LOCALE)
       {
-#  if __GLIBC__ >= 2
+#  if __GLIBC__ >= 2 && !defined __UCLIBC__
         /* Work around an incorrect definition of the _NL_LOCALE_NAME macro in
            glibc < 2.12.
            See <http://sourceware.org/bugzilla/show_bug.cgi?id=10968>.  */
@@ -2618,133 +2695,34 @@ gl_locale_name_thread_unsafe (int category, const char *categoryname)
              nl_langinfo (_NL_LOCALE_NAME (category)).  */
           name = thread_locale->__names[category];
         return name;
-#  endif
-#  if defined __APPLE__ && defined __MACH__ /* MacOS X */
-        /* The locale name is found deep in an undocumented data structure.
-           Since it's stored in a buffer of size 32 and newlocale() rejects
-           locale names of length > 31, we can assume that it is NUL terminated
-           in this buffer. But we need to make a copy of the locale name, of
-           indefinite extent.  */
-        struct _xlocale_part1_v0 /* used in MacOS X 10.5 */
-          {
-            int32_t __refcount;
-            void (*__free_extra)(void *);
-            __darwin_mbstate_t __mbs[10];
-            int64_t __magic;
-          };
-        struct _xlocale_part1_v1 /* used in MacOS X >= 10.6.0 */
-          {
-            int32_t __refcount;
-            void (*__free_extra)(void *);
-            __darwin_mbstate_t __mbs[10];
-            /*pthread_lock_t*/ int __lock;
-            int64_t __magic;
-          };
-        struct _xlocale_part2
-          {
-            int64_t __magic;
-            unsigned char __collate_load_error;
-            unsigned char __collate_substitute_nontrivial;
-            unsigned char _messages_using_locale;
-            unsigned char _monetary_using_locale;
-            unsigned char _numeric_using_locale;
-            unsigned char _time_using_locale;
-            unsigned char __mlocale_changed;
-            unsigned char __nlocale_changed;
-            unsigned char __numeric_fp_cvt;
-            struct __xlocale_st_collate *__lc_collate;
-            struct __xlocale_st_runelocale *__lc_ctype;
-            struct __xlocale_st_messages *__lc_messages;
-            struct __xlocale_st_monetary *__lc_monetary;
-            struct __xlocale_st_numeric *__lc_numeric;
-            struct _xlocale *__lc_numeric_loc;
-            struct __xlocale_st_time *__lc_time;
-            /* more */
-          };
-        struct __xlocale_st_collate
-          {
-            int32_t __refcount;
-            void (*__free_extra)(void *);
-            char __encoding[32];
-            /* more */
-          };
-        struct __xlocale_st_runelocale
-          {
-            int32_t __refcount;
-            void (*__free_extra)(void *);
-            char __ctype_encoding[32];
-            /* more */
-          };
-        struct __xlocale_st_messages
-          {
-            int32_t __refcount;
-            void (*__free_extra)(void *);
-            char *_messages_locale_buf;
-            /* more */
-          };
-        struct __xlocale_st_monetary
-          {
-            int32_t __refcount;
-            void (*__free_extra)(void *);
-            char *_monetary_locale_buf;
-            /* more */
-          };
-        struct __xlocale_st_numeric {
-            int32_t __refcount;
-            void (*__free_extra)(void *);
-            char *_numeric_locale_buf;
-            /* more */
-          };
-        struct __xlocale_st_time {
-            int32_t __refcount;
-            void (*__free_extra)(void *);
-            char *_time_locale_buf;
-            /* more */
-          };
-        struct _xlocale_part2 *tlp;
-        if (((struct _xlocale_part1_v0 *) thread_locale)->__magic
-            == 0x786C6F63616C6530LL)
-          /* MacOS X 10.5 */
-          tlp =
-            (struct _xlocale_part2 *)
-            &((struct _xlocale_part1_v0 *) thread_locale)->__magic;
-        else if (((struct _xlocale_part1_v1 *) thread_locale)->__magic
-                 == 0x786C6F63616C6530LL)
-          /* MacOS X >= 10.6.0 */
-          tlp =
-            (struct _xlocale_part2 *)
-            &((struct _xlocale_part1_v1 *) thread_locale)->__magic;
-        else
-          /* Unsupported version of MacOS X: The internals of 'struct _xlocale'
-             have changed again.  */
-          return "";
+#  elif defined __FreeBSD__ || (defined __APPLE__ && defined __MACH__)
+        /* FreeBSD, Mac OS X */
+        int mask;
+
         switch (category)
           {
           case LC_CTYPE:
-            return tlp->__lc_ctype->__ctype_encoding;
+            mask = LC_CTYPE_MASK;
+            break;
           case LC_NUMERIC:
-            return tlp->_numeric_using_locale
-                   ? tlp->__lc_numeric->_numeric_locale_buf
-                   : "C";
+            mask = LC_NUMERIC_MASK;
+            break;
           case LC_TIME:
-            return tlp->_time_using_locale
-                   ? tlp->__lc_time->_time_locale_buf
-                   : "C";
+            mask = LC_TIME_MASK;
+            break;
           case LC_COLLATE:
-            return !tlp->__collate_load_error
-                   ? tlp->__lc_collate->__encoding
-                   : "C";
+            mask = LC_COLLATE_MASK;
+            break;
           case LC_MONETARY:
-            return tlp->_monetary_using_locale
-                   ? tlp->__lc_monetary->_monetary_locale_buf
-                   : "C";
+            mask = LC_MONETARY_MASK;
+            break;
           case LC_MESSAGES:
-            return tlp->_messages_using_locale
-                   ? tlp->__lc_messages->_messages_locale_buf
-                   : "C";
+            mask = LC_MESSAGES_MASK;
+            break;
           default: /* We shouldn't get here.  */
             return "";
           }
+        return querylocale (mask, thread_locale);
 #  endif
       }
   }
@@ -2761,6 +2739,27 @@ gl_locale_name_thread (int category, const char *categoryname)
   const char *name = gl_locale_name_thread_unsafe (category, categoryname);
   if (name != NULL)
     return struniq (name);
+#elif defined WINDOWS_NATIVE
+  if (LC_MIN <= category && category <= LC_MAX)
+    {
+      char *locname = setlocale (category, NULL);
+      LCID lcid = 0;
+
+      /* If CATEGORY is LC_ALL, the result might be a semi-colon
+        separated list of locales.  We need only one, so we take the
+        one corresponding to LC_CTYPE, as the most important for
+        character translations.  */
+      if (strchr (locname, ';'))
+       locname = setlocale (LC_CTYPE, NULL);
+
+      /* Convert locale name to LCID.  We don't want to use
+         LocaleNameToLCID because (a) it is only available since Vista,
+         and (b) it doesn't accept locale names returned by 'setlocale'.  */
+      lcid = get_lcid (locname);
+
+      if (lcid > 0)
+        return gl_locale_name_from_win32_LCID (lcid);
+    }
 #endif
   return NULL;
 }
@@ -2771,7 +2770,7 @@ gl_locale_name_thread (int category, const char *categoryname)
    However it does not specify the exact format.  Neither do SUSV2 and
    ISO C 99.  So we can use this feature only on selected systems (e.g.
    those using GNU C Library).  */
-#if defined _LIBC || (defined __GLIBC__ && __GLIBC__ >= 2)
+#if defined _LIBC || ((defined __GLIBC__ && __GLIBC__ >= 2) && !defined __UCLIBC__)
 # define HAVE_LOCALE_NULL
 #endif
 
@@ -2786,8 +2785,8 @@ gl_locale_name_posix (int category, const char *categoryname)
   /* On other systems we ignore what setlocale reports and instead look at the
      environment variables directly.  This is necessary
        1. on systems which have a facility for customizing the default locale
-          (MacOS X, native Windows, Cygwin) and where the system's setlocale()
-          function ignores this default locale (MacOS X, Cygwin), in two cases:
+          (Mac OS X, native Windows, Cygwin) and where the system's setlocale()
+          function ignores this default locale (Mac OS X, Cygwin), in two cases:
           a. when the user missed to use the setlocale() override from libintl
              (for example by not including <libintl.h>),
           b. when setlocale supports only the "C" locale, such as on Cygwin
@@ -2822,7 +2821,7 @@ gl_locale_name_environ (int category, const char *categoryname)
   if (retval != NULL && retval[0] != '\0')
     {
 #if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
-      /* MacOS X 10.2 or newer.
+      /* Mac OS X 10.2 or newer.
          Ignore invalid LANG value set by the Terminal application.  */
       if (strcmp (retval, "UTF-8") != 0)
 #endif
@@ -2849,10 +2848,10 @@ gl_locale_name_default (void)
       locale, customizing it for each location.  POSIX:2001 does not require
       such a facility.
 
-     The systems with such a facility are MacOS X and Windows: They provide a
+     The systems with such a facility are Mac OS X and Windows: They provide a
      GUI that allows the user to choose a locale.
-       - On MacOS X, by default, none of LC_* or LANG are set.  Starting with
-         MacOS X 10.4 or 10.5, LANG is set for processes launched by the
+       - On Mac OS X, by default, none of LC_* or LANG are set.  Starting with
+         Mac OS X 10.4 or 10.5, LANG is set for processes launched by the
          'Terminal' application (but sometimes to an incorrect value "UTF-8").
          When no environment variable is set, setlocale (LC_ALL, "") uses the
          "C" locale.
@@ -2868,7 +2867,7 @@ gl_locale_name_default (void)
          "C.UTF-8" locale, which operates in the same way as the "C" locale.
   */
 
-#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined WIN32_NATIVE || defined __CYGWIN__)
+#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined WINDOWS_NATIVE || defined __CYGWIN__)
 
   /* The system does not have a way of setting the locale, other than the
      POSIX specified environment variables.  We use C as default locale.  */
@@ -2882,7 +2881,7 @@ gl_locale_name_default (void)
      codeset.  */
 
 # if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
-  /* MacOS X 10.2 or newer */
+  /* Mac OS X 10.2 or newer */
   {
     /* Cache the locale name, since CoreFoundation calls are expensive.  */
     static const char *cached_localename;
@@ -2890,7 +2889,7 @@ gl_locale_name_default (void)
     if (cached_localename == NULL)
       {
         char namebuf[256];
-#  if HAVE_CFLOCALECOPYCURRENT /* MacOS X 10.3 or newer */
+#  if HAVE_CFLOCALECOPYCURRENT /* Mac OS X 10.3 or newer */
         CFLocaleRef locale = CFLocaleCopyCurrent ();
         CFStringRef name = CFLocaleGetIdentifier (locale);
 
@@ -2901,7 +2900,7 @@ gl_locale_name_default (void)
             cached_localename = strdup (namebuf);
           }
         CFRelease (locale);
-#  elif HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.2 or newer */
+#  elif HAVE_CFPREFERENCESCOPYAPPVALUE /* Mac OS X 10.2 or newer */
         CFTypeRef value =
           CFPreferencesCopyAppValue (CFSTR ("AppleLocale"),
                                      kCFPreferencesCurrentApplication);
@@ -2923,11 +2922,11 @@ gl_locale_name_default (void)
 
 # endif
 
-# if defined WIN32_NATIVE || defined __CYGWIN__ /* WIN32 or Cygwin */
+# if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */
   {
     LCID lcid;
 
-    /* Use native Win32 API locale ID.  */
+    /* Use native Windows API locale ID.  */
     lcid = GetThreadLocale ();
 
     return gl_locale_name_from_win32_LCID (lcid);
index bb7caee..687f1dd 100644 (file)
@@ -1,20 +1,18 @@
 /* Determine name of the currently selected locale.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU Library General Public License as published
-   by the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
-   License along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _GL_LOCALENAME_H
 #define _GL_LOCALENAME_H
@@ -87,8 +85,12 @@ extern const char * gl_locale_name_environ (int category, const char *categoryna
       not require such a facility."
 
    The result must not be freed; it is statically allocated.  */
-extern const char * gl_locale_name_default (void);
-
+extern const char * gl_locale_name_default (void)
+#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE \
+      || defined _WIN32 || defined __WIN32__ || defined __CYGWIN__)
+  _GL_ATTRIBUTE_CONST
+#endif
+  ;
 
 #ifdef __cplusplus
 }
index 614320c..c6e292a 100644 (file)
@@ -1,6 +1,6 @@
 /* malloc() function that is glibc compatible.
 
-   Copyright (C) 1997-1998, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1997-1998, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* written by Jim Meyering and Bruno Haible */
 
+#define _GL_USE_STDLIB_ALLOC 1
 #include <config.h>
 /* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h.  */
 #ifdef malloc
-# define NEED_MALLOC_GNU
+# define NEED_MALLOC_GNU 1
 # undef malloc
+/* Whereas the gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU.  */
+#elif GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU
+# define NEED_MALLOC_GNU 1
 #endif
 
-/* Specification.  */
 #include <stdlib.h>
 
 #include <errno.h>
 
-/* Call the system's malloc below.  */
-#undef malloc
-
 /* Allocate an N-byte block of memory from the heap.
    If N is zero, allocate a 1-byte block.  */
 
@@ -41,7 +40,7 @@ rpl_malloc (size_t n)
 {
   void *result;
 
-#ifdef NEED_MALLOC_GNU
+#if NEED_MALLOC_GNU
   if (n == 0)
     n = 1;
 #endif
index 39baa5e..3e95f23 100644 (file)
@@ -1,5 +1,5 @@
 /* Safe automatic memory allocation.
-   Copyright (C) 2003, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software; you can redistribute it and/or modify
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
+#define _GL_USE_STDLIB_ALLOC 1
 #include <config.h>
 
 /* Specification.  */
 #include "malloca.h"
 
+#include <stdint.h>
+
+#include "verify.h"
+
 /* The speed critical point in this file is freea() applied to an alloca()
    result: it must be fast, to match the speed of alloca().  The speed of
    mmalloca() and freea() in the other case are not critical, because they
 #define MAGIC_SIZE sizeof (int)
 /* This is how the header info would look like without any alignment
    considerations.  */
-struct preliminary_header { void *next; char room[MAGIC_SIZE]; };
+struct preliminary_header { void *next; int magic; };
 /* But the header's size must be a multiple of sa_alignment_max.  */
 #define HEADER_SIZE \
   (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max)
-struct header { void *next; char room[HEADER_SIZE - sizeof (struct preliminary_header) + MAGIC_SIZE]; };
-/* Verify that HEADER_SIZE == sizeof (struct header).  */
-typedef int verify1[2 * (HEADER_SIZE == sizeof (struct header)) - 1];
+union header {
+  void *next;
+  struct {
+    char room[HEADER_SIZE - MAGIC_SIZE];
+    int word;
+  } magic;
+};
+verify (HEADER_SIZE == sizeof (union header));
 /* We make the hash table quite big, so that during lookups the probability
    of empty hash buckets is quite high.  There is no need to make the hash
    table resizable, because when the hash table gets filled so much that the
@@ -71,20 +80,21 @@ mmalloca (size_t n)
 
   if (nplus >= n)
     {
-      char *p = (char *) malloc (nplus);
+      void *p = malloc (nplus);
 
       if (p != NULL)
         {
           size_t slot;
+          union header *h = p;
 
-          p += HEADER_SIZE;
+          p = h + 1;
 
           /* Put a magic number into the indicator word.  */
-          ((int *) p)[-1] = MAGIC_NUMBER;
+          h->magic.word = MAGIC_NUMBER;
 
           /* Enter p into the hash table.  */
-          slot = (unsigned long) p % HASH_TABLE_SIZE;
-          ((struct header *) (p - HEADER_SIZE))->next = mmalloca_results[slot];
+          slot = (uintptr_t) p % HASH_TABLE_SIZE;
+          h->next = mmalloca_results[slot];
           mmalloca_results[slot] = p;
 
           return p;
@@ -116,19 +126,21 @@ freea (void *p)
         {
           /* Looks like a mmalloca() result.  To see whether it really is one,
              perform a lookup in the hash table.  */
-          size_t slot = (unsigned long) p % HASH_TABLE_SIZE;
+          size_t slot = (uintptr_t) p % HASH_TABLE_SIZE;
           void **chain = &mmalloca_results[slot];
           for (; *chain != NULL;)
             {
+              union header *h = p;
               if (*chain == p)
                 {
                   /* Found it.  Remove it from the hash table and free it.  */
-                  char *p_begin = (char *) p - HEADER_SIZE;
-                  *chain = ((struct header *) p_begin)->next;
+                  union header *p_begin = h - 1;
+                  *chain = p_begin->next;
                   free (p_begin);
                   return;
                 }
-              chain = &((struct header *) ((char *) *chain - HEADER_SIZE))->next;
+              h = *chain;
+              chain = &h[-1].next;
             }
         }
       /* At this point, we know it was not a mmalloca() result.  */
index e39d0f4..5810afa 100644 (file)
@@ -1,5 +1,5 @@
 /* Safe automatic memory allocation.
-   Copyright (C) 2003-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2003-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software; you can redistribute it and/or modify
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _MALLOCA_H
 #define _MALLOCA_H
@@ -43,7 +42,7 @@ extern "C" {
    and a page size can be as small as 4096 bytes.  So we cannot safely
    allocate anything larger than 4096 bytes.  Also care for the possibility
    of a few compiler-allocated temporary stack slots.
-   This must be a macro, not an inline function.  */
+   This must be a macro, not a function.  */
 # define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL)
 #else
 # define safe_alloca(N) ((void) (N), NULL)
@@ -93,7 +92,7 @@ extern void * nmalloca (size_t n, size_t s);
 /* ------------------- Auxiliary, non-public definitions ------------------- */
 
 /* Determine the alignment of a type at compile time.  */
-#if defined __GNUC__
+#if defined __GNUC__ || defined __IBM__ALIGNOF__
 # define sa_alignof __alignof__
 #elif defined __cplusplus
   template <class type> struct sa_alignof_helper { char __slot1; type __slot2; };
diff --git a/lib/math.c b/lib/math.c
new file mode 100644 (file)
index 0000000..ddb2ded
--- /dev/null
@@ -0,0 +1,3 @@
+#include <config.h>
+#define _GL_MATH_INLINE _GL_EXTERN_INLINE
+#include "math.h"
index c0b2f34..4f2aa86 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <math.h>.
 
-   Copyright (C) 2002-2003, 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2007-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GL_MATH_H
+#ifndef _@GUARD_PREFIX@_MATH_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
 
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
 
-#ifndef _GL_MATH_H
-#define _GL_MATH_H
+#ifndef _@GUARD_PREFIX@_MATH_H
+#define _@GUARD_PREFIX@_MATH_H
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_MATH_INLINE
+# define _GL_MATH_INLINE _GL_INLINE
+#endif
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
+#ifdef __cplusplus
+/* Helper macros to define type-generic function FUNC as overloaded functions,
+   rather than as macros like in C.  POSIX declares these with an argument of
+   real-floating (that is, one of float, double, or long double).  */
+# define _GL_MATH_CXX_REAL_FLOATING_DECL_1(func) \
+static inline int                                                   \
+_gl_cxx_ ## func ## f (float f)                                     \
+{                                                                   \
+  return func (f);                                                  \
+}                                                                   \
+static inline int                                                   \
+_gl_cxx_ ## func ## d (double d)                                    \
+{                                                                   \
+  return func (d);                                                  \
+}                                                                   \
+static inline int                                                   \
+_gl_cxx_ ## func ## l (long double l)                               \
+{                                                                   \
+  return func (l);                                                  \
+}
+# define _GL_MATH_CXX_REAL_FLOATING_DECL_2(func) \
+inline int                                                          \
+func (float f)                                                      \
+{                                                                   \
+  return _gl_cxx_ ## func ## f (f);                                 \
+}                                                                   \
+inline int                                                          \
+func (double d)                                                     \
+{                                                                   \
+  return _gl_cxx_ ## func ## d (d);                                 \
+}                                                                   \
+inline int                                                          \
+func (long double l)                                                \
+{                                                                   \
+  return _gl_cxx_ ## func ## l (l);                                 \
+}
+#endif
+
 /* Helper macros to define a portability warning for the
    classification macro FUNC called with VALUE.  POSIX declares the
    classification macros with an argument of real-floating (that is,
    one of float, double, or long double).  */
 #define _GL_WARN_REAL_FLOATING_DECL(func) \
-static inline int                                                   \
+_GL_MATH_INLINE int                                                 \
 rpl_ ## func ## f (float f)                                         \
 {                                                                   \
   return func (f);                                                  \
 }                                                                   \
-static inline int                                                   \
+_GL_MATH_INLINE int                                                 \
 rpl_ ## func ## d (double d)                                        \
 {                                                                   \
   return func (d);                                                  \
 }                                                                   \
-static inline int                                                   \
+_GL_MATH_INLINE int                                                 \
 rpl_ ## func ## l (long double l)                                   \
 {                                                                   \
   return func (l);                                                  \
@@ -66,65 +112,1411 @@ _GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - "       \
    : rpl_ ## func ## l (value))
 
 
+#if @REPLACE_ITOLD@
+/* Pull in a function that fixes the 'int' to 'long double' conversion
+   of glibc 2.7.  */
+_GL_EXTERN_C void _Qp_itoq (long double *, int);
+static void (*_gl_math_fix_itold) (long double *, int) = _Qp_itoq;
+#endif
+
+
 /* POSIX allows platforms that don't support NAN.  But all major
    machines in the past 15 years have supported something close to
    IEEE NaN, so we define this unconditionally.  We also must define
    it on platforms like Solaris 10, where NAN is present but defined
    as a function pointer rather than a floating point constant.  */
 #if !defined NAN || @REPLACE_NAN@
-# undef NAN
-  /* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0.  */
-# ifdef __DECC
-static float
+# if !GNULIB_defined_NAN
+#  undef NAN
+  /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler
+     choke on the expression 0.0 / 0.0.  */
+#  if defined __DECC || defined _MSC_VER
+_GL_MATH_INLINE float
 _NaN ()
 {
   static float zero = 0.0f;
   return zero / zero;
 }
-#  define NAN (_NaN())
-# else
-#  define NAN (0.0f / 0.0f)
+#   define NAN (_NaN())
+#  else
+#   define NAN (0.0f / 0.0f)
+#  endif
+#  define GNULIB_defined_NAN 1
 # endif
 #endif
 
 /* Solaris 10 defines HUGE_VAL, but as a function pointer rather
    than a floating point constant.  */
 #if @REPLACE_HUGE_VAL@
+# undef HUGE_VALF
+# define HUGE_VALF (1.0f / 0.0f)
 # undef HUGE_VAL
 # define HUGE_VAL (1.0 / 0.0)
+# undef HUGE_VALL
+# define HUGE_VALL (1.0L / 0.0L)
+#endif
+
+/* HUGE_VALF is a 'float' Infinity.  */
+#ifndef HUGE_VALF
+# if defined _MSC_VER
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f.  */
+#  define HUGE_VALF (1e25f * 1e25f)
+# else
+#  define HUGE_VALF (1.0f / 0.0f)
+# endif
 #endif
 
+/* HUGE_VAL is a 'double' Infinity.  */
+#ifndef HUGE_VAL
+# if defined _MSC_VER
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0.  */
+#  define HUGE_VAL (1e250 * 1e250)
+# else
+#  define HUGE_VAL (1.0 / 0.0)
+# endif
+#endif
 
-/* Write x as
-     x = mantissa * 2^exp
-   where
-     If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
-     If x is zero: mantissa = x, exp = 0.
-     If x is infinite or NaN: mantissa = x, exp unspecified.
-   Store exp in *EXPPTR and return mantissa.  */
-#if @GNULIB_FREXP@
-# if @REPLACE_FREXP@
+/* HUGE_VALL is a 'long double' Infinity.  */
+#ifndef HUGE_VALL
+# if defined _MSC_VER
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L.  */
+#  define HUGE_VALL (1e250L * 1e250L)
+# else
+#  define HUGE_VALL (1.0L / 0.0L)
+# endif
+#endif
+
+
+/* Ensure FP_ILOGB0 and FP_ILOGBNAN are defined.  */
+#if !(defined FP_ILOGB0 && defined FP_ILOGBNAN)
+# if defined __NetBSD__ || defined __sgi
+  /* NetBSD, IRIX 6.5: match what ilogb() does */
+#  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
+#  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
+# elif defined _AIX
+  /* AIX 5.1: match what ilogb() does in AIX >= 5.2 */
+#  define FP_ILOGB0   (- 2147483647 - 1) /* INT_MIN */
+#  define FP_ILOGBNAN 2147483647 /* INT_MAX */
+# elif defined __sun
+  /* Solaris 9: match what ilogb() does */
+#  define FP_ILOGB0   (- 2147483647) /* - INT_MAX */
+#  define FP_ILOGBNAN 2147483647 /* INT_MAX */
+# else
+  /* Gnulib defined values.  */
+#  define FP_ILOGB0   (- 2147483647) /* - INT_MAX */
+#  define FP_ILOGBNAN (- 2147483647 - 1) /* INT_MIN */
+# endif
+#endif
+
+
+#if @GNULIB_ACOSF@
+# if !@HAVE_ACOSF@
+#  undef acosf
+_GL_FUNCDECL_SYS (acosf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (acosf, float, (float x));
+_GL_CXXALIASWARN (acosf);
+#elif defined GNULIB_POSIXCHECK
+# undef acosf
+# if HAVE_RAW_DECL_ACOSF
+_GL_WARN_ON_USE (acosf, "acosf is unportable - "
+                 "use gnulib module acosf for portability");
+# endif
+#endif
+
+#if @GNULIB_ACOSL@
+# if !@HAVE_ACOSL@ || !@HAVE_DECL_ACOSL@
+#  undef acosl
+_GL_FUNCDECL_SYS (acosl, long double, (long double x));
+# endif
+_GL_CXXALIAS_SYS (acosl, long double, (long double x));
+_GL_CXXALIASWARN (acosl);
+#elif defined GNULIB_POSIXCHECK
+# undef acosl
+# if HAVE_RAW_DECL_ACOSL
+_GL_WARN_ON_USE (acosl, "acosl is unportable - "
+                 "use gnulib module acosl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_ASINF@
+# if !@HAVE_ASINF@
+#  undef asinf
+_GL_FUNCDECL_SYS (asinf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (asinf, float, (float x));
+_GL_CXXALIASWARN (asinf);
+#elif defined GNULIB_POSIXCHECK
+# undef asinf
+# if HAVE_RAW_DECL_ASINF
+_GL_WARN_ON_USE (asinf, "asinf is unportable - "
+                 "use gnulib module asinf for portability");
+# endif
+#endif
+
+#if @GNULIB_ASINL@
+# if !@HAVE_ASINL@ || !@HAVE_DECL_ASINL@
+#  undef asinl
+_GL_FUNCDECL_SYS (asinl, long double, (long double x));
+# endif
+_GL_CXXALIAS_SYS (asinl, long double, (long double x));
+_GL_CXXALIASWARN (asinl);
+#elif defined GNULIB_POSIXCHECK
+# undef asinl
+# if HAVE_RAW_DECL_ASINL
+_GL_WARN_ON_USE (asinl, "asinl is unportable - "
+                 "use gnulib module asinl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_ATANF@
+# if !@HAVE_ATANF@
+#  undef atanf
+_GL_FUNCDECL_SYS (atanf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (atanf, float, (float x));
+_GL_CXXALIASWARN (atanf);
+#elif defined GNULIB_POSIXCHECK
+# undef atanf
+# if HAVE_RAW_DECL_ATANF
+_GL_WARN_ON_USE (atanf, "atanf is unportable - "
+                 "use gnulib module atanf for portability");
+# endif
+#endif
+
+#if @GNULIB_ATANL@
+# if !@HAVE_ATANL@ || !@HAVE_DECL_ATANL@
+#  undef atanl
+_GL_FUNCDECL_SYS (atanl, long double, (long double x));
+# endif
+_GL_CXXALIAS_SYS (atanl, long double, (long double x));
+_GL_CXXALIASWARN (atanl);
+#elif defined GNULIB_POSIXCHECK
+# undef atanl
+# if HAVE_RAW_DECL_ATANL
+_GL_WARN_ON_USE (atanl, "atanl is unportable - "
+                 "use gnulib module atanl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_ATAN2F@
+# if !@HAVE_ATAN2F@
+#  undef atan2f
+_GL_FUNCDECL_SYS (atan2f, float, (float y, float x));
+# endif
+_GL_CXXALIAS_SYS (atan2f, float, (float y, float x));
+_GL_CXXALIASWARN (atan2f);
+#elif defined GNULIB_POSIXCHECK
+# undef atan2f
+# if HAVE_RAW_DECL_ATAN2F
+_GL_WARN_ON_USE (atan2f, "atan2f is unportable - "
+                 "use gnulib module atan2f for portability");
+# endif
+#endif
+
+
+#if @GNULIB_CBRTF@
+# if @REPLACE_CBRTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef cbrtf
+#   define cbrtf rpl_cbrtf
+#  endif
+_GL_FUNCDECL_RPL (cbrtf, float, (float x));
+_GL_CXXALIAS_RPL (cbrtf, float, (float x));
+# else
+#  if !@HAVE_DECL_CBRTF@
+_GL_FUNCDECL_SYS (cbrtf, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (cbrtf, float, (float x));
+# endif
+_GL_CXXALIASWARN (cbrtf);
+#elif defined GNULIB_POSIXCHECK
+# undef cbrtf
+# if HAVE_RAW_DECL_CBRTF
+_GL_WARN_ON_USE (cbrtf, "cbrtf is unportable - "
+                 "use gnulib module cbrtf for portability");
+# endif
+#endif
+
+#if @GNULIB_CBRT@
+# if !@HAVE_CBRT@
+_GL_FUNCDECL_SYS (cbrt, double, (double x));
+# endif
+_GL_CXXALIAS_SYS (cbrt, double, (double x));
+_GL_CXXALIASWARN (cbrt);
+#elif defined GNULIB_POSIXCHECK
+# undef cbrt
+# if HAVE_RAW_DECL_CBRT
+_GL_WARN_ON_USE (cbrt, "cbrt is unportable - "
+                 "use gnulib module cbrt for portability");
+# endif
+#endif
+
+#if @GNULIB_CBRTL@
+# if @REPLACE_CBRTL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef cbrtl
+#   define cbrtl rpl_cbrtl
+#  endif
+_GL_FUNCDECL_RPL (cbrtl, long double, (long double x));
+_GL_CXXALIAS_RPL (cbrtl, long double, (long double x));
+# else
+#  if !@HAVE_DECL_CBRTL@
+_GL_FUNCDECL_SYS (cbrtl, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (cbrtl, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (cbrtl);
+#elif defined GNULIB_POSIXCHECK
+# undef cbrtl
+# if HAVE_RAW_DECL_CBRTL
+_GL_WARN_ON_USE (cbrtl, "cbrtl is unportable - "
+                 "use gnulib module cbrtl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_CEILF@
+# if @REPLACE_CEILF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ceilf
+#   define ceilf rpl_ceilf
+#  endif
+_GL_FUNCDECL_RPL (ceilf, float, (float x));
+_GL_CXXALIAS_RPL (ceilf, float, (float x));
+# else
+#  if !@HAVE_DECL_CEILF@
+#   undef ceilf
+_GL_FUNCDECL_SYS (ceilf, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (ceilf, float, (float x));
+# endif
+_GL_CXXALIASWARN (ceilf);
+#elif defined GNULIB_POSIXCHECK
+# undef ceilf
+# if HAVE_RAW_DECL_CEILF
+_GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
+                 "use gnulib module ceilf for portability");
+# endif
+#endif
+
+#if @GNULIB_CEIL@
+# if @REPLACE_CEIL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define ceil rpl_ceil
+#  endif
+_GL_FUNCDECL_RPL (ceil, double, (double x));
+_GL_CXXALIAS_RPL (ceil, double, (double x));
+# else
+_GL_CXXALIAS_SYS (ceil, double, (double x));
+# endif
+_GL_CXXALIASWARN (ceil);
+#endif
+
+#if @GNULIB_CEILL@
+# if @REPLACE_CEILL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ceill
+#   define ceill rpl_ceill
+#  endif
+_GL_FUNCDECL_RPL (ceill, long double, (long double x));
+_GL_CXXALIAS_RPL (ceill, long double, (long double x));
+# else
+#  if !@HAVE_DECL_CEILL@
+#   undef ceill
+_GL_FUNCDECL_SYS (ceill, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (ceill, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (ceill);
+#elif defined GNULIB_POSIXCHECK
+# undef ceill
+# if HAVE_RAW_DECL_CEILL
+_GL_WARN_ON_USE (ceill, "ceill is unportable - "
+                 "use gnulib module ceill for portability");
+# endif
+#endif
+
+
+#if @GNULIB_COPYSIGNF@
+# if !@HAVE_DECL_COPYSIGNF@
+_GL_FUNCDECL_SYS (copysignf, float, (float x, float y));
+# endif
+_GL_CXXALIAS_SYS (copysignf, float, (float x, float y));
+_GL_CXXALIASWARN (copysignf);
+#elif defined GNULIB_POSIXCHECK
+# undef copysignf
+# if HAVE_RAW_DECL_COPYSIGNF
+_GL_WARN_ON_USE (copysignf, "copysignf is unportable - "
+                 "use gnulib module copysignf for portability");
+# endif
+#endif
+
+#if @GNULIB_COPYSIGN@
+# if !@HAVE_COPYSIGN@
+_GL_FUNCDECL_SYS (copysign, double, (double x, double y));
+# endif
+_GL_CXXALIAS_SYS (copysign, double, (double x, double y));
+_GL_CXXALIASWARN (copysign);
+#elif defined GNULIB_POSIXCHECK
+# undef copysign
+# if HAVE_RAW_DECL_COPYSIGN
+_GL_WARN_ON_USE (copysign, "copysign is unportable - "
+                 "use gnulib module copysign for portability");
+# endif
+#endif
+
+#if @GNULIB_COPYSIGNL@
+# if !@HAVE_COPYSIGNL@
+_GL_FUNCDECL_SYS (copysignl, long double, (long double x, long double y));
+# endif
+_GL_CXXALIAS_SYS (copysignl, long double, (long double x, long double y));
+_GL_CXXALIASWARN (copysignl);
+#elif defined GNULIB_POSIXCHECK
+# undef copysignl
+# if HAVE_RAW_DECL_COPYSIGNL
+_GL_WARN_ON_USE (copysign, "copysignl is unportable - "
+                 "use gnulib module copysignl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_COSF@
+# if !@HAVE_COSF@
+#  undef cosf
+_GL_FUNCDECL_SYS (cosf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (cosf, float, (float x));
+_GL_CXXALIASWARN (cosf);
+#elif defined GNULIB_POSIXCHECK
+# undef cosf
+# if HAVE_RAW_DECL_COSF
+_GL_WARN_ON_USE (cosf, "cosf is unportable - "
+                 "use gnulib module cosf for portability");
+# endif
+#endif
+
+#if @GNULIB_COSL@
+# if !@HAVE_COSL@ || !@HAVE_DECL_COSL@
+#  undef cosl
+_GL_FUNCDECL_SYS (cosl, long double, (long double x));
+# endif
+_GL_CXXALIAS_SYS (cosl, long double, (long double x));
+_GL_CXXALIASWARN (cosl);
+#elif defined GNULIB_POSIXCHECK
+# undef cosl
+# if HAVE_RAW_DECL_COSL
+_GL_WARN_ON_USE (cosl, "cosl is unportable - "
+                 "use gnulib module cosl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_COSHF@
+# if !@HAVE_COSHF@
+#  undef coshf
+_GL_FUNCDECL_SYS (coshf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (coshf, float, (float x));
+_GL_CXXALIASWARN (coshf);
+#elif defined GNULIB_POSIXCHECK
+# undef coshf
+# if HAVE_RAW_DECL_COSHF
+_GL_WARN_ON_USE (coshf, "coshf is unportable - "
+                 "use gnulib module coshf for portability");
+# endif
+#endif
+
+
+#if @GNULIB_EXPF@
+# if !@HAVE_EXPF@
+#  undef expf
+_GL_FUNCDECL_SYS (expf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (expf, float, (float x));
+_GL_CXXALIASWARN (expf);
+#elif defined GNULIB_POSIXCHECK
+# undef expf
+# if HAVE_RAW_DECL_EXPF
+_GL_WARN_ON_USE (expf, "expf is unportable - "
+                 "use gnulib module expf for portability");
+# endif
+#endif
+
+#if @GNULIB_EXPL@
+# if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@
+#  undef expl
+_GL_FUNCDECL_SYS (expl, long double, (long double x));
+# endif
+_GL_CXXALIAS_SYS (expl, long double, (long double x));
+_GL_CXXALIASWARN (expl);
+#elif defined GNULIB_POSIXCHECK
+# undef expl
+# if HAVE_RAW_DECL_EXPL
+_GL_WARN_ON_USE (expl, "expl is unportable - "
+                 "use gnulib module expl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_EXP2F@
+# if !@HAVE_DECL_EXP2F@
+_GL_FUNCDECL_SYS (exp2f, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (exp2f, float, (float x));
+_GL_CXXALIASWARN (exp2f);
+#elif defined GNULIB_POSIXCHECK
+# undef exp2f
+# if HAVE_RAW_DECL_EXP2F
+_GL_WARN_ON_USE (exp2f, "exp2f is unportable - "
+                 "use gnulib module exp2f for portability");
+# endif
+#endif
+
+#if @GNULIB_EXP2@
+# if @REPLACE_EXP2@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef exp2
+#   define exp2 rpl_exp2
+#  endif
+_GL_FUNCDECL_RPL (exp2, double, (double x));
+_GL_CXXALIAS_RPL (exp2, double, (double x));
+# else
+#  if !@HAVE_DECL_EXP2@
+_GL_FUNCDECL_SYS (exp2, double, (double x));
+#  endif
+_GL_CXXALIAS_SYS (exp2, double, (double x));
+# endif
+_GL_CXXALIASWARN (exp2);
+#elif defined GNULIB_POSIXCHECK
+# undef exp2
+# if HAVE_RAW_DECL_EXP2
+_GL_WARN_ON_USE (exp2, "exp2 is unportable - "
+                 "use gnulib module exp2 for portability");
+# endif
+#endif
+
+#if @GNULIB_EXP2L@
+# if @REPLACE_EXP2L@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef exp2l
+#   define exp2l rpl_exp2l
+#  endif
+_GL_FUNCDECL_RPL (exp2l, long double, (long double x));
+_GL_CXXALIAS_RPL (exp2l, long double, (long double x));
+# else
+#  if !@HAVE_DECL_EXP2L@
+#   undef exp2l
+_GL_FUNCDECL_SYS (exp2l, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (exp2l, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (exp2l);
+#elif defined GNULIB_POSIXCHECK
+# undef exp2l
+# if HAVE_RAW_DECL_EXP2L
+_GL_WARN_ON_USE (exp2l, "exp2l is unportable - "
+                 "use gnulib module exp2l for portability");
+# endif
+#endif
+
+
+#if @GNULIB_EXPM1F@
+# if @REPLACE_EXPM1F@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef expm1f
+#   define expm1f rpl_expm1f
+#  endif
+_GL_FUNCDECL_RPL (expm1f, float, (float x));
+_GL_CXXALIAS_RPL (expm1f, float, (float x));
+# else
+#  if !@HAVE_EXPM1F@
+_GL_FUNCDECL_SYS (expm1f, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (expm1f, float, (float x));
+# endif
+_GL_CXXALIASWARN (expm1f);
+#elif defined GNULIB_POSIXCHECK
+# undef expm1f
+# if HAVE_RAW_DECL_EXPM1F
+_GL_WARN_ON_USE (expm1f, "expm1f is unportable - "
+                 "use gnulib module expm1f for portability");
+# endif
+#endif
+
+#if @GNULIB_EXPM1@
+# if @REPLACE_EXPM1@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef expm1
+#   define expm1 rpl_expm1
+#  endif
+_GL_FUNCDECL_RPL (expm1, double, (double x));
+_GL_CXXALIAS_RPL (expm1, double, (double x));
+# else
+#  if !@HAVE_EXPM1@
+_GL_FUNCDECL_SYS (expm1, double, (double x));
+#  endif
+_GL_CXXALIAS_SYS (expm1, double, (double x));
+# endif
+_GL_CXXALIASWARN (expm1);
+#elif defined GNULIB_POSIXCHECK
+# undef expm1
+# if HAVE_RAW_DECL_EXPM1
+_GL_WARN_ON_USE (expm1, "expm1 is unportable - "
+                 "use gnulib module expm1 for portability");
+# endif
+#endif
+
+#if @GNULIB_EXPM1L@
+# if !@HAVE_DECL_EXPM1L@
+#  undef expm1l
+_GL_FUNCDECL_SYS (expm1l, long double, (long double x));
+# endif
+_GL_CXXALIAS_SYS (expm1l, long double, (long double x));
+_GL_CXXALIASWARN (expm1l);
+#elif defined GNULIB_POSIXCHECK
+# undef expm1l
+# if HAVE_RAW_DECL_EXPM1L
+_GL_WARN_ON_USE (expm1l, "expm1l is unportable - "
+                 "use gnulib module expm1l for portability");
+# endif
+#endif
+
+
+#if @GNULIB_FABSF@
+# if !@HAVE_FABSF@
+#  undef fabsf
+_GL_FUNCDECL_SYS (fabsf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (fabsf, float, (float x));
+_GL_CXXALIASWARN (fabsf);
+#elif defined GNULIB_POSIXCHECK
+# undef fabsf
+# if HAVE_RAW_DECL_FABSF
+_GL_WARN_ON_USE (fabsf, "fabsf is unportable - "
+                 "use gnulib module fabsf for portability");
+# endif
+#endif
+
+#if @GNULIB_FABSL@
+# if @REPLACE_FABSL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fabsl
+#   define fabsl rpl_fabsl
+#  endif
+_GL_FUNCDECL_RPL (fabsl, long double, (long double x));
+_GL_CXXALIAS_RPL (fabsl, long double, (long double x));
+# else
+#  if !@HAVE_FABSL@
+#   undef fabsl
+_GL_FUNCDECL_SYS (fabsl, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (fabsl, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (fabsl);
+#elif defined GNULIB_POSIXCHECK
+# undef fabsl
+# if HAVE_RAW_DECL_FABSL
+_GL_WARN_ON_USE (fabsl, "fabsl is unportable - "
+                 "use gnulib module fabsl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_FLOORF@
+# if @REPLACE_FLOORF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef floorf
+#   define floorf rpl_floorf
+#  endif
+_GL_FUNCDECL_RPL (floorf, float, (float x));
+_GL_CXXALIAS_RPL (floorf, float, (float x));
+# else
+#  if !@HAVE_DECL_FLOORF@
+#   undef floorf
+_GL_FUNCDECL_SYS (floorf, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (floorf, float, (float x));
+# endif
+_GL_CXXALIASWARN (floorf);
+#elif defined GNULIB_POSIXCHECK
+# undef floorf
+# if HAVE_RAW_DECL_FLOORF
+_GL_WARN_ON_USE (floorf, "floorf is unportable - "
+                 "use gnulib module floorf for portability");
+# endif
+#endif
+
+#if @GNULIB_FLOOR@
+# if @REPLACE_FLOOR@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define floor rpl_floor
+#  endif
+_GL_FUNCDECL_RPL (floor, double, (double x));
+_GL_CXXALIAS_RPL (floor, double, (double x));
+# else
+_GL_CXXALIAS_SYS (floor, double, (double x));
+# endif
+_GL_CXXALIASWARN (floor);
+#endif
+
+#if @GNULIB_FLOORL@
+# if @REPLACE_FLOORL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef floorl
+#   define floorl rpl_floorl
+#  endif
+_GL_FUNCDECL_RPL (floorl, long double, (long double x));
+_GL_CXXALIAS_RPL (floorl, long double, (long double x));
+# else
+#  if !@HAVE_DECL_FLOORL@
+#   undef floorl
+_GL_FUNCDECL_SYS (floorl, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (floorl, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (floorl);
+#elif defined GNULIB_POSIXCHECK
+# undef floorl
+# if HAVE_RAW_DECL_FLOORL
+_GL_WARN_ON_USE (floorl, "floorl is unportable - "
+                 "use gnulib module floorl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_FMAF@
+# if @REPLACE_FMAF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fmaf
+#   define fmaf rpl_fmaf
+#  endif
+_GL_FUNCDECL_RPL (fmaf, float, (float x, float y, float z));
+_GL_CXXALIAS_RPL (fmaf, float, (float x, float y, float z));
+# else
+#  if !@HAVE_FMAF@
+_GL_FUNCDECL_SYS (fmaf, float, (float x, float y, float z));
+#  endif
+_GL_CXXALIAS_SYS (fmaf, float, (float x, float y, float z));
+# endif
+_GL_CXXALIASWARN (fmaf);
+#elif defined GNULIB_POSIXCHECK
+# undef fmaf
+# if HAVE_RAW_DECL_FMAF
+_GL_WARN_ON_USE (fmaf, "fmaf is unportable - "
+                 "use gnulib module fmaf for portability");
+# endif
+#endif
+
+#if @GNULIB_FMA@
+# if @REPLACE_FMA@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fma
+#   define fma rpl_fma
+#  endif
+_GL_FUNCDECL_RPL (fma, double, (double x, double y, double z));
+_GL_CXXALIAS_RPL (fma, double, (double x, double y, double z));
+# else
+#  if !@HAVE_FMA@
+_GL_FUNCDECL_SYS (fma, double, (double x, double y, double z));
+#  endif
+_GL_CXXALIAS_SYS (fma, double, (double x, double y, double z));
+# endif
+_GL_CXXALIASWARN (fma);
+#elif defined GNULIB_POSIXCHECK
+# undef fma
+# if HAVE_RAW_DECL_FMA
+_GL_WARN_ON_USE (fma, "fma is unportable - "
+                 "use gnulib module fma for portability");
+# endif
+#endif
+
+#if @GNULIB_FMAL@
+# if @REPLACE_FMAL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fmal
+#   define fmal rpl_fmal
+#  endif
+_GL_FUNCDECL_RPL (fmal, long double,
+                  (long double x, long double y, long double z));
+_GL_CXXALIAS_RPL (fmal, long double,
+                  (long double x, long double y, long double z));
+# else
+#  if !@HAVE_FMAL@
+#   undef fmal
+_GL_FUNCDECL_SYS (fmal, long double,
+                  (long double x, long double y, long double z));
+#  endif
+_GL_CXXALIAS_SYS (fmal, long double,
+                  (long double x, long double y, long double z));
+# endif
+_GL_CXXALIASWARN (fmal);
+#elif defined GNULIB_POSIXCHECK
+# undef fmal
+# if HAVE_RAW_DECL_FMAL
+_GL_WARN_ON_USE (fmal, "fmal is unportable - "
+                 "use gnulib module fmal for portability");
+# endif
+#endif
+
+
+#if @GNULIB_FMODF@
+# if @REPLACE_FMODF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fmodf
+#   define fmodf rpl_fmodf
+#  endif
+_GL_FUNCDECL_RPL (fmodf, float, (float x, float y));
+_GL_CXXALIAS_RPL (fmodf, float, (float x, float y));
+# else
+#  if !@HAVE_FMODF@
+#   undef fmodf
+_GL_FUNCDECL_SYS (fmodf, float, (float x, float y));
+#  endif
+_GL_CXXALIAS_SYS (fmodf, float, (float x, float y));
+# endif
+_GL_CXXALIASWARN (fmodf);
+#elif defined GNULIB_POSIXCHECK
+# undef fmodf
+# if HAVE_RAW_DECL_FMODF
+_GL_WARN_ON_USE (fmodf, "fmodf is unportable - "
+                 "use gnulib module fmodf for portability");
+# endif
+#endif
+
+#if @GNULIB_FMOD@
+# if @REPLACE_FMOD@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fmod
+#   define fmod rpl_fmod
+#  endif
+_GL_FUNCDECL_RPL (fmod, double, (double x, double y));
+_GL_CXXALIAS_RPL (fmod, double, (double x, double y));
+# else
+_GL_CXXALIAS_SYS (fmod, double, (double x, double y));
+# endif
+_GL_CXXALIASWARN (fmod);
+#elif defined GNULIB_POSIXCHECK
+# undef fmod
+# if HAVE_RAW_DECL_FMOD
+_GL_WARN_ON_USE (fmod, "fmod has portability problems - "
+                 "use gnulib module fmod for portability");
+# endif
+#endif
+
+#if @GNULIB_FMODL@
+# if @REPLACE_FMODL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fmodl
+#   define fmodl rpl_fmodl
+#  endif
+_GL_FUNCDECL_RPL (fmodl, long double, (long double x, long double y));
+_GL_CXXALIAS_RPL (fmodl, long double, (long double x, long double y));
+# else
+#  if !@HAVE_FMODL@
+#   undef fmodl
+_GL_FUNCDECL_SYS (fmodl, long double, (long double x, long double y));
+#  endif
+_GL_CXXALIAS_SYS (fmodl, long double, (long double x, long double y));
+# endif
+_GL_CXXALIASWARN (fmodl);
+#elif defined GNULIB_POSIXCHECK
+# undef fmodl
+# if HAVE_RAW_DECL_FMODL
+_GL_WARN_ON_USE (fmodl, "fmodl is unportable - "
+                 "use gnulib module fmodl for portability");
+# endif
+#endif
+
+
+/* Write x as
+     x = mantissa * 2^exp
+   where
+     If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
+     If x is zero: mantissa = x, exp = 0.
+     If x is infinite or NaN: mantissa = x, exp unspecified.
+   Store exp in *EXPPTR and return mantissa.  */
+#if @GNULIB_FREXPF@
+# if @REPLACE_FREXPF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef frexpf
+#   define frexpf rpl_frexpf
+#  endif
+_GL_FUNCDECL_RPL (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (frexpf, float, (float x, int *expptr));
+# else
+#  if !@HAVE_FREXPF@
+#   undef frexpf
+_GL_FUNCDECL_SYS (frexpf, float, (float x, int *expptr) _GL_ARG_NONNULL ((2)));
+#  endif
+_GL_CXXALIAS_SYS (frexpf, float, (float x, int *expptr));
+# endif
+_GL_CXXALIASWARN (frexpf);
+#elif defined GNULIB_POSIXCHECK
+# undef frexpf
+# if HAVE_RAW_DECL_FREXPF
+_GL_WARN_ON_USE (frexpf, "frexpf is unportable - "
+                 "use gnulib module frexpf for portability");
+# endif
+#endif
+
+/* Write x as
+     x = mantissa * 2^exp
+   where
+     If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
+     If x is zero: mantissa = x, exp = 0.
+     If x is infinite or NaN: mantissa = x, exp unspecified.
+   Store exp in *EXPPTR and return mantissa.  */
+#if @GNULIB_FREXP@
+# if @REPLACE_FREXP@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define frexp rpl_frexp
+#  endif
+_GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
+# else
+_GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
+# endif
+_GL_CXXALIASWARN (frexp);
+#elif defined GNULIB_POSIXCHECK
+# undef frexp
+/* Assume frexp is always declared.  */
+_GL_WARN_ON_USE (frexp, "frexp is unportable - "
+                 "use gnulib module frexp for portability");
+#endif
+
+/* Write x as
+     x = mantissa * 2^exp
+   where
+     If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
+     If x is zero: mantissa = x, exp = 0.
+     If x is infinite or NaN: mantissa = x, exp unspecified.
+   Store exp in *EXPPTR and return mantissa.  */
+#if @GNULIB_FREXPL@ && @REPLACE_FREXPL@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#  undef frexpl
+#  define frexpl rpl_frexpl
+# endif
+_GL_FUNCDECL_RPL (frexpl, long double,
+                  (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr));
+#else
+# if !@HAVE_DECL_FREXPL@
+_GL_FUNCDECL_SYS (frexpl, long double,
+                  (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
+# endif
+# if @GNULIB_FREXPL@
+_GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
+# endif
+#endif
+#if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@)
+_GL_CXXALIASWARN (frexpl);
+#endif
+#if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
+# undef frexpl
+# if HAVE_RAW_DECL_FREXPL
+_GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
+                 "use gnulib module frexpl for portability");
+# endif
+#endif
+
+
+/* Return sqrt(x^2+y^2).  */
+#if @GNULIB_HYPOTF@
+# if @REPLACE_HYPOTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef hypotf
+#   define hypotf rpl_hypotf
+#  endif
+_GL_FUNCDECL_RPL (hypotf, float, (float x, float y));
+_GL_CXXALIAS_RPL (hypotf, float, (float x, float y));
+# else
+#  if !@HAVE_HYPOTF@
+_GL_FUNCDECL_SYS (hypotf, float, (float x, float y));
+#  endif
+_GL_CXXALIAS_SYS (hypotf, float, (float x, float y));
+# endif
+_GL_CXXALIASWARN (hypotf);
+#elif defined GNULIB_POSIXCHECK
+# undef hypotf
+# if HAVE_RAW_DECL_HYPOTF
+_GL_WARN_ON_USE (hypotf, "hypotf is unportable - "
+                 "use gnulib module hypotf for portability");
+# endif
+#endif
+
+/* Return sqrt(x^2+y^2).  */
+#if @GNULIB_HYPOT@
+# if @REPLACE_HYPOT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef hypot
+#   define hypot rpl_hypot
+#  endif
+_GL_FUNCDECL_RPL (hypot, double, (double x, double y));
+_GL_CXXALIAS_RPL (hypot, double, (double x, double y));
+# else
+_GL_CXXALIAS_SYS (hypot, double, (double x, double y));
+# endif
+_GL_CXXALIASWARN (hypot);
+#elif defined GNULIB_POSIXCHECK
+# undef hypot
+# if HAVE_RAW_DECL_HYPOT
+_GL_WARN_ON_USE (hypotf, "hypot has portability problems - "
+                 "use gnulib module hypot for portability");
+# endif
+#endif
+
+/* Return sqrt(x^2+y^2).  */
+#if @GNULIB_HYPOTL@
+# if @REPLACE_HYPOTL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef hypotl
+#   define hypotl rpl_hypotl
+#  endif
+_GL_FUNCDECL_RPL (hypotl, long double, (long double x, long double y));
+_GL_CXXALIAS_RPL (hypotl, long double, (long double x, long double y));
+# else
+#  if !@HAVE_HYPOTL@
+_GL_FUNCDECL_SYS (hypotl, long double, (long double x, long double y));
+#  endif
+_GL_CXXALIAS_SYS (hypotl, long double, (long double x, long double y));
+# endif
+_GL_CXXALIASWARN (hypotl);
+#elif defined GNULIB_POSIXCHECK
+# undef hypotl
+# if HAVE_RAW_DECL_HYPOTL
+_GL_WARN_ON_USE (hypotl, "hypotl is unportable - "
+                 "use gnulib module hypotl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_ILOGBF@
+# if @REPLACE_ILOGBF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ilogbf
+#   define ilogbf rpl_ilogbf
+#  endif
+_GL_FUNCDECL_RPL (ilogbf, int, (float x));
+_GL_CXXALIAS_RPL (ilogbf, int, (float x));
+# else
+#  if !@HAVE_ILOGBF@
+_GL_FUNCDECL_SYS (ilogbf, int, (float x));
+#  endif
+_GL_CXXALIAS_SYS (ilogbf, int, (float x));
+# endif
+_GL_CXXALIASWARN (ilogbf);
+#elif defined GNULIB_POSIXCHECK
+# undef ilogbf
+# if HAVE_RAW_DECL_ILOGBF
+_GL_WARN_ON_USE (ilogbf, "ilogbf is unportable - "
+                 "use gnulib module ilogbf for portability");
+# endif
+#endif
+
+#if @GNULIB_ILOGB@
+# if @REPLACE_ILOGB@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ilogb
+#   define ilogb rpl_ilogb
+#  endif
+_GL_FUNCDECL_RPL (ilogb, int, (double x));
+_GL_CXXALIAS_RPL (ilogb, int, (double x));
+# else
+#  if !@HAVE_ILOGB@
+_GL_FUNCDECL_SYS (ilogb, int, (double x));
+#  endif
+_GL_CXXALIAS_SYS (ilogb, int, (double x));
+# endif
+_GL_CXXALIASWARN (ilogb);
+#elif defined GNULIB_POSIXCHECK
+# undef ilogb
+# if HAVE_RAW_DECL_ILOGB
+_GL_WARN_ON_USE (ilogb, "ilogb is unportable - "
+                 "use gnulib module ilogb for portability");
+# endif
+#endif
+
+#if @GNULIB_ILOGBL@
+# if !@HAVE_ILOGBL@
+_GL_FUNCDECL_SYS (ilogbl, int, (long double x));
+# endif
+_GL_CXXALIAS_SYS (ilogbl, int, (long double x));
+_GL_CXXALIASWARN (ilogbl);
+#elif defined GNULIB_POSIXCHECK
+# undef ilogbl
+# if HAVE_RAW_DECL_ILOGBL
+_GL_WARN_ON_USE (ilogbl, "ilogbl is unportable - "
+                 "use gnulib module ilogbl for portability");
+# endif
+#endif
+
+
+/* Return x * 2^exp.  */
+#if @GNULIB_LDEXPF@
+# if !@HAVE_LDEXPF@
+#  undef ldexpf
+_GL_FUNCDECL_SYS (ldexpf, float, (float x, int exp));
+# endif
+_GL_CXXALIAS_SYS (ldexpf, float, (float x, int exp));
+_GL_CXXALIASWARN (ldexpf);
+#elif defined GNULIB_POSIXCHECK
+# undef ldexpf
+# if HAVE_RAW_DECL_LDEXPF
+_GL_WARN_ON_USE (ldexpf, "ldexpf is unportable - "
+                 "use gnulib module ldexpf for portability");
+# endif
+#endif
+
+/* Return x * 2^exp.  */
+#if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#  undef ldexpl
+#  define ldexpl rpl_ldexpl
+# endif
+_GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp));
+_GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp));
+#else
+# if !@HAVE_DECL_LDEXPL@
+_GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp));
+# endif
+# if @GNULIB_LDEXPL@
+_GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
+# endif
+#endif
+#if @GNULIB_LDEXPL@
+_GL_CXXALIASWARN (ldexpl);
+#endif
+#if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
+# undef ldexpl
+# if HAVE_RAW_DECL_LDEXPL
+_GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
+                 "use gnulib module ldexpl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_LOGF@
+# if @REPLACE_LOGF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef logf
+#   define logf rpl_logf
+#  endif
+_GL_FUNCDECL_RPL (logf, float, (float x));
+_GL_CXXALIAS_RPL (logf, float, (float x));
+# else
+#  if !@HAVE_LOGF@
+#   undef logf
+_GL_FUNCDECL_SYS (logf, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (logf, float, (float x));
+# endif
+_GL_CXXALIASWARN (logf);
+#elif defined GNULIB_POSIXCHECK
+# undef logf
+# if HAVE_RAW_DECL_LOGF
+_GL_WARN_ON_USE (logf, "logf is unportable - "
+                 "use gnulib module logf for portability");
+# endif
+#endif
+
+#if @GNULIB_LOG@
+# if @REPLACE_LOG@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log
+#   define log rpl_log
+#  endif
+_GL_FUNCDECL_RPL (log, double, (double x));
+_GL_CXXALIAS_RPL (log, double, (double x));
+# else
+_GL_CXXALIAS_SYS (log, double, (double x));
+# endif
+_GL_CXXALIASWARN (log);
+#elif defined GNULIB_POSIXCHECK
+# undef log
+# if HAVE_RAW_DECL_LOG
+_GL_WARN_ON_USE (log, "log has portability problems - "
+                 "use gnulib module log for portability");
+# endif
+#endif
+
+#if @GNULIB_LOGL@
+# if @REPLACE_LOGL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef logl
+#   define logl rpl_logl
+#  endif
+_GL_FUNCDECL_RPL (logl, long double, (long double x));
+_GL_CXXALIAS_RPL (logl, long double, (long double x));
+# else
+#  if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@
+#   undef logl
+_GL_FUNCDECL_SYS (logl, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (logl, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (logl);
+#elif defined GNULIB_POSIXCHECK
+# undef logl
+# if HAVE_RAW_DECL_LOGL
+_GL_WARN_ON_USE (logl, "logl is unportable - "
+                 "use gnulib module logl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_LOG10F@
+# if @REPLACE_LOG10F@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log10f
+#   define log10f rpl_log10f
+#  endif
+_GL_FUNCDECL_RPL (log10f, float, (float x));
+_GL_CXXALIAS_RPL (log10f, float, (float x));
+# else
+#  if !@HAVE_LOG10F@
+#   undef log10f
+_GL_FUNCDECL_SYS (log10f, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (log10f, float, (float x));
+# endif
+_GL_CXXALIASWARN (log10f);
+#elif defined GNULIB_POSIXCHECK
+# undef log10f
+# if HAVE_RAW_DECL_LOG10F
+_GL_WARN_ON_USE (log10f, "log10f is unportable - "
+                 "use gnulib module log10f for portability");
+# endif
+#endif
+
+#if @GNULIB_LOG10@
+# if @REPLACE_LOG10@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log10
+#   define log10 rpl_log10
+#  endif
+_GL_FUNCDECL_RPL (log10, double, (double x));
+_GL_CXXALIAS_RPL (log10, double, (double x));
+# else
+_GL_CXXALIAS_SYS (log10, double, (double x));
+# endif
+_GL_CXXALIASWARN (log10);
+#elif defined GNULIB_POSIXCHECK
+# undef log10
+# if HAVE_RAW_DECL_LOG10
+_GL_WARN_ON_USE (log10, "log10 has portability problems - "
+                 "use gnulib module log10 for portability");
+# endif
+#endif
+
+#if @GNULIB_LOG10L@
+# if @REPLACE_LOG10L@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log10l
+#   define log10l rpl_log10l
+#  endif
+_GL_FUNCDECL_RPL (log10l, long double, (long double x));
+_GL_CXXALIAS_RPL (log10l, long double, (long double x));
+# else
+#  if !@HAVE_LOG10L@ || !@HAVE_DECL_LOG10L@
+#   undef log10l
+_GL_FUNCDECL_SYS (log10l, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (log10l, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (log10l);
+#elif defined GNULIB_POSIXCHECK
+# undef log10l
+# if HAVE_RAW_DECL_LOG10L
+_GL_WARN_ON_USE (log10l, "log10l is unportable - "
+                 "use gnulib module log10l for portability");
+# endif
+#endif
+
+
+#if @GNULIB_LOG1PF@
+# if @REPLACE_LOG1PF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log1pf
+#   define log1pf rpl_log1pf
+#  endif
+_GL_FUNCDECL_RPL (log1pf, float, (float x));
+_GL_CXXALIAS_RPL (log1pf, float, (float x));
+# else
+#  if !@HAVE_LOG1PF@
+_GL_FUNCDECL_SYS (log1pf, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (log1pf, float, (float x));
+# endif
+_GL_CXXALIASWARN (log1pf);
+#elif defined GNULIB_POSIXCHECK
+# undef log1pf
+# if HAVE_RAW_DECL_LOG1PF
+_GL_WARN_ON_USE (log1pf, "log1pf is unportable - "
+                 "use gnulib module log1pf for portability");
+# endif
+#endif
+
+#if @GNULIB_LOG1P@
+# if @REPLACE_LOG1P@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log1p
+#   define log1p rpl_log1p
+#  endif
+_GL_FUNCDECL_RPL (log1p, double, (double x));
+_GL_CXXALIAS_RPL (log1p, double, (double x));
+# else
+#  if !@HAVE_LOG1P@
+_GL_FUNCDECL_SYS (log1p, double, (double x));
+#  endif
+_GL_CXXALIAS_SYS (log1p, double, (double x));
+# endif
+_GL_CXXALIASWARN (log1p);
+#elif defined GNULIB_POSIXCHECK
+# undef log1p
+# if HAVE_RAW_DECL_LOG1P
+_GL_WARN_ON_USE (log1p, "log1p has portability problems - "
+                 "use gnulib module log1p for portability");
+# endif
+#endif
+
+#if @GNULIB_LOG1PL@
+# if @REPLACE_LOG1PL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log1pl
+#   define log1pl rpl_log1pl
+#  endif
+_GL_FUNCDECL_RPL (log1pl, long double, (long double x));
+_GL_CXXALIAS_RPL (log1pl, long double, (long double x));
+# else
+#  if !@HAVE_LOG1PL@
+_GL_FUNCDECL_SYS (log1pl, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (log1pl, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (log1pl);
+#elif defined GNULIB_POSIXCHECK
+# undef log1pl
+# if HAVE_RAW_DECL_LOG1PL
+_GL_WARN_ON_USE (log1pl, "log1pl has portability problems - "
+                 "use gnulib module log1pl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_LOG2F@
+# if @REPLACE_LOG2F@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log2f
+#   define log2f rpl_log2f
+#  endif
+_GL_FUNCDECL_RPL (log2f, float, (float x));
+_GL_CXXALIAS_RPL (log2f, float, (float x));
+# else
+#  if !@HAVE_DECL_LOG2F@
+#   undef log2f
+_GL_FUNCDECL_SYS (log2f, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (log2f, float, (float x));
+# endif
+_GL_CXXALIASWARN (log2f);
+#elif defined GNULIB_POSIXCHECK
+# undef log2f
+# if HAVE_RAW_DECL_LOG2F
+_GL_WARN_ON_USE (log2f, "log2f is unportable - "
+                 "use gnulib module log2f for portability");
+# endif
+#endif
+
+#if @GNULIB_LOG2@
+# if @REPLACE_LOG2@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log2
+#   define log2 rpl_log2
+#  endif
+_GL_FUNCDECL_RPL (log2, double, (double x));
+_GL_CXXALIAS_RPL (log2, double, (double x));
+# else
+#  if !@HAVE_DECL_LOG2@
+#   undef log2
+_GL_FUNCDECL_SYS (log2, double, (double x));
+#  endif
+_GL_CXXALIAS_SYS (log2, double, (double x));
+# endif
+_GL_CXXALIASWARN (log2);
+#elif defined GNULIB_POSIXCHECK
+# undef log2
+# if HAVE_RAW_DECL_LOG2
+_GL_WARN_ON_USE (log2, "log2 is unportable - "
+                 "use gnulib module log2 for portability");
+# endif
+#endif
+
+#if @GNULIB_LOG2L@
+# if @REPLACE_LOG2L@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef log2l
+#   define log2l rpl_log2l
+#  endif
+_GL_FUNCDECL_RPL (log2l, long double, (long double x));
+_GL_CXXALIAS_RPL (log2l, long double, (long double x));
+# else
+#  if !@HAVE_DECL_LOG2L@
+_GL_FUNCDECL_SYS (log2l, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (log2l, long double, (long double x));
+# endif
+_GL_CXXALIASWARN (log2l);
+#elif defined GNULIB_POSIXCHECK
+# undef log2l
+# if HAVE_RAW_DECL_LOG2L
+_GL_WARN_ON_USE (log2l, "log2l is unportable - "
+                 "use gnulib module log2l for portability");
+# endif
+#endif
+
+
+#if @GNULIB_LOGBF@
+# if @REPLACE_LOGBF@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   define frexp rpl_frexp
+#   undef logbf
+#   define logbf rpl_logbf
 #  endif
-_GL_FUNCDECL_RPL (frexp, double, (double x, int *expptr) _GL_ARG_NONNULL ((2)));
-_GL_CXXALIAS_RPL (frexp, double, (double x, int *expptr));
+_GL_FUNCDECL_RPL (logbf, float, (float x));
+_GL_CXXALIAS_RPL (logbf, float, (float x));
 # else
-_GL_CXXALIAS_SYS (frexp, double, (double x, int *expptr));
+#  if !@HAVE_LOGBF@
+_GL_FUNCDECL_SYS (logbf, float, (float x));
+#  endif
+_GL_CXXALIAS_SYS (logbf, float, (float x));
 # endif
-_GL_CXXALIASWARN (frexp);
+_GL_CXXALIASWARN (logbf);
 #elif defined GNULIB_POSIXCHECK
-# undef frexp
-/* Assume frexp is always declared.  */
-_GL_WARN_ON_USE (frexp, "frexp is unportable - "
-                 "use gnulib module frexp for portability");
+# undef logbf
+# if HAVE_RAW_DECL_LOGBF
+_GL_WARN_ON_USE (logbf, "logbf is unportable - "
+                 "use gnulib module logbf for portability");
+# endif
 #endif
 
-
 #if @GNULIB_LOGB@
-# if !@HAVE_DECL_LOGB@
-_GL_EXTERN_C double logb (double x);
+# if @REPLACE_LOGB@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef logb
+#   define logb rpl_logb
+#  endif
+_GL_FUNCDECL_RPL (logb, double, (double x));
+_GL_CXXALIAS_RPL (logb, double, (double x));
+# else
+#  if !@HAVE_DECL_LOGB@
+_GL_FUNCDECL_SYS (logb, double, (double x));
+#  endif
+_GL_CXXALIAS_SYS (logb, double, (double x));
 # endif
+_GL_CXXALIASWARN (logb);
 #elif defined GNULIB_POSIXCHECK
 # undef logb
 # if HAVE_RAW_DECL_LOGB
@@ -133,245 +1525,227 @@ _GL_WARN_ON_USE (logb, "logb is unportable - "
 # endif
 #endif
 
-
-#if @GNULIB_ACOSL@
-# if !@HAVE_ACOSL@ || !@HAVE_DECL_ACOSL@
-_GL_FUNCDECL_SYS (acosl, long double, (long double x));
-# endif
-_GL_CXXALIAS_SYS (acosl, long double, (long double x));
-_GL_CXXALIASWARN (acosl);
-#elif defined GNULIB_POSIXCHECK
-# undef acosl
-# if HAVE_RAW_DECL_ACOSL
-_GL_WARN_ON_USE (acosl, "acosl is unportable - "
-                 "use gnulib module mathl for portability");
-# endif
-#endif
-
-
-#if @GNULIB_ASINL@
-# if !@HAVE_ASINL@ || !@HAVE_DECL_ASINL@
-_GL_FUNCDECL_SYS (asinl, long double, (long double x));
+#if @GNULIB_LOGBL@
+# if @REPLACE_LOGBL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef logbl
+#   define logbl rpl_logbl
+#  endif
+_GL_FUNCDECL_RPL (logbl, long double, (long double x));
+_GL_CXXALIAS_RPL (logbl, long double, (long double x));
+# else
+#  if !@HAVE_LOGBL@
+_GL_FUNCDECL_SYS (logbl, long double, (long double x));
+#  endif
+_GL_CXXALIAS_SYS (logbl, long double, (long double x));
 # endif
-_GL_CXXALIAS_SYS (asinl, long double, (long double x));
-_GL_CXXALIASWARN (asinl);
+_GL_CXXALIASWARN (logbl);
 #elif defined GNULIB_POSIXCHECK
-# undef asinl
-# if HAVE_RAW_DECL_ASINL
-_GL_WARN_ON_USE (asinl, "asinl is unportable - "
-                 "use gnulib module mathl for portability");
+# undef logbl
+# if HAVE_RAW_DECL_LOGBL
+_GL_WARN_ON_USE (logbl, "logbl is unportable - "
+                 "use gnulib module logbl for portability");
 # endif
 #endif
 
 
-#if @GNULIB_ATANL@
-# if !@HAVE_ATANL@ || !@HAVE_DECL_ATANL@
-_GL_FUNCDECL_SYS (atanl, long double, (long double x));
+#if @GNULIB_MODFF@
+# if @REPLACE_MODFF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef modff
+#   define modff rpl_modff
+#  endif
+_GL_FUNCDECL_RPL (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (modff, float, (float x, float *iptr));
+# else
+#  if !@HAVE_MODFF@
+#   undef modff
+_GL_FUNCDECL_SYS (modff, float, (float x, float *iptr) _GL_ARG_NONNULL ((2)));
+#  endif
+_GL_CXXALIAS_SYS (modff, float, (float x, float *iptr));
 # endif
-_GL_CXXALIAS_SYS (atanl, long double, (long double x));
-_GL_CXXALIASWARN (atanl);
+_GL_CXXALIASWARN (modff);
 #elif defined GNULIB_POSIXCHECK
-# undef atanl
-# if HAVE_RAW_DECL_ATANL
-_GL_WARN_ON_USE (atanl, "atanl is unportable - "
-                 "use gnulib module mathl for portability");
+# undef modff
+# if HAVE_RAW_DECL_MODFF
+_GL_WARN_ON_USE (modff, "modff is unportable - "
+                 "use gnulib module modff for portability");
 # endif
 #endif
 
-
-#if @GNULIB_CEILF@
-# if @REPLACE_CEILF@
+#if @GNULIB_MODF@
+# if @REPLACE_MODF@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   define ceilf rpl_ceilf
+#   undef modf
+#   define modf rpl_modf
 #  endif
-_GL_FUNCDECL_RPL (ceilf, float, (float x));
-_GL_CXXALIAS_RPL (ceilf, float, (float x));
+_GL_FUNCDECL_RPL (modf, double, (double x, double *iptr) _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (modf, double, (double x, double *iptr));
 # else
-#  if !@HAVE_DECL_CEILF@
-_GL_FUNCDECL_SYS (ceilf, float, (float x));
-#  endif
-_GL_CXXALIAS_SYS (ceilf, float, (float x));
+_GL_CXXALIAS_SYS (modf, double, (double x, double *iptr));
 # endif
-_GL_CXXALIASWARN (ceilf);
+_GL_CXXALIASWARN (modf);
 #elif defined GNULIB_POSIXCHECK
-# undef ceilf
-# if HAVE_RAW_DECL_CEILF
-_GL_WARN_ON_USE (ceilf, "ceilf is unportable - "
-                 "use gnulib module ceilf for portability");
+# undef modf
+# if HAVE_RAW_DECL_MODF
+_GL_WARN_ON_USE (modf, "modf has portability problems - "
+                 "use gnulib module modf for portability");
 # endif
 #endif
 
-#if @GNULIB_CEILL@
-# if @REPLACE_CEILL@
+#if @GNULIB_MODFL@
+# if @REPLACE_MODFL@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   define ceill rpl_ceill
+#   undef modfl
+#   define modfl rpl_modfl
 #  endif
-_GL_FUNCDECL_RPL (ceill, long double, (long double x));
-_GL_CXXALIAS_RPL (ceill, long double, (long double x));
+_GL_FUNCDECL_RPL (modfl, long double, (long double x, long double *iptr)
+                                      _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (modfl, long double, (long double x, long double *iptr));
 # else
-#  if !@HAVE_DECL_CEILL@
-_GL_FUNCDECL_SYS (ceill, long double, (long double x));
+#  if !@HAVE_MODFL@
+#   undef modfl
+_GL_FUNCDECL_SYS (modfl, long double, (long double x, long double *iptr)
+                                      _GL_ARG_NONNULL ((2)));
 #  endif
-_GL_CXXALIAS_SYS (ceill, long double, (long double x));
+_GL_CXXALIAS_SYS (modfl, long double, (long double x, long double *iptr));
 # endif
-_GL_CXXALIASWARN (ceill);
+_GL_CXXALIASWARN (modfl);
 #elif defined GNULIB_POSIXCHECK
-# undef ceill
-# if HAVE_RAW_DECL_CEILL
-_GL_WARN_ON_USE (ceill, "ceill is unportable - "
-                 "use gnulib module ceill for portability");
+# undef modfl
+# if HAVE_RAW_DECL_MODFL
+_GL_WARN_ON_USE (modfl, "modfl is unportable - "
+                 "use gnulib module modfl for portability");
 # endif
 #endif
 
 
-#if @GNULIB_COSL@
-# if !@HAVE_COSL@ || !@HAVE_DECL_COSL@
-_GL_FUNCDECL_SYS (cosl, long double, (long double x));
+#if @GNULIB_POWF@
+# if !@HAVE_POWF@
+#  undef powf
+_GL_FUNCDECL_SYS (powf, float, (float x, float y));
 # endif
-_GL_CXXALIAS_SYS (cosl, long double, (long double x));
-_GL_CXXALIASWARN (cosl);
+_GL_CXXALIAS_SYS (powf, float, (float x, float y));
+_GL_CXXALIASWARN (powf);
 #elif defined GNULIB_POSIXCHECK
-# undef cosl
-# if HAVE_RAW_DECL_COSL
-_GL_WARN_ON_USE (cosl, "cosl is unportable - "
-                 "use gnulib module mathl for portability");
+# undef powf
+# if HAVE_RAW_DECL_POWF
+_GL_WARN_ON_USE (powf, "powf is unportable - "
+                 "use gnulib module powf for portability");
 # endif
 #endif
 
 
-#if @GNULIB_EXPL@
-# if !@HAVE_EXPL@ || !@HAVE_DECL_EXPL@
-_GL_FUNCDECL_SYS (expl, long double, (long double x));
+#if @GNULIB_REMAINDERF@
+# if @REPLACE_REMAINDERF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef remainderf
+#   define remainderf rpl_remainderf
+#  endif
+_GL_FUNCDECL_RPL (remainderf, float, (float x, float y));
+_GL_CXXALIAS_RPL (remainderf, float, (float x, float y));
+# else
+#  if !@HAVE_REMAINDERF@
+_GL_FUNCDECL_SYS (remainderf, float, (float x, float y));
+#  endif
+_GL_CXXALIAS_SYS (remainderf, float, (float x, float y));
 # endif
-_GL_CXXALIAS_SYS (expl, long double, (long double x));
-_GL_CXXALIASWARN (expl);
+_GL_CXXALIASWARN (remainderf);
 #elif defined GNULIB_POSIXCHECK
-# undef expl
-# if HAVE_RAW_DECL_EXPL
-_GL_WARN_ON_USE (expl, "expl is unportable - "
-                 "use gnulib module mathl for portability");
+# undef remainderf
+# if HAVE_RAW_DECL_REMAINDERF
+_GL_WARN_ON_USE (remainderf, "remainderf is unportable - "
+                 "use gnulib module remainderf for portability");
 # endif
 #endif
 
-
-#if @GNULIB_FLOORF@
-# if @REPLACE_FLOORF@
+#if @GNULIB_REMAINDER@
+# if @REPLACE_REMAINDER@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   define floorf rpl_floorf
+#   undef remainder
+#   define remainder rpl_remainder
 #  endif
-_GL_FUNCDECL_RPL (floorf, float, (float x));
-_GL_CXXALIAS_RPL (floorf, float, (float x));
-#else
-#  if !@HAVE_DECL_FLOORF@
-_GL_FUNCDECL_SYS (floorf, float, (float x));
+_GL_FUNCDECL_RPL (remainder, double, (double x, double y));
+_GL_CXXALIAS_RPL (remainder, double, (double x, double y));
+# else
+#  if !@HAVE_REMAINDER@ || !@HAVE_DECL_REMAINDER@
+_GL_FUNCDECL_SYS (remainder, double, (double x, double y));
 #  endif
-_GL_CXXALIAS_SYS (floorf, float, (float x));
+_GL_CXXALIAS_SYS (remainder, double, (double x, double y));
 # endif
-_GL_CXXALIASWARN (floorf);
+_GL_CXXALIASWARN (remainder);
 #elif defined GNULIB_POSIXCHECK
-# undef floorf
-# if HAVE_RAW_DECL_FLOORF
-_GL_WARN_ON_USE (floorf, "floorf is unportable - "
-                 "use gnulib module floorf for portability");
+# undef remainder
+# if HAVE_RAW_DECL_REMAINDER
+_GL_WARN_ON_USE (remainder, "remainder is unportable - "
+                 "use gnulib module remainder for portability");
 # endif
 #endif
 
-#if @GNULIB_FLOORL@
-# if @REPLACE_FLOORL@
+#if @GNULIB_REMAINDERL@
+# if @REPLACE_REMAINDERL@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   define floorl rpl_floorl
+#   undef remainderl
+#   define remainderl rpl_remainderl
 #  endif
-_GL_FUNCDECL_RPL (floorl, long double, (long double x));
-_GL_CXXALIAS_RPL (floorl, long double, (long double x));
+_GL_FUNCDECL_RPL (remainderl, long double, (long double x, long double y));
+_GL_CXXALIAS_RPL (remainderl, long double, (long double x, long double y));
 # else
-#  if !@HAVE_DECL_FLOORL@
-_GL_FUNCDECL_SYS (floorl, long double, (long double x));
+#  if !@HAVE_DECL_REMAINDERL@
+#   undef remainderl
+_GL_FUNCDECL_SYS (remainderl, long double, (long double x, long double y));
 #  endif
-_GL_CXXALIAS_SYS (floorl, long double, (long double x));
+_GL_CXXALIAS_SYS (remainderl, long double, (long double x, long double y));
 # endif
-_GL_CXXALIASWARN (floorl);
+_GL_CXXALIASWARN (remainderl);
 #elif defined GNULIB_POSIXCHECK
-# undef floorl
-# if HAVE_RAW_DECL_FLOORL
-_GL_WARN_ON_USE (floorl, "floorl is unportable - "
-                 "use gnulib module floorl for portability");
+# undef remainderl
+# if HAVE_RAW_DECL_REMAINDERL
+_GL_WARN_ON_USE (remainderl, "remainderl is unportable - "
+                 "use gnulib module remainderl for portability");
 # endif
 #endif
 
 
-/* Write x as
-     x = mantissa * 2^exp
-   where
-     If x finite and nonzero: 0.5 <= |mantissa| < 1.0.
-     If x is zero: mantissa = x, exp = 0.
-     If x is infinite or NaN: mantissa = x, exp unspecified.
-   Store exp in *EXPPTR and return mantissa.  */
-#if @GNULIB_FREXPL@ && @REPLACE_FREXPL@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define frexpl rpl_frexpl
-# endif
-_GL_FUNCDECL_RPL (frexpl, long double,
-                  (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
-_GL_CXXALIAS_RPL (frexpl, long double, (long double x, int *expptr));
-#else
-# if !@HAVE_DECL_FREXPL@
-_GL_FUNCDECL_SYS (frexpl, long double,
-                  (long double x, int *expptr) _GL_ARG_NONNULL ((2)));
-# endif
-# if @GNULIB_FREXPL@
-_GL_CXXALIAS_SYS (frexpl, long double, (long double x, int *expptr));
+#if @GNULIB_RINTF@
+# if !@HAVE_DECL_RINTF@
+_GL_FUNCDECL_SYS (rintf, float, (float x));
 # endif
-#endif
-#if @GNULIB_FREXPL@ && !(@REPLACE_FREXPL@ && !@HAVE_DECL_FREXPL@)
-_GL_CXXALIASWARN (frexpl);
-#endif
-#if !@GNULIB_FREXPL@ && defined GNULIB_POSIXCHECK
-# undef frexpl
-# if HAVE_RAW_DECL_FREXPL
-_GL_WARN_ON_USE (frexpl, "frexpl is unportable - "
-                 "use gnulib module frexpl for portability");
+_GL_CXXALIAS_SYS (rintf, float, (float x));
+_GL_CXXALIASWARN (rintf);
+#elif defined GNULIB_POSIXCHECK
+# undef rintf
+# if HAVE_RAW_DECL_RINTF
+_GL_WARN_ON_USE (rintf, "rintf is unportable - "
+                 "use gnulib module rintf for portability");
 # endif
 #endif
 
-
-/* Return x * 2^exp.  */
-#if @GNULIB_LDEXPL@ && @REPLACE_LDEXPL@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define ldexpl rpl_ldexpl
-# endif
-_GL_FUNCDECL_RPL (ldexpl, long double, (long double x, int exp));
-_GL_CXXALIAS_RPL (ldexpl, long double, (long double x, int exp));
-#else
-# if !@HAVE_DECL_LDEXPL@
-_GL_FUNCDECL_SYS (ldexpl, long double, (long double x, int exp));
-# endif
-# if @GNULIB_LDEXPL@
-_GL_CXXALIAS_SYS (ldexpl, long double, (long double x, int exp));
+#if @GNULIB_RINT@
+# if !@HAVE_RINT@
+_GL_FUNCDECL_SYS (rint, double, (double x));
 # endif
-#endif
-#if @GNULIB_LDEXPL@
-_GL_CXXALIASWARN (ldexpl);
-#endif
-#if !@GNULIB_LDEXPL@ && defined GNULIB_POSIXCHECK
-# undef ldexpl
-# if HAVE_RAW_DECL_LDEXPL
-_GL_WARN_ON_USE (ldexpl, "ldexpl is unportable - "
-                 "use gnulib module ldexpl for portability");
+_GL_CXXALIAS_SYS (rint, double, (double x));
+_GL_CXXALIASWARN (rint);
+#elif defined GNULIB_POSIXCHECK
+# undef rint
+# if HAVE_RAW_DECL_RINT
+_GL_WARN_ON_USE (rint, "rint is unportable - "
+                 "use gnulib module rint for portability");
 # endif
 #endif
 
-
-#if @GNULIB_LOGL@
-# if !@HAVE_LOGL@ || !@HAVE_DECL_LOGL@
-_GL_FUNCDECL_SYS (logl, long double, (long double x));
+#if @GNULIB_RINTL@
+# if !@HAVE_RINTL@
+_GL_FUNCDECL_SYS (rintl, long double, (long double x));
 # endif
-_GL_CXXALIAS_SYS (logl, long double, (long double x));
-_GL_CXXALIASWARN (logl);
+_GL_CXXALIAS_SYS (rintl, long double, (long double x));
+_GL_CXXALIASWARN (rintl);
 #elif defined GNULIB_POSIXCHECK
-# undef logl
-# if HAVE_RAW_DECL_LOGL
-_GL_WARN_ON_USE (logl, "logl is unportable - "
-                 "use gnulib module mathl for portability");
+# undef rintl
+# if HAVE_RAW_DECL_RINTL
+_GL_WARN_ON_USE (rintl, "rintl is unportable - "
+                 "use gnulib module rintl for portability");
 # endif
 #endif
 
@@ -432,6 +1806,7 @@ _GL_FUNCDECL_RPL (roundl, long double, (long double x));
 _GL_CXXALIAS_RPL (roundl, long double, (long double x));
 # else
 #  if !@HAVE_DECL_ROUNDL@
+#   undef roundl
 _GL_FUNCDECL_SYS (roundl, long double, (long double x));
 #  endif
 _GL_CXXALIAS_SYS (roundl, long double, (long double x));
@@ -446,8 +1821,24 @@ _GL_WARN_ON_USE (roundl, "roundl is unportable - "
 #endif
 
 
+#if @GNULIB_SINF@
+# if !@HAVE_SINF@
+#  undef sinf
+_GL_FUNCDECL_SYS (sinf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (sinf, float, (float x));
+_GL_CXXALIASWARN (sinf);
+#elif defined GNULIB_POSIXCHECK
+# undef sinf
+# if HAVE_RAW_DECL_SINF
+_GL_WARN_ON_USE (sinf, "sinf is unportable - "
+                 "use gnulib module sinf for portability");
+# endif
+#endif
+
 #if @GNULIB_SINL@
 # if !@HAVE_SINL@ || !@HAVE_DECL_SINL@
+#  undef sinl
 _GL_FUNCDECL_SYS (sinl, long double, (long double x));
 # endif
 _GL_CXXALIAS_SYS (sinl, long double, (long double x));
@@ -456,28 +1847,85 @@ _GL_CXXALIASWARN (sinl);
 # undef sinl
 # if HAVE_RAW_DECL_SINL
 _GL_WARN_ON_USE (sinl, "sinl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module sinl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_SINHF@
+# if !@HAVE_SINHF@
+#  undef sinhf
+_GL_FUNCDECL_SYS (sinhf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (sinhf, float, (float x));
+_GL_CXXALIASWARN (sinhf);
+#elif defined GNULIB_POSIXCHECK
+# undef sinhf
+# if HAVE_RAW_DECL_SINHF
+_GL_WARN_ON_USE (sinhf, "sinhf is unportable - "
+                 "use gnulib module sinhf for portability");
 # endif
 #endif
 
 
+#if @GNULIB_SQRTF@
+# if !@HAVE_SQRTF@
+#  undef sqrtf
+_GL_FUNCDECL_SYS (sqrtf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (sqrtf, float, (float x));
+_GL_CXXALIASWARN (sqrtf);
+#elif defined GNULIB_POSIXCHECK
+# undef sqrtf
+# if HAVE_RAW_DECL_SQRTF
+_GL_WARN_ON_USE (sqrtf, "sqrtf is unportable - "
+                 "use gnulib module sqrtf for portability");
+# endif
+#endif
+
 #if @GNULIB_SQRTL@
-# if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@
+# if @REPLACE_SQRTL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef sqrtl
+#   define sqrtl rpl_sqrtl
+#  endif
+_GL_FUNCDECL_RPL (sqrtl, long double, (long double x));
+_GL_CXXALIAS_RPL (sqrtl, long double, (long double x));
+# else
+#  if !@HAVE_SQRTL@ || !@HAVE_DECL_SQRTL@
+#   undef sqrtl
 _GL_FUNCDECL_SYS (sqrtl, long double, (long double x));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (sqrtl, long double, (long double x));
+# endif
 _GL_CXXALIASWARN (sqrtl);
 #elif defined GNULIB_POSIXCHECK
 # undef sqrtl
 # if HAVE_RAW_DECL_SQRTL
 _GL_WARN_ON_USE (sqrtl, "sqrtl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module sqrtl for portability");
 # endif
 #endif
 
 
+#if @GNULIB_TANF@
+# if !@HAVE_TANF@
+#  undef tanf
+_GL_FUNCDECL_SYS (tanf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (tanf, float, (float x));
+_GL_CXXALIASWARN (tanf);
+#elif defined GNULIB_POSIXCHECK
+# undef tanf
+# if HAVE_RAW_DECL_TANF
+_GL_WARN_ON_USE (tanf, "tanf is unportable - "
+                 "use gnulib module tanf for portability");
+# endif
+#endif
+
 #if @GNULIB_TANL@
 # if !@HAVE_TANL@ || !@HAVE_DECL_TANL@
+#  undef tanl
 _GL_FUNCDECL_SYS (tanl, long double, (long double x));
 # endif
 _GL_CXXALIAS_SYS (tanl, long double, (long double x));
@@ -486,16 +1934,40 @@ _GL_CXXALIASWARN (tanl);
 # undef tanl
 # if HAVE_RAW_DECL_TANL
 _GL_WARN_ON_USE (tanl, "tanl is unportable - "
-                 "use gnulib module mathl for portability");
+                 "use gnulib module tanl for portability");
+# endif
+#endif
+
+
+#if @GNULIB_TANHF@
+# if !@HAVE_TANHF@
+#  undef tanhf
+_GL_FUNCDECL_SYS (tanhf, float, (float x));
+# endif
+_GL_CXXALIAS_SYS (tanhf, float, (float x));
+_GL_CXXALIASWARN (tanhf);
+#elif defined GNULIB_POSIXCHECK
+# undef tanhf
+# if HAVE_RAW_DECL_TANHF
+_GL_WARN_ON_USE (tanhf, "tanhf is unportable - "
+                 "use gnulib module tanhf for portability");
 # endif
 #endif
 
 
 #if @GNULIB_TRUNCF@
-# if !@HAVE_DECL_TRUNCF@
+# if @REPLACE_TRUNCF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define truncf rpl_truncf
+#  endif
+_GL_FUNCDECL_RPL (truncf, float, (float x));
+_GL_CXXALIAS_RPL (truncf, float, (float x));
+# else
+#  if !@HAVE_DECL_TRUNCF@
 _GL_FUNCDECL_SYS (truncf, float, (float x));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (truncf, float, (float x));
+# endif
 _GL_CXXALIASWARN (truncf);
 #elif defined GNULIB_POSIXCHECK
 # undef truncf
@@ -506,10 +1978,18 @@ _GL_WARN_ON_USE (truncf, "truncf is unportable - "
 #endif
 
 #if @GNULIB_TRUNC@
-# if !@HAVE_DECL_TRUNC@
+# if @REPLACE_TRUNC@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define trunc rpl_trunc
+#  endif
+_GL_FUNCDECL_RPL (trunc, double, (double x));
+_GL_CXXALIAS_RPL (trunc, double, (double x));
+# else
+#  if !@HAVE_DECL_TRUNC@
 _GL_FUNCDECL_SYS (trunc, double, (double x));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (trunc, double, (double x));
+# endif
 _GL_CXXALIASWARN (trunc);
 #elif defined GNULIB_POSIXCHECK
 # undef trunc
@@ -543,6 +2023,10 @@ _GL_WARN_ON_USE (truncl, "truncl is unportable - "
 #endif
 
 
+/* Definitions of function-like macros come here, after the function
+   declarations.  */
+
+
 #if @GNULIB_ISFINITE@
 # if @REPLACE_ISFINITE@
 _GL_EXTERN_C int gl_isfinitef (float x);
@@ -554,6 +2038,13 @@ _GL_EXTERN_C int gl_isfinitel (long double x);
     sizeof (x) == sizeof (double) ? gl_isfinited (x) : \
     gl_isfinitef (x))
 # endif
+# ifdef __cplusplus
+#  ifdef isfinite
+_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isfinite)
+#   undef isfinite
+_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isfinite)
+#  endif
+# endif
 #elif defined GNULIB_POSIXCHECK
 # if defined isfinite
 _GL_WARN_REAL_FLOATING_DECL (isfinite);
@@ -574,6 +2065,13 @@ _GL_EXTERN_C int gl_isinfl (long double x);
     sizeof (x) == sizeof (double) ? gl_isinfd (x) : \
     gl_isinff (x))
 # endif
+# ifdef __cplusplus
+#  ifdef isinf
+_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isinf)
+#   undef isinf
+_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isinf)
+#  endif
+# endif
 #elif defined GNULIB_POSIXCHECK
 # if defined isinf
 _GL_WARN_REAL_FLOATING_DECL (isinf);
@@ -609,7 +2107,8 @@ _GL_EXTERN_C int isnanf (float x);
    This function is a gnulib extension, unlike isnan() which applied only
    to 'double' numbers earlier but now is a type-generic macro.  */
 # if @HAVE_ISNAND@
-/* The original <math.h> included above provides a declaration of isnan macro.  */
+/* The original <math.h> included above provides a declaration of isnan
+   macro.  */
 #  if __GNUC__ >= 4
     /* GCC 4.0 and newer provides three built-ins for isnan.  */
 #   undef isnand
@@ -629,7 +2128,8 @@ _GL_EXTERN_C int isnand (double x);
 #if @GNULIB_ISNANL@
 /* Test for NaN for 'long double' numbers.  */
 # if @HAVE_ISNANL@
-/* The original <math.h> included above provides a declaration of isnan macro or (older) isnanl function.  */
+/* The original <math.h> included above provides a declaration of isnan
+   macro or (older) isnanl function.  */
 #  if __GNUC__ >= 4
     /* GCC 4.0 and newer provides three built-ins for isnan.  */
 #   undef isnanl
@@ -642,7 +2142,7 @@ _GL_EXTERN_C int isnand (double x);
 /* Test whether X is a NaN.  */
 #  undef isnanl
 #  define isnanl rpl_isnanl
-_GL_EXTERN_C int isnanl (long double x);
+_GL_EXTERN_C int isnanl (long double x) _GL_ATTRIBUTE_CONST;
 # endif
 #endif
 
@@ -654,7 +2154,7 @@ _GL_EXTERN_C int isnanl (long double x);
    that recursively expand back to isnan.  So use the gnulib
    replacements for them directly. */
 #  if @HAVE_ISNANF@ && __GNUC__ >= 4
-#   define gl_isnan_f(x) __builtin_isnan ((float)(x))
+#   define gl_isnan_f(x) __builtin_isnanf ((float)(x))
 #  else
 _GL_EXTERN_C int rpl_isnanf (float x);
 #   define gl_isnan_f(x) rpl_isnanf (x)
@@ -666,9 +2166,9 @@ _GL_EXTERN_C int rpl_isnand (double x);
 #   define gl_isnan_d(x) rpl_isnand (x)
 #  endif
 #  if @HAVE_ISNANL@ && __GNUC__ >= 4
-#   define gl_isnan_l(x) __builtin_isnan ((long double)(x))
+#   define gl_isnan_l(x) __builtin_isnanl ((long double)(x))
 #  else
-_GL_EXTERN_C int rpl_isnanl (long double x);
+_GL_EXTERN_C int rpl_isnanl (long double x) _GL_ATTRIBUTE_CONST;
 #   define gl_isnan_l(x) rpl_isnanl (x)
 #  endif
 #  undef isnan
@@ -676,6 +2176,24 @@ _GL_EXTERN_C int rpl_isnanl (long double x);
    (sizeof (x) == sizeof (long double) ? gl_isnan_l (x) : \
     sizeof (x) == sizeof (double) ? gl_isnan_d (x) : \
     gl_isnan_f (x))
+# elif __GNUC__ >= 4
+#  undef isnan
+#  define isnan(x) \
+   (sizeof (x) == sizeof (long double) ? __builtin_isnanl ((long double)(x)) : \
+    sizeof (x) == sizeof (double) ? __builtin_isnan ((double)(x)) : \
+    __builtin_isnanf ((float)(x)))
+# endif
+# ifdef __cplusplus
+#  ifdef isnan
+_GL_MATH_CXX_REAL_FLOATING_DECL_1 (isnan)
+#   undef isnan
+_GL_MATH_CXX_REAL_FLOATING_DECL_2 (isnan)
+#  endif
+# else
+/* Ensure isnan is a macro.  */
+#  ifndef isnan
+#   define isnan isnan
+#  endif
 # endif
 #elif defined GNULIB_POSIXCHECK
 # if defined isnan
@@ -700,12 +2218,14 @@ _GL_WARN_REAL_FLOATING_DECL (isnan);
 _GL_EXTERN_C int gl_signbitf (float arg);
 _GL_EXTERN_C int gl_signbitd (double arg);
 _GL_EXTERN_C int gl_signbitl (long double arg);
-#  if __GNUC__ >= 2 && !__STRICT_ANSI__
+#  if __GNUC__ >= 2 && !defined __STRICT_ANSI__
+#   define _GL_NUM_UINT_WORDS(type) \
+      ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
 #   if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf
 #    define gl_signbitf_OPTIMIZED_MACRO
 #    define gl_signbitf(arg) \
        ({ union { float _value;                                         \
-                  unsigned int _word[(sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \
+                  unsigned int _word[_GL_NUM_UINT_WORDS (float)];       \
                 } _m;                                                   \
           _m._value = (arg);                                            \
           (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1;          \
@@ -714,8 +2234,8 @@ _GL_EXTERN_C int gl_signbitl (long double arg);
 #   if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd
 #    define gl_signbitd_OPTIMIZED_MACRO
 #    define gl_signbitd(arg) \
-       ({ union { double _value;                                                \
-                  unsigned int _word[(sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \
+       ({ union { double _value;                                        \
+                  unsigned int _word[_GL_NUM_UINT_WORDS (double)];      \
                 } _m;                                                   \
           _m._value = (arg);                                            \
           (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1;          \
@@ -725,10 +2245,10 @@ _GL_EXTERN_C int gl_signbitl (long double arg);
 #    define gl_signbitl_OPTIMIZED_MACRO
 #    define gl_signbitl(arg) \
        ({ union { long double _value;                                   \
-                  unsigned int _word[(sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \
+                  unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
                 } _m;                                                   \
           _m._value = (arg);                                            \
-          (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1;                \
+          (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1;        \
         })
 #   endif
 #  endif
@@ -737,6 +2257,13 @@ _GL_EXTERN_C int gl_signbitl (long double arg);
     sizeof (x) == sizeof (double) ? gl_signbitd (x) : \
     gl_signbitf (x))
 # endif
+# ifdef __cplusplus
+#  ifdef signbit
+_GL_MATH_CXX_REAL_FLOATING_DECL_1 (signbit)
+#   undef signbit
+_GL_MATH_CXX_REAL_FLOATING_DECL_2 (signbit)
+#  endif
+# endif
 #elif defined GNULIB_POSIXCHECK
 # if defined signbit
 _GL_WARN_REAL_FLOATING_DECL (signbit);
@@ -745,6 +2272,7 @@ _GL_WARN_REAL_FLOATING_DECL (signbit);
 # endif
 #endif
 
+_GL_INLINE_HEADER_END
 
-#endif /* _GL_MATH_H */
-#endif /* _GL_MATH_H */
+#endif /* _@GUARD_PREFIX@_MATH_H */
+#endif /* _@GUARD_PREFIX@_MATH_H */
index da91056..a2de1d6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2006, 2009, 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -16,6 +16,8 @@
 
 #include <config.h>
 
+#define MBCHAR_INLINE _GL_EXTERN_INLINE
+
 #include <limits.h>
 
 #include "mbchar.h"
index f9f52b9..897da74 100644 (file)
@@ -1,5 +1,5 @@
 /* Multibyte character data type.
-   Copyright (C) 2001, 2005-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
 #include <wchar.h>
 #include <wctype.h>
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef MBCHAR_INLINE
+# define MBCHAR_INLINE _GL_INLINE
+#endif
+
 #define MBCHAR_BUF_SIZE 24
 
 struct mbchar
@@ -235,7 +243,7 @@ typedef struct mbchar mbchar_t;
 /* Unprintable characters appear as a small box of width 1.  */
 #define MB_UNPRINTABLE_WIDTH 1
 
-static inline int
+MBCHAR_INLINE int
 mb_width_aux (wint_t wc)
 {
   int w = wcwidth (wc);
@@ -256,7 +264,7 @@ mb_width_aux (wint_t wc)
    (mbc)->wc = (mbc)->buf[0] = (sc))
 
 /* Copying a character.  */
-static inline void
+MBCHAR_INLINE void
 mb_copy (mbchar_t *new_mbc, const mbchar_t *old_mbc)
 {
   if (old_mbc->ptr == &old_mbc->buf[0])
@@ -304,7 +312,7 @@ mb_copy (mbchar_t *new_mbc, const mbchar_t *old_mbc)
 
 extern const unsigned int is_basic_table[];
 
-static inline bool
+MBCHAR_INLINE bool
 is_basic (char c)
 {
   return (is_basic_table [(unsigned char) c >> 5] >> ((unsigned char) c & 31))
@@ -313,7 +321,7 @@ is_basic (char c)
 
 #else
 
-static inline bool
+MBCHAR_INLINE bool
 is_basic (char c)
 {
   switch (c)
@@ -347,4 +355,6 @@ is_basic (char c)
 
 #endif
 
+_GL_INLINE_HEADER_END
+
 #endif /* _MBCHAR_H */
diff --git a/lib/mbiter.c b/lib/mbiter.c
new file mode 100644 (file)
index 0000000..22a1ff8
--- /dev/null
@@ -0,0 +1,3 @@
+#include <config.h>
+#define MBITER_INLINE _GL_EXTERN_INLINE
+#include "mbiter.h"
index 8f443b5..d23e1d1 100644 (file)
@@ -1,5 +1,5 @@
 /* Iterating through multibyte strings: macros for multi-byte encodings.
-   Copyright (C) 2001, 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005, 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -47,9 +47,9 @@
      initializes the iterator, starting at startptr and crossing length bytes.
 
    mbi_avail (iter)
-     returns true if there are more multibyte chracters available before
+     returns true if there are more multibyte characters available before
      the end of string is reached. In this case, mbi_cur (iter) is
-     initialized to the next multibyte chracter.
+     initialized to the next multibyte character.
 
    mbi_advance (iter)
      advances the iterator by one multibyte character.
 
 #include "mbchar.h"
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef MBITER_INLINE
+# define MBITER_INLINE _GL_INLINE
+#endif
+
 struct mbiter_multi
 {
   const char *limit;    /* pointer to end of string */
@@ -112,7 +120,7 @@ struct mbiter_multi
         */
 };
 
-static inline void
+MBITER_INLINE void
 mbiter_multi_next (struct mbiter_multi *iter)
 {
   if (iter->next_done)
@@ -172,14 +180,14 @@ mbiter_multi_next (struct mbiter_multi *iter)
   iter->next_done = true;
 }
 
-static inline void
+MBITER_INLINE void
 mbiter_multi_reloc (struct mbiter_multi *iter, ptrdiff_t ptrdiff)
 {
   iter->cur.ptr += ptrdiff;
   iter->limit += ptrdiff;
 }
 
-static inline void
+MBITER_INLINE void
 mbiter_multi_copy (struct mbiter_multi *new_iter, const struct mbiter_multi *old_iter)
 {
   new_iter->limit = old_iter->limit;
@@ -212,4 +220,6 @@ typedef struct mbiter_multi mbi_iterator_t;
 /* Copying an iterator.  */
 #define mbi_copy mbiter_multi_copy
 
+_GL_INLINE_HEADER_END
+
 #endif /* _MBITER_H */
index 31f229c..1fa8b81 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert multibyte character to wide character.
-   Copyright (C) 1999-2002, 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2005-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
@@ -40,9 +40,6 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
 {
   char *pstate = (char *)ps;
 
-  if (pstate == NULL)
-    pstate = internal_state;
-
   if (s == NULL)
     {
       pwc = NULL;
@@ -54,6 +51,10 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
     return (size_t)(-2);
 
   /* Here n > 0.  */
+
+  if (pstate == NULL)
+    pstate = internal_state;
+
   {
     size_t nstate = pstate[0];
     char buf[4];
@@ -91,7 +92,7 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
 
     /* Here m > 0.  */
 
-# if __GLIBC__
+# if __GLIBC__ || defined __UCLIBC__
     /* Work around bug <http://sourceware.org/bugzilla/show_bug.cgi?id=9674> */
     mbtowc (NULL, NULL, 0);
 # endif
@@ -127,7 +128,7 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
       {
         const char *encoding = locale_charset ();
 
-        if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
+        if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
           {
             /* Cf. unistr/u8-mblen.c.  */
             unsigned char c = (unsigned char) p[0];
@@ -184,7 +185,8 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
         /* As a reference for this code, you can use the GNU libiconv
            implementation.  Look for uses of the RET_TOOFEW macro.  */
 
-        if (STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0))
+        if (STREQ_OPT (encoding,
+                       "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0))
           {
             if (m == 1)
               {
@@ -207,9 +209,12 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
               }
             goto invalid;
           }
-        if (STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
-            || STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
-            || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0))
+        if (STREQ_OPT (encoding,
+                       "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+            || STREQ_OPT (encoding,
+                          "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+            || STREQ_OPT (encoding,
+                          "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0))
           {
             if (m == 1)
               {
@@ -220,7 +225,8 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
               }
             goto invalid;
           }
-        if (STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0))
+        if (STREQ_OPT (encoding,
+                       "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0))
           {
             if (m == 1)
               {
@@ -238,7 +244,8 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
               }
             goto invalid;
           }
-        if (STREQ (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0))
+        if (STREQ_OPT (encoding,
+                       "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0))
           {
             if (m == 1)
               {
@@ -271,7 +278,7 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
               }
             goto invalid;
           }
-        if (STREQ (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0))
+        if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0))
           {
             if (m == 1)
               {
@@ -321,7 +328,7 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
 size_t
 rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
 {
-# if MBRTOWC_NULL_ARG_BUG || MBRTOWC_RETVAL_BUG
+# if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG || MBRTOWC_EMPTY_INPUT_BUG
   if (s == NULL)
     {
       pwc = NULL;
@@ -330,11 +337,16 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
     }
 # endif
 
+# if MBRTOWC_EMPTY_INPUT_BUG
+  if (n == 0)
+    return (size_t) -2;
+# endif
+
 # if MBRTOWC_RETVAL_BUG
   {
     static mbstate_t internal_state;
 
-    /* Override mbrtowc's internal state.  We can not call mbsinit() on the
+    /* Override mbrtowc's internal state.  We cannot call mbsinit() on the
        hidden internal state, but we can call it on our variable.  */
     if (ps == NULL)
       ps = &internal_state;
@@ -379,7 +391,16 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
     return ret;
   }
 # else
-  return mbrtowc (pwc, s, n, ps);
+  {
+#   if MBRTOWC_NULL_ARG1_BUG
+    wchar_t dummy;
+
+    if (pwc == NULL)
+      pwc = &dummy;
+#   endif
+
+    return mbrtowc (pwc, s, n, ps);
+  }
 # endif
 }
 
index 811e39b..71bae34 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for initial conversion state.
-   Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
 
 #include "verify.h"
 
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+
+/* On native Windows, 'mbstate_t' is defined as 'int'.  */
+
+int
+mbsinit (const mbstate_t *ps)
+{
+  return ps == NULL || *ps == 0;
+}
+
+#else
+
 /* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs()
    and wcrtomb(), wcsrtombs().
    We assume that
@@ -43,5 +55,7 @@ mbsinit (const mbstate_t *ps)
 {
   const char *pstate = (const char *)ps;
 
-  return pstate[0] == 0;
+  return pstate == NULL || pstate[0] == 0;
 }
+
+#endif
index 3db4eb6..f794450 100644 (file)
@@ -1,5 +1,5 @@
 /* Counting the multibyte characters in a string.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify
index 1e897cd..c1caad3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2010
+/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2014
    Free Software Foundation, Inc.
 
    Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
index a042948..06e1cbb 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare two memory areas with possibly different lengths.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index c00e141..245b8fd 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare two memory areas with possibly different lengths.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -29,7 +29,8 @@ extern "C" {
    This function's result is locale independent, unlike memcoll()'s.
    Return a negative number if S1 < S2, a positive number if S1 > S2, or
    0 if S1 and S2 have the same contents.  */
-extern int memcmp2 (const char *s1, size_t n1, const char *s2, size_t n2);
+extern int memcmp2 (const char *s1, size_t n1, const char *s2, size_t n2)
+  _GL_ATTRIBUTE_PURE;
 
 
 #ifdef __cplusplus
index d8ba983..dc97bd0 100644 (file)
@@ -1,5 +1,5 @@
 /* MIN, MAX macros.
-   Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009, 2010 Free Software
+   Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2014 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _MINMAX_H
 #define _MINMAX_H
index 597bba9..9673e6d 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2010 Free Software
+   Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2014 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* This file can be parametrized with the following macros:
      ENABLE_UNISTDIO    Set to 1 to enable the unistdio extensions.
index d76352d..831c147 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2006-2007, 2009-2010 Free Software
+   Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2014 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _PRINTF_ARGS_H
 #define _PRINTF_ARGS_H
@@ -136,10 +135,14 @@ typedef struct
 }
 argument;
 
+/* Number of directly allocated arguments (no malloc() needed).  */
+#define N_DIRECT_ALLOC_ARGUMENTS 7
+
 typedef struct
 {
   size_t count;
   argument *arg;
+  argument direct_alloc_arg[N_DIRECT_ALLOC_ARGUMENTS];
 }
 arguments;
 
index cf6efdb..8215d44 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a double into fraction and mantissa, for hexadecimal printf.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -14,7 +14,9 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include <config.h>
+#if ! defined USE_LONG_DOUBLE
+# include <config.h>
+#endif
 
 /* Specification.  */
 #ifdef USE_LONG_DOUBLE
index 1cbb096..aa23f98 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a double into fraction and mantissa, for hexadecimal printf.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
index 6ee1e9b..11cc752 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#define USE_LONG_DOUBLE
-#include "printf-frexp.c"
+#include <config.h>
+
+#if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
+
+/* Specification.  */
+# include "printf-frexpl.h"
+
+# include "printf-frexp.h"
+
+long double
+printf_frexpl (long double x, int *expptr)
+{
+  return printf_frexp (x, expptr);
+}
+
+#else
+
+# define USE_LONG_DOUBLE
+# include "printf-frexp.c"
+
+#endif
index 4783bbb..5fe4b57 100644 (file)
@@ -1,5 +1,5 @@
 /* Split a 'long double' into fraction and mantissa, for hexadecimal printf.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
index d88ddf3..e6a09a8 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999-2000, 2002-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999-2000, 2002-2003, 2006-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -12,8 +12,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* This file can be parametrized with the following macros:
      CHAR_T             The element type of the format string.
@@ -63,6 +62,9 @@
 /* malloc(), realloc(), free().  */
 #include <stdlib.h>
 
+/* memcpy().  */
+#include <string.h>
+
 /* errno.  */
 #include <errno.h>
 
@@ -80,23 +82,20 @@ STATIC
 int
 PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
 {
-  const CHAR_T *cp = format;            /* pointer into format */
+  const CHAR_T *cp = format;    /* pointer into format */
   size_t arg_posn = 0;          /* number of regular arguments consumed */
-  size_t d_allocated;                   /* allocated elements of d->dir */
-  size_t a_allocated;                   /* allocated elements of a->arg */
+  size_t d_allocated;           /* allocated elements of d->dir */
+  size_t a_allocated;           /* allocated elements of a->arg */
   size_t max_width_length = 0;
   size_t max_precision_length = 0;
 
   d->count = 0;
-  d_allocated = 1;
-  d->dir = (DIRECTIVE *) malloc (d_allocated * sizeof (DIRECTIVE));
-  if (d->dir == NULL)
-    /* Out of memory.  */
-    goto out_of_memory_1;
+  d_allocated = N_DIRECT_ALLOC_DIRECTIVES;
+  d->dir = d->direct_alloc_dir;
 
   a->count = 0;
-  a_allocated = 0;
-  a->arg = NULL;
+  a_allocated = N_DIRECT_ALLOC_ARGUMENTS;
+  a->arg = a->direct_alloc_arg;
 
 #define REGISTER_ARG(_index_,_type_) \
   {                                                                     \
@@ -113,12 +112,14 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
         if (size_overflow_p (memory_size))                              \
           /* Overflow, would lead to out of memory.  */                 \
           goto out_of_memory;                                           \
-        memory = (argument *) (a->arg                                   \
+        memory = (argument *) (a->arg != a->direct_alloc_arg            \
                                ? realloc (a->arg, memory_size)          \
                                : malloc (memory_size));                 \
         if (memory == NULL)                                             \
           /* Out of memory.  */                                         \
           goto out_of_memory;                                           \
+        if (a->arg == a->direct_alloc_arg)                              \
+          memcpy (memory, a->arg, a->count * sizeof (argument));        \
         a->arg = memory;                                                \
       }                                                                 \
     while (a->count <= n)                                               \
@@ -206,6 +207,13 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
                   dp->flags |= FLAG_ZERO;
                   cp++;
                 }
+#if __GLIBC__ >= 2 && !defined __UCLIBC__
+              else if (*cp == 'I')
+                {
+                  dp->flags |= FLAG_LOCALIZED;
+                  cp++;
+                }
+#endif
               else
                 break;
             }
@@ -393,7 +401,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
                       cp++;
                     }
 #if defined __APPLE__ && defined __MACH__
-                  /* On MacOS X 10.3, PRIdMAX is defined as "qd".
+                  /* On Mac OS X 10.3, PRIdMAX is defined as "qd".
                      We cannot change it to "lld" because PRIdMAX must also
                      be understood by the system's printf routines.  */
                   else if (*cp == 'q')
@@ -412,7 +420,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
                     }
 #endif
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
-                  /* On native Win32, PRIdMAX is defined as "I64d".
+                  /* On native Windows, PRIdMAX is defined as "I64d".
                      We cannot change it to "lld" because PRIdMAX must also
                      be understood by the system's printf routines.  */
                   else if (*cp == 'I' && cp[1] == '6' && cp[2] == '4')
@@ -581,10 +589,14 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
               if (size_overflow_p (memory_size))
                 /* Overflow, would lead to out of memory.  */
                 goto out_of_memory;
-              memory = (DIRECTIVE *) realloc (d->dir, memory_size);
+              memory = (DIRECTIVE *) (d->dir != d->direct_alloc_dir
+                                      ? realloc (d->dir, memory_size)
+                                      : malloc (memory_size));
               if (memory == NULL)
                 /* Out of memory.  */
                 goto out_of_memory;
+              if (d->dir == d->direct_alloc_dir)
+                memcpy (memory, d->dir, d->count * sizeof (DIRECTIVE));
               d->dir = memory;
             }
         }
@@ -603,19 +615,18 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
   return 0;
 
 error:
-  if (a->arg)
+  if (a->arg != a->direct_alloc_arg)
     free (a->arg);
-  if (d->dir)
+  if (d->dir != d->direct_alloc_dir)
     free (d->dir);
   errno = EINVAL;
   return -1;
 
 out_of_memory:
-  if (a->arg)
+  if (a->arg != a->direct_alloc_arg)
     free (a->arg);
-  if (d->dir)
+  if (d->dir != d->direct_alloc_dir)
     free (d->dir);
-out_of_memory_1:
   errno = ENOMEM;
   return -1;
 }
index 2cf965b..44d6f55 100644 (file)
@@ -1,5 +1,5 @@
 /* Parse printf format string.
-   Copyright (C) 1999, 2002-2003, 2005, 2007, 2009-2010 Free Software
+   Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2014 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _PRINTF_PARSE_H
 #define _PRINTF_PARSE_H
      ENABLE_UNISTDIO    Set to 1 to enable the unistdio extensions.
      STATIC             Set to 'static' to declare the function static.  */
 
+#if HAVE_FEATURES_H
+# include <features.h> /* for __GLIBC__, __UCLIBC__ */
+#endif
+
 #include "printf-args.h"
 
 
@@ -33,6 +36,9 @@
 #define FLAG_SPACE       8      /* space flag */
 #define FLAG_ALT        16      /* # flag */
 #define FLAG_ZERO       32
+#if __GLIBC__ >= 2 && !defined __UCLIBC__
+# define FLAG_LOCALIZED 64      /* I flag, uses localized digits */
+#endif
 
 /* arg_index value indicating that no argument is consumed.  */
 #define ARG_NONE        (~(size_t)0)
@@ -40,6 +46,9 @@
 /* xxx_directive: A parsed directive.
    xxx_directives: A parsed format string.  */
 
+/* Number of directly allocated directives (no malloc() needed).  */
+#define N_DIRECT_ALLOC_DIRECTIVES 7
+
 /* A parsed directive.  */
 typedef struct
 {
@@ -64,6 +73,7 @@ typedef struct
   char_directive *dir;
   size_t max_width_length;
   size_t max_precision_length;
+  char_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
 }
 char_directives;
 
@@ -93,6 +103,7 @@ typedef struct
   u8_directive *dir;
   size_t max_width_length;
   size_t max_precision_length;
+  u8_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
 }
 u8_directives;
 
@@ -120,6 +131,7 @@ typedef struct
   u16_directive *dir;
   size_t max_width_length;
   size_t max_precision_length;
+  u16_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
 }
 u16_directives;
 
@@ -147,6 +159,7 @@ typedef struct
   u32_directive *dir;
   size_t max_width_length;
   size_t max_precision_length;
+  u32_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
 }
 u32_directives;
 
index cb482d7..9adfb0d 100644 (file)
@@ -1,6 +1,6 @@
 # Add this package to a list of references stored in a text file.
 #
-#   Copyright (C) 2000, 2009, 2010 Free Software Foundation, Inc.
+#   Copyright (C) 2000, 2009-2014 Free Software Foundation, Inc.
 #
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU Lesser General Public License as published by
@@ -13,8 +13,7 @@
 #   GNU Lesser General Public License for more details.
 #
 #   You should have received a copy of the GNU Lesser General Public License along
-#   with this program; if not, write to the Free Software Foundation,
-#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#   with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # Written by Bruno Haible <haible@clisp.cons.org>.
 #
index 74f8e1c..45449cb 100644 (file)
@@ -1,6 +1,6 @@
 # Remove this package from a list of references stored in a text file.
 #
-#   Copyright (C) 2000, 2009, 2010 Free Software Foundation, Inc.
+#   Copyright (C) 2000, 2009-2014 Free Software Foundation, Inc.
 #
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU Lesser General Public License as published by
@@ -13,8 +13,7 @@
 #   GNU Lesser General Public License for more details.
 #
 #   You should have received a copy of the GNU Lesser General Public License along
-#   with this program; if not, write to the Free Software Foundation,
-#   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#   with this program; if not, see <http://www.gnu.org/licenses/>.
 #
 # Written by Bruno Haible <haible@clisp.cons.org>.
 #
index 172e91c..81dcaeb 100644 (file)
@@ -1,21 +1,19 @@
 /* Provide relocatable packages.
-   Copyright (C) 2003-2006, 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2003-2006, 2008-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU Library General Public License as published
-   by the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
-   License along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 /* Tell glibc's <stdio.h> to provide a prototype for getline().
@@ -25,6 +23,7 @@
 # define _GNU_SOURCE 1
 #endif
 
+#define _GL_USE_STDLIB_ALLOC 1
 #include <config.h>
 
 /* Specification.  */
@@ -43,7 +42,7 @@
 # include "xalloc.h"
 #endif
 
-#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
 # define WIN32_LEAN_AND_MEAN
 # include <windows.h>
 #endif
@@ -70,8 +69,8 @@
    ISSLASH(C)           tests whether C is a directory separator character.
    IS_PATH_WITH_DIR(P)  tests whether P contains a directory specification.
  */
-#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
-  /* Win32, Cygwin, OS/2, DOS */
+#if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __EMX__ || defined __DJGPP__
+  /* Native Windows, OS/2, DOS */
 # define ISSLASH(C) ((C) == '/' || (C) == '\\')
 # define HAS_DEVICE(P) \
     ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
 # define FILE_SYSTEM_PREFIX_LEN(P) 0
 #endif
 
+/* Whether to enable the more costly support for relocatable libraries.
+   It allows libraries to be have been installed with a different original
+   prefix than the program.  But it is quite costly, especially on Cygwin
+   platforms, see below.  Therefore we enable it by default only on native
+   Windows platforms.  */
+#ifndef ENABLE_COSTLY_RELOCATABLE
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+#  define ENABLE_COSTLY_RELOCATABLE 1
+# else
+#  define ENABLE_COSTLY_RELOCATABLE 0
+# endif
+#endif
+
 /* Original installation prefix.  */
 static char *orig_prefix;
 static size_t orig_prefix_len;
@@ -155,7 +167,7 @@ set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg)
 #endif
 }
 
-#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR)
+#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE)
 
 /* Convenience function:
    Computes the current installation prefix, based on the original
@@ -237,7 +249,7 @@ compute_curr_prefix (const char *orig_installprefix,
                often case-insensitive.  It's better to accept the comparison
                if the difference is only in case, rather than to fail.  */
 #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
-            /* Win32, Cygwin, OS/2, DOS - case insignificant file system */
+            /* Native Windows, Cygwin, OS/2, DOS - case insignificant file system */
             if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi)
                 != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi))
               break;
@@ -285,12 +297,17 @@ compute_curr_prefix (const char *orig_installprefix,
 
 #endif /* !IN_LIBRARY || PIC */
 
-#if defined PIC && defined INSTALLDIR
+#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE
 
 /* Full pathname of shared library, or NULL.  */
 static char *shared_library_fullname;
 
-#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+/* Native Windows only.
+   On Cygwin, it is better to use the Cygwin provided /proc interface, than
+   to use native Windows API and cygwin_conv_to_posix_path, because it
+   supports longer file names
+   (see <http://cygwin.com/ml/cygwin/2011-01/msg00410.html>).  */
 
 /* Determine the full pathname of the shared library when it is loaded.  */
 
@@ -312,37 +329,23 @@ DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved)
         /* Shouldn't happen.  */
         return FALSE;
 
-      {
-#if defined __CYGWIN__
-        /* On Cygwin, we need to convert paths coming from Win32 system calls
-           to the Unix-like slashified notation.  */
-        static char location_as_posix_path[2 * MAX_PATH];
-        /* There's no error return defined for cygwin_conv_to_posix_path.
-           See cygwin-api/func-cygwin-conv-to-posix-path.html.
-           Does it overflow the buffer of expected size MAX_PATH or does it
-           truncate the path?  I don't know.  Let's catch both.  */
-        cygwin_conv_to_posix_path (location, location_as_posix_path);
-        location_as_posix_path[MAX_PATH - 1] = '\0';
-        if (strlen (location_as_posix_path) >= MAX_PATH - 1)
-          /* A sign of buffer overflow or path truncation.  */
-          return FALSE;
-        shared_library_fullname = strdup (location_as_posix_path);
-#else
-        shared_library_fullname = strdup (location);
-#endif
-      }
+      shared_library_fullname = strdup (location);
     }
 
   return TRUE;
 }
 
-#else /* Unix except Cygwin */
+#else /* Unix */
 
 static void
 find_shared_library_fullname ()
 {
-#if defined __linux__ && __GLIBC__ >= 2
-  /* Linux has /proc/self/maps. glibc 2 has the getline() function.  */
+#if (defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)) || defined __CYGWIN__
+  /* Linux has /proc/self/maps. glibc 2 and uClibc have the getline()
+     function.
+     Cygwin >= 1.5 has /proc/self/maps and the getline() function too.
+     But it is costly: ca. 0.3 ms on Linux, 3 ms on Cygwin 1.5, and 5 ms on
+     Cygwin 1.7.  */
   FILE *fp;
 
   /* Open the current process' maps file.  It describes one VMA per line.  */
@@ -387,15 +390,15 @@ find_shared_library_fullname ()
 #endif
 }
 
-#endif /* (WIN32 or Cygwin) / (Unix except Cygwin) */
+#endif /* Native Windows / Unix */
 
 /* Return the full pathname of the current shared library.
    Return NULL if unknown.
-   Guaranteed to work only on Linux, Cygwin and Woe32.  */
+   Guaranteed to work only on Linux, Cygwin, and native Windows.  */
 static char *
 get_shared_library_fullname ()
 {
-#if !(defined _WIN32 || defined __WIN32__ || defined __CYGWIN__)
+#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)
   static bool tried_find_shared_library_fullname;
   if (!tried_find_shared_library_fullname)
     {
@@ -415,7 +418,7 @@ get_shared_library_fullname ()
 const char *
 relocate (const char *pathname)
 {
-#if defined PIC && defined INSTALLDIR
+#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE
   static int initialized;
 
   /* Initialization code for a shared library.  */
index 6328fa8..af8bcc1 100644 (file)
@@ -1,21 +1,19 @@
 /* Provide relocatable packages.
-   Copyright (C) 2003, 2005, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2005, 2008-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU Library General Public License as published
-   by the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
-   License along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _RELOCATABLE_H
 #define _RELOCATABLE_H
index d0fb4a9..1efb6e6 100644 (file)
@@ -1,5 +1,5 @@
 /* signbit() macro: Determine the sign bit of a floating-point number.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
index f2ef1d9..3240e4e 100644 (file)
@@ -1,5 +1,5 @@
 /* signbit() macro: Determine the sign bit of a floating-point number.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
index adcb71e..3f84725 100644 (file)
@@ -1,5 +1,5 @@
 /* signbit() macro: Determine the sign bit of a floating-point number.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
index 381eea1..680ca0f 100644 (file)
@@ -1,5 +1,5 @@
 /* size_max.h -- declare SIZE_MAX through system headers
-   Copyright (C) 2005-2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2014 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef GNULIB_SIZE_MAX_H
 #define GNULIB_SIZE_MAX_H
index f2510a9..2f34a13 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <haible@clisp.cons.org>, 2001.
 
    This program is free software; you can redistribute it and/or modify
@@ -12,8 +12,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _GL_STDBOOL_H
 #define _GL_STDBOOL_H
 # undef true
 #endif
 
-/* For the sake of symbolic names in gdb, we define true and false as
-   enum constants, not only as macros.
-   It is tempting to write
-      typedef enum { false = 0, true = 1 } _Bool;
-   so that gdb prints values of type 'bool' symbolically. But if we do
-   this, values of type '_Bool' may promote to 'int' or 'unsigned int'
-   (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
-   (see ISO C 99 6.3.1.1.(2)).  So we add a negative value to the
-   enum; this ensures that '_Bool' promotes to 'int'.  */
-#if defined __cplusplus || (defined __BEOS__ && !defined __HAIKU__)
+#ifdef __cplusplus
+# define _Bool bool
+# define bool bool
+#else
+# if defined __BEOS__ && !defined __HAIKU__
   /* A compiler known to have 'bool'.  */
   /* If the compiler already has both 'bool' and '_Bool', we can assume they
      are the same types.  */
-# if !@HAVE__BOOL@
+#  if !@HAVE__BOOL@
 typedef bool _Bool;
-# endif
-#else
-# if !defined __GNUC__
+#  endif
+# else
+#  if !defined __GNUC__
    /* If @HAVE__BOOL@:
         Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
         the built-in _Bool type is used.  See
@@ -104,19 +98,35 @@ typedef bool _Bool;
           "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
         The only benefit of the enum, debuggability, is not important
         with these compilers.  So use 'signed char' and no enum.  */
-#  define _Bool signed char
-# else
+#   define _Bool signed char
+#  else
    /* With this compiler, trust the _Bool type if the compiler has it.  */
-#  if !@HAVE__BOOL@
+#   if !@HAVE__BOOL@
+   /* For the sake of symbolic names in gdb, define true and false as
+      enum constants, not only as macros.
+      It is tempting to write
+         typedef enum { false = 0, true = 1 } _Bool;
+      so that gdb prints values of type 'bool' symbolically.  But then
+      values of type '_Bool' might promote to 'int' or 'unsigned int'
+      (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
+      (see ISO C 99 6.3.1.1.(2)).  So add a negative value to the
+      enum; this ensures that '_Bool' promotes to 'int'.  */
 typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
+#   endif
 #  endif
 # endif
+# define bool _Bool
 #endif
-#define bool _Bool
 
 /* The other macros must be usable in preprocessor directives.  */
-#define false 0
-#define true 1
+#ifdef __cplusplus
+# define false false
+# define true true
+#else
+# define false 0
+# define true 1
+#endif
+
 #define __bool_true_false_are_defined 1
 
 #endif /* _GL_STDBOOL_H */
index 285f80c..cd36146 100644 (file)
@@ -2,18 +2,17 @@
    Written by Bruno Haible <haible@clisp.cons.org>, 2001.
 
    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
+   it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation; either version 2, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU Lesser General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _UNISTRING_STDBOOL_H
 #define _UNISTRING_STDBOOL_H
index b1dfb67..204c4bc 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
 
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Eric Blake.  */
 
@@ -26,6 +25,7 @@
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
 
 #if defined __need_wchar_t || defined __need_size_t  \
   || defined __need_ptrdiff_t || defined __need_NULL \
@@ -37,9 +37,9 @@
    remember if special invocation has ever been used to obtain wint_t,
    in which case we need to clean up NULL yet again.  */
 
-# if !(defined _GL_STDDEF_H && defined _GL_STDDEF_WINT_T)
+# if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T)
 #  ifdef __need_wint_t
-#   undef _GL_STDDEF_H
+#   undef _@GUARD_PREFIX@_STDDEF_H
 #   define _GL_STDDEF_WINT_T
 #  endif
 #  @INCLUDE_NEXT@ @NEXT_STDDEF_H@
 #else
 /* Normal invocation convention.  */
 
-# ifndef _GL_STDDEF_H
+# ifndef _@GUARD_PREFIX@_STDDEF_H
 
 /* The include_next requires a split double-inclusion guard.  */
 
 #  @INCLUDE_NEXT@ @NEXT_STDDEF_H@
 
-#  ifndef _GL_STDDEF_H
-#   define _GL_STDDEF_H
+#  ifndef _@GUARD_PREFIX@_STDDEF_H
+#   define _@GUARD_PREFIX@_STDDEF_H
 
 /* On NetBSD 5.0, the definition of NULL lacks proper parentheses.  */
 #if @REPLACE_NULL@
@@ -81,6 +81,6 @@
 # define wchar_t int
 #endif
 
-#  endif /* _GL_STDDEF_H */
-# endif /* _GL_STDDEF_H */
+#  endif /* _@GUARD_PREFIX@_STDDEF_H */
+# endif /* _@GUARD_PREFIX@_STDDEF_H */
 #endif /* __need_XXX */
index 997e406..169adf6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2002, 2004-2010 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2014 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
    This file is part of gnulib.
 
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /*
  * ISO C 99 <stdint.h> for platforms that lack it.
  * <http://www.opengroup.org/susv3xbd/stdint.h.html>
  */
 
-#ifndef _GL_STDINT_H
+#ifndef _@GUARD_PREFIX@_STDINT_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
 
 /* When including a system file that in turn includes <inttypes.h>,
    use the system <inttypes.h>, not our substitute.  This avoids
    <inttypes.h>.  */
 #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
 
+/* On Android (Bionic libc), <sys/types.h> includes this file before
+   having defined 'time_t'.  Therefore in this case avoid including
+   other system header files; just include the system's <stdint.h>.
+   Ideally we should test __BIONIC__ here, but it is only defined after
+   <sys/cdefs.h> has been included; hence test __ANDROID__ instead.  */
+#if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H
+# @INCLUDE_NEXT@ @NEXT_STDINT_H@
+#else
+
 /* Get those types that are already defined in other system include
    files, so that we can "#define int8_t signed char" below without
    worrying about a later system include file containing a "typedef
       diagnostics.  */
 #  define __STDINT_H__
 # endif
+
+  /* Some pre-C++11 <stdint.h> implementations need this.  */
+# ifdef __cplusplus
+#  ifndef __STDC_CONSTANT_MACROS
+#   define __STDC_CONSTANT_MACROS 1
+#  endif
+#  ifndef __STDC_LIMIT_MACROS
+#   define __STDC_LIMIT_MACROS 1
+#  endif
+# endif
+
   /* Other systems may have an incomplete or buggy <stdint.h>.
      Include it before <inttypes.h>, since any "#include <stdint.h>"
      in <inttypes.h> would reinclude us, skipping our contents because
-     _GL_STDINT_H is defined.
+     _@GUARD_PREFIX@_STDINT_H is defined.
      The include_next requires a split double-inclusion guard.  */
 # @INCLUDE_NEXT@ @NEXT_STDINT_H@
 #endif
 
-#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
-#define _GL_STDINT_H
+#if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+#define _@GUARD_PREFIX@_STDINT_H
 
 /* <sys/types.h> defines some of the stdint.h types as well, on glibc,
    IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
    AIX 5.2 <sys/types.h> isn't needed and causes troubles.
-   MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
+   Mac OS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
    relies on the system <stdint.h> definitions, so include
    <sys/types.h> after @NEXT_STDINT_H@.  */
 #if @HAVE_SYS_TYPES_H@ && ! defined _AIX
 # include <sys/types.h>
 #endif
 
-/* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
+/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX,
+   LONG_MIN, LONG_MAX, ULONG_MAX.  */
 #include <limits.h>
 
 #if @HAVE_INTTYPES_H@
 
 #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
 
-/* Minimum and maximum values for a integer type under the usual assumption.
+/* Minimum and maximum values for an integer type under the usual assumption.
    Return an unspecified value if BITS == 0, adding a check to pacify
    picky compilers.  */
 
         warnings in the signed case.  */ \
      ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
 
+#if !GNULIB_defined_stdint_types
+
 /* 7.18.1.1. Exact-width integer types */
 
 /* Here we assume a standard architecture where the hardware integer
@@ -133,40 +156,54 @@ typedef unsigned int gl_uint32_t;
 #define int32_t gl_int32_t
 #define uint32_t gl_uint32_t
 
+/* If the system defines INT64_MAX, assume int64_t works.  That way,
+   if the underlying platform defines int64_t to be a 64-bit long long
+   int, the code below won't mistakenly define it to be a 64-bit long
+   int, which would mess up C++ name mangling.  We must use #ifdef
+   rather than #if, to avoid an error with HP-UX 10.20 cc.  */
+
+#ifdef INT64_MAX
+# define GL_INT64_T
+#else
 /* Do not undefine int64_t if gnulib is not being used with 64-bit
    types, since otherwise it breaks platforms like Tandem/NSK.  */
-#if LONG_MAX >> 31 >> 31 == 1
-# undef int64_t
+# if LONG_MAX >> 31 >> 31 == 1
+#  undef int64_t
 typedef long int gl_int64_t;
-# define int64_t gl_int64_t
-# define GL_INT64_T
-#elif defined _MSC_VER
-# undef int64_t
+#  define int64_t gl_int64_t
+#  define GL_INT64_T
+# elif defined _MSC_VER
+#  undef int64_t
 typedef __int64 gl_int64_t;
-# define int64_t gl_int64_t
-# define GL_INT64_T
-#elif @HAVE_LONG_LONG_INT@
-# undef int64_t
+#  define int64_t gl_int64_t
+#  define GL_INT64_T
+# elif @HAVE_LONG_LONG_INT@
+#  undef int64_t
 typedef long long int gl_int64_t;
-# define int64_t gl_int64_t
-# define GL_INT64_T
+#  define int64_t gl_int64_t
+#  define GL_INT64_T
+# endif
 #endif
 
-#if ULONG_MAX >> 31 >> 31 >> 1 == 1
-# undef uint64_t
-typedef unsigned long int gl_uint64_t;
-# define uint64_t gl_uint64_t
+#ifdef UINT64_MAX
 # define GL_UINT64_T
-#elif defined _MSC_VER
-# undef uint64_t
+#else
+# if ULONG_MAX >> 31 >> 31 >> 1 == 1
+#  undef uint64_t
+typedef unsigned long int gl_uint64_t;
+#  define uint64_t gl_uint64_t
+#  define GL_UINT64_T
+# elif defined _MSC_VER
+#  undef uint64_t
 typedef unsigned __int64 gl_uint64_t;
-# define uint64_t gl_uint64_t
-# define GL_UINT64_T
-#elif @HAVE_UNSIGNED_LONG_LONG_INT@
-# undef uint64_t
+#  define uint64_t gl_uint64_t
+#  define GL_UINT64_T
+# elif @HAVE_UNSIGNED_LONG_LONG_INT@
+#  undef uint64_t
 typedef unsigned long long int gl_uint64_t;
-# define uint64_t gl_uint64_t
-# define GL_UINT64_T
+#  define uint64_t gl_uint64_t
+#  define GL_UINT64_T
+# endif
 #endif
 
 /* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
@@ -209,8 +246,9 @@ typedef unsigned long long int gl_uint64_t;
 
 /* Here we assume a standard architecture where the hardware integer
    types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
-   are taken from the same list of types.  Assume that 'long int'
-   is fast enough for all narrower integers.  */
+   are taken from the same list of types.  The following code normally
+   uses types consistent with glibc, as that lessens the chance of
+   incompatibility with older GNU hosts.  */
 
 #undef int_fast8_t
 #undef uint_fast8_t
@@ -220,12 +258,21 @@ typedef unsigned long long int gl_uint64_t;
 #undef uint_fast32_t
 #undef int_fast64_t
 #undef uint_fast64_t
-typedef long int gl_int_fast8_t;
-typedef unsigned long int gl_uint_fast8_t;
-typedef long int gl_int_fast16_t;
-typedef unsigned long int gl_uint_fast16_t;
+typedef signed char gl_int_fast8_t;
+typedef unsigned char gl_uint_fast8_t;
+
+#ifdef __sun
+/* Define types compatible with SunOS 5.10, so that code compiled under
+   earlier SunOS versions works with code compiled under SunOS 5.10.  */
+typedef int gl_int_fast32_t;
+typedef unsigned int gl_uint_fast32_t;
+#else
 typedef long int gl_int_fast32_t;
 typedef unsigned long int gl_uint_fast32_t;
+#endif
+typedef gl_int_fast32_t gl_int_fast16_t;
+typedef gl_uint_fast32_t gl_uint_fast16_t;
+
 #define int_fast8_t gl_int_fast8_t
 #define uint_fast8_t gl_uint_fast8_t
 #define int_fast16_t gl_int_fast16_t
@@ -253,36 +300,48 @@ typedef unsigned long int gl_uintptr_t;
 /* Note: These types are compiler dependent. It may be unwise to use them in
    public header files. */
 
-#undef intmax_t
-#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+/* If the system defines INTMAX_MAX, assume that intmax_t works, and
+   similarly for UINTMAX_MAX and uintmax_t.  This avoids problems with
+   assuming one type where another is used by the system.  */
+
+#ifndef INTMAX_MAX
+# undef INTMAX_C
+# undef intmax_t
+# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
 typedef long long int gl_intmax_t;
-# define intmax_t gl_intmax_t
-#elif defined GL_INT64_T
-# define intmax_t int64_t
-#else
+#  define intmax_t gl_intmax_t
+# elif defined GL_INT64_T
+#  define intmax_t int64_t
+# else
 typedef long int gl_intmax_t;
-# define intmax_t gl_intmax_t
+#  define intmax_t gl_intmax_t
+# endif
 #endif
 
-#undef uintmax_t
-#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+#ifndef UINTMAX_MAX
+# undef UINTMAX_C
+# undef uintmax_t
+# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
 typedef unsigned long long int gl_uintmax_t;
-# define uintmax_t gl_uintmax_t
-#elif defined GL_UINT64_T
-# define uintmax_t uint64_t
-#else
+#  define uintmax_t gl_uintmax_t
+# elif defined GL_UINT64_T
+#  define uintmax_t uint64_t
+# else
 typedef unsigned long int gl_uintmax_t;
-# define uintmax_t gl_uintmax_t
+#  define uintmax_t gl_uintmax_t
+# endif
 #endif
 
 /* Verify that intmax_t and uintmax_t have the same size.  Too much code
    breaks if this is not the case.  If this check fails, the reason is likely
    to be found in the autoconf macros.  */
-typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1];
+typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
+                                ? 1 : -1];
 
-/* 7.18.2. Limits of specified-width integer types */
+#define GNULIB_defined_stdint_types 1
+#endif /* !GNULIB_defined_stdint_types */
 
-#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
+/* 7.18.2. Limits of specified-width integer types */
 
 /* 7.18.2.1. Limits of exact-width integer types */
 
@@ -310,17 +369,14 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) -
 #define INT32_MAX  2147483647
 #define UINT32_MAX  4294967295U
 
-#undef INT64_MIN
-#undef INT64_MAX
-#ifdef GL_INT64_T
+#if defined GL_INT64_T && ! defined INT64_MAX
 /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
    evaluates the latter incorrectly in preprocessor expressions.  */
 # define INT64_MIN  (- INTMAX_C (1) << 63)
 # define INT64_MAX  INTMAX_C (9223372036854775807)
 #endif
 
-#undef UINT64_MAX
-#ifdef GL_UINT64_T
+#if defined GL_UINT64_T && ! defined UINT64_MAX
 # define UINT64_MAX  UINTMAX_C (18446744073709551615)
 #endif
 
@@ -372,23 +428,29 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) -
 #undef INT_FAST8_MIN
 #undef INT_FAST8_MAX
 #undef UINT_FAST8_MAX
-#define INT_FAST8_MIN  LONG_MIN
-#define INT_FAST8_MAX  LONG_MAX
-#define UINT_FAST8_MAX  ULONG_MAX
+#define INT_FAST8_MIN  SCHAR_MIN
+#define INT_FAST8_MAX  SCHAR_MAX
+#define UINT_FAST8_MAX  UCHAR_MAX
 
 #undef INT_FAST16_MIN
 #undef INT_FAST16_MAX
 #undef UINT_FAST16_MAX
-#define INT_FAST16_MIN  LONG_MIN
-#define INT_FAST16_MAX  LONG_MAX
-#define UINT_FAST16_MAX  ULONG_MAX
+#define INT_FAST16_MIN  INT_FAST32_MIN
+#define INT_FAST16_MAX  INT_FAST32_MAX
+#define UINT_FAST16_MAX  UINT_FAST32_MAX
 
 #undef INT_FAST32_MIN
 #undef INT_FAST32_MAX
 #undef UINT_FAST32_MAX
-#define INT_FAST32_MIN  LONG_MIN
-#define INT_FAST32_MAX  LONG_MAX
-#define UINT_FAST32_MAX  ULONG_MAX
+#ifdef __sun
+# define INT_FAST32_MIN  INT_MIN
+# define INT_FAST32_MAX  INT_MAX
+# define UINT_FAST32_MAX  UINT_MAX
+#else
+# define INT_FAST32_MIN  LONG_MIN
+# define INT_FAST32_MAX  LONG_MAX
+# define UINT_FAST32_MAX  ULONG_MAX
+#endif
 
 #undef INT_FAST64_MIN
 #undef INT_FAST64_MAX
@@ -413,21 +475,23 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) -
 
 /* 7.18.2.5. Limits of greatest-width integer types */
 
-#undef INTMAX_MIN
-#undef INTMAX_MAX
-#ifdef INT64_MAX
-# define INTMAX_MIN  INT64_MIN
-# define INTMAX_MAX  INT64_MAX
-#else
-# define INTMAX_MIN  INT32_MIN
-# define INTMAX_MAX  INT32_MAX
+#ifndef INTMAX_MAX
+# undef INTMAX_MIN
+# ifdef INT64_MAX
+#  define INTMAX_MIN  INT64_MIN
+#  define INTMAX_MAX  INT64_MAX
+# else
+#  define INTMAX_MIN  INT32_MIN
+#  define INTMAX_MAX  INT32_MAX
+# endif
 #endif
 
-#undef UINTMAX_MAX
-#ifdef UINT64_MAX
-# define UINTMAX_MAX  UINT64_MAX
-#else
-# define UINTMAX_MAX  UINT32_MAX
+#ifndef UINTMAX_MAX
+# ifdef UINT64_MAX
+#  define UINTMAX_MAX  UINT64_MAX
+# else
+#  define UINTMAX_MAX  UINT32_MAX
+# endif
 #endif
 
 /* 7.18.3. Limits of other integer types */
@@ -475,10 +539,16 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) -
 
 /* wchar_t limits */
 /* Get WCHAR_MIN, WCHAR_MAX.
-   This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested
-   includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes
+   This include is not on the top, above, because on OSF/1 4.0 we have a
+   sequence of nested includes
+   <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes
    <stdint.h> and assumes its types are already defined.  */
-#if ! (defined WCHAR_MIN && defined WCHAR_MAX)
+#if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX)
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
 # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
 # include <wchar.h>
 # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
@@ -498,12 +568,8 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) -
 #define WINT_MAX  \
    _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
 
-#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
-
 /* 7.18.4. Macros for integer constants */
 
-#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
-
 /* 7.18.4.1. Macros for minimum-width integer constants */
 /* According to ISO C 99 Technical Corrigendum 1 */
 
@@ -544,25 +610,26 @@ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) -
 
 /* 7.18.4.2. Macros for greatest-width integer constants */
 
-#undef INTMAX_C
-#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
-# define INTMAX_C(x)   x##LL
-#elif defined GL_INT64_T
-# define INTMAX_C(x)   INT64_C(x)
-#else
-# define INTMAX_C(x)   x##L
+#ifndef INTMAX_C
+# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+#  define INTMAX_C(x)   x##LL
+# elif defined GL_INT64_T
+#  define INTMAX_C(x)   INT64_C(x)
+# else
+#  define INTMAX_C(x)   x##L
+# endif
 #endif
 
-#undef UINTMAX_C
-#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
-# define UINTMAX_C(x)  x##ULL
-#elif defined GL_UINT64_T
-# define UINTMAX_C(x)  UINT64_C(x)
-#else
-# define UINTMAX_C(x)  x##UL
+#ifndef UINTMAX_C
+# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+#  define UINTMAX_C(x)  x##ULL
+# elif defined GL_UINT64_T
+#  define UINTMAX_C(x)  UINT64_C(x)
+# else
+#  define UINTMAX_C(x)  x##UL
+# endif
 #endif
 
-#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
-
-#endif /* _GL_STDINT_H */
-#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
+#endif /* _@GUARD_PREFIX@_STDINT_H */
+#endif /* !(defined __ANDROID__ && ...) */
+#endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
index d6f2cb0..2afadcd 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2002, 2004-2009 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2010 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
    This file is part of gnulib.
 
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /*
  * Subset of ISO C 99 <stdint.h> for platforms that lack it.
@@ -121,7 +120,6 @@ typedef unsigned int unistring_uint32_t;
 /* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
 #define _UINT8_T
 #define _UINT32_T
-#define _UINT64_T
 
 
 #endif /* _UNISTRING_STDINT_H */
index 528b6ef..b50c937 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation details of FILE streams.
-   Copyright (C) 2007-2008, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2008, 2010-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -26,7 +26,9 @@
 # include <sys/param.h>
 #endif
 
-#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+#include <errno.h>                             /* For detecting Plan9.  */
+
+#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
 
 # if defined __DragonFly__          /* DragonFly */
   /* See <http://www.dragonflybsd.org/cvsweb/src/lib/libc/stdio/priv_stdio.h?rev=HEAD&content-type=text/x-cvsweb-markup>.  */
@@ -55,7 +57,7 @@
 #  define fp_ fp
 # endif
 
-# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ /* NetBSD >= 1.5ZA, OpenBSD */
+# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __ANDROID__ /* NetBSD >= 1.5ZA, OpenBSD, Android */
   /* See <http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup>
      and <http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup> */
   struct __sfileext
@@ -64,7 +66,7 @@
       /* More fields, not relevant here.  */
     };
 #  define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub
-# else                                         /* FreeBSD, NetBSD <= 1.5Z, DragonFly, MacOS X, Cygwin */
+# else                                         /* FreeBSD, NetBSD <= 1.5Z, DragonFly, Mac OS X, Cygwin */
 #  define fp_ub fp_->_ub
 # endif
 
 
 /* SystemV derived implementations.  */
 
+#ifdef __TANDEM                     /* NonStop Kernel */
+# ifndef _IOERR
+/* These values were determined by the program 'stdioext-flags' at
+   <http://lists.gnu.org/archive/html/bug-gnulib/2010-12/msg00165.html>.  */
+#  define _IOERR   0x40
+#  define _IOREAD  0x80
+#  define _IOWRT    0x4
+#  define _IORW   0x100
+# endif
+#endif
+
 #if defined _IOERR
 
 # if defined __sun && defined _LP64 /* Solaris/{SPARC,AMD64} 64-bit */
index 3839ff3..57d32cc 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <stdlib.h>.
 
-   Copyright (C) 1995, 2001-2004, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2004, 2006-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
 
-#if defined __need_malloc_and_calloc
-/* Special invocation convention inside glibc header files.  */
+#if defined __need_system_stdlib_h || defined __need_malloc_and_calloc
+/* Special invocation conventions inside some gnulib header files,
+   and inside some glibc header files, respectively.  */
 
 #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
 
 #else
 /* Normal invocation convention.  */
 
-#ifndef _GL_STDLIB_H
+#ifndef _@GUARD_PREFIX@_STDLIB_H
 
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
 
-#ifndef _GL_STDLIB_H
-#define _GL_STDLIB_H
+#ifndef _@GUARD_PREFIX@_STDLIB_H
+#define _@GUARD_PREFIX@_STDLIB_H
 
 /* NetBSD 5.0 mis-defines NULL.  */
 #include <stddef.h>
 
+/* MirBSD 10 defines WEXITSTATUS in <sys/wait.h>, not in <stdlib.h>.  */
+#if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS
+# include <sys/wait.h>
+#endif
+
 /* Solaris declares getloadavg() in <sys/loadavg.h>.  */
 #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@
 # include <sys/loadavg.h>
 #endif
 
-/* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included
-   from <stdlib.h> if _REENTRANT is defined.  Include it always.  */
-#if @HAVE_RANDOM_H@
-# include <random.h>
+/* Native Windows platforms declare mktemp() in <io.h>.  */
+#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+# include <io.h>
 #endif
 
-#if !@HAVE_STRUCT_RANDOM_DATA@ || (@GNULIB_RANDOM_R@ && !@HAVE_RANDOM_R@) \
-    || defined GNULIB_POSIXCHECK
-# include <stdint.h>
-#endif
+#if @GNULIB_RANDOM_R@
 
-#if !@HAVE_STRUCT_RANDOM_DATA@
+/* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included
+   from <stdlib.h> if _REENTRANT is defined.  Include it whenever we need
+   'struct random_data'.  */
+# if @HAVE_RANDOM_H@
+#  include <random.h>
+# endif
+
+# if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@
+#  include <stdint.h>
+# endif
+
+# if !@HAVE_STRUCT_RANDOM_DATA@
+/* Define 'struct random_data'.
+   But allow multiple gnulib generated <stdlib.h> replacements to coexist.  */
+#  if !GNULIB_defined_struct_random_data
 struct random_data
 {
   int32_t *fptr;                /* Front pointer.  */
@@ -65,15 +82,29 @@ struct random_data
   int rand_sep;                 /* Distance between front and rear.  */
   int32_t *end_ptr;             /* Pointer behind state table.  */
 };
+#   define GNULIB_defined_struct_random_data 1
+#  endif
+# endif
 #endif
 
-#if (@GNULIB_MKSTEMP@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
-/* On MacOS X 10.3, only <unistd.h> declares mkstemp.  */
+#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+/* On Mac OS X 10.3, only <unistd.h> declares mkstemp.  */
+/* On Mac OS X 10.5, only <unistd.h> declares mkstemps.  */
 /* On Cygwin 1.7.1, only <unistd.h> declares getsubopt.  */
 /* But avoid namespace pollution on glibc systems and native Windows.  */
 # include <unistd.h>
 #endif
 
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+   The attribute __pure__ was added in gcc 2.96.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The definition of _Noreturn is copied here.  */
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
@@ -95,11 +126,30 @@ struct random_data
 #endif
 
 
+#if @GNULIB__EXIT@
+/* Terminate the current process with the given return code, without running
+   the 'atexit' handlers.  */
+# if !@HAVE__EXIT@
+_GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status));
+# endif
+_GL_CXXALIAS_SYS (_Exit, void, (int status));
+_GL_CXXALIASWARN (_Exit);
+#elif defined GNULIB_POSIXCHECK
+# undef _Exit
+# if HAVE_RAW_DECL__EXIT
+_GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
+                 "use gnulib module _Exit for portability");
+# endif
+#endif
+
+
 #if @GNULIB_ATOLL@
 /* Parse a signed decimal integer.
    Returns the value of the integer.  Errors are not detected.  */
 # if !@HAVE_ATOLL@
-_GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_SYS (atoll, long long, (const char *string)
+                                    _GL_ATTRIBUTE_PURE
+                                    _GL_ARG_NONNULL ((1)));
 # endif
 _GL_CXXALIAS_SYS (atoll, long long, (const char *string));
 _GL_CXXALIASWARN (atoll);
@@ -112,7 +162,7 @@ _GL_WARN_ON_USE (atoll, "atoll is unportable - "
 #endif
 
 #if @GNULIB_CALLOC_POSIX@
-# if !@HAVE_CALLOC_POSIX@
+# if @REPLACE_CALLOC@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef calloc
 #   define calloc rpl_calloc
@@ -149,7 +199,8 @@ _GL_CXXALIASWARN (canonicalize_file_name);
 #elif defined GNULIB_POSIXCHECK
 # undef canonicalize_file_name
 # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
-_GL_WARN_ON_USE (canonicalize_file_name, "canonicalize_file_name is unportable - "
+_GL_WARN_ON_USE (canonicalize_file_name,
+                 "canonicalize_file_name is unportable - "
                  "use gnulib module canonicalize-lgpl for portability");
 # endif
 #endif
@@ -212,14 +263,19 @@ _GL_CXXALIASWARN (grantpt);
 #elif defined GNULIB_POSIXCHECK
 # undef grantpt
 # if HAVE_RAW_DECL_GRANTPT
-_GL_WARN_ON_USE (ptsname, "grantpt is not portable - "
+_GL_WARN_ON_USE (grantpt, "grantpt is not portable - "
                  "use gnulib module grantpt for portability");
 # endif
 #endif
 
+/* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not
+   rely on GNU or POSIX semantics for malloc and realloc (for example,
+   by never specifying a zero size), so it does not need malloc or
+   realloc to be redefined.  */
 #if @GNULIB_MALLOC_POSIX@
-# if !@HAVE_MALLOC_POSIX@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# if @REPLACE_MALLOC@
+#  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
+        || _GL_USE_STDLIB_ALLOC)
 #   undef malloc
 #   define malloc rpl_malloc
 #  endif
@@ -229,13 +285,28 @@ _GL_CXXALIAS_RPL (malloc, void *, (size_t size));
 _GL_CXXALIAS_SYS (malloc, void *, (size_t size));
 # endif
 _GL_CXXALIASWARN (malloc);
-#elif defined GNULIB_POSIXCHECK
+#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
 # undef malloc
 /* Assume malloc is always declared.  */
 _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - "
                  "use gnulib module malloc-posix for portability");
 #endif
 
+/* Convert a multibyte character to a wide character.  */
+#if @GNULIB_MBTOWC@
+# if @REPLACE_MBTOWC@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef mbtowc
+#   define mbtowc rpl_mbtowc
+#  endif
+_GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
+_GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
+# else
+_GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
+# endif
+_GL_CXXALIASWARN (mbtowc);
+#endif
+
 #if @GNULIB_MKDTEMP@
 /* Create a unique temporary directory from TEMPLATE.
    The last six characters of TEMPLATE must be "XXXXXX";
@@ -368,13 +439,38 @@ _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - "
 # endif
 #endif
 
+#if @GNULIB_POSIX_OPENPT@
+/* Return an FD open to the master side of a pseudo-terminal.  Flags should
+   include O_RDWR, and may also include O_NOCTTY.  */
+# if !@HAVE_POSIX_OPENPT@
+_GL_FUNCDECL_SYS (posix_openpt, int, (int flags));
+# endif
+_GL_CXXALIAS_SYS (posix_openpt, int, (int flags));
+_GL_CXXALIASWARN (posix_openpt);
+#elif defined GNULIB_POSIXCHECK
+# undef posix_openpt
+# if HAVE_RAW_DECL_POSIX_OPENPT
+_GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - "
+                 "use gnulib module posix_openpt for portability");
+# endif
+#endif
+
 #if @GNULIB_PTSNAME@
 /* Return the pathname of the pseudo-terminal slave associated with
    the master FD is open on, or NULL on errors.  */
-# if !@HAVE_PTSNAME@
+# if @REPLACE_PTSNAME@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ptsname
+#   define ptsname rpl_ptsname
+#  endif
+_GL_FUNCDECL_RPL (ptsname, char *, (int fd));
+_GL_CXXALIAS_RPL (ptsname, char *, (int fd));
+# else
+#  if !@HAVE_PTSNAME@
 _GL_FUNCDECL_SYS (ptsname, char *, (int fd));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (ptsname, char *, (int fd));
+# endif
 _GL_CXXALIASWARN (ptsname);
 #elif defined GNULIB_POSIXCHECK
 # undef ptsname
@@ -384,6 +480,32 @@ _GL_WARN_ON_USE (ptsname, "ptsname is not portable - "
 # endif
 #endif
 
+#if @GNULIB_PTSNAME_R@
+/* Set the pathname of the pseudo-terminal slave associated with
+   the master FD is open on and return 0, or set errno and return
+   non-zero on errors.  */
+# if @REPLACE_PTSNAME_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ptsname_r
+#   define ptsname_r rpl_ptsname_r
+#  endif
+_GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
+_GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
+# else
+#  if !@HAVE_PTSNAME_R@
+_GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
+#  endif
+_GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
+# endif
+_GL_CXXALIASWARN (ptsname_r);
+#elif defined GNULIB_POSIXCHECK
+# undef ptsname_r
+# if HAVE_RAW_DECL_PTSNAME_R
+_GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - "
+                 "use gnulib module ptsname_r for portability");
+# endif
+#endif
+
 #if @GNULIB_PUTENV@
 # if @REPLACE_PUTENV@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -407,12 +529,83 @@ _GL_CXXALIASWARN (putenv);
 # endif
 #endif
 
+
+#if @GNULIB_RANDOM@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (random, long, (void));
+# endif
+_GL_CXXALIAS_SYS (random, long, (void));
+_GL_CXXALIASWARN (random);
+#elif defined GNULIB_POSIXCHECK
+# undef random
+# if HAVE_RAW_DECL_RANDOM
+_GL_WARN_ON_USE (random, "random is unportable - "
+                 "use gnulib module random for portability");
+# endif
+#endif
+
+#if @GNULIB_RANDOM@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (srandom, void, (unsigned int seed));
+# endif
+_GL_CXXALIAS_SYS (srandom, void, (unsigned int seed));
+_GL_CXXALIASWARN (srandom);
+#elif defined GNULIB_POSIXCHECK
+# undef srandom
+# if HAVE_RAW_DECL_SRANDOM
+_GL_WARN_ON_USE (srandom, "srandom is unportable - "
+                 "use gnulib module random for portability");
+# endif
+#endif
+
+#if @GNULIB_RANDOM@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (initstate, char *,
+                  (unsigned int seed, char *buf, size_t buf_size)
+                  _GL_ARG_NONNULL ((2)));
+# endif
+_GL_CXXALIAS_SYS (initstate, char *,
+                  (unsigned int seed, char *buf, size_t buf_size));
+_GL_CXXALIASWARN (initstate);
+#elif defined GNULIB_POSIXCHECK
+# undef initstate
+# if HAVE_RAW_DECL_INITSTATE_R
+_GL_WARN_ON_USE (initstate, "initstate is unportable - "
+                 "use gnulib module random for portability");
+# endif
+#endif
+
+#if @GNULIB_RANDOM@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (setstate, char *, (char *arg_state));
+_GL_CXXALIASWARN (setstate);
+#elif defined GNULIB_POSIXCHECK
+# undef setstate
+# if HAVE_RAW_DECL_SETSTATE_R
+_GL_WARN_ON_USE (setstate, "setstate is unportable - "
+                 "use gnulib module random for portability");
+# endif
+#endif
+
+
 #if @GNULIB_RANDOM_R@
-# if !@HAVE_RANDOM_R@
+# if @REPLACE_RANDOM_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef random_r
+#   define random_r rpl_random_r
+#  endif
+_GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result)
+                                 _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result));
+# else
+#  if !@HAVE_RANDOM_R@
 _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result)
                                  _GL_ARG_NONNULL ((1, 2)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result));
+# endif
 _GL_CXXALIASWARN (random_r);
 #elif defined GNULIB_POSIXCHECK
 # undef random_r
@@ -423,13 +616,25 @@ _GL_WARN_ON_USE (random_r, "random_r is unportable - "
 #endif
 
 #if @GNULIB_RANDOM_R@
-# if !@HAVE_RANDOM_R@
+# if @REPLACE_RANDOM_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef srandom_r
+#   define srandom_r rpl_srandom_r
+#  endif
+_GL_FUNCDECL_RPL (srandom_r, int,
+                  (unsigned int seed, struct random_data *rand_state)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (srandom_r, int,
+                  (unsigned int seed, struct random_data *rand_state));
+# else
+#  if !@HAVE_RANDOM_R@
 _GL_FUNCDECL_SYS (srandom_r, int,
                   (unsigned int seed, struct random_data *rand_state)
                   _GL_ARG_NONNULL ((2)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (srandom_r, int,
                   (unsigned int seed, struct random_data *rand_state));
+# endif
 _GL_CXXALIASWARN (srandom_r);
 #elif defined GNULIB_POSIXCHECK
 # undef srandom_r
@@ -440,15 +645,29 @@ _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - "
 #endif
 
 #if @GNULIB_RANDOM_R@
-# if !@HAVE_RANDOM_R@
+# if @REPLACE_RANDOM_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef initstate_r
+#   define initstate_r rpl_initstate_r
+#  endif
+_GL_FUNCDECL_RPL (initstate_r, int,
+                  (unsigned int seed, char *buf, size_t buf_size,
+                   struct random_data *rand_state)
+                  _GL_ARG_NONNULL ((2, 4)));
+_GL_CXXALIAS_RPL (initstate_r, int,
+                  (unsigned int seed, char *buf, size_t buf_size,
+                   struct random_data *rand_state));
+# else
+#  if !@HAVE_RANDOM_R@
 _GL_FUNCDECL_SYS (initstate_r, int,
                   (unsigned int seed, char *buf, size_t buf_size,
                    struct random_data *rand_state)
                   _GL_ARG_NONNULL ((2, 4)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (initstate_r, int,
                   (unsigned int seed, char *buf, size_t buf_size,
                    struct random_data *rand_state));
+# endif
 _GL_CXXALIASWARN (initstate_r);
 #elif defined GNULIB_POSIXCHECK
 # undef initstate_r
@@ -459,13 +678,25 @@ _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - "
 #endif
 
 #if @GNULIB_RANDOM_R@
-# if !@HAVE_RANDOM_R@
+# if @REPLACE_RANDOM_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef setstate_r
+#   define setstate_r rpl_setstate_r
+#  endif
+_GL_FUNCDECL_RPL (setstate_r, int,
+                  (char *arg_state, struct random_data *rand_state)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (setstate_r, int,
+                  (char *arg_state, struct random_data *rand_state));
+# else
+#  if !@HAVE_RANDOM_R@
 _GL_FUNCDECL_SYS (setstate_r, int,
                   (char *arg_state, struct random_data *rand_state)
                   _GL_ARG_NONNULL ((1, 2)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (setstate_r, int,
                   (char *arg_state, struct random_data *rand_state));
+# endif
 _GL_CXXALIASWARN (setstate_r);
 #elif defined GNULIB_POSIXCHECK
 # undef setstate_r
@@ -477,8 +708,9 @@ _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
 
 
 #if @GNULIB_REALLOC_POSIX@
-# if !@HAVE_REALLOC_POSIX@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# if @REPLACE_REALLOC@
+#  if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
+        || _GL_USE_STDLIB_ALLOC)
 #   undef realloc
 #   define realloc rpl_realloc
 #  endif
@@ -488,7 +720,7 @@ _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size));
 _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size));
 # endif
 _GL_CXXALIASWARN (realloc);
-#elif defined GNULIB_POSIXCHECK
+#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
 # undef realloc
 /* Assume realloc is always declared.  */
 _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - "
@@ -535,6 +767,22 @@ _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - "
 # endif
 #endif
 
+#if @GNULIB_SECURE_GETENV@
+/* Look up NAME in the environment, returning 0 in insecure situations.  */
+# if !@HAVE_SECURE_GETENV@
+_GL_FUNCDECL_SYS (secure_getenv, char *,
+                  (char const *name) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name));
+_GL_CXXALIASWARN (secure_getenv);
+#elif defined GNULIB_POSIXCHECK
+# undef secure_getenv
+# if HAVE_RAW_DECL_SECURE_GETENV
+_GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - "
+                 "use gnulib module secure_getenv for portability");
+# endif
+#endif
+
 #if @GNULIB_SETENV@
 /* Set NAME to VALUE in the environment.
    If REPLACE is nonzero, overwrite an existing value.  */
@@ -549,7 +797,7 @@ _GL_FUNCDECL_RPL (setenv, int,
 _GL_CXXALIAS_RPL (setenv, int,
                   (const char *name, const char *value, int replace));
 # else
-#  if !@HAVE_SETENV@
+#  if !@HAVE_DECL_SETENV@
 _GL_FUNCDECL_SYS (setenv, int,
                   (const char *name, const char *value, int replace)
                   _GL_ARG_NONNULL ((1)));
@@ -557,7 +805,9 @@ _GL_FUNCDECL_SYS (setenv, int,
 _GL_CXXALIAS_SYS (setenv, int,
                   (const char *name, const char *value, int replace));
 # endif
+# if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@)
 _GL_CXXALIASWARN (setenv);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef setenv
 # if HAVE_RAW_DECL_SETENV
@@ -652,7 +902,7 @@ _GL_CXXALIASWARN (unlockpt);
 #elif defined GNULIB_POSIXCHECK
 # undef unlockpt
 # if HAVE_RAW_DECL_UNLOCKPT
-_GL_WARN_ON_USE (ptsname, "unlockpt is not portable - "
+_GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - "
                  "use gnulib module unlockpt for portability");
 # endif
 #endif
@@ -667,12 +917,14 @@ _GL_WARN_ON_USE (ptsname, "unlockpt is not portable - "
 _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (unsetenv, int, (const char *name));
 # else
-#  if !@HAVE_UNSETENV@
+#  if !@HAVE_DECL_UNSETENV@
 _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1)));
 #  endif
 _GL_CXXALIAS_SYS (unsetenv, int, (const char *name));
 # endif
+# if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@)
 _GL_CXXALIASWARN (unsetenv);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef unsetenv
 # if HAVE_RAW_DECL_UNSETENV
@@ -681,7 +933,22 @@ _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - "
 # endif
 #endif
 
+/* Convert a wide character to a multibyte character.  */
+#if @GNULIB_WCTOMB@
+# if @REPLACE_WCTOMB@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef wctomb
+#   define wctomb rpl_wctomb
+#  endif
+_GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc));
+_GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc));
+# else
+_GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc));
+# endif
+_GL_CXXALIASWARN (wctomb);
+#endif
+
 
-#endif /* _GL_STDLIB_H */
-#endif /* _GL_STDLIB_H */
+#endif /* _@GUARD_PREFIX@_STDLIB_H */
+#endif /* _@GUARD_PREFIX@_STDLIB_H */
 #endif
diff --git a/lib/str-kmp.h b/lib/str-kmp.h
new file mode 100644 (file)
index 0000000..aab0105
--- /dev/null
@@ -0,0 +1,153 @@
+/* Substring search in a NUL terminated string of UNIT elements,
+   using the Knuth-Morris-Pratt algorithm.
+   Copyright (C) 2005-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2005.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+/* Before including this file, you need to define:
+     UNIT                    The element type of the needle and haystack.
+     CANON_ELEMENT(c)        A macro that canonicalizes an element right after
+                             it has been fetched from needle or haystack.
+                             The argument is of type UNIT; the result must be
+                             of type UNIT as well.  */
+
+/* Knuth-Morris-Pratt algorithm.
+   See http://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm
+   HAYSTACK is the NUL terminated string in which to search for.
+   NEEDLE is the string to search for in HAYSTACK, consisting of NEEDLE_LEN
+   units.
+   Return a boolean indicating success:
+   Return true and set *RESULTP if the search was completed.
+   Return false if it was aborted because not enough memory was available.  */
+static bool
+knuth_morris_pratt (const UNIT *haystack,
+                    const UNIT *needle, size_t needle_len,
+                    const UNIT **resultp)
+{
+  size_t m = needle_len;
+
+  /* Allocate the table.  */
+  size_t *table = (size_t *) nmalloca (m, sizeof (size_t));
+  if (table == NULL)
+    return false;
+  /* Fill the table.
+     For 0 < i < m:
+       0 < table[i] <= i is defined such that
+       forall 0 < x < table[i]: needle[x..i-1] != needle[0..i-1-x],
+       and table[i] is as large as possible with this property.
+     This implies:
+     1) For 0 < i < m:
+          If table[i] < i,
+          needle[table[i]..i-1] = needle[0..i-1-table[i]].
+     2) For 0 < i < m:
+          rhaystack[0..i-1] == needle[0..i-1]
+          and exists h, i <= h < m: rhaystack[h] != needle[h]
+          implies
+          forall 0 <= x < table[i]: rhaystack[x..x+m-1] != needle[0..m-1].
+     table[0] remains uninitialized.  */
+  {
+    size_t i, j;
+
+    /* i = 1: Nothing to verify for x = 0.  */
+    table[1] = 1;
+    j = 0;
+
+    for (i = 2; i < m; i++)
+      {
+        /* Here: j = i-1 - table[i-1].
+           The inequality needle[x..i-1] != needle[0..i-1-x] is known to hold
+           for x < table[i-1], by induction.
+           Furthermore, if j>0: needle[i-1-j..i-2] = needle[0..j-1].  */
+        UNIT b = CANON_ELEMENT (needle[i - 1]);
+
+        for (;;)
+          {
+            /* Invariants: The inequality needle[x..i-1] != needle[0..i-1-x]
+               is known to hold for x < i-1-j.
+               Furthermore, if j>0: needle[i-1-j..i-2] = needle[0..j-1].  */
+            if (b == CANON_ELEMENT (needle[j]))
+              {
+                /* Set table[i] := i-1-j.  */
+                table[i] = i - ++j;
+                break;
+              }
+            /* The inequality needle[x..i-1] != needle[0..i-1-x] also holds
+               for x = i-1-j, because
+                 needle[i-1] != needle[j] = needle[i-1-x].  */
+            if (j == 0)
+              {
+                /* The inequality holds for all possible x.  */
+                table[i] = i;
+                break;
+              }
+            /* The inequality needle[x..i-1] != needle[0..i-1-x] also holds
+               for i-1-j < x < i-1-j+table[j], because for these x:
+                 needle[x..i-2]
+                 = needle[x-(i-1-j)..j-1]
+                 != needle[0..j-1-(x-(i-1-j))]  (by definition of table[j])
+                    = needle[0..i-2-x],
+               hence needle[x..i-1] != needle[0..i-1-x].
+               Furthermore
+                 needle[i-1-j+table[j]..i-2]
+                 = needle[table[j]..j-1]
+                 = needle[0..j-1-table[j]]  (by definition of table[j]).  */
+            j = j - table[j];
+          }
+        /* Here: j = i - table[i].  */
+      }
+  }
+
+  /* Search, using the table to accelerate the processing.  */
+  {
+    size_t j;
+    const UNIT *rhaystack;
+    const UNIT *phaystack;
+
+    *resultp = NULL;
+    j = 0;
+    rhaystack = haystack;
+    phaystack = haystack;
+    /* Invariant: phaystack = rhaystack + j.  */
+    while (*phaystack != 0)
+      if (CANON_ELEMENT (needle[j]) == CANON_ELEMENT (*phaystack))
+        {
+          j++;
+          phaystack++;
+          if (j == m)
+            {
+              /* The entire needle has been found.  */
+              *resultp = rhaystack;
+              break;
+            }
+        }
+      else if (j > 0)
+        {
+          /* Found a match of needle[0..j-1], mismatch at needle[j].  */
+          rhaystack += table[j];
+          j -= table[j];
+        }
+      else
+        {
+          /* Found a mismatch at needle[0] already.  */
+          rhaystack++;
+          phaystack++;
+        }
+  }
+
+  freea (table);
+  return true;
+}
+
+#undef CANON_ELEMENT
diff --git a/lib/str-two-way.h b/lib/str-two-way.h
new file mode 100644 (file)
index 0000000..ee57b4a
--- /dev/null
@@ -0,0 +1,452 @@
+/* Byte-wise substring search, using the Two-Way algorithm.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Written by Eric Blake <ebb9@byu.net>, 2008.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+/* Before including this file, you need to include <config.h> and
+   <string.h>, and define:
+     RESULT_TYPE             A macro that expands to the return type.
+     AVAILABLE(h, h_l, j, n_l)
+                             A macro that returns nonzero if there are
+                             at least N_L bytes left starting at H[J].
+                             H is 'unsigned char *', H_L, J, and N_L
+                             are 'size_t'; H_L is an lvalue.  For
+                             NUL-terminated searches, H_L can be
+                             modified each iteration to avoid having
+                             to compute the end of H up front.
+
+  For case-insensitivity, you may optionally define:
+     CMP_FUNC(p1, p2, l)     A macro that returns 0 iff the first L
+                             characters of P1 and P2 are equal.
+     CANON_ELEMENT(c)        A macro that canonicalizes an element right after
+                             it has been fetched from one of the two strings.
+                             The argument is an 'unsigned char'; the result
+                             must be an 'unsigned char' as well.
+
+  This file undefines the macros documented above, and defines
+  LONG_NEEDLE_THRESHOLD.
+*/
+
+#include <limits.h>
+#include <stdint.h>
+
+/* We use the Two-Way string matching algorithm (also known as
+   Chrochemore-Perrin), which guarantees linear complexity with
+   constant space.  Additionally, for long needles, we also use a bad
+   character shift table similar to the Boyer-Moore algorithm to
+   achieve improved (potentially sub-linear) performance.
+
+   See http://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260,
+   http://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm,
+   http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.6641&rep=rep1&type=pdf
+*/
+
+/* Point at which computing a bad-byte shift table is likely to be
+   worthwhile.  Small needles should not compute a table, since it
+   adds (1 << CHAR_BIT) + NEEDLE_LEN computations of preparation for a
+   speedup no greater than a factor of NEEDLE_LEN.  The larger the
+   needle, the better the potential performance gain.  On the other
+   hand, on non-POSIX systems with CHAR_BIT larger than eight, the
+   memory required for the table is prohibitive.  */
+#if CHAR_BIT < 10
+# define LONG_NEEDLE_THRESHOLD 32U
+#else
+# define LONG_NEEDLE_THRESHOLD SIZE_MAX
+#endif
+
+#ifndef MAX
+# define MAX(a, b) ((a < b) ? (b) : (a))
+#endif
+
+#ifndef CANON_ELEMENT
+# define CANON_ELEMENT(c) c
+#endif
+#ifndef CMP_FUNC
+# define CMP_FUNC memcmp
+#endif
+
+/* Perform a critical factorization of NEEDLE, of length NEEDLE_LEN.
+   Return the index of the first byte in the right half, and set
+   *PERIOD to the global period of the right half.
+
+   The global period of a string is the smallest index (possibly its
+   length) at which all remaining bytes in the string are repetitions
+   of the prefix (the last repetition may be a subset of the prefix).
+
+   When NEEDLE is factored into two halves, a local period is the
+   length of the smallest word that shares a suffix with the left half
+   and shares a prefix with the right half.  All factorizations of a
+   non-empty NEEDLE have a local period of at least 1 and no greater
+   than NEEDLE_LEN.
+
+   A critical factorization has the property that the local period
+   equals the global period.  All strings have at least one critical
+   factorization with the left half smaller than the global period.
+   And while some strings have more than one critical factorization,
+   it is provable that with an ordered alphabet, at least one of the
+   critical factorizations corresponds to a maximal suffix.
+
+   Given an ordered alphabet, a critical factorization can be computed
+   in linear time, with 2 * NEEDLE_LEN comparisons, by computing the
+   shorter of two ordered maximal suffixes.  The ordered maximal
+   suffixes are determined by lexicographic comparison while tracking
+   periodicity.  */
+static size_t
+critical_factorization (const unsigned char *needle, size_t needle_len,
+                        size_t *period)
+{
+  /* Index of last byte of left half, or SIZE_MAX.  */
+  size_t max_suffix, max_suffix_rev;
+  size_t j; /* Index into NEEDLE for current candidate suffix.  */
+  size_t k; /* Offset into current period.  */
+  size_t p; /* Intermediate period.  */
+  unsigned char a, b; /* Current comparison bytes.  */
+
+  /* Special case NEEDLE_LEN of 1 or 2 (all callers already filtered
+     out 0-length needles.  */
+  if (needle_len < 3)
+    {
+      *period = 1;
+      return needle_len - 1;
+    }
+
+  /* Invariants:
+     0 <= j < NEEDLE_LEN - 1
+     -1 <= max_suffix{,_rev} < j (treating SIZE_MAX as if it were signed)
+     min(max_suffix, max_suffix_rev) < global period of NEEDLE
+     1 <= p <= global period of NEEDLE
+     p == global period of the substring NEEDLE[max_suffix{,_rev}+1...j]
+     1 <= k <= p
+  */
+
+  /* Perform lexicographic search.  */
+  max_suffix = SIZE_MAX;
+  j = 0;
+  k = p = 1;
+  while (j + k < needle_len)
+    {
+      a = CANON_ELEMENT (needle[j + k]);
+      b = CANON_ELEMENT (needle[max_suffix + k]);
+      if (a < b)
+        {
+          /* Suffix is smaller, period is entire prefix so far.  */
+          j += k;
+          k = 1;
+          p = j - max_suffix;
+        }
+      else if (a == b)
+        {
+          /* Advance through repetition of the current period.  */
+          if (k != p)
+            ++k;
+          else
+            {
+              j += p;
+              k = 1;
+            }
+        }
+      else /* b < a */
+        {
+          /* Suffix is larger, start over from current location.  */
+          max_suffix = j++;
+          k = p = 1;
+        }
+    }
+  *period = p;
+
+  /* Perform reverse lexicographic search.  */
+  max_suffix_rev = SIZE_MAX;
+  j = 0;
+  k = p = 1;
+  while (j + k < needle_len)
+    {
+      a = CANON_ELEMENT (needle[j + k]);
+      b = CANON_ELEMENT (needle[max_suffix_rev + k]);
+      if (b < a)
+        {
+          /* Suffix is smaller, period is entire prefix so far.  */
+          j += k;
+          k = 1;
+          p = j - max_suffix_rev;
+        }
+      else if (a == b)
+        {
+          /* Advance through repetition of the current period.  */
+          if (k != p)
+            ++k;
+          else
+            {
+              j += p;
+              k = 1;
+            }
+        }
+      else /* a < b */
+        {
+          /* Suffix is larger, start over from current location.  */
+          max_suffix_rev = j++;
+          k = p = 1;
+        }
+    }
+
+  /* Choose the shorter suffix.  Return the index of the first byte of
+     the right half, rather than the last byte of the left half.
+
+     For some examples, 'banana' has two critical factorizations, both
+     exposed by the two lexicographic extreme suffixes of 'anana' and
+     'nana', where both suffixes have a period of 2.  On the other
+     hand, with 'aab' and 'bba', both strings have a single critical
+     factorization of the last byte, with the suffix having a period
+     of 1.  While the maximal lexicographic suffix of 'aab' is 'b',
+     the maximal lexicographic suffix of 'bba' is 'ba', which is not a
+     critical factorization.  Conversely, the maximal reverse
+     lexicographic suffix of 'a' works for 'bba', but not 'ab' for
+     'aab'.  The shorter suffix of the two will always be a critical
+     factorization.  */
+  if (max_suffix_rev + 1 < max_suffix + 1)
+    return max_suffix + 1;
+  *period = p;
+  return max_suffix_rev + 1;
+}
+
+/* Return the first location of non-empty NEEDLE within HAYSTACK, or
+   NULL.  HAYSTACK_LEN is the minimum known length of HAYSTACK.  This
+   method is optimized for NEEDLE_LEN < LONG_NEEDLE_THRESHOLD.
+   Performance is guaranteed to be linear, with an initialization cost
+   of 2 * NEEDLE_LEN comparisons.
+
+   If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at
+   most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching.
+   If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 *
+   HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching.  */
+static RETURN_TYPE
+two_way_short_needle (const unsigned char *haystack, size_t haystack_len,
+                      const unsigned char *needle, size_t needle_len)
+{
+  size_t i; /* Index into current byte of NEEDLE.  */
+  size_t j; /* Index into current window of HAYSTACK.  */
+  size_t period; /* The period of the right half of needle.  */
+  size_t suffix; /* The index of the right half of needle.  */
+
+  /* Factor the needle into two halves, such that the left half is
+     smaller than the global period, and the right half is
+     periodic (with a period as large as NEEDLE_LEN - suffix).  */
+  suffix = critical_factorization (needle, needle_len, &period);
+
+  /* Perform the search.  Each iteration compares the right half
+     first.  */
+  if (CMP_FUNC (needle, needle + period, suffix) == 0)
+    {
+      /* Entire needle is periodic; a mismatch in the left half can
+         only advance by the period, so use memory to avoid rescanning
+         known occurrences of the period in the right half.  */
+      size_t memory = 0;
+      j = 0;
+      while (AVAILABLE (haystack, haystack_len, j, needle_len))
+        {
+          /* Scan for matches in right half.  */
+          i = MAX (suffix, memory);
+          while (i < needle_len && (CANON_ELEMENT (needle[i])
+                                    == CANON_ELEMENT (haystack[i + j])))
+            ++i;
+          if (needle_len <= i)
+            {
+              /* Scan for matches in left half.  */
+              i = suffix - 1;
+              while (memory < i + 1 && (CANON_ELEMENT (needle[i])
+                                        == CANON_ELEMENT (haystack[i + j])))
+                --i;
+              if (i + 1 < memory + 1)
+                return (RETURN_TYPE) (haystack + j);
+              /* No match, so remember how many repetitions of period
+                 on the right half were scanned.  */
+              j += period;
+              memory = needle_len - period;
+            }
+          else
+            {
+              j += i - suffix + 1;
+              memory = 0;
+            }
+        }
+    }
+  else
+    {
+      /* The two halves of needle are distinct; no extra memory is
+         required, and any mismatch results in a maximal shift.  */
+      period = MAX (suffix, needle_len - suffix) + 1;
+      j = 0;
+      while (AVAILABLE (haystack, haystack_len, j, needle_len))
+        {
+          /* Scan for matches in right half.  */
+          i = suffix;
+          while (i < needle_len && (CANON_ELEMENT (needle[i])
+                                    == CANON_ELEMENT (haystack[i + j])))
+            ++i;
+          if (needle_len <= i)
+            {
+              /* Scan for matches in left half.  */
+              i = suffix - 1;
+              while (i != SIZE_MAX && (CANON_ELEMENT (needle[i])
+                                       == CANON_ELEMENT (haystack[i + j])))
+                --i;
+              if (i == SIZE_MAX)
+                return (RETURN_TYPE) (haystack + j);
+              j += period;
+            }
+          else
+            j += i - suffix + 1;
+        }
+    }
+  return NULL;
+}
+
+/* Return the first location of non-empty NEEDLE within HAYSTACK, or
+   NULL.  HAYSTACK_LEN is the minimum known length of HAYSTACK.  This
+   method is optimized for LONG_NEEDLE_THRESHOLD <= NEEDLE_LEN.
+   Performance is guaranteed to be linear, with an initialization cost
+   of 3 * NEEDLE_LEN + (1 << CHAR_BIT) operations.
+
+   If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at
+   most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching,
+   and sublinear performance O(HAYSTACK_LEN / NEEDLE_LEN) is possible.
+   If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 *
+   HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and
+   sublinear performance is not possible.  */
+static RETURN_TYPE
+two_way_long_needle (const unsigned char *haystack, size_t haystack_len,
+                     const unsigned char *needle, size_t needle_len)
+{
+  size_t i; /* Index into current byte of NEEDLE.  */
+  size_t j; /* Index into current window of HAYSTACK.  */
+  size_t period; /* The period of the right half of needle.  */
+  size_t suffix; /* The index of the right half of needle.  */
+  size_t shift_table[1U << CHAR_BIT]; /* See below.  */
+
+  /* Factor the needle into two halves, such that the left half is
+     smaller than the global period, and the right half is
+     periodic (with a period as large as NEEDLE_LEN - suffix).  */
+  suffix = critical_factorization (needle, needle_len, &period);
+
+  /* Populate shift_table.  For each possible byte value c,
+     shift_table[c] is the distance from the last occurrence of c to
+     the end of NEEDLE, or NEEDLE_LEN if c is absent from the NEEDLE.
+     shift_table[NEEDLE[NEEDLE_LEN - 1]] contains the only 0.  */
+  for (i = 0; i < 1U << CHAR_BIT; i++)
+    shift_table[i] = needle_len;
+  for (i = 0; i < needle_len; i++)
+    shift_table[CANON_ELEMENT (needle[i])] = needle_len - i - 1;
+
+  /* Perform the search.  Each iteration compares the right half
+     first.  */
+  if (CMP_FUNC (needle, needle + period, suffix) == 0)
+    {
+      /* Entire needle is periodic; a mismatch in the left half can
+         only advance by the period, so use memory to avoid rescanning
+         known occurrences of the period in the right half.  */
+      size_t memory = 0;
+      size_t shift;
+      j = 0;
+      while (AVAILABLE (haystack, haystack_len, j, needle_len))
+        {
+          /* Check the last byte first; if it does not match, then
+             shift to the next possible match location.  */
+          shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
+          if (0 < shift)
+            {
+              if (memory && shift < period)
+                {
+                  /* Since needle is periodic, but the last period has
+                     a byte out of place, there can be no match until
+                     after the mismatch.  */
+                  shift = needle_len - period;
+                }
+              memory = 0;
+              j += shift;
+              continue;
+            }
+          /* Scan for matches in right half.  The last byte has
+             already been matched, by virtue of the shift table.  */
+          i = MAX (suffix, memory);
+          while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
+                                        == CANON_ELEMENT (haystack[i + j])))
+            ++i;
+          if (needle_len - 1 <= i)
+            {
+              /* Scan for matches in left half.  */
+              i = suffix - 1;
+              while (memory < i + 1 && (CANON_ELEMENT (needle[i])
+                                        == CANON_ELEMENT (haystack[i + j])))
+                --i;
+              if (i + 1 < memory + 1)
+                return (RETURN_TYPE) (haystack + j);
+              /* No match, so remember how many repetitions of period
+                 on the right half were scanned.  */
+              j += period;
+              memory = needle_len - period;
+            }
+          else
+            {
+              j += i - suffix + 1;
+              memory = 0;
+            }
+        }
+    }
+  else
+    {
+      /* The two halves of needle are distinct; no extra memory is
+         required, and any mismatch results in a maximal shift.  */
+      size_t shift;
+      period = MAX (suffix, needle_len - suffix) + 1;
+      j = 0;
+      while (AVAILABLE (haystack, haystack_len, j, needle_len))
+        {
+          /* Check the last byte first; if it does not match, then
+             shift to the next possible match location.  */
+          shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
+          if (0 < shift)
+            {
+              j += shift;
+              continue;
+            }
+          /* Scan for matches in right half.  The last byte has
+             already been matched, by virtue of the shift table.  */
+          i = suffix;
+          while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
+                                        == CANON_ELEMENT (haystack[i + j])))
+            ++i;
+          if (needle_len - 1 <= i)
+            {
+              /* Scan for matches in left half.  */
+              i = suffix - 1;
+              while (i != SIZE_MAX && (CANON_ELEMENT (needle[i])
+                                       == CANON_ELEMENT (haystack[i + j])))
+                --i;
+              if (i == SIZE_MAX)
+                return (RETURN_TYPE) (haystack + j);
+              j += period;
+            }
+          else
+            j += i - suffix + 1;
+        }
+    }
+  return NULL;
+}
+
+#undef AVAILABLE
+#undef CANON_ELEMENT
+#undef CMP_FUNC
+#undef MAX
+#undef RETURN_TYPE
index 8791598..0f7bc72 100644 (file)
@@ -1,5 +1,5 @@
 /* Optimized string comparison.
-   Copyright (C) 2001-2002, 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -21,8 +21,8 @@
 
 #include <string.h>
 
-/* STREQ allows to optimize string comparison with a small literal string.
-     STREQ (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+/* STREQ_OPT allows to optimize string comparison with a small literal string.
+     STREQ_OPT (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
    is semantically equivalent to
      strcmp (s, "EUC-KR") == 0
    just faster.  */
@@ -163,12 +163,12 @@ streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23,
     return 0;
 }
 
-#define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
   streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28)
 
 #else
 
-#define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
   (strcmp (s1, s2) == 0)
 
 #endif
index ae10f3c..1a2f62e 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion with error handling.
-   Copyright (C) 2001-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2014 Free Software Foundation, Inc.
    Written by Bruno Haible and Simon Josefsson.
 
    This program is free software: you can redistribute it and/or modify
@@ -52,7 +52,8 @@ iconveh_open (const char *to_codeset, const char *from_codeset, iconveh_t *cdp)
   iconv_t cd2;
 
   /* Avoid glibc-2.1 bug with EUC-KR.  */
-# if (__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) && !defined _LIBICONV_VERSION
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+     && !defined _LIBICONV_VERSION
   if (c_strcasecmp (from_codeset, "EUC-KR") == 0
       || c_strcasecmp (to_codeset, "EUC-KR") == 0)
     {
@@ -79,7 +80,9 @@ iconveh_open (const char *to_codeset, const char *from_codeset, iconveh_t *cdp)
     }
 
   if (STRCASEEQ (to_codeset, "UTF-8", 'U','T','F','-','8',0,0,0,0)
-# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+# if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \
+      && !defined __UCLIBC__) \
+     || _LIBICONV_VERSION >= 0x0105
       || c_strcasecmp (to_codeset, "UTF-8//TRANSLIT") == 0
 # endif
      )
@@ -136,7 +139,7 @@ iconveh_close (const iconveh_t *cd)
 /* iconv_carefully is like iconv, except that it stops as soon as it encounters
    a conversion error, and it returns in *INCREMENTED a boolean telling whether
    it has incremented the input pointers past the error location.  */
-# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__)
 /* Irix iconv() inserts a NUL byte if it cannot convert.
    NetBSD iconv() inserts a question mark if it cannot convert.
    Only GNU libiconv and GNU libc are known to prefer to fail rather
@@ -244,7 +247,7 @@ iconv_carefully_1 (iconv_t cd,
 
   *inbuf = inptr;
   *inbytesleft = inptr_end - inptr;
-# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__)
   /* Irix iconv() inserts a NUL byte if it cannot convert.
      NetBSD iconv() inserts a question mark if it cannot convert.
      Only GNU libiconv and GNU libc are known to prefer to fail rather
@@ -403,7 +406,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
 
     /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
     /* Set to the initial state.  */
     iconv (cd, NULL, NULL, NULL, NULL);
 # endif
@@ -531,7 +535,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
   /* Now get the conversion state back to the initial state.
      But avoid glibc-2.1 bug and Solaris 2.7 bug.  */
 #if defined _LIBICONV_VERSION \
-    || !((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) || defined __sun)
+    || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+         || defined __sun)
   for (;;)
     {
       char *outptr = result + length;
@@ -606,7 +611,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
 
     /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
     /* Set to the initial state.  */
     if (cd1 != (iconv_t)(-1))
       iconv (cd1, NULL, NULL, NULL, NULL);
@@ -658,7 +664,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
             /* Now get the conversion state of CD1 back to the initial state.
                But avoid glibc-2.1 bug and Solaris 2.7 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
             if (cd1 != (iconv_t)(-1))
               res1 = iconv (cd1, NULL, NULL, &out1ptr, &out1size);
             else
@@ -740,7 +747,8 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
                     /* Now get the conversion state of CD1 back to the initial
                        state.  But avoid glibc-2.1 bug and Solaris 2.7 bug.  */
 # if defined _LIBICONV_VERSION \
-     || !((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) || defined __sun)
+     || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \
+          || defined __sun)
                     if (cd2 != (iconv_t)(-1))
                       res2 = iconv (cd2, NULL, NULL, &out2ptr, &out2size);
                     else
@@ -883,7 +891,7 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
                               }
                             length = out2ptr - result;
                           }
-# if !defined _LIBICONV_VERSION && !defined __GLIBC__
+# if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__)
                         /* Irix iconv() inserts a NUL byte if it cannot convert.
                            NetBSD iconv() inserts a question mark if it cannot
                            convert.
@@ -970,19 +978,23 @@ mem_cd_iconveh_internal (const char *src, size_t srclen,
   if (result == tmpbuf)
     {
       size_t memsize = length + extra_alloc;
-      char *memory;
 
-      memory = (char *) malloc (memsize > 0 ? memsize : 1);
-      if (memory != NULL)
-        {
-          memcpy (memory, tmpbuf, length);
-          result = memory;
-        }
+      if (*resultp != NULL && *lengthp >= memsize)
+        result = *resultp;
       else
         {
-          errno = ENOMEM;
-          return -1;
+          char *memory;
+
+          memory = (char *) malloc (memsize > 0 ? memsize : 1);
+          if (memory != NULL)
+            result = memory;
+          else
+            {
+              errno = ENOMEM;
+              return -1;
+            }
         }
+      memcpy (result, tmpbuf, length);
     }
   else if (result != *resultp && length + extra_alloc < allocated)
     {
index dc92cea..a4e425a 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion with error handling.
-   Copyright (C) 2001-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible and Simon Josefsson.
 
    This program is free software: you can redistribute it and/or modify
@@ -33,7 +33,7 @@ extern "C" {
 
 #if HAVE_ICONV
 
-/* An conversion descriptor for use by the iconveh functions.  */
+/* A conversion descriptor for use by the iconveh functions.  */
 typedef struct
   {
     /* Conversion descriptor from FROM_CODESET to TO_CODESET, or (iconv_t)(-1)
index 27e7b15..ae36176 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion with error handling and autodetection.
-   Copyright (C) 2002, 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005, 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible.
 
    This program is free software: you can redistribute it and/or modify
@@ -226,7 +226,9 @@ mem_iconveha (const char *src, size_t srclen,
 
   /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5,
      we want to use transliteration.  */
-#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+#if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \
+     && !defined __UCLIBC__) \
+    || _LIBICONV_VERSION >= 0x0105
   if (transliterate)
     {
       int retval;
@@ -326,7 +328,9 @@ str_iconveha (const char *src,
 
   /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5,
      we want to use transliteration.  */
-#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+#if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) \
+     && !defined __UCLIBC__) \
+    || _LIBICONV_VERSION >= 0x0105
   if (transliterate)
     {
       char *result;
index 5f106c3..488db7b 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion with error handling and autodetection.
-   Copyright (C) 2002, 2005, 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005, 2007-2014 Free Software Foundation, Inc.
    Written by Bruno Haible.
 
    This program is free software: you can redistribute it and/or modify
index 75deca0..eaaaa9d 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <string.h>.
 
-   Copyright (C) 1995-1996, 2001-2010 Free Software Foundation, Inc.
+   Copyright (C) 1995-1996, 2001-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GL_STRING_H
+#ifndef _@GUARD_PREFIX@_STRING_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
 
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_STRING_H@
 
-#ifndef _GL_STRING_H
-#define _GL_STRING_H
+#ifndef _@GUARD_PREFIX@_STRING_H
+#define _@GUARD_PREFIX@_STRING_H
 
 /* NetBSD 5.0 mis-defines NULL.  */
 #include <stddef.h>
 # include <wchar.h>
 #endif
 
-#ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later.  */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#  define __attribute__(Spec) /* empty */
-# endif
-/* The attribute __pure__ was added in gcc 2.96.  */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96)
-#  define __pure__ /* empty */
-# endif
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+   The attribute __pure__ was added in gcc 2.96.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
 #endif
 
+/* NetBSD 5.0 declares strsignal in <unistd.h>, not in <string.h>.  */
+/* But in any case avoid namespace pollution on glibc systems.  */
+#if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \
+    && ! defined __GLIBC__
+# include <unistd.h>
+#endif
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
 
+/* Find the index of the least-significant set bit.  */
+#if @GNULIB_FFSL@
+# if !@HAVE_FFSL@
+_GL_FUNCDECL_SYS (ffsl, int, (long int i));
+# endif
+_GL_CXXALIAS_SYS (ffsl, int, (long int i));
+_GL_CXXALIASWARN (ffsl);
+#elif defined GNULIB_POSIXCHECK
+# undef ffsl
+# if HAVE_RAW_DECL_FFSL
+_GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module");
+# endif
+#endif
+
+
+/* Find the index of the least-significant set bit.  */
+#if @GNULIB_FFSLL@
+# if !@HAVE_FFSLL@
+_GL_FUNCDECL_SYS (ffsll, int, (long long int i));
+# endif
+_GL_CXXALIAS_SYS (ffsll, int, (long long int i));
+_GL_CXXALIASWARN (ffsll);
+#elif defined GNULIB_POSIXCHECK
+# undef ffsll
+# if HAVE_RAW_DECL_FFSLL
+_GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module");
+# endif
+#endif
+
+
 /* Return the first instance of C within N bytes of S, or NULL.  */
 #if @GNULIB_MEMCHR@
 # if @REPLACE_MEMCHR@
 #   define memchr rpl_memchr
 #  endif
 _GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n)
-                                  __attribute__ ((__pure__))
+                                  _GL_ATTRIBUTE_PURE
                                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n));
 # else
 #  if ! @HAVE_MEMCHR@
 _GL_FUNCDECL_SYS (memchr, void *, (void const *__s, int __c, size_t __n)
-                                  __attribute__ ((__pure__))
+                                  _GL_ATTRIBUTE_PURE
                                   _GL_ARG_NONNULL ((1)));
 #  endif
   /* On some systems, this function is defined as an overloaded function:
@@ -78,7 +111,7 @@ _GL_CXXALIAS_SYS_CAST2 (memchr,
                         void *, (void const *__s, int __c, size_t __n),
                         void const *, (void const *__s, int __c, size_t __n));
 # endif
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n));
 _GL_CXXALIASWARN1 (memchr, void const *,
@@ -102,7 +135,8 @@ _GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - "
 _GL_FUNCDECL_RPL (memmem, void *,
                   (void const *__haystack, size_t __haystack_len,
                    void const *__needle, size_t __needle_len)
-                  __attribute__ ((__pure__)) _GL_ARG_NONNULL ((1, 3)));
+                  _GL_ATTRIBUTE_PURE
+                  _GL_ARG_NONNULL ((1, 3)));
 _GL_CXXALIAS_RPL (memmem, void *,
                   (void const *__haystack, size_t __haystack_len,
                    void const *__needle, size_t __needle_len));
@@ -111,7 +145,8 @@ _GL_CXXALIAS_RPL (memmem, void *,
 _GL_FUNCDECL_SYS (memmem, void *,
                   (void const *__haystack, size_t __haystack_len,
                    void const *__needle, size_t __needle_len)
-                  __attribute__ ((__pure__)) _GL_ARG_NONNULL ((1, 3)));
+                  _GL_ATTRIBUTE_PURE
+                  _GL_ARG_NONNULL ((1, 3)));
 #  endif
 _GL_CXXALIAS_SYS (memmem, void *,
                   (void const *__haystack, size_t __haystack_len,
@@ -152,7 +187,7 @@ _GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - "
 #if @GNULIB_MEMRCHR@
 # if ! @HAVE_DECL_MEMRCHR@
 _GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t)
-                                   __attribute__ ((__pure__))
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1)));
 # endif
   /* On some systems, this function is defined as an overloaded function:
@@ -161,7 +196,7 @@ _GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t)
 _GL_CXXALIAS_SYS_CAST2 (memrchr,
                         void *, (void const *, int, size_t),
                         void const *, (void const *, int, size_t));
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t));
 _GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t));
@@ -182,7 +217,7 @@ _GL_WARN_ON_USE (memrchr, "memrchr is unportable - "
 #if @GNULIB_RAWMEMCHR@
 # if ! @HAVE_RAWMEMCHR@
 _GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in)
-                                     __attribute__ ((__pure__))
+                                     _GL_ATTRIBUTE_PURE
                                      _GL_ARG_NONNULL ((1)));
 # endif
   /* On some systems, this function is defined as an overloaded function:
@@ -191,7 +226,7 @@ _GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in)
 _GL_CXXALIAS_SYS_CAST2 (rawmemchr,
                         void *, (void const *__s, int __c_in),
                         void const *, (void const *__s, int __c_in));
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in));
 _GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in));
@@ -229,6 +264,7 @@ _GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - "
 #if @GNULIB_STPNCPY@
 # if @REPLACE_STPNCPY@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef stpncpy
 #   define stpncpy rpl_stpncpy
 #  endif
 _GL_FUNCDECL_RPL (stpncpy, char *,
@@ -270,18 +306,29 @@ _GL_WARN_ON_USE (strchr, "strchr cannot work correctly on character strings "
 
 /* Find the first occurrence of C in S or the final NUL byte.  */
 #if @GNULIB_STRCHRNUL@
-# if ! @HAVE_STRCHRNUL@
+# if @REPLACE_STRCHRNUL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define strchrnul rpl_strchrnul
+#  endif
+_GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in)
+                                     _GL_ATTRIBUTE_PURE
+                                     _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strchrnul, char *,
+                  (const char *str, int ch));
+# else
+#  if ! @HAVE_STRCHRNUL@
 _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in)
-                                     __attribute__ ((__pure__))
+                                     _GL_ATTRIBUTE_PURE
                                      _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
   /* On some systems, this function is defined as an overloaded function:
        extern "C++" { const char * std::strchrnul (const char *, int); }
        extern "C++" { char * std::strchrnul (char *, int); }  */
 _GL_CXXALIAS_SYS_CAST2 (strchrnul,
                         char *, (char const *__s, int __c_in),
                         char const *, (char const *__s, int __c_in));
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# endif
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in));
 _GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in));
@@ -306,6 +353,10 @@ _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - "
 _GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (strdup, char *, (char const *__s));
 # else
+#  if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup
+    /* strdup exists as a function and as a macro.  Get rid of the macro.  */
+#   undef strdup
+#  endif
 #  if !(@HAVE_DECL_STRDUP@ || defined strdup)
 _GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1)));
 #  endif
@@ -378,13 +429,13 @@ _GL_WARN_ON_USE (strndup, "strndup is unportable - "
 #   define strnlen rpl_strnlen
 #  endif
 _GL_FUNCDECL_RPL (strnlen, size_t, (char const *__string, size_t __maxlen)
-                                   __attribute__ ((__pure__))
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (strnlen, size_t, (char const *__string, size_t __maxlen));
 # else
 #  if ! @HAVE_DECL_STRNLEN@
 _GL_FUNCDECL_SYS (strnlen, size_t, (char const *__string, size_t __maxlen)
-                                   __attribute__ ((__pure__))
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1)));
 #  endif
 _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__string, size_t __maxlen));
@@ -414,7 +465,7 @@ _GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings "
 #if @GNULIB_STRPBRK@
 # if ! @HAVE_STRPBRK@
 _GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept)
-                                   __attribute__ ((__pure__))
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 # endif
   /* On some systems, this function is defined as an overloaded function:
@@ -423,7 +474,7 @@ _GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept)
 _GL_CXXALIAS_SYS_CAST2 (strpbrk,
                         char *, (char const *__s, char const *__accept),
                         const char *, (char const *__s, char const *__accept));
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept));
 _GL_CXXALIASWARN1 (strpbrk, char const *,
@@ -514,7 +565,7 @@ _GL_WARN_ON_USE (strsep, "strsep is unportable - "
 #   define strstr rpl_strstr
 #  endif
 _GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle)
-                                  __attribute__ ((__pure__))
+                                  _GL_ATTRIBUTE_PURE
                                   _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle));
 # else
@@ -525,7 +576,7 @@ _GL_CXXALIAS_SYS_CAST2 (strstr,
                         char *, (const char *haystack, const char *needle),
                         const char *, (const char *haystack, const char *needle));
 # endif
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle));
 _GL_CXXALIASWARN1 (strstr, const char *,
@@ -556,14 +607,16 @@ _GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot "
 #  endif
 _GL_FUNCDECL_RPL (strcasestr, char *,
                   (const char *haystack, const char *needle)
-                  __attribute__ ((__pure__)) _GL_ARG_NONNULL ((1, 2)));
+                  _GL_ATTRIBUTE_PURE
+                  _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (strcasestr, char *,
                   (const char *haystack, const char *needle));
 # else
 #  if ! @HAVE_STRCASESTR@
 _GL_FUNCDECL_SYS (strcasestr, char *,
                   (const char *haystack, const char *needle)
-                  __attribute__ ((__pure__)) _GL_ARG_NONNULL ((1, 2)));
+                  _GL_ATTRIBUTE_PURE
+                  _GL_ARG_NONNULL ((1, 2)));
 #  endif
   /* On some systems, this function is defined as an overloaded function:
        extern "C++" { const char * strcasestr (const char *, const char *); }
@@ -572,7 +625,7 @@ _GL_CXXALIAS_SYS_CAST2 (strcasestr,
                         char *, (const char *haystack, const char *needle),
                         const char *, (const char *haystack, const char *needle));
 # endif
-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 10 \
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
      && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
 _GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle));
 _GL_CXXALIASWARN1 (strcasestr, const char *,
@@ -671,10 +724,14 @@ _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - "
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define mbslen rpl_mbslen
 #  endif
-_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string)
+                                  _GL_ATTRIBUTE_PURE
+                                  _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string));
 # else
-_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string)
+                                  _GL_ATTRIBUTE_PURE
+                                  _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string));
 # endif
 _GL_CXXALIASWARN (mbslen);
@@ -684,6 +741,7 @@ _GL_CXXALIASWARN (mbslen);
 /* Return the number of multibyte characters in the character string starting
    at STRING and ending at STRING + LEN.  */
 _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1));
 #endif
 
@@ -697,10 +755,12 @@ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len)
 #   define mbschr rpl_mbschr /* avoid collision with HP-UX function */
 #  endif
 _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c)
+                                  _GL_ATTRIBUTE_PURE
                                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c));
 # else
 _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c)
+                                  _GL_ATTRIBUTE_PURE
                                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c));
 # endif
@@ -712,15 +772,17 @@ _GL_CXXALIASWARN (mbschr);
    and return a pointer to it.  Return NULL if C is not found in STRING.
    Unlike strrchr(), this function works correctly in multibyte locales with
    encodings such as GB18030.  */
-# if defined __hpux
+# if defined __hpux || defined __INTERIX
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   define mbsrchr rpl_mbsrchr /* avoid collision with HP-UX function */
+#   define mbsrchr rpl_mbsrchr /* avoid collision with system function */
 #  endif
 _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c));
 # else
 _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c));
 # endif
@@ -733,6 +795,7 @@ _GL_CXXALIASWARN (mbsrchr);
    Unlike strstr(), this function works correctly in multibyte locales with
    encodings different from UTF-8.  */
 _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -744,6 +807,7 @@ _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle)
    different lengths!
    Unlike strcasecmp(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -758,20 +822,21 @@ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2)
    Unlike strncasecmp(), this function works correctly in multibyte locales.
    But beware that N is not a byte count but a character count!  */
 _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
 #if @GNULIB_MBSPCASECMP@
 /* Compare the initial segment of the character string STRING consisting of
    at most mbslen (PREFIX) characters with the character string PREFIX,
-   ignoring case, returning less than, equal to or greater than zero if this
-   initial segment is lexicographically less than, equal to or greater than
-   PREFIX.
-   Note: This function may, in multibyte locales, return 0 if STRING is of
-   smaller length than PREFIX!
+   ignoring case.  If the two match, return a pointer to the first byte
+   after this prefix in STRING.  Otherwise, return NULL.
+   Note: This function may, in multibyte locales, return non-NULL if STRING
+   is of smaller length than PREFIX!
    Unlike strncasecmp(), this function works correctly in multibyte
    locales.  */
 _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -782,6 +847,7 @@ _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix)
    strlen (haystack) < strlen (needle) !
    Unlike strcasestr(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -792,6 +858,7 @@ _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle)
    if none exists.
    Unlike strcspn(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -805,10 +872,12 @@ _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept)
 #   define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */
 #  endif
 _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept));
 # else
 _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept));
 # endif
@@ -822,6 +891,7 @@ _GL_CXXALIASWARN (mbspbrk);
    if none exists.
    Unlike strspn(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -885,6 +955,35 @@ _GL_WARN_ON_USE (strerror, "strerror is unportable - "
                  "use gnulib module strerror to guarantee non-NULL result");
 #endif
 
+/* Map any int, typically from errno, into an error message.  Multithread-safe.
+   Uses the POSIX declaration, not the glibc declaration.  */
+#if @GNULIB_STRERROR_R@
+# if @REPLACE_STRERROR_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef strerror_r
+#   define strerror_r rpl_strerror_r
+#  endif
+_GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)
+                                   _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen));
+# else
+#  if !@HAVE_DECL_STRERROR_R@
+_GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)
+                                   _GL_ARG_NONNULL ((2)));
+#  endif
+_GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen));
+# endif
+# if @HAVE_DECL_STRERROR_R@
+_GL_CXXALIASWARN (strerror_r);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strerror_r
+# if HAVE_RAW_DECL_STRERROR_R
+_GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - "
+                 "use gnulib module strerror_r-posix for portability");
+# endif
+#endif
+
 #if @GNULIB_STRSIGNAL@
 # if @REPLACE_STRSIGNAL@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -912,6 +1011,7 @@ _GL_WARN_ON_USE (strsignal, "strsignal is unportable - "
 #if @GNULIB_STRVERSCMP@
 # if !@HAVE_STRVERSCMP@
 _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 # endif
 _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *));
@@ -925,5 +1025,5 @@ _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - "
 #endif
 
 
-#endif /* _GL_STRING_H */
-#endif /* _GL_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
index edc3c39..846d028 100644 (file)
@@ -1,5 +1,5 @@
 /* Concatenate strings.
-   Copyright (C) 1999, 2002, 2006, 2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2010-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
diff --git a/lib/strstr.c b/lib/strstr.c
new file mode 100644 (file)
index 0000000..e444bb6
--- /dev/null
@@ -0,0 +1,82 @@
+/* Copyright (C) 1991-1994, 1996-1998, 2000, 2004, 2007-2014 Free Software
+   Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+/* This particular implementation was written by Eric Blake, 2008.  */
+
+#ifndef _LIBC
+# include <config.h>
+#endif
+
+/* Specification of strstr.  */
+#include <string.h>
+
+#include <stdbool.h>
+
+#ifndef _LIBC
+# define __builtin_expect(expr, val)   (expr)
+#endif
+
+#define RETURN_TYPE char *
+#define AVAILABLE(h, h_l, j, n_l)                       \
+  (!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l))     \
+   && ((h_l) = (j) + (n_l)))
+#include "str-two-way.h"
+
+/* Return the first occurrence of NEEDLE in HAYSTACK.  Return HAYSTACK
+   if NEEDLE is empty, otherwise NULL if NEEDLE is not found in
+   HAYSTACK.  */
+char *
+strstr (const char *haystack_start, const char *needle_start)
+{
+  const char *haystack = haystack_start;
+  const char *needle = needle_start;
+  size_t needle_len; /* Length of NEEDLE.  */
+  size_t haystack_len; /* Known minimum length of HAYSTACK.  */
+  bool ok = true; /* True if NEEDLE is prefix of HAYSTACK.  */
+
+  /* Determine length of NEEDLE, and in the process, make sure
+     HAYSTACK is at least as long (no point processing all of a long
+     NEEDLE if HAYSTACK is too short).  */
+  while (*haystack && *needle)
+    ok &= *haystack++ == *needle++;
+  if (*needle)
+    return NULL;
+  if (ok)
+    return (char *) haystack_start;
+
+  /* Reduce the size of haystack using strchr, since it has a smaller
+     linear coefficient than the Two-Way algorithm.  */
+  needle_len = needle - needle_start;
+  haystack = strchr (haystack_start + 1, *needle_start);
+  if (!haystack || __builtin_expect (needle_len == 1, 0))
+    return (char *) haystack;
+  needle -= needle_len;
+  haystack_len = (haystack > haystack_start + needle_len ? 1
+                  : needle_len + haystack_start - haystack);
+
+  /* Perform the search.  Abstract memory is considered to be an array
+     of 'unsigned char' values, not an array of 'char' values.  See
+     ISO C 99 section 6.2.6.1.  */
+  if (needle_len < LONG_NEEDLE_THRESHOLD)
+    return two_way_short_needle ((const unsigned char *) haystack,
+                                 haystack_len,
+                                 (const unsigned char *) needle, needle_len);
+  return two_way_long_needle ((const unsigned char *) haystack, haystack_len,
+                              (const unsigned char *) needle, needle_len);
+}
+
+#undef LONG_NEEDLE_THRESHOLD
diff --git a/lib/sys_types.in.h b/lib/sys_types.in.h
new file mode 100644 (file)
index 0000000..57a5d14
--- /dev/null
@@ -0,0 +1,53 @@
+/* Provide a more complete sys/types.h.
+
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+#ifndef _@GUARD_PREFIX@_SYS_TYPES_H
+
+/* The include_next requires a split double-inclusion guard.  */
+# define _GL_INCLUDING_SYS_TYPES_H
+#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
+# undef _GL_INCLUDING_SYS_TYPES_H
+
+#ifndef _@GUARD_PREFIX@_SYS_TYPES_H
+#define _@GUARD_PREFIX@_SYS_TYPES_H
+
+/* Override off_t if Large File Support is requested on native Windows.  */
+#if @WINDOWS_64_BIT_OFF_T@
+/* Same as int64_t in <stdint.h>.  */
+# if defined _MSC_VER
+#  define off_t __int64
+# else
+#  define off_t long long int
+# endif
+/* Indicator, for gnulib internal purposes.  */
+# define _GL_WINDOWS_64_BIT_OFF_T 1
+#endif
+
+/* MSVC 9 defines size_t in <stddef.h>, not in <sys/types.h>.  */
+/* But avoid namespace pollution on glibc systems.  */
+#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \
+    && ! defined __GLIBC__
+# include <stddef.h>
+#endif
+
+#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
+#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
index 57d16db..e1a4ef8 100644 (file)
@@ -1,5 +1,6 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Unicode character case mappings.
-   Copyright (C) 2002, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -42,15 +43,18 @@ extern "C" {
 
 /* Return the uppercase mapping of a Unicode character.  */
 extern ucs4_t
-       uc_toupper (ucs4_t uc);
+       uc_toupper (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Return the lowercase mapping of a Unicode character.  */
 extern ucs4_t
-       uc_tolower (ucs4_t uc);
+       uc_tolower (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Return the titlecase mapping of a Unicode character.  */
 extern ucs4_t
-       uc_totitle (ucs4_t uc);
+       uc_totitle (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* ========================================================================= */
 
@@ -63,7 +67,8 @@ extern ucs4_t
 /* Return the ISO 639 language code of the current locale.
    Return "" if it is unknown, or in the "C" locale.  */
 extern const char *
-       uc_locale_language (void);
+       uc_locale_language (void)
+       _UC_ATTRIBUTE_PURE;
 
 /* Conventions:
 
diff --git a/lib/unicase.in.h b/lib/unicase.in.h
new file mode 100644 (file)
index 0000000..ab1deca
--- /dev/null
@@ -0,0 +1,461 @@
+/* Unicode character case mappings.
+   Copyright (C) 2002, 2009-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNICASE_H
+#define _UNICASE_H
+
+#include "unitypes.h"
+
+/* Get bool.  */
+#include <unistring/stdbool.h>
+
+/* Get size_t.  */
+#include <stddef.h>
+
+/* Get uninorm_t.  */
+#include "uninorm.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ========================================================================= */
+
+/* Character case mappings.
+   These mappings are locale and context independent.
+   WARNING! These functions are not sufficient for languages such as German.
+   Better use the functions below that treat an entire string at once and are
+   language aware.  */
+
+/* Return the uppercase mapping of a Unicode character.  */
+extern ucs4_t
+       uc_toupper (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the lowercase mapping of a Unicode character.  */
+extern ucs4_t
+       uc_tolower (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the titlecase mapping of a Unicode character.  */
+extern ucs4_t
+       uc_totitle (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* String case mappings.  */
+
+/* These functions are locale dependent.  The iso639_language argument
+   identifies the language (e.g. "tr" for Turkish).  NULL means to use
+   locale independent case mappings.  */
+
+/* Return the ISO 639 language code of the current locale.
+   Return "" if it is unknown, or in the "C" locale.  */
+extern const char *
+       uc_locale_language (void)
+       _UC_ATTRIBUTE_PURE;
+
+/* Conventions:
+
+   All functions prefixed with u8_ operate on UTF-8 encoded strings.
+   Their unit is an uint8_t (1 byte).
+
+   All functions prefixed with u16_ operate on UTF-16 encoded strings.
+   Their unit is an uint16_t (a 2-byte word).
+
+   All functions prefixed with u32_ operate on UCS-4 encoded strings.
+   Their unit is an uint32_t (a 4-byte word).
+
+   All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly
+   n units.
+
+   Functions returning a string result take a (resultbuf, lengthp) argument
+   pair.  If resultbuf is not NULL and the result fits into *lengthp units,
+   it is put in resultbuf, and resultbuf is returned.  Otherwise, a freshly
+   allocated string is returned.  In both cases, *lengthp is set to the
+   length (number of units) of the returned string.  In case of error,
+   NULL is returned and errno is set.  */
+
+/* Return the uppercase mapping of a string.
+   The nf argument identifies the normalization form to apply after the
+   case-mapping.  It can also be NULL, for no normalization.  */
+extern uint8_t *
+       u8_toupper (const uint8_t *s, size_t n, const char *iso639_language,
+                   uninorm_t nf,
+                   uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+       u16_toupper (const uint16_t *s, size_t n, const char *iso639_language,
+                    uninorm_t nf,
+                    uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+       u32_toupper (const uint32_t *s, size_t n, const char *iso639_language,
+                    uninorm_t nf,
+                    uint32_t *resultbuf, size_t *lengthp);
+
+/* Return the lowercase mapping of a string.
+   The nf argument identifies the normalization form to apply after the
+   case-mapping.  It can also be NULL, for no normalization.  */
+extern uint8_t *
+       u8_tolower (const uint8_t *s, size_t n, const char *iso639_language,
+                   uninorm_t nf,
+                   uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+       u16_tolower (const uint16_t *s, size_t n, const char *iso639_language,
+                    uninorm_t nf,
+                    uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+       u32_tolower (const uint32_t *s, size_t n, const char *iso639_language,
+                    uninorm_t nf,
+                    uint32_t *resultbuf, size_t *lengthp);
+
+/* Return the titlecase mapping of a string.
+   The nf argument identifies the normalization form to apply after the
+   case-mapping.  It can also be NULL, for no normalization.  */
+extern uint8_t *
+       u8_totitle (const uint8_t *s, size_t n, const char *iso639_language,
+                   uninorm_t nf,
+                   uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+       u16_totitle (const uint16_t *s, size_t n, const char *iso639_language,
+                    uninorm_t nf,
+                    uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+       u32_totitle (const uint32_t *s, size_t n, const char *iso639_language,
+                    uninorm_t nf,
+                    uint32_t *resultbuf, size_t *lengthp);
+
+/* The case-mapping context given by a prefix string.  */
+typedef struct casing_prefix_context
+        {
+          /* These fields are private, undocumented.  */
+          uint32_t last_char_except_ignorable;
+          uint32_t last_char_normal_or_above;
+        }
+        casing_prefix_context_t;
+/* The case-mapping context of the empty prefix string.  */
+extern LIBUNISTRING_DLL_VARIABLE const casing_prefix_context_t unicase_empty_prefix_context;
+/* Return the case-mapping context of a given prefix string.  */
+extern casing_prefix_context_t
+       u8_casing_prefix_context (const uint8_t *s, size_t n);
+extern casing_prefix_context_t
+       u16_casing_prefix_context (const uint16_t *s, size_t n);
+extern casing_prefix_context_t
+       u32_casing_prefix_context (const uint32_t *s, size_t n);
+/* Return the case-mapping context of the prefix concat(A, S), given the
+   case-mapping context of the prefix A.  */
+extern casing_prefix_context_t
+       u8_casing_prefixes_context (const uint8_t *s, size_t n,
+                                   casing_prefix_context_t a_context);
+extern casing_prefix_context_t
+       u16_casing_prefixes_context (const uint16_t *s, size_t n,
+                                    casing_prefix_context_t a_context);
+extern casing_prefix_context_t
+       u32_casing_prefixes_context (const uint32_t *s, size_t n,
+                                    casing_prefix_context_t a_context);
+
+/* The case-mapping context given by a suffix string.  */
+typedef struct casing_suffix_context
+        {
+          /* These fields are private, undocumented.  */
+          uint32_t first_char_except_ignorable;
+          uint32_t bits;
+        }
+        casing_suffix_context_t;
+/* The case-mapping context of the empty suffix string.  */
+extern LIBUNISTRING_DLL_VARIABLE const casing_suffix_context_t unicase_empty_suffix_context;
+/* Return the case-mapping context of a given suffix string.  */
+extern casing_suffix_context_t
+       u8_casing_suffix_context (const uint8_t *s, size_t n);
+extern casing_suffix_context_t
+       u16_casing_suffix_context (const uint16_t *s, size_t n);
+extern casing_suffix_context_t
+       u32_casing_suffix_context (const uint32_t *s, size_t n);
+/* Return the case-mapping context of the suffix concat(S, A), given the
+   case-mapping context of the suffix A.  */
+extern casing_suffix_context_t
+       u8_casing_suffixes_context (const uint8_t *s, size_t n,
+                                   casing_suffix_context_t a_context);
+extern casing_suffix_context_t
+       u16_casing_suffixes_context (const uint16_t *s, size_t n,
+                                    casing_suffix_context_t a_context);
+extern casing_suffix_context_t
+       u32_casing_suffixes_context (const uint32_t *s, size_t n,
+                                    casing_suffix_context_t a_context);
+
+/* Return the uppercase mapping of a string that is surrounded by a prefix
+   and a suffix.  */
+extern uint8_t *
+       u8_ct_toupper (const uint8_t *s, size_t n,
+                      casing_prefix_context_t prefix_context,
+                      casing_suffix_context_t suffix_context,
+                      const char *iso639_language,
+                      uninorm_t nf,
+                      uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+       u16_ct_toupper (const uint16_t *s, size_t n,
+                      casing_prefix_context_t prefix_context,
+                      casing_suffix_context_t suffix_context,
+                      const char *iso639_language,
+                      uninorm_t nf,
+                      uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+       u32_ct_toupper (const uint32_t *s, size_t n,
+                      casing_prefix_context_t prefix_context,
+                      casing_suffix_context_t suffix_context,
+                      const char *iso639_language,
+                      uninorm_t nf,
+                      uint32_t *resultbuf, size_t *lengthp);
+
+/* Return the lowercase mapping of a string that is surrounded by a prefix
+   and a suffix.  */
+extern uint8_t *
+       u8_ct_tolower (const uint8_t *s, size_t n,
+                      casing_prefix_context_t prefix_context,
+                      casing_suffix_context_t suffix_context,
+                      const char *iso639_language,
+                      uninorm_t nf,
+                      uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+       u16_ct_tolower (const uint16_t *s, size_t n,
+                      casing_prefix_context_t prefix_context,
+                      casing_suffix_context_t suffix_context,
+                      const char *iso639_language,
+                      uninorm_t nf,
+                      uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+       u32_ct_tolower (const uint32_t *s, size_t n,
+                      casing_prefix_context_t prefix_context,
+                      casing_suffix_context_t suffix_context,
+                      const char *iso639_language,
+                      uninorm_t nf,
+                      uint32_t *resultbuf, size_t *lengthp);
+
+/* Return the titlecase mapping of a string that is surrounded by a prefix
+   and a suffix.  */
+extern uint8_t *
+       u8_ct_totitle (const uint8_t *s, size_t n,
+                      casing_prefix_context_t prefix_context,
+                      casing_suffix_context_t suffix_context,
+                      const char *iso639_language,
+                      uninorm_t nf,
+                      uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+       u16_ct_totitle (const uint16_t *s, size_t n,
+                      casing_prefix_context_t prefix_context,
+                      casing_suffix_context_t suffix_context,
+                      const char *iso639_language,
+                      uninorm_t nf,
+                      uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+       u32_ct_totitle (const uint32_t *s, size_t n,
+                      casing_prefix_context_t prefix_context,
+                      casing_suffix_context_t suffix_context,
+                      const char *iso639_language,
+                      uninorm_t nf,
+                      uint32_t *resultbuf, size_t *lengthp);
+
+/* Return the case folded string.
+   Comparing uN_casefold (S1) and uN_casefold (S2) with uN_cmp2() is equivalent
+   to comparing S1 and S2 with uN_casecmp().
+   The nf argument identifies the normalization form to apply after the
+   case-mapping.  It can also be NULL, for no normalization.  */
+extern uint8_t *
+       u8_casefold (const uint8_t *s, size_t n, const char *iso639_language,
+                    uninorm_t nf,
+                    uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+       u16_casefold (const uint16_t *s, size_t n, const char *iso639_language,
+                     uninorm_t nf,
+                     uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+       u32_casefold (const uint32_t *s, size_t n, const char *iso639_language,
+                     uninorm_t nf,
+                     uint32_t *resultbuf, size_t *lengthp);
+/* Likewise, for a string that is surrounded by a prefix and a suffix.  */
+extern uint8_t *
+       u8_ct_casefold (const uint8_t *s, size_t n,
+                       casing_prefix_context_t prefix_context,
+                       casing_suffix_context_t suffix_context,
+                       const char *iso639_language,
+                       uninorm_t nf,
+                       uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+       u16_ct_casefold (const uint16_t *s, size_t n,
+                        casing_prefix_context_t prefix_context,
+                        casing_suffix_context_t suffix_context,
+                        const char *iso639_language,
+                        uninorm_t nf,
+                        uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+       u32_ct_casefold (const uint32_t *s, size_t n,
+                        casing_prefix_context_t prefix_context,
+                        casing_suffix_context_t suffix_context,
+                        const char *iso639_language,
+                        uninorm_t nf,
+                        uint32_t *resultbuf, size_t *lengthp);
+
+/* Compare S1 and S2, ignoring differences in case and normalization.
+   The nf argument identifies the normalization form to apply after the
+   case-mapping.  It can also be NULL, for no normalization.
+   If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and
+   return 0.  Upon failure, return -1 with errno set.  */
+extern 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);
+extern int
+       u16_casecmp (const uint16_t *s1, size_t n1,
+                    const uint16_t *s2, size_t n2,
+                    const char *iso639_language, uninorm_t nf, int *resultp);
+extern int
+       u32_casecmp (const uint32_t *s1, size_t n1,
+                    const uint32_t *s2, size_t n2,
+                    const char *iso639_language, uninorm_t nf, int *resultp);
+extern int
+       ulc_casecmp (const char *s1, size_t n1,
+                    const char *s2, size_t n2,
+                    const char *iso639_language, uninorm_t nf, int *resultp);
+
+/* Convert the string S of length N to a NUL-terminated byte sequence, in such
+   a way that comparing uN_casexfrm (S1) and uN_casexfrm (S2) with the gnulib
+   function memcmp2() is equivalent to comparing S1 and S2 with uN_casecoll().
+   NF must be either UNINORM_NFC, UNINORM_NFKC, or NULL for no normalization.  */
+extern char *
+       u8_casexfrm (const uint8_t *s, size_t n, const char *iso639_language,
+                    uninorm_t nf, char *resultbuf, size_t *lengthp);
+extern char *
+       u16_casexfrm (const uint16_t *s, size_t n, const char *iso639_language,
+                     uninorm_t nf, char *resultbuf, size_t *lengthp);
+extern char *
+       u32_casexfrm (const uint32_t *s, size_t n, const char *iso639_language,
+                     uninorm_t nf, char *resultbuf, size_t *lengthp);
+extern char *
+       ulc_casexfrm (const char *s, size_t n, const char *iso639_language,
+                     uninorm_t nf, char *resultbuf, size_t *lengthp);
+
+/* Compare S1 and S2, ignoring differences in case and normalization, using the
+   collation rules of the current locale.
+   The nf argument identifies the normalization form to apply after the
+   case-mapping.  It must be either UNINORM_NFC or UNINORM_NFKC.  It can also
+   be NULL, for no normalization.
+   If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and
+   return 0.  Upon failure, return -1 with errno set.  */
+extern int
+       u8_casecoll (const uint8_t *s1, size_t n1,
+                    const uint8_t *s2, size_t n2,
+                    const char *iso639_language, uninorm_t nf, int *resultp);
+extern int
+       u16_casecoll (const uint16_t *s1, size_t n1,
+                     const uint16_t *s2, size_t n2,
+                     const char *iso639_language, uninorm_t nf, int *resultp);
+extern int
+       u32_casecoll (const uint32_t *s1, size_t n1,
+                     const uint32_t *s2, size_t n2,
+                     const char *iso639_language, uninorm_t nf, int *resultp);
+extern int
+       ulc_casecoll (const char *s1, size_t n1,
+                     const char *s2, size_t n2,
+                     const char *iso639_language, uninorm_t nf, int *resultp);
+
+
+/* Set *RESULTP to true if mapping NFD(S) to upper case is a no-op, or to false
+   otherwise, and return 0.  Upon failure, return -1 with errno set.  */
+extern int
+       u8_is_uppercase (const uint8_t *s, size_t n,
+                        const char *iso639_language,
+                        bool *resultp);
+extern int
+       u16_is_uppercase (const uint16_t *s, size_t n,
+                         const char *iso639_language,
+                         bool *resultp);
+extern int
+       u32_is_uppercase (const uint32_t *s, size_t n,
+                         const char *iso639_language,
+                         bool *resultp);
+
+/* Set *RESULTP to true if mapping NFD(S) to lower case is a no-op, or to false
+   otherwise, and return 0.  Upon failure, return -1 with errno set.  */
+extern int
+       u8_is_lowercase (const uint8_t *s, size_t n,
+                        const char *iso639_language,
+                        bool *resultp);
+extern int
+       u16_is_lowercase (const uint16_t *s, size_t n,
+                         const char *iso639_language,
+                         bool *resultp);
+extern int
+       u32_is_lowercase (const uint32_t *s, size_t n,
+                         const char *iso639_language,
+                         bool *resultp);
+
+/* Set *RESULTP to true if mapping NFD(S) to title case is a no-op, or to false
+   otherwise, and return 0.  Upon failure, return -1 with errno set.  */
+extern int
+       u8_is_titlecase (const uint8_t *s, size_t n,
+                        const char *iso639_language,
+                        bool *resultp);
+extern int
+       u16_is_titlecase (const uint16_t *s, size_t n,
+                         const char *iso639_language,
+                         bool *resultp);
+extern int
+       u32_is_titlecase (const uint32_t *s, size_t n,
+                         const char *iso639_language,
+                         bool *resultp);
+
+/* Set *RESULTP to true if applying case folding to NFD(S) is a no-op, or to
+   false otherwise, and return 0.  Upon failure, return -1 with errno set.  */
+extern int
+       u8_is_casefolded (const uint8_t *s, size_t n,
+                         const char *iso639_language,
+                         bool *resultp);
+extern int
+       u16_is_casefolded (const uint16_t *s, size_t n,
+                          const char *iso639_language,
+                          bool *resultp);
+extern int
+       u32_is_casefolded (const uint32_t *s, size_t n,
+                          const char *iso639_language,
+                          bool *resultp);
+
+/* Set *RESULTP to true if case matters for S, that is, if mapping NFD(S) to
+   either upper case or lower case or title case is not a no-op.
+   Set *RESULTP to false if NFD(S) maps to itself under the upper case mapping,
+   under the lower case mapping, and under the title case mapping; in other
+   words, when NFD(S) consists entirely of caseless characters.
+   Upon failure, return -1 with errno set.  */
+extern int
+       u8_is_cased (const uint8_t *s, size_t n,
+                    const char *iso639_language,
+                    bool *resultp);
+extern int
+       u16_is_cased (const uint16_t *s, size_t n,
+                     const char *iso639_language,
+                     bool *resultp);
+extern int
+       u32_is_cased (const uint32_t *s, size_t n,
+                     const char *iso639_language,
+                     bool *resultp);
+
+
+/* ========================================================================= */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNICASE_H */
index ced6a0e..fe362e0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether a Unicode character is cased.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index ea2c2ea..06bf66c 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Casing Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -289,7 +289,7 @@ u_casing_property_cased =
     0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0x007FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0x007FFFFF, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
@@ -303,7 +303,7 @@ u_casing_property_cased =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
-    0x00000000, 0x00000000, 0x00000000, 0x80020000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x001F0000, 0x00000000, 0x00000000, 0x00000000,
     0x3E2FFC84, 0xF21FBD50, 0x000043E0, 0xFFFFFFFF,
     0x00000018, 0x00000000, 0x00000000, 0x00000000,
@@ -311,14 +311,14 @@ u_casing_property_cased =
     0x00000000, 0xFFC00000, 0xFFFFFFFF, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000781F,
     0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFFFFF, 0x00003FFC,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x00003FFF,
     0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000018FF, 0x00000000, 0x00000000, 0x00000000,
+    0x000378FF, 0x000003FF, 0x00000000, 0x04000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
index 1a4fe92..50244f8 100644 (file)
@@ -1,5 +1,5 @@
 /* Casefolding of Unicode characters.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 391d169..5bb07cc 100644 (file)
@@ -1,5 +1,5 @@
 /* Case related properties of Unicode characters.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
    <http://www.unicode.org/versions/Unicode5.0.0/ch03.pdf>, section 3.13,
    definition D120.  */
 extern bool
-       uc_is_cased (ucs4_t uc);
+       uc_is_cased (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Determine whether a character is "case-ignorable"
    according to the Unicode Standard,
    <http://www.unicode.org/versions/Unicode5.0.0/ch03.pdf>, section 3.13,
    definition D121.  */
 extern bool
-       uc_is_case_ignorable (ucs4_t uc);
+       uc_is_case_ignorable (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
index a3303d6..f2664ad 100644 (file)
@@ -1,5 +1,5 @@
 /* Case-mapping contexts of UTF-8/UTF-16/UTF-32 substring.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index dada104..1f6050d 100644 (file)
@@ -1,5 +1,5 @@
 /* Case-mapping context of empty prefix string.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index fc59a6e..a653d63 100644 (file)
@@ -1,5 +1,5 @@
 /* Case-mapping context of empty suffix string.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 9cfce9f..d4584d5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether a Unicode character is case-ignorable.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 3b29290..810f52a 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Casing Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[30 << 4];
+    /*unsigned*/ int level3[32 << 4];
   }
 u_casing_property_case_ignorable =
 {
@@ -116,10 +116,10 @@ u_casing_property_case_ignorable =
        -1,
        16 +   384 * sizeof (short) / sizeof (int) +   304,
        -1,
-       -1,
        16 +   384 * sizeof (short) / sizeof (int) +   320,
        16 +   384 * sizeof (short) / sizeof (int) +   336,
        16 +   384 * sizeof (short) / sizeof (int) +   352,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -159,18 +159,18 @@ u_casing_property_case_ignorable =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   368,
-       -1,
        16 +   384 * sizeof (short) / sizeof (int) +   384,
-       16 +   384 * sizeof (short) / sizeof (int) +   400,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
+       16 +   384 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   416,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   432,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
        -1,
@@ -266,8 +266,8 @@ u_casing_property_case_ignorable =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   432,
-       16 +   384 * sizeof (short) / sizeof (int) +   448,
+       16 +   384 * sizeof (short) / sizeof (int) +   464,
+       16 +   384 * sizeof (short) / sizeof (int) +   480,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@ u_casing_property_case_ignorable =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   464,
+       16 +   384 * sizeof (short) / sizeof (int) +   496,
        -1,
        -1,
        -1,
@@ -432,13 +432,13 @@ u_casing_property_case_ignorable =
     0x000003F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x02000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00100000,
-    0x07FF000F, 0x00000000, 0x7FFFF801, 0x00010000,
-    0x00000000, 0x00000000, 0xFFC00000, 0x00003DFF,
+    0x07FF000F, 0x00000000, 0xFFFFF801, 0x00010000,
+    0x00000000, 0x00000000, 0xBFC00000, 0x00003DFF,
     0x00028000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x043FF800,
+    0xFFC00000, 0x00003FFF, 0x0E000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000006, 0x10000000, 0x001E21FE, 0x0002000C,
+    0x00000007, 0x14000000, 0x00FE21FE, 0x0002000C,
     0x00000002, 0x10000000, 0x0000201E, 0x0000000C,
     0x00000006, 0x10000000, 0x00023986, 0x00230000,
     0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
@@ -451,14 +451,14 @@ u_casing_property_case_ignorable =
     0x00000000, 0x07F20000, 0x00007FC0, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F40, 0x00000000,
     0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
-    0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+    0xFEFFE0DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
     0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
-    0x00002064, 0x00000000, 0x00000000, 0x10000000,
+    0x20002064, 0x00000000, 0x00000000, 0x10000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0xE0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -468,25 +468,25 @@ u_casing_property_case_ignorable =
     0x00000000, 0x00000200, 0x00000000, 0x00000000,
     0x00000000, 0x0E040187, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x01800000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x01800000, 0x00000000, 0x7F400000, 0x9FF81FE5,
+    0x00000000, 0x00000080, 0x00000000, 0x00000000,
     0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
-    0x00000003, 0x0000033C, 0x00000000, 0x00000000,
+    0x00000003, 0x0000033C, 0x00000000, 0x0003A340,
     0x00000000, 0x00CFF000, 0x00000000, 0x3F000000,
+    0x00000000, 0x00000000, 0xFFF70000, 0x000021FD,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xF000007F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
-    0x0300F800, 0x00007C90, 0x00000000, 0x0000FC1F,
-    0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0300F800, 0x00007C90, 0x00000000, 0x8002FC1F,
+    0x1FE00000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00008000,
+    0x00000000, 0x00000000, 0x00000000, 0x00038000,
+    0x00000000, 0x00000000, 0x00000000, 0x80008000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x00008000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -500,22 +500,26 @@ u_casing_property_case_ignorable =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00001000, 0x00000000, 0x00000000, 0xB0078000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x3F000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00001000, 0x00000000, 0x00000000, 0xB0078000,
+    0x00000000, 0x00000000, 0x00000000, 0x00030000,
     0xFFFFFFFF, 0x00000003, 0x00000000, 0x00000000,
     0x00000700, 0x00000000, 0x00000000, 0x00000000,
     0x00000844, 0x00000060, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000010, 0x00000000,
+    0x00000000, 0x00000000, 0x00000010, 0x0003FFFF,
     0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
+    0x00000007, 0x13C80000, 0x00008000, 0x00000000,
+    0x00000000, 0x00667E00, 0x00001008, 0x00010000,
+    0x00000000, 0xC19D0000, 0x20000002, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00667E00, 0x00001008, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00002120,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFC0000, 0x00000003, 0x00000000,
     0x0008FFFF, 0x0000007F, 0x00240000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x04004080, 0x40000000, 0x00000001, 0x00010000,
@@ -528,6 +532,10 @@ u_casing_property_case_ignorable =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000002, 0xFF000000, 0x0000007F, 0x00000000,
+    0x00000003, 0x26780000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFF80380,
index c65ae23..49840ce 100644 (file)
@@ -1,5 +1,5 @@
 /* Internal functions for Unicode character case mappings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 2ee65c7..1ea4b1c 100644 (file)
@@ -1,5 +1,5 @@
 /* Language code of current locale.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 83200b4..9366751 100644 (file)
@@ -1,5 +1,5 @@
 /* Simple case mapping for Unicode characters.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 78e8fcd..f77662e 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Special casing rules of Unicode characters.  */
-/* Generated automatically by gen-uni-tables.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 struct special_casing_rule { char code[3]; };
 %struct-type
 %language=ANSI-C
index 95b6c82..f99d6b9 100644 (file)
@@ -1,5 +1,5 @@
 /* Special casing table.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 33911cf..7a3e8c4 100644 (file)
@@ -1,5 +1,5 @@
 /* Special casing table.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 1ba79bd..620d292 100644 (file)
@@ -1,5 +1,5 @@
 /* Casefold mapping for Unicode characters (locale and context independent).
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 59f2681..0b68f83 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Simple character mapping of Unicode characters.  */
-/* Generated automatically by gen-case.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-case.c for Unicode 6.0.0.  */
 #define mapping_header_0 16
 #define mapping_header_1 2
 #define mapping_header_2 7
@@ -295,7 +295,7 @@ u_mapping =
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
-        1,     0,     1,     0,     0,     0,     0,     0,
+        1,     0,     1,     0,     1,     0,     1,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,    48,    48,    48,    48,    48,    48,    48,
        48,    48,    48,    48,    48,    48,    48,    48,
@@ -449,8 +449,8 @@ u_mapping =
         0,     0,     0,     0,     0,     0,     0,     0,
         1,     0, -10743, -3814, -10727,     0,     0,     1,
         0,     1,     0,     1,     0, -10780, -10749, -10783,
-        0,     0,     1,     0,     0,     1,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+    -10782,     0,     1,     0,     0,     1,     0,     0,
+        0,     0,     0,     0,     0,     0, -10815, -10815,
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
@@ -464,7 +464,7 @@ u_mapping =
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     1,     0,     1,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
@@ -479,7 +479,7 @@ u_mapping =
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
-        0,     0,     1,     0,     1,     0,     1,     0,
+        1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
@@ -516,11 +516,11 @@ u_mapping =
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     1,     0,     1,     0, -35332,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
-        0,     0,     0,     1,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     1,     0, -42280,     0,     0,
+        1,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
+        1,     0,     1,     0,     1,     0,     1,     0,
+        1,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
index c69f691..96551cc 100644 (file)
@@ -1,5 +1,5 @@
 /* Lowercase mapping for Unicode characters (locale and context independent).
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index e7b4b29..b759903 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Simple character mapping of Unicode characters.  */
-/* Generated automatically by gen-case.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-case.c for Unicode 6.0.0.  */
 #define mapping_header_0 16
 #define mapping_header_1 2
 #define mapping_header_2 7
@@ -295,7 +295,7 @@ u_mapping =
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
-        1,     0,     1,     0,     0,     0,     0,     0,
+        1,     0,     1,     0,     1,     0,     1,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,    48,    48,    48,    48,    48,    48,    48,
        48,    48,    48,    48,    48,    48,    48,    48,
@@ -449,8 +449,8 @@ u_mapping =
         0,     0,     0,     0,     0,     0,     0,     0,
         1,     0, -10743, -3814, -10727,     0,     0,     1,
         0,     1,     0,     1,     0, -10780, -10749, -10783,
-        0,     0,     1,     0,     0,     1,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+    -10782,     0,     1,     0,     0,     1,     0,     0,
+        0,     0,     0,     0,     0,     0, -10815, -10815,
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
@@ -464,7 +464,7 @@ u_mapping =
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     1,     0,     1,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
@@ -479,7 +479,7 @@ u_mapping =
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
-        0,     0,     1,     0,     1,     0,     1,     0,
+        1,     0,     1,     0,     1,     0,     1,     0,
         1,     0,     1,     0,     1,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
@@ -516,11 +516,11 @@ u_mapping =
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     1,     0,     1,     0, -35332,     1,     0,
         1,     0,     1,     0,     1,     0,     1,     0,
-        0,     0,     0,     1,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     1,     0, -42280,     0,     0,
+        1,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
+        1,     0,     1,     0,     1,     0,     1,     0,
+        1,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
index ced1b69..16b8332 100644 (file)
@@ -1,5 +1,5 @@
 /* Titlecase mapping for Unicode characters (locale and context independent).
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 6610437..3ccb935 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Simple character mapping of Unicode characters.  */
-/* Generated automatically by gen-case.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-case.c for Unicode 6.0.0.  */
 #define mapping_header_0 16
 #define mapping_header_1 2
 #define mapping_header_2 7
@@ -218,12 +218,12 @@ u_mapping =
         0,     0,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,     0,     0,     0,
-        0,     0,     0,     0,    -1,     0,     0,     0,
-        0,     0,    -1,     0,     0,     0,     0,    -1,
+        0,     0,     0,     0,    -1,     0,     0, 10815,
+    10815,     0,    -1,     0,     0,     0,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
-    10783, 10780,     0,  -210,  -206,     0,  -205,  -205,
+    10783, 10780, 10782,  -210,  -206,     0,  -205,  -205,
         0,  -202,     0,  -203,     0,     0,     0,     0,
-     -205,     0,     0,  -207,     0,     0,     0,     0,
+     -205,     0,     0,  -207,     0, 42280,     0,     0,
      -209,  -211,     0, 10743,     0,     0,     0,  -211,
         0, 10749,  -213,     0,     0,  -214,     0,     0,
         0,     0,     0,     0,     0, 10727,     0,     0,
@@ -311,7 +311,7 @@ u_mapping =
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
-        0,    -1,     0,    -1,     0,     0,     0,     0,
+        0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
@@ -496,7 +496,7 @@ u_mapping =
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    -1,     0,    -1,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
     -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264,
@@ -527,7 +527,7 @@ u_mapping =
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
-        0,     0,     0,    -1,     0,    -1,     0,    -1,
+        0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
@@ -565,10 +565,10 @@ u_mapping =
         0,     0,    -1,     0,    -1,     0,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,     0,     0,     0,    -1,     0,     0,     0,
+        0,    -1,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+        0,    -1,     0,    -1,     0,    -1,     0,    -1,
+        0,    -1,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
index 9642b70..0a62655 100644 (file)
@@ -1,5 +1,5 @@
 /* Uppercase mapping for Unicode characters (locale and context independent).
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index e5194f4..d8e4069 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Simple character mapping of Unicode characters.  */
-/* Generated automatically by gen-case.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-case.c for Unicode 6.0.0.  */
 #define mapping_header_0 16
 #define mapping_header_1 2
 #define mapping_header_2 7
@@ -218,12 +218,12 @@ u_mapping =
         0,     0,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,     0,     0,     0,
-        0,     0,     0,     0,    -1,     0,     0,     0,
-        0,     0,    -1,     0,     0,     0,     0,    -1,
+        0,     0,     0,     0,    -1,     0,     0, 10815,
+    10815,     0,    -1,     0,     0,     0,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
-    10783, 10780,     0,  -210,  -206,     0,  -205,  -205,
+    10783, 10780, 10782,  -210,  -206,     0,  -205,  -205,
         0,  -202,     0,  -203,     0,     0,     0,     0,
-     -205,     0,     0,  -207,     0,     0,     0,     0,
+     -205,     0,     0,  -207,     0, 42280,     0,     0,
      -209,  -211,     0, 10743,     0,     0,     0,  -211,
         0, 10749,  -213,     0,     0,  -214,     0,     0,
         0,     0,     0,     0,     0, 10727,     0,     0,
@@ -311,7 +311,7 @@ u_mapping =
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
-        0,    -1,     0,    -1,     0,     0,     0,     0,
+        0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
@@ -496,7 +496,7 @@ u_mapping =
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    -1,     0,    -1,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
     -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264,
@@ -527,7 +527,7 @@ u_mapping =
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
-        0,     0,     0,    -1,     0,    -1,     0,    -1,
+        0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
@@ -565,10 +565,10 @@ u_mapping =
         0,     0,    -1,     0,    -1,     0,     0,    -1,
         0,    -1,     0,    -1,     0,    -1,     0,    -1,
         0,     0,     0,     0,    -1,     0,     0,     0,
+        0,    -1,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,
+        0,    -1,     0,    -1,     0,    -1,     0,    -1,
+        0,    -1,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,
index 88c308b..f9ccf30 100644 (file)
@@ -1,5 +1,5 @@
 /* Case and normalization insensitive comparison of Unicode strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 700d49b..0e9763c 100644 (file)
@@ -1,6 +1,6 @@
 /* Locale dependent, case and normalization insensitive comparison of Unicode
    strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index b0dc89a..bf71340 100644 (file)
@@ -1,5 +1,5 @@
 /* Casefolding mapping for Unicode strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index b5b4d2f..c080ae0 100644 (file)
@@ -1,5 +1,5 @@
 /* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 5c7430c..a1b116e 100644 (file)
@@ -1,6 +1,6 @@
 /* Locale dependent transformation for case insensitive comparison of Unicode
    strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -70,7 +70,7 @@ FUNC (const UNIT *s, size_t n, const char *iso639_language, uninorm_t nf,
     }
 
   /* Apply locale dependent transformations for comparison.  */
-  result = memxfrm (convs, convs_length, resultbuf, lengthp);
+  result = amemxfrm (convs, convs_length, resultbuf, lengthp);
   if (result == NULL)
     {
       if (convs != convsbuf)
index e11d0a8..356bcc6 100644 (file)
@@ -1,5 +1,5 @@
 /* Casefolding mapping for Unicode substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 8892a5d..918208a 100644 (file)
@@ -1,5 +1,5 @@
 /* Titlecase mapping for UTF-8/UTF-16/UTF-32 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index c187a30..5f6a947 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether case matters for a Unicode string.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 541dd8d..3935b24 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether a Unicode string is invariant under a given case mapping.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 658c95f..dac1d4e 100644 (file)
@@ -1,5 +1,5 @@
 /* Titlecase mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index e6780a9..90a1982 100644 (file)
@@ -1,5 +1,5 @@
 /* Case and normalization insensitive comparison of UTF-16 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 986bdb8..479f140 100644 (file)
@@ -1,6 +1,6 @@
 /* Locale dependent, case and normalization insensitive comparison of UTF-16
    strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 037d51f..d1268eb 100644 (file)
@@ -1,5 +1,5 @@
 /* Casefolding mapping for UTF-16 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index b8021e7..ccf87bc 100644 (file)
@@ -1,5 +1,5 @@
 /* Case mapping for UTF-16 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 661902f..978e2d5 100644 (file)
@@ -1,6 +1,6 @@
 /* Locale dependent transformation for case insensitive comparison of UTF-16
    strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
 
 #include "localcharset.h"
 #include "uniconv.h"
-#include "memxfrm.h"
+#include "amemxfrm.h"
 
 #define FUNC u16_casexfrm
 #define UNIT uint16_t
index 65e49e7..9539dfa 100644 (file)
@@ -1,5 +1,5 @@
 /* Casefolding mapping for UTF-16 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 2b09c7e..533f8c6 100644 (file)
@@ -1,5 +1,5 @@
 /* Lowercase mapping for UTF-16 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 095bd9f..cbf2b64 100644 (file)
@@ -1,5 +1,5 @@
 /* Titlecase mapping for UTF-16 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index d26f6c5..5cf561d 100644 (file)
@@ -1,5 +1,5 @@
 /* Uppercase mapping for UTF-16 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 385c01a..420a703 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether case matters for an UTF-16 string.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index dd3b6c1..024a152 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-16 string is already case-folded.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index a7f40da..6e4a044 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-16 string is invariant under a given case mapping.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index de51a04..6bb1538 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-16 string is entirely lower case.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 4192aad..1db23fd 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-16 string is entirely title case.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 509c9bb..85eacf6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-16 string is entirely upper case.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index c931cca..abc7d58 100644 (file)
@@ -1,5 +1,5 @@
 /* Lowercase mapping for UTF-16 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index f7c5946..e5f62ff 100644 (file)
@@ -1,5 +1,5 @@
 /* Titlecase mapping for UTF-16 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -24,4 +24,3 @@
 #define UNIT uint16_t
 #define U_CT_TOTITLE u16_ct_totitle
 #include "u-totitle.h"
-
index 12e888a..7ee96f5 100644 (file)
@@ -1,5 +1,5 @@
 /* Uppercase mapping for UTF-16 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 7b67bb1..f9da500 100644 (file)
@@ -1,5 +1,5 @@
 /* Case and normalization insensitive comparison of UTF-32 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 6d1d772..8814e35 100644 (file)
@@ -1,6 +1,6 @@
 /* Locale dependent, case and normalization insensitive comparison of UTF-32
    strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index d1a1341..bf4badb 100644 (file)
@@ -1,5 +1,5 @@
 /* Casefolding mapping for UTF-32 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 6c8213c..10593d9 100644 (file)
@@ -1,5 +1,5 @@
 /* Case mapping for UTF-32 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index bd54497..4a38166 100644 (file)
@@ -1,6 +1,6 @@
 /* Locale dependent transformation for case insensitive comparison of UTF-32
    strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
 
 #include "localcharset.h"
 #include "uniconv.h"
-#include "memxfrm.h"
+#include "amemxfrm.h"
 
 #define FUNC u32_casexfrm
 #define UNIT uint32_t
index f360cce..895cfea 100644 (file)
@@ -1,5 +1,5 @@
 /* Casefolding mapping for UTF-32 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 7df6a56..1148b48 100644 (file)
@@ -1,5 +1,5 @@
 /* Lowercase mapping for UTF-32 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index d9f51bb..3b9b516 100644 (file)
@@ -1,5 +1,5 @@
 /* Titlecase mapping for UTF-32 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index e616556..820d126 100644 (file)
@@ -1,5 +1,5 @@
 /* Uppercase mapping for UTF-32 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index e836dc1..9b85f4d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether case matters for an UTF-32 string.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 6c2bbb0..fb0d95f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-32 string is already case-folded.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index aea4c61..45ddab6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-32 string is invariant under a given case mapping.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index cc2fa2d..52c2354 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-32 string is entirely lower case.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index ee48fc7..058be64 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-32 string is entirely title case.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 369a68b..148bffa 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-32 string is entirely upper case.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index b9c53ed..69070fa 100644 (file)
@@ -1,5 +1,5 @@
 /* Lowercase mapping for UTF-32 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index d144ae7..4eb734a 100644 (file)
@@ -1,5 +1,5 @@
 /* Titlecase mapping for UTF-32 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index d58c8e2..8717ee5 100644 (file)
@@ -1,5 +1,5 @@
 /* Uppercase mapping for UTF-32 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 4edbfc3..22208a5 100644 (file)
@@ -1,5 +1,5 @@
 /* Case and normalization insensitive comparison of UTF-8 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 694011c..d66034a 100644 (file)
@@ -1,6 +1,6 @@
 /* Locale dependent, case and normalization insensitive comparison of UTF-8
    strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index e3c9177..fb7f43d 100644 (file)
@@ -1,5 +1,5 @@
 /* Casefolding mapping for UTF-8 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 9e4d0c0..52493e4 100644 (file)
@@ -1,5 +1,5 @@
 /* Case mapping for UTF-8 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index b3e0c66..a6fc724 100644 (file)
@@ -1,6 +1,6 @@
 /* Locale dependent transformation for case insensitive comparison of UTF-8
    strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
 
 #include "localcharset.h"
 #include "uniconv.h"
-#include "memxfrm.h"
+#include "amemxfrm.h"
 
 #define FUNC u8_casexfrm
 #define UNIT uint8_t
index 45bacfc..4efe1ec 100644 (file)
@@ -1,5 +1,5 @@
 /* Casefolding mapping for UTF-8 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 1b0ee33..07a2f34 100644 (file)
@@ -1,5 +1,5 @@
 /* Lowercase mapping for UTF-8 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 7bcdc0d..9f15cca 100644 (file)
@@ -1,5 +1,5 @@
 /* Titlecase mapping for UTF-8 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index c22b25a..31fd895 100644 (file)
@@ -1,5 +1,5 @@
 /* Uppercase mapping for UTF-8 substrings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 56fc9c7..535e669 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether case matters for an UTF-8 string.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 007a512..5929eae 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-8 string is already case-folded.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 4794e56..e890b72 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-8 string is invariant under a given case mapping.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 8501614..f89d70f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-8 string is entirely lower case.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 6357a34..c15c166 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-8 string is entirely title case.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 817579f..37dc9f6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test whether an UTF-8 string is entirely upper case.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index f657feb..db2d61b 100644 (file)
@@ -1,5 +1,5 @@
 /* Lowercase mapping for UTF-8 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index e63cda9..b976dad 100644 (file)
@@ -1,5 +1,5 @@
 /* Titlecase mapping for UTF-8 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 7429e52..4d1884c 100644 (file)
@@ -1,5 +1,5 @@
 /* Uppercase mapping for UTF-8 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 1f343cd..5be3083 100644 (file)
@@ -1,5 +1,5 @@
 /* Case and normalization insensitive comparison of strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 9645e14..b9e035e 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent, case and normalization insensitive comparison of strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 8998211..b3badab 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent transformation for case insensitive comparison of strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 0188083..ec7b4fd 100644 (file)
@@ -1,5 +1,5 @@
 /* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent).
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index bd32ae6..2ab4fc6 100644 (file)
@@ -1,5 +1,6 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Conversions between Unicode and legacy encodings.
-   Copyright (C) 2002, 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005, 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
diff --git a/lib/uniconv.in.h b/lib/uniconv.in.h
new file mode 100644 (file)
index 0000000..9dd84fa
--- /dev/null
@@ -0,0 +1,169 @@
+/* Conversions between Unicode and legacy encodings.
+   Copyright (C) 2002, 2005, 2007, 2009-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNICONV_H
+#define _UNICONV_H
+
+/* Get size_t.  */
+#include <stddef.h>
+
+#include "unitypes.h"
+
+/* Get enum iconv_ilseq_handler.  */
+#include <unistring/iconveh.h>
+
+/* Get locale_charset() declaration.  */
+#include <unistring/localcharset.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Converts an entire string, possibly including NUL bytes, from one encoding
+   to a Unicode encoding.
+   Converts a memory region given in encoding FROMCODE.  FROMCODE is as for
+   iconv_open(3).
+   The input is in the memory region between SRC (inclusive) and SRC + SRCLEN
+   (exclusive).
+   If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this
+   array is filled with offsets into the result, i.e. the character starting
+   at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]],
+   and other offsets are set to (size_t)(-1).
+   RESULTBUF and *LENGTHP should initially be a scratch buffer and its size,
+   or *RESULTBUF can be NULL.
+   May erase the contents of the memory at RESULTBUF.
+   If successful: The resulting Unicode string (non-NULL) is returned and its
+   length stored in *LENGTHP.  The resulting string is RESULTBUF if no dynamic
+   memory allocation was necessary, or a freshly allocated memory block
+   otherwise.
+   In case of error: NULL is returned and errno is set.  Particular errno
+   values: EINVAL, EILSEQ, ENOMEM.  */
+extern uint8_t *
+       u8_conv_from_encoding (const char *fromcode,
+                              enum iconv_ilseq_handler handler,
+                              const char *src, size_t srclen,
+                              size_t *offsets,
+                              uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+       u16_conv_from_encoding (const char *fromcode,
+                               enum iconv_ilseq_handler handler,
+                               const char *src, size_t srclen,
+                               size_t *offsets,
+                               uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+       u32_conv_from_encoding (const char *fromcode,
+                               enum iconv_ilseq_handler handler,
+                               const char *src, size_t srclen,
+                               size_t *offsets,
+                               uint32_t *resultbuf, size_t *lengthp);
+
+/* Converts an entire Unicode string, possibly including NUL units, from a
+   Unicode encoding to a given encoding.
+   Converts a memory region to encoding TOCODE.  TOCODE is as for
+   iconv_open(3).
+   The input is in the memory region between SRC (inclusive) and SRC + SRCLEN
+   (exclusive).
+   If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this
+   array is filled with offsets into the result, i.e. the character starting
+   at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]],
+   and other offsets are set to (size_t)(-1).
+   RESULTBUF and *LENGTHP should initially be a scratch buffer and its size,
+   or RESULTBUF can be NULL.
+   May erase the contents of the memory at RESULTBUF.
+   If successful: The resulting string (non-NULL) is returned and its length
+   stored in *LENGTHP.  The resulting string is RESULTBUF if no dynamic memory
+   allocation was necessary, or a freshly allocated memory block otherwise.
+   In case of error: NULL is returned and errno is set.  Particular errno
+   values: EINVAL, EILSEQ, ENOMEM.  */
+extern char *
+       u8_conv_to_encoding (const char *tocode,
+                            enum iconv_ilseq_handler handler,
+                            const uint8_t *src, size_t srclen,
+                            size_t *offsets,
+                            char *resultbuf, size_t *lengthp);
+extern char *
+       u16_conv_to_encoding (const char *tocode,
+                             enum iconv_ilseq_handler handler,
+                             const uint16_t *src, size_t srclen,
+                             size_t *offsets,
+                             char *resultbuf, size_t *lengthp);
+extern char *
+       u32_conv_to_encoding (const char *tocode,
+                             enum iconv_ilseq_handler handler,
+                             const uint32_t *src, size_t srclen,
+                             size_t *offsets,
+                             char *resultbuf, size_t *lengthp);
+
+/* Converts a NUL terminated string from a given encoding.
+   The result is malloc allocated, or NULL (with errno set) in case of error.
+   Particular errno values: EILSEQ, ENOMEM.  */
+extern uint8_t *
+       u8_strconv_from_encoding (const char *string,
+                                 const char *fromcode,
+                                 enum iconv_ilseq_handler handler);
+extern uint16_t *
+       u16_strconv_from_encoding (const char *string,
+                                  const char *fromcode,
+                                  enum iconv_ilseq_handler handler);
+extern uint32_t *
+       u32_strconv_from_encoding (const char *string,
+                                  const char *fromcode,
+                                  enum iconv_ilseq_handler handler);
+
+/* Converts a NUL terminated string to a given encoding.
+   The result is malloc allocated, or NULL (with errno set) in case of error.
+   Particular errno values: EILSEQ, ENOMEM.  */
+extern char *
+       u8_strconv_to_encoding (const uint8_t *string,
+                               const char *tocode,
+                               enum iconv_ilseq_handler handler);
+extern char *
+       u16_strconv_to_encoding (const uint16_t *string,
+                                const char *tocode,
+                                enum iconv_ilseq_handler handler);
+extern char *
+       u32_strconv_to_encoding (const uint32_t *string,
+                                const char *tocode,
+                                enum iconv_ilseq_handler handler);
+
+/* Converts a NUL terminated string from the locale encoding.
+   The result is malloc allocated, or NULL (with errno set) in case of error.
+   Particular errno values: ENOMEM.  */
+extern uint8_t *
+       u8_strconv_from_locale (const char *string);
+extern uint16_t *
+       u16_strconv_from_locale (const char *string);
+extern uint32_t *
+       u32_strconv_from_locale (const char *string);
+
+/* Converts a NUL terminated string to the locale encoding.
+   The result is malloc allocated, or NULL (with errno set) in case of error.
+   Particular errno values: ENOMEM.  */
+extern char *
+       u8_strconv_to_locale (const uint8_t *string);
+extern char *
+       u16_strconv_to_locale (const uint16_t *string);
+extern char *
+       u32_strconv_to_locale (const uint32_t *string);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNICONV_H */
index 457bd0f..d7f43a2 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion to UTF-16/UTF-32 from legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index 43d82c7..41b2b48 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from UTF-16/UTF-32 to legacy encodings.
-   Copyright (C) 2002, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index df91c38..65895b0 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion to UTF-8/UTF-16/UTF-32 from legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index c15182f..0760e08 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from UTF-16/UTF-32 to legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index dc4c21d..9d9506d 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion to UTF-16 from legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -28,7 +28,7 @@
 #include "unistr.h"
 
 /* Name of UTF-16 encoding with machine dependent endianness and alignment.  */
-#if defined _LIBICONV_VERSION || (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#if defined _LIBICONV_VERSION || (((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__)
 # ifdef WORDS_BIGENDIAN
 #  define UTF16_NAME "UTF-16BE"
 # else
index cce454d..1f8672b 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from UTF-16 to legacy encodings.
-   Copyright (C) 2002, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -31,7 +31,7 @@
 #define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
 
 /* Name of UTF-16 encoding with machine dependent endianness and alignment.  */
-#if defined _LIBICONV_VERSION || (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#if defined _LIBICONV_VERSION || (((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__)
 # ifdef WORDS_BIGENDIAN
 #  define UTF16_NAME "UTF-16BE"
 # else
index ebdd62e..df3c9ff 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion to UTF-16 from legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index c6695d1..6d1cc85 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion to UTF-16 from the locale encoding.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index c8e00e7..e5aaab3 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from UTF-16 to legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -31,7 +31,7 @@
 #define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
 
 /* Name of UTF-16 encoding with machine dependent endianness and alignment.  */
-#if defined _LIBICONV_VERSION || (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#if defined _LIBICONV_VERSION || (((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__)
 # ifdef WORDS_BIGENDIAN
 #  define UTF16_NAME "UTF-16BE"
 # else
index 74fcbed..4b05965 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from UTF-16 to the locale encoding.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index f5c6e8e..8470768 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion to UTF-32 from legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -31,7 +31,7 @@
    alignment.  */
 #if defined _LIBICONV_VERSION
 # define UTF32_NAME "UCS-4-INTERNAL"
-#elif (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#elif ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__
 # define UTF32_NAME "WCHAR_T"
 #endif
 
index 7bfc9f4..4be311d 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from UTF-32 to legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -34,7 +34,7 @@
    alignment.  */
 #if defined _LIBICONV_VERSION
 # define UTF32_NAME "UCS-4-INTERNAL"
-#elif (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#elif ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__
 # define UTF32_NAME "WCHAR_T"
 #endif
 
index 65ff600..ffaf0c3 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion to UTF-32 from legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index 103e41b..70e4644 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion to UTF-32 from the locale encoding.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index fd45013..62098d7 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from UTF-32 to legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -34,7 +34,7 @@
    alignment.  */
 #if defined _LIBICONV_VERSION
 # define UTF32_NAME "UCS-4-INTERNAL"
-#elif (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+#elif ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) && !defined __UCLIBC__
 # define UTF32_NAME "WCHAR_T"
 #endif
 
index 57cc47e..453c607 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from UTF-32 to the locale encoding.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index 88d666c..6136e4b 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion to UTF-8 from legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index cacf259..cd1145d 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from UTF-8 to legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index e177666..667bef2 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion to UTF-8 from legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index e149ce3..448edea 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion to UTF-8 from the locale encoding.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index d593cf1..e3c466e 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from UTF-8 to legacy encodings.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index 8bdc812..cf50ac1 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion from UTF-8 to the locale encoding.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index e374873..ecf239f 100644 (file)
@@ -1,5 +1,6 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Unicode character classification and properties.
-   Copyright (C) 2002, 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -64,6 +65,7 @@ uc_general_category_t;
 enum
 {
   UC_CATEGORY_MASK_L  = 0x0000001f,
+  UC_CATEGORY_MASK_LC = 0x00000007,
   UC_CATEGORY_MASK_Lu = 0x00000001,
   UC_CATEGORY_MASK_Ll = 0x00000002,
   UC_CATEGORY_MASK_Lt = 0x00000004,
@@ -104,6 +106,7 @@ enum
 
 /* Predefined General category values.  */
 extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_L;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_LC;
 extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lu;
 extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Ll;
 extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lt;
@@ -145,6 +148,7 @@ extern const uc_general_category_t _UC_CATEGORY_NONE;
 
 /* Alias names for predefined General category values.  */
 #define UC_LETTER                    UC_CATEGORY_L
+#define UC_CASED_LETTER              UC_CATEGORY_LC
 #define UC_UPPERCASE_LETTER          UC_CATEGORY_Lu
 #define UC_LOWERCASE_LETTER          UC_CATEGORY_Ll
 #define UC_TITLECASE_LETTER          UC_CATEGORY_Lt
@@ -205,24 +209,35 @@ extern uc_general_category_t
 
 /* Return the name of a general category.  */
 extern const char *
-       uc_general_category_name (uc_general_category_t category);
+       uc_general_category_name (uc_general_category_t category)
+       _UC_ATTRIBUTE_PURE;
 
-/* Return the general category given by name, e.g. "Lu".  */
+/* Return the long name of a general category.  */
+extern const char *
+       uc_general_category_long_name (uc_general_category_t category)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the general category given by name, e.g. "Lu", or by long name,
+   e.g. "Uppercase Letter".  */
 extern uc_general_category_t
-       uc_general_category_byname (const char *category_name);
+       uc_general_category_byname (const char *category_name)
+       _UC_ATTRIBUTE_PURE;
 
 /* Return the general category of a Unicode character.  */
 extern uc_general_category_t
-       uc_general_category (ucs4_t uc);
+       uc_general_category (ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
 
 /* Test whether a Unicode character belongs to a given category.
    The CATEGORY argument can be the combination of several predefined
    general categories.  */
 extern bool
-       uc_is_general_category (ucs4_t uc, uc_general_category_t category);
+       uc_is_general_category (ucs4_t uc, uc_general_category_t category)
+       _UC_ATTRIBUTE_PURE;
 /* Likewise.  This function uses a big table comprising all categories.  */
 extern bool
-       uc_is_general_category_withtable (ucs4_t uc, uint32_t bitmask);
+       uc_is_general_category_withtable (ucs4_t uc, uint32_t bitmask)
+       _UC_ATTRIBUTE_CONST;
 
 /* ========================================================================= */
 
@@ -240,6 +255,7 @@ enum
   UC_CCC_VR   =   9, /* Virama */
   UC_CCC_ATBL = 200, /* Attached Below Left */
   UC_CCC_ATB  = 202, /* Attached Below */
+  UC_CCC_ATA  = 214, /* Attached Above */
   UC_CCC_ATAR = 216, /* Attached Above Right */
   UC_CCC_BL   = 218, /* Below Left */
   UC_CCC_B    = 220, /* Below */
@@ -256,11 +272,29 @@ enum
 
 /* Return the canonical combining class of a Unicode character.  */
 extern int
-       uc_combining_class (ucs4_t uc);
+       uc_combining_class (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the name of a canonical combining class.  */
+extern const char *
+       uc_combining_class_name (int ccc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the long name of a canonical combining class.  */
+extern const char *
+       uc_combining_class_long_name (int ccc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the canonical combining class given by name, e.g. "BL", or by long
+   name, e.g. "Below Left".  */
+extern int
+       uc_combining_class_byname (const char *ccc_name)
+       _UC_ATTRIBUTE_PURE;
 
 /* ========================================================================= */
 
-/* Field 4 of Unicode Character Database: Bidirectional category.  */
+/* Field 4 of Unicode Character Database: Bidi class.
+   Before Unicode 4.0, this field was called "Bidirectional category".  */
 
 enum
 {
@@ -285,22 +319,47 @@ enum
   UC_BIDI_ON   /* Other Neutral */
 };
 
-/* Return the name of a bidirectional category.  */
+/* Return the name of a bidi class.  */
+extern const char *
+       uc_bidi_class_name (int bidi_class)
+       _UC_ATTRIBUTE_CONST;
+/* Same; obsolete function name.  */
+extern const char *
+       uc_bidi_category_name (int category)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the long name of a bidi class.  */
 extern const char *
-       uc_bidi_category_name (int category);
+       uc_bidi_class_long_name (int bidi_class)
+       _UC_ATTRIBUTE_CONST;
 
-/* Return the bidirectional category given by name, e.g. "LRE".  */
+/* Return the bidi class given by name, e.g. "LRE", or by long name, e.g.
+   "Left-to-Right Embedding".  */
 extern int
-       uc_bidi_category_byname (const char *category_name);
+       uc_bidi_class_byname (const char *bidi_class_name)
+       _UC_ATTRIBUTE_PURE;
+/* Same; obsolete function name.  */
+extern int
+       uc_bidi_category_byname (const char *category_name)
+       _UC_ATTRIBUTE_PURE;
 
-/* Return the bidirectional category of a Unicode character.  */
+/* Return the bidi class of a Unicode character.  */
+extern int
+       uc_bidi_class (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+/* Same; obsolete function name.  */
 extern int
-       uc_bidi_category (ucs4_t uc);
+       uc_bidi_category (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
-/* Test whether a Unicode character belongs to a given bidirectional
-   category.  */
+/* Test whether a Unicode character belongs to a given bidi class.  */
+extern bool
+       uc_is_bidi_class (ucs4_t uc, int bidi_class)
+       _UC_ATTRIBUTE_CONST;
+/* Same; obsolete function name.  */
 extern bool
-       uc_is_bidi_category (ucs4_t uc, int category);
+       uc_is_bidi_category (ucs4_t uc, int category)
+       _UC_ATTRIBUTE_CONST;
 
 /* ========================================================================= */
 
@@ -313,7 +372,8 @@ extern bool
 
 /* Return the decimal digit value of a Unicode character.  */
 extern int
-       uc_decimal_value (ucs4_t uc);
+       uc_decimal_value (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* ========================================================================= */
 
@@ -321,7 +381,8 @@ extern int
 
 /* Return the digit value of a Unicode character.  */
 extern int
-       uc_digit_value (ucs4_t uc);
+       uc_digit_value (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* ========================================================================= */
 
@@ -335,7 +396,8 @@ typedef struct
 }
 uc_fraction_t;
 extern uc_fraction_t
-       uc_numeric_value (ucs4_t uc);
+       uc_numeric_value (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* ========================================================================= */
 
@@ -362,6 +424,124 @@ extern bool
 
 /* ========================================================================= */
 
+/* Field 2 of the file ArabicShaping.txt in the Unicode Character Database.  */
+
+/* Possible joining types.  */
+enum
+{
+  UC_JOINING_TYPE_U, /* Non_Joining */
+  UC_JOINING_TYPE_T, /* Transparent */
+  UC_JOINING_TYPE_C, /* Join_Causing */
+  UC_JOINING_TYPE_L, /* Left_Joining */
+  UC_JOINING_TYPE_R, /* Right_Joining */
+  UC_JOINING_TYPE_D  /* Dual_Joining */
+};
+
+/* Return the name of a joining type.  */
+extern const char *
+       uc_joining_type_name (int joining_type)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the long name of a joining type.  */
+extern const char *
+       uc_joining_type_long_name (int joining_type)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the joining type given by name, e.g. "D", or by long name, e.g.
+   "Dual Joining".  */
+extern int
+       uc_joining_type_byname (const char *joining_type_name)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the joining type of a Unicode character.  */
+extern int
+       uc_joining_type (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Field 3 of the file ArabicShaping.txt in the Unicode Character Database.  */
+
+/* Possible joining groups.
+   This enumeration may be extended in the future.  */
+enum
+{
+  UC_JOINING_GROUP_NONE,                  /* No_Joining_Group */
+  UC_JOINING_GROUP_AIN,                   /* Ain */
+  UC_JOINING_GROUP_ALAPH,                 /* Alaph */
+  UC_JOINING_GROUP_ALEF,                  /* Alef */
+  UC_JOINING_GROUP_BEH,                   /* Beh */
+  UC_JOINING_GROUP_BETH,                  /* Beth */
+  UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE, /* Burushaski_Yeh_Barree */
+  UC_JOINING_GROUP_DAL,                   /* Dal */
+  UC_JOINING_GROUP_DALATH_RISH,           /* Dalath_Rish */
+  UC_JOINING_GROUP_E,                     /* E */
+  UC_JOINING_GROUP_FARSI_YEH,             /* Farsi_Yeh */
+  UC_JOINING_GROUP_FE,                    /* Fe */
+  UC_JOINING_GROUP_FEH,                   /* Feh */
+  UC_JOINING_GROUP_FINAL_SEMKATH,         /* Final_Semkath */
+  UC_JOINING_GROUP_GAF,                   /* Gaf */
+  UC_JOINING_GROUP_GAMAL,                 /* Gamal */
+  UC_JOINING_GROUP_HAH,                   /* Hah */
+  UC_JOINING_GROUP_HE,                    /* He */
+  UC_JOINING_GROUP_HEH,                   /* Heh */
+  UC_JOINING_GROUP_HEH_GOAL,              /* Heh_Goal */
+  UC_JOINING_GROUP_HETH,                  /* Heth */
+  UC_JOINING_GROUP_KAF,                   /* Kaf */
+  UC_JOINING_GROUP_KAPH,                  /* Kaph */
+  UC_JOINING_GROUP_KHAPH,                 /* Khaph */
+  UC_JOINING_GROUP_KNOTTED_HEH,           /* Knotted_Heh */
+  UC_JOINING_GROUP_LAM,                   /* Lam */
+  UC_JOINING_GROUP_LAMADH,                /* Lamadh */
+  UC_JOINING_GROUP_MEEM,                  /* Meem */
+  UC_JOINING_GROUP_MIM,                   /* Mim */
+  UC_JOINING_GROUP_NOON,                  /* Noon */
+  UC_JOINING_GROUP_NUN,                   /* Nun */
+  UC_JOINING_GROUP_NYA,                   /* Nya */
+  UC_JOINING_GROUP_PE,                    /* Pe */
+  UC_JOINING_GROUP_QAF,                   /* Qaf */
+  UC_JOINING_GROUP_QAPH,                  /* Qaph */
+  UC_JOINING_GROUP_REH,                   /* Reh */
+  UC_JOINING_GROUP_REVERSED_PE,           /* Reversed_Pe */
+  UC_JOINING_GROUP_SAD,                   /* Sad */
+  UC_JOINING_GROUP_SADHE,                 /* Sadhe */
+  UC_JOINING_GROUP_SEEN,                  /* Seen */
+  UC_JOINING_GROUP_SEMKATH,               /* Semkath */
+  UC_JOINING_GROUP_SHIN,                  /* Shin */
+  UC_JOINING_GROUP_SWASH_KAF,             /* Swash_Kaf */
+  UC_JOINING_GROUP_SYRIAC_WAW,            /* Syriac_Waw */
+  UC_JOINING_GROUP_TAH,                   /* Tah */
+  UC_JOINING_GROUP_TAW,                   /* Taw */
+  UC_JOINING_GROUP_TEH_MARBUTA,           /* Teh_Marbuta */
+  UC_JOINING_GROUP_TEH_MARBUTA_GOAL,      /* Teh_Marbuta_Goal */
+  UC_JOINING_GROUP_TETH,                  /* Teth */
+  UC_JOINING_GROUP_WAW,                   /* Waw */
+  UC_JOINING_GROUP_YEH,                   /* Yeh */
+  UC_JOINING_GROUP_YEH_BARREE,            /* Yeh_Barree */
+  UC_JOINING_GROUP_YEH_WITH_TAIL,         /* Yeh_With_Tail */
+  UC_JOINING_GROUP_YUDH,                  /* Yudh */
+  UC_JOINING_GROUP_YUDH_HE,               /* Yudh_He */
+  UC_JOINING_GROUP_ZAIN,                  /* Zain */
+  UC_JOINING_GROUP_ZHAIN                  /* Zhain */
+};
+
+/* Return the name of a joining group.  */
+extern const char *
+       uc_joining_group_name (int joining_group)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the joining group given by name, e.g. "Teh_Marbuta".  */
+extern int
+       uc_joining_group_byname (const char *joining_group_name)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the joining group of a Unicode character.  */
+extern int
+       uc_joining_group (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
 /* Common API for properties.  */
 
 /* Data type denoting a property.  This is not just a number, but rather a
@@ -392,6 +572,13 @@ extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_UPPERCASE
 extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LOWERCASE;
 extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_LOWERCASE;
 extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_TITLECASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CASED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CASE_IGNORABLE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_LOWERCASED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_UPPERCASED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_TITLECASED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEFOLDED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEMAPPED;
 extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_SOFT_DOTTED;
 /* Identifiers.  */
 extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ID_START;
@@ -472,85 +659,178 @@ extern uc_property_t
 /* Test whether a Unicode character has a given property.  */
 extern bool
        uc_is_property (ucs4_t uc, uc_property_t property);
-extern bool uc_is_property_white_space (ucs4_t uc);
-extern bool uc_is_property_alphabetic (ucs4_t uc);
-extern bool uc_is_property_other_alphabetic (ucs4_t uc);
-extern bool uc_is_property_not_a_character (ucs4_t uc);
-extern bool uc_is_property_default_ignorable_code_point (ucs4_t uc);
-extern bool uc_is_property_other_default_ignorable_code_point (ucs4_t uc);
-extern bool uc_is_property_deprecated (ucs4_t uc);
-extern bool uc_is_property_logical_order_exception (ucs4_t uc);
-extern bool uc_is_property_variation_selector (ucs4_t uc);
-extern bool uc_is_property_private_use (ucs4_t uc);
-extern bool uc_is_property_unassigned_code_value (ucs4_t uc);
-extern bool uc_is_property_uppercase (ucs4_t uc);
-extern bool uc_is_property_other_uppercase (ucs4_t uc);
-extern bool uc_is_property_lowercase (ucs4_t uc);
-extern bool uc_is_property_other_lowercase (ucs4_t uc);
-extern bool uc_is_property_titlecase (ucs4_t uc);
-extern bool uc_is_property_soft_dotted (ucs4_t uc);
-extern bool uc_is_property_id_start (ucs4_t uc);
-extern bool uc_is_property_other_id_start (ucs4_t uc);
-extern bool uc_is_property_id_continue (ucs4_t uc);
-extern bool uc_is_property_other_id_continue (ucs4_t uc);
-extern bool uc_is_property_xid_start (ucs4_t uc);
-extern bool uc_is_property_xid_continue (ucs4_t uc);
-extern bool uc_is_property_pattern_white_space (ucs4_t uc);
-extern bool uc_is_property_pattern_syntax (ucs4_t uc);
-extern bool uc_is_property_join_control (ucs4_t uc);
-extern bool uc_is_property_grapheme_base (ucs4_t uc);
-extern bool uc_is_property_grapheme_extend (ucs4_t uc);
-extern bool uc_is_property_other_grapheme_extend (ucs4_t uc);
-extern bool uc_is_property_grapheme_link (ucs4_t uc);
-extern bool uc_is_property_bidi_control (ucs4_t uc);
-extern bool uc_is_property_bidi_left_to_right (ucs4_t uc);
-extern bool uc_is_property_bidi_hebrew_right_to_left (ucs4_t uc);
-extern bool uc_is_property_bidi_arabic_right_to_left (ucs4_t uc);
-extern bool uc_is_property_bidi_european_digit (ucs4_t uc);
-extern bool uc_is_property_bidi_eur_num_separator (ucs4_t uc);
-extern bool uc_is_property_bidi_eur_num_terminator (ucs4_t uc);
-extern bool uc_is_property_bidi_arabic_digit (ucs4_t uc);
-extern bool uc_is_property_bidi_common_separator (ucs4_t uc);
-extern bool uc_is_property_bidi_block_separator (ucs4_t uc);
-extern bool uc_is_property_bidi_segment_separator (ucs4_t uc);
-extern bool uc_is_property_bidi_whitespace (ucs4_t uc);
-extern bool uc_is_property_bidi_non_spacing_mark (ucs4_t uc);
-extern bool uc_is_property_bidi_boundary_neutral (ucs4_t uc);
-extern bool uc_is_property_bidi_pdf (ucs4_t uc);
-extern bool uc_is_property_bidi_embedding_or_override (ucs4_t uc);
-extern bool uc_is_property_bidi_other_neutral (ucs4_t uc);
-extern bool uc_is_property_hex_digit (ucs4_t uc);
-extern bool uc_is_property_ascii_hex_digit (ucs4_t uc);
-extern bool uc_is_property_ideographic (ucs4_t uc);
-extern bool uc_is_property_unified_ideograph (ucs4_t uc);
-extern bool uc_is_property_radical (ucs4_t uc);
-extern bool uc_is_property_ids_binary_operator (ucs4_t uc);
-extern bool uc_is_property_ids_trinary_operator (ucs4_t uc);
-extern bool uc_is_property_zero_width (ucs4_t uc);
-extern bool uc_is_property_space (ucs4_t uc);
-extern bool uc_is_property_non_break (ucs4_t uc);
-extern bool uc_is_property_iso_control (ucs4_t uc);
-extern bool uc_is_property_format_control (ucs4_t uc);
-extern bool uc_is_property_dash (ucs4_t uc);
-extern bool uc_is_property_hyphen (ucs4_t uc);
-extern bool uc_is_property_punctuation (ucs4_t uc);
-extern bool uc_is_property_line_separator (ucs4_t uc);
-extern bool uc_is_property_paragraph_separator (ucs4_t uc);
-extern bool uc_is_property_quotation_mark (ucs4_t uc);
-extern bool uc_is_property_sentence_terminal (ucs4_t uc);
-extern bool uc_is_property_terminal_punctuation (ucs4_t uc);
-extern bool uc_is_property_currency_symbol (ucs4_t uc);
-extern bool uc_is_property_math (ucs4_t uc);
-extern bool uc_is_property_other_math (ucs4_t uc);
-extern bool uc_is_property_paired_punctuation (ucs4_t uc);
-extern bool uc_is_property_left_of_pair (ucs4_t uc);
-extern bool uc_is_property_combining (ucs4_t uc);
-extern bool uc_is_property_composite (ucs4_t uc);
-extern bool uc_is_property_decimal_digit (ucs4_t uc);
-extern bool uc_is_property_numeric (ucs4_t uc);
-extern bool uc_is_property_diacritic (ucs4_t uc);
-extern bool uc_is_property_extender (ucs4_t uc);
-extern bool uc_is_property_ignorable_control (ucs4_t uc);
+extern bool uc_is_property_white_space (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_alphabetic (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_alphabetic (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_not_a_character (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_default_ignorable_code_point (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_default_ignorable_code_point (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_deprecated (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_logical_order_exception (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_variation_selector (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_private_use (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_unassigned_code_value (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_uppercase (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_uppercase (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_lowercase (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_lowercase (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_titlecase (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_cased (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_case_ignorable (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_changes_when_lowercased (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_changes_when_uppercased (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_changes_when_titlecased (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_changes_when_casefolded (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_changes_when_casemapped (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_soft_dotted (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_id_start (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_id_start (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_id_continue (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_id_continue (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_xid_start (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_xid_continue (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_pattern_white_space (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_pattern_syntax (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_join_control (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_grapheme_base (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_grapheme_extend (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_grapheme_extend (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_grapheme_link (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_control (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_left_to_right (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_hebrew_right_to_left (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_arabic_right_to_left (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_european_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_eur_num_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_eur_num_terminator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_arabic_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_common_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_block_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_segment_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_whitespace (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_non_spacing_mark (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_boundary_neutral (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_pdf (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_embedding_or_override (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_other_neutral (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_hex_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_ascii_hex_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_ideographic (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_unified_ideograph (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_radical (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_ids_binary_operator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_ids_trinary_operator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_zero_width (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_space (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_non_break (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_iso_control (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_format_control (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_dash (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_hyphen (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_punctuation (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_line_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_paragraph_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_quotation_mark (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_sentence_terminal (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_terminal_punctuation (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_currency_symbol (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_math (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_math (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_paired_punctuation (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_left_of_pair (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_combining (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_composite (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_decimal_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_numeric (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_diacritic (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_extender (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_ignorable_control (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* ========================================================================= */
 
@@ -573,15 +853,18 @@ uc_script_t;
 
 /* Return the script of a Unicode character.  */
 extern const uc_script_t *
-       uc_script (ucs4_t uc);
+       uc_script (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Return the script given by name, e.g. "HAN".  */
 extern const uc_script_t *
-       uc_script_byname (const char *script_name);
+       uc_script_byname (const char *script_name)
+       _UC_ATTRIBUTE_PURE;
 
 /* Test whether a Unicode character belongs to a given script.  */
 extern bool
-       uc_is_script (ucs4_t uc, const uc_script_t *script);
+       uc_is_script (ucs4_t uc, const uc_script_t *script)
+       _UC_ATTRIBUTE_PURE;
 
 /* Get the list of all scripts.  */
 extern void
@@ -601,11 +884,13 @@ uc_block_t;
 
 /* Return the block a character belongs to.  */
 extern const uc_block_t *
-       uc_block (ucs4_t uc);
+       uc_block (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test whether a Unicode character belongs to a given block.  */
 extern bool
-       uc_is_block (ucs4_t uc, const uc_block_t *block);
+       uc_is_block (ucs4_t uc, const uc_block_t *block)
+       _UC_ATTRIBUTE_PURE;
 
 /* Get the list of all blocks.  */
 extern void
@@ -617,11 +902,13 @@ extern void
 
 /* Test whether a Unicode character is considered whitespace in ISO C 99.  */
 extern bool
-       uc_is_c_whitespace (ucs4_t uc);
+       uc_is_c_whitespace (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test whether a Unicode character is considered whitespace in Java.  */
 extern bool
-       uc_is_java_whitespace (ucs4_t uc);
+       uc_is_java_whitespace (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 enum
 {
@@ -634,12 +921,14 @@ enum
 /* Return the categorization of a Unicode character w.r.t. the ISO C 99
    identifier syntax.  */
 extern int
-       uc_c_ident_category (ucs4_t uc);
+       uc_c_ident_category (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Return the categorization of a Unicode character w.r.t. the Java
    identifier syntax.  */
 extern int
-       uc_java_ident_category (ucs4_t uc);
+       uc_java_ident_category (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* ========================================================================= */
 
@@ -651,65 +940,77 @@ extern int
 
 /* Test for any character for which 'uc_is_alpha' or 'uc_is_digit' is true.  */
 extern bool
-       uc_is_alnum (ucs4_t uc);
+       uc_is_alnum (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test for any character for which 'uc_is_upper' or 'uc_is_lower' is true,
    or any character that is one of a locale-specific set of characters for
    which none of 'uc_is_cntrl', 'uc_is_digit', 'uc_is_punct', or 'uc_is_space'
    is true.  */
 extern bool
-       uc_is_alpha (ucs4_t uc);
+       uc_is_alpha (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test for any control character.  */
 extern bool
-       uc_is_cntrl (ucs4_t uc);
+       uc_is_cntrl (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test for any character that corresponds to a decimal-digit character.  */
 extern bool
-       uc_is_digit (ucs4_t uc);
+       uc_is_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test for any character for which 'uc_is_print' is true and 'uc_is_space'
    is false.  */
 extern bool
-       uc_is_graph (ucs4_t uc);
+       uc_is_graph (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test for any character that corresponds to a lowercase letter or is one
    of a locale-specific set of characters for which none of 'uc_is_cntrl',
    'uc_is_digit', 'uc_is_punct', or 'uc_is_space' is true.  */
 extern bool
-       uc_is_lower (ucs4_t uc);
+       uc_is_lower (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test for any printing character.  */
 extern bool
-       uc_is_print (ucs4_t uc);
+       uc_is_print (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test for any printing character that is one of a locale-specific set of
    characters for which neither 'uc_is_space' nor 'uc_is_alnum' is true.  */
 extern bool
-       uc_is_punct (ucs4_t uc);
+       uc_is_punct (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test for any character that corresponds to a locale-specific set of
    characters for which none of 'uc_is_alnum', 'uc_is_graph', or 'uc_is_punct'
    is true.  */
 extern bool
-       uc_is_space (ucs4_t uc);
+       uc_is_space (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test for any character that corresponds to an uppercase letter or is one
    of a locale-specific set of character for which none of 'uc_is_cntrl',
    'uc_is_digit', 'uc_is_punct', or 'uc_is_space' is true.  */
 extern bool
-       uc_is_upper (ucs4_t uc);
+       uc_is_upper (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* Test for any character that corresponds to a hexadecimal-digit
    character.  */
 extern bool
-       uc_is_xdigit (ucs4_t uc);
+       uc_is_xdigit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* GNU extension. */
 /* Test for any character that corresponds to a standard blank character or
    a locale-specific set of characters for which 'uc_is_alnum' is false.  */
 extern bool
-       uc_is_blank (ucs4_t uc);
+       uc_is_blank (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* ========================================================================= */
 
diff --git a/lib/unictype.in.h b/lib/unictype.in.h
new file mode 100644 (file)
index 0000000..c4152b5
--- /dev/null
@@ -0,0 +1,1020 @@
+/* Unicode character classification and properties.
+   Copyright (C) 2002, 2005-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNICTYPE_H
+#define _UNICTYPE_H
+
+#include "unitypes.h"
+
+/* Get LIBUNISTRING_DLL_VARIABLE.  */
+#include <unistring/woe32dll.h>
+
+/* Get bool.  */
+#include <unistring/stdbool.h>
+
+/* Get size_t.  */
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ========================================================================= */
+
+/* Field 1 of Unicode Character Database: Character name.
+   See "uniname.h".  */
+
+/* ========================================================================= */
+
+/* Field 2 of Unicode Character Database: General category.  */
+
+/* Data type denoting a General category value.  This is not just a bitmask,
+   but rather a bitmask and a pointer to the lookup table, so that programs
+   that use only the predefined bitmasks (i.e. don't combine bitmasks with &
+   and |) don't have a link-time dependency towards the big general table.  */
+typedef struct
+{
+  uint32_t bitmask : 31;
+  /*bool*/ unsigned int generic : 1;
+  union
+  {
+    const void *table;                               /* when generic is 0 */
+    bool (*lookup_fn) (ucs4_t uc, uint32_t bitmask); /* when generic is 1 */
+  } lookup;
+}
+uc_general_category_t;
+
+/* Bits and bit masks denoting General category values.  UnicodeData-3.2.0.html
+   says a 32-bit integer will always suffice to represent them.
+   These bit masks can only be used with the uc_is_general_category_withtable
+   function.  */
+enum
+{
+  UC_CATEGORY_MASK_L  = 0x0000001f,
+  UC_CATEGORY_MASK_LC = 0x00000007,
+  UC_CATEGORY_MASK_Lu = 0x00000001,
+  UC_CATEGORY_MASK_Ll = 0x00000002,
+  UC_CATEGORY_MASK_Lt = 0x00000004,
+  UC_CATEGORY_MASK_Lm = 0x00000008,
+  UC_CATEGORY_MASK_Lo = 0x00000010,
+  UC_CATEGORY_MASK_M  = 0x000000e0,
+  UC_CATEGORY_MASK_Mn = 0x00000020,
+  UC_CATEGORY_MASK_Mc = 0x00000040,
+  UC_CATEGORY_MASK_Me = 0x00000080,
+  UC_CATEGORY_MASK_N  = 0x00000700,
+  UC_CATEGORY_MASK_Nd = 0x00000100,
+  UC_CATEGORY_MASK_Nl = 0x00000200,
+  UC_CATEGORY_MASK_No = 0x00000400,
+  UC_CATEGORY_MASK_P  = 0x0003f800,
+  UC_CATEGORY_MASK_Pc = 0x00000800,
+  UC_CATEGORY_MASK_Pd = 0x00001000,
+  UC_CATEGORY_MASK_Ps = 0x00002000,
+  UC_CATEGORY_MASK_Pe = 0x00004000,
+  UC_CATEGORY_MASK_Pi = 0x00008000,
+  UC_CATEGORY_MASK_Pf = 0x00010000,
+  UC_CATEGORY_MASK_Po = 0x00020000,
+  UC_CATEGORY_MASK_S  = 0x003c0000,
+  UC_CATEGORY_MASK_Sm = 0x00040000,
+  UC_CATEGORY_MASK_Sc = 0x00080000,
+  UC_CATEGORY_MASK_Sk = 0x00100000,
+  UC_CATEGORY_MASK_So = 0x00200000,
+  UC_CATEGORY_MASK_Z  = 0x01c00000,
+  UC_CATEGORY_MASK_Zs = 0x00400000,
+  UC_CATEGORY_MASK_Zl = 0x00800000,
+  UC_CATEGORY_MASK_Zp = 0x01000000,
+  UC_CATEGORY_MASK_C  = 0x3e000000,
+  UC_CATEGORY_MASK_Cc = 0x02000000,
+  UC_CATEGORY_MASK_Cf = 0x04000000,
+  UC_CATEGORY_MASK_Cs = 0x08000000,
+  UC_CATEGORY_MASK_Co = 0x10000000,
+  UC_CATEGORY_MASK_Cn = 0x20000000
+};
+
+/* Predefined General category values.  */
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_L;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_LC;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lu;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Ll;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lt;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lm;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lo;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_M;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Mn;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Mc;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Me;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_N;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Nd;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Nl;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_No;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_P;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pc;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pd;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Ps;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pe;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pi;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pf;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Po;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_S;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Sm;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Sc;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Sk;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_So;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Z;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Zs;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Zl;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Zp;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_C;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cc;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cf;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cs;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Co;
+extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cn;
+/* Non-public.  */
+extern const uc_general_category_t _UC_CATEGORY_NONE;
+
+/* Alias names for predefined General category values.  */
+#define UC_LETTER                    UC_CATEGORY_L
+#define UC_CASED_LETTER              UC_CATEGORY_LC
+#define UC_UPPERCASE_LETTER          UC_CATEGORY_Lu
+#define UC_LOWERCASE_LETTER          UC_CATEGORY_Ll
+#define UC_TITLECASE_LETTER          UC_CATEGORY_Lt
+#define UC_MODIFIER_LETTER           UC_CATEGORY_Lm
+#define UC_OTHER_LETTER              UC_CATEGORY_Lo
+#define UC_MARK                      UC_CATEGORY_M
+#define UC_NON_SPACING_MARK          UC_CATEGORY_Mn
+#define UC_COMBINING_SPACING_MARK    UC_CATEGORY_Mc
+#define UC_ENCLOSING_MARK            UC_CATEGORY_Me
+#define UC_NUMBER                    UC_CATEGORY_N
+#define UC_DECIMAL_DIGIT_NUMBER      UC_CATEGORY_Nd
+#define UC_LETTER_NUMBER             UC_CATEGORY_Nl
+#define UC_OTHER_NUMBER              UC_CATEGORY_No
+#define UC_PUNCTUATION               UC_CATEGORY_P
+#define UC_CONNECTOR_PUNCTUATION     UC_CATEGORY_Pc
+#define UC_DASH_PUNCTUATION          UC_CATEGORY_Pd
+#define UC_OPEN_PUNCTUATION          UC_CATEGORY_Ps /* a.k.a. UC_START_PUNCTUATION */
+#define UC_CLOSE_PUNCTUATION         UC_CATEGORY_Pe /* a.k.a. UC_END_PUNCTUATION */
+#define UC_INITIAL_QUOTE_PUNCTUATION UC_CATEGORY_Pi
+#define UC_FINAL_QUOTE_PUNCTUATION   UC_CATEGORY_Pf
+#define UC_OTHER_PUNCTUATION         UC_CATEGORY_Po
+#define UC_SYMBOL                    UC_CATEGORY_S
+#define UC_MATH_SYMBOL               UC_CATEGORY_Sm
+#define UC_CURRENCY_SYMBOL           UC_CATEGORY_Sc
+#define UC_MODIFIER_SYMBOL           UC_CATEGORY_Sk
+#define UC_OTHER_SYMBOL              UC_CATEGORY_So
+#define UC_SEPARATOR                 UC_CATEGORY_Z
+#define UC_SPACE_SEPARATOR           UC_CATEGORY_Zs
+#define UC_LINE_SEPARATOR            UC_CATEGORY_Zl
+#define UC_PARAGRAPH_SEPARATOR       UC_CATEGORY_Zp
+#define UC_OTHER                     UC_CATEGORY_C
+#define UC_CONTROL                   UC_CATEGORY_Cc
+#define UC_FORMAT                    UC_CATEGORY_Cf
+#define UC_SURROGATE                 UC_CATEGORY_Cs /* all of them are invalid characters */
+#define UC_PRIVATE_USE               UC_CATEGORY_Co
+#define UC_UNASSIGNED                UC_CATEGORY_Cn /* some of them are invalid characters */
+
+/* Return the union of two general categories.
+   This corresponds to the unions of the two sets of characters.  */
+extern uc_general_category_t
+       uc_general_category_or (uc_general_category_t category1,
+                               uc_general_category_t category2);
+
+/* Return the intersection of two general categories as bit masks.
+   This *does*not* correspond to the intersection of the two sets of
+   characters.  */
+extern uc_general_category_t
+       uc_general_category_and (uc_general_category_t category1,
+                                uc_general_category_t category2);
+
+/* Return the intersection of a general category with the complement of a
+   second general category, as bit masks.
+   This *does*not* correspond to the intersection with complement, when
+   viewing the categories as sets of characters.  */
+extern uc_general_category_t
+       uc_general_category_and_not (uc_general_category_t category1,
+                                    uc_general_category_t category2);
+
+/* Return the name of a general category.  */
+extern const char *
+       uc_general_category_name (uc_general_category_t category)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the long name of a general category.  */
+extern const char *
+       uc_general_category_long_name (uc_general_category_t category)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the general category given by name, e.g. "Lu", or by long name,
+   e.g. "Uppercase Letter".  */
+extern uc_general_category_t
+       uc_general_category_byname (const char *category_name)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the general category of a Unicode character.  */
+extern uc_general_category_t
+       uc_general_category (ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
+
+/* Test whether a Unicode character belongs to a given category.
+   The CATEGORY argument can be the combination of several predefined
+   general categories.  */
+extern bool
+       uc_is_general_category (ucs4_t uc, uc_general_category_t category)
+       _UC_ATTRIBUTE_PURE;
+/* Likewise.  This function uses a big table comprising all categories.  */
+extern bool
+       uc_is_general_category_withtable (ucs4_t uc, uint32_t bitmask)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Field 3 of Unicode Character Database: Canonical combining class.  */
+
+/* The possible results of uc_combining_class (0..255) are described in
+   UCD.html.  The list here is not definitive; more values can be added
+   in future versions.  */
+enum
+{
+  UC_CCC_NR   =   0, /* Not Reordered */
+  UC_CCC_OV   =   1, /* Overlay */
+  UC_CCC_NK   =   7, /* Nukta */
+  UC_CCC_KV   =   8, /* Kana Voicing */
+  UC_CCC_VR   =   9, /* Virama */
+  UC_CCC_ATBL = 200, /* Attached Below Left */
+  UC_CCC_ATB  = 202, /* Attached Below */
+  UC_CCC_ATA  = 214, /* Attached Above */
+  UC_CCC_ATAR = 216, /* Attached Above Right */
+  UC_CCC_BL   = 218, /* Below Left */
+  UC_CCC_B    = 220, /* Below */
+  UC_CCC_BR   = 222, /* Below Right */
+  UC_CCC_L    = 224, /* Left */
+  UC_CCC_R    = 226, /* Right */
+  UC_CCC_AL   = 228, /* Above Left */
+  UC_CCC_A    = 230, /* Above */
+  UC_CCC_AR   = 232, /* Above Right */
+  UC_CCC_DB   = 233, /* Double Below */
+  UC_CCC_DA   = 234, /* Double Above */
+  UC_CCC_IS   = 240  /* Iota Subscript */
+};
+
+/* Return the canonical combining class of a Unicode character.  */
+extern int
+       uc_combining_class (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the name of a canonical combining class.  */
+extern const char *
+       uc_combining_class_name (int ccc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the long name of a canonical combining class.  */
+extern const char *
+       uc_combining_class_long_name (int ccc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the canonical combining class given by name, e.g. "BL", or by long
+   name, e.g. "Below Left".  */
+extern int
+       uc_combining_class_byname (const char *ccc_name)
+       _UC_ATTRIBUTE_PURE;
+
+/* ========================================================================= */
+
+/* Field 4 of Unicode Character Database: Bidi class.
+   Before Unicode 4.0, this field was called "Bidirectional category".  */
+
+enum
+{
+  UC_BIDI_L,   /* Left-to-Right */
+  UC_BIDI_LRE, /* Left-to-Right Embedding */
+  UC_BIDI_LRO, /* Left-to-Right Override */
+  UC_BIDI_R,   /* Right-to-Left */
+  UC_BIDI_AL,  /* Right-to-Left Arabic */
+  UC_BIDI_RLE, /* Right-to-Left Embedding */
+  UC_BIDI_RLO, /* Right-to-Left Override */
+  UC_BIDI_PDF, /* Pop Directional Format */
+  UC_BIDI_EN,  /* European Number */
+  UC_BIDI_ES,  /* European Number Separator */
+  UC_BIDI_ET,  /* European Number Terminator */
+  UC_BIDI_AN,  /* Arabic Number */
+  UC_BIDI_CS,  /* Common Number Separator */
+  UC_BIDI_NSM, /* Non-Spacing Mark */
+  UC_BIDI_BN,  /* Boundary Neutral */
+  UC_BIDI_B,   /* Paragraph Separator */
+  UC_BIDI_S,   /* Segment Separator */
+  UC_BIDI_WS,  /* Whitespace */
+  UC_BIDI_ON   /* Other Neutral */
+};
+
+/* Return the name of a bidi class.  */
+extern const char *
+       uc_bidi_class_name (int bidi_class)
+       _UC_ATTRIBUTE_CONST;
+/* Same; obsolete function name.  */
+extern const char *
+       uc_bidi_category_name (int category)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the long name of a bidi class.  */
+extern const char *
+       uc_bidi_class_long_name (int bidi_class)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the bidi class given by name, e.g. "LRE", or by long name, e.g.
+   "Left-to-Right Embedding".  */
+extern int
+       uc_bidi_class_byname (const char *bidi_class_name)
+       _UC_ATTRIBUTE_PURE;
+/* Same; obsolete function name.  */
+extern int
+       uc_bidi_category_byname (const char *category_name)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the bidi class of a Unicode character.  */
+extern int
+       uc_bidi_class (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+/* Same; obsolete function name.  */
+extern int
+       uc_bidi_category (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test whether a Unicode character belongs to a given bidi class.  */
+extern bool
+       uc_is_bidi_class (ucs4_t uc, int bidi_class)
+       _UC_ATTRIBUTE_CONST;
+/* Same; obsolete function name.  */
+extern bool
+       uc_is_bidi_category (ucs4_t uc, int category)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Field 5 of Unicode Character Database: Character decomposition mapping.
+   See "uninorm.h".  */
+
+/* ========================================================================= */
+
+/* Field 6 of Unicode Character Database: Decimal digit value.  */
+
+/* Return the decimal digit value of a Unicode character.  */
+extern int
+       uc_decimal_value (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Field 7 of Unicode Character Database: Digit value.  */
+
+/* Return the digit value of a Unicode character.  */
+extern int
+       uc_digit_value (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Field 8 of Unicode Character Database: Numeric value.  */
+
+/* Return the numeric value of a Unicode character.  */
+typedef struct
+{
+  int numerator;
+  int denominator;
+}
+uc_fraction_t;
+extern uc_fraction_t
+       uc_numeric_value (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Field 9 of Unicode Character Database: Mirrored.  */
+
+/* Return the mirrored character of a Unicode character UC in *PUC.  */
+extern bool
+       uc_mirror_char (ucs4_t uc, ucs4_t *puc);
+
+/* ========================================================================= */
+
+/* Field 10 of Unicode Character Database: Unicode 1.0 Name.
+   Not available in this library.  */
+
+/* ========================================================================= */
+
+/* Field 11 of Unicode Character Database: ISO 10646 comment.
+   Not available in this library.  */
+
+/* ========================================================================= */
+
+/* Field 12, 13, 14 of Unicode Character Database: Uppercase mapping,
+   lowercase mapping, titlecase mapping.  See "unicase.h".  */
+
+/* ========================================================================= */
+
+/* Field 2 of the file ArabicShaping.txt in the Unicode Character Database.  */
+
+/* Possible joining types.  */
+enum
+{
+  UC_JOINING_TYPE_U, /* Non_Joining */
+  UC_JOINING_TYPE_T, /* Transparent */
+  UC_JOINING_TYPE_C, /* Join_Causing */
+  UC_JOINING_TYPE_L, /* Left_Joining */
+  UC_JOINING_TYPE_R, /* Right_Joining */
+  UC_JOINING_TYPE_D  /* Dual_Joining */
+};
+
+/* Return the name of a joining type.  */
+extern const char *
+       uc_joining_type_name (int joining_type)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the long name of a joining type.  */
+extern const char *
+       uc_joining_type_long_name (int joining_type)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the joining type given by name, e.g. "D", or by long name, e.g.
+   "Dual Joining".  */
+extern int
+       uc_joining_type_byname (const char *joining_type_name)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the joining type of a Unicode character.  */
+extern int
+       uc_joining_type (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Field 3 of the file ArabicShaping.txt in the Unicode Character Database.  */
+
+/* Possible joining groups.
+   This enumeration may be extended in the future.  */
+enum
+{
+  UC_JOINING_GROUP_NONE,                  /* No_Joining_Group */
+  UC_JOINING_GROUP_AIN,                   /* Ain */
+  UC_JOINING_GROUP_ALAPH,                 /* Alaph */
+  UC_JOINING_GROUP_ALEF,                  /* Alef */
+  UC_JOINING_GROUP_BEH,                   /* Beh */
+  UC_JOINING_GROUP_BETH,                  /* Beth */
+  UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE, /* Burushaski_Yeh_Barree */
+  UC_JOINING_GROUP_DAL,                   /* Dal */
+  UC_JOINING_GROUP_DALATH_RISH,           /* Dalath_Rish */
+  UC_JOINING_GROUP_E,                     /* E */
+  UC_JOINING_GROUP_FARSI_YEH,             /* Farsi_Yeh */
+  UC_JOINING_GROUP_FE,                    /* Fe */
+  UC_JOINING_GROUP_FEH,                   /* Feh */
+  UC_JOINING_GROUP_FINAL_SEMKATH,         /* Final_Semkath */
+  UC_JOINING_GROUP_GAF,                   /* Gaf */
+  UC_JOINING_GROUP_GAMAL,                 /* Gamal */
+  UC_JOINING_GROUP_HAH,                   /* Hah */
+  UC_JOINING_GROUP_HE,                    /* He */
+  UC_JOINING_GROUP_HEH,                   /* Heh */
+  UC_JOINING_GROUP_HEH_GOAL,              /* Heh_Goal */
+  UC_JOINING_GROUP_HETH,                  /* Heth */
+  UC_JOINING_GROUP_KAF,                   /* Kaf */
+  UC_JOINING_GROUP_KAPH,                  /* Kaph */
+  UC_JOINING_GROUP_KHAPH,                 /* Khaph */
+  UC_JOINING_GROUP_KNOTTED_HEH,           /* Knotted_Heh */
+  UC_JOINING_GROUP_LAM,                   /* Lam */
+  UC_JOINING_GROUP_LAMADH,                /* Lamadh */
+  UC_JOINING_GROUP_MEEM,                  /* Meem */
+  UC_JOINING_GROUP_MIM,                   /* Mim */
+  UC_JOINING_GROUP_NOON,                  /* Noon */
+  UC_JOINING_GROUP_NUN,                   /* Nun */
+  UC_JOINING_GROUP_NYA,                   /* Nya */
+  UC_JOINING_GROUP_PE,                    /* Pe */
+  UC_JOINING_GROUP_QAF,                   /* Qaf */
+  UC_JOINING_GROUP_QAPH,                  /* Qaph */
+  UC_JOINING_GROUP_REH,                   /* Reh */
+  UC_JOINING_GROUP_REVERSED_PE,           /* Reversed_Pe */
+  UC_JOINING_GROUP_SAD,                   /* Sad */
+  UC_JOINING_GROUP_SADHE,                 /* Sadhe */
+  UC_JOINING_GROUP_SEEN,                  /* Seen */
+  UC_JOINING_GROUP_SEMKATH,               /* Semkath */
+  UC_JOINING_GROUP_SHIN,                  /* Shin */
+  UC_JOINING_GROUP_SWASH_KAF,             /* Swash_Kaf */
+  UC_JOINING_GROUP_SYRIAC_WAW,            /* Syriac_Waw */
+  UC_JOINING_GROUP_TAH,                   /* Tah */
+  UC_JOINING_GROUP_TAW,                   /* Taw */
+  UC_JOINING_GROUP_TEH_MARBUTA,           /* Teh_Marbuta */
+  UC_JOINING_GROUP_TEH_MARBUTA_GOAL,      /* Teh_Marbuta_Goal */
+  UC_JOINING_GROUP_TETH,                  /* Teth */
+  UC_JOINING_GROUP_WAW,                   /* Waw */
+  UC_JOINING_GROUP_YEH,                   /* Yeh */
+  UC_JOINING_GROUP_YEH_BARREE,            /* Yeh_Barree */
+  UC_JOINING_GROUP_YEH_WITH_TAIL,         /* Yeh_With_Tail */
+  UC_JOINING_GROUP_YUDH,                  /* Yudh */
+  UC_JOINING_GROUP_YUDH_HE,               /* Yudh_He */
+  UC_JOINING_GROUP_ZAIN,                  /* Zain */
+  UC_JOINING_GROUP_ZHAIN                  /* Zhain */
+};
+
+/* Return the name of a joining group.  */
+extern const char *
+       uc_joining_group_name (int joining_group)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the joining group given by name, e.g. "Teh_Marbuta".  */
+extern int
+       uc_joining_group_byname (const char *joining_group_name)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the joining group of a Unicode character.  */
+extern int
+       uc_joining_group (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Common API for properties.  */
+
+/* Data type denoting a property.  This is not just a number, but rather a
+   pointer to the test functions, so that programs that use only few of the
+   properties don't have a link-time dependency towards all the tables.  */
+typedef struct
+{
+  bool (*test_fn) (ucs4_t uc);
+}
+uc_property_t;
+
+/* Predefined properties.  */
+/* General.  */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_WHITE_SPACE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ALPHABETIC;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_ALPHABETIC;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_NOT_A_CHARACTER;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DEPRECATED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LOGICAL_ORDER_EXCEPTION;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_VARIATION_SELECTOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PRIVATE_USE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_UNASSIGNED_CODE_VALUE;
+/* Case.  */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_UPPERCASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_UPPERCASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LOWERCASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_LOWERCASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_TITLECASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CASED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CASE_IGNORABLE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_LOWERCASED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_UPPERCASED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_TITLECASED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEFOLDED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEMAPPED;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_SOFT_DOTTED;
+/* Identifiers.  */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ID_START;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_ID_START;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ID_CONTINUE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_ID_CONTINUE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_XID_START;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_XID_CONTINUE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PATTERN_WHITE_SPACE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PATTERN_SYNTAX;
+/* Shaping and rendering.  */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_JOIN_CONTROL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_GRAPHEME_BASE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_GRAPHEME_EXTEND;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_GRAPHEME_EXTEND;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_GRAPHEME_LINK;
+/* Bidi.  */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_CONTROL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_LEFT_TO_RIGHT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EUROPEAN_DIGIT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EUR_NUM_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EUR_NUM_TERMINATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_ARABIC_DIGIT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_COMMON_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_BLOCK_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_SEGMENT_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_WHITESPACE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_NON_SPACING_MARK;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_BOUNDARY_NEUTRAL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_PDF;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_OTHER_NEUTRAL;
+/* Numeric.  */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_HEX_DIGIT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ASCII_HEX_DIGIT;
+/* CJK.  */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IDEOGRAPHIC;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_UNIFIED_IDEOGRAPH;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_RADICAL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IDS_BINARY_OPERATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IDS_TRINARY_OPERATOR;
+/* Misc.  */
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ZERO_WIDTH;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_SPACE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_NON_BREAK;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ISO_CONTROL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_FORMAT_CONTROL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DASH;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_HYPHEN;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PUNCTUATION;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LINE_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PARAGRAPH_SEPARATOR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_QUOTATION_MARK;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_SENTENCE_TERMINAL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_TERMINAL_PUNCTUATION;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CURRENCY_SYMBOL;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_MATH;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_MATH;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PAIRED_PUNCTUATION;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LEFT_OF_PAIR;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_COMBINING;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_COMPOSITE;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DECIMAL_DIGIT;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_NUMERIC;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DIACRITIC;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_EXTENDER;
+extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IGNORABLE_CONTROL;
+
+/* Return the property given by name, e.g. "White space".  */
+extern uc_property_t
+       uc_property_byname (const char *property_name);
+
+/* Test whether a property is valid.  */
+#define uc_property_is_valid(property) ((property).test_fn != NULL)
+
+/* Test whether a Unicode character has a given property.  */
+extern bool
+       uc_is_property (ucs4_t uc, uc_property_t property);
+extern bool uc_is_property_white_space (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_alphabetic (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_alphabetic (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_not_a_character (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_default_ignorable_code_point (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_default_ignorable_code_point (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_deprecated (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_logical_order_exception (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_variation_selector (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_private_use (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_unassigned_code_value (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_uppercase (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_uppercase (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_lowercase (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_lowercase (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_titlecase (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_cased (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_case_ignorable (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_changes_when_lowercased (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_changes_when_uppercased (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_changes_when_titlecased (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_changes_when_casefolded (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_changes_when_casemapped (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_soft_dotted (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_id_start (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_id_start (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_id_continue (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_id_continue (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_xid_start (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_xid_continue (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_pattern_white_space (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_pattern_syntax (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_join_control (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_grapheme_base (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_grapheme_extend (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_grapheme_extend (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_grapheme_link (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_control (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_left_to_right (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_hebrew_right_to_left (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_arabic_right_to_left (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_european_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_eur_num_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_eur_num_terminator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_arabic_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_common_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_block_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_segment_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_whitespace (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_non_spacing_mark (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_boundary_neutral (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_pdf (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_embedding_or_override (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_bidi_other_neutral (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_hex_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_ascii_hex_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_ideographic (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_unified_ideograph (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_radical (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_ids_binary_operator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_ids_trinary_operator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_zero_width (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_space (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_non_break (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_iso_control (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_format_control (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_dash (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_hyphen (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_punctuation (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_line_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_paragraph_separator (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_quotation_mark (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_sentence_terminal (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_terminal_punctuation (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_currency_symbol (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_math (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_other_math (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_paired_punctuation (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_left_of_pair (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_combining (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_composite (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_decimal_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_numeric (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_diacritic (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_extender (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+extern bool uc_is_property_ignorable_control (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Subdivision of the Unicode characters into scripts.  */
+
+typedef struct
+{
+  unsigned int code : 21;
+  unsigned int start : 1;
+  unsigned int end : 1;
+}
+uc_interval_t;
+typedef struct
+{
+  unsigned int nintervals;
+  const uc_interval_t *intervals;
+  const char *name;
+}
+uc_script_t;
+
+/* Return the script of a Unicode character.  */
+extern const uc_script_t *
+       uc_script (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the script given by name, e.g. "HAN".  */
+extern const uc_script_t *
+       uc_script_byname (const char *script_name)
+       _UC_ATTRIBUTE_PURE;
+
+/* Test whether a Unicode character belongs to a given script.  */
+extern bool
+       uc_is_script (ucs4_t uc, const uc_script_t *script)
+       _UC_ATTRIBUTE_PURE;
+
+/* Get the list of all scripts.  */
+extern void
+       uc_all_scripts (const uc_script_t **scripts, size_t *count);
+
+/* ========================================================================= */
+
+/* Subdivision of the Unicode character range into blocks.  */
+
+typedef struct
+{
+  ucs4_t start;
+  ucs4_t end;
+  const char *name;
+}
+uc_block_t;
+
+/* Return the block a character belongs to.  */
+extern const uc_block_t *
+       uc_block (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test whether a Unicode character belongs to a given block.  */
+extern bool
+       uc_is_block (ucs4_t uc, const uc_block_t *block)
+       _UC_ATTRIBUTE_PURE;
+
+/* Get the list of all blocks.  */
+extern void
+       uc_all_blocks (const uc_block_t **blocks, size_t *count);
+
+/* ========================================================================= */
+
+/* Properties taken from language standards.  */
+
+/* Test whether a Unicode character is considered whitespace in ISO C 99.  */
+extern bool
+       uc_is_c_whitespace (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test whether a Unicode character is considered whitespace in Java.  */
+extern bool
+       uc_is_java_whitespace (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+enum
+{
+  UC_IDENTIFIER_START,    /* valid as first or subsequent character */
+  UC_IDENTIFIER_VALID,    /* valid as subsequent character only */
+  UC_IDENTIFIER_INVALID,  /* not valid */
+  UC_IDENTIFIER_IGNORABLE /* ignorable (Java only) */
+};
+
+/* Return the categorization of a Unicode character w.r.t. the ISO C 99
+   identifier syntax.  */
+extern int
+       uc_c_ident_category (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Return the categorization of a Unicode character w.r.t. the Java
+   identifier syntax.  */
+extern int
+       uc_java_ident_category (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Like ISO C <ctype.h> and <wctype.h>.  These functions are deprecated,
+   because this set of functions was designed with ASCII in mind and cannot
+   reflect the more diverse reality of the Unicode character set.  But they
+   can be a quick-and-dirty porting aid when migrating from wchar_t APIs
+   to Unicode strings.  */
+
+/* Test for any character for which 'uc_is_alpha' or 'uc_is_digit' is true.  */
+extern bool
+       uc_is_alnum (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test for any character for which 'uc_is_upper' or 'uc_is_lower' is true,
+   or any character that is one of a locale-specific set of characters for
+   which none of 'uc_is_cntrl', 'uc_is_digit', 'uc_is_punct', or 'uc_is_space'
+   is true.  */
+extern bool
+       uc_is_alpha (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test for any control character.  */
+extern bool
+       uc_is_cntrl (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test for any character that corresponds to a decimal-digit character.  */
+extern bool
+       uc_is_digit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test for any character for which 'uc_is_print' is true and 'uc_is_space'
+   is false.  */
+extern bool
+       uc_is_graph (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test for any character that corresponds to a lowercase letter or is one
+   of a locale-specific set of characters for which none of 'uc_is_cntrl',
+   'uc_is_digit', 'uc_is_punct', or 'uc_is_space' is true.  */
+extern bool
+       uc_is_lower (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test for any printing character.  */
+extern bool
+       uc_is_print (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test for any printing character that is one of a locale-specific set of
+   characters for which neither 'uc_is_space' nor 'uc_is_alnum' is true.  */
+extern bool
+       uc_is_punct (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test for any character that corresponds to a locale-specific set of
+   characters for which none of 'uc_is_alnum', 'uc_is_graph', or 'uc_is_punct'
+   is true.  */
+extern bool
+       uc_is_space (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test for any character that corresponds to an uppercase letter or is one
+   of a locale-specific set of character for which none of 'uc_is_cntrl',
+   'uc_is_digit', 'uc_is_punct', or 'uc_is_space' is true.  */
+extern bool
+       uc_is_upper (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* Test for any character that corresponds to a hexadecimal-digit
+   character.  */
+extern bool
+       uc_is_xdigit (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* GNU extension. */
+/* Test for any character that corresponds to a standard blank character or
+   a locale-specific set of characters for which 'uc_is_alnum' is false.  */
+extern bool
+       uc_is_blank (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNICTYPE_H */
index 868f05d..cd37899 100644 (file)
@@ -1,5 +1,5 @@
-/* Bidi categories of Unicode characters.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+/* Bidi classes of Unicode characters.
+   Copyright (C) 2002, 2006, 2011-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
 /* Specification.  */
 #include "unictype.h"
 
+#include <string.h>
+
+#include "unictype/bidi_byname.h"
+
 int
-uc_bidi_category_byname (const char *category_name)
+uc_bidi_class_byname (const char *bidi_class_name)
 {
-  switch (category_name[0])
+  size_t len;
+
+  len = strlen (bidi_class_name);
+  if (len <= MAX_WORD_LENGTH)
     {
-    case 'A':
-      switch (category_name[1])
-        {
-        case 'L':
-          if (category_name[2] == '\0')
-            return UC_BIDI_AL;
-          break;
-        case 'N':
-          if (category_name[2] == '\0')
-            return UC_BIDI_AN;
-          break;
-        }
-      break;
-    case 'B':
-      switch (category_name[1])
-        {
-        case '\0':
-          return UC_BIDI_B;
-        case 'N':
-          if (category_name[2] == '\0')
-            return UC_BIDI_BN;
-          break;
-        }
-      break;
-    case 'C':
-      switch (category_name[1])
-        {
-        case 'S':
-          if (category_name[2] == '\0')
-            return UC_BIDI_CS;
-          break;
-        }
-      break;
-    case 'E':
-      switch (category_name[1])
-        {
-        case 'N':
-          if (category_name[2] == '\0')
-            return UC_BIDI_EN;
-          break;
-        case 'S':
-          if (category_name[2] == '\0')
-            return UC_BIDI_ES;
-          break;
-        case 'T':
-          if (category_name[2] == '\0')
-            return UC_BIDI_ET;
-          break;
-        }
-      break;
-    case 'L':
-      switch (category_name[1])
-        {
-        case '\0':
-          return UC_BIDI_L;
-        case 'R':
-          switch (category_name[2])
-            {
-            case 'E':
-              if (category_name[3] == '\0')
-                return UC_BIDI_LRE;
-              break;
-            case 'O':
-              if (category_name[3] == '\0')
-                return UC_BIDI_LRO;
-              break;
-            }
-          break;
-        }
-      break;
-    case 'N':
-      switch (category_name[1])
-        {
-        case 'S':
-          switch (category_name[2])
-            {
-            case 'M':
-              if (category_name[3] == '\0')
-                return UC_BIDI_NSM;
-              break;
-            }
-          break;
-        }
-      break;
-    case 'O':
-      switch (category_name[1])
-        {
-        case 'N':
-          if (category_name[2] == '\0')
-            return UC_BIDI_ON;
-          break;
-        }
-      break;
-    case 'P':
-      switch (category_name[1])
-        {
-        case 'D':
-          switch (category_name[2])
-            {
-            case 'F':
-              if (category_name[3] == '\0')
-                return UC_BIDI_PDF;
-              break;
-            }
-          break;
-        }
-      break;
-    case 'R':
-      switch (category_name[1])
-        {
-        case '\0':
-          return UC_BIDI_R;
-        case 'L':
-          switch (category_name[2])
-            {
-            case 'E':
-              if (category_name[3] == '\0')
-                return UC_BIDI_RLE;
-              break;
-            case 'O':
-              if (category_name[3] == '\0')
-                return UC_BIDI_RLO;
+      char buf[MAX_WORD_LENGTH + 1];
+      const struct named_bidi_class *found;
+
+      /* Copy bidi_class_name into buf, converting '_' and '-' to ' '.  */
+      {
+        const char *p = bidi_class_name;
+        char *q = buf;
+
+        for (;; p++, q++)
+          {
+            char c = *p;
+
+            if (c == '_' || c == '-')
+              c = ' ';
+            *q = c;
+            if (c == '\0')
               break;
-            }
-          break;
-        }
-      break;
-    case 'S':
-      if (category_name[1] == '\0')
-        return UC_BIDI_S;
-      break;
-    case 'W':
-      switch (category_name[1])
-        {
-        case 'S':
-          if (category_name[2] == '\0')
-            return UC_BIDI_WS;
-          break;
-        }
-      break;
+          }
+      }
+      /* Here q == buf + len.  */
+
+      /* Do a hash table lookup, with case-insensitive comparison.  */
+      found = uc_bidi_class_lookup (buf, len);
+      if (found != NULL)
+        return found->bidi_class;
     }
-  /* Invalid category name.  */
+  /* Invalid bidi class name.  */
   return -1;
 }
+
+int
+uc_bidi_category_byname (const char *category_name)
+{
+  return uc_bidi_class_byname (category_name);
+}
diff --git a/lib/unictype/bidi_byname.gperf b/lib/unictype/bidi_byname.gperf
new file mode 100644 (file)
index 0000000..9cacacf
--- /dev/null
@@ -0,0 +1,70 @@
+/* Bidi classes of Unicode characters.  */
+struct named_bidi_class { int name; int bidi_class; };
+%struct-type
+%ignore-case
+%language=ANSI-C
+%define hash-function-name bidi_class_hash
+%define lookup-function-name uc_bidi_class_lookup
+%readonly-tables
+%global-table
+%define word-array-name bidi_class_names
+%pic
+%define string-pool-name bidi_class_stringpool
+%%
+AL, UC_BIDI_AL
+AN, UC_BIDI_AN
+B, UC_BIDI_B
+BN, UC_BIDI_BN
+CS, UC_BIDI_CS
+EN, UC_BIDI_EN
+ES, UC_BIDI_ES
+ET, UC_BIDI_ET
+L, UC_BIDI_L
+LRE, UC_BIDI_LRE
+LRO, UC_BIDI_LRO
+NSM, UC_BIDI_NSM
+ON, UC_BIDI_ON
+PDF, UC_BIDI_PDF
+R, UC_BIDI_R
+RLE, UC_BIDI_RLE
+RLO, UC_BIDI_RLO
+S, UC_BIDI_S
+WS, UC_BIDI_WS
+Arabic Letter, UC_BIDI_AL
+ArabicLetter, UC_BIDI_AL
+Arabic Number, UC_BIDI_AN
+ArabicNumber, UC_BIDI_AN
+Paragraph Separator, UC_BIDI_B
+ParagraphSeparator, UC_BIDI_B
+Boundary Neutral, UC_BIDI_BN
+BoundaryNeutral, UC_BIDI_BN
+Common Separator, UC_BIDI_CS
+CommonSeparator, UC_BIDI_CS
+European Number, UC_BIDI_EN
+EuropeanNumber, UC_BIDI_EN
+European Separator, UC_BIDI_ES
+EuropeanSeparator, UC_BIDI_ES
+European Terminator, UC_BIDI_ET
+EuropeanTerminator, UC_BIDI_ET
+Left To Right, UC_BIDI_L
+LeftToRight, UC_BIDI_L
+Left To Right Embedding, UC_BIDI_LRE
+LeftToRightEmbedding, UC_BIDI_LRE
+Left To Right Override, UC_BIDI_LRO
+LeftToRightOverride, UC_BIDI_LRO
+Nonspacing Mark, UC_BIDI_NSM
+NonspacingMark, UC_BIDI_NSM
+Other Neutral, UC_BIDI_ON
+OtherNeutral, UC_BIDI_ON
+Pop Directional Format, UC_BIDI_PDF
+PopDirectionalFormat, UC_BIDI_PDF
+Right To Left, UC_BIDI_R
+RightToLeft, UC_BIDI_R
+Right To Left Embedding, UC_BIDI_RLE
+RightToLeftEmbedding, UC_BIDI_RLE
+Right To Left Override, UC_BIDI_RLO
+RightToLeftOverride, UC_BIDI_RLO
+Segment Separator, UC_BIDI_S
+SegmentSeparator, UC_BIDI_S
+White Space, UC_BIDI_WS
+WhiteSpace, UC_BIDI_WS
diff --git a/lib/unictype/bidi_byname.h b/lib/unictype/bidi_byname.h
new file mode 100644 (file)
index 0000000..b30bff6
--- /dev/null
@@ -0,0 +1,417 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./unictype/bidi_byname.gperf  */
+/* Computed positions: -k'1,9,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 2 "./unictype/bidi_byname.gperf"
+struct named_bidi_class { int name; int bidi_class; };
+
+#define TOTAL_KEYWORDS 57
+#define MIN_WORD_LENGTH 1
+#define MAX_WORD_LENGTH 23
+#define MIN_HASH_VALUE 3
+#define MAX_HASH_VALUE 72
+/* maximum key range = 70, duplicates = 0 */
+
+#ifndef GPERF_DOWNCASE
+#define GPERF_DOWNCASE 1
+static unsigned char gperf_downcase[256] =
+  {
+      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
+     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
+     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
+     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
+     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
+    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
+    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+    255
+  };
+#endif
+
+#ifndef GPERF_CASE_STRCMP
+#define GPERF_CASE_STRCMP 1
+static int
+gperf_case_strcmp (register const char *s1, register const char *s2)
+{
+  for (;;)
+    {
+      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
+      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
+      if (c1 != 0 && c1 == c2)
+        continue;
+      return (int)c1 - (int)c2;
+    }
+}
+#endif
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+bidi_class_hash (register const char *str, register unsigned int len)
+{
+  static const unsigned char asso_values[] =
+    {
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 15, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 32, 27, 26, 73,  1,
+      26,  1, 14, 73, 73, 20,  4,  4,  8,  3,
+      23, 73,  1, 15,  1,  7, 73, 24, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 32, 27, 26,
+      73,  1, 26,  1, 14, 73, 73, 20,  4,  4,
+       8,  3, 23, 73,  1, 15,  1,  7, 73, 24,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
+      73, 73, 73, 73, 73, 73
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+        hval += asso_values[(unsigned char)str[8]];
+      /*FALLTHROUGH*/
+      case 8:
+      case 7:
+      case 6:
+      case 5:
+      case 4:
+      case 3:
+      case 2:
+      case 1:
+        hval += asso_values[(unsigned char)str[0]];
+        break;
+    }
+  return hval + asso_values[(unsigned char)str[len - 1]];
+}
+
+struct bidi_class_stringpool_t
+  {
+    char bidi_class_stringpool_str3[sizeof("R")];
+    char bidi_class_stringpool_str4[sizeof("ET")];
+    char bidi_class_stringpool_str5[sizeof("RLE")];
+    char bidi_class_stringpool_str7[sizeof("RLO")];
+    char bidi_class_stringpool_str8[sizeof("LRE")];
+    char bidi_class_stringpool_str9[sizeof("L")];
+    char bidi_class_stringpool_str10[sizeof("LRO")];
+    char bidi_class_stringpool_str11[sizeof("EN")];
+    char bidi_class_stringpool_str13[sizeof("ON")];
+    char bidi_class_stringpool_str14[sizeof("RightToLeft")];
+    char bidi_class_stringpool_str15[sizeof("NSM")];
+    char bidi_class_stringpool_str17[sizeof("LeftToRight")];
+    char bidi_class_stringpool_str18[sizeof("ES")];
+    char bidi_class_stringpool_str19[sizeof("Left To Right")];
+    char bidi_class_stringpool_str20[sizeof("OtherNeutral")];
+    char bidi_class_stringpool_str21[sizeof("EuropeanTerminator")];
+    char bidi_class_stringpool_str22[sizeof("RightToLeftOverride")];
+    char bidi_class_stringpool_str23[sizeof("RightToLeftEmbedding")];
+    char bidi_class_stringpool_str24[sizeof("EuropeanNumber")];
+    char bidi_class_stringpool_str25[sizeof("LeftToRightOverride")];
+    char bidi_class_stringpool_str26[sizeof("LeftToRightEmbedding")];
+    char bidi_class_stringpool_str27[sizeof("Other Neutral")];
+    char bidi_class_stringpool_str28[sizeof("Left To Right Override")];
+    char bidi_class_stringpool_str29[sizeof("Left To Right Embedding")];
+    char bidi_class_stringpool_str30[sizeof("Right To Left")];
+    char bidi_class_stringpool_str31[sizeof("S")];
+    char bidi_class_stringpool_str32[sizeof("European Number")];
+    char bidi_class_stringpool_str33[sizeof("SegmentSeparator")];
+    char bidi_class_stringpool_str34[sizeof("EuropeanSeparator")];
+    char bidi_class_stringpool_str35[sizeof("European Separator")];
+    char bidi_class_stringpool_str36[sizeof("European Terminator")];
+    char bidi_class_stringpool_str37[sizeof("BN")];
+    char bidi_class_stringpool_str38[sizeof("AL")];
+    char bidi_class_stringpool_str39[sizeof("Right To Left Override")];
+    char bidi_class_stringpool_str40[sizeof("Right To Left Embedding")];
+    char bidi_class_stringpool_str41[sizeof("WS")];
+    char bidi_class_stringpool_str42[sizeof("AN")];
+    char bidi_class_stringpool_str43[sizeof("CS")];
+    char bidi_class_stringpool_str44[sizeof("Common Separator")];
+    char bidi_class_stringpool_str45[sizeof("PopDirectionalFormat")];
+    char bidi_class_stringpool_str46[sizeof("ArabicLetter")];
+    char bidi_class_stringpool_str47[sizeof("Arabic Letter")];
+    char bidi_class_stringpool_str48[sizeof("Segment Separator")];
+    char bidi_class_stringpool_str49[sizeof("ArabicNumber")];
+    char bidi_class_stringpool_str50[sizeof("NonspacingMark")];
+    char bidi_class_stringpool_str51[sizeof("Nonspacing Mark")];
+    char bidi_class_stringpool_str52[sizeof("PDF")];
+    char bidi_class_stringpool_str53[sizeof("Arabic Number")];
+    char bidi_class_stringpool_str54[sizeof("BoundaryNeutral")];
+    char bidi_class_stringpool_str55[sizeof("B")];
+    char bidi_class_stringpool_str56[sizeof("ParagraphSeparator")];
+    char bidi_class_stringpool_str57[sizeof("Paragraph Separator")];
+    char bidi_class_stringpool_str61[sizeof("WhiteSpace")];
+    char bidi_class_stringpool_str62[sizeof("Boundary Neutral")];
+    char bidi_class_stringpool_str65[sizeof("CommonSeparator")];
+    char bidi_class_stringpool_str68[sizeof("White Space")];
+    char bidi_class_stringpool_str72[sizeof("Pop Directional Format")];
+  };
+static const struct bidi_class_stringpool_t bidi_class_stringpool_contents =
+  {
+    "R",
+    "ET",
+    "RLE",
+    "RLO",
+    "LRE",
+    "L",
+    "LRO",
+    "EN",
+    "ON",
+    "RightToLeft",
+    "NSM",
+    "LeftToRight",
+    "ES",
+    "Left To Right",
+    "OtherNeutral",
+    "EuropeanTerminator",
+    "RightToLeftOverride",
+    "RightToLeftEmbedding",
+    "EuropeanNumber",
+    "LeftToRightOverride",
+    "LeftToRightEmbedding",
+    "Other Neutral",
+    "Left To Right Override",
+    "Left To Right Embedding",
+    "Right To Left",
+    "S",
+    "European Number",
+    "SegmentSeparator",
+    "EuropeanSeparator",
+    "European Separator",
+    "European Terminator",
+    "BN",
+    "AL",
+    "Right To Left Override",
+    "Right To Left Embedding",
+    "WS",
+    "AN",
+    "CS",
+    "Common Separator",
+    "PopDirectionalFormat",
+    "ArabicLetter",
+    "Arabic Letter",
+    "Segment Separator",
+    "ArabicNumber",
+    "NonspacingMark",
+    "Nonspacing Mark",
+    "PDF",
+    "Arabic Number",
+    "BoundaryNeutral",
+    "B",
+    "ParagraphSeparator",
+    "Paragraph Separator",
+    "WhiteSpace",
+    "Boundary Neutral",
+    "CommonSeparator",
+    "White Space",
+    "Pop Directional Format"
+  };
+#define bidi_class_stringpool ((const char *) &bidi_class_stringpool_contents)
+
+static const struct named_bidi_class bidi_class_names[] =
+  {
+    {-1}, {-1}, {-1},
+#line 28 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str3, UC_BIDI_R},
+#line 21 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str4, UC_BIDI_ET},
+#line 29 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str5, UC_BIDI_RLE},
+    {-1},
+#line 30 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str7, UC_BIDI_RLO},
+#line 23 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str8, UC_BIDI_LRE},
+#line 22 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str9, UC_BIDI_L},
+#line 24 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str10, UC_BIDI_LRO},
+#line 19 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str11, UC_BIDI_EN},
+    {-1},
+#line 26 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str13, UC_BIDI_ON},
+#line 62 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str14, UC_BIDI_R},
+#line 25 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str15, UC_BIDI_NSM},
+    {-1},
+#line 50 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str17, UC_BIDI_L},
+#line 20 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str18, UC_BIDI_ES},
+#line 49 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str19, UC_BIDI_L},
+#line 58 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str20, UC_BIDI_ON},
+#line 48 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str21, UC_BIDI_ET},
+#line 66 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str22, UC_BIDI_RLO},
+#line 64 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str23, UC_BIDI_RLE},
+#line 44 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str24, UC_BIDI_EN},
+#line 54 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str25, UC_BIDI_LRO},
+#line 52 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str26, UC_BIDI_LRE},
+#line 57 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str27, UC_BIDI_ON},
+#line 53 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str28, UC_BIDI_LRO},
+#line 51 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str29, UC_BIDI_LRE},
+#line 61 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str30, UC_BIDI_R},
+#line 31 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str31, UC_BIDI_S},
+#line 43 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str32, UC_BIDI_EN},
+#line 68 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str33, UC_BIDI_S},
+#line 46 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str34, UC_BIDI_ES},
+#line 45 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str35, UC_BIDI_ES},
+#line 47 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str36, UC_BIDI_ET},
+#line 17 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str37, UC_BIDI_BN},
+#line 14 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str38, UC_BIDI_AL},
+#line 65 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str39, UC_BIDI_RLO},
+#line 63 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str40, UC_BIDI_RLE},
+#line 32 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str41, UC_BIDI_WS},
+#line 15 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str42, UC_BIDI_AN},
+#line 18 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str43, UC_BIDI_CS},
+#line 41 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str44, UC_BIDI_CS},
+#line 60 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str45, UC_BIDI_PDF},
+#line 34 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str46, UC_BIDI_AL},
+#line 33 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str47, UC_BIDI_AL},
+#line 67 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str48, UC_BIDI_S},
+#line 36 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str49, UC_BIDI_AN},
+#line 56 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str50, UC_BIDI_NSM},
+#line 55 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str51, UC_BIDI_NSM},
+#line 27 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str52, UC_BIDI_PDF},
+#line 35 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str53, UC_BIDI_AN},
+#line 40 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str54, UC_BIDI_BN},
+#line 16 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str55, UC_BIDI_B},
+#line 38 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str56, UC_BIDI_B},
+#line 37 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str57, UC_BIDI_B},
+    {-1}, {-1}, {-1},
+#line 70 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str61, UC_BIDI_WS},
+#line 39 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str62, UC_BIDI_BN},
+    {-1}, {-1},
+#line 42 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str65, UC_BIDI_CS},
+    {-1}, {-1},
+#line 69 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str68, UC_BIDI_WS},
+    {-1}, {-1}, {-1},
+#line 59 "./unictype/bidi_byname.gperf"
+    {(int)(long)&((struct bidi_class_stringpool_t *)0)->bidi_class_stringpool_str72, UC_BIDI_PDF}
+  };
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct named_bidi_class *
+uc_bidi_class_lookup (register const char *str, register unsigned int len)
+{
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = bidi_class_hash (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
+          register int o = bidi_class_names[key].name;
+          if (o >= 0)
+            {
+              register const char *s = o + bidi_class_stringpool;
+
+              if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
+                return &bidi_class_names[key];
+            }
+        }
+    }
+  return 0;
+}
diff --git a/lib/unictype/bidi_longname.c b/lib/unictype/bidi_longname.c
new file mode 100644 (file)
index 0000000..8c46c90
--- /dev/null
@@ -0,0 +1,53 @@
+/* Bidi classes of Unicode characters.
+   Copyright (C) 2002, 2006, 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+static const char u_bidi_class_long_name[19][24] =
+{
+  "Left To Right",
+  "Left To Right Embedding",
+  "Left To Right Override",
+  "Right To Left",
+  "Arabic Letter",
+  "Right To Left Embedding",
+  "Right To Left Override",
+  "Pop Directional Format",
+  "European Number",
+  "European Separator",
+  "European Terminator",
+  "Arabic Number",
+  "Common Separator",
+  "Nonspacing Mark",
+  "Boundary Neutral",
+  "Paragraph Separator",
+  "Segment Separator",
+  "White Space",
+  "Other Neutral"
+};
+
+const char *
+uc_bidi_class_long_name (int bidi_class)
+{
+  if (bidi_class >= 0
+      && bidi_class < sizeof (u_bidi_class_long_name) / sizeof (u_bidi_class_long_name[0]))
+    return u_bidi_class_long_name[bidi_class];
+  return NULL;
+}
index 28bb4ba..1edddc0 100644 (file)
@@ -1,5 +1,5 @@
-/* Bidi categories of Unicode characters.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+/* Bidi classes of Unicode characters.
+   Copyright (C) 2002, 2006, 2011-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
 /* Specification.  */
 #include "unictype.h"
 
-static const char u_bidi_category_name[19][4] =
+static const char u_bidi_class_name[19][4] =
 {
   "L",  "LRE", "LRO", "R",   "AL", "RLE", "RLO", "PDF", "EN", "ES",
   "ET", "AN",  "CS",  "NSM", "BN", "B",   "S",   "WS",  "ON"
 };
 
 const char *
-uc_bidi_category_name (int category)
+uc_bidi_class_name (int bidi_class)
 {
-  if (category >= 0 && category < sizeof (u_bidi_category_name) / sizeof (u_bidi_category_name[0]))
-    return u_bidi_category_name[category];
+  if (bidi_class >= 0 && bidi_class < sizeof (u_bidi_class_name) / sizeof (u_bidi_class_name[0]))
+    return u_bidi_class_name[bidi_class];
   return NULL;
 }
+
+const char *
+uc_bidi_category_name (int category)
+{
+  return uc_bidi_class_name (category);
+}
index 4a293a8..9c75650 100644 (file)
@@ -1,5 +1,5 @@
-/* Bidi categories of Unicode characters.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+/* Bidi classes of Unicode characters.
+   Copyright (C) 2002, 2006, 2011-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
 #include "bidi_of.h"
 
 int
-uc_bidi_category (ucs4_t uc)
+uc_bidi_class (ucs4_t uc)
 {
   unsigned int index1 = uc >> bidi_category_header_0;
   if (index1 < bidi_category_header_1)
@@ -50,3 +50,9 @@ uc_bidi_category (ucs4_t uc)
     }
   return UC_BIDI_L;
 }
+
+int
+uc_bidi_category (ucs4_t uc)
+{
+  return uc_bidi_class (uc);
+}
index 9f6875b..c30ddc9 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Bidi categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define bidi_category_header_0 16
 #define bidi_category_header_1 17
 #define bidi_category_header_2 7
@@ -11,7 +11,7 @@ struct
   {
     int level1[17];
     short level2[4 << 9];
-    unsigned short level3[101 * 40 + 1];
+    unsigned short level3[125 * 40 + 1];
   }
 u_bidi_category =
 {
@@ -23,24 +23,24 @@ u_bidi_category =
   {
         0,   128,    -1,    -1,    -1,   256,   384,   512,
        -1,   640,    -1,   768,   896,  1024,  1152,  1280,
-     1408,  1408,  1536,  1664,  1792,  1920,  2048,  2176,
-     2304,  2432,  2560,  2688,  2816,  2944,  3072,  3200,
-     3328,  3456,    -1,    -1,    -1,    -1,  3584,  3712,
-       -1,    -1,    -1,    -1,    -1,  3840,  3968,  4096,
-     4224,  4352,  4480,  4608,  4736,    -1,  4864,  4992,
-     5120,    -1,    -1,  5248,    -1,    -1,    -1,  5376,
-     5504,  5632,  5760,  5888,  6016,  6144,  6272,  6400,
-     6528,  6656,  6144,  6144,  6144,  6784,  6912,  7040,
-       -1,    -1,  6144,  6144,  6144,  6144,  7168,    -1,
-       -1,  7296,    -1,  7424,  7552,  7680,  6144,  7808,
-     7936,  8064,    -1,  8192,  8320,  8448,  8576,  8704,
+     1408,  1536,  1664,  1792,  1920,  2048,  2176,  2304,
+     2432,  2560,  2688,  2816,  2944,  3072,  3200,  3328,
+     3456,  3584,    -1,    -1,    -1,    -1,  3712,  3840,
+     3968,    -1,    -1,    -1,    -1,  4096,  4224,  4352,
+     4480,  4608,  4736,  4864,  4992,    -1,  5120,  5248,
+     5376,  5504,    -1,  5632,    -1,    -1,    -1,  5760,
+     5888,  6016,  6144,  6272,  6400,  6528,  6656,  6784,
+     6912,  7040,  6528,  6528,  6528,  7168,  7296,  7424,
+       -1,    -1,  6528,  6528,  6528,  6528,  7552,    -1,
+       -1,  7680,  7808,  7936,  8064,  8192,  6528,  8320,
+     8448,  8576,    -1,  8704,  8832,  8960,  9088,  9216,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,  8832,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,  9344,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -62,8 +62,8 @@ u_bidi_category =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,  8960,    -1,    -1,  9088,    -1,  9216,  9344,
-     9472,  9600,  9728,    -1,  9856,    -1,    -1,    -1,
+       -1,  9472,    -1,    -1,  9600,  9728,  9856,  9984,
+    10112, 10240, 10368, 10496, 10624, 10752,    -1, 10880,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -83,12 +83,13 @@ u_bidi_category =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  9984, 10112,
-    10112, 10112, 10240, 10368, 10496, 10624, 10752, 10880,
-       -1,    -1, 11008, 11136,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1, 11008, 11136,
+    11136, 11136, 11264, 11392, 11520, 11648, 11776, 11904,
+       -1,    -1, 12032, 12160,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     1408,  1408, 11264,  1408, 11392,  1408,  1408,  1408,
-     1408,  1408,  1408,  1408,  1408,  1408,  1408,  1408,
+     1536,  1536, 12288,  1536, 12416,  1536, 12544,  1536,
+     1536,  1536,  1536,  1536, 12672,  1536,  1536,  1536,
+    12800, 12928,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -136,19 +137,20 @@ u_bidi_category =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1, 13056, 13184, 13312,    -1, 13440,    -1,
+       -1,    -1,    -1,    -1,    -1, 13568, 13696, 13824,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1, 11520, 11648, 11776,    -1, 11904,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1, 12032,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    13952, 14080, 14208,    -1,    -1,    -1, 14336, 14464,
+    14592, 14720, 14848, 14976, 15104, 15232, 15360,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    12160, 12288,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1, 15488,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1, 12416,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -210,13 +212,13 @@ u_bidi_category =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1, 15488,
+    15616, 15616, 15744, 15872, 15616, 15616, 15616, 15616,
+    15616, 15616, 15616, 15616, 15616, 15616, 15616, 15616,
+    15616, 15616, 15616, 15616, 15616, 15616, 15616, 15616,
+    15616, 15616, 15616, 15616, 15616, 15616, 15616, 15616,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1, 12416,
-    12544, 12544, 12672, 12800, 12544, 12544, 12544, 12544,
-    12544, 12544, 12544, 12544, 12544, 12544, 12544, 12544,
-    12544, 12544, 12544, 12544, 12544, 12544, 12544, 12544,
-    12544, 12544, 12544, 12544, 12544, 12544, 12544, 12544,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -274,9 +276,7 @@ u_bidi_category =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1, 12416
+       -1,    -1,    -1,    -1,    -1,    -1,    -1, 15488
   },
   {
     0x39ce, 0x9ce7, 0x0e73, 0x183e, 0x739f, 0x39ce, 0x9ce7, 0xce73,
@@ -317,14 +317,14 @@ u_bidi_category =
     0xad6b, 0x8845, 0x4494, 0xc229, 0x9488, 0xb5ad, 0x5ad6, 0xad6b,
     0x4235, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0xd690,
-    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x235a, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xad6b, 0xd6b5,
     0x6b5a, 0xb5a9, 0x2108, 0x108d, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
-    0x2108, 0x1084, 0x4842, 0xad6b, 0xd6b5, 0x6b56, 0xb5ad, 0x08d6,
+    0x2108, 0x1084, 0x4842, 0xad6b, 0xd6b5, 0x6c96, 0xb5ad, 0x08d6,
     0x4d69, 0xd6b6, 0x211a, 0x2108, 0x1084, 0x0842, 0x4211, 0x2108,
-    0x1084, 0x0842, 0x8421, 0x4210, 0x7108, 0x11a4, 0x0842, 0x8421,
+    0x1084, 0x0842, 0x8421, 0x4210, 0x5908, 0x11a4, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0xb5ad,
     0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0x4235,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
@@ -334,21 +334,26 @@ u_bidi_category =
     0x0842, 0x8421, 0x4210, 0x2108, 0x8c63, 0xc631, 0x6318, 0x318c,
     0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631,
     0x6318, 0xd68c, 0x6b5a, 0xb5ad, 0x8636, 0x5294, 0x318e, 0x18c6,
+    0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0x4631, 0xad6b,
+    0xd68d, 0x6b5a, 0xb5ad, 0x5a36, 0xa36b, 0xd6b5, 0x18da, 0x8c63,
+    0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
+    0x18c6, 0x8c63, 0xc631, 0xa318, 0x36b5, 0x18c6, 0x8c63, 0xc631,
+    0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6,
     0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318,
     0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63,
     0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
     0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631,
     0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6,
-    0x35a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x35ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0xd000, 0x0000, 0xb5a0, 0x5ad6, 0x0d6b, 0x0000,
-    0x001a, 0xb5a0, 0x00d6, 0x0000, 0x0000, 0x0000, 0xb400, 0x0006,
+    0x0000, 0x0000, 0xd034, 0x0000, 0xb5a0, 0x5ad6, 0x0d6b, 0x0000,
+    0x001a, 0xb5a0, 0x5ad6, 0x006b, 0x0000, 0x0000, 0xb400, 0x0006,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x01a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0xd000, 0x0000, 0xb5a0, 0x00d6, 0x0000, 0x0000,
     0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb400, 0x0006,
-    0x0000, 0x0000, 0x0000, 0x2800, 0x0005, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x2800, 0x0005, 0x0000, 0x0500, 0x0000,
     0x35a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0xd000, 0x0000, 0x35a0, 0x0000, 0x0d68, 0xd680,
@@ -378,7 +383,7 @@ u_bidi_category =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0xd000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd000,
     0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb400, 0x0006,
-    0x0000, 0x0000, 0x0000, 0x4a40, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0xb5a0, 0x00d6, 0x0000, 0x0000,
@@ -404,7 +409,7 @@ u_bidi_category =
     0x1a00, 0xa068, 0x2949, 0x0025, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0xb5a0, 0x5ad6, 0xad6b, 0xd6b5, 0x035a,
-    0xb5ad, 0x40d6, 0x006b, 0x0000, 0x0000, 0xb5ad, 0x5ad6, 0xa06b,
+    0xb5ad, 0x40d6, 0x006b, 0x0000, 0x6b5a, 0xb5ad, 0x5ad6, 0xa06b,
     0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
     0x5ad6, 0xad6b, 0xd6b5, 0x0000, 0x0000, 0x4000, 0x0003, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -415,20 +420,25 @@ u_bidi_category =
     0x0000, 0x0000, 0x0000, 0xad00, 0x0001, 0x6b40, 0x000d, 0x0000,
     0x0000, 0x0000, 0x0000, 0xb5a0, 0x00d6, 0x0000, 0x0000, 0x0000,
     0x3400, 0x5a00, 0x0003, 0x0000, 0x001a, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6800, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b5a, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294,
     0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0012, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0011, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x2900, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -467,8 +477,8 @@ u_bidi_category =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0d68,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x4000, 0xad03, 0xd6b5, 0x035a, 0x340d, 0x5a00,
+    0xad6b, 0xd6b5, 0x0000, 0x8000, 0x5ad6, 0xad6b, 0xd6b5, 0x6800,
     0xb5ad, 0x0006, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x40d0, 0xad6b, 0xd035, 0x0000, 0x3400, 0x0000, 0x0000, 0x0000,
@@ -477,8 +487,8 @@ u_bidi_category =
     0x01ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0xb400, 0x1ad6, 0xad00, 0x0001, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000,
+    0xad03, 0x0001, 0x681a, 0x01ad, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd000, 0x6b5a, 0xb5ad,
     0x4006, 0x006b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -486,9 +496,14 @@ u_bidi_category =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x35ad, 0x5ad0, 0xad6b, 0xd6b5, 0x6b5a, 0xb40d, 0x5ad6,
+    0x0d6b, 0x0000, 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
     0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
-    0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6b40,
+    0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd000, 0x6b5a,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x9024, 0x0252, 0x0000, 0x0000, 0x0000,
@@ -501,15 +516,15 @@ u_bidi_category =
     0x8421, 0xe738, 0x739c, 0x0008, 0x1080, 0x0842, 0x24a5, 0x04a5,
     0x2108, 0x1084, 0x0842, 0x24a5, 0x04a5, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
-    0x14a5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x94a5, 0x4a52, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
     0xad6b, 0xd6b5, 0x6b5a, 0x000d, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0252, 0xa529, 0x5204, 0x0002, 0x0000, 0x0000, 0x8120, 0x1294,
     0x0000, 0x9480, 0x4a52, 0x2409, 0x4090, 0x0002, 0x0280, 0x0000,
     0x0000, 0x0000, 0x0948, 0x0000, 0x4a52, 0x0129, 0x0000, 0x2948,
-    0x0025, 0x0000, 0xa529, 0x5294, 0x294a, 0x94a5, 0x0000, 0x0000,
+    0x0025, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294,
+    0x0000, 0x0000, 0x4000, 0x0002, 0x0000, 0x4a52, 0xa529, 0x5294,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
     0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
     0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
@@ -533,7 +548,7 @@ u_bidi_category =
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
     0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
     0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
-    0x0094, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x5294, 0x294a, 0x94a5, 0x4a52, 0x0009, 0x0000, 0x0000, 0x0000,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x0004, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529, 0x5294, 0x004a,
@@ -545,37 +560,42 @@ u_bidi_category =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x2948, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
-    0x294a, 0x0025, 0x4a52, 0xa529, 0x5294, 0x094a, 0x94a4, 0x4a52,
-    0xa529, 0x5294, 0x294a, 0x0001, 0x4a52, 0x0009, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x4a40, 0x8129, 0x5294, 0x2002, 0x94a5, 0x4a52, 0xa529, 0x5294,
-    0x294a, 0x94a5, 0x4a52, 0xa529, 0x4094, 0x294a, 0x94a5, 0x4a52,
-    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x094a,
-    0x9024, 0x4a52, 0x8000, 0x5204, 0x294a, 0x04a5, 0x4a40, 0xa529,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x094a, 0x94a4, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+    0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
-    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x0129, 0x5200,
-    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a40,
-    0xa529, 0x5294, 0x294a, 0x04a5, 0x4a52, 0xa529, 0x5294, 0x204a,
-    0x0001, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+    0x4a40, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+    0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+    0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x204a,
+    0x9481, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
     0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
-    0x0001, 0x4a52, 0x0129, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0001, 0x4a52, 0xa529, 0x5294, 0x0002, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa400,
-    0x5294, 0x004a, 0x0000, 0x0000, 0x0000, 0x4000, 0x294a, 0x94a5,
+    0x5294, 0x004a, 0x6800, 0x01ad, 0x0000, 0x4000, 0x294a, 0x94a5,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6800,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb5ad, 0x5ad6,
     0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
-    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x0012,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x0252,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -639,6 +659,11 @@ u_bidi_category =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x6800, 0x35ad, 0x0009, 0x0000, 0xd000, 0x949a,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x01ad, 0x0000, 0x0000, 0x0000, 0x0000,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
     0x294a, 0x94a5, 0x0252, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -651,25 +676,40 @@ u_bidi_category =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x3400, 0x4000, 0x0003, 0x0680, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x5a00, 0x5203, 0x094a, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x4a00, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0xa520, 0x0094, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d0, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb5ad, 0x5ad6,
+    0xad6b, 0xd6b5, 0x6b5a, 0x01ad, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x4000, 0xad6b, 0xd6b5, 0x001a, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xad68, 0xd6b5,
     0x6b5a, 0x01ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x35ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000,
+    0x4006, 0xad6b, 0xd001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xd6b5, 0x035a, 0x35a0,
     0x5a00, 0x0003, 0x0000, 0x0000, 0x8000, 0x0006, 0x0000, 0xd000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb40d,
+    0x00d6, 0x0d68, 0x0000, 0x6b40, 0x01a0, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1a00,
+    0x0d00, 0x0000, 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x1b46, 0x8c63, 0xc631, 0x2318, 0x318d, 0x18c6, 0x8c63,
     0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
     0x18c6, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
@@ -729,6 +769,26 @@ u_bidi_category =
     0xc631, 0xad18, 0x31b5, 0x68c6, 0x8c63, 0xc631, 0x6318, 0x318c,
     0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631,
     0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6,
+    0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318,
+    0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63,
+    0xc631, 0x4318, 0x294a, 0x94a5, 0x8c63, 0xc631, 0x6318, 0x318c,
+    0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631,
+    0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6,
+    0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318,
+    0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63,
+    0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
+    0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x1ad6,
+    0x01a0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0xad00, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0x0003, 0x0000,
+    0x0000, 0x4800, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x2529,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x01ad, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000,
+    0x5ad6, 0xa003, 0x0035, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -752,6 +812,16 @@ u_bidi_category =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0900, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2400, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x9000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x4000, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000,
     0x4200, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
@@ -760,11 +830,61 @@ u_bidi_category =
     0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x0009, 0x0000,
+    0x0000, 0x0000, 0x4a52, 0xa529, 0x5294, 0x294a, 0x04a5, 0x4a40,
+    0xa529, 0x5294, 0x294a, 0x04a5, 0x4a40, 0xa529, 0x5294, 0x294a,
+    0x94a5, 0x4a40, 0xa529, 0x5294, 0x294a, 0x94a5, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x2108, 0x1084, 0x0842, 0x0021, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+    0x294a, 0x94a5, 0x0012, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52,
+    0x2529, 0x5290, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+    0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+    0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x0001,
+    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x0009, 0x0000,
+    0x0000, 0x0000, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x8129, 0x5294, 0x004a,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4a52, 0xa529,
+    0x5294, 0x294a, 0x94a5, 0x0012, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x04a5, 0x4812, 0xa529, 0x5294, 0x294a,
+    0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+    0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
+    0x4a52, 0xa529, 0x5294, 0x094a, 0x94a4, 0x4a52, 0xa529, 0x5294,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+    0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+    0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x4094, 0x294a, 0x0001,
+    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+    0x294a, 0x94a5, 0x4a52, 0xa409, 0x5294, 0x294a, 0x94a5, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x0025, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+    0x0094, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2900, 0x94a5,
+    0x4a40, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4812, 0x8129, 0x1204,
+    0x2048, 0x04a5, 0x4a52, 0x2529, 0x5200, 0x094a, 0x0024, 0x4a52,
+    0xa409, 0x5294, 0x294a, 0x94a5, 0x0012, 0xa400, 0x5294, 0x294a,
+    0x94a5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x2529, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
+    0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529,
+    0x5294, 0x294a, 0x94a5, 0x4a52, 0x0009, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
index 0a9fa5c..fc333e8 100644 (file)
@@ -1,5 +1,5 @@
-/* Bidi categories of Unicode characters.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+/* Bidi classes of Unicode characters.
+   Copyright (C) 2002, 2006, 2011-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
 #include "unictype.h"
 
 bool
+uc_is_bidi_class (ucs4_t uc, int bidi_class)
+{
+  return (uc_bidi_class (uc) == bidi_class);
+}
+
+bool
 uc_is_bidi_category (ucs4_t uc, int category)
 {
-  return (uc_bidi_category (uc) == category);
+  return uc_is_bidi_class (uc, category);
 }
index 4e743c5..3f11976 100644 (file)
@@ -1,5 +1,5 @@
 /* Three-level bitmap lookup.
-   Copyright (C) 2000-2002, 2005-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2000-2002, 2005-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2000-2002.
 
    This program is free software: you can redistribute it and/or modify it
index 04722b4..dccf51a 100644 (file)
@@ -1,5 +1,5 @@
 /* Blocks of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
@@ -28,4 +28,3 @@ uc_is_block (ucs4_t uc, const uc_block_t *block)
   else
     return false;
 }
-
index e83e546..75aaf50 100644 (file)
@@ -1,5 +1,5 @@
 /* Blocks of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
index 2585b58..cd4b14e 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Unicode blocks.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 static const uc_block_t blocks[] =
 {
   { 0x0000, 0x007F, "Basic Latin" },
@@ -20,6 +20,8 @@ static const uc_block_t blocks[] =
   { 0x0750, 0x077F, "Arabic Supplement" },
   { 0x0780, 0x07BF, "Thaana" },
   { 0x07C0, 0x07FF, "NKo" },
+  { 0x0800, 0x083F, "Samaritan" },
+  { 0x0840, 0x085F, "Mandaic" },
   { 0x0900, 0x097F, "Devanagari" },
   { 0x0980, 0x09FF, "Bengali" },
   { 0x0A00, 0x0A7F, "Gurmukhi" },
@@ -48,15 +50,19 @@ static const uc_block_t blocks[] =
   { 0x1760, 0x177F, "Tagbanwa" },
   { 0x1780, 0x17FF, "Khmer" },
   { 0x1800, 0x18AF, "Mongolian" },
+  { 0x18B0, 0x18FF, "Unified Canadian Aboriginal Syllabics Extended" },
   { 0x1900, 0x194F, "Limbu" },
   { 0x1950, 0x197F, "Tai Le" },
   { 0x1980, 0x19DF, "New Tai Lue" },
   { 0x19E0, 0x19FF, "Khmer Symbols" },
   { 0x1A00, 0x1A1F, "Buginese" },
+  { 0x1A20, 0x1AAF, "Tai Tham" },
   { 0x1B00, 0x1B7F, "Balinese" },
   { 0x1B80, 0x1BBF, "Sundanese" },
+  { 0x1BC0, 0x1BFF, "Batak" },
   { 0x1C00, 0x1C4F, "Lepcha" },
   { 0x1C50, 0x1C7F, "Ol Chiki" },
+  { 0x1CD0, 0x1CFF, "Vedic Extensions" },
   { 0x1D00, 0x1D7F, "Phonetic Extensions" },
   { 0x1D80, 0x1DBF, "Phonetic Extensions Supplement" },
   { 0x1DC0, 0x1DFF, "Combining Diacritical Marks Supplement" },
@@ -113,17 +119,28 @@ static const uc_block_t blocks[] =
   { 0x4E00, 0x9FFF, "CJK Unified Ideographs" },
   { 0xA000, 0xA48F, "Yi Syllables" },
   { 0xA490, 0xA4CF, "Yi Radicals" },
+  { 0xA4D0, 0xA4FF, "Lisu" },
   { 0xA500, 0xA63F, "Vai" },
   { 0xA640, 0xA69F, "Cyrillic Extended-B" },
+  { 0xA6A0, 0xA6FF, "Bamum" },
   { 0xA700, 0xA71F, "Modifier Tone Letters" },
   { 0xA720, 0xA7FF, "Latin Extended-D" },
   { 0xA800, 0xA82F, "Syloti Nagri" },
+  { 0xA830, 0xA83F, "Common Indic Number Forms" },
   { 0xA840, 0xA87F, "Phags-pa" },
   { 0xA880, 0xA8DF, "Saurashtra" },
+  { 0xA8E0, 0xA8FF, "Devanagari Extended" },
   { 0xA900, 0xA92F, "Kayah Li" },
   { 0xA930, 0xA95F, "Rejang" },
+  { 0xA960, 0xA97F, "Hangul Jamo Extended-A" },
+  { 0xA980, 0xA9DF, "Javanese" },
   { 0xAA00, 0xAA5F, "Cham" },
+  { 0xAA60, 0xAA7F, "Myanmar Extended-A" },
+  { 0xAA80, 0xAADF, "Tai Viet" },
+  { 0xAB00, 0xAB2F, "Ethiopic Extended-A" },
+  { 0xABC0, 0xABFF, "Meetei Mayek" },
   { 0xAC00, 0xD7AF, "Hangul Syllables" },
+  { 0xD7B0, 0xD7FF, "Hangul Jamo Extended-B" },
   { 0xD800, 0xDB7F, "High Surrogates" },
   { 0xDB80, 0xDBFF, "High Private Use Surrogates" },
   { 0xDC00, 0xDFFF, "Low Surrogates" },
@@ -155,11 +172,23 @@ static const uc_block_t blocks[] =
   { 0x10450, 0x1047F, "Shavian" },
   { 0x10480, 0x104AF, "Osmanya" },
   { 0x10800, 0x1083F, "Cypriot Syllabary" },
+  { 0x10840, 0x1085F, "Imperial Aramaic" },
   { 0x10900, 0x1091F, "Phoenician" },
   { 0x10920, 0x1093F, "Lydian" },
   { 0x10A00, 0x10A5F, "Kharoshthi" },
+  { 0x10A60, 0x10A7F, "Old South Arabian" },
+  { 0x10B00, 0x10B3F, "Avestan" },
+  { 0x10B40, 0x10B5F, "Inscriptional Parthian" },
+  { 0x10B60, 0x10B7F, "Inscriptional Pahlavi" },
+  { 0x10C00, 0x10C4F, "Old Turkic" },
+  { 0x10E60, 0x10E7F, "Rumi Numeral Symbols" },
+  { 0x11000, 0x1107F, "Brahmi" },
+  { 0x11080, 0x110CF, "Kaithi" },
   { 0x12000, 0x123FF, "Cuneiform" },
   { 0x12400, 0x1247F, "Cuneiform Numbers and Punctuation" },
+  { 0x13000, 0x1342F, "Egyptian Hieroglyphs" },
+  { 0x16800, 0x16A3F, "Bamum Supplement" },
+  { 0x1B000, 0x1B0FF, "Kana Supplement" },
   { 0x1D000, 0x1D0FF, "Byzantine Musical Symbols" },
   { 0x1D100, 0x1D1FF, "Musical Symbols" },
   { 0x1D200, 0x1D24F, "Ancient Greek Musical Notation" },
@@ -168,7 +197,16 @@ static const uc_block_t blocks[] =
   { 0x1D400, 0x1D7FF, "Mathematical Alphanumeric Symbols" },
   { 0x1F000, 0x1F02F, "Mahjong Tiles" },
   { 0x1F030, 0x1F09F, "Domino Tiles" },
+  { 0x1F0A0, 0x1F0FF, "Playing Cards" },
+  { 0x1F100, 0x1F1FF, "Enclosed Alphanumeric Supplement" },
+  { 0x1F200, 0x1F2FF, "Enclosed Ideographic Supplement" },
+  { 0x1F300, 0x1F5FF, "Miscellaneous Symbols And Pictographs" },
+  { 0x1F600, 0x1F64F, "Emoticons" },
+  { 0x1F680, 0x1F6FF, "Transport And Map Symbols" },
+  { 0x1F700, 0x1F77F, "Alchemical Symbols" },
   { 0x20000, 0x2A6DF, "CJK Unified Ideographs Extension B" },
+  { 0x2A700, 0x2B73F, "CJK Unified Ideographs Extension C" },
+  { 0x2B740, 0x2B81F, "CJK Unified Ideographs Extension D" },
   { 0x2F800, 0x2FA1F, "CJK Compatibility Ideographs Supplement" },
   { 0xE0000, 0xE007F, "Tags" },
   { 0xE0100, 0xE01EF, "Variation Selectors Supplement" },
@@ -187,766 +225,766 @@ static const uint8_t blocks_level1[768 * 2] =
     9,  12,
    12,  13,
    13,  17,
-   17,  17,
    17,  19,
    19,  21,
    21,  23,
    23,  25,
    25,  27,
    27,  29,
-   29,  30,
-   30,  32,
-   32,  33,
-   33,  34,
-   33,  36,
-   36,  37,
-   36,  37,
-   36,  39,
-   39,  44,
-   44,  45,
-   45,  49,
-   49,  50,
-   50,  52,
+   29,  31,
+   31,  32,
+   32,  34,
+   34,  35,
+   35,  36,
+   35,  38,
+   38,  39,
+   38,  39,
+   38,  41,
+   41,  46,
+   46,  48,
+   48,  52,
    52,  54,
    54,  57,
-   57,  58,
-   58,  59,
-   59,  63,
-   63,  66,
-   66,  67,
-   67,  68,
-   68,  71,
-   71,  74,
-   74,  75,
-   75,  78,
-   78,  79,
-   79,  81,
-   81,  82,
-   82,  83,
-   83,  86,
-   86,  90,
-   90,  92,
-   92,  94,
-   94,  97,
-   97, 103,
-  103, 104,
-  104, 105,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 106,
-  105, 107,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  107, 108,
-  108, 109,
-  108, 109,
-  108, 109,
-  108, 109,
-  108, 110,
+   57,  60,
+   60,  63,
+   63,  64,
+   64,  65,
+   65,  69,
+   69,  72,
+   72,  73,
+   73,  74,
+   74,  77,
+   77,  80,
+   80,  81,
+   81,  84,
+   84,  85,
+   85,  87,
+   87,  88,
+   88,  89,
+   89,  92,
+   92,  96,
+   96,  98,
+   98, 100,
+  100, 103,
+  103, 109,
+  109, 110,
   110, 111,
-  110, 112,
-  112, 114,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 112,
+  111, 113,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  113, 114,
+  114, 115,
+  114, 115,
+  114, 115,
+  114, 115,
   114, 117,
-  117, 119,
-  119, 120,
-  120, 120,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  120, 121,
-  121, 122,
-  121, 122,
-  121, 122,
-  121, 123,
-  123, 124,
-  123, 124,
-  123, 124,
-  123, 124,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  124, 125,
-  125, 126,
-  125, 126,
-  126, 128,
-  127, 128,
-  127, 128,
-  128, 134,
+  117, 118,
+  117, 120,
+  120, 122,
+  122, 127,
+  127, 131,
+  131, 134,
   134, 136,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
+  136, 137,
   136, 138,
-  138, 142,
-  142, 144,
-  144, 148,
-  148, 151,
-  151, 151,
-  151, 151,
-  151, 151,
-  151, 152,
-  152, 154,
-  154, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 155,
-  155, 156,
-  155, 156,
-  155, 156,
-  155, 156,
-  156, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 157,
-  157, 158,
-  158, 159,
-  159, 160,
-  160, 162,
-  162, 163,
-  162, 163,
-  162, 163,
-  162, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 163,
-  163, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 165,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  165, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 166,
-  166, 167,
-  166, 167,
-  166, 167,
-  167, 167,
-  167, 167,
-  167, 167,
-  167, 167,
-  167, 167
+  138, 139,
+  138, 139,
+  138, 139,
+  138, 140,
+  140, 141,
+  140, 141,
+  140, 141,
+  140, 141,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  141, 142,
+  142, 143,
+  142, 143,
+  143, 145,
+  144, 145,
+  144, 145,
+  145, 151,
+  151, 153,
+  153, 155,
+  155, 159,
+  159, 161,
+  161, 165,
+  165, 168,
+  168, 168,
+  168, 168,
+  168, 168,
+  168, 170,
+  170, 172,
+  172, 174,
+  174, 177,
+  177, 178,
+  178, 178,
+  178, 179,
+  179, 179,
+  179, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 181,
+  181, 182,
+  181, 182,
+  181, 182,
+  181, 182,
+  182, 183,
+  183, 183,
+  183, 183,
+  183, 183,
+  183, 183,
+  183, 183,
+  183, 183,
+  183, 183,
+  183, 183,
+  183, 183,
+  183, 183,
+  183, 183,
+  183, 184,
+  183, 184,
+  183, 184,
+  183, 184,
+  183, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 184,
+  184, 185,
+  184, 185,
+  184, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 185,
+  185, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 186,
+  186, 187,
+  187, 188,
+  188, 189,
+  189, 191,
+  191, 192,
+  191, 192,
+  191, 192,
+  191, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 192,
+  192, 195,
+  195, 196,
+  196, 197,
+  197, 198,
+  197, 198,
+  197, 198,
+  198, 200,
+  200, 201,
+  201, 201,
+  201, 201,
+  201, 201,
+  201, 201,
+  201, 201,
+  201, 201,
+  201, 201,
+  201, 201,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  201, 202,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 203,
+  202, 204,
+  203, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 204,
+  204, 205,
+  204, 205,
+  204, 205,
+  205, 205,
+  205, 205,
+  205, 205,
+  205, 205,
+  205, 205
 };
-#define blocks_upper_first_index 167
-#define blocks_upper_last_index 171
+#define blocks_upper_first_index 205
+#define blocks_upper_last_index 209
index 3c3860d..0707d32 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 0209db2..d70d6e8 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[17];
     short level2[5 << 7];
-    /*unsigned*/ int level3[52 << 4];
+    /*unsigned*/ int level3[61 << 4];
   }
 u_categ_C =
 {
@@ -46,6 +46,7 @@ u_categ_C =
        18 +   640 * sizeof (short) / sizeof (int) +   112,
        18 +   640 * sizeof (short) / sizeof (int) +   128,
        18 +   640 * sizeof (short) / sizeof (int) +   144,
+       -1,
        18 +   640 * sizeof (short) / sizeof (int) +   160,
        18 +   640 * sizeof (short) / sizeof (int) +   176,
        18 +   640 * sizeof (short) / sizeof (int) +   192,
@@ -55,13 +56,12 @@ u_categ_C =
        18 +   640 * sizeof (short) / sizeof (int) +   256,
        18 +   640 * sizeof (short) / sizeof (int) +   272,
        18 +   640 * sizeof (short) / sizeof (int) +   288,
-       18 +   640 * sizeof (short) / sizeof (int) +   304,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   304,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   336,
        18 +   640 * sizeof (short) / sizeof (int) +   352,
        18 +   640 * sizeof (short) / sizeof (int) +   368,
-       18 +   640 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -74,7 +74,7 @@ u_categ_C =
        -1,
        -1,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   400,
+       18 +   640 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -115,13 +115,13 @@ u_categ_C =
        -1,
        -1,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   416,
+       18 +   640 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   416,
        18 +   640 * sizeof (short) / sizeof (int) +   432,
        18 +   640 * sizeof (short) / sizeof (int) +   448,
        18 +   640 * sizeof (short) / sizeof (int) +   464,
-       18 +   640 * sizeof (short) / sizeof (int) +   480,
        -1,
        -1,
        -1,
@@ -143,22 +143,23 @@ u_categ_C =
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   480,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
        18 +   640 * sizeof (short) / sizeof (int) +   496,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
        18 +   640 * sizeof (short) / sizeof (int) +   512,
        18 +   640 * sizeof (short) / sizeof (int) +   528,
        18 +   640 * sizeof (short) / sizeof (int) +   544,
@@ -166,191 +167,131 @@ u_categ_C =
        18 +   640 * sizeof (short) / sizeof (int) +   576,
        18 +   640 * sizeof (short) / sizeof (int) +   592,
        18 +   640 * sizeof (short) / sizeof (int) +   608,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
        18 +   640 * sizeof (short) / sizeof (int) +   624,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
        18 +   640 * sizeof (short) / sizeof (int) +   640,
        18 +   640 * sizeof (short) / sizeof (int) +   656,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       -1,
        18 +   640 * sizeof (short) / sizeof (int) +   672,
        18 +   640 * sizeof (short) / sizeof (int) +   688,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       -1,
        18 +   640 * sizeof (short) / sizeof (int) +   704,
        18 +   640 * sizeof (short) / sizeof (int) +   720,
-       18 +   640 * sizeof (short) / sizeof (int) +   736,
-       18 +   640 * sizeof (short) / sizeof (int) +   752,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   768,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   736,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   752,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   768,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   784,
+       18 +   640 * sizeof (short) / sizeof (int) +   800,
+       18 +   640 * sizeof (short) / sizeof (int) +   816,
+       18 +   640 * sizeof (short) / sizeof (int) +   832,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   848,
+       18 +   640 * sizeof (short) / sizeof (int) +   864,
+       18 +   640 * sizeof (short) / sizeof (int) +   880,
+       18 +   640 * sizeof (short) / sizeof (int) +   896,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
        -1,
        -1,
        -1,
@@ -375,307 +316,366 @@ u_categ_C =
        -1,
        -1,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   784,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   800,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   816,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       18 +   640 * sizeof (short) / sizeof (int) +   512
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   912,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   928,
+       18 +   640 * sizeof (short) / sizeof (int) +   944,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   944,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   960,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496,
+       18 +   640 * sizeof (short) / sizeof (int) +   496
   },
   {
     0xFFFFFFFF, 0x00000000, 0x00000000, 0x80000000,
@@ -688,93 +688,89 @@ u_categ_C =
     0x0000280F, 0x00000004, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x0001FFF0, 0x01800000, 0x00000001,
+    0x00000000, 0x0001FF00, 0x01800000, 0x00000001,
     0x0001F900, 0x00000000, 0x0000FF00, 0xFFE0F800,
-    0x3000003F, 0x00000001, 0x80000000, 0x00000000,
+    0x3000003F, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x20000000, 0x00000000,
     0x0000C000, 0x00000000, 0x00001800, 0x00000000,
     0x00000000, 0xFFFC0000, 0x00000000, 0xF8000000,
+    0x00000000, 0x8000C000, 0xB0000000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000001, 0x0C000000, 0x00E0C000, 0x07F80000,
-    0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF8000030,
+    0x00000000, 0x00000000, 0x00000000, 0x01000000,
+    0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF0000030,
     0x00067811, 0x2C920200, 0xA1FDC678, 0xFFC0003F,
     0x00044011, 0x0C120200, 0xFFFEC440, 0xFFFD0030,
-    0x00066011, 0x0C120200, 0x4F3FC660, 0xFFFC0030,
+    0x00066011, 0x0C120200, 0x4F3FC660, 0xFF000030,
     0x29C23813, 0x3C0038E7, 0xFF7EC238, 0xF800003F,
     0x00022011, 0x1C100200, 0xFC9FC220, 0x00FF0030,
     0x00022013, 0x0C100200, 0xBF9FC220, 0xFFF90030,
-    0x00022013, 0x1C000200, 0xFF7FC220, 0x01C00030,
+    0x00022013, 0x18000000, 0xFF7F8220, 0x01C00030,
     0x03800013, 0xD0040000, 0x00A07B80, 0xFFE3FFFF,
     0x00000001, 0x78000000, 0xF0000000, 0xFFFFFFFF,
     0x010FDA69, 0xC4001351, 0xCC00C0A0, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000100, 0x0001E000,
-    0x0100F000, 0x20000000, 0xFFE02000, 0xFFFFFFFF,
+    0x01000000, 0x20000000, 0xF8002000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x0000FFC0, 0xE0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x3C000000, 0x00000000, 0x0000FFC0, 0xE0000000,
-    0x00000000, 0x00000000, 0x7C000000, 0x00000000,
-    0x00000000, 0x000000F8, 0x00000000, 0xFC000000,
     0x00000000, 0x00000000, 0xC280C200, 0x00000000,
     0x0000C200, 0x80C20000, 0x008000C2, 0x00000000,
-    0x00C20000, 0x00000000, 0x78000000, 0xE0000000,
+    0x00C20000, 0x00000000, 0x18000000, 0xE0000000,
     0xFC000000, 0x00000000, 0x00000000, 0xFFE00000,
-    0x00000001, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0xFF800000,
     0xE0000000, 0x00000000, 0x00000000, 0xFFFE0000,
     0xFFE02000, 0xFF800000, 0xFFF00000, 0xFFF22000,
     0x00000000, 0x00300000, 0xC0000000, 0xFC00FC00,
     0xFC008000, 0x00000000, 0x00000000, 0xFF000000,
-    0x00000000, 0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x0000F800, 0x00000000, 0xFFC00000,
     0xE0000000, 0xF000F000, 0x0000000E, 0xFFE0C000,
-    0x00000000, 0x0000FC00, 0x3C00FC00, 0x00000000,
-    0x30000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x0000F000, 0x3800FC00, 0x00000000,
+    0x30000000, 0x00000000, 0x80000000, 0x60000000,
+    0xFC00FC00, 0xFFFFC000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x0000F000, 0xE0000000,
-    0x00000000, 0xFC003800, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFC003800, 0x00000000, 0x0FF00000,
     0x00000000, 0x07000000, 0x00001C00, 0x00000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF, 0xFFF80000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x3FFFFF80,
+    0x00000000, 0x00000000, 0x00000000, 0x0FFFFF80,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0C00000, 0x00000000, 0x5500C0C0, 0xC0000000,
     0x00000000, 0x00200000, 0x10300020, 0x80230000,
     0x0000F800, 0x00007C00, 0x00000000, 0x000CFFFF,
-    0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
-    0x00000000, 0x00000000, 0x00070000, 0x00000000,
-    0x0000FE00, 0x00000000, 0x00000000, 0x00000000,
+    0xE0008000, 0xFC000000, 0x0000FFFF, 0xFFFE0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000FC00, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0xFFFFFF00,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0xFFFFFF80, 0xFFFFF800, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xC0000000, 0xE0000000, 0xFFFFFFF0, 0xFFFFFFFF,
-    0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
-    0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000001, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00002800, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFC00E000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x00008000, 0x80000000, 0xC0010000,
-    0x00000000, 0x00000000, 0x00000000, 0x01FFF800,
-    0x00000000, 0x0000FFC0, 0x00000000, 0xFFFF7FC0,
+    0x00000000, 0x00008000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x01FC0000,
+    0x00000000, 0x0000FFC0, 0x00000000, 0x7FFE7FC0,
     0xFF800000, 0x80808080, 0x80808080, 0x00000000,
-    0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFC0000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
     0x00000000, 0x00000000, 0x00000001, 0x00000000,
     0x01800000, 0x00000000, 0x00000000, 0x00000000,
     0x0000001F, 0x0001C000, 0x00000000, 0x00000000,
-    0x00008000, 0xFF000000, 0x00000000, 0x0000FFF0,
-    0x80000000, 0x00000000, 0x0000FFF0, 0x00000000,
+    0x00008000, 0xF8000000, 0x00000000, 0x0000FFF0,
+    0x80000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -785,27 +781,27 @@ u_categ_C =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFF000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000E000, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
+    0x0000E000, 0x00000000, 0x0000FF80, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00003,
-    0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00000,
+    0xFF000000, 0x00000000, 0x00000000, 0xFF000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFE000, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
-    0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
-    0x00000000, 0x00000000, 0xFC003FE0, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x7FF00000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0xFF800000, 0x0C00C000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFC8000, 0xFFFFFC00, 0xFFFFFFFF, 0x03FFFFFF,
+    0x00000000, 0xFC00F000, 0x00000000, 0xFF000000,
+    0x00000000, 0x00000000, 0xFC003FE0, 0xF0000000,
+    0x00000000, 0x00000000, 0x7FF00000, 0xE0000000,
+    0x00000000, 0x00000000, 0x3C004000, 0xFFFFFFFF,
+    0x00000000, 0xFF800000, 0x0C00C000, 0xF0000000,
+    0x00000000, 0x00000000, 0x07FFFFF8, 0xFFFFFFFF,
+    0xFF818181, 0xFFFF8080, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0xFC00C000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xFFFFFFF0, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x0000FFF0, 0x00000780, 0xF0000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -814,10 +810,10 @@ u_categ_C =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x0000C000, 0x00000000, 0x0000F800,
+    0x00000000, 0x0000C000, 0x00000000, 0x0000C000,
     0x00000000, 0x00000000, 0xFC000000, 0xFFFFFFFF,
     0x1F07FF80, 0xA0800000, 0x00000024, 0x00000000,
-    0x00000000, 0xFFFC0000, 0x0007FFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x0007FFFC, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FFFF, 0x00000000,
@@ -838,12 +834,24 @@ u_categ_C =
     0xC0000000, 0xFFFFFC00, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000002C0, 0x6E400000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000002C0, 0x6E400000, 0x00400000, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x70000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x7C000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x01100F90, 0x78F00000, 0xFE00FF00, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x01100F90, 0x78F00000, 0xFE00FF00, 0xFFFFFFFF,
+    0x00000000, 0x01C00000, 0x00C00000, 0x00F80000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFFE00, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x80000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x0003C000, 0xFFFF0000,
+    0x00000000, 0x20000000, 0xFFFFFFFC, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -854,6 +862,18 @@ u_categ_C =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFF8000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFE000000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
     0x00000000, 0x00000180, 0x00000000, 0x07F80000,
@@ -871,13 +891,29 @@ u_categ_C =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00003000, 0x00000000,
     0x00000000, 0x0000F000, 0x00000000, 0x00000000,
-    0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFF00000, 0x80018000, 0x00010001, 0xFFFFFFFF,
+    0x0000F800, 0x00008000, 0x00000000, 0x0000FC00,
+    0xF8000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F,
+    0x0000FFF8, 0xF8000000, 0xFFFCFE00, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x0040FFFE, 0x00000000, 0xE0000000,
+    0xFFF00000, 0x00000000, 0xFFFFF820, 0xFFFE0000,
+    0x00000000, 0x80000000, 0x00000002, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xE1000000,
+    0x00000000, 0xC0000000, 0x0000FFFF, 0xFFFFFF00,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+    0x8AA20001, 0x0010D0C0, 0xFFFF001E, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFFFC0, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0xFFF00000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFF800000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFE00000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
index 653848d..c22086d 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 17104cd..3bbf97c 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index fd53e7a..3aaf6e4 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 5b67fb4..6b775de 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[7 << 4];
+    /*unsigned*/ int level3[8 << 4];
   }
 u_categ_Cf =
 {
@@ -170,6 +170,7 @@ u_categ_Cf =
        -1,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +    80,
        -1,
        -1,
        -1,
@@ -265,8 +266,7 @@ u_categ_Cf =
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +    80,
+       16 +   384 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@ u_categ_Cf =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +    96,
+       16 +   384 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
@@ -441,6 +441,10 @@ u_categ_Cf =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x0E000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x20000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x07F80000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 63242dc..6a6ee20 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index d828804..7eb02ce 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[17];
     short level2[6 << 7];
-    /*unsigned*/ int level3[51 << 4];
+    /*unsigned*/ int level3[60 << 4];
   }
 u_categ_Cn =
 {
@@ -46,6 +46,7 @@ u_categ_Cn =
        18 +   768 * sizeof (short) / sizeof (int) +    96,
        18 +   768 * sizeof (short) / sizeof (int) +   112,
        18 +   768 * sizeof (short) / sizeof (int) +   128,
+       -1,
        18 +   768 * sizeof (short) / sizeof (int) +   144,
        18 +   768 * sizeof (short) / sizeof (int) +   160,
        18 +   768 * sizeof (short) / sizeof (int) +   176,
@@ -55,13 +56,12 @@ u_categ_Cn =
        18 +   768 * sizeof (short) / sizeof (int) +   240,
        18 +   768 * sizeof (short) / sizeof (int) +   256,
        18 +   768 * sizeof (short) / sizeof (int) +   272,
-       18 +   768 * sizeof (short) / sizeof (int) +   288,
        -1,
+       18 +   768 * sizeof (short) / sizeof (int) +   288,
        18 +   768 * sizeof (short) / sizeof (int) +   304,
        18 +   768 * sizeof (short) / sizeof (int) +   320,
        18 +   768 * sizeof (short) / sizeof (int) +   336,
        18 +   768 * sizeof (short) / sizeof (int) +   352,
-       18 +   768 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -74,7 +74,7 @@ u_categ_Cn =
        -1,
        -1,
        -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   384,
+       18 +   768 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -115,13 +115,13 @@ u_categ_Cn =
        -1,
        -1,
        -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   400,
+       18 +   768 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
+       18 +   768 * sizeof (short) / sizeof (int) +   400,
        18 +   768 * sizeof (short) / sizeof (int) +   416,
        18 +   768 * sizeof (short) / sizeof (int) +   432,
        18 +   768 * sizeof (short) / sizeof (int) +   448,
-       18 +   768 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
        -1,
@@ -143,7 +143,7 @@ u_categ_Cn =
        -1,
        -1,
        -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   480,
+       18 +   768 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
        -1,
@@ -161,6 +161,7 @@ u_categ_Cn =
        -1,
        -1,
        -1,
+       18 +   768 * sizeof (short) / sizeof (int) +   480,
        18 +   768 * sizeof (short) / sizeof (int) +   496,
        18 +   768 * sizeof (short) / sizeof (int) +   512,
        18 +   768 * sizeof (short) / sizeof (int) +   528,
@@ -170,128 +171,127 @@ u_categ_Cn =
        18 +   768 * sizeof (short) / sizeof (int) +   592,
        18 +   768 * sizeof (short) / sizeof (int) +   608,
        18 +   768 * sizeof (short) / sizeof (int) +   624,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       -1,
        18 +   768 * sizeof (short) / sizeof (int) +   640,
        18 +   768 * sizeof (short) / sizeof (int) +   656,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       -1,
        18 +   768 * sizeof (short) / sizeof (int) +   672,
        18 +   768 * sizeof (short) / sizeof (int) +   688,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       -1,
+       -1,
        18 +   768 * sizeof (short) / sizeof (int) +   704,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       -1,
        18 +   768 * sizeof (short) / sizeof (int) +   720,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
        18 +   768 * sizeof (short) / sizeof (int) +   736,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   752,
+       18 +   768 * sizeof (short) / sizeof (int) +   768,
+       18 +   768 * sizeof (short) / sizeof (int) +   784,
+       18 +   768 * sizeof (short) / sizeof (int) +   800,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   816,
+       18 +   768 * sizeof (short) / sizeof (int) +   832,
+       18 +   768 * sizeof (short) / sizeof (int) +   848,
+       18 +   768 * sizeof (short) / sizeof (int) +   864,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
        -1,
        -1,
        -1,
@@ -375,307 +375,307 @@ u_categ_Cn =
        -1,
        -1,
        -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   752,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       18 +   768 * sizeof (short) / sizeof (int) +   880,
        -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   768,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   784,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
-       18 +   768 * sizeof (short) / sizeof (int) +   592,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       18 +   768 * sizeof (short) / sizeof (int) +   896,
+       18 +   768 * sizeof (short) / sizeof (int) +   912,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       -1,
+       18 +   768 * sizeof (short) / sizeof (int) +   912,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   928,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
+       18 +   768 * sizeof (short) / sizeof (int) +   576,
        -1,
        -1,
        -1,
@@ -803,7 +803,7 @@ u_categ_Cn =
        -1,
        -1,
        -1,
-       18 +   768 * sizeof (short) / sizeof (int) +   800
+       18 +   768 * sizeof (short) / sizeof (int) +   944
   },
   {
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -812,93 +812,89 @@ u_categ_Cn =
     0x0000280F, 0x00000004, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x0001FFF0, 0x01800000, 0x00000001,
+    0x00000000, 0x0001FF00, 0x01800000, 0x00000001,
     0x0001F900, 0x00000000, 0x0000FF00, 0xFFE0F800,
-    0x30000030, 0x00000001, 0x80000000, 0x00000000,
+    0x30000030, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00004000, 0x00000000, 0x00001800, 0x00000000,
     0x00000000, 0xFFFC0000, 0x00000000, 0xF8000000,
+    0x00000000, 0x8000C000, 0xB0000000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000001, 0x0C000000, 0x00E0C000, 0x07F80000,
-    0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF8000030,
+    0x00000000, 0x00000000, 0x00000000, 0x01000000,
+    0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF0000030,
     0x00067811, 0x2C920200, 0xA1FDC678, 0xFFC0003F,
     0x00044011, 0x0C120200, 0xFFFEC440, 0xFFFD0030,
-    0x00066011, 0x0C120200, 0x4F3FC660, 0xFFFC0030,
+    0x00066011, 0x0C120200, 0x4F3FC660, 0xFF000030,
     0x29C23813, 0x3C0038E7, 0xFF7EC238, 0xF800003F,
     0x00022011, 0x1C100200, 0xFC9FC220, 0x00FF0030,
     0x00022013, 0x0C100200, 0xBF9FC220, 0xFFF90030,
-    0x00022013, 0x1C000200, 0xFF7FC220, 0x01C00030,
+    0x00022013, 0x18000000, 0xFF7F8220, 0x01C00030,
     0x03800013, 0xD0040000, 0x00A07B80, 0xFFE3FFFF,
     0x00000001, 0x78000000, 0xF0000000, 0xFFFFFFFF,
     0x010FDA69, 0xC4001351, 0xCC00C0A0, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000100, 0x0001E000,
-    0x0100F000, 0x20000000, 0xFFE02000, 0xFFFFFFFF,
+    0x01000000, 0x20000000, 0xF8002000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x0000FFC0, 0xE0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x3C000000, 0x00000000, 0x0000FFC0, 0xE0000000,
-    0x00000000, 0x00000000, 0x7C000000, 0x00000000,
-    0x00000000, 0x000000F8, 0x00000000, 0xFC000000,
     0x00000000, 0x00000000, 0xC280C200, 0x00000000,
     0x0000C200, 0x80C20000, 0x008000C2, 0x00000000,
-    0x00C20000, 0x00000000, 0x78000000, 0xE0000000,
+    0x00C20000, 0x00000000, 0x18000000, 0xE0000000,
     0xFC000000, 0x00000000, 0x00000000, 0xFFE00000,
-    0x00000001, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0xFF800000,
     0xE0000000, 0x00000000, 0x00000000, 0xFFFE0000,
     0xFFE02000, 0xFF800000, 0xFFF00000, 0xFFF22000,
     0x00000000, 0x00000000, 0xC0000000, 0xFC00FC00,
     0xFC008000, 0x00000000, 0x00000000, 0xFF000000,
-    0x00000000, 0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x0000F800, 0x00000000, 0xFFC00000,
     0xE0000000, 0xF000F000, 0x0000000E, 0xFFE0C000,
-    0x00000000, 0x0000FC00, 0x3C00FC00, 0x00000000,
-    0x30000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x0000F000, 0x3800FC00, 0x00000000,
+    0x30000000, 0x00000000, 0x80000000, 0x60000000,
+    0xFC00FC00, 0xFFFFC000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x0000F000, 0xE0000000,
-    0x00000000, 0xFC003800, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFC003800, 0x00000000, 0x0FF00000,
     0x00000000, 0x07000000, 0x00001C00, 0x00000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF, 0xFFF80000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x3FFFFF80,
+    0x00000000, 0x00000000, 0x00000000, 0x0FFFFF80,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0C00000, 0x00000000, 0x5500C0C0, 0xC0000000,
     0x00000000, 0x00200000, 0x10300020, 0x80230000,
     0x00000000, 0x00000000, 0x00000000, 0x000C03E0,
-    0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
-    0x00000000, 0x00000000, 0x00070000, 0x00000000,
-    0x0000FE00, 0x00000000, 0x00000000, 0x00000000,
+    0xE0008000, 0xFC000000, 0x0000FFFF, 0xFFFE0000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000FC00, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0xFFFFFF00,
+    0x00000000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0xFFFFFF80, 0xFFFFF800, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xC0000000, 0xE0000000, 0xFFFFFFF0, 0xFFFFFFFF,
-    0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
-    0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000001, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00002800, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFC00E000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x00008000, 0x80000000, 0xC0010000,
-    0x00000000, 0x00000000, 0x00000000, 0x01FFF800,
-    0x00000000, 0x0000FFC0, 0x00000000, 0xFFFF7FC0,
+    0x00000000, 0x00008000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x01FC0000,
+    0x00000000, 0x0000FFC0, 0x00000000, 0x7FFE7FC0,
     0xFF800000, 0x80808080, 0x80808080, 0x00000000,
-    0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFC0000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
     0x00000000, 0x00000000, 0x00000001, 0x00000000,
     0x01800000, 0x00000000, 0x00000000, 0x00000000,
     0x0000001F, 0x0001C000, 0x00000000, 0x00000000,
-    0x00008000, 0xFF000000, 0x00000000, 0x0000FFF0,
-    0x80000000, 0x00000000, 0x0000FFF0, 0x00000000,
+    0x00008000, 0xF8000000, 0x00000000, 0x0000FFF0,
+    0x80000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -909,31 +905,31 @@ u_categ_Cn =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFF000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000E000, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
+    0x0000E000, 0x00000000, 0x0000FF80, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00003,
-    0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00000,
+    0xFF000000, 0x00000000, 0x00000000, 0xFF000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFE000, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
-    0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
-    0x00000000, 0x00000000, 0xFC003FE0, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x7FF00000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0xFF800000, 0x0C00C000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFC8000, 0xFFFFFC00, 0xFFFFFFFF, 0x03FFFFFF,
+    0x00000000, 0xFC00F000, 0x00000000, 0xFF000000,
+    0x00000000, 0x00000000, 0xFC003FE0, 0xF0000000,
+    0x00000000, 0x00000000, 0x7FF00000, 0xE0000000,
+    0x00000000, 0x00000000, 0x3C004000, 0xFFFFFFFF,
+    0x00000000, 0xFF800000, 0x0C00C000, 0xF0000000,
+    0x00000000, 0x00000000, 0x07FFFFF8, 0xFFFFFFFF,
+    0xFF818181, 0xFFFF8080, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0xFC00C000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xFFFFFFF0, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x0000C000, 0x00000000, 0x0000F800,
+    0x00000000, 0x0000FFF0, 0x00000780, 0xF0000000,
+    0x00000000, 0x0000C000, 0x00000000, 0x0000C000,
     0x00000000, 0x00000000, 0xFC000000, 0xFFFFFFFF,
     0x1F07FF80, 0xA0800000, 0x00000024, 0x00000000,
-    0x00000000, 0xFFFC0000, 0x0007FFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x0007FFFC, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FFFF, 0x00000000,
@@ -958,12 +954,24 @@ u_categ_Cn =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000002C0, 0x6E400000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000002C0, 0x6E400000, 0x00400000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x7C000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x70000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x01100F90, 0x78F00000, 0xFE00FF00, 0xFFFFFFFF,
+    0x01100F90, 0x78F00000, 0xFE00FF00, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x01C00000, 0x00C00000, 0x00F80000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFFE00, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x80000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x0003C000, 0xFFFF0000,
+    0x00000000, 0x00000000, 0xFFFFFFFC, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -974,6 +982,18 @@ u_categ_Cn =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFF8000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFE000000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
     0x00000000, 0x00000180, 0x00000000, 0x00000000,
@@ -991,13 +1011,29 @@ u_categ_Cn =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00003000, 0x00000000,
     0x00000000, 0x0000F000, 0x00000000, 0x00000000,
-    0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFF00000, 0x80018000, 0x00010001, 0xFFFFFFFF,
+    0x0000F800, 0x00008000, 0x00000000, 0x0000FC00,
+    0xF8000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F,
+    0x0000FFF8, 0xF8000000, 0xFFFCFE00, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x0040FFFE, 0x00000000, 0xE0000000,
+    0xFFF00000, 0x00000000, 0xFFFFF820, 0xFFFE0000,
+    0x00000000, 0x80000000, 0x00000002, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xE1000000,
+    0x00000000, 0xC0000000, 0x0000FFFF, 0xFFFFFF00,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+    0x8AA20001, 0x0010D0C0, 0xFFFF001E, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFFFC0, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0xFFF00000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFF800000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFE00000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
index 3452a17..b1ea8b6 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index a5b8ce9..e7db3ea 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index cd94733..c176d39 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 99b37d1..6ee5355 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 4b7f16d..1a361af 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 558b594..8818601 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[42 << 4];
+    /*unsigned*/ int level3[48 << 4];
   }
 u_categ_L =
 {
@@ -156,9 +156,9 @@ u_categ_L =
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   560,
         4 +   384 * sizeof (short) / sizeof (int) +   576,
+        4 +   384 * sizeof (short) / sizeof (int) +   592,
        -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   608,
        -1,
        -1,
        -1,
@@ -167,17 +167,16 @@ u_categ_L =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   592,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -203,6 +202,8 @@ u_categ_L =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -237,6 +238,7 @@ u_categ_L =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -254,10 +256,8 @@ u_categ_L =
        -1,
        -1,
        -1,
-       -1,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   608,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
+        4 +   384 * sizeof (short) / sizeof (int) +   688,
+        4 +   384 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
@@ -361,16 +361,16 @@ u_categ_L =
         4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   640,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   720,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   736,
+        4 +   384 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -403,7 +403,7 @@ u_categ_L =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   656,
+        4 +   384 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1
   },
@@ -418,32 +418,32 @@ u_categ_L =
     0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC000,
+    0x00000000, 0xFFFFFFFF, 0x000007FF, 0xFFFEC000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C060,
     0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x043007FF,
+    0x043FFFFF, 0x00000110, 0x01FFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8060003,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xFEFE0003,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
     0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
     0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
-    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
-    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
+    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00060003,
+    0xFFFDDFE0, 0x27FFFFFF, 0x00004000, 0xFC000003,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x000DFFFF, 0x0000007F, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x3000005F, 0x00000000,
     0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
-    0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+    0x00001F00, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
     0x00004003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
     0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
@@ -452,20 +452,20 @@ u_categ_L =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF9FFF,
     0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x000007FF,
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF05FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
-    0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
-    0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00000FFF, 0x000000FE, 0x00000000,
+    0x007FFFFF, 0xFFFFFFFF, 0x001FFFFF, 0x00000000,
+    0x00000000, 0x00000080, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
-    0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x0000C001, 0xFFFFFFFF, 0x0000003F,
     0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x3FFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0003DE00,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -473,11 +473,11 @@ u_categ_L =
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
-    0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFF0000, 0x00000000, 0x00000000, 0x00000000,
     0x3E2FFC84, 0xF3FFBD50, 0x000043E0, 0x00000000,
     0x00000018, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000781F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
     0x00000000, 0x00008000, 0x00000000, 0x00000000,
@@ -487,7 +487,7 @@ u_categ_L =
     0x00000060, 0x183E0000, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+    0x00007FFF, 0x07FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -499,32 +499,32 @@ u_categ_L =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00001FFF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
-    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFF,
+    0x00FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F,
     0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0x000379FF, 0x000003FF, 0x00000000, 0xFC000000,
     0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
-    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
-    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x08FC0000,
+    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x1FFFFFFF,
+    0xFFFFFFF0, 0x0007FFFF, 0x00008000, 0x00000000,
+    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x047FFFFF,
+    0xFFFFFFFF, 0x3E62FFFF, 0x38000005, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000007,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xA0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
@@ -548,18 +548,38 @@ u_categ_L =
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0x003FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x1FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x003FFFFF, 0x003FFFFF, 0x0007FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x00FFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x0000FFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
     0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
     0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
@@ -570,8 +590,12 @@ u_categ_L =
     0xFFFFFDFF, 0xFFFFFDFF, 0x00000FF7, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
diff --git a/lib/unictype/categ_LC.c b/lib/unictype/categ_LC.c
new file mode 100644 (file)
index 0000000..3c4c01b
--- /dev/null
@@ -0,0 +1,27 @@
+/* Categories of Unicode characters.
+   Copyright (C) 2002, 2006-2007, 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+/* Define u_categ_LC table.  */
+#include "categ_LC.h"
+
+const uc_general_category_t UC_CATEGORY_LC =
+  { UC_CATEGORY_MASK_LC, 0, { &u_categ_LC } };
diff --git a/lib/unictype/categ_LC.h b/lib/unictype/categ_LC.h
new file mode 100644 (file)
index 0000000..454bf75
--- /dev/null
@@ -0,0 +1,339 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Categories of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+  {
+    int header[1];
+    int level1[2];
+    short level2[2 << 7];
+    /*unsigned*/ int level3[14 << 4];
+  }
+u_categ_LC =
+{
+  { 2 },
+  {
+        3 * sizeof (int) / sizeof (short) +     0,
+        3 * sizeof (int) / sizeof (short) +   128
+  },
+  {
+        3 +   256 * sizeof (short) / sizeof (int) +     0,
+        3 +   256 * sizeof (short) / sizeof (int) +    16,
+        3 +   256 * sizeof (short) / sizeof (int) +    32,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    48,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    64,
+        3 +   256 * sizeof (short) / sizeof (int) +    80,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1
+  },
+  {
+    0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
+    0x00000000, 0x04200400, 0xFF7FFFFF, 0xFF7FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xF7FFFFFF, 0xFFFFFFF0, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFEFFFFF, 0x0000FFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x38CF0000,
+    0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFE00FF, 0x007FFFFF, 0xFFFFFFFE,
+    0x000000FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00000FFF, 0x00000000, 0xFEFFFFFC,
+    0x07FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+    0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x3E2FFC84, 0xF21FBD50, 0x000043E0, 0x00000000,
+    0x00000018, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xDFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000781F,
+    0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x00003FFF,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFEFFFF,
+    0x000378FF, 0x000003FF, 0x00000000, 0x04000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x07FFFFFE, 0x07FFFFFE, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+    0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+    0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+    0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+    0xFFFFFDFF, 0xFFFFFDFF, 0x00000FF7, 0x00000000
+  }
+};
index e7e752e..a2ba55d 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index dd8194b..3cac1f6 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -289,7 +289,7 @@ u_categ_Ll =
     0x00010000, 0xFFFFF000, 0xAAE37FFF, 0x192FAAAA,
     0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xAAAAAAAA,
     0xAAAAA802, 0xAAAAAAAA, 0xAAAAD554, 0xAAAAAAAA,
-    0xAAAAAAAA, 0x0000000A, 0x00000000, 0xFFFFFFFE,
+    0xAAAAAAAA, 0x000000AA, 0x00000000, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -299,18 +299,18 @@ u_categ_Ll =
     0xBFEAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
     0x003F00FF, 0x00FF00FF, 0x00FF003F, 0x3FFF00FF,
     0x00FF00FF, 0x40DF00FF, 0x00CF00DC, 0x00DC00FF,
-    0x00000000, 0x00000000, 0x00000000, 0x80020000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0008C400, 0x32108000, 0x000043C0, 0x00000000,
     0x00000010, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x1FDA1562,
-    0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000001A,
+    0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000501A,
     0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AA8,
+    0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AAA,
     0x00AAAAAA, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xAAABAAA8, 0xAAAAAAAA, 0x95FEAAAA,
-    0x000010AA, 0x00000000, 0x00000000, 0x00000000,
+    0x000250AA, 0x000002AA, 0x00000000, 0x04000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
index fc01602..820d5ae 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index a781af6..47f73ec 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[16 << 4];
+    /*unsigned*/ int level3[20 << 4];
   }
 u_categ_Lm =
 {
@@ -31,18 +31,18 @@ u_categ_Lm =
        -1,
         2 +   128 * sizeof (short) / sizeof (int) +    96,
         2 +   128 * sizeof (short) / sizeof (int) +   112,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +   128,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +   144,
        -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   160,
+       -1,
        -1,
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   160,
         2 +   128 * sizeof (short) / sizeof (int) +   176,
         2 +   128 * sizeof (short) / sizeof (int) +   192,
+        2 +   128 * sizeof (short) / sizeof (int) +   208,
        -1,
        -1,
        -1,
@@ -98,11 +98,12 @@ u_categ_Lm =
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   208,
-       -1,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +   224,
        -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   240,
+        2 +   128 * sizeof (short) / sizeof (int) +   256,
+        2 +   128 * sizeof (short) / sizeof (int) +   272,
+        2 +   128 * sizeof (short) / sizeof (int) +   288,
        -1,
        -1,
        -1,
@@ -144,8 +145,7 @@ u_categ_Lm =
        -1,
        -1,
        -1,
-       -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   240
+        2 +   128 * sizeof (short) / sizeof (int) +   304
   },
   {
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -160,7 +160,7 @@ u_categ_Lm =
     0x00000000, 0x00000000, 0x00000000, 0x00000060,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x04300000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x04000000, 0x00000110, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00020000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -180,12 +180,16 @@ u_categ_Lm =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000080, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x3F000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFFF000, 0xFFFFFFFF, 0x01000003,
     0xF8000000, 0xFFFFFFFF, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x80020000,
+    0x1FFF0000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x20000000,
@@ -204,12 +208,24 @@ u_categ_Lm =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x3F000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00001000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFF800000, 0x00000000, 0x00000000, 0x00010000,
     0x00000100, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00008000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00010000,
+    0x00000000, 0x00000000, 0x20000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00010000,
     0xC0000000, 0x00000000, 0x00000000, 0x00000000
   }
index 57ae611..39a9249 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 75bec14..966c33f 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[39 << 4];
+    /*unsigned*/ int level3[45 << 4];
   }
 u_categ_Lo =
 {
@@ -156,9 +156,9 @@ u_categ_Lo =
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   544,
         4 +   384 * sizeof (short) / sizeof (int) +   560,
+        4 +   384 * sizeof (short) / sizeof (int) +   576,
        -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -167,19 +167,16 @@ u_categ_Lo =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   288,
-        4 +   384 * sizeof (short) / sizeof (int) +   576,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   608,
        -1,
        -1,
        -1,
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
@@ -205,6 +202,8 @@ u_categ_Lo =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -239,6 +238,7 @@ u_categ_Lo =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -361,16 +361,16 @@ u_categ_Lo =
         4 +   384 * sizeof (short) / sizeof (int) +   288,
         4 +   384 * sizeof (short) / sizeof (int) +   288,
         4 +   384 * sizeof (short) / sizeof (int) +   288,
-        4 +   384 * sizeof (short) / sizeof (int) +   592,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   672,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   288,
+        4 +   384 * sizeof (short) / sizeof (int) +   688,
+        4 +   384 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
@@ -403,7 +403,7 @@ u_categ_Lo =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   288,
-        4 +   384 * sizeof (short) / sizeof (int) +   608,
+        4 +   384 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1
   },
@@ -420,30 +420,30 @@ u_categ_Lo =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0xFFFFFFFE, 0x000007FE, 0xFFFEC000,
+    0x00000000, 0xFFFFFFFF, 0x000007FE, 0xFFFEC000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C000,
     0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x000007FF,
+    0x003FFFFF, 0x00000000, 0x01FFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8040003,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xFEFC0003,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
     0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
     0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
-    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
-    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
+    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00060003,
+    0xFFFDDFE0, 0x27FFFFFF, 0x00004000, 0xFC000003,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x000DFFFF, 0x0000003F, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x3000001F, 0x00000000,
     0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
-    0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+    0x00001F00, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
     0x00004003, 0x00000000, 0xFFFF0000, 0x07FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
     0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
@@ -452,20 +452,20 @@ u_categ_Lo =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF9FFF,
     0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x000007FF,
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10000000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0xFFFFFFF7, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF05FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
-    0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
-    0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00000FFF, 0x000000FE, 0x00000000,
+    0x007FFFFF, 0xFFFFFFFF, 0x001FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
-    0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x0000C001, 0xFFFFFFFF, 0x0000003F,
     0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x00FFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0003DE00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -479,7 +479,7 @@ u_categ_Lo =
     0x00000040, 0x10000000, 0xFFFFFFFE, 0xFFFFFFFF,
     0x807FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x87FFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+    0x00007FFF, 0x07FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -491,36 +491,36 @@ u_categ_Lo =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFDFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00001FFF, 0x00000000, 0xFFFF0000, 0x00FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFF0FFF, 0x00000C00, 0x00000000, 0x00004000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xF8000000,
     0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
-    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
-    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x08FC0000,
+    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x1FFFFFFF,
+    0xFFFFFFF0, 0x0007FFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x047EFFFF,
+    0xFFFFFFFF, 0x3E62FFFF, 0x18000005, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000007,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xA0000000, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
@@ -544,22 +544,46 @@ u_categ_Lo =
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0x003FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x1FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x003FFFFF, 0x003FFFFF, 0x0007FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x00FFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x0000FFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 9de263d..638c584 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 227ff2a..728cfd8 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 6000421..a54e9f5 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 9674e16..cfee1c0 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -289,7 +289,7 @@ u_categ_Lu =
     0xFFFED740, 0x00000FFB, 0x551C8000, 0xE6905555,
     0xFFFFFFFF, 0x0000FFFF, 0x00000000, 0x55555555,
     0x55555401, 0x55555555, 0x55552AAB, 0x55555555,
-    0x55555555, 0xFFFE0005, 0x007FFFFF, 0x00000000,
+    0x55555555, 0xFFFE0055, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
@@ -303,14 +303,14 @@ u_categ_Lu =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x3E273884, 0xC00F3D50, 0x00000020, 0x00000000,
     0x00000008, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x0024EA9D,
-    0x55555555, 0x55555555, 0x55555555, 0x00000005,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0xC025EA9D,
+    0x55555555, 0x55555555, 0x55555555, 0x00002805,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x55555555, 0x00001554,
+    0x00000000, 0x00000000, 0x55555555, 0x00001555,
     0x00555555, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x55545554, 0x55555555, 0x6A005555,
-    0x00000855, 0x00000000, 0x00000000, 0x00000000,
+    0x00012855, 0x00000155, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x07FFFFFE, 0x00000000, 0x00000000,
index 8e6ff70..61655a0 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 6e0b377..c8059ac 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[26 << 4];
+    /*unsigned*/ int level3[27 << 4];
   }
 u_categ_M =
 {
@@ -170,6 +170,7 @@ u_categ_M =
        16 +   384 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -265,9 +266,8 @@ u_categ_M =
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   368,
        16 +   384 * sizeof (short) / sizeof (int) +   384,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@ u_categ_M =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   400,
+       16 +   384 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -428,13 +428,13 @@ u_categ_M =
     0x000003F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
-    0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
-    0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
+    0x07FF0000, 0x00000000, 0xFFFFF800, 0x00010000,
+    0x00000000, 0x00000000, 0x9FC00000, 0x00003D9F,
     0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
+    0xFBC00000, 0x00003EEF, 0x0E000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000000E, 0xD0000000, 0x001E3FFF, 0x0000000C,
+    0x0000000F, 0xDC000000, 0x00FEFFFF, 0x0000000C,
     0x0000000E, 0xD0000000, 0x0080399F, 0x0000000C,
     0x0000000E, 0xD0000000, 0x00023987, 0x00230000,
     0x0000000E, 0xD0000000, 0x00003BBF, 0x0000000C,
@@ -447,14 +447,14 @@ u_categ_M =
     0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0x03000000, 0xC2A00000, 0x00000000, 0xFFFE0000,
-    0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+    0xFEFFE0DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
     0x00000000, 0x7FFFF800, 0xC3C00000, 0x001E3F9D,
-    0x0000BFFC, 0x00000000, 0x00000000, 0x00000000,
+    0x3C00BFFC, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0xE0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -464,38 +464,38 @@ u_categ_M =
     0x00000000, 0x00000200, 0x00000000, 0x00000000,
     0x00000000, 0x0FFF0FFF, 0x00000000, 0x00000000,
     0x00000000, 0xFFFF0000, 0x00000301, 0x00000000,
-    0x0F800000, 0x00000000, 0x00000000, 0x00000000,
+    0x0F800000, 0x00000000, 0x7FE00000, 0x9FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000001F, 0xFFF00000, 0x0000001F, 0x000FF800,
-    0x00000007, 0x000007FE, 0x00000000, 0x00000000,
+    0x00000007, 0x000007FE, 0x00000000, 0x000FFFC0,
     0x00000000, 0x00FFFFF0, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFF70000, 0x000421FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xF000007F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00038000,
+    0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
     0x06000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x30078000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00030000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000844, 0x000000F8, 0x00000000, 0x00000000,
-    0x00000003, 0xFFF00000, 0x0000001F, 0x00000000,
+    0x00000003, 0xFFF00000, 0x0000001F, 0x0003FFFF,
     0x00000000, 0x00003FC0, 0x000FFF80, 0x00000000,
+    0x0000000F, 0xFFF80000, 0x00000001, 0x00000000,
+    0x00000000, 0x007FFE00, 0x00003008, 0x08000000,
+    0x00000000, 0xC19D0000, 0x00000002, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x007FFE00, 0x00003008, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x000037F8,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
@@ -512,6 +512,10 @@ u_categ_M =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000007, 0xFF000000, 0x0000007F, 0x00000000,
+    0x00000007, 0x07FF0000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xF807E3E0,
index f4cca6b..61ffb9d 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index dfddaa7..bc1d563 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[12 << 4];
+    /*unsigned*/ int level3[13 << 4];
   }
 u_categ_Mc =
 {
@@ -157,6 +157,7 @@ u_categ_Mc =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
        -1,
        -1,
        -1,
@@ -252,8 +253,7 @@ u_categ_Mc =
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   176,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
        -1,
        -1,
        -1,
@@ -281,7 +281,7 @@ u_categ_Mc =
   {
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000008, 0xC0000000, 0x00001E01, 0x00000000,
+    0x00000008, 0xC8000000, 0x0000DE01, 0x00000000,
     0x0000000C, 0xC0000000, 0x00801981, 0x00000000,
     0x00000008, 0xC0000000, 0x00000001, 0x00000000,
     0x00000008, 0xC0000000, 0x00001A01, 0x00000000,
@@ -296,7 +296,7 @@ u_categ_Mc =
     0x00000000, 0xC0000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x19021800, 0x00C00000, 0x00003F9C,
-    0x00009F98, 0x00000000, 0x00000000, 0x00000000,
+    0x1C009F98, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -307,20 +307,24 @@ u_categ_Mc =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x01FB0E78, 0x00000000, 0x00000000,
     0x00000000, 0xFFFF0000, 0x00000301, 0x00000000,
-    0x0E000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0E000000, 0x00000000, 0x00A00000, 0x0007E01A,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000010, 0xE8200000, 0x0000001B, 0x00000000,
-    0x00000004, 0x000004C2, 0x00000000, 0x00000000,
+    0x00000004, 0x000004C2, 0x00000000, 0x000C5C80,
     0x00000000, 0x00300FF0, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00040002,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000098, 0x00000000, 0x00000000,
     0x00000003, 0xFFF00000, 0x0000000F, 0x00000000,
     0x00000000, 0x00000000, 0x000C0000, 0x00000000,
+    0x00000008, 0xEC300000, 0x00000001, 0x00000000,
+    0x00000000, 0x00198000, 0x00002000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00198000, 0x00002000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x000016D8,
+    0x00000005, 0x00000000, 0x00000000, 0x00000000,
+    0x00000004, 0x01870000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 62b1ad9..a439ec5 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 7bf325a..3951c8b 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[4 << 4];
+    /*unsigned*/ int level3[3 << 4];
   }
 u_categ_Me =
 {
@@ -21,7 +21,6 @@ u_categ_Me =
        -1,
        -1,
         2 +   128 * sizeof (short) / sizeof (int) +     0,
-        2 +   128 * sizeof (short) / sizeof (int) +    16,
        -1,
        -1,
        -1,
@@ -34,7 +33,8 @@ u_categ_Me =
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    32,
+       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +    16,
        -1,
        -1,
        -1,
@@ -101,7 +101,7 @@ u_categ_Me =
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    48,
+        2 +   128 * sizeof (short) / sizeof (int) +    32,
        -1,
        -1,
        -1,
@@ -153,10 +153,6 @@ u_categ_Me =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x40000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xE0000000, 0x0000001D,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index edcf3c5..7356c2b 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 576279a..c1bb94c 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[26 << 4];
+    /*unsigned*/ int level3[27 << 4];
   }
 u_categ_Mn =
 {
@@ -170,6 +170,7 @@ u_categ_Mn =
        16 +   384 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -265,9 +266,8 @@ u_categ_Mn =
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   368,
        16 +   384 * sizeof (short) / sizeof (int) +   384,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@ u_categ_Mn =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   400,
+       16 +   384 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -428,13 +428,13 @@ u_categ_Mn =
     0x000000F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
-    0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
+    0x07FF0000, 0x00000000, 0xFFFFF800, 0x00010000,
     0x00000000, 0x00000000, 0x9FC00000, 0x00003D9F,
     0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
+    0xFBC00000, 0x00003EEF, 0x0E000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000006, 0x10000000, 0x001E21FE, 0x0000000C,
+    0x00000007, 0x14000000, 0x00FE21FE, 0x0000000C,
     0x00000002, 0x10000000, 0x0000201E, 0x0000000C,
     0x00000006, 0x10000000, 0x00023986, 0x00230000,
     0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
@@ -447,14 +447,14 @@ u_categ_Mn =
     0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
-    0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+    0xFEFFE0DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
     0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
-    0x00002064, 0x00000000, 0x00000000, 0x00000000,
+    0x20002064, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0xE0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -464,38 +464,38 @@ u_categ_Mn =
     0x00000000, 0x00000200, 0x00000000, 0x00000000,
     0x00000000, 0x0E040187, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x01800000, 0x00000000, 0x00000000, 0x00000000,
+    0x01800000, 0x00000000, 0x7F400000, 0x9FF81FE5,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
-    0x00000003, 0x0000033C, 0x00000000, 0x00000000,
+    0x00000003, 0x0000033C, 0x00000000, 0x0003A340,
     0x00000000, 0x00CFF000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFF70000, 0x000021FD,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xF000007F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x1FFF0000, 0x0001FFE2,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00038000,
+    0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
     0x06000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x30008000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00030000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000844, 0x00000060, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000010, 0x00000000,
+    0x00000000, 0x00000000, 0x00000010, 0x0003FFFF,
     0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000007, 0x13C80000, 0x00000000, 0x00000000,
     0x00000000, 0x00667E00, 0x00001008, 0x00000000,
+    0x00000000, 0xC19D0000, 0x00000002, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00002120,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
@@ -512,6 +512,10 @@ u_categ_Mn =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000002, 0xFF000000, 0x0000007F, 0x00000000,
+    0x00000003, 0x06780000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xF8000380,
index e326ff2..a510c88 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 9eb241d..29b9e25 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[30 << 4];
+    /*unsigned*/ int level3[33 << 4];
   }
 u_categ_N =
 {
@@ -156,6 +156,8 @@ u_categ_N =
         3 +   256 * sizeof (short) / sizeof (int) +   400,
         3 +   256 * sizeof (short) / sizeof (int) +   416,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   432,
+        3 +   256 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
        -1,
@@ -165,9 +167,9 @@ u_categ_N =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   432,
        -1,
        -1,
        -1,
@@ -252,12 +254,9 @@ u_categ_N =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   480,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   448,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   464,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   496,
        -1,
        -1,
        -1,
@@ -270,6 +269,7 @@ u_categ_N =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   512,
        -1,
        -1,
        -1,
@@ -293,7 +293,7 @@ u_categ_N =
     0x00000000, 0x00000000, 0x00000000, 0x03F0FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
-    0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+    0x00000000, 0x00000000, 0x00000000, 0x00FCFFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0007FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x7F00FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
@@ -318,9 +318,9 @@ u_categ_N =
     0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FFC0, 0x00000000,
-    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x07FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x03FF03FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
@@ -329,8 +329,8 @@ u_categ_N =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03F10000,
     0x000003FF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFF80000, 0xFFFFFFFF,
-    0x000001E7, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,
+    0x000003E7, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x0FFFFFFF, 0x00000000, 0x00000000, 0xFFFFFC00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -352,17 +352,17 @@ u_categ_N =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x003F0000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x000003FF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
@@ -379,11 +379,19 @@ u_categ_N =
     0x00000000, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFF000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0FC00000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x03C00000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x000000FF, 0x60000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x000000FF, 0x00000000,
+    0x00000000, 0x00000000, 0xFF000000, 0xFF000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x7FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFC0000, 0x0000FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -398,6 +406,10 @@ u_categ_N =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF
+    0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x000007FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
index c6b0258..2713ed1 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 986cec7..765bfc9 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[17 << 4];
+    /*unsigned*/ int level3[18 << 4];
   }
 u_categ_Nd =
 {
@@ -157,6 +157,7 @@ u_categ_Nd =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
        -1,
        -1,
@@ -255,8 +256,7 @@ u_categ_Nd =
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
+        3 +   256 * sizeof (short) / sizeof (int) +   272,
        -1,
        -1,
        -1,
@@ -316,7 +316,7 @@ u_categ_Nd =
     0x00000000, 0x00000000, 0x0000FFC0, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x03FF03FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
@@ -330,11 +330,11 @@ u_categ_Nd =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x000003FF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
@@ -343,6 +343,10 @@ u_categ_Nd =
     0x00000000, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 50a39bb..605130f 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 9b4ce70..5fe8aae 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[6 << 4];
+    /*unsigned*/ int level3[7 << 4];
   }
 u_categ_Nl =
 {
@@ -104,6 +104,7 @@ u_categ_Nl =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    48,
        -1,
        -1,
        -1,
@@ -148,9 +149,8 @@ u_categ_Nl =
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +    48,
         3 +   256 * sizeof (short) / sizeof (int) +    64,
+        3 +   256 * sizeof (short) / sizeof (int) +    80,
        -1,
        -1,
        -1,
@@ -167,7 +167,7 @@ u_categ_Nl =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +    80,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
        -1,
@@ -292,6 +292,10 @@ u_categ_Nl =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFFFFFFF, 0x001FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index f36899d..b050dfc 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index b6ae929..d25614b 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[18 << 4];
+    /*unsigned*/ int level3[23 << 4];
   }
 u_categ_No =
 {
@@ -33,23 +33,20 @@ u_categ_No =
         3 +   256 * sizeof (short) / sizeof (int) +    80,
        -1,
         3 +   256 * sizeof (short) / sizeof (int) +    96,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   112,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   128,
-        3 +   256 * sizeof (short) / sizeof (int) +   144,
-       -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
         3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   176,
-        3 +   256 * sizeof (short) / sizeof (int) +   192,
-       -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
        -1,
        -1,
        -1,
@@ -108,6 +105,7 @@ u_categ_No =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   224,
        -1,
        -1,
        -1,
@@ -149,15 +147,17 @@ u_categ_No =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   208,
-        3 +   256 * sizeof (short) / sizeof (int) +   224,
        -1,
        -1,
         3 +   256 * sizeof (short) / sizeof (int) +   240,
         3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   272,
+        3 +   256 * sizeof (short) / sizeof (int) +   288,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   304,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
        -1,
        -1,
        -1,
@@ -254,8 +254,7 @@ u_categ_No =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   272,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   336,
        -1,
        -1,
        -1,
@@ -270,6 +269,7 @@ u_categ_No =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
        -1,
@@ -289,7 +289,7 @@ u_categ_No =
     0x00000000, 0x00000000, 0x00000000, 0x03F00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00FC0000,
     0x00000000, 0x00000000, 0x00000000, 0x00070000,
     0x00000000, 0x00000000, 0x00000000, 0x7F000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -307,10 +307,14 @@ u_categ_No =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x04000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03F10000,
     0x000003FF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFF80000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0x00000000,
+    0x00000200, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x0FFFFFFF, 0x00000000, 0x00000000, 0xFFFFFC00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -331,6 +335,10 @@ u_categ_No =
     0x000003FF, 0xFFFE0000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x003F0000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFF80, 0x000FFFFF, 0x00000000, 0x01E00000,
@@ -339,17 +347,29 @@ u_categ_No =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x0000000F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFF000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0FC00000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x000000FF, 0x60000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFF000000, 0xFF000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x7FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x03C00000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x000000FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFC0000, 0x0000003F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x0003FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x000007FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
index 14f94ad..ef47ca2 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 474eda9..1b9ad86 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[30 << 4];
+    /*unsigned*/ int level3[33 << 4];
   }
 u_categ_P =
 {
@@ -31,21 +31,21 @@ u_categ_P =
         3 +   256 * sizeof (short) / sizeof (int) +    96,
         3 +   256 * sizeof (short) / sizeof (int) +   112,
         3 +   256 * sizeof (short) / sizeof (int) +   128,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   144,
         3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
         3 +   256 * sizeof (short) / sizeof (int) +   192,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   208,
-        3 +   256 * sizeof (short) / sizeof (int) +   224,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   224,
         3 +   256 * sizeof (short) / sizeof (int) +   240,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
         3 +   256 * sizeof (short) / sizeof (int) +   272,
+       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   288,
         3 +   256 * sizeof (short) / sizeof (int) +   304,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
        -1,
        -1,
        -1,
@@ -103,10 +103,10 @@ u_categ_P =
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   320,
         3 +   256 * sizeof (short) / sizeof (int) +   336,
         3 +   256 * sizeof (short) / sizeof (int) +   352,
+        3 +   256 * sizeof (short) / sizeof (int) +   368,
+        3 +   256 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -147,18 +147,17 @@ u_categ_P =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   368,
-        3 +   256 * sizeof (short) / sizeof (int) +   384,
         3 +   256 * sizeof (short) / sizeof (int) +   400,
         3 +   256 * sizeof (short) / sizeof (int) +   416,
-       -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   432,
         3 +   256 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   464,
+        3 +   256 * sizeof (short) / sizeof (int) +   480,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   496,
        -1,
        -1,
        -1,
@@ -167,7 +166,8 @@ u_categ_P =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   464,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   512,
        -1,
        -1,
        -1,
@@ -295,7 +295,7 @@ u_categ_P =
     0x00000000, 0x00000000, 0x00100000, 0x00000000,
     0x00003FFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03800000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x7FFF0000, 0x40000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00010030,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -306,7 +306,7 @@ u_categ_P =
     0x00000000, 0x00000000, 0x0C008000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0007FFF0, 0x3C000000, 0x00000000, 0x00000000,
-    0x00000020, 0x00000000, 0x001F0000, 0x00000000,
+    0x00000020, 0x00000000, 0x061F0000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FC00, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -315,6 +315,10 @@ u_categ_P =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x000001FE,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000001, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00006000,
     0x18000000, 0x00000000, 0x00000000, 0x00003800,
     0x00000000, 0x00600000, 0x00000000, 0x00000000,
@@ -322,13 +326,13 @@ u_categ_P =
     0x000007FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000030, 0x00000000,
-    0x00000000, 0x00000000, 0xC0000000, 0x00000000,
-    0xC0000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00003F7F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFC000000, 0x00000001,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xF0000000,
     0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00080000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFF0000, 0xFFFF00FF, 0x7FFBFFEF, 0x60000000,
@@ -349,9 +353,9 @@ u_categ_P =
     0x01FFFFF8, 0x00000000, 0x0F000000, 0x30000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xDE000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00010000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x00017FFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00037FFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -359,18 +363,22 @@ u_categ_P =
     0x00000000, 0x00000001, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000E000, 0x00000000, 0x00000000, 0x40080000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xC0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000E000, 0x00000000, 0x00000000, 0x40080000,
+    0x00000000, 0x00000000, 0x00000000, 0x00FC0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00F00000,
-    0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+    0x00000000, 0x00000000, 0x0000C000, 0x07000000,
     0x00000000, 0x0000C000, 0x80000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xC0003FFE, 0x00000000,
     0x00000000, 0x00000000, 0xF0000000, 0x00000000,
+    0x00000000, 0x00000000, 0xC0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000800,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xC0000000, 0x00000000, 0x00000000,
@@ -387,12 +395,16 @@ u_categ_P =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x80000000, 0x00000000, 0x00010000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00800000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x80000000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x01FF0000, 0x00000000,
+    0x00000000, 0x00000000, 0x01FF0000, 0x80000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFE000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00003F80, 0x00000000,
+    0x00000000, 0xD8000000, 0x00000003, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x000F0000,
index a0c9ff8..1841c77 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e2e1136..71cefb1 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 8e66633..4e75f5c 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 9183094..1117137 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[7 << 4];
+    /*unsigned*/ int level3[8 << 4];
   }
 u_categ_Pd =
 {
@@ -28,21 +28,21 @@ u_categ_Pd =
        -1,
        -1,
        -1,
-       -1,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +    32,
        -1,
+        2 +   128 * sizeof (short) / sizeof (int) +    48,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    48,
+       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +    64,
        -1,
        -1,
        -1,
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    64,
         2 +   128 * sizeof (short) / sizeof (int) +    80,
+        2 +   128 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
        -1,
@@ -145,7 +145,7 @@ u_categ_Pd =
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    96
+        2 +   128 * sizeof (short) / sizeof (int) +   112
   },
   {
     0x00000000, 0x00002000, 0x00000000, 0x00000000,
@@ -156,6 +156,10 @@ u_categ_Pd =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000400, 0x40000000, 0x00000000, 0x00000000,
+    0x00000001, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000040, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index f911f38..1177446 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index a85dcae..5ac2941 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index c49b52b..84b23f1 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 74aa60a..6cdb192 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index bf55500..b76a23c 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 7b8caf1..9edd086 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 71cc4b0..bc575de 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 37d7fb0..a27eeee 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[26 << 4];
+    /*unsigned*/ int level3[28 << 4];
   }
 u_categ_Po =
 {
@@ -103,10 +103,10 @@ u_categ_Po =
        -1,
        -1,
        -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   272,
         3 +   256 * sizeof (short) / sizeof (int) +   288,
         3 +   256 * sizeof (short) / sizeof (int) +   304,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
        -1,
        -1,
        -1,
@@ -148,15 +148,16 @@ u_categ_Po =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   320,
         3 +   256 * sizeof (short) / sizeof (int) +   336,
         3 +   256 * sizeof (short) / sizeof (int) +   352,
+        3 +   256 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   368,
         3 +   256 * sizeof (short) / sizeof (int) +   384,
+        3 +   256 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -166,8 +167,7 @@ u_categ_Po =
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   400,
+        3 +   256 * sizeof (short) / sizeof (int) +   432,
        -1,
        -1,
        -1,
@@ -295,7 +295,7 @@ u_categ_Po =
     0x00000000, 0x00000000, 0x00100000, 0x00000000,
     0x00003FFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03800000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x7FFF0000, 0x40000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00010030,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -306,7 +306,7 @@ u_categ_Po =
     0x00000000, 0x00000000, 0x0C008000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0007FFF0, 0x00000000, 0x00000000, 0x00000000,
-    0x00000020, 0x00000000, 0x001F0000, 0x00000000,
+    0x00000020, 0x00000000, 0x061F0000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FC00, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -322,13 +322,13 @@ u_categ_Po =
     0x000007BF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000030, 0x00000000,
-    0x00000000, 0x00000000, 0xC0000000, 0x00000000,
-    0xC0000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00003F7F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFC000000, 0x00000001,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xF0000000,
     0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00080000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00C00000, 0x79FF00FF, 0x7FEBFF8E, 0x00000000,
@@ -337,9 +337,9 @@ u_categ_Po =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xDE000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00010000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xCB7FC9C3, 0x00017C00, 0x00000000, 0x00000000,
+    0xCB7FC9C3, 0x00037C00, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -347,18 +347,22 @@ u_categ_Po =
     0x00000000, 0x00000000, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000E000, 0x00000000, 0x00000000, 0x40080000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xC0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000E000, 0x00000000, 0x00000000, 0x40080000,
+    0x00000000, 0x00000000, 0x00000000, 0x00FC0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00F00000,
-    0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+    0x00000000, 0x00000000, 0x0000C000, 0x07000000,
     0x00000000, 0x0000C000, 0x80000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xC0003FFE, 0x00000000,
     0x00000000, 0x00000000, 0xF0000000, 0x00000000,
+    0x00000000, 0x00000000, 0xC0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000800,
     0x027F0000, 0x00010000, 0x80F71E60, 0x00000D03,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x8C00D4EE, 0x10000001, 0x00000000, 0x00000032,
@@ -371,12 +375,16 @@ u_categ_Po =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x80000000, 0x00000000, 0x00010000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00800000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x80000000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x01FF0000, 0x00000000,
+    0x00000000, 0x00000000, 0x01FF0000, 0x80000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFE000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00003F80, 0x00000000,
+    0x00000000, 0xD8000000, 0x00000003, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x000F0000,
index ce49d39..fbd4310 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 25d10cf..124cf13 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 1661bb2..ab4420e 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e363838..6b87f2a 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[36 << 4];
+    /*unsigned*/ int level3[40 << 4];
   }
 u_categ_S =
 {
@@ -106,6 +106,7 @@ u_categ_S =
         3 +   256 * sizeof (short) / sizeof (int) +   400,
         3 +   256 * sizeof (short) / sizeof (int) +   416,
         3 +   256 * sizeof (short) / sizeof (int) +   432,
+        3 +   256 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
        -1,
@@ -145,11 +146,10 @@ u_categ_S =
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   448,
         3 +   256 * sizeof (short) / sizeof (int) +   464,
         3 +   256 * sizeof (short) / sizeof (int) +   480,
         3 +   256 * sizeof (short) / sizeof (int) +   496,
+        3 +   256 * sizeof (short) / sizeof (int) +   512,
        -1,
        -1,
        -1,
@@ -253,11 +253,10 @@ u_categ_S =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   512,
         3 +   256 * sizeof (short) / sizeof (int) +   528,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   544,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   560,
        -1,
        -1,
        -1,
@@ -269,10 +268,11 @@ u_categ_S =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   560,
-       -1,
-       -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   576,
+        3 +   256 * sizeof (short) / sizeof (int) +   592,
+        3 +   256 * sizeof (short) / sizeof (int) +   608,
+        3 +   256 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
@@ -292,25 +292,25 @@ u_categ_S =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000C9C0, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x60000200,
+    0x00000000, 0x00000000, 0x40000000, 0x60000200,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00400000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x040C0000,
+    0x00000000, 0x00000000, 0x00000000, 0x0C0C0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00020000,
     0x00000000, 0x00000000, 0x00000000, 0x00010000,
     0x00000000, 0x00000000, 0x00000000, 0x07F80000,
     0x00000000, 0x00000000, 0x00000000, 0x80000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00060000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x02000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFCF8000E, 0x01500000, 0x00000000, 0x00000000,
-    0x00000000, 0xC0000000, 0x0000DFBF, 0x00000000,
+    0x00000000, 0xC0000000, 0x01E0DFBF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -326,7 +326,7 @@ u_categ_S =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000001, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xC0000000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x1FF007FE,
@@ -336,28 +336,28 @@ u_categ_S =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
     0x00000000, 0x00000000, 0x00040010, 0x1C000000,
-    0x00001C00, 0x003FFFFF, 0x00000000, 0x00000000,
+    0x00001C00, 0x03FFFFFF, 0x00000000, 0x00000000,
     0xC1D0037B, 0x0C0042AF, 0x0000BC1F, 0x00000000,
     0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFF9FF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0x0000007F, 0x000007FF, 0x00000000,
     0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
-    0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0x000000FE,
-    0xFF100000, 0x7FFEFFFF, 0xFFFF179F, 0xFFFF003F,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
+    0xFFF00000, 0xFFFFFFFF, 0xFFFFD79F, 0xFFFF003F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFE000007, 0xFFFFFFFF, 0xF0FFFFFF, 0xCFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x000007E0,
@@ -371,7 +371,7 @@ u_categ_S =
     0x18000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFC30000, 0x00000000, 0xFFFFFFFF, 0x0000000F,
-    0x7FFFFFFF, 0xFFFFFC00, 0x0001000F, 0xFFFFFFFF,
+    0x7FFFFFFF, 0xFFFFFC00, 0x0001FFFF, 0xFFFFFFFF,
     0xFFFFFC00, 0x0001FFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -387,16 +387,20 @@ u_categ_S =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x007FFFFF, 0x00000003, 0x00000000, 0x00000000,
     0x00000600, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000F00, 0x00000000, 0x00000000,
+    0x00000000, 0x03C00F00, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x03800000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000200, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000200, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFC0000, 0x00000003, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x30000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000274,
@@ -420,8 +424,20 @@ u_categ_S =
     0x00200000, 0x00200000, 0x00008000, 0x00008000,
     0x00000200, 0x00000200, 0x00000008, 0x00000000,
     0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x000FFFFF, 0x7FFE7FFF, 0xFFFEFFFE, 0x00000000,
+    0xFFFF0000, 0xFFFF7FFF, 0xFFFFFFFF, 0xFFFF03FF,
+    0x07FFFFFF, 0x00000000, 0x00000000, 0xFFFFFFC0,
+    0xFFFF0007, 0x07FFFFFF, 0x000301FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFBF0001, 0xFFFFFFFF, 0x1FFFFFFF,
+    0x000FFFFF, 0xFFFFFFFF, 0x000007DF, 0x0001FFFF,
+    0xFFFFFFFF, 0x7FFFFFFF, 0xFFFFFFFD, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1EFFFFFF,
+    0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0x000000FF,
+    0x00000000, 0x00000000, 0x00000000, 0xF8000000,
+    0x755DFFFE, 0xFFEF2F3F, 0x0000FFE1, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
index f5933fa..1919ede 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index c6690f1..121d322 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[9 << 4];
+    /*unsigned*/ int level3[10 << 4];
   }
 u_categ_Sc =
 {
@@ -102,6 +102,7 @@ u_categ_Sc =
        -1,
        -1,
        -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
@@ -143,9 +144,8 @@ u_categ_Sc =
        -1,
        -1,
        -1,
-       -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   112,
-        2 +   128 * sizeof (short) / sizeof (int) +   128
+        2 +   128 * sizeof (short) / sizeof (int) +   128,
+        2 +   128 * sizeof (short) / sizeof (int) +   144
   },
   {
     0x00000000, 0x00000010, 0x00000000, 0x00000000,
@@ -159,7 +159,7 @@ u_categ_Sc =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x000C0000,
+    0x00000000, 0x00000000, 0x00000000, 0x080C0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00020000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -173,7 +173,11 @@ u_categ_Sc =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x08000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x003FFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x03FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x01000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 3ff4552..9a59501 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index dc75597..4006353 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[6 << 4];
+    /*unsigned*/ int level3[7 << 4];
   }
 u_categ_Sk =
 {
@@ -143,9 +143,9 @@ u_categ_Sk =
        -1,
        -1,
        -1,
+        2 +   128 * sizeof (short) / sizeof (int) +    80,
        -1,
-       -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    80
+        2 +   128 * sizeof (short) / sizeof (int) +    96
   },
   {
     0x00000000, 0x00000000, 0x40000000, 0x00000001,
@@ -170,6 +170,10 @@ u_categ_Sk =
     0x00000600, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFC0000, 0x00000003, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x40000000, 0x00000001, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000008
   }
index f1f09f1..cd7ae94 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index ffb7cb3..0a7b154 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -293,7 +293,7 @@ u_categ_Sm =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00040010, 0x1C000000,
     0x00001C00, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x0000081F, 0x00000000,
+    0x01000000, 0x00000000, 0x0000081F, 0x00000000,
     0x0C1F0000, 0x00004049, 0x0014C000, 0xFFF00000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -306,7 +306,7 @@ u_categ_Sm =
     0x00000000, 0x00000000, 0x00000000, 0x00008000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFF179F, 0xFFFF003F,
+    0x00000000, 0x00000000, 0xFFFFD79F, 0xFFFF003F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
index 691dcc2..ba4821b 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index f0fa49f..b2f9447 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[30 << 4];
+    /*unsigned*/ int level3[34 << 4];
   }
 u_categ_So =
 {
@@ -106,6 +106,7 @@ u_categ_So =
         3 +   256 * sizeof (short) / sizeof (int) +   352,
        -1,
         3 +   256 * sizeof (short) / sizeof (int) +   368,
+        3 +   256 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -146,10 +147,9 @@ u_categ_So =
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   384,
         3 +   256 * sizeof (short) / sizeof (int) +   400,
         3 +   256 * sizeof (short) / sizeof (int) +   416,
+        3 +   256 * sizeof (short) / sizeof (int) +   432,
        -1,
        -1,
        -1,
@@ -253,8 +253,8 @@ u_categ_So =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   432,
         3 +   256 * sizeof (short) / sizeof (int) +   448,
+        3 +   256 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
        -1,
@@ -269,10 +269,10 @@ u_categ_So =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   464,
-       -1,
-       -1,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   480,
+        3 +   256 * sizeof (short) / sizeof (int) +   496,
+        3 +   256 * sizeof (short) / sizeof (int) +   512,
+        3 +   256 * sizeof (short) / sizeof (int) +   528,
        -1,
        -1,
        -1,
@@ -288,7 +288,7 @@ u_categ_So =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000C000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x60000200,
+    0x00000000, 0x00000000, 0x40000000, 0x60000200,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00400000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -300,13 +300,13 @@ u_categ_So =
     0x00000000, 0x00000000, 0x00000000, 0x00010000,
     0x00000000, 0x00000000, 0x00000000, 0x05F80000,
     0x00000000, 0x00000000, 0x00000000, 0x80000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00060000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x02000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFCF8000E, 0x01500000, 0x00000000, 0x00000000,
-    0x00000000, 0xC0000000, 0x0000DFBF, 0x00000000,
+    0x00000000, 0xC0000000, 0x01E0DFBF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -318,34 +318,34 @@ u_categ_So =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000001, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xC0000000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x1FF007FE,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xC1D0037B, 0x0C0042AF, 0x0000B400, 0x00000000,
+    0xC0D0037B, 0x0C0042AF, 0x0000B400, 0x00000000,
     0xF3E00000, 0xFFFFBFB6, 0xFFEB3FFF, 0x000FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFF0FF, 0xFFFFF9FC, 0xFFFFFFFF, 0xEFFFFFFF,
-    0x07FFFFFF, 0xFFF00000, 0x0FFFFFFF, 0x000000FC,
+    0x07FFFFFF, 0xFFF00000, 0x0FFFFFFF, 0x000FFFFC,
     0xFFFFFFFF, 0x0000007F, 0x000007FF, 0x00000000,
     0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFF7FFFFF, 0xFFFFFFFD, 0x00FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF7FFF,
-    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
-    0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0x000000FE,
-    0xFF100000, 0x7FFEFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
+    0xFFF00000, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x0000FFFF, 0x001F0060, 0x00000000,
+    0xFFFFFFFF, 0x0000FFFF, 0x03FF0060, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x000007E0,
@@ -359,7 +359,7 @@ u_categ_So =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFC30000, 0x00000000, 0xFFFFFFFF, 0x0000000F,
-    0x7FFFFFFF, 0xFFFFFC00, 0x0001000F, 0xFFFFFFFF,
+    0x7FFFFFFF, 0xFFFFFC00, 0x0001FFFF, 0xFFFFFFFF,
     0xFFFFFC00, 0x0001FFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -371,7 +371,11 @@ u_categ_So =
     0xFFFF0000, 0xFFFFFFFF, 0x0000007F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000F00, 0x00000000, 0x00000000,
+    0x00000000, 0x02C00F00, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x03800000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -396,8 +400,20 @@ u_categ_So =
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x000FFFFF, 0x7FFE7FFF, 0xFFFEFFFE, 0x00000000,
+    0xFFFF0000, 0xFFFF7FFF, 0xFFFFFFFF, 0xFFFF03FF,
+    0x07FFFFFF, 0x00000000, 0x00000000, 0xFFFFFFC0,
+    0xFFFF0007, 0x07FFFFFF, 0x000301FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFBF0001, 0xFFFFFFFF, 0x1FFFFFFF,
+    0x000FFFFF, 0xFFFFFFFF, 0x000007DF, 0x0001FFFF,
+    0xFFFFFFFF, 0x7FFFFFFF, 0xFFFFFFFD, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1EFFFFFF,
+    0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0x000000FF,
+    0x00000000, 0x00000000, 0x00000000, 0xF8000000,
+    0x755DFFFE, 0xFFEF2F3F, 0x0000FFE1, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
index 569d82a..6cf39af 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index fa41dd6..ac0e05c 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 58b075e..91702f7 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 1ddb007..abc7f93 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 3cc8c6c..39dbf74 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 3ee4da9..ba4216f 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index b4cfed6..d00c277 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 7dbf342..a2656af 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 67a06fa..589a0a3 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
index b550ccc..2d060f2 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
index fb75b67..aa64e27 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2011-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
 /* Specification.  */
 #include "unictype.h"
 
+#include <stdlib.h>
+#include <string.h>
+
+/* Indices stored in the 'struct named_category' elements of the perfect hash
+   table.  We don't use uc_general_category_t values or their addresses
+   directly, because this would introduce load-time relocations.  */
+enum
+{
+  UC_CATEGORY_INDEX_L,
+  UC_CATEGORY_INDEX_LC,
+  UC_CATEGORY_INDEX_Lu,
+  UC_CATEGORY_INDEX_Ll,
+  UC_CATEGORY_INDEX_Lt,
+  UC_CATEGORY_INDEX_Lm,
+  UC_CATEGORY_INDEX_Lo,
+  UC_CATEGORY_INDEX_M,
+  UC_CATEGORY_INDEX_Mn,
+  UC_CATEGORY_INDEX_Mc,
+  UC_CATEGORY_INDEX_Me,
+  UC_CATEGORY_INDEX_N,
+  UC_CATEGORY_INDEX_Nd,
+  UC_CATEGORY_INDEX_Nl,
+  UC_CATEGORY_INDEX_No,
+  UC_CATEGORY_INDEX_P,
+  UC_CATEGORY_INDEX_Pc,
+  UC_CATEGORY_INDEX_Pd,
+  UC_CATEGORY_INDEX_Ps,
+  UC_CATEGORY_INDEX_Pe,
+  UC_CATEGORY_INDEX_Pi,
+  UC_CATEGORY_INDEX_Pf,
+  UC_CATEGORY_INDEX_Po,
+  UC_CATEGORY_INDEX_S,
+  UC_CATEGORY_INDEX_Sm,
+  UC_CATEGORY_INDEX_Sc,
+  UC_CATEGORY_INDEX_Sk,
+  UC_CATEGORY_INDEX_So,
+  UC_CATEGORY_INDEX_Z,
+  UC_CATEGORY_INDEX_Zs,
+  UC_CATEGORY_INDEX_Zl,
+  UC_CATEGORY_INDEX_Zp,
+  UC_CATEGORY_INDEX_C,
+  UC_CATEGORY_INDEX_Cc,
+  UC_CATEGORY_INDEX_Cf,
+  UC_CATEGORY_INDEX_Cs,
+  UC_CATEGORY_INDEX_Co,
+  UC_CATEGORY_INDEX_Cn
+};
+
+#include "unictype/categ_byname.h"
+
 uc_general_category_t
 uc_general_category_byname (const char *category_name)
 {
-  if (category_name[0] != '\0'
-      && (category_name[1] == '\0' || category_name[2] == '\0'))
-    switch (category_name[0])
+  size_t len;
+
+  len = strlen (category_name);
+  if (len <= MAX_WORD_LENGTH)
+    {
+      char buf[MAX_WORD_LENGTH + 1];
+      const struct named_category *found;
+
+      /* Copy category_name into buf, converting '_' and '-' to ' '.  */
       {
-      case 'L':
-        switch (category_name[1])
-          {
-          case '\0': return UC_CATEGORY_L;
-          case 'u': return UC_CATEGORY_Lu;
-          case 'l': return UC_CATEGORY_Ll;
-          case 't': return UC_CATEGORY_Lt;
-          case 'm': return UC_CATEGORY_Lm;
-          case 'o': return UC_CATEGORY_Lo;
-          }
-        break;
-      case 'M':
-        switch (category_name[1])
-          {
-          case '\0': return UC_CATEGORY_M;
-          case 'n': return UC_CATEGORY_Mn;
-          case 'c': return UC_CATEGORY_Mc;
-          case 'e': return UC_CATEGORY_Me;
-          }
-        break;
-      case 'N':
-        switch (category_name[1])
-          {
-          case '\0': return UC_CATEGORY_N;
-          case 'd': return UC_CATEGORY_Nd;
-          case 'l': return UC_CATEGORY_Nl;
-          case 'o': return UC_CATEGORY_No;
-          }
-        break;
-      case 'P':
-        switch (category_name[1])
-          {
-          case '\0': return UC_CATEGORY_P;
-          case 'c': return UC_CATEGORY_Pc;
-          case 'd': return UC_CATEGORY_Pd;
-          case 's': return UC_CATEGORY_Ps;
-          case 'e': return UC_CATEGORY_Pe;
-          case 'i': return UC_CATEGORY_Pi;
-          case 'f': return UC_CATEGORY_Pf;
-          case 'o': return UC_CATEGORY_Po;
-          }
-        break;
-      case 'S':
-        switch (category_name[1])
-          {
-          case '\0': return UC_CATEGORY_S;
-          case 'm': return UC_CATEGORY_Sm;
-          case 'c': return UC_CATEGORY_Sc;
-          case 'k': return UC_CATEGORY_Sk;
-          case 'o': return UC_CATEGORY_So;
-          }
-        break;
-      case 'Z':
-        switch (category_name[1])
+        const char *p = category_name;
+        char *q = buf;
+
+        for (;; p++, q++)
           {
-          case '\0': return UC_CATEGORY_Z;
-          case 's': return UC_CATEGORY_Zs;
-          case 'l': return UC_CATEGORY_Zl;
-          case 'p': return UC_CATEGORY_Zp;
+            char c = *p;
+
+            if (c == '_' || c == '-')
+              c = ' ';
+            *q = c;
+            if (c == '\0')
+              break;
           }
-        break;
-      case 'C':
-        switch (category_name[1])
+      }
+      /* Here q == buf + len.  */
+
+      /* Do a hash table lookup, with case-insensitive comparison.  */
+      found = uc_general_category_lookup (buf, len);
+      if (found != NULL)
+        /* Use a 'switch' statement here, because a table would introduce
+           load-time relocations.  */
+        switch (found->category_index)
           {
-          case '\0': return UC_CATEGORY_C;
-          case 'c': return UC_CATEGORY_Cc;
-          case 'f': return UC_CATEGORY_Cf;
-          case 's': return UC_CATEGORY_Cs;
-          case 'o': return UC_CATEGORY_Co;
-          case 'n': return UC_CATEGORY_Cn;
+          case UC_CATEGORY_INDEX_L:
+            return UC_CATEGORY_L;
+          case UC_CATEGORY_INDEX_LC:
+            return UC_CATEGORY_LC;
+          case UC_CATEGORY_INDEX_Lu:
+            return UC_CATEGORY_Lu;
+          case UC_CATEGORY_INDEX_Ll:
+            return UC_CATEGORY_Ll;
+          case UC_CATEGORY_INDEX_Lt:
+            return UC_CATEGORY_Lt;
+          case UC_CATEGORY_INDEX_Lm:
+            return UC_CATEGORY_Lm;
+          case UC_CATEGORY_INDEX_Lo:
+            return UC_CATEGORY_Lo;
+          case UC_CATEGORY_INDEX_M:
+            return UC_CATEGORY_M;
+          case UC_CATEGORY_INDEX_Mn:
+            return UC_CATEGORY_Mn;
+          case UC_CATEGORY_INDEX_Mc:
+            return UC_CATEGORY_Mc;
+          case UC_CATEGORY_INDEX_Me:
+            return UC_CATEGORY_Me;
+          case UC_CATEGORY_INDEX_N:
+            return UC_CATEGORY_N;
+          case UC_CATEGORY_INDEX_Nd:
+            return UC_CATEGORY_Nd;
+          case UC_CATEGORY_INDEX_Nl:
+            return UC_CATEGORY_Nl;
+          case UC_CATEGORY_INDEX_No:
+            return UC_CATEGORY_No;
+          case UC_CATEGORY_INDEX_P:
+            return UC_CATEGORY_P;
+          case UC_CATEGORY_INDEX_Pc:
+            return UC_CATEGORY_Pc;
+          case UC_CATEGORY_INDEX_Pd:
+            return UC_CATEGORY_Pd;
+          case UC_CATEGORY_INDEX_Ps:
+            return UC_CATEGORY_Ps;
+          case UC_CATEGORY_INDEX_Pe:
+            return UC_CATEGORY_Pe;
+          case UC_CATEGORY_INDEX_Pi:
+            return UC_CATEGORY_Pi;
+          case UC_CATEGORY_INDEX_Pf:
+            return UC_CATEGORY_Pf;
+          case UC_CATEGORY_INDEX_Po:
+            return UC_CATEGORY_Po;
+          case UC_CATEGORY_INDEX_S:
+            return UC_CATEGORY_S;
+          case UC_CATEGORY_INDEX_Sm:
+            return UC_CATEGORY_Sm;
+          case UC_CATEGORY_INDEX_Sc:
+            return UC_CATEGORY_Sc;
+          case UC_CATEGORY_INDEX_Sk:
+            return UC_CATEGORY_Sk;
+          case UC_CATEGORY_INDEX_So:
+            return UC_CATEGORY_So;
+          case UC_CATEGORY_INDEX_Z:
+            return UC_CATEGORY_Z;
+          case UC_CATEGORY_INDEX_Zs:
+            return UC_CATEGORY_Zs;
+          case UC_CATEGORY_INDEX_Zl:
+            return UC_CATEGORY_Zl;
+          case UC_CATEGORY_INDEX_Zp:
+            return UC_CATEGORY_Zp;
+          case UC_CATEGORY_INDEX_C:
+            return UC_CATEGORY_C;
+          case UC_CATEGORY_INDEX_Cc:
+            return UC_CATEGORY_Cc;
+          case UC_CATEGORY_INDEX_Cf:
+            return UC_CATEGORY_Cf;
+          case UC_CATEGORY_INDEX_Cs:
+            return UC_CATEGORY_Cs;
+          case UC_CATEGORY_INDEX_Co:
+            return UC_CATEGORY_Co;
+          case UC_CATEGORY_INDEX_Cn:
+            return UC_CATEGORY_Cn;
+          default:
+            abort ();
           }
-        break;
-      }
+    }
   /* Invalid category name.  */
   return _UC_CATEGORY_NONE;
 }
diff --git a/lib/unictype/categ_byname.gperf b/lib/unictype/categ_byname.gperf
new file mode 100644 (file)
index 0000000..54d1996
--- /dev/null
@@ -0,0 +1,116 @@
+/* Categories of Unicode characters.  */
+struct named_category { int name; unsigned int category_index; };
+%struct-type
+%ignore-case
+%language=ANSI-C
+%define hash-function-name general_category_hash
+%define lookup-function-name uc_general_category_lookup
+%readonly-tables
+%global-table
+%define word-array-name general_category_names
+%pic
+%define string-pool-name general_category_stringpool
+%%
+L, UC_CATEGORY_INDEX_L
+LC, UC_CATEGORY_INDEX_LC
+Lu, UC_CATEGORY_INDEX_Lu
+Ll, UC_CATEGORY_INDEX_Ll
+Lt, UC_CATEGORY_INDEX_Lt
+Lm, UC_CATEGORY_INDEX_Lm
+Lo, UC_CATEGORY_INDEX_Lo
+M, UC_CATEGORY_INDEX_M
+Mn, UC_CATEGORY_INDEX_Mn
+Mc, UC_CATEGORY_INDEX_Mc
+Me, UC_CATEGORY_INDEX_Me
+N, UC_CATEGORY_INDEX_N
+Nd, UC_CATEGORY_INDEX_Nd
+Nl, UC_CATEGORY_INDEX_Nl
+No, UC_CATEGORY_INDEX_No
+P, UC_CATEGORY_INDEX_P
+Pc, UC_CATEGORY_INDEX_Pc
+Pd, UC_CATEGORY_INDEX_Pd
+Ps, UC_CATEGORY_INDEX_Ps
+Pe, UC_CATEGORY_INDEX_Pe
+Pi, UC_CATEGORY_INDEX_Pi
+Pf, UC_CATEGORY_INDEX_Pf
+Po, UC_CATEGORY_INDEX_Po
+S, UC_CATEGORY_INDEX_S
+Sm, UC_CATEGORY_INDEX_Sm
+Sc, UC_CATEGORY_INDEX_Sc
+Sk, UC_CATEGORY_INDEX_Sk
+So, UC_CATEGORY_INDEX_So
+Z, UC_CATEGORY_INDEX_Z
+Zs, UC_CATEGORY_INDEX_Zs
+Zl, UC_CATEGORY_INDEX_Zl
+Zp, UC_CATEGORY_INDEX_Zp
+C, UC_CATEGORY_INDEX_C
+Cc, UC_CATEGORY_INDEX_Cc
+Cf, UC_CATEGORY_INDEX_Cf
+Cs, UC_CATEGORY_INDEX_Cs
+Co, UC_CATEGORY_INDEX_Co
+Cn, UC_CATEGORY_INDEX_Cn
+Letter, UC_CATEGORY_INDEX_L
+Cased Letter, UC_CATEGORY_INDEX_LC
+CasedLetter, UC_CATEGORY_INDEX_LC
+Uppercase Letter, UC_CATEGORY_INDEX_Lu
+UppercaseLetter, UC_CATEGORY_INDEX_Lu
+Lowercase Letter, UC_CATEGORY_INDEX_Ll
+LowercaseLetter, UC_CATEGORY_INDEX_Ll
+Titlecase Letter, UC_CATEGORY_INDEX_Lt
+TitlecaseLetter, UC_CATEGORY_INDEX_Lt
+Modifier Letter, UC_CATEGORY_INDEX_Lm
+ModifierLetter, UC_CATEGORY_INDEX_Lm
+Other Letter, UC_CATEGORY_INDEX_Lo
+OtherLetter, UC_CATEGORY_INDEX_Lo
+Mark, UC_CATEGORY_INDEX_M
+Nonspacing Mark, UC_CATEGORY_INDEX_Mn
+NonspacingMark, UC_CATEGORY_INDEX_Mn
+Spacing Mark, UC_CATEGORY_INDEX_Mc
+SpacingMark, UC_CATEGORY_INDEX_Mc
+Enclosing Mark, UC_CATEGORY_INDEX_Me
+EnclosingMark, UC_CATEGORY_INDEX_Me
+Number, UC_CATEGORY_INDEX_N
+Decimal Number, UC_CATEGORY_INDEX_Nd
+DecimalNumber, UC_CATEGORY_INDEX_Nd
+Letter Number, UC_CATEGORY_INDEX_Nl
+LetterNumber, UC_CATEGORY_INDEX_Nl
+Other Number, UC_CATEGORY_INDEX_No
+OtherNumber, UC_CATEGORY_INDEX_No
+Punctuation, UC_CATEGORY_INDEX_P
+Connector Punctuation, UC_CATEGORY_INDEX_Pc
+ConnectorPunctuation, UC_CATEGORY_INDEX_Pc
+Dash Punctuation, UC_CATEGORY_INDEX_Pd
+DashPunctuation, UC_CATEGORY_INDEX_Pd
+Open Punctuation, UC_CATEGORY_INDEX_Ps
+OpenPunctuation, UC_CATEGORY_INDEX_Ps
+Close Punctuation, UC_CATEGORY_INDEX_Pe
+ClosePunctuation, UC_CATEGORY_INDEX_Pe
+Initial Punctuation, UC_CATEGORY_INDEX_Pi
+InitialPunctuation, UC_CATEGORY_INDEX_Pi
+Final Punctuation, UC_CATEGORY_INDEX_Pf
+FinalPunctuation, UC_CATEGORY_INDEX_Pf
+Other Punctuation, UC_CATEGORY_INDEX_Po
+OtherPunctuation, UC_CATEGORY_INDEX_Po
+Symbol, UC_CATEGORY_INDEX_S
+Math Symbol, UC_CATEGORY_INDEX_Sm
+MathSymbol, UC_CATEGORY_INDEX_Sm
+Currency Symbol, UC_CATEGORY_INDEX_Sc
+CurrencySymbol, UC_CATEGORY_INDEX_Sc
+Modifier Symbol, UC_CATEGORY_INDEX_Sk
+ModifierSymbol, UC_CATEGORY_INDEX_Sk
+Other Symbol, UC_CATEGORY_INDEX_So
+OtherSymbol, UC_CATEGORY_INDEX_So
+Separator, UC_CATEGORY_INDEX_Z
+Space Separator, UC_CATEGORY_INDEX_Zs
+SpaceSeparator, UC_CATEGORY_INDEX_Zs
+Line Separator, UC_CATEGORY_INDEX_Zl
+LineSeparator, UC_CATEGORY_INDEX_Zl
+Paragraph Separator, UC_CATEGORY_INDEX_Zp
+ParagraphSeparator, UC_CATEGORY_INDEX_Zp
+Other, UC_CATEGORY_INDEX_C
+Control, UC_CATEGORY_INDEX_Cc
+Format, UC_CATEGORY_INDEX_Cf
+Surrogate, UC_CATEGORY_INDEX_Cs
+Private Use, UC_CATEGORY_INDEX_Co
+PrivateUse, UC_CATEGORY_INDEX_Co
+Unassigned, UC_CATEGORY_INDEX_Cn
diff --git a/lib/unictype/categ_byname.h b/lib/unictype/categ_byname.h
new file mode 100644 (file)
index 0000000..a8b740d
--- /dev/null
@@ -0,0 +1,622 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./unictype/categ_byname.gperf  */
+/* Computed positions: -k'1-2,7,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 2 "./unictype/categ_byname.gperf"
+struct named_category { int name; unsigned int category_index; };
+
+#define TOTAL_KEYWORDS 103
+#define MIN_WORD_LENGTH 1
+#define MAX_WORD_LENGTH 21
+#define MIN_HASH_VALUE 1
+#define MAX_HASH_VALUE 150
+/* maximum key range = 150, duplicates = 0 */
+
+#ifndef GPERF_DOWNCASE
+#define GPERF_DOWNCASE 1
+static unsigned char gperf_downcase[256] =
+  {
+      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
+     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
+     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
+     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
+     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
+    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
+    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+    255
+  };
+#endif
+
+#ifndef GPERF_CASE_STRCMP
+#define GPERF_CASE_STRCMP 1
+static int
+gperf_case_strcmp (register const char *s1, register const char *s2)
+{
+  for (;;)
+    {
+      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
+      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
+      if (c1 != 0 && c1 == c2)
+        continue;
+      return (int)c1 - (int)c2;
+    }
+}
+#endif
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+general_category_hash (register const char *str, register unsigned int len)
+{
+  static const unsigned char asso_values[] =
+    {
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151,   1, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151,  16, 151,   1,  66,  21,
+        9,  25, 151,  62, 151,  49,   0,  51,   4,   7,
+        6, 151,  25,  42,   5,   8, 151, 151, 151,   0,
+       45, 151, 151, 151, 151, 151, 151,  16, 151,   1,
+       66,  21,   9,  25, 151,  62, 151,  49,   0,  51,
+        4,   7,   6, 151,  25,  42,   5,   8, 151, 151,
+      151,   0,  45, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+      151, 151, 151, 151, 151, 151
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+        hval += asso_values[(unsigned char)str[6]];
+      /*FALLTHROUGH*/
+      case 6:
+      case 5:
+      case 4:
+      case 3:
+      case 2:
+        hval += asso_values[(unsigned char)str[1]];
+      /*FALLTHROUGH*/
+      case 1:
+        hval += asso_values[(unsigned char)str[0]];
+        break;
+    }
+  return hval + asso_values[(unsigned char)str[len - 1]];
+}
+
+struct general_category_stringpool_t
+  {
+    char general_category_stringpool_str1[sizeof("L")];
+    char general_category_stringpool_str2[sizeof("Ll")];
+    char general_category_stringpool_str3[sizeof("C")];
+    char general_category_stringpool_str4[sizeof("LC")];
+    char general_category_stringpool_str5[sizeof("Cc")];
+    char general_category_stringpool_str6[sizeof("Nl")];
+    char general_category_stringpool_str9[sizeof("N")];
+    char general_category_stringpool_str10[sizeof("Pc")];
+    char general_category_stringpool_str11[sizeof("Cn")];
+    char general_category_stringpool_str12[sizeof("Lt")];
+    char general_category_stringpool_str13[sizeof("P")];
+    char general_category_stringpool_str15[sizeof("Control")];
+    char general_category_stringpool_str16[sizeof("Lo")];
+    char general_category_stringpool_str17[sizeof("Co")];
+    char general_category_stringpool_str18[sizeof("Lu")];
+    char general_category_stringpool_str20[sizeof("No")];
+    char general_category_stringpool_str21[sizeof("Cf")];
+    char general_category_stringpool_str22[sizeof("Po")];
+    char general_category_stringpool_str23[sizeof("OtherSymbol")];
+    char general_category_stringpool_str24[sizeof("CurrencySymbol")];
+    char general_category_stringpool_str25[sizeof("Currency Symbol")];
+    char general_category_stringpool_str26[sizeof("Pf")];
+    char general_category_stringpool_str27[sizeof("Format")];
+    char general_category_stringpool_str28[sizeof("Close Punctuation")];
+    char general_category_stringpool_str29[sizeof("ClosePunctuation")];
+    char general_category_stringpool_str36[sizeof("OpenPunctuation")];
+    char general_category_stringpool_str37[sizeof("ConnectorPunctuation")];
+    char general_category_stringpool_str38[sizeof("Connector Punctuation")];
+    char general_category_stringpool_str39[sizeof("Other Punctuation")];
+    char general_category_stringpool_str40[sizeof("OtherPunctuation")];
+    char general_category_stringpool_str41[sizeof("Open Punctuation")];
+    char general_category_stringpool_str42[sizeof("Other")];
+    char general_category_stringpool_str43[sizeof("Number")];
+    char general_category_stringpool_str45[sizeof("Punctuation")];
+    char general_category_stringpool_str46[sizeof("Sc")];
+    char general_category_stringpool_str47[sizeof("Zl")];
+    char general_category_stringpool_str48[sizeof("Symbol")];
+    char general_category_stringpool_str49[sizeof("Other Letter")];
+    char general_category_stringpool_str50[sizeof("Pe")];
+    char general_category_stringpool_str52[sizeof("Letter")];
+    char general_category_stringpool_str53[sizeof("Other Number")];
+    char general_category_stringpool_str54[sizeof("Cased Letter")];
+    char general_category_stringpool_str55[sizeof("Mc")];
+    char general_category_stringpool_str56[sizeof("OtherNumber")];
+    char general_category_stringpool_str58[sizeof("So")];
+    char general_category_stringpool_str59[sizeof("Zp")];
+    char general_category_stringpool_str60[sizeof("Letter Number")];
+    char general_category_stringpool_str61[sizeof("Mn")];
+    char general_category_stringpool_str62[sizeof("LetterNumber")];
+    char general_category_stringpool_str63[sizeof("LowercaseLetter")];
+    char general_category_stringpool_str64[sizeof("Lowercase Letter")];
+    char general_category_stringpool_str66[sizeof("Other Symbol")];
+    char general_category_stringpool_str69[sizeof("OtherLetter")];
+    char general_category_stringpool_str70[sizeof("UppercaseLetter")];
+    char general_category_stringpool_str71[sizeof("Uppercase Letter")];
+    char general_category_stringpool_str74[sizeof("CasedLetter")];
+    char general_category_stringpool_str75[sizeof("NonspacingMark")];
+    char general_category_stringpool_str76[sizeof("Nonspacing Mark")];
+    char general_category_stringpool_str78[sizeof("Math Symbol")];
+    char general_category_stringpool_str81[sizeof("ParagraphSeparator")];
+    char general_category_stringpool_str82[sizeof("Paragraph Separator")];
+    char general_category_stringpool_str83[sizeof("PrivateUse")];
+    char general_category_stringpool_str84[sizeof("Private Use")];
+    char general_category_stringpool_str85[sizeof("S")];
+    char general_category_stringpool_str87[sizeof("Cs")];
+    char general_category_stringpool_str88[sizeof("InitialPunctuation")];
+    char general_category_stringpool_str89[sizeof("Initial Punctuation")];
+    char general_category_stringpool_str91[sizeof("Z")];
+    char general_category_stringpool_str92[sizeof("Ps")];
+    char general_category_stringpool_str93[sizeof("ModifierSymbol")];
+    char general_category_stringpool_str94[sizeof("Modifier Symbol")];
+    char general_category_stringpool_str95[sizeof("Me")];
+    char general_category_stringpool_str96[sizeof("Surrogate")];
+    char general_category_stringpool_str98[sizeof("Final Punctuation")];
+    char general_category_stringpool_str99[sizeof("FinalPunctuation")];
+    char general_category_stringpool_str102[sizeof("Separator")];
+    char general_category_stringpool_str103[sizeof("M")];
+    char general_category_stringpool_str104[sizeof("Lm")];
+    char general_category_stringpool_str105[sizeof("DashPunctuation")];
+    char general_category_stringpool_str106[sizeof("LineSeparator")];
+    char general_category_stringpool_str108[sizeof("SpaceSeparator")];
+    char general_category_stringpool_str110[sizeof("Dash Punctuation")];
+    char general_category_stringpool_str113[sizeof("Unassigned")];
+    char general_category_stringpool_str118[sizeof("ModifierLetter")];
+    char general_category_stringpool_str119[sizeof("Modifier Letter")];
+    char general_category_stringpool_str120[sizeof("Mark")];
+    char general_category_stringpool_str122[sizeof("Line Separator")];
+    char general_category_stringpool_str123[sizeof("TitlecaseLetter")];
+    char general_category_stringpool_str124[sizeof("Titlecase Letter")];
+    char general_category_stringpool_str125[sizeof("DecimalNumber")];
+    char general_category_stringpool_str126[sizeof("Decimal Number")];
+    char general_category_stringpool_str128[sizeof("MathSymbol")];
+    char general_category_stringpool_str130[sizeof("Space Separator")];
+    char general_category_stringpool_str131[sizeof("Zs")];
+    char general_category_stringpool_str132[sizeof("Pi")];
+    char general_category_stringpool_str133[sizeof("SpacingMark")];
+    char general_category_stringpool_str134[sizeof("Spacing Mark")];
+    char general_category_stringpool_str138[sizeof("Nd")];
+    char general_category_stringpool_str140[sizeof("Pd")];
+    char general_category_stringpool_str142[sizeof("Sk")];
+    char general_category_stringpool_str146[sizeof("Sm")];
+    char general_category_stringpool_str149[sizeof("EnclosingMark")];
+    char general_category_stringpool_str150[sizeof("Enclosing Mark")];
+  };
+static const struct general_category_stringpool_t general_category_stringpool_contents =
+  {
+    "L",
+    "Ll",
+    "C",
+    "LC",
+    "Cc",
+    "Nl",
+    "N",
+    "Pc",
+    "Cn",
+    "Lt",
+    "P",
+    "Control",
+    "Lo",
+    "Co",
+    "Lu",
+    "No",
+    "Cf",
+    "Po",
+    "OtherSymbol",
+    "CurrencySymbol",
+    "Currency Symbol",
+    "Pf",
+    "Format",
+    "Close Punctuation",
+    "ClosePunctuation",
+    "OpenPunctuation",
+    "ConnectorPunctuation",
+    "Connector Punctuation",
+    "Other Punctuation",
+    "OtherPunctuation",
+    "Open Punctuation",
+    "Other",
+    "Number",
+    "Punctuation",
+    "Sc",
+    "Zl",
+    "Symbol",
+    "Other Letter",
+    "Pe",
+    "Letter",
+    "Other Number",
+    "Cased Letter",
+    "Mc",
+    "OtherNumber",
+    "So",
+    "Zp",
+    "Letter Number",
+    "Mn",
+    "LetterNumber",
+    "LowercaseLetter",
+    "Lowercase Letter",
+    "Other Symbol",
+    "OtherLetter",
+    "UppercaseLetter",
+    "Uppercase Letter",
+    "CasedLetter",
+    "NonspacingMark",
+    "Nonspacing Mark",
+    "Math Symbol",
+    "ParagraphSeparator",
+    "Paragraph Separator",
+    "PrivateUse",
+    "Private Use",
+    "S",
+    "Cs",
+    "InitialPunctuation",
+    "Initial Punctuation",
+    "Z",
+    "Ps",
+    "ModifierSymbol",
+    "Modifier Symbol",
+    "Me",
+    "Surrogate",
+    "Final Punctuation",
+    "FinalPunctuation",
+    "Separator",
+    "M",
+    "Lm",
+    "DashPunctuation",
+    "LineSeparator",
+    "SpaceSeparator",
+    "Dash Punctuation",
+    "Unassigned",
+    "ModifierLetter",
+    "Modifier Letter",
+    "Mark",
+    "Line Separator",
+    "TitlecaseLetter",
+    "Titlecase Letter",
+    "DecimalNumber",
+    "Decimal Number",
+    "MathSymbol",
+    "Space Separator",
+    "Zs",
+    "Pi",
+    "SpacingMark",
+    "Spacing Mark",
+    "Nd",
+    "Pd",
+    "Sk",
+    "Sm",
+    "EnclosingMark",
+    "Enclosing Mark"
+  };
+#define general_category_stringpool ((const char *) &general_category_stringpool_contents)
+
+static const struct named_category general_category_names[] =
+  {
+    {-1},
+#line 14 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str1, UC_CATEGORY_INDEX_L},
+#line 17 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str2, UC_CATEGORY_INDEX_Ll},
+#line 46 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str3, UC_CATEGORY_INDEX_C},
+#line 15 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str4, UC_CATEGORY_INDEX_LC},
+#line 47 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str5, UC_CATEGORY_INDEX_Cc},
+#line 27 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str6, UC_CATEGORY_INDEX_Nl},
+    {-1}, {-1},
+#line 25 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str9, UC_CATEGORY_INDEX_N},
+#line 30 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str10, UC_CATEGORY_INDEX_Pc},
+#line 51 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str11, UC_CATEGORY_INDEX_Cn},
+#line 18 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str12, UC_CATEGORY_INDEX_Lt},
+#line 29 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str13, UC_CATEGORY_INDEX_P},
+    {-1},
+#line 111 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str15, UC_CATEGORY_INDEX_Cc},
+#line 20 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str16, UC_CATEGORY_INDEX_Lo},
+#line 50 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str17, UC_CATEGORY_INDEX_Co},
+#line 16 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str18, UC_CATEGORY_INDEX_Lu},
+    {-1},
+#line 28 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str20, UC_CATEGORY_INDEX_No},
+#line 48 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str21, UC_CATEGORY_INDEX_Cf},
+#line 36 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str22, UC_CATEGORY_INDEX_Po},
+#line 102 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str23, UC_CATEGORY_INDEX_So},
+#line 98 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str24, UC_CATEGORY_INDEX_Sc},
+#line 97 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str25, UC_CATEGORY_INDEX_Sc},
+#line 35 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str26, UC_CATEGORY_INDEX_Pf},
+#line 112 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str27, UC_CATEGORY_INDEX_Cf},
+#line 86 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str28, UC_CATEGORY_INDEX_Pe},
+#line 87 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str29, UC_CATEGORY_INDEX_Pe},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 85 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str36, UC_CATEGORY_INDEX_Ps},
+#line 81 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str37, UC_CATEGORY_INDEX_Pc},
+#line 80 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str38, UC_CATEGORY_INDEX_Pc},
+#line 92 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str39, UC_CATEGORY_INDEX_Po},
+#line 93 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str40, UC_CATEGORY_INDEX_Po},
+#line 84 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str41, UC_CATEGORY_INDEX_Ps},
+#line 110 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str42, UC_CATEGORY_INDEX_C},
+#line 72 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str43, UC_CATEGORY_INDEX_N},
+    {-1},
+#line 79 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str45, UC_CATEGORY_INDEX_P},
+#line 39 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str46, UC_CATEGORY_INDEX_Sc},
+#line 44 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str47, UC_CATEGORY_INDEX_Zl},
+#line 94 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str48, UC_CATEGORY_INDEX_S},
+#line 63 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str49, UC_CATEGORY_INDEX_Lo},
+#line 33 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str50, UC_CATEGORY_INDEX_Pe},
+    {-1},
+#line 52 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str52, UC_CATEGORY_INDEX_L},
+#line 77 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str53, UC_CATEGORY_INDEX_No},
+#line 53 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str54, UC_CATEGORY_INDEX_LC},
+#line 23 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str55, UC_CATEGORY_INDEX_Mc},
+#line 78 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str56, UC_CATEGORY_INDEX_No},
+    {-1},
+#line 41 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str58, UC_CATEGORY_INDEX_So},
+#line 45 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str59, UC_CATEGORY_INDEX_Zp},
+#line 75 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str60, UC_CATEGORY_INDEX_Nl},
+#line 22 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str61, UC_CATEGORY_INDEX_Mn},
+#line 76 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str62, UC_CATEGORY_INDEX_Nl},
+#line 58 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str63, UC_CATEGORY_INDEX_Ll},
+#line 57 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str64, UC_CATEGORY_INDEX_Ll},
+    {-1},
+#line 101 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str66, UC_CATEGORY_INDEX_So},
+    {-1}, {-1},
+#line 64 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str69, UC_CATEGORY_INDEX_Lo},
+#line 56 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str70, UC_CATEGORY_INDEX_Lu},
+#line 55 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str71, UC_CATEGORY_INDEX_Lu},
+    {-1}, {-1},
+#line 54 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str74, UC_CATEGORY_INDEX_LC},
+#line 67 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str75, UC_CATEGORY_INDEX_Mn},
+#line 66 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str76, UC_CATEGORY_INDEX_Mn},
+    {-1},
+#line 95 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str78, UC_CATEGORY_INDEX_Sm},
+    {-1}, {-1},
+#line 109 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str81, UC_CATEGORY_INDEX_Zp},
+#line 108 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str82, UC_CATEGORY_INDEX_Zp},
+#line 115 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str83, UC_CATEGORY_INDEX_Co},
+#line 114 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str84, UC_CATEGORY_INDEX_Co},
+#line 37 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str85, UC_CATEGORY_INDEX_S},
+    {-1},
+#line 49 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str87, UC_CATEGORY_INDEX_Cs},
+#line 89 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str88, UC_CATEGORY_INDEX_Pi},
+#line 88 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str89, UC_CATEGORY_INDEX_Pi},
+    {-1},
+#line 42 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str91, UC_CATEGORY_INDEX_Z},
+#line 32 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str92, UC_CATEGORY_INDEX_Ps},
+#line 100 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str93, UC_CATEGORY_INDEX_Sk},
+#line 99 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str94, UC_CATEGORY_INDEX_Sk},
+#line 24 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str95, UC_CATEGORY_INDEX_Me},
+#line 113 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str96, UC_CATEGORY_INDEX_Cs},
+    {-1},
+#line 90 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str98, UC_CATEGORY_INDEX_Pf},
+#line 91 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str99, UC_CATEGORY_INDEX_Pf},
+    {-1}, {-1},
+#line 103 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str102, UC_CATEGORY_INDEX_Z},
+#line 21 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str103, UC_CATEGORY_INDEX_M},
+#line 19 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str104, UC_CATEGORY_INDEX_Lm},
+#line 83 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str105, UC_CATEGORY_INDEX_Pd},
+#line 107 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str106, UC_CATEGORY_INDEX_Zl},
+    {-1},
+#line 105 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str108, UC_CATEGORY_INDEX_Zs},
+    {-1},
+#line 82 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str110, UC_CATEGORY_INDEX_Pd},
+    {-1}, {-1},
+#line 116 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str113, UC_CATEGORY_INDEX_Cn},
+    {-1}, {-1}, {-1}, {-1},
+#line 62 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str118, UC_CATEGORY_INDEX_Lm},
+#line 61 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str119, UC_CATEGORY_INDEX_Lm},
+#line 65 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str120, UC_CATEGORY_INDEX_M},
+    {-1},
+#line 106 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str122, UC_CATEGORY_INDEX_Zl},
+#line 60 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str123, UC_CATEGORY_INDEX_Lt},
+#line 59 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str124, UC_CATEGORY_INDEX_Lt},
+#line 74 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str125, UC_CATEGORY_INDEX_Nd},
+#line 73 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str126, UC_CATEGORY_INDEX_Nd},
+    {-1},
+#line 96 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str128, UC_CATEGORY_INDEX_Sm},
+    {-1},
+#line 104 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str130, UC_CATEGORY_INDEX_Zs},
+#line 43 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str131, UC_CATEGORY_INDEX_Zs},
+#line 34 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str132, UC_CATEGORY_INDEX_Pi},
+#line 69 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str133, UC_CATEGORY_INDEX_Mc},
+#line 68 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str134, UC_CATEGORY_INDEX_Mc},
+    {-1}, {-1}, {-1},
+#line 26 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str138, UC_CATEGORY_INDEX_Nd},
+    {-1},
+#line 31 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str140, UC_CATEGORY_INDEX_Pd},
+    {-1},
+#line 40 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str142, UC_CATEGORY_INDEX_Sk},
+    {-1}, {-1}, {-1},
+#line 38 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str146, UC_CATEGORY_INDEX_Sm},
+    {-1}, {-1},
+#line 71 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str149, UC_CATEGORY_INDEX_Me},
+#line 70 "./unictype/categ_byname.gperf"
+    {(int)(long)&((struct general_category_stringpool_t *)0)->general_category_stringpool_str150, UC_CATEGORY_INDEX_Me}
+  };
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct named_category *
+uc_general_category_lookup (register const char *str, register unsigned int len)
+{
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = general_category_hash (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
+          register int o = general_category_names[key].name;
+          if (o >= 0)
+            {
+              register const char *s = o + general_category_stringpool;
+
+              if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
+                return &general_category_names[key];
+            }
+        }
+    }
+  return 0;
+}
diff --git a/lib/unictype/categ_longname.c b/lib/unictype/categ_longname.c
new file mode 100644 (file)
index 0000000..1d55014
--- /dev/null
@@ -0,0 +1,106 @@
+/* Categories of Unicode characters.
+   Copyright (C) 2002, 2006-2007, 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+static const char u_category_long_name[30][22] =
+{
+  "Uppercase Letter",
+  "Lowercase Letter",
+  "Titlecase Letter",
+  "Modifier Letter",
+  "Other Letter",
+  "Nonspacing Mark",
+  "Spacing Mark",
+  "Enclosing Mark",
+  "Decimal Number",
+  "Letter Number",
+  "Other Number",
+  "Connector Punctuation",
+  "Dash Punctuation",
+  "Open Punctuation",
+  "Close Punctuation",
+  "Initial Punctuation",
+  "Final Punctuation",
+  "Other Punctuation",
+  "Math Symbol",
+  "Currency Symbol",
+  "Modifier Symbol",
+  "Other Symbol",
+  "Space Separator",
+  "Line Separator",
+  "Paragraph Separator",
+  "Control",
+  "Format",
+  "Surrogate",
+  "Private Use",
+  "Unassigned"
+};
+
+const char *
+uc_general_category_long_name (uc_general_category_t category)
+{
+  uint32_t bitmask = category.bitmask;
+  /* bitmask should consist of a single bit.  */
+  if (bitmask != 0)
+    {
+      if ((bitmask & (bitmask - 1)) == 0)
+        {
+          int bit;
+          /* Take log2 using a variant of Robert Harley's method.
+             Found by Bruno Haible 1996.  */
+          uint32_t n = bitmask;
+          static const char ord2_tab[64] =
+            {
+              -1,  0,  1, 12,  2,  6, -1, 13,  3, -1,  7, -1, -1, -1, -1, 14,
+              10,  4, -1, -1,  8, -1, -1, 25, -1, -1, -1, -1, -1, 21, 27, 15,
+              31, 11,  5, -1, -1, -1, -1, -1,  9, -1, -1, 24, -1, -1, 20, 26,
+              30, -1, -1, -1, -1, 23, -1, 19, 29, -1, 22, 18, 28, 17, 16, -1
+            };
+          n += n << 4;
+          n += n << 6;
+          n = (n << 16) - n;
+          bit = ord2_tab[n >> 26];
+
+          if (bit < sizeof (u_category_long_name) / sizeof (u_category_long_name[0]))
+            return u_category_long_name[bit];
+        }
+      else
+        {
+          if (bitmask == UC_CATEGORY_MASK_L)
+            return "Letter";
+          if (bitmask == UC_CATEGORY_MASK_LC)
+            return "Cased Letter";
+          if (bitmask == UC_CATEGORY_MASK_M)
+            return "Mark";
+          if (bitmask == UC_CATEGORY_MASK_N)
+            return "Number";
+          if (bitmask == UC_CATEGORY_MASK_P)
+            return "Punctuation";
+          if (bitmask == UC_CATEGORY_MASK_S)
+            return "Symbol";
+          if (bitmask == UC_CATEGORY_MASK_Z)
+            return "Separator";
+          if (bitmask == UC_CATEGORY_MASK_C)
+            return "Other";
+        }
+    }
+  return NULL;
+}
index 1243e2f..20af5b3 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2011-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
@@ -59,6 +59,8 @@ uc_general_category_name (uc_general_category_t category)
         {
           if (bitmask == UC_CATEGORY_MASK_L)
             return "L";
+          if (bitmask == UC_CATEGORY_MASK_LC)
+            return "LC";
           if (bitmask == UC_CATEGORY_MASK_M)
             return "M";
           if (bitmask == UC_CATEGORY_MASK_N)
index 39bc8b2..350e81f 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
index 66cca8d..b68cc9a 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 3df7e0c..ba7bf71 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Categories of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define category_header_0 16
 #define category_header_1 17
 #define category_header_2 7
@@ -11,7 +11,7 @@ struct
   {
     int level1[17];
     short level2[5 << 9];
-    unsigned short level3[148 * 40 + 1];
+    unsigned short level3[173 * 40 + 1];
   }
 u_category =
 {
@@ -23,78 +23,82 @@ u_category =
   {
         0,   128,   256,   384,   512,   640,   768,   896,
      1024,  1152,  1280,  1408,  1536,  1664,  1792,  1920,
-       -1,    -1,  2048,  2176,  2304,  2432,  2560,  2688,
-     2816,  2944,  3072,  3200,  3328,  3456,  3584,  3712,
-     3840,  3968,  4096,  4224,  4352,  4480,  4608,  4736,
-     4864,  4992,  4992,  4992,  5120,  5248,  5376,  5504,
-     5632,  5760,  5888,  6016,  6144,    -1,  6272,  6400,
-     6528,    -1,  6656,  6784,  6912,  7040,  7168,  7296,
-     7424,  7552,  7680,  7808,  7936,  7936,  8064,  8192,
-     8320,  8448,  8576,  8704,  8832,  8960,  9088,  9216,
-     8576,  8576,  7936,  9344,  7936,  7936,  9472,    -1,
-     9600,  9728,  9856,  9984, 10112, 10240,  8576, 10368,
-    10496, 10624, 10752, 10880, 11008, 11136,  8576,  8576,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992, 11264,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992, 11392,
-    11520,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992, 11648,  4992,  4992, 11776, 11904, 12032, 12160,
-    12288, 12416, 12544,    -1, 12672,    -1,    -1,    -1,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992, 12800,
-    12928, 12928, 12928, 12928, 12928, 12928, 12928, 12928,
-    12928, 12928, 12928, 12928, 12928, 12928, 12928, 12928,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056,  4992,  4992, 13184, 13312, 13440, 13568,
-     4992,  4992, 13696, 13824, 13952, 14080, 14208, 14336,
-    14464, 14592, 14720, 14848,    -1, 14976, 15104, 15232,
-    15360, 15488,    -1,    -1,    -1,    -1,    -1,    -1,
-    15616,    -1, 15744,    -1, 15872,    -1,    -1,    -1,
+     2048,    -1,  2176,  2304,  2432,  2560,  2688,  2816,
+     2944,  3072,  3200,  3328,  3456,  3584,  3712,  3840,
+     3968,  4096,  4224,  4224,  4352,  4480,  4608,  4736,
+     4864,  4224,  4224,  4224,  4992,  5120,  5248,  5376,
+     5504,  5632,  5760,  5888,  6016,  6144,  6272,  6400,
+     6528,  6656,  6784,  6912,  7040,  7168,  7296,  7424,
+     7552,  7680,  7808,  7936,  8064,  8064,  8192,  8320,
+     8448,  8576,  8704,  8832,  8960,  8704,  9088,  9216,
+     8704,  8704,  8064,  9344,  8064,  8064,  9472,    -1,
+     9600,  9728,  9856,  9984, 10112, 10240,  8704, 10368,
+    10496, 10624, 10752, 10880, 11008, 11136,  8704,  8704,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224, 11264,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224, 11392,
+    11520,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224, 11648,  4224,  4224, 11776, 11904, 12032, 12160,
+    12288, 12416, 12544, 12672, 12800, 12928, 13056, 13184,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224, 13312,
+    13440, 13440, 13440, 13440, 13440, 13440, 13440, 13440,
+    13440, 13440, 13440, 13440, 13440, 13440, 13440, 13440,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568,  4224,  4224, 13696, 13824, 13952, 14080,
+     4224,  4224, 14208, 14336, 14464, 14592, 14720, 14848,
+    14976, 15104, 15232, 15360,    -1, 15488, 15616, 15744,
+    15872, 16000,    -1,    -1,    -1,    -1,    -1,    -1,
+    16128,    -1, 16256,    -1, 16384,    -1, 16512,    -1,
+    16640,    -1,    -1,    -1, 16768,    -1,    -1,    -1,
+    16896, 17024,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     4224,  4224,  4224,  4224,  4224,  4224, 17152,    -1,
+    17280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     4992,  4992,  4992,  4992,  4992,  4992, 16000,    -1,
-    16128,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+    17408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -107,6 +111,7 @@ u_category =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     4224,  4224,  4224,  4224, 17536,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -124,6 +129,7 @@ u_category =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    17664,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -131,66 +137,72 @@ u_category =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     8704, 17792, 17920, 18048, 18176,    -1, 18304,    -1,
+    18432, 18560, 18688, 18816, 18944, 19072, 19200, 19328,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     8576, 16256, 16384, 16512, 16640,    -1, 16768,    -1,
-    16896, 17024, 17152, 17280, 17408, 17536, 17664, 17792,
+    19456, 19584, 19712, 19840, 19968,    -1, 20096, 20224,
+    20352, 20480, 20608, 20736, 20864, 20992, 21120,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224, 21248,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224,  4224,  4224,
+     4224,  4224,  4224,  4224,  4224,  4224, 21376,  4224,
+    21504,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    17920, 18048,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992,  4992,  4992,  4992,
-     4992,  4992,  4992,  4992,  4992, 18176,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -199,7 +211,9 @@ u_category =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     4224,  4224,  4224,  4224, 21504,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    21632,    -1, 21760, 21888,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -211,9 +225,7 @@ u_category =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     4992,  4992,  4992,  4992, 18304,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    18432,    -1, 18560, 18688,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -265,82 +277,70 @@ u_category =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 13056,
-    13056, 13056, 13056, 13056, 13056, 13056, 13056, 18816
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 13568,
+    13568, 13568, 13568, 13568, 13568, 13568, 13568, 22016
   },
   {
     0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73, 0xe739, 0x739c, 0x39ce,
@@ -394,7 +394,7 @@ u_category =
     0x0840, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
     0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802,
     0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
-    0x0080, 0x0802, 0x8020, 0x7bd0, 0xbdef, 0xdef7, 0xef7b, 0x001d,
+    0x0080, 0x0802, 0x8020, 0x0200, 0xbd08, 0xdef7, 0xef7b, 0x001d,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x7de8, 0x18c4, 0x8c63, 0x843d, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
@@ -404,14 +404,14 @@ u_category =
     0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0xde90, 0xef7b, 0x9084, 0x7b18, 0xbdef, 0xdef7, 0xef7b,
     0x6b5a, 0xbbdd, 0x3294, 0x19c6, 0xad63, 0x94a5, 0x4a52, 0xa529,
-    0xd894, 0x8c7b, 0x109d, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0xd894, 0x8c7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1083, 0x0842, 0x8421, 0x5290,
-    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xe94a, 0x2108, 0x1084,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x2108, 0x1084,
     0x0842, 0x18c5, 0x2123, 0x1085, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
-    0x2108, 0x1084, 0x4912, 0xa529, 0x5294, 0x29f4, 0x94a5, 0xc652,
+    0x2108, 0x1084, 0x4912, 0xa529, 0x5294, 0x2d74, 0x94a5, 0xc652,
     0xa528, 0x5296, 0x210a, 0x2108, 0x1084, 0x0842, 0x4211, 0x256a,
     0xc631, 0x6318, 0x318c, 0x18c6, 0xd763, 0x10a4, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x94a5,
@@ -423,16 +423,21 @@ u_category =
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x2108, 0x1084, 0x0842, 0x4211,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x5290, 0x294a, 0x94a5, 0x4632, 0x318d, 0xde8e, 0xef7b,
-    0x14bd, 0x0843, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x4842, 0xa529,
+    0x528c, 0x294a, 0x94a5, 0x4a32, 0xa329, 0x5294, 0xef4a, 0xc631,
+    0x6318, 0x318c, 0x18c6, 0xec63, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x2108, 0x1084, 0x0842, 0xa421, 0xd294, 0xec7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x14a5, 0x0843, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
-    0x0842, 0x8421, 0x5ef4, 0x3188, 0x94a6, 0x4a52, 0xc529, 0x6318,
-    0xef4a, 0x94a4, 0x7a52, 0x84ef, 0x4210, 0x2108, 0x9484, 0x2312,
-    0x0842, 0x8421, 0x4210, 0x9071, 0x7bde, 0xbdef, 0x4277, 0x2108,
+    0x0842, 0x8421, 0x5314, 0x3188, 0x94a6, 0x4a52, 0xc529, 0x6318,
+    0x318a, 0x94a4, 0x4a52, 0x8429, 0x4210, 0x2108, 0x9484, 0x2312,
+    0x0842, 0x8421, 0x4210, 0x1071, 0x0842, 0x9d21, 0x4210, 0x2108,
     0x18bd, 0x09d3, 0x8421, 0x4210, 0x277a, 0x77a4, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x93a4,
     0x3bde, 0x8421, 0x5ef4, 0x3188, 0x94a6, 0x7a52, 0xa637, 0x6377,
     0xe90a, 0xf7bd, 0x7bde, 0xbd37, 0x4ef7, 0x2748, 0x9484, 0x3bd2,
-    0x0842, 0x8421, 0x4210, 0xcc84, 0x94a9, 0x4a52, 0xded5, 0xef7b,
+    0x0842, 0x8421, 0x4210, 0xcc84, 0x94a9, 0x4a52, 0xd9d5, 0xef7b,
     0x14bd, 0x09d3, 0x8421, 0xde90, 0x277b, 0x77a4, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x13a4,
     0x09d2, 0x84e9, 0x5ef4, 0x31ba, 0x94a6, 0x7bde, 0xa52f, 0x52f7,
@@ -447,7 +452,7 @@ u_category =
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x13a4,
     0x09d2, 0x8421, 0x5ef4, 0x2988, 0x94a6, 0x7a52, 0xa637, 0x6377,
     0xef4a, 0xf7bd, 0x7bde, 0xbd31, 0x4ef7, 0x2748, 0x9484, 0x3bd2,
-    0x0842, 0x8421, 0x4210, 0xf495, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x0842, 0x8421, 0x4210, 0x2895, 0x94a5, 0xbd52, 0xdef7, 0xef7b,
     0x17bd, 0x09d2, 0x8421, 0xde90, 0x213b, 0x13a4, 0x4842, 0x9def,
     0x4e90, 0x213a, 0x77bd, 0x7a42, 0x84ef, 0xde90, 0x213b, 0x1084,
     0x0842, 0x8421, 0xdef4, 0x31bb, 0x98c5, 0xbbde, 0xa631, 0x631b,
@@ -462,11 +467,11 @@ u_category =
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x1084,
     0x09d2, 0x8421, 0x5ef4, 0x2988, 0x18c6, 0x7a63, 0xa631, 0x531b,
     0xef4a, 0xf7bd, 0x8dde, 0xbde9, 0xdef7, 0xe93b, 0x9484, 0x3bd2,
-    0x0842, 0x8421, 0x4210, 0xd6bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x0842, 0x8421, 0x4210, 0x909d, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1bbd, 0x09d3, 0x8421, 0x4210, 0x213a, 0x13a4, 0x0842, 0x8421,
-    0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213, 0x2108, 0x1084,
-    0x0842, 0x8421, 0xdef4, 0x3189, 0x94a6, 0xba52, 0xa631, 0x631b,
-    0xef4a, 0xf7bd, 0x7bde, 0xbd37, 0xdef7, 0xef7b, 0x9484, 0x3bd2,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x0842, 0x8421, 0xde90, 0x3189, 0x94a6, 0xba52, 0xa631, 0x631b,
+    0xe90a, 0xf7bd, 0x7bde, 0xbd37, 0xdef7, 0xef7b, 0x9484, 0x3bd2,
     0x0842, 0x8421, 0x4210, 0x294a, 0x54a5, 0xbdef, 0x4212, 0x2108,
     0x1bbd, 0x09d3, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbde9,
     0x4213, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x7484,
@@ -488,10 +493,10 @@ u_category =
     0x4b55, 0xb52d, 0xd734, 0x319c, 0x1084, 0x0842, 0x9d21, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0xef7a, 0x94bd, 0x4a52, 0xa529, 0x5294, 0x314a,
-    0x94a5, 0x6252, 0x8429, 0xd210, 0xef7b, 0x94a5, 0x4a52, 0xbd29,
+    0x94a5, 0x6252, 0x8429, 0x4210, 0x294a, 0x94a5, 0x4a52, 0xbd29,
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0xad7a, 0xd6b5, 0x6b5a, 0xb5a9, 0x5ad6,
-    0xad7b, 0xc631, 0x7b18, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xad7b, 0xc631, 0x6b18, 0x35ad, 0xdec6, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x6310, 0x294a, 0x94c5,
@@ -499,20 +504,15 @@ u_category =
     0x8c63, 0x1084, 0x8842, 0xa531, 0x4210, 0x2948, 0x1885, 0x0863,
     0xc631, 0x6318, 0x210c, 0x94a4, 0x0852, 0x8421, 0x4210, 0x2108,
     0x1484, 0x4a63, 0xc631, 0x6318, 0x310a, 0x2108, 0x1084, 0x0842,
-    0xdef5, 0xad7b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x6319, 0xad4a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0xbdef, 0xdef7,
     0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x3890, 0xef7a,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
-    0x2108, 0x1084, 0x0842, 0x8421, 0xdef4, 0x277b, 0x1084, 0x0842,
-    0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
-    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
-    0x4210, 0x2108, 0x9084, 0x7bde, 0x84ef, 0x4210, 0x2108, 0x1084,
-    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
-    0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0xdef4, 0xef7b,
+    0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x4213,
@@ -526,14 +526,14 @@ u_category =
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x13a4, 0x4842, 0x84ef,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
-    0x2108, 0x1084, 0x0842, 0x8421, 0xde90, 0x2f7b, 0xc635, 0x6318,
+    0x2108, 0x1084, 0x0842, 0x8421, 0xde90, 0x294b, 0xc635, 0x6318,
     0x518c, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0xef7a,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0xd6b5, 0x6b5a, 0xb5ad,
     0xdef6, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x7a42, 0xbdef, 0xdef7, 0xef7b,
-    0x109d, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x108c, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
@@ -542,12 +542,7 @@ u_category =
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
-    0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
-    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
-    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
-    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
-    0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
-    0x8421, 0x4210, 0x2462, 0x1084, 0x0842, 0xbde9, 0xdef7, 0xef7b,
+    0x8421, 0x4210, 0x2462, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1096, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0xe690, 0xef7a, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
@@ -569,22 +564,27 @@ u_category =
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbd21, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
-    0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0xde90, 0xef7b, 0xf7bd,
-    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
-    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
-    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0xde90, 0xef7b, 0x1084,
+    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+    0x8421, 0x4210, 0x2108, 0x1084, 0x4842, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0xef7a, 0x14a5, 0x8c63, 0xc529, 0xd318, 0xef7b, 0x14c6,
     0x8c63, 0xa631, 0xd294, 0xef7b, 0xf7b5, 0x231e, 0x0842, 0x8421,
     0x4210, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0xef48, 0x1084, 0x7a42, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
-    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0xdef4, 0xef7b, 0x18c6,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0xd210, 0xef7b, 0x18c6,
     0x8c63, 0xc631, 0x6318, 0x318c, 0x1086, 0x0842, 0xc621, 0xdef4,
-    0xef7b, 0x2108, 0x1084, 0x0842, 0xdef5, 0x8c7b, 0xd6b5, 0x6b5a,
+    0xef7b, 0x2108, 0x1084, 0x0842, 0xdea9, 0xad7b, 0xd6b5, 0x6b5a,
     0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xc529,
-    0xd318, 0x8c7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0xd318, 0x8c7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x2108, 0x1084, 0x4c42, 0xa531, 0x5294, 0xe94a, 0x14c5, 0x4a63,
+    0xa529, 0x5294, 0x318c, 0x98c6, 0x4a52, 0xa529, 0x5294, 0x2f7a,
+    0x2108, 0x1084, 0x0842, 0xdef5, 0xef7b, 0x2108, 0x1084, 0x0842,
+    0xdef5, 0xef7b, 0xc631, 0x6318, 0x311c, 0x18c6, 0xef63, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
@@ -595,14 +595,19 @@ u_category =
     0xb5ad, 0x52d6, 0x294a, 0x94a5, 0x6b52, 0xb5ad, 0x5ad6, 0xef7b,
     0x18a5, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x94c4, 0x8a52, 0xa531, 0xde98, 0x213b, 0x2108,
-    0x1084, 0x0842, 0xdef5, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
-    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
-    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x1084, 0x0842, 0xdef5, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x4842,
+    0xa531, 0x6318, 0x298a, 0x18a5, 0x7bd3, 0xbdef, 0x1ef7, 0x8c63,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x8c62, 0xc631, 0x5318, 0x294a, 0x94a5,
     0x4c62, 0xbd29, 0x18f7, 0x8c63, 0x2108, 0x1084, 0x0842, 0xdef5,
     0x2109, 0x2108, 0x1084, 0x0842, 0x4211, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x6321, 0x318c, 0x8c46,
+    0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef,
+    0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0x94a5, 0x4a58, 0xa529, 0x5294, 0x294a, 0x94c5, 0x4a52,
+    0x8529, 0x4210, 0x210a, 0x9884, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x3084, 0x18c6, 0x8c63,
     0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c,
@@ -612,7 +617,7 @@ u_category =
     0x3184, 0x18c6, 0x8c63, 0xc631, 0x6318, 0x318c, 0x18c6, 0x8c63,
     0xc631, 0x6318, 0x318c, 0x18c6, 0x94a5, 0x4a52, 0xa529, 0x5294,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
-    0xbde9, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0x297b,
+    0xbde9, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0x5ef7, 0x294a,
     0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
     0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
     0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080,
@@ -637,18 +642,18 @@ u_category =
     0xf7b6, 0x7b60, 0xc631, 0x6318, 0x178c, 0xad6b, 0xb6b5, 0xc631,
     0x6318, 0xf18c, 0x18c1, 0x5c63, 0xc62b, 0x9b28, 0x318b, 0x18c6,
     0x8c63, 0xca31, 0x62b8, 0x318c, 0x18c6, 0xb463, 0x6b5a, 0x7bad,
-    0xbdef, 0xad6b, 0xd6b5, 0xf42a, 0x94ae, 0x4a52, 0x2949, 0x0b9b,
-    0x294a, 0x94a5, 0x4a52, 0x2949, 0xeb9b, 0x8c63, 0x7a31, 0xbdef,
-    0xdef7, 0xef7b, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73,
-    0x6739, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xbdef, 0xad6b, 0xd6b5, 0xf46a, 0x94ae, 0x4a52, 0x2949, 0x1b9b,
+    0x294a, 0x94a5, 0x4a52, 0x2949, 0xeb9b, 0x8c63, 0xc631, 0x6318,
+    0x318c, 0xef7a, 0xce73, 0xe739, 0x739c, 0x39ce, 0x9ce7, 0xce73,
+    0xe739, 0x739c, 0xdef6, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x39ce, 0x9ca7, 0x4a73,
     0xa529, 0x5294, 0x294a, 0xf7a5, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
-    0x82b5, 0x6b5a, 0xb505, 0x0006, 0x0840, 0x8000, 0x4150, 0x15ad,
+    0x82b5, 0x6b5a, 0xb505, 0x0006, 0x0840, 0x8000, 0x4150, 0x12ad,
     0x0000, 0xad40, 0xd6b5, 0x2a0a, 0xa0a8, 0x0002, 0x0d40, 0x0000,
     0x0810, 0x2421, 0x1ad4, 0x0002, 0x4a52, 0x4129, 0x2108, 0x5954,
-    0xa86b, 0x77bd, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xa529, 0x5294,
+    0xa86b, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xa529, 0x5294,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
-    0x2529, 0x5210, 0xa94a, 0xdef7, 0xef7b, 0x4a52, 0x6b29, 0xb5ad,
+    0x2529, 0x5210, 0x494a, 0xdef5, 0xef7b, 0x4a52, 0x6b29, 0xb5ad,
     0x594a, 0xad6b, 0x56b2, 0xab59, 0xb5ac, 0x5ad6, 0xacab, 0xd6b5,
     0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
     0x94ab, 0xcab5, 0x6b2a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
@@ -667,7 +672,7 @@ u_category =
     0x2956, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
     0x6b59, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
     0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x2ad6, 0x94a5, 0xd652, 0x6b5a,
-    0xbdad, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda, 0xbdef, 0xdef7, 0xef7b,
     0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
     0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbded, 0xdef7, 0xef7b, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0xded6,
@@ -693,20 +698,15 @@ u_category =
     0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
     0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
     0xb5ad, 0x5ad6, 0x956b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
-    0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
-    0x5ad6, 0xef6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
-    0x6b5a, 0xb5ad, 0x5ad6, 0xef7b, 0xd6b5, 0x7bda, 0xbdef, 0xdef7,
-    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
-    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
-    0xd6bd, 0x7b5a, 0xb5ad, 0x5ef6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
-    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbdad, 0x5ad6, 0xad6b, 0xd6b5,
-    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0xdad6,
-    0xaf6b, 0xd6b5, 0x7bde, 0xb5ed, 0x5ad6, 0xed6b, 0xd6bd, 0x6b5a,
+    0xd6bd, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+    0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
     0xcdad, 0xd735, 0x735c, 0x35cd, 0x9cd7, 0x4a52, 0xa529, 0x5294,
-    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x7b55, 0xb5ef,
-    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6bd,
-    0x6b5a, 0xb5ad, 0x5ad6, 0xed6b, 0x4a52, 0x9b29, 0x5293, 0x2eca,
-    0xef7b, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x6529,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x6b55, 0xb5ad,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0x4a52, 0x9b29, 0x5293, 0x2eca,
+    0x94bb, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x6529,
     0xcd73, 0xd735, 0x735c, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0xca52, 0x9ae6, 0xae6b, 0xe6b9, 0x6b9a, 0xb9ae, 0x9ae6, 0x4e6b,
     0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52,
@@ -716,30 +716,30 @@ u_category =
     0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
     0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0x4a52,
     0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x6b29, 0x5295, 0x294a,
-    0xef7b, 0xd6b5, 0x7b5a, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0xdef6, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xe800, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0xe842, 0x0020, 0x4200,
-    0x0100, 0x1004, 0x0000, 0x803d, 0x4010, 0x2108, 0x1084, 0xef46,
+    0x0100, 0x1004, 0x0000, 0x8020, 0x4010, 0x2108, 0x1084, 0x0006,
     0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008,
     0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020,
     0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080,
     0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x6a10,
-    0xb5ad, 0xded6, 0xef7b, 0xf7bd, 0x7bde, 0x3def, 0x18c6, 0x8c55,
+    0xb5ad, 0x1056, 0x2840, 0xf4a5, 0x7bde, 0x3def, 0x18c6, 0x8c55,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0xbdef, 0xdef7, 0xef7b, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x4842,
-    0xbdef, 0xdef7, 0x1f7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xbdef, 0xdef7, 0x1f7b, 0xf7b1, 0x7bde, 0xbdef, 0xdef7, 0x2f7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbde9,
     0xdef7, 0xef7b, 0x1084, 0x0842, 0x84e9, 0x4210, 0xe908, 0x1084,
     0x0842, 0x84e9, 0x4210, 0xe908, 0x1084, 0x0842, 0x84e9, 0x4210,
     0xe908, 0x1084, 0x0842, 0x84e9, 0x4210, 0xe908, 0x94a5, 0x4a52,
     0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a,
     0x3e31, 0x60f8, 0xf18c, 0xf8c1, 0x8c60, 0xc631, 0x6318, 0x3164,
-    0xf8b2, 0x8c60, 0x360f, 0x5cd7, 0xcd73, 0x18c5, 0x1c63, 0xf7b1,
+    0xf8b2, 0x8c60, 0x360f, 0x5cd7, 0xcd73, 0x18c5, 0x1c63, 0xf631,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
@@ -770,13 +770,13 @@ u_category =
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0xe908, 0x2ab5, 0x54a5, 0xb5ad,
     0x5ad6, 0xad6b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
-    0x0842, 0xbd21, 0xdef7, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+    0x0842, 0x8421, 0xde90, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
     0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda,
     0xbdef, 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
     0x5ad6, 0xed6b, 0x294a, 0x94a5, 0x4a52, 0x5ad5, 0xad6b, 0xd6b5,
-    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda, 0xbdef, 0xdef7,
-    0xef7b, 0x2955, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xd6b5, 0x6b5a,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+    0xad6b, 0x2955, 0x94a5, 0x4a52, 0xa529, 0x5294, 0xd6b5, 0x6b5a,
     0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
     0x294a, 0x94a5, 0x4a52, 0x5ad5, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
     0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0x2955,
@@ -790,7 +790,7 @@ u_category =
     0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
-    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x7bd2, 0xbdef, 0xdef7,
+    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0xd210,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0642, 0x8421,
@@ -801,53 +801,73 @@ u_category =
     0x1084, 0x0842, 0x8421, 0x4210, 0xef7a, 0xd6b5, 0x6b5a, 0xb5ad,
     0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
     0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbded, 0xdef7,
-    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
-    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+    0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x6321, 0x318c, 0x8c46,
     0x1084, 0x0842, 0x8421, 0x3210, 0x8c62, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x2108, 0x1084, 0x0842, 0xd211, 0xef7b, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x8020, 0x0200, 0x2008, 0x0080,
-    0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x83bd, 0x0200,
+    0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
     0x2008, 0x0080, 0x2902, 0x9ce7, 0x7bd8, 0xbdef, 0x5ef7, 0x1c4a,
     0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0xbd08,
-    0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
-    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
-    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
-    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x4842,
+    0x294a, 0x94a5, 0x4a52, 0xc4a5, 0x6318, 0xbd8c, 0xdef7, 0xef7b,
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x631d,
     0x318c, 0x18c6, 0x8294, 0x0200, 0x2008, 0x0080, 0x0802, 0x8021,
     0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200, 0x2008, 0x0080,
     0x0802, 0x8020, 0x0200, 0x2008, 0x0080, 0x0802, 0x8020, 0x0200,
     0x2008, 0x0080, 0x0802, 0x8423, 0x4210, 0x0108, 0x1004, 0x0800,
-    0x8020, 0x0200, 0x8308, 0x1052, 0xef7a, 0xf7bd, 0x7bde, 0xbdef,
-    0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0x8020, 0x0200, 0x8308, 0x1052, 0xe840, 0xf420, 0x7bde, 0xbdef,
+    0xdef7, 0xef7b, 0x8020, 0x0200, 0x2008, 0xdef4, 0xef7b, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
-    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0x4277, 0x2108,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0x4207, 0x2108,
     0x1484, 0x4842, 0x8421, 0x4290, 0x2108, 0x1084, 0x0842, 0x8421,
-    0x4210, 0x2108, 0x1084, 0x4a63, 0xb531, 0xdad6, 0xef7b, 0xf7bd,
-    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x4210, 0x2108, 0x1084, 0x4a63, 0xb531, 0xdad6, 0xef7b, 0x294a,
+    0x54a5, 0xb3ad, 0xdef6, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x6312, 0xbd8c, 0xdef7, 0xef7b,
     0x10c6, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x8c62, 0xc631, 0x6318, 0x318c, 0x18c6, 0x7a53, 0xbdef, 0xdef7,
-    0x8c7b, 0x2108, 0x1084, 0x0842, 0xdef5, 0xef7b, 0xf7bd, 0x7bde,
-    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x8c7b, 0x2108, 0x1084, 0x0842, 0xdef5, 0xef7b, 0x94a5, 0x4a52,
+    0xa529, 0x5294, 0x294a, 0x10a5, 0x0842, 0x3121, 0xd246, 0xef7b,
     0x2108, 0x1084, 0x0842, 0x4211, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x4842, 0xa529, 0x5294, 0x8c4a, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xa529, 0x5294,
-    0x294a, 0x18a5, 0x7bd3, 0xbdef, 0xdef7, 0x8f7b, 0xf7bd, 0x7bde,
+    0x294a, 0x18a5, 0x7bd3, 0xbdef, 0xdef7, 0x8f7b, 0x1084, 0x0842,
+    0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0xef7a,
+    0x14a5, 0x0843, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x9084,
+    0x4c62, 0xa529, 0x5318, 0x318c, 0xc626, 0x6318, 0x318c, 0x18c6,
+    0x1f63, 0x2108, 0x1084, 0x0842, 0xdef5, 0x8c7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0x5294, 0x314a, 0x14a6,
     0x4a63, 0xbde9, 0xdef7, 0xef7b, 0x9084, 0x0842, 0x8421, 0x5210,
-    0xef4c, 0x2108, 0x1084, 0x0842, 0x1ef5, 0x8c63, 0xf7bd, 0x7bde,
-    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xef4c, 0x2108, 0x1084, 0x0842, 0x1ef5, 0x8c63, 0x1084, 0x0842,
+    0x8421, 0x4210, 0x2108, 0x1083, 0x0842, 0xb5a9, 0xd312, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
-    0x4210, 0x2108, 0x1084, 0x7bd2, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x9485,
+    0x0852, 0x8529, 0x4210, 0x2948, 0x90a4, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0x4277, 0x8c46, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x109d, 0x0842, 0x9de9, 0x4210, 0xe908, 0x109d, 0x0842, 0xbde9,
+    0xdef7, 0xef7b, 0x1084, 0x0842, 0x84e9, 0x4210, 0xe908, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef,
+    0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x8a63,
+    0xc531, 0x6898, 0xef4a, 0x2108, 0x1084, 0x0842, 0xdef5, 0xef7b,
+    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x7bd2, 0xbdef, 0xdef7, 0xef7b, 0x1084,
+    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xbde9, 0x4277,
+    0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+    0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0xd210, 0xef7b,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef,
@@ -862,7 +882,7 @@ u_category =
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0xef48, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
-    0x8421, 0xde90, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+    0x8421, 0x4210, 0xef48, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
@@ -874,8 +894,8 @@ u_category =
     0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
-    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0xf484,
-    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x5084,
+    0x294a, 0x94a5, 0x4a52, 0xa529, 0xf694, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0x77bd, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
     0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
@@ -955,18 +975,43 @@ u_category =
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x4842, 0xa4ef, 0x4213, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
-    0x4842, 0xa427, 0x4ef7, 0x277a, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
-    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0x4842, 0xa427, 0x4ef7, 0x277a, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x2108, 0x1084, 0x4842, 0x4a8f, 0xa529, 0x5294, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x8842, 0x4a52,
-    0xdef5, 0x8f7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0xd529, 0x8f7b, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0xdef4, 0x8f7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x94a4, 0x4bd2, 0xbde9, 0x5ef7, 0x294a, 0x1084, 0x09d2, 0x9d21,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x7bd2, 0xa5ef, 0xde94, 0x2f7b, 0x294a, 0x94a5, 0xbd52, 0xdef7,
-    0xef7b, 0xc631, 0x6318, 0xb18c, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xef7b, 0xc631, 0x6318, 0xb18c, 0xdef7, 0xef7b, 0x1084, 0x0842,
+    0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x8a94,
+    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x4842, 0x3def, 0x18c6, 0x8c63, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x2108, 0x1084, 0x4842, 0x4aef, 0xa529, 0x5294, 0x1084, 0x0842,
+    0x8421, 0x4210, 0x2108, 0x9084, 0x7bde, 0x4aef, 0xa529, 0x5294,
+    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0xa421, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef,
+    0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0x294a, 0x94a5,
+    0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0xea94,
+    0x18a6, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x0842, 0xa521, 0x5294, 0x294a, 0x94a5, 0x4a52, 0x3189, 0x18c6,
+    0xef63, 0x2bbd, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x14a5,
+    0x0842, 0x8421, 0x4210, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x18a5, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x98c6,
+    0x4a52, 0xa631, 0x1894, 0x8c75, 0xf631, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
@@ -978,6 +1023,21 @@ u_category =
     0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5,
     0x4a52, 0xa529, 0x5294, 0x294a, 0x94a5, 0x4a52, 0xa529, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xc631, 0x7bd8, 0xbdef, 0xdef7, 0xef7b,
+    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0xe908, 0xf7bd,
+    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x0842, 0xa421, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xf484, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef,
+    0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
     0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
     0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
@@ -1049,16 +1109,81 @@ u_category =
     0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
     0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
     0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda, 0xbdef,
+    0xdef7, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xed6b, 0xd6bd,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xed6b, 0xd6bd, 0x6b5a, 0xb5ad, 0x5ad6,
+    0xad6b, 0xd6bd, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0x294a, 0x94a5, 0x4a52, 0xdea9, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xed6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+    0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+    0xb5ad, 0xdef6, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+    0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0xded6, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
+    0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+    0xd6b5, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0xded6, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0xdef7,
+    0xef7b, 0xf6b5, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0x5ad6, 0xad6b, 0xf7b5, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xd6b5,
+    0x6b5a, 0xb5af, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+    0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+    0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xef7b,
+    0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda, 0xbdef,
+    0xdef7, 0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7b5a, 0xb5ad, 0xded6,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xd6b5, 0x6b5a,
+    0xb5ad, 0x5ad6, 0xad6b, 0xf7b5, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xed6b, 0xd7b5, 0x6b5a, 0xb5ad, 0x5ad6,
+    0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+    0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b,
+    0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+    0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+    0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbdad, 0x5ad6, 0xef7b,
+    0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xef6b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
+    0xef7b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+    0xbdad, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef,
     0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0x5af7, 0xad6b,
+    0xd6bd, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd7b5, 0x7b5a, 0xb5ed,
+    0x5ed7, 0xed6b, 0xd6b5, 0x6b5a, 0xb5ef, 0xdad6, 0xef6b, 0xd6b5,
+    0x6bda, 0xb5ad, 0x5ad6, 0xad6b, 0xf7b5, 0x6bde, 0xb5ad, 0x5ad6,
+    0xad6b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
+    0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xbdef, 0xdef7,
+    0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
+    0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad,
+    0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5,
+    0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6,
+    0xad6b, 0xd6b5, 0x6b5a, 0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x6b5a,
+    0xb5ad, 0x5ad6, 0xad6b, 0xd6b5, 0x7bda, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
     0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210,
     0x2108, 0x1084, 0x0842, 0xbde9, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
     0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b,
     0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
+    0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084,
+    0x7a42, 0xbdef, 0xdef7, 0xef7b, 0x1084, 0x0842, 0x8421, 0x4210,
+    0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842,
+    0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421, 0x4210, 0x2108,
+    0x1084, 0x0842, 0x8421, 0x4210, 0x2108, 0x1084, 0x0842, 0x8421,
     0x4210, 0xef48, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd,
     0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7,
     0xef7b, 0xf7bd, 0x7bde, 0xbdef, 0xdef7, 0xef7b, 0xf7bd, 0x7bde,
index 9118418..9a67ec3 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
index dd935e7..ba54ae2 100644 (file)
@@ -1,5 +1,5 @@
 /* Categories of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
similarity index 94%
rename from lib/unictype/combining.c
rename to lib/unictype/combiningclass.c
index dfddc90..c82db4e 100644 (file)
@@ -1,5 +1,5 @@
 /* Combining classes of Unicode characters.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
@@ -21,7 +21,7 @@
 #include "unictype.h"
 
 /* Define u_combclass table.  */
-#include "combining.h"
+#include "combiningclass.h"
 
 int
 uc_combining_class (ucs4_t uc)
similarity index 81%
rename from lib/unictype/combining.h
rename to lib/unictype/combiningclass.h
index 5f1c8be..a87e75b 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Combining class of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define combclass_header_0 16
 #define combclass_header_1 2
 #define combclass_header_2 7
@@ -11,7 +11,7 @@ struct
   {
     int level1[2];
     short level2[2 << 9];
-    unsigned char level3[43 << 7];
+    unsigned char level3[53 << 7];
   }
 u_combclass =
 {
@@ -19,17 +19,17 @@ u_combclass =
   {
        -1,    -1,    -1,    -1,    -1,    -1,     0,    -1,
        -1,   128,    -1,   256,   384,   512,   640,   768,
-       -1,    -1,   896,  1024,  1024,  1024,  1024,  1152,
-     1280,  1024,  1152,  1408,  1536,  1664,  1792,  1920,
-     2048,  2176,    -1,    -1,    -1,    -1,  2304,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  2432,  2560,
-       -1,  2688,  2816,    -1,  2944,    -1,  3072,  3200,
-     3328,    -1,    -1,  3456,    -1,    -1,    -1,    -1,
-       -1,  3584,    -1,    -1,    -1,    -1,    -1,    -1,
+      896,    -1,  1024,  1152,  1152,  1152,  1152,  1280,
+     1408,  1152,  1280,  1536,  1664,  1792,  1920,  2048,
+     2176,  2304,    -1,    -1,    -1,    -1,  2432,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  2560,  2688,
+       -1,  2816,  2944,    -1,  3072,    -1,  3200,  3328,
+     3456,  3584,    -1,  3712,    -1,    -1,    -1,    -1,
+       -1,  3840,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,  3712,    -1,    -1,    -1,    -1,
-     3840,  3968,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,  3968,  4096,  4224,    -1,    -1,    -1,    -1,
+     4352,  4480,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -58,8 +58,8 @@ u_combclass =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  4096,    -1,    -1,    -1,
-     4224,  4352,  4480,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  4608,  4736,    -1,    -1,
+     4864,  4992,  5120,  5248,    -1,  5376,    -1,  5504,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -79,12 +79,13 @@ u_combclass =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  4608,    -1,
-       -1,    -1,    -1,    -1,  4736,    -1,    -1,    -1,
-       -1,    -1,    -1,  4864,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  5632,    -1,
+       -1,    -1,    -1,    -1,  5760,    -1,    -1,    -1,
+       -1,    -1,    -1,  5888,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  4992,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  6016,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     6144,  6272,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -132,8 +133,7 @@ u_combclass =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,  5120,  5248,  5376,    -1,    -1,    -1,
+       -1,    -1,  6400,  6528,  6656,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -206,7 +206,7 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,  27,  28,  29,  30,  31,
      32,  33,  34, 230, 230, 220, 220, 230,
-    230, 230, 230, 230, 220, 230, 230,   0,
+    230, 230, 230, 230, 220, 230, 230, 220,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
      35,   0,   0,   0,   0,   0,   0,   0,
@@ -261,6 +261,22 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0, 230, 230,
+    230, 230,   0, 230, 230, 230, 230, 230,
+    230, 230, 230, 230,   0, 230, 230, 230,
+      0, 230, 230, 230, 230, 230,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0, 220, 220, 220,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -446,7 +462,7 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0, 230,
+      0,   0,   0,   0,   0, 230, 230, 230,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -527,10 +543,10 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      9,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0, 230, 230, 230,
+    230, 230, 230, 230, 230,   0,   0, 220,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -559,7 +575,9 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   7,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   9,   9,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -567,9 +585,9 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   7,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   7,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -587,6 +605,20 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+    230, 230, 230,   0,   1, 220, 220, 220,
+    220, 220, 230, 230, 220, 220, 220, 220,
+    230,   0,   1,   1,   1,   1,   1,   1,
+      1,   0,   0,   0,   0, 220,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
     230, 230, 220, 230, 230, 230, 230, 230,
     230, 230, 220, 230, 230, 234, 214, 220,
     202, 230, 230, 230, 230, 230, 230, 230,
@@ -594,7 +626,7 @@ u_combclass =
     230, 230, 230, 230, 230, 230, 230,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0, 230, 220,
+      0,   0,   0,   0, 233, 220, 230, 220,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -623,6 +655,38 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0, 230,
+    230, 230,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   9,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
     230, 230, 230, 230, 230, 230, 230, 230,
     230, 230, 230, 230, 230, 230, 230, 230,
     230, 230, 230, 230, 230, 230, 230, 230,
@@ -675,7 +739,6 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0, 230,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0, 230, 230,   0,   0,
-      0,   0,   0,   0,   0,   0,   9,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -690,6 +753,13 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+    230, 230,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   9,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -699,7 +769,6 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   9,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -710,6 +779,17 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   9,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    230, 230, 230, 230, 230, 230, 230, 230,
+    230, 230, 230, 230, 230, 230, 230, 230,
+    230, 230,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0, 220, 220, 220,   0,   0,
@@ -726,6 +806,54 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   7,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      9,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    230,   0, 230, 230, 220,   0,   0, 230,
+    230,   0,   0,   0,   0,   0, 230, 230,
+      0, 230,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   9,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,  26,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -795,6 +923,38 @@ u_combclass =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   9,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   9,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
diff --git a/lib/unictype/combiningclass_byname.c b/lib/unictype/combiningclass_byname.c
new file mode 100644 (file)
index 0000000..4262ace
--- /dev/null
@@ -0,0 +1,63 @@
+/* Canonical combining classes of Unicode characters.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "unictype/combiningclass_byname.h"
+
+int
+uc_combining_class_byname (const char *ccc_name)
+{
+  size_t len;
+
+  len = strlen (ccc_name);
+  if (len <= MAX_WORD_LENGTH)
+    {
+      char buf[MAX_WORD_LENGTH + 1];
+      const struct named_combining_class *found;
+
+      /* Copy ccc_name into buf, converting '_' and '-' to ' '.  */
+      {
+        const char *p = ccc_name;
+        char *q = buf;
+
+        for (;; p++, q++)
+          {
+            char c = *p;
+
+            if (c == '_' || c == '-')
+              c = ' ';
+            *q = c;
+            if (c == '\0')
+              break;
+          }
+      }
+      /* Here q == buf + len.  */
+
+      /* Do a hash table lookup, with case-insensitive comparison.  */
+      found = uc_combining_class_lookup (buf, len);
+      if (found != NULL)
+        return found->combining_class;
+    }
+  /* Invalid combining class name.  */
+  return -1;
+}
diff --git a/lib/unictype/combiningclass_byname.gperf b/lib/unictype/combiningclass_byname.gperf
new file mode 100644 (file)
index 0000000..4096850
--- /dev/null
@@ -0,0 +1,66 @@
+/* Categories of Unicode characters.  */
+struct named_combining_class { int name; int combining_class; };
+%struct-type
+%ignore-case
+%language=ANSI-C
+%define hash-function-name combining_class_hash
+%define lookup-function-name uc_combining_class_lookup
+%readonly-tables
+%global-table
+%define word-array-name combining_class_names
+%pic
+%define string-pool-name combining_class_stringpool
+%%
+NR, UC_CCC_NR
+OV, UC_CCC_OV
+NK, UC_CCC_NK
+KV, UC_CCC_KV
+VR, UC_CCC_VR
+ATBL, UC_CCC_ATBL
+ATB, UC_CCC_ATB
+ATA, UC_CCC_ATA
+ATAR, UC_CCC_ATAR
+BL, UC_CCC_BL
+B, UC_CCC_B
+BR, UC_CCC_BR
+L, UC_CCC_L
+R, UC_CCC_R
+AL, UC_CCC_AL
+A, UC_CCC_A
+AR, UC_CCC_AR
+DB, UC_CCC_DB
+DA, UC_CCC_DA
+IS, UC_CCC_IS
+Not Reordered, UC_CCC_NR
+NotReordered, UC_CCC_NR
+Overlay, UC_CCC_OV
+Nukta, UC_CCC_NK
+Kana Voicing, UC_CCC_KV
+KanaVoicing, UC_CCC_KV
+Virama, UC_CCC_VR
+Attached Below Left, UC_CCC_ATBL
+AttachedBelowLeft, UC_CCC_ATBL
+Attached Below, UC_CCC_ATB
+AttachedBelow, UC_CCC_ATB
+Attached Above, UC_CCC_ATA
+AttachedAbove, UC_CCC_ATA
+Attached Above Right, UC_CCC_ATAR
+AttachedAboveRight, UC_CCC_ATAR
+Below Left, UC_CCC_BL
+BelowLeft, UC_CCC_BL
+Below, UC_CCC_B
+Below Right, UC_CCC_BR
+BelowRight, UC_CCC_BR
+Left, UC_CCC_L
+Right, UC_CCC_R
+Above Left, UC_CCC_AL
+AboveLeft, UC_CCC_AL
+Above, UC_CCC_A
+Above Right, UC_CCC_AR
+AboveRight, UC_CCC_AR
+Double Below, UC_CCC_DB
+DoubleBelow, UC_CCC_DB
+Double Above, UC_CCC_DA
+DoubleAbove, UC_CCC_DA
+Iota Subscript, UC_CCC_IS
+IotaSubscript, UC_CCC_IS
diff --git a/lib/unictype/combiningclass_byname.h b/lib/unictype/combiningclass_byname.h
new file mode 100644 (file)
index 0000000..008e381
--- /dev/null
@@ -0,0 +1,399 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./unictype/combiningclass_byname.gperf  */
+/* Computed positions: -k'1,6,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 2 "./unictype/combiningclass_byname.gperf"
+struct named_combining_class { int name; int combining_class; };
+
+#define TOTAL_KEYWORDS 53
+#define MIN_WORD_LENGTH 1
+#define MAX_WORD_LENGTH 20
+#define MIN_HASH_VALUE 3
+#define MAX_HASH_VALUE 66
+/* maximum key range = 64, duplicates = 0 */
+
+#ifndef GPERF_DOWNCASE
+#define GPERF_DOWNCASE 1
+static unsigned char gperf_downcase[256] =
+  {
+      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
+     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
+     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
+     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
+     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
+    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
+    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+    255
+  };
+#endif
+
+#ifndef GPERF_CASE_STRCMP
+#define GPERF_CASE_STRCMP 1
+static int
+gperf_case_strcmp (register const char *s1, register const char *s2)
+{
+  for (;;)
+    {
+      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
+      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
+      if (c1 != 0 && c1 == c2)
+        continue;
+      return (int)c1 - (int)c2;
+    }
+}
+#endif
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+combining_class_hash (register const char *str, register unsigned int len)
+{
+  static const unsigned char asso_values[] =
+    {
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 28, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67,  4,  1, 67, 31,  1,
+      67,  2,  8,  6, 67, 47, 15, 67, 11,  1,
+      67, 67,  9,  6, 10,  3,  2, 22, 67, 13,
+      67, 67, 67, 67, 67, 67, 67,  4,  1, 67,
+      31,  1, 67,  2,  8,  6, 67, 47, 15, 67,
+      11,  1, 67, 67,  9,  6, 10,  3,  2, 22,
+      67, 13, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+      67, 67, 67, 67, 67, 67
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+        hval += asso_values[(unsigned char)str[5]];
+      /*FALLTHROUGH*/
+      case 5:
+      case 4:
+      case 3:
+      case 2:
+      case 1:
+        hval += asso_values[(unsigned char)str[0]];
+        break;
+    }
+  return hval + asso_values[(unsigned char)str[len - 1]];
+}
+
+struct combining_class_stringpool_t
+  {
+    char combining_class_stringpool_str3[sizeof("B")];
+    char combining_class_stringpool_str5[sizeof("OV")];
+    char combining_class_stringpool_str8[sizeof("ATB")];
+    char combining_class_stringpool_str9[sizeof("A")];
+    char combining_class_stringpool_str10[sizeof("Above")];
+    char combining_class_stringpool_str11[sizeof("ATA")];
+    char combining_class_stringpool_str12[sizeof("BR")];
+    char combining_class_stringpool_str13[sizeof("VR")];
+    char combining_class_stringpool_str14[sizeof("IS")];
+    char combining_class_stringpool_str15[sizeof("AR")];
+    char combining_class_stringpool_str16[sizeof("Virama")];
+    char combining_class_stringpool_str17[sizeof("ATAR")];
+    char combining_class_stringpool_str18[sizeof("BL")];
+    char combining_class_stringpool_str19[sizeof("R")];
+    char combining_class_stringpool_str20[sizeof("Nukta")];
+    char combining_class_stringpool_str21[sizeof("AL")];
+    char combining_class_stringpool_str22[sizeof("NR")];
+    char combining_class_stringpool_str23[sizeof("ATBL")];
+    char combining_class_stringpool_str24[sizeof("Right")];
+    char combining_class_stringpool_str25[sizeof("Overlay")];
+    char combining_class_stringpool_str26[sizeof("AttachedAbove")];
+    char combining_class_stringpool_str27[sizeof("Attached Above")];
+    char combining_class_stringpool_str28[sizeof("Below")];
+    char combining_class_stringpool_str29[sizeof("Left")];
+    char combining_class_stringpool_str30[sizeof("BelowRight")];
+    char combining_class_stringpool_str31[sizeof("L")];
+    char combining_class_stringpool_str32[sizeof("IotaSubscript")];
+    char combining_class_stringpool_str33[sizeof("AboveRight")];
+    char combining_class_stringpool_str34[sizeof("DB")];
+    char combining_class_stringpool_str35[sizeof("BelowLeft")];
+    char combining_class_stringpool_str36[sizeof("Iota Subscript")];
+    char combining_class_stringpool_str37[sizeof("DA")];
+    char combining_class_stringpool_str38[sizeof("AboveLeft")];
+    char combining_class_stringpool_str39[sizeof("AttachedBelowLeft")];
+    char combining_class_stringpool_str40[sizeof("AttachedAboveRight")];
+    char combining_class_stringpool_str41[sizeof("Attached Below Left")];
+    char combining_class_stringpool_str42[sizeof("Attached Above Right")];
+    char combining_class_stringpool_str44[sizeof("DoubleAbove")];
+    char combining_class_stringpool_str45[sizeof("Double Above")];
+    char combining_class_stringpool_str47[sizeof("AttachedBelow")];
+    char combining_class_stringpool_str48[sizeof("Attached Below")];
+    char combining_class_stringpool_str49[sizeof("Below Left")];
+    char combining_class_stringpool_str50[sizeof("Below Right")];
+    char combining_class_stringpool_str51[sizeof("KV")];
+    char combining_class_stringpool_str52[sizeof("Above Left")];
+    char combining_class_stringpool_str53[sizeof("Above Right")];
+    char combining_class_stringpool_str55[sizeof("NotReordered")];
+    char combining_class_stringpool_str56[sizeof("Not Reordered")];
+    char combining_class_stringpool_str60[sizeof("NK")];
+    char combining_class_stringpool_str61[sizeof("KanaVoicing")];
+    char combining_class_stringpool_str63[sizeof("Kana Voicing")];
+    char combining_class_stringpool_str65[sizeof("DoubleBelow")];
+    char combining_class_stringpool_str66[sizeof("Double Below")];
+  };
+static const struct combining_class_stringpool_t combining_class_stringpool_contents =
+  {
+    "B",
+    "OV",
+    "ATB",
+    "A",
+    "Above",
+    "ATA",
+    "BR",
+    "VR",
+    "IS",
+    "AR",
+    "Virama",
+    "ATAR",
+    "BL",
+    "R",
+    "Nukta",
+    "AL",
+    "NR",
+    "ATBL",
+    "Right",
+    "Overlay",
+    "AttachedAbove",
+    "Attached Above",
+    "Below",
+    "Left",
+    "BelowRight",
+    "L",
+    "IotaSubscript",
+    "AboveRight",
+    "DB",
+    "BelowLeft",
+    "Iota Subscript",
+    "DA",
+    "AboveLeft",
+    "AttachedBelowLeft",
+    "AttachedAboveRight",
+    "Attached Below Left",
+    "Attached Above Right",
+    "DoubleAbove",
+    "Double Above",
+    "AttachedBelow",
+    "Attached Below",
+    "Below Left",
+    "Below Right",
+    "KV",
+    "Above Left",
+    "Above Right",
+    "NotReordered",
+    "Not Reordered",
+    "NK",
+    "KanaVoicing",
+    "Kana Voicing",
+    "DoubleBelow",
+    "Double Below"
+  };
+#define combining_class_stringpool ((const char *) &combining_class_stringpool_contents)
+
+static const struct named_combining_class combining_class_names[] =
+  {
+    {-1}, {-1}, {-1},
+#line 24 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str3, UC_CCC_B},
+    {-1},
+#line 15 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str5, UC_CCC_OV},
+    {-1}, {-1},
+#line 20 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str8, UC_CCC_ATB},
+#line 29 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str9, UC_CCC_A},
+#line 58 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str10, UC_CCC_A},
+#line 21 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str11, UC_CCC_ATA},
+#line 25 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str12, UC_CCC_BR},
+#line 18 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str13, UC_CCC_VR},
+#line 33 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str14, UC_CCC_IS},
+#line 30 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str15, UC_CCC_AR},
+#line 40 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str16, UC_CCC_VR},
+#line 22 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str17, UC_CCC_ATAR},
+#line 23 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str18, UC_CCC_BL},
+#line 27 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str19, UC_CCC_R},
+#line 37 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str20, UC_CCC_NK},
+#line 28 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str21, UC_CCC_AL},
+#line 14 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str22, UC_CCC_NR},
+#line 19 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str23, UC_CCC_ATBL},
+#line 55 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str24, UC_CCC_R},
+#line 36 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str25, UC_CCC_OV},
+#line 46 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str26, UC_CCC_ATA},
+#line 45 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str27, UC_CCC_ATA},
+#line 51 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str28, UC_CCC_B},
+#line 54 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str29, UC_CCC_L},
+#line 53 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str30, UC_CCC_BR},
+#line 26 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str31, UC_CCC_L},
+#line 66 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str32, UC_CCC_IS},
+#line 60 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str33, UC_CCC_AR},
+#line 31 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str34, UC_CCC_DB},
+#line 50 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str35, UC_CCC_BL},
+#line 65 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str36, UC_CCC_IS},
+#line 32 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str37, UC_CCC_DA},
+#line 57 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str38, UC_CCC_AL},
+#line 42 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str39, UC_CCC_ATBL},
+#line 48 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str40, UC_CCC_ATAR},
+#line 41 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str41, UC_CCC_ATBL},
+#line 47 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str42, UC_CCC_ATAR},
+    {-1},
+#line 64 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str44, UC_CCC_DA},
+#line 63 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str45, UC_CCC_DA},
+    {-1},
+#line 44 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str47, UC_CCC_ATB},
+#line 43 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str48, UC_CCC_ATB},
+#line 49 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str49, UC_CCC_BL},
+#line 52 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str50, UC_CCC_BR},
+#line 17 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str51, UC_CCC_KV},
+#line 56 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str52, UC_CCC_AL},
+#line 59 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str53, UC_CCC_AR},
+    {-1},
+#line 35 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str55, UC_CCC_NR},
+#line 34 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str56, UC_CCC_NR},
+    {-1}, {-1}, {-1},
+#line 16 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str60, UC_CCC_NK},
+#line 39 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str61, UC_CCC_KV},
+    {-1},
+#line 38 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str63, UC_CCC_KV},
+    {-1},
+#line 62 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str65, UC_CCC_DB},
+#line 61 "./unictype/combiningclass_byname.gperf"
+    {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str66, UC_CCC_DB}
+  };
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct named_combining_class *
+uc_combining_class_lookup (register const char *str, register unsigned int len)
+{
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = combining_class_hash (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
+          register int o = combining_class_names[key].name;
+          if (o >= 0)
+            {
+              register const char *s = o + combining_class_stringpool;
+
+              if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
+                return &combining_class_names[key];
+            }
+        }
+    }
+  return 0;
+}
diff --git a/lib/unictype/combiningclass_longname.c b/lib/unictype/combiningclass_longname.c
new file mode 100644 (file)
index 0000000..bbc68f9
--- /dev/null
@@ -0,0 +1,130 @@
+/* Canonical combining classes of Unicode characters.
+   Copyright (C) 2002, 2006-2007, 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <stdlib.h>
+
+static const signed char u_combining_class_index_part1[10] =
+{
+   0, /* Not Reordered */
+   1, /* Overlay */
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+   2, /* Nukta */
+   3, /* Kana Voicing */
+   4  /* Virama */
+};
+static const signed char u_combining_class_index_part2[241 - 200] =
+{
+   5, /* Attached Below Left */
+  -1,
+   6, /* Attached Below */
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+   7, /* Attached Above */
+  -1,
+   8, /* Attached Above Right */
+  -1,
+   9, /* Below Left */
+  -1,
+  10, /* Below */
+  -1,
+  11, /* Below Right */
+  -1,
+  12, /* Left */
+  -1,
+  13, /* Right */
+  -1,
+  14, /* Above Left */
+  -1,
+  15, /* Above */
+  -1,
+  16, /* Above Right */
+  17, /* Double Below */
+  18, /* Double Above */
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  19  /* Iota Subscript */
+};
+
+static const char u_combining_class_long_name[20][21] =
+{
+  "Not Reordered",
+  "Overlay",
+  "Nukta",
+  "Kana Voicing",
+  "Virama",
+  "Attached Below Left",
+  "Attached Below",
+  "Attached Above",
+  "Attached Above Right",
+  "Below Left",
+  "Below",
+  "Below Right",
+  "Left",
+  "Right",
+  "Above Left",
+  "Above",
+  "Above Right",
+  "Double Below",
+  "Double Above",
+  "Iota Subscript"
+};
+
+const char *
+uc_combining_class_long_name (int ccc)
+{
+  if (ccc >= 0)
+    {
+      int index;
+
+      if (ccc < 10)
+        index = u_combining_class_index_part1[ccc];
+      else if (ccc >= 200 && ccc < 241)
+        index = u_combining_class_index_part2[ccc - 200];
+      else
+        return NULL;
+
+      if (index >= 0)
+        {
+          if (index < sizeof (u_combining_class_long_name) / sizeof (u_combining_class_long_name[0]))
+            return u_combining_class_long_name[index];
+          else
+            abort ();
+        }
+    }
+  return NULL;
+}
diff --git a/lib/unictype/combiningclass_name.c b/lib/unictype/combiningclass_name.c
new file mode 100644 (file)
index 0000000..c46bf5c
--- /dev/null
@@ -0,0 +1,130 @@
+/* Canonical combining classes of Unicode characters.
+   Copyright (C) 2002, 2006-2007, 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <stdlib.h>
+
+static const signed char u_combining_class_index_part1[10] =
+{
+   0, /* Not Reordered */
+   1, /* Overlay */
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+   2, /* Nukta */
+   3, /* Kana Voicing */
+   4  /* Virama */
+};
+static const signed char u_combining_class_index_part2[241 - 200] =
+{
+   5, /* Attached Below Left */
+  -1,
+   6, /* Attached Below */
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+   7, /* Attached Above */
+  -1,
+   8, /* Attached Above Right */
+  -1,
+   9, /* Below Left */
+  -1,
+  10, /* Below */
+  -1,
+  11, /* Below Right */
+  -1,
+  12, /* Left */
+  -1,
+  13, /* Right */
+  -1,
+  14, /* Above Left */
+  -1,
+  15, /* Above */
+  -1,
+  16, /* Above Right */
+  17, /* Double Below */
+  18, /* Double Above */
+  -1,
+  -1,
+  -1,
+  -1,
+  -1,
+  19  /* Iota Subscript */
+};
+
+static const char u_combining_class_name[20][5] =
+{
+  "NR",   /* Not Reordered */
+  "OV",   /* Overlay */
+  "NK",   /* Nukta */
+  "KV",   /* Kana Voicing */
+  "VR",   /* Virama */
+  "ATBL", /* Attached Below Left */
+  "ATB",  /* Attached Below */
+  "ATA",  /* Attached Above */
+  "ATAR", /* Attached Above Right */
+  "BL",   /* Below Left */
+  "B",    /* Below */
+  "BR",   /* Below Right */
+  "L",    /* Left */
+  "R",    /* Right */
+  "AL",   /* Above Left */
+  "A",    /* Above */
+  "AR",   /* Above Right */
+  "DB",   /* Double Below */
+  "DA",   /* Double Above */
+  "IS"    /* Iota Subscript */
+};
+
+const char *
+uc_combining_class_name (int ccc)
+{
+  if (ccc >= 0)
+    {
+      int index;
+
+      if (ccc < 10)
+        index = u_combining_class_index_part1[ccc];
+      else if (ccc >= 200 && ccc < 241)
+        index = u_combining_class_index_part2[ccc - 200];
+      else
+        return NULL;
+
+      if (index >= 0)
+        {
+          if (index < sizeof (u_combining_class_name) / sizeof (u_combining_class_name[0]))
+            return u_combining_class_name[index];
+          else
+            abort ();
+        }
+    }
+  return NULL;
+}
index aaf7484..8e2b676 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index c27ae78..4399aa4 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[44 << 4];
+    /*unsigned*/ int level3[51 << 4];
   }
 u_is_alnum =
 {
@@ -156,18 +156,8 @@ u_is_alnum =
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   576,
         4 +   384 * sizeof (short) / sizeof (int) +   592,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   608,
+       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
@@ -176,11 +166,17 @@ u_is_alnum =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -206,6 +202,8 @@ u_is_alnum =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   688,
        -1,
        -1,
        -1,
@@ -240,6 +238,7 @@ u_is_alnum =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
@@ -256,9 +255,9 @@ u_is_alnum =
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   640,
-        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   720,
+        4 +   384 * sizeof (short) / sizeof (int) +   736,
        -1,
        -1,
        -1,
@@ -271,6 +270,7 @@ u_is_alnum =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -361,16 +361,16 @@ u_is_alnum =
         4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
-        4 +   384 * sizeof (short) / sizeof (int) +   672,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   768,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   784,
+        4 +   384 * sizeof (short) / sizeof (int) +   800,
        -1,
        -1,
        -1,
@@ -403,7 +403,7 @@ u_is_alnum =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
-        4 +   384 * sizeof (short) / sizeof (int) +   688,
+        4 +   384 * sizeof (short) / sizeof (int) +   800,
        -1,
        -1
   },
@@ -418,32 +418,32 @@ u_is_alnum =
     0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC3FF,
+    0x00000000, 0xFFFFFFFF, 0x000007FF, 0xFFFEC3FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9FFFC060,
     0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFFFF, 0x043007FF,
+    0x043FFFFF, 0x00000110, 0x01FFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF806FFC3,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xFEFEFFC3,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x0003FFC3,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001CFFC0,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x0000FFC3,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x0002FFC3,
     0xD63DC7E8, 0x03FFC718, 0x00010000, 0x0000FFC0,
     0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x0000FFC3,
-    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x0000FFC3,
-    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC00FFC3,
+    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x0006FFC3,
+    0xFFFDDFE0, 0x27FFFFFF, 0x00004000, 0xFC00FFC3,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FBF, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x33FF005F, 0x00000000,
     0x00000001, 0x000003FF, 0xFFFFFEFF, 0x00001FFF,
-    0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+    0x00001F00, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0x800007FF, 0x3C3F03FF, 0xFFE1C062,
     0x03FF4003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
     0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
@@ -452,20 +452,20 @@ u_is_alnum =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF9FFF,
     0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x000003FF,
     0x03FF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF05FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x00000000, 0xFFFFFFC0, 0x001F3FFF,
-    0xFFFFFFFF, 0x000003FF, 0x03FF00FE, 0x00000000,
-    0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00000FFF, 0x03FF00FE, 0x00000000,
+    0x007FFFFF, 0xFFFFFFFF, 0x001FFFFF, 0x00000000,
+    0x03FF03FF, 0x00000080, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x03FF0FE0, 0x00000000,
-    0xFFFFFFF8, 0x03FFC001, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x03FFC001, 0xFFFFFFFF, 0x0000003F,
     0xFFFFFFFF, 0x0000000F, 0xFFFFE3FF, 0x3FFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0003DE00,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -473,15 +473,15 @@ u_is_alnum =
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
-    0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFF0000, 0x00000000, 0x00000000, 0x00000000,
     0x3E2FFC84, 0xF3FFBF50, 0x000043E0, 0xFFFFFFFF,
     0x000001FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000781F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
     0x00000000, 0x00008000, 0x00000000, 0x00000000,
@@ -491,7 +491,7 @@ u_is_alnum =
     0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+    0x00007FFF, 0x07FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -503,32 +503,32 @@ u_is_alnum =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00001FFF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0x80007FFC,
-    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0x80007FFF,
+    0x00FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
     0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0x000379FF, 0x000003FF, 0x00000000, 0xFC000000,
     0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
-    0xFFFFFFFC, 0x000FFFFF, 0x03FF0000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF003F, 0x0000007F, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000001FF, 0x03FF0FF7, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFC, 0x000FFFFF, 0x03FF0000, 0x08FC0000,
+    0xFFFFFFFF, 0xFFFF003F, 0x0000007F, 0x1FFFFFFF,
+    0xFFFFFFF0, 0x0007FFFF, 0x03FF8000, 0x00000000,
+    0xFFFFFFFF, 0x000001FF, 0x03FF0FF7, 0x047FFFFF,
+    0xFFFFFFFF, 0x3E62FFFF, 0x38000005, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x03FF0007,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xA0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
@@ -552,12 +552,20 @@ u_is_alnum =
     0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0x003FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x1FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x003FFFFF, 0x003FFFFF, 0x0007FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x00FFFFFF, 0x00000000, 0x0000FFC0,
+    0xFFFFFFF8, 0x0000FFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -568,6 +576,18 @@ u_is_alnum =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
     0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
     0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
@@ -576,10 +596,18 @@ u_is_alnum =
     0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
     0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
     0xFFFFFDFF, 0xFFFFFDFF, 0xFFFFCFF7, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF0000, 0xFFFF1FFF, 0xFFFF03FF, 0xFFFF03FF,
+    0x000007FF, 0x00000000, 0x00000000, 0xFFFFFFC0,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 8c64b6d..dc97ea2 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 087c7d5..db408cf 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[44 << 4];
+    /*unsigned*/ int level3[51 << 4];
   }
 u_is_alpha =
 {
@@ -156,18 +156,8 @@ u_is_alpha =
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   576,
         4 +   384 * sizeof (short) / sizeof (int) +   592,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   608,
+       -1,
         4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
@@ -176,11 +166,17 @@ u_is_alpha =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -206,6 +202,8 @@ u_is_alpha =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   688,
        -1,
        -1,
        -1,
@@ -240,6 +238,7 @@ u_is_alpha =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
@@ -256,9 +255,9 @@ u_is_alpha =
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   640,
-        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   720,
+        4 +   384 * sizeof (short) / sizeof (int) +   736,
        -1,
        -1,
        -1,
@@ -271,6 +270,7 @@ u_is_alpha =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -361,16 +361,16 @@ u_is_alpha =
         4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
-        4 +   384 * sizeof (short) / sizeof (int) +   672,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   768,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   784,
+        4 +   384 * sizeof (short) / sizeof (int) +   800,
        -1,
        -1,
        -1,
@@ -403,7 +403,7 @@ u_is_alpha =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
-        4 +   384 * sizeof (short) / sizeof (int) +   688,
+        4 +   384 * sizeof (short) / sizeof (int) +   800,
        -1,
        -1
   },
@@ -418,32 +418,32 @@ u_is_alpha =
     0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC3FF,
+    0x00000000, 0xFFFFFFFF, 0x000007FF, 0xFFFEC3FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9FFFC060,
     0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFFFF, 0x043007FF,
+    0x043FFFFF, 0x00000110, 0x01FFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF806FFC3,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xFEFEFFC3,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x0003FFC3,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001CFFC0,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x0000FFC3,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x0002FFC3,
     0xD63DC7E8, 0x03FFC718, 0x00010000, 0x0000FFC0,
     0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x0000FFC3,
-    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x0000FFC3,
-    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC00FFC3,
+    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x0006FFC3,
+    0xFFFDDFE0, 0x27FFFFFF, 0x00004000, 0xFC00FFC3,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FBF, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x33FF005F, 0x00000000,
     0x00000001, 0x000003FF, 0xFFFFFEFF, 0x00001FFF,
-    0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+    0x00001F00, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0x800007FF, 0x3C3F03FF, 0xFFE1C062,
     0x03FF4003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
     0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
@@ -452,20 +452,20 @@ u_is_alpha =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF9FFF,
     0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x000003FF,
     0x03FF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF05FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x00000000, 0xFFFFFFC0, 0x001F3FFF,
-    0xFFFFFFFF, 0x000003FF, 0x03FF00FE, 0x00000000,
-    0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00000FFF, 0x03FF00FE, 0x00000000,
+    0x007FFFFF, 0xFFFFFFFF, 0x001FFFFF, 0x00000000,
+    0x03FF03FF, 0x00000080, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x03FF0FE0, 0x00000000,
-    0xFFFFFFF8, 0x03FFC001, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x03FFC001, 0xFFFFFFFF, 0x0000003F,
     0xFFFFFFFF, 0x0000000F, 0xFFFFE3FF, 0x3FFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0003DE00,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -473,15 +473,15 @@ u_is_alpha =
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
-    0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFF0000, 0x00000000, 0x00000000, 0x00000000,
     0x3E2FFC84, 0xF3FFBF50, 0x000043E0, 0xFFFFFFFF,
     0x000001FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000781F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
     0x00000000, 0x00008000, 0x00000000, 0x00000000,
@@ -491,7 +491,7 @@ u_is_alpha =
     0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+    0x00007FFF, 0x07FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -503,32 +503,32 @@ u_is_alpha =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00001FFF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0x80007FFC,
-    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0x80007FFF,
+    0x00FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
     0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0x000379FF, 0x000003FF, 0x00000000, 0xFC000000,
     0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
-    0xFFFFFFFC, 0x000FFFFF, 0x03FF0000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF003F, 0x0000007F, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000001FF, 0x03FF0FF7, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFC, 0x000FFFFF, 0x03FF0000, 0x08FC0000,
+    0xFFFFFFFF, 0xFFFF003F, 0x0000007F, 0x1FFFFFFF,
+    0xFFFFFFF0, 0x0007FFFF, 0x03FF8000, 0x00000000,
+    0xFFFFFFFF, 0x000001FF, 0x03FF0FF7, 0x047FFFFF,
+    0xFFFFFFFF, 0x3E62FFFF, 0x38000005, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x03FF0007,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xA0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
@@ -552,12 +552,20 @@ u_is_alpha =
     0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0x003FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x1FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x003FFFFF, 0x003FFFFF, 0x0007FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x00FFFFFF, 0x00000000, 0x0000FFC0,
+    0xFFFFFFF8, 0x0000FFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -568,6 +576,18 @@ u_is_alpha =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
     0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
     0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
@@ -576,10 +596,18 @@ u_is_alpha =
     0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
     0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
     0xFFFFFDFF, 0xFFFFFDFF, 0xFFFFCFF7, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF0000, 0xFFFF1FFF, 0xFFFF03FF, 0xFFFF03FF,
+    0x000007FF, 0x00000000, 0x00000000, 0xFFFFFFC0,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 5e2ea54..b752d88 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 0506e46..6b293fc 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 13869c5..1d1e85b 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e911b0d..5d242c9 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index ec444d4..395f352 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 82d7d2c..2cb82ac 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 474211b..78426f0 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 0a00010..75a817f 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[17];
     short level2[5 << 7];
-    /*unsigned*/ int level3[52 << 4];
+    /*unsigned*/ int level3[61 << 4];
   }
 u_is_graph =
 {
@@ -56,141 +56,123 @@ u_is_graph =
        18 +   640 * sizeof (short) / sizeof (int) +   272,
        18 +   640 * sizeof (short) / sizeof (int) +   288,
        18 +   640 * sizeof (short) / sizeof (int) +   304,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   336,
        18 +   640 * sizeof (short) / sizeof (int) +   352,
        18 +   640 * sizeof (short) / sizeof (int) +   368,
        18 +   640 * sizeof (short) / sizeof (int) +   384,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
        18 +   640 * sizeof (short) / sizeof (int) +   400,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
        18 +   640 * sizeof (short) / sizeof (int) +   416,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
        18 +   640 * sizeof (short) / sizeof (int) +   432,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   448,
        18 +   640 * sizeof (short) / sizeof (int) +   464,
        18 +   640 * sizeof (short) / sizeof (int) +   480,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
        18 +   640 * sizeof (short) / sizeof (int) +   496,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   528,
-       18 +   640 * sizeof (short) / sizeof (int) +   544,
-       18 +   640 * sizeof (short) / sizeof (int) +   560,
-       18 +   640 * sizeof (short) / sizeof (int) +   576,
-       18 +   640 * sizeof (short) / sizeof (int) +   592,
-       18 +   640 * sizeof (short) / sizeof (int) +   608,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   624,
-       18 +   640 * sizeof (short) / sizeof (int) +   640,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   656,
-       18 +   640 * sizeof (short) / sizeof (int) +   672,
-       -1,
-       -1,
-       -1,
        -1,
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   528,
+       18 +   640 * sizeof (short) / sizeof (int) +   544,
+       18 +   640 * sizeof (short) / sizeof (int) +   560,
+       18 +   640 * sizeof (short) / sizeof (int) +   576,
+       18 +   640 * sizeof (short) / sizeof (int) +   592,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   608,
+       18 +   640 * sizeof (short) / sizeof (int) +   624,
+       18 +   640 * sizeof (short) / sizeof (int) +   640,
+       18 +   640 * sizeof (short) / sizeof (int) +   656,
+       18 +   640 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -198,11 +180,17 @@ u_is_graph =
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   688,
+       18 +   640 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   720,
        -1,
        -1,
        -1,
@@ -228,6 +216,8 @@ u_is_graph =
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   736,
        -1,
        -1,
        -1,
@@ -262,195 +252,7 @@ u_is_graph =
        -1,
        -1,
        -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   688,
-       18 +   640 * sizeof (short) / sizeof (int) +   704,
-       18 +   640 * sizeof (short) / sizeof (int) +   720,
-       18 +   640 * sizeof (short) / sizeof (int) +   736,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   752,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   768,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   784,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   800,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -466,6 +268,10 @@ u_is_graph =
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   768,
+       18 +   640 * sizeof (short) / sizeof (int) +   784,
+       18 +   640 * sizeof (short) / sizeof (int) +   800,
+       18 +   640 * sizeof (short) / sizeof (int) +   816,
        -1,
        -1,
        -1,
@@ -478,10 +284,107 @@ u_is_graph =
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   832,
+       18 +   640 * sizeof (short) / sizeof (int) +   848,
+       18 +   640 * sizeof (short) / sizeof (int) +   864,
+       18 +   640 * sizeof (short) / sizeof (int) +   880,
        -1,
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   896,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   912,
+       18 +   640 * sizeof (short) / sizeof (int) +   928,
        -1,
        -1,
        -1,
@@ -513,8 +416,11 @@ u_is_graph =
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   928,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   944,
        -1,
        -1,
        -1,
@@ -548,134 +454,228 @@ u_is_graph =
        -1,
        -1,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   816
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   960
   },
   {
     0x00000000, 0xFFFFFFFE, 0xFFFFFFFF, 0x7FFFFFFF,
@@ -688,97 +688,93 @@ u_is_graph =
     0xFFFFD7F0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0xFE7FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0xFE7FFFFF, 0xFFFFFFFE,
     0xFFFE06FF, 0xFFFFFFFF, 0xFFFF00FF, 0x001F07FF,
-    0xCFFFFFCF, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xCFFFFFCF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFBFFF, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x07FFFFFF,
+    0xFFFFFFFF, 0x7FFF3FFF, 0x4FFFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF807FFFF,
-    0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x07FFFFCF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFEFFFFFF,
+    0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x0FFFFFCF,
     0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
     0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0002FFCF,
-    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0003FFCF,
+    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x00FFFFCF,
     0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x07FFFFC0,
     0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0xFF00FFCF,
     0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0006FFCF,
-    0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFE3FFFCF,
+    0xFFFDDFEC, 0xE7FFFFFF, 0x00807DDF, 0xFE3FFFCF,
     0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x001C0000,
     0xFFFFFFFE, 0x87FFFFFF, 0x0FFFFFFF, 0x00000000,
     0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFEFF, 0xFFFE1FFF,
-    0xFEFF0FFF, 0xDFFFFFFF, 0x001FDFFF, 0x00000000,
+    0xFEFFFFFF, 0xDFFFFFFF, 0x07FFDFFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xC3FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
-    0xFF3DFFFF, 0xFFFFFFFF, 0x87FFFFFF, 0x1FFFFFFF,
+    0xFF3DFFFF, 0xFFFFFFFF, 0xE7FFFFFF, 0x1FFFFFFF,
     0x03FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
-    0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x1FFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001FFFF,
     0x001FDFFF, 0x007FFFFF, 0x000FFFFF, 0x000DDFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x03FF03FF,
     0x03FF3FFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF07FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFF1, 0x001F3FFF,
-    0xFFFFFFFF, 0xFFFF03FF, 0xC3FF03FF, 0xFFFFFFFF,
-    0xCFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF0FFF, 0xC7FF03FF, 0xFFFFFFFF,
+    0xCFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF, 0x9FFFFFFF,
+    0x03FF03FF, 0x00003FFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0FFF, 0x1FFFFFFF,
-    0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x03FFC7FF, 0xFFFFFFFF, 0xF00FFFFF,
     0xFFFFFFFF, 0xF8FFFFFF, 0xFFFFE3FF, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0x0007FFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF000007F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFDFFFFF, 0xEFCFFFDF, 0x7FDCFFFF,
     0xFFFFF880, 0xFFFFFCFF, 0x7FFFFFFF, 0xFFF3FC1F,
-    0x001F7FFF, 0x003FFFFF, 0xFFFF0000, 0x0001FFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF8FFFF, 0xFFFFFFFF,
-    0xFFFF01FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x1FFF7FFF, 0x03FFFFFF, 0xFFFF0000, 0x0001FFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
-    0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
+    0xFFFF03FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
-    0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
-    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFD7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE0007FF,
-    0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE03FFFF,
+    0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x8001803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0003FFFF, 0x00000000, 0x00000000,
     0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
     0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFE, 0xFFFFFFFF,
     0xFE7FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF7FFF, 0x00FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
-    0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
+    0xFFFF7FFF, 0x07FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
+    0x7FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -789,31 +785,31 @@ u_is_graph =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF1FFF, 0xFFFFFFFF, 0x0000007F, 0x00000000,
+    0xFFFF1FFF, 0xFFFFFFFF, 0xFFFF007F, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xF00FFFFC,
-    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xF00FFFFF,
+    0x00FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0xF8000000,
-    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC01F, 0x00000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x800FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x007FFFFF, 0xF3FF3FFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00037FFF, 0x000003FF, 0x00000000, 0xFC000000,
+    0xFFFFFFFF, 0x03FF0FFF, 0xFFFFFFFF, 0x00FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC01F, 0x0FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x800FFFFF, 0x1FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xC3FFBFFF, 0x00000000,
+    0xFFFFFFFF, 0x007FFFFF, 0xF3FF3FFF, 0x0FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xF8000007, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x03FF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xE0F8007F, 0x5F7FFFFF, 0xFFFFFFDB, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80003, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
@@ -834,12 +830,24 @@ u_is_graph =
     0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0xFFBFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x83FFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
+    0x8FFFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEFF06F, 0x870FFFFF, 0x01FF00FF, 0x00000000,
+    0xFEEFF06F, 0x870FFFFF, 0x01FF00FF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFE3FFFFF, 0xFF3FFFFF, 0xFF07FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x7FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC3FFF, 0x0000FFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000003, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -850,6 +858,18 @@ u_is_graph =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
     0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -867,13 +887,29 @@ u_is_graph =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFCFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x000FFFFF, 0x7FFE7FFF, 0xFFFEFFFE, 0x00000000,
+    0xFFFF07FF, 0xFFFF7FFF, 0xFFFFFFFF, 0xFFFF03FF,
+    0x07FFFFFF, 0x00000000, 0x00000000, 0xFFFFFFC0,
+    0xFFFF0007, 0x07FFFFFF, 0x000301FF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFBF0001, 0xFFFFFFFF, 0x1FFFFFFF,
+    0x000FFFFF, 0xFFFFFFFF, 0x000007DF, 0x0001FFFF,
+    0xFFFFFFFF, 0x7FFFFFFF, 0xFFFFFFFD, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1EFFFFFF,
+    0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0x000000FF,
+    0x00000000, 0x00000000, 0x00000000, 0xF8000000,
+    0x755DFFFE, 0xFFEF2F3F, 0x0000FFE1, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 8e1e118..e6cbd15 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 32f602c..33b7047 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -283,13 +283,13 @@ u_is_lower =
     0x00000000, 0x00200000, 0x80000000, 0xFF7FFFFF,
     0xAAAAAAAA, 0x54AAAAAA, 0xAAAAA955, 0xD4AAAAAA,
     0x46241129, 0xA251212A, 0xB5555B60, 0xAA2CAAAA,
-    0xAAAAAAAA, 0x100AAAA8, 0x0ADBAA84, 0x20268B09,
+    0xAAAAAAAA, 0x900AAAA8, 0x0ADFAA85, 0x20268B29,
     0x00041F09, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000020, 0x388A0000,
     0x00000000, 0xFFFEF000, 0xAAE37FFF, 0x0927AAAA,
     0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xAAAAAAAA,
     0xAAAAA802, 0xAAAAAAAA, 0xAAAAD554, 0xAAAAAAAA,
-    0xAAAAAAAA, 0x0000000A, 0x00000000, 0xFFFFFFFE,
+    0xAAAAAAAA, 0x000000AA, 0x00000000, 0xFFFFFFFE,
     0x0000007F, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -308,13 +308,13 @@ u_is_lower =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x00481562,
-    0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000000A,
+    0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000500A,
     0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AA8,
+    0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AAA,
     0x00AAAAAA, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xAAA8AAA8, 0xAAAAAAAA, 0x9400AAAA,
-    0x000010AA, 0x00000000, 0x00000000, 0x00000000,
+    0x000210AA, 0x000002AA, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
index 8e53e0f..b6c9093 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 73df0b9..aff0794 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[17];
     short level2[5 << 7];
-    /*unsigned*/ int level3[52 << 4];
+    /*unsigned*/ int level3[61 << 4];
   }
 u_is_print =
 {
@@ -56,141 +56,123 @@ u_is_print =
        18 +   640 * sizeof (short) / sizeof (int) +   272,
        18 +   640 * sizeof (short) / sizeof (int) +   288,
        18 +   640 * sizeof (short) / sizeof (int) +   304,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
        18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   336,
        18 +   640 * sizeof (short) / sizeof (int) +   352,
        18 +   640 * sizeof (short) / sizeof (int) +   368,
        18 +   640 * sizeof (short) / sizeof (int) +   384,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
        18 +   640 * sizeof (short) / sizeof (int) +   400,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
        18 +   640 * sizeof (short) / sizeof (int) +   416,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
        18 +   640 * sizeof (short) / sizeof (int) +   432,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
        18 +   640 * sizeof (short) / sizeof (int) +   448,
        18 +   640 * sizeof (short) / sizeof (int) +   464,
        18 +   640 * sizeof (short) / sizeof (int) +   480,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
        18 +   640 * sizeof (short) / sizeof (int) +   496,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   512,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   528,
-       18 +   640 * sizeof (short) / sizeof (int) +   544,
-       18 +   640 * sizeof (short) / sizeof (int) +   560,
-       18 +   640 * sizeof (short) / sizeof (int) +   576,
-       18 +   640 * sizeof (short) / sizeof (int) +   592,
-       18 +   640 * sizeof (short) / sizeof (int) +   608,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   624,
-       18 +   640 * sizeof (short) / sizeof (int) +   640,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   656,
-       18 +   640 * sizeof (short) / sizeof (int) +   672,
-       -1,
-       -1,
-       -1,
        -1,
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   512,
+       18 +   640 * sizeof (short) / sizeof (int) +   528,
+       18 +   640 * sizeof (short) / sizeof (int) +   544,
+       18 +   640 * sizeof (short) / sizeof (int) +   560,
+       18 +   640 * sizeof (short) / sizeof (int) +   576,
+       18 +   640 * sizeof (short) / sizeof (int) +   592,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   608,
+       18 +   640 * sizeof (short) / sizeof (int) +   624,
+       18 +   640 * sizeof (short) / sizeof (int) +   640,
+       18 +   640 * sizeof (short) / sizeof (int) +   656,
+       18 +   640 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -198,11 +180,17 @@ u_is_print =
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   688,
+       18 +   640 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   720,
        -1,
        -1,
        -1,
@@ -228,6 +216,8 @@ u_is_print =
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   736,
        -1,
        -1,
        -1,
@@ -262,195 +252,7 @@ u_is_print =
        -1,
        -1,
        -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   688,
-       18 +   640 * sizeof (short) / sizeof (int) +   704,
-       18 +   640 * sizeof (short) / sizeof (int) +   720,
-       18 +   640 * sizeof (short) / sizeof (int) +   736,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   752,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   768,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   784,
-       -1,
-       -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   800,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -466,6 +268,10 @@ u_is_print =
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   768,
+       18 +   640 * sizeof (short) / sizeof (int) +   784,
+       18 +   640 * sizeof (short) / sizeof (int) +   800,
+       18 +   640 * sizeof (short) / sizeof (int) +   816,
        -1,
        -1,
        -1,
@@ -478,10 +284,107 @@ u_is_print =
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   832,
+       18 +   640 * sizeof (short) / sizeof (int) +   848,
+       18 +   640 * sizeof (short) / sizeof (int) +   864,
+       18 +   640 * sizeof (short) / sizeof (int) +   880,
        -1,
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   896,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   912,
+       18 +   640 * sizeof (short) / sizeof (int) +   928,
        -1,
        -1,
        -1,
@@ -513,8 +416,11 @@ u_is_print =
        -1,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   928,
        -1,
        -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   944,
        -1,
        -1,
        -1,
@@ -548,134 +454,228 @@ u_is_print =
        -1,
        -1,
        -1,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   320,
-       18 +   640 * sizeof (short) / sizeof (int) +   816
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   160,
+       18 +   640 * sizeof (short) / sizeof (int) +   960
   },
   {
     0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
@@ -688,97 +688,93 @@ u_is_print =
     0xFFFFD7F0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0xFE7FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0xFE7FFFFF, 0xFFFFFFFE,
     0xFFFE06FF, 0xFFFFFFFF, 0xFFFF00FF, 0x001F07FF,
-    0xCFFFFFCF, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xCFFFFFCF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFBFFF, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x07FFFFFF,
+    0xFFFFFFFF, 0x7FFF3FFF, 0x4FFFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF807FFFF,
-    0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x07FFFFCF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFEFFFFFF,
+    0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x0FFFFFCF,
     0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
     0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0002FFCF,
-    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0003FFCF,
+    0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x00FFFFCF,
     0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x07FFFFC0,
     0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0xFF00FFCF,
     0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0006FFCF,
-    0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFE3FFFCF,
+    0xFFFDDFEC, 0xE7FFFFFF, 0x00807DDF, 0xFE3FFFCF,
     0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x001C0000,
     0xFFFFFFFE, 0x87FFFFFF, 0x0FFFFFFF, 0x00000000,
     0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFEFF, 0xFFFE1FFF,
-    0xFEFF0FFF, 0xDFFFFFFF, 0x001FDFFF, 0x00000000,
+    0xFEFFFFFF, 0xDFFFFFFF, 0x07FFDFFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xC3FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
-    0xFF3DFFFF, 0xFFFFFFFF, 0x87FFFFFF, 0x1FFFFFFF,
+    0xFF3DFFFF, 0xFFFFFFFF, 0xE7FFFFFF, 0x1FFFFFFF,
     0x03FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
-    0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x1FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001FFFF,
     0x001FDFFF, 0x007FFFFF, 0x000FFFFF, 0x000DDFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x03FF03FF,
     0x03FF7FFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF07FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFF1, 0x001F3FFF,
-    0xFFFFFFFF, 0xFFFF03FF, 0xC3FF03FF, 0xFFFFFFFF,
-    0xCFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF0FFF, 0xC7FF03FF, 0xFFFFFFFF,
+    0xCFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF, 0x9FFFFFFF,
+    0x03FF03FF, 0x00003FFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0FFF, 0x1FFFFFFF,
-    0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x03FFC7FF, 0xFFFFFFFF, 0xF00FFFFF,
     0xFFFFFFFF, 0xF8FFFFFF, 0xFFFFE3FF, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0x0007FFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF000007F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFDFFFFF, 0xEFCFFFDF, 0x7FDCFFFF,
     0xFFFFFFFF, 0xFFFFFCFF, 0xFFFFFFFF, 0xFFF3FC1F,
-    0x001F7FFF, 0x003FFFFF, 0xFFFF0000, 0x0001FFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF8FFFF, 0xFFFFFFFF,
-    0xFFFF01FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x1FFF7FFF, 0x03FFFFFF, 0xFFFF0000, 0x0001FFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
-    0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
+    0xFFFF03FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
-    0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
-    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFD7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE0007FF,
-    0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE03FFFF,
+    0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x8001803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0003FFFF, 0x00000000, 0x00000000,
     0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0xFFFFFFFF,
     0xFE7FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF7FFF, 0x00FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
-    0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
+    0xFFFF7FFF, 0x07FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
+    0x7FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -789,31 +785,31 @@ u_is_print =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF1FFF, 0xFFFFFFFF, 0x0000007F, 0x00000000,
+    0xFFFF1FFF, 0xFFFFFFFF, 0xFFFF007F, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xF00FFFFC,
-    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xF00FFFFF,
+    0x00FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0xF8000000,
-    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC01F, 0x00000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x800FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x007FFFFF, 0xF3FF3FFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00037FFF, 0x000003FF, 0x00000000, 0xFC000000,
+    0xFFFFFFFF, 0x03FF0FFF, 0xFFFFFFFF, 0x00FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC01F, 0x0FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x800FFFFF, 0x1FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xC3FFBFFF, 0x00000000,
+    0xFFFFFFFF, 0x007FFFFF, 0xF3FF3FFF, 0x0FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xF8000007, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x03FF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xE0F8007F, 0x5F7FFFFF, 0xFFFFFFDB, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80003, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
@@ -834,12 +830,24 @@ u_is_print =
     0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0xFFBFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x83FFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
+    0x8FFFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEFF06F, 0x870FFFFF, 0x01FF00FF, 0x00000000,
+    0xFEEFF06F, 0x870FFFFF, 0x01FF00FF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFE3FFFFF, 0xFF3FFFFF, 0xFF07FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x7FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFC3FFF, 0x0000FFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000003, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -850,6 +858,18 @@ u_is_print =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
     0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -867,13 +887,29 @@ u_is_print =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFCFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x000FFFFF, 0x7FFE7FFF, 0xFFFEFFFE, 0x00000000,
+    0xFFFF07FF, 0xFFFF7FFF, 0xFFFFFFFF, 0xFFFF03FF,
+    0x07FFFFFF, 0x00000000, 0x00000000, 0xFFFFFFC0,
+    0xFFFF0007, 0x07FFFFFF, 0x000301FF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFBF0001, 0xFFFFFFFF, 0x1FFFFFFF,
+    0x000FFFFF, 0xFFFFFFFF, 0x000007DF, 0x0001FFFF,
+    0xFFFFFFFF, 0x7FFFFFFF, 0xFFFFFFFD, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1EFFFFFF,
+    0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0x000000FF,
+    0x00000000, 0x00000000, 0x00000000, 0xF8000000,
+    0x755DFFFE, 0xFFEF2F3F, 0x0000FFE1, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 8071a26..4b9d11f 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index ce4a010..6640b92 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[17];
     short level2[4 << 7];
-    /*unsigned*/ int level3[45 << 4];
+    /*unsigned*/ int level3[51 << 4];
   }
 u_is_punct =
 {
@@ -46,7 +46,6 @@ u_is_punct =
        18 +   512 * sizeof (short) / sizeof (int) +   112,
        18 +   512 * sizeof (short) / sizeof (int) +   128,
        18 +   512 * sizeof (short) / sizeof (int) +   144,
-       -1,
        18 +   512 * sizeof (short) / sizeof (int) +   160,
        18 +   512 * sizeof (short) / sizeof (int) +   176,
        18 +   512 * sizeof (short) / sizeof (int) +   192,
@@ -62,6 +61,7 @@ u_is_punct =
        18 +   512 * sizeof (short) / sizeof (int) +   352,
        18 +   512 * sizeof (short) / sizeof (int) +   368,
        18 +   512 * sizeof (short) / sizeof (int) +   384,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -74,7 +74,7 @@ u_is_punct =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -118,10 +118,10 @@ u_is_punct =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   416,
        18 +   512 * sizeof (short) / sizeof (int) +   432,
        18 +   512 * sizeof (short) / sizeof (int) +   448,
        18 +   512 * sizeof (short) / sizeof (int) +   464,
+       18 +   512 * sizeof (short) / sizeof (int) +   480,
        -1,
        -1,
        -1,
@@ -148,33 +148,31 @@ u_is_punct =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   480,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
        18 +   512 * sizeof (short) / sizeof (int) +   496,
        18 +   512 * sizeof (short) / sizeof (int) +   512,
        18 +   512 * sizeof (short) / sizeof (int) +   528,
        18 +   512 * sizeof (short) / sizeof (int) +   544,
        18 +   512 * sizeof (short) / sizeof (int) +   560,
-       -1,
-       -1,
        18 +   512 * sizeof (short) / sizeof (int) +   576,
-       18 +   512 * sizeof (short) / sizeof (int) +   592,
-       -1,
-       -1,
        -1,
        -1,
+       18 +   512 * sizeof (short) / sizeof (int) +   592,
+       18 +   512 * sizeof (short) / sizeof (int) +   608,
        -1,
+       18 +   512 * sizeof (short) / sizeof (int) +   624,
+       18 +   512 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -182,9 +180,9 @@ u_is_punct =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   608,
        -1,
        -1,
+       18 +   512 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -268,13 +266,12 @@ u_is_punct =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   624,
-       18 +   512 * sizeof (short) / sizeof (int) +   640,
-       -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
+       18 +   512 * sizeof (short) / sizeof (int) +   672,
+       18 +   512 * sizeof (short) / sizeof (int) +   688,
        -1,
+       18 +   512 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
@@ -284,15 +281,18 @@ u_is_punct =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
+       18 +   512 * sizeof (short) / sizeof (int) +   720,
+       18 +   512 * sizeof (short) / sizeof (int) +   736,
+       18 +   512 * sizeof (short) / sizeof (int) +   752,
+       18 +   512 * sizeof (short) / sizeof (int) +   768,
        -1,
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   688,
+       18 +   512 * sizeof (short) / sizeof (int) +   784,
        -1,
        -1,
        -1,
@@ -420,134 +420,134 @@ u_is_punct =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   304,
-       18 +   512 * sizeof (short) / sizeof (int) +   704
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   320,
+       18 +   512 * sizeof (short) / sizeof (int) +   800
   },
   {
     0x00000000, 0xFC00FFFE, 0xF8000001, 0x78000001,
@@ -562,34 +562,38 @@ u_is_punct =
     0x000003FC, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFC000000, 0x00000000,
     0xFFFE0600, 0xFFFFFFFF, 0x000000FF, 0x00180000,
-    0xCFFFFFCF, 0x00000000, 0x7FFFF800, 0x00013C00,
+    0xCFFFFFCF, 0x00000000, 0xFFFFF800, 0x00013C00,
     0x00000000, 0x00000000, 0xFFD00000, 0x60003F9F,
     0x0002BFFF, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x03CFF800,
+    0xFBC00000, 0x7FFF3EEF, 0x4E000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000000E, 0xD0000000, 0x001E3FFF, 0x0001003C,
-    0x0000000E, 0xD0000000, 0x0080399F, 0x07FC000C,
+    0x0000000F, 0xDC000000, 0x00FEFFFF, 0x0001003C,
+    0x0000000E, 0xD0000000, 0x0080399F, 0x0FFC000C,
     0x0000000E, 0xD0000000, 0x00023987, 0x00230000,
     0x0000000E, 0xD0000000, 0x00003BBF, 0x0002000C,
-    0x0000000E, 0xD0000000, 0x00C0399F, 0x0001000C,
+    0x0000000E, 0xD0000000, 0x00C0399F, 0x00FD000C,
     0x00000004, 0xC0000000, 0x00803DC7, 0x07FF0000,
     0x0000000E, 0xC0000000, 0x00603DDF, 0xFF00000C,
-    0x0000000C, 0xD0000000, 0x00603DDF, 0x0006000C,
+    0x0000000C, 0xD0000000, 0x00603DDF, 0x0000000C,
     0x0000000C, 0xC0000000, 0x00803DDF, 0x023F000C,
     0x0000000C, 0x00000000, 0xFF5F8400, 0x001C0000,
     0x00000000, 0x80008000, 0x0C008040, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0xFFFFFFFE, 0xFFFFFC00, 0x00000000, 0xFFFE0000,
-    0xFEFF00FF, 0xDFFFFFFF, 0x001FDFFF, 0x00000000,
+    0xFEFFE0FF, 0xDFFFFFFF, 0x07FFDFFF, 0x00000000,
     0x00000000, 0x7FFFF800, 0xC3C0FC00, 0x001E3F9D,
-    0xC000BFFC, 0x00000000, 0x00000000, 0x08000000,
+    0xFC00BFFC, 0x00000000, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x80000000, 0x1FFFFFFF,
+    0x00000000, 0x00000000, 0xE0000000, 0x1FFFFFFF,
     0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000001, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00006000,
     0x18000000, 0x00000000, 0x00000000, 0x00003800,
     0x001C0000, 0x007C0000, 0x000C0000, 0x000C0000,
@@ -597,48 +601,48 @@ u_is_punct =
     0x00003FFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000200, 0x00000000, 0x00000000,
     0x00000000, 0x0FFF0FFF, 0x00000031, 0x00000000,
-    0x00000000, 0xFFFF0000, 0xC0000301, 0xFFFFFFFF,
-    0xCF800000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFF0000, 0xC4000301, 0xFFFFFFFF,
+    0xCF800000, 0x00000000, 0x7FE00000, 0x9FFFFFFF,
+    0x00000000, 0x00003F7F, 0x00000000, 0x00000000,
     0x0000001F, 0xFFF00000, 0xFC00001F, 0x1FFFFFFF,
-    0x00000007, 0x000007FE, 0x00000000, 0x00000000,
+    0x00000007, 0x000007FE, 0x00000000, 0xF00FFFC0,
     0x00000000, 0xF8FFFFF0, 0x00000000, 0xC0000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0x000421FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xF000007F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
     0xFFFFF880, 0xFFFFFCFF, 0x7FFFFFFF, 0x7FF1FC1F,
-    0x00007FFF, 0x003FFFFF, 0xFFFF0000, 0x0001FFFF,
-    0xC1D0037B, 0x0C0040AF, 0xFFF8BC1F, 0x00000000,
-    0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00007FFF, 0x03FFFFFF, 0xFFFF0000, 0x0001FFFF,
+    0xC1D0037B, 0x0C0040AF, 0xFFFFBC1F, 0x00000000,
+    0xFFFF0200, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
     0x0FFFFFFF, 0x00000000, 0x00000000, 0xFFFFFC00,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
-    0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
-    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFD7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0xFE0007E0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xFE0387E0,
+    0x00000000, 0x00000000, 0x00000000, 0x80010000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x00017FFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00037FFF, 0x00000000, 0x00000000,
     0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
@@ -646,7 +650,7 @@ u_is_punct =
     0x1E000000, 0x00000001, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFF0000, 0x00000000, 0xFFFFFFFF, 0x0000000F,
-    0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
+    0x7FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -655,21 +659,21 @@ u_is_punct =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFF0000, 0xFFFFFFFF, 0x0000007F, 0x00000000,
+    0xFFFF0000, 0xFFFFFFFF, 0x0000007F, 0xC0000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000E000, 0x00000000, 0x00000000, 0x700F8000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00FF0000,
     0x007FFFFF, 0x00000003, 0x00000000, 0x00000000,
     0x00000600, 0x00000000, 0x00000000, 0x00000000,
-    0x00000844, 0x00000FF8, 0x00000000, 0x00F00000,
-    0x00000003, 0xFFF00000, 0x0000C01F, 0x00000000,
+    0x00000844, 0x03FF0FF8, 0x00000000, 0x00F00000,
+    0x00000003, 0xFFF00000, 0x0000C01F, 0x0703FFFF,
     0x00000000, 0x0000FFC0, 0x800FFF80, 0x00000000,
+    0x0000000F, 0xFFF80000, 0xC0003FFF, 0x00000000,
+    0x00000000, 0x007FFE00, 0xF0003008, 0x0B800000,
+    0x00000000, 0xC19D0000, 0xC0000002, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x007FFE00, 0xF0003008, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00003FF8,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -677,7 +681,7 @@ u_is_punct =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000200, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFC0000, 0x00000003, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xC0000000, 0x00000000, 0x00000000,
@@ -694,12 +698,20 @@ u_is_punct =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x0000000F, 0x00000000, 0x00000000,
     0x80000000, 0x00000000, 0x00010000, 0x00000000,
+    0x00000000, 0x00000000, 0xFF800000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x8FC00000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x83C00000, 0x80000000, 0x00000000, 0x00000000,
+    0x0000F06E, 0x87000000, 0x01FF00FF, 0xE0000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000F06E, 0x87000000, 0x01FF00FF, 0x00000000,
+    0x00000000, 0xFE000000, 0xFF000000, 0xFF000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x7FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000007, 0xFF000000, 0xFFFC3FFF, 0x0000003F,
+    0x00000007, 0xFFFF0000, 0x00000003, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x000F0000,
@@ -719,8 +731,20 @@ u_is_punct =
     0x00200000, 0x00200000, 0x00008000, 0x00008000,
     0x00000200, 0x00000200, 0x00000008, 0x00000000,
     0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x000FFFFF, 0x7FFE7FFF, 0xFFFEFFFE, 0x00000000,
+    0x000007FF, 0x00006000, 0x0000FC00, 0x00000000,
+    0x07FFF800, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF0007, 0x07FFFFFF, 0x000301FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFBF0001, 0xFFFFFFFF, 0x1FFFFFFF,
+    0x000FFFFF, 0xFFFFFFFF, 0x000007DF, 0x0001FFFF,
+    0xFFFFFFFF, 0x7FFFFFFF, 0xFFFFFFFD, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1EFFFFFF,
+    0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0x000000FF,
+    0x00000000, 0x00000000, 0x00000000, 0xF8000000,
+    0x755DFFFE, 0xFFEF2F3F, 0x0000FFE1, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 93ad873..55a781b 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 90108b9..71b335c 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 9348fcc..3d70c66 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4f3a780..e714636 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -289,7 +289,7 @@ u_is_upper =
     0xFFFED740, 0x00000FFB, 0x55008000, 0xE6905555,
     0xFFFFFFFF, 0x0000FFFF, 0x00000000, 0x55555555,
     0x55555401, 0x55555555, 0x55552AAB, 0x55555555,
-    0x55555555, 0xFFFE0005, 0x007FFFFF, 0x00000000,
+    0x55555555, 0xFFFE0055, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
@@ -307,14 +307,14 @@ u_is_upper =
     0x00000000, 0xFFC00000, 0x0000FFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x0024EA9D,
-    0x55555555, 0x55555555, 0x55555555, 0x00000005,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0xC025EA9D,
+    0x55555555, 0x55555555, 0x55555555, 0x00002805,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x55555555, 0x00001554,
+    0x00000000, 0x00000000, 0x55555555, 0x00001555,
     0x00555555, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x55545554, 0x55555555, 0x6A005555,
-    0x00000855, 0x00000000, 0x00000000, 0x00000000,
+    0x00012855, 0x00000155, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x07FFFFFE, 0x00000000, 0x00000000,
index e540008..9bef819 100644 (file)
@@ -1,5 +1,5 @@
 /* ISO C <ctype.h> like properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 320f806..bd93871 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* ISO C <ctype.h> like properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 79f8339..3e71d11 100644 (file)
@@ -1,5 +1,5 @@
 /* Values of decimal digit Unicode characters.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 08dcc40..020f35b 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Decimal digit values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define decdigit_header_0 16
 #define decdigit_header_1 2
 #define decdigit_header_2 7
@@ -11,7 +11,7 @@ struct
   {
     int level1[2];
     short level2[2 << 9];
-    unsigned char level3[12 << 6];
+    unsigned char level3[13 << 6];
   }
 u_decdigit =
 {
@@ -23,8 +23,8 @@ u_decdigit =
       512,   512,   512,    -1,   640,   640,   768,    -1,
       384,   896,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   128,
-      896,    -1,  1024,   640,    -1,    -1,   640,     0,
-     1152,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      896,    -1,  1024,   640,    -1,  1152,   640,     0,
+     1280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -59,7 +59,7 @@ u_decdigit =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,   768,    -1,    -1,    -1,
-       -1,   640,  1280,    -1,   640,    -1,    -1,    -1,
+       -1,   640,  1408,   640,   640,    -1,    -1,   256,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -85,6 +85,7 @@ u_decdigit =
        -1,   768,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      512,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -133,8 +134,7 @@ u_decdigit =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1408,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1536,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -219,6 +219,14 @@ u_decdigit =
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+    0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
index ba999a2..b5fca73 100644 (file)
@@ -1,5 +1,5 @@
 /* Values of digit Unicode characters.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index d3f2961..5a11baf 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Digit values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define digit_header_0 16
 #define digit_header_1 2
 #define digit_header_2 7
@@ -11,7 +11,7 @@ struct
   {
     int level1[2];
     short level2[2 << 9];
-    unsigned char level3[20 << 6];
+    unsigned char level3[25 << 6];
   }
 u_digit =
 {
@@ -23,10 +23,10 @@ u_digit =
       640,   640,   640,    -1,   768,   768,   896,    -1,
       512,  1024,    -1,    -1,    -1,    -1,  1152,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   256,
-     1024,    -1,  1280,   768,    -1,    -1,   768,     0,
-     1408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     1536,  1664,    -1,    -1,    -1,    -1,    -1,    -1,
-     1792,  1920,    -1,    -1,    -1,    -1,  2048,  2176,
+     1024,    -1,  1280,  1408,    -1,  1536,   768,     0,
+     1664,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     1792,  1920,    -1,    -1,    -1,    -1,    -1,    -1,
+     2048,  2176,    -1,    -1,    -1,    -1,  2304,  2432,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -59,7 +59,7 @@ u_digit =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,   896,    -1,    -1,    -1,
-       -1,   768,  1664,    -1,   768,    -1,    -1,    -1,
+       -1,   768,  1920,   768,   768,    -1,    -1,   384,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -83,7 +83,9 @@ u_digit =
        -1,    -1,    -1,    -1,    -1,    -1,  1024,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,   896,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  2304,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  2560,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  2688,    -1,    -1,    -1,
+     2816,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -132,16 +134,14 @@ u_digit =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2432,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2944,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,  3072,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1
@@ -239,6 +239,22 @@ u_digit =
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x21, 0x43, 0x65, 0x87, 0xa9, 0x02, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+    0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
     0x21, 0x43, 0x65, 0x87, 0xa9, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -303,9 +319,33 @@ u_digit =
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x32, 0x54, 0x76, 0x98, 0x0a, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x32, 0x54, 0x76, 0x98, 0x0a, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x21, 0x43, 0x65, 0x87, 0xa9,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
     0x43, 0x65, 0x87, 0xa9, 0x21, 0x43, 0x65, 0x87,
     0xa9, 0x21, 0x43, 0x65, 0x87, 0xa9, 0x21, 0x43,
-    0x65, 0x87, 0xa9, 0x21, 0x43, 0x65, 0x87, 0xa9
+    0x65, 0x87, 0xa9, 0x21, 0x43, 0x65, 0x87, 0xa9,
+    0x11, 0x32, 0x54, 0x76, 0x98, 0x0a, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
   }
 };
index 5ff13fc..67e0110 100644 (file)
@@ -1,5 +1,5 @@
 /* Three-level bitmap lookup.
-   Copyright (C) 2000-2002, 2005-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2000-2002, 2005-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2000-2002.
 
    This program is free software: you can redistribute it and/or modify it
diff --git a/lib/unictype/joininggroup_byname.c b/lib/unictype/joininggroup_byname.c
new file mode 100644 (file)
index 0000000..e5324af
--- /dev/null
@@ -0,0 +1,63 @@
+/* Arabic joining group of Unicode characters.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "unictype/joininggroup_byname.h"
+
+int
+uc_joining_group_byname (const char *joining_group_name)
+{
+  size_t len;
+
+  len = strlen (joining_group_name);
+  if (len <= MAX_WORD_LENGTH)
+    {
+      char buf[MAX_WORD_LENGTH + 1];
+      const struct named_joining_group *found;
+
+      /* Copy joining_group_name into buf, converting '_' and '-' to ' '.  */
+      {
+        const char *p = joining_group_name;
+        char *q = buf;
+
+        for (;; p++, q++)
+          {
+            char c = *p;
+
+            if (c == '_' || c == '-')
+              c = ' ';
+            *q = c;
+            if (c == '\0')
+              break;
+          }
+      }
+      /* Here q == buf + len.  */
+
+      /* Do a hash table lookup, with case-insensitive comparison.  */
+      found = uc_joining_group_lookup (buf, len);
+      if (found != NULL)
+        return found->joining_group;
+    }
+  /* Invalid joining group name.  */
+  return -1;
+}
diff --git a/lib/unictype/joininggroup_byname.gperf b/lib/unictype/joininggroup_byname.gperf
new file mode 100644 (file)
index 0000000..bc2fbc8
--- /dev/null
@@ -0,0 +1,85 @@
+/* Arabic joining group of Unicode characters.  */
+struct named_joining_group { int name; int joining_group; };
+%struct-type
+%ignore-case
+%language=ANSI-C
+%define hash-function-name joining_group_hash
+%define lookup-function-name uc_joining_group_lookup
+%readonly-tables
+%global-table
+%define word-array-name joining_group_names
+%pic
+%define string-pool-name joining_group_stringpool
+%%
+No Joining Group, UC_JOINING_GROUP_NONE
+NoJoiningGroup, UC_JOINING_GROUP_NONE
+Ain, UC_JOINING_GROUP_AIN
+Alaph, UC_JOINING_GROUP_ALAPH
+Alef, UC_JOINING_GROUP_ALEF
+Beh, UC_JOINING_GROUP_BEH
+Beth, UC_JOINING_GROUP_BETH
+Burushaski Yeh Barree, UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE
+BurushaskiYehBarree, UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE
+Dal, UC_JOINING_GROUP_DAL
+Dalath Rish, UC_JOINING_GROUP_DALATH_RISH
+DalathRish, UC_JOINING_GROUP_DALATH_RISH
+E, UC_JOINING_GROUP_E
+Farsi Yeh, UC_JOINING_GROUP_FARSI_YEH
+FarsiYeh, UC_JOINING_GROUP_FARSI_YEH
+Fe, UC_JOINING_GROUP_FE
+Feh, UC_JOINING_GROUP_FEH
+Final Semkath, UC_JOINING_GROUP_FINAL_SEMKATH
+FinalSemkath, UC_JOINING_GROUP_FINAL_SEMKATH
+Gaf, UC_JOINING_GROUP_GAF
+Gamal, UC_JOINING_GROUP_GAMAL
+Hah, UC_JOINING_GROUP_HAH
+He, UC_JOINING_GROUP_HE
+Heh, UC_JOINING_GROUP_HEH
+Heh Goal, UC_JOINING_GROUP_HEH_GOAL
+HehGoal, UC_JOINING_GROUP_HEH_GOAL
+Heth, UC_JOINING_GROUP_HETH
+Kaf, UC_JOINING_GROUP_KAF
+Kaph, UC_JOINING_GROUP_KAPH
+Khaph, UC_JOINING_GROUP_KHAPH
+Knotted Heh, UC_JOINING_GROUP_KNOTTED_HEH
+KnottedHeh, UC_JOINING_GROUP_KNOTTED_HEH
+Lam, UC_JOINING_GROUP_LAM
+Lamadh, UC_JOINING_GROUP_LAMADH
+Meem, UC_JOINING_GROUP_MEEM
+Mim, UC_JOINING_GROUP_MIM
+Noon, UC_JOINING_GROUP_NOON
+Nun, UC_JOINING_GROUP_NUN
+Nya, UC_JOINING_GROUP_NYA
+Pe, UC_JOINING_GROUP_PE
+Qaf, UC_JOINING_GROUP_QAF
+Qaph, UC_JOINING_GROUP_QAPH
+Reh, UC_JOINING_GROUP_REH
+Reversed Pe, UC_JOINING_GROUP_REVERSED_PE
+ReversedPe, UC_JOINING_GROUP_REVERSED_PE
+Sad, UC_JOINING_GROUP_SAD
+Sadhe, UC_JOINING_GROUP_SADHE
+Seen, UC_JOINING_GROUP_SEEN
+Semkath, UC_JOINING_GROUP_SEMKATH
+Shin, UC_JOINING_GROUP_SHIN
+Swash Kaf, UC_JOINING_GROUP_SWASH_KAF
+SwashKaf, UC_JOINING_GROUP_SWASH_KAF
+Syriac Waw, UC_JOINING_GROUP_SYRIAC_WAW
+SyriacWaw, UC_JOINING_GROUP_SYRIAC_WAW
+Tah, UC_JOINING_GROUP_TAH
+Taw, UC_JOINING_GROUP_TAW
+Teh Marbuta, UC_JOINING_GROUP_TEH_MARBUTA
+TehMarbuta, UC_JOINING_GROUP_TEH_MARBUTA
+Teh Marbuta Goal, UC_JOINING_GROUP_TEH_MARBUTA_GOAL
+TehMarbutaGoal, UC_JOINING_GROUP_TEH_MARBUTA_GOAL
+Teth, UC_JOINING_GROUP_TETH
+Waw, UC_JOINING_GROUP_WAW
+Yeh, UC_JOINING_GROUP_YEH
+Yeh Barree, UC_JOINING_GROUP_YEH_BARREE
+YehBarree, UC_JOINING_GROUP_YEH_BARREE
+Yeh with tail, UC_JOINING_GROUP_YEH_WITH_TAIL
+YehWithTail, UC_JOINING_GROUP_YEH_WITH_TAIL
+Yudh, UC_JOINING_GROUP_YUDH
+Yudh He, UC_JOINING_GROUP_YUDH_HE
+YudhHe, UC_JOINING_GROUP_YUDH_HE
+Zain, UC_JOINING_GROUP_ZAIN
+Zhain, UC_JOINING_GROUP_ZHAIN
diff --git a/lib/unictype/joininggroup_byname.h b/lib/unictype/joininggroup_byname.h
new file mode 100644 (file)
index 0000000..402bb32
--- /dev/null
@@ -0,0 +1,476 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./unictype/joininggroup_byname.gperf  */
+/* Computed positions: -k'1-3' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 2 "./unictype/joininggroup_byname.gperf"
+struct named_joining_group { int name; int joining_group; };
+
+#define TOTAL_KEYWORDS 72
+#define MIN_WORD_LENGTH 1
+#define MAX_WORD_LENGTH 21
+#define MIN_HASH_VALUE 2
+#define MAX_HASH_VALUE 93
+/* maximum key range = 92, duplicates = 0 */
+
+#ifndef GPERF_DOWNCASE
+#define GPERF_DOWNCASE 1
+static unsigned char gperf_downcase[256] =
+  {
+      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
+     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
+     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
+     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
+     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
+    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
+    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+    255
+  };
+#endif
+
+#ifndef GPERF_CASE_STRCMP
+#define GPERF_CASE_STRCMP 1
+static int
+gperf_case_strcmp (register const char *s1, register const char *s2)
+{
+  for (;;)
+    {
+      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
+      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
+      if (c1 != 0 && c1 == c2)
+        continue;
+      return (int)c1 - (int)c2;
+    }
+}
+#endif
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+joining_group_hash (register const char *str, register unsigned int len)
+{
+  static const unsigned char asso_values[] =
+    {
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 14, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94,  7, 35, 94,  6,  1,
+      26, 15,  1, 24, 15, 32,  9, 28, 14, 17,
+      38, 23, 22,  1,  2, 15, 24, 37, 94, 11,
+      43, 94, 94, 94, 94, 94, 94,  7, 35, 94,
+       6,  1, 26, 15,  1, 24, 15, 32,  9, 28,
+      14, 17, 38, 23, 22,  1,  2, 15, 24, 37,
+      94, 11, 43, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+      94, 94, 94, 94, 94, 94
+    };
+  register int hval = len;
+
+  switch (hval)
+    {
+      default:
+        hval += asso_values[(unsigned char)str[2]];
+      /*FALLTHROUGH*/
+      case 2:
+        hval += asso_values[(unsigned char)str[1]];
+      /*FALLTHROUGH*/
+      case 1:
+        hval += asso_values[(unsigned char)str[0]];
+        break;
+    }
+  return hval;
+}
+
+struct joining_group_stringpool_t
+  {
+    char joining_group_stringpool_str2[sizeof("E")];
+    char joining_group_stringpool_str4[sizeof("He")];
+    char joining_group_stringpool_str6[sizeof("Heh")];
+    char joining_group_stringpool_str7[sizeof("Seen")];
+    char joining_group_stringpool_str8[sizeof("Heth")];
+    char joining_group_stringpool_str9[sizeof("Teth")];
+    char joining_group_stringpool_str10[sizeof("HehGoal")];
+    char joining_group_stringpool_str11[sizeof("Heh Goal")];
+    char joining_group_stringpool_str12[sizeof("Hah")];
+    char joining_group_stringpool_str13[sizeof("Tah")];
+    char joining_group_stringpool_str14[sizeof("TehMarbuta")];
+    char joining_group_stringpool_str15[sizeof("Teh Marbuta")];
+    char joining_group_stringpool_str16[sizeof("Yeh")];
+    char joining_group_stringpool_str17[sizeof("Sad")];
+    char joining_group_stringpool_str18[sizeof("TehMarbutaGoal")];
+    char joining_group_stringpool_str19[sizeof("Sadhe")];
+    char joining_group_stringpool_str20[sizeof("Teh Marbuta Goal")];
+    char joining_group_stringpool_str21[sizeof("Alef")];
+    char joining_group_stringpool_str22[sizeof("YehBarree")];
+    char joining_group_stringpool_str23[sizeof("Yeh Barree")];
+    char joining_group_stringpool_str24[sizeof("YehWithTail")];
+    char joining_group_stringpool_str25[sizeof("Dal")];
+    char joining_group_stringpool_str26[sizeof("Yeh with tail")];
+    char joining_group_stringpool_str27[sizeof("Reh")];
+    char joining_group_stringpool_str28[sizeof("Alaph")];
+    char joining_group_stringpool_str29[sizeof("Fe")];
+    char joining_group_stringpool_str30[sizeof("Shin")];
+    char joining_group_stringpool_str31[sizeof("Feh")];
+    char joining_group_stringpool_str32[sizeof("DalathRish")];
+    char joining_group_stringpool_str33[sizeof("Dalath Rish")];
+    char joining_group_stringpool_str34[sizeof("Meem")];
+    char joining_group_stringpool_str35[sizeof("Nya")];
+    char joining_group_stringpool_str36[sizeof("Yudh")];
+    char joining_group_stringpool_str37[sizeof("Semkath")];
+    char joining_group_stringpool_str38[sizeof("YudhHe")];
+    char joining_group_stringpool_str39[sizeof("Yudh He")];
+    char joining_group_stringpool_str40[sizeof("Beh")];
+    char joining_group_stringpool_str41[sizeof("Pe")];
+    char joining_group_stringpool_str42[sizeof("Beth")];
+    char joining_group_stringpool_str43[sizeof("SyriacWaw")];
+    char joining_group_stringpool_str44[sizeof("Syriac Waw")];
+    char joining_group_stringpool_str45[sizeof("Khaph")];
+    char joining_group_stringpool_str46[sizeof("Nun")];
+    char joining_group_stringpool_str47[sizeof("Lam")];
+    char joining_group_stringpool_str48[sizeof("Ain")];
+    char joining_group_stringpool_str49[sizeof("Taw")];
+    char joining_group_stringpool_str50[sizeof("Lamadh")];
+    char joining_group_stringpool_str51[sizeof("Gaf")];
+    char joining_group_stringpool_str52[sizeof("Noon")];
+    char joining_group_stringpool_str53[sizeof("SwashKaf")];
+    char joining_group_stringpool_str54[sizeof("Swash Kaf")];
+    char joining_group_stringpool_str55[sizeof("Gamal")];
+    char joining_group_stringpool_str56[sizeof("Zhain")];
+    char joining_group_stringpool_str57[sizeof("ReversedPe")];
+    char joining_group_stringpool_str58[sizeof("Reversed Pe")];
+    char joining_group_stringpool_str59[sizeof("Qaf")];
+    char joining_group_stringpool_str60[sizeof("NoJoiningGroup")];
+    char joining_group_stringpool_str61[sizeof("No Joining Group")];
+    char joining_group_stringpool_str63[sizeof("FarsiYeh")];
+    char joining_group_stringpool_str64[sizeof("Farsi Yeh")];
+    char joining_group_stringpool_str68[sizeof("Kaf")];
+    char joining_group_stringpool_str72[sizeof("Qaph")];
+    char joining_group_stringpool_str73[sizeof("KnottedHeh")];
+    char joining_group_stringpool_str74[sizeof("Knotted Heh")];
+    char joining_group_stringpool_str76[sizeof("FinalSemkath")];
+    char joining_group_stringpool_str77[sizeof("Final Semkath")];
+    char joining_group_stringpool_str78[sizeof("Zain")];
+    char joining_group_stringpool_str81[sizeof("Kaph")];
+    char joining_group_stringpool_str83[sizeof("Mim")];
+    char joining_group_stringpool_str84[sizeof("Waw")];
+    char joining_group_stringpool_str91[sizeof("BurushaskiYehBarree")];
+    char joining_group_stringpool_str93[sizeof("Burushaski Yeh Barree")];
+  };
+static const struct joining_group_stringpool_t joining_group_stringpool_contents =
+  {
+    "E",
+    "He",
+    "Heh",
+    "Seen",
+    "Heth",
+    "Teth",
+    "HehGoal",
+    "Heh Goal",
+    "Hah",
+    "Tah",
+    "TehMarbuta",
+    "Teh Marbuta",
+    "Yeh",
+    "Sad",
+    "TehMarbutaGoal",
+    "Sadhe",
+    "Teh Marbuta Goal",
+    "Alef",
+    "YehBarree",
+    "Yeh Barree",
+    "YehWithTail",
+    "Dal",
+    "Yeh with tail",
+    "Reh",
+    "Alaph",
+    "Fe",
+    "Shin",
+    "Feh",
+    "DalathRish",
+    "Dalath Rish",
+    "Meem",
+    "Nya",
+    "Yudh",
+    "Semkath",
+    "YudhHe",
+    "Yudh He",
+    "Beh",
+    "Pe",
+    "Beth",
+    "SyriacWaw",
+    "Syriac Waw",
+    "Khaph",
+    "Nun",
+    "Lam",
+    "Ain",
+    "Taw",
+    "Lamadh",
+    "Gaf",
+    "Noon",
+    "SwashKaf",
+    "Swash Kaf",
+    "Gamal",
+    "Zhain",
+    "ReversedPe",
+    "Reversed Pe",
+    "Qaf",
+    "NoJoiningGroup",
+    "No Joining Group",
+    "FarsiYeh",
+    "Farsi Yeh",
+    "Kaf",
+    "Qaph",
+    "KnottedHeh",
+    "Knotted Heh",
+    "FinalSemkath",
+    "Final Semkath",
+    "Zain",
+    "Kaph",
+    "Mim",
+    "Waw",
+    "BurushaskiYehBarree",
+    "Burushaski Yeh Barree"
+  };
+#define joining_group_stringpool ((const char *) &joining_group_stringpool_contents)
+
+static const struct named_joining_group joining_group_names[] =
+  {
+    {-1}, {-1},
+#line 26 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str2, UC_JOINING_GROUP_E},
+    {-1},
+#line 36 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str4, UC_JOINING_GROUP_HE},
+    {-1},
+#line 37 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str6, UC_JOINING_GROUP_HEH},
+#line 61 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str7, UC_JOINING_GROUP_SEEN},
+#line 40 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str8, UC_JOINING_GROUP_HETH},
+#line 74 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str9, UC_JOINING_GROUP_TETH},
+#line 39 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str10, UC_JOINING_GROUP_HEH_GOAL},
+#line 38 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str11, UC_JOINING_GROUP_HEH_GOAL},
+#line 35 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str12, UC_JOINING_GROUP_HAH},
+#line 68 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str13, UC_JOINING_GROUP_TAH},
+#line 71 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str14, UC_JOINING_GROUP_TEH_MARBUTA},
+#line 70 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str15, UC_JOINING_GROUP_TEH_MARBUTA},
+#line 76 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str16, UC_JOINING_GROUP_YEH},
+#line 59 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str17, UC_JOINING_GROUP_SAD},
+#line 73 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str18, UC_JOINING_GROUP_TEH_MARBUTA_GOAL},
+#line 60 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str19, UC_JOINING_GROUP_SADHE},
+#line 72 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str20, UC_JOINING_GROUP_TEH_MARBUTA_GOAL},
+#line 18 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str21, UC_JOINING_GROUP_ALEF},
+#line 78 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str22, UC_JOINING_GROUP_YEH_BARREE},
+#line 77 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str23, UC_JOINING_GROUP_YEH_BARREE},
+#line 80 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str24, UC_JOINING_GROUP_YEH_WITH_TAIL},
+#line 23 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str25, UC_JOINING_GROUP_DAL},
+#line 79 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str26, UC_JOINING_GROUP_YEH_WITH_TAIL},
+#line 56 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str27, UC_JOINING_GROUP_REH},
+#line 17 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str28, UC_JOINING_GROUP_ALAPH},
+#line 29 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str29, UC_JOINING_GROUP_FE},
+#line 63 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str30, UC_JOINING_GROUP_SHIN},
+#line 30 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str31, UC_JOINING_GROUP_FEH},
+#line 25 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str32, UC_JOINING_GROUP_DALATH_RISH},
+#line 24 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str33, UC_JOINING_GROUP_DALATH_RISH},
+#line 48 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str34, UC_JOINING_GROUP_MEEM},
+#line 52 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str35, UC_JOINING_GROUP_NYA},
+#line 81 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str36, UC_JOINING_GROUP_YUDH},
+#line 62 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str37, UC_JOINING_GROUP_SEMKATH},
+#line 83 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str38, UC_JOINING_GROUP_YUDH_HE},
+#line 82 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str39, UC_JOINING_GROUP_YUDH_HE},
+#line 19 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str40, UC_JOINING_GROUP_BEH},
+#line 53 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str41, UC_JOINING_GROUP_PE},
+#line 20 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str42, UC_JOINING_GROUP_BETH},
+#line 67 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str43, UC_JOINING_GROUP_SYRIAC_WAW},
+#line 66 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str44, UC_JOINING_GROUP_SYRIAC_WAW},
+#line 43 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str45, UC_JOINING_GROUP_KHAPH},
+#line 51 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str46, UC_JOINING_GROUP_NUN},
+#line 46 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str47, UC_JOINING_GROUP_LAM},
+#line 16 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str48, UC_JOINING_GROUP_AIN},
+#line 69 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str49, UC_JOINING_GROUP_TAW},
+#line 47 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str50, UC_JOINING_GROUP_LAMADH},
+#line 33 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str51, UC_JOINING_GROUP_GAF},
+#line 50 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str52, UC_JOINING_GROUP_NOON},
+#line 65 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str53, UC_JOINING_GROUP_SWASH_KAF},
+#line 64 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str54, UC_JOINING_GROUP_SWASH_KAF},
+#line 34 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str55, UC_JOINING_GROUP_GAMAL},
+#line 85 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str56, UC_JOINING_GROUP_ZHAIN},
+#line 58 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str57, UC_JOINING_GROUP_REVERSED_PE},
+#line 57 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str58, UC_JOINING_GROUP_REVERSED_PE},
+#line 54 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str59, UC_JOINING_GROUP_QAF},
+#line 15 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str60, UC_JOINING_GROUP_NONE},
+#line 14 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str61, UC_JOINING_GROUP_NONE},
+    {-1},
+#line 28 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str63, UC_JOINING_GROUP_FARSI_YEH},
+#line 27 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str64, UC_JOINING_GROUP_FARSI_YEH},
+    {-1}, {-1}, {-1},
+#line 41 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str68, UC_JOINING_GROUP_KAF},
+    {-1}, {-1}, {-1},
+#line 55 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str72, UC_JOINING_GROUP_QAPH},
+#line 45 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str73, UC_JOINING_GROUP_KNOTTED_HEH},
+#line 44 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str74, UC_JOINING_GROUP_KNOTTED_HEH},
+    {-1},
+#line 32 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str76, UC_JOINING_GROUP_FINAL_SEMKATH},
+#line 31 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str77, UC_JOINING_GROUP_FINAL_SEMKATH},
+#line 84 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str78, UC_JOINING_GROUP_ZAIN},
+    {-1}, {-1},
+#line 42 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str81, UC_JOINING_GROUP_KAPH},
+    {-1},
+#line 49 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str83, UC_JOINING_GROUP_MIM},
+#line 75 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str84, UC_JOINING_GROUP_WAW},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 22 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str91, UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE},
+    {-1},
+#line 21 "./unictype/joininggroup_byname.gperf"
+    {(int)(long)&((struct joining_group_stringpool_t *)0)->joining_group_stringpool_str93, UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE}
+  };
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct named_joining_group *
+uc_joining_group_lookup (register const char *str, register unsigned int len)
+{
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = joining_group_hash (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
+          register int o = joining_group_names[key].name;
+          if (o >= 0)
+            {
+              register const char *s = o + joining_group_stringpool;
+
+              if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
+                return &joining_group_names[key];
+            }
+        }
+    }
+  return 0;
+}
diff --git a/lib/unictype/joininggroup_name.c b/lib/unictype/joininggroup_name.c
new file mode 100644 (file)
index 0000000..1981e68
--- /dev/null
@@ -0,0 +1,55 @@
+/* Arabic joining group of Unicode characters.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+/* Use a string pool, rather than a two-dimensional array, because the strings
+   have very different lengths.  */
+
+struct joining_group_stringpool_t
+  {
+#define ELEM(tag,string) char tag[sizeof (string)];
+#include "unictype/joininggroup_name.h"
+#undef ELEM
+  };
+
+static const struct joining_group_stringpool_t joining_group_stringpool_contents =
+  {
+#define ELEM(tag,string) string,
+#include "unictype/joininggroup_name.h"
+#undef ELEM
+  };
+#define joining_group_stringpool ((const char *) &joining_group_stringpool_contents)
+
+static const int joining_group_index[] =
+  {
+#define ELEM(tag,string) (int)(long)&((struct joining_group_stringpool_t *)0)->tag,
+#include "unictype/joininggroup_name.h"
+#undef ELEM
+  };
+
+const char *
+uc_joining_group_name (int joining_group)
+{
+  if (joining_group >= 0
+      && joining_group < sizeof (joining_group_index) / sizeof (joining_group_index[0]))
+    return joining_group_stringpool + joining_group_index[joining_group];
+  return NULL;
+}
diff --git a/lib/unictype/joininggroup_name.h b/lib/unictype/joininggroup_name.h
new file mode 100644 (file)
index 0000000..78d4a10
--- /dev/null
@@ -0,0 +1,74 @@
+/* Arabic joining group of Unicode characters.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+ELEM (NONE,                  "No Joining Group")
+ELEM (AIN,                   "Ain")
+ELEM (ALAPH,                 "Alaph")
+ELEM (ALEF,                  "Alef")
+ELEM (BEH,                   "Beh")
+ELEM (BETH,                  "Beth")
+ELEM (BURUSHASKI_YEH_BARREE, "Burushaski Yeh Barree")
+ELEM (DAL,                   "Dal")
+ELEM (DALATH_RISH,           "Dalath Rish")
+ELEM (E,                     "E")
+ELEM (FARSI_YEH,             "Farsi Yeh")
+ELEM (FE,                    "Fe")
+ELEM (FEH,                   "Feh")
+ELEM (FINAL_SEMKATH,         "Final Semkath")
+ELEM (GAF,                   "Gaf")
+ELEM (GAMAL,                 "Gamal")
+ELEM (HAH,                   "Hah")
+ELEM (HE,                    "He")
+ELEM (HEH,                   "Heh")
+ELEM (HEH_GOAL,              "Heh Goal")
+ELEM (HETH,                  "Heth")
+ELEM (KAF,                   "Kaf")
+ELEM (KAPH,                  "Kaph")
+ELEM (KHAPH,                 "Khaph")
+ELEM (KNOTTED_HEH,           "Knotted Heh")
+ELEM (LAM,                   "Lam")
+ELEM (LAMADH,                "Lamadh")
+ELEM (MEEM,                  "Meem")
+ELEM (MIM,                   "Mim")
+ELEM (NOON,                  "Noon")
+ELEM (NUN,                   "Nun")
+ELEM (NYA,                   "Nya")
+ELEM (PE,                    "Pe")
+ELEM (QAF,                   "Qaf")
+ELEM (QAPH,                  "Qaph")
+ELEM (REH,                   "Reh")
+ELEM (REVERSED_PE,           "Reversed Pe")
+ELEM (SAD,                   "Sad")
+ELEM (SADHE,                 "Sadhe")
+ELEM (SEEN,                  "Seen")
+ELEM (SEMKATH,               "Semkath")
+ELEM (SHIN,                  "Shin")
+ELEM (SWASH_KAF,             "Swash Kaf")
+ELEM (SYRIAC_WAW,            "Syriac Waw")
+ELEM (TAH,                   "Tah")
+ELEM (TAW,                   "Taw")
+ELEM (TEH_MARBUTA,           "Teh Marbuta")
+ELEM (TEH_MARBUTA_GOAL,      "Teh Marbuta Goal")
+ELEM (TETH,                  "Teth")
+ELEM (WAW,                   "Waw")
+ELEM (YEH,                   "Yeh")
+ELEM (YEH_BARREE,            "Yeh Barree")
+ELEM (YEH_WITH_TAIL,         "Yeh With Tail")
+ELEM (YUDH,                  "Yudh")
+ELEM (YUDH_HE,               "Yudh He")
+ELEM (ZAIN,                  "Zain")
+ELEM (ZHAIN,                 "Zhain")
diff --git a/lib/unictype/joininggroup_of.c b/lib/unictype/joininggroup_of.c
new file mode 100644 (file)
index 0000000..987af1e
--- /dev/null
@@ -0,0 +1,33 @@
+/* Arabic joining group of Unicode characters.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include "unictype/joininggroup_of.h"
+
+int
+uc_joining_group (ucs4_t uc)
+{
+  if (uc >= joining_group_header_0
+      && uc < joining_group_header_0
+              + sizeof (u_joining_group) / sizeof (u_joining_group[0]))
+    return u_joining_group[uc - joining_group_header_0];
+  return UC_JOINING_GROUP_NONE;
+}
diff --git a/lib/unictype/joininggroup_of.h b/lib/unictype/joininggroup_of.h
new file mode 100644 (file)
index 0000000..1dd4804
--- /dev/null
@@ -0,0 +1,183 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Arabic joining type of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+#define joining_group_header_0 0x620
+static const unsigned char u_joining_group[0x780 - 0x620] =
+{
+  UC_JOINING_GROUP_YEH,                   UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_ALEF,                  UC_JOINING_GROUP_ALEF,
+  UC_JOINING_GROUP_WAW,                   UC_JOINING_GROUP_ALEF,
+  UC_JOINING_GROUP_YEH,                   UC_JOINING_GROUP_ALEF,
+  UC_JOINING_GROUP_BEH,                   UC_JOINING_GROUP_TEH_MARBUTA,
+  UC_JOINING_GROUP_BEH,                   UC_JOINING_GROUP_BEH,
+  UC_JOINING_GROUP_HAH,                   UC_JOINING_GROUP_HAH,
+  UC_JOINING_GROUP_HAH,                   UC_JOINING_GROUP_DAL,
+  UC_JOINING_GROUP_DAL,                   UC_JOINING_GROUP_REH,
+  UC_JOINING_GROUP_REH,                   UC_JOINING_GROUP_SEEN,
+  UC_JOINING_GROUP_SEEN,                  UC_JOINING_GROUP_SAD,
+  UC_JOINING_GROUP_SAD,                   UC_JOINING_GROUP_TAH,
+  UC_JOINING_GROUP_TAH,                   UC_JOINING_GROUP_AIN,
+  UC_JOINING_GROUP_AIN,                   UC_JOINING_GROUP_GAF,
+  UC_JOINING_GROUP_GAF,                   UC_JOINING_GROUP_FARSI_YEH,
+  UC_JOINING_GROUP_FARSI_YEH,             UC_JOINING_GROUP_FARSI_YEH,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_FEH,
+  UC_JOINING_GROUP_QAF,                   UC_JOINING_GROUP_KAF,
+  UC_JOINING_GROUP_LAM,                   UC_JOINING_GROUP_MEEM,
+  UC_JOINING_GROUP_NOON,                  UC_JOINING_GROUP_HEH,
+  UC_JOINING_GROUP_WAW,                   UC_JOINING_GROUP_YEH,
+  UC_JOINING_GROUP_YEH,                   UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_BEH,                   UC_JOINING_GROUP_QAF,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_ALEF,
+  UC_JOINING_GROUP_ALEF,                  UC_JOINING_GROUP_ALEF,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_ALEF,
+  UC_JOINING_GROUP_WAW,                   UC_JOINING_GROUP_WAW,
+  UC_JOINING_GROUP_YEH,                   UC_JOINING_GROUP_BEH,
+  UC_JOINING_GROUP_BEH,                   UC_JOINING_GROUP_BEH,
+  UC_JOINING_GROUP_BEH,                   UC_JOINING_GROUP_BEH,
+  UC_JOINING_GROUP_BEH,                   UC_JOINING_GROUP_BEH,
+  UC_JOINING_GROUP_BEH,                   UC_JOINING_GROUP_HAH,
+  UC_JOINING_GROUP_HAH,                   UC_JOINING_GROUP_HAH,
+  UC_JOINING_GROUP_HAH,                   UC_JOINING_GROUP_HAH,
+  UC_JOINING_GROUP_HAH,                   UC_JOINING_GROUP_HAH,
+  UC_JOINING_GROUP_DAL,                   UC_JOINING_GROUP_DAL,
+  UC_JOINING_GROUP_DAL,                   UC_JOINING_GROUP_DAL,
+  UC_JOINING_GROUP_DAL,                   UC_JOINING_GROUP_DAL,
+  UC_JOINING_GROUP_DAL,                   UC_JOINING_GROUP_DAL,
+  UC_JOINING_GROUP_DAL,                   UC_JOINING_GROUP_REH,
+  UC_JOINING_GROUP_REH,                   UC_JOINING_GROUP_REH,
+  UC_JOINING_GROUP_REH,                   UC_JOINING_GROUP_REH,
+  UC_JOINING_GROUP_REH,                   UC_JOINING_GROUP_REH,
+  UC_JOINING_GROUP_REH,                   UC_JOINING_GROUP_REH,
+  UC_JOINING_GROUP_SEEN,                  UC_JOINING_GROUP_SEEN,
+  UC_JOINING_GROUP_SEEN,                  UC_JOINING_GROUP_SAD,
+  UC_JOINING_GROUP_SAD,                   UC_JOINING_GROUP_TAH,
+  UC_JOINING_GROUP_AIN,                   UC_JOINING_GROUP_FEH,
+  UC_JOINING_GROUP_FEH,                   UC_JOINING_GROUP_FEH,
+  UC_JOINING_GROUP_FEH,                   UC_JOINING_GROUP_FEH,
+  UC_JOINING_GROUP_FEH,                   UC_JOINING_GROUP_QAF,
+  UC_JOINING_GROUP_QAF,                   UC_JOINING_GROUP_GAF,
+  UC_JOINING_GROUP_SWASH_KAF,             UC_JOINING_GROUP_GAF,
+  UC_JOINING_GROUP_KAF,                   UC_JOINING_GROUP_KAF,
+  UC_JOINING_GROUP_KAF,                   UC_JOINING_GROUP_GAF,
+  UC_JOINING_GROUP_GAF,                   UC_JOINING_GROUP_GAF,
+  UC_JOINING_GROUP_GAF,                   UC_JOINING_GROUP_GAF,
+  UC_JOINING_GROUP_GAF,                   UC_JOINING_GROUP_LAM,
+  UC_JOINING_GROUP_LAM,                   UC_JOINING_GROUP_LAM,
+  UC_JOINING_GROUP_LAM,                   UC_JOINING_GROUP_NOON,
+  UC_JOINING_GROUP_NOON,                  UC_JOINING_GROUP_NOON,
+  UC_JOINING_GROUP_NOON,                  UC_JOINING_GROUP_NYA,
+  UC_JOINING_GROUP_KNOTTED_HEH,           UC_JOINING_GROUP_HAH,
+  UC_JOINING_GROUP_TEH_MARBUTA,           UC_JOINING_GROUP_HEH_GOAL,
+  UC_JOINING_GROUP_HEH_GOAL,              UC_JOINING_GROUP_TEH_MARBUTA_GOAL,
+  UC_JOINING_GROUP_WAW,                   UC_JOINING_GROUP_WAW,
+  UC_JOINING_GROUP_WAW,                   UC_JOINING_GROUP_WAW,
+  UC_JOINING_GROUP_WAW,                   UC_JOINING_GROUP_WAW,
+  UC_JOINING_GROUP_WAW,                   UC_JOINING_GROUP_WAW,
+  UC_JOINING_GROUP_FARSI_YEH,             UC_JOINING_GROUP_YEH_WITH_TAIL,
+  UC_JOINING_GROUP_FARSI_YEH,             UC_JOINING_GROUP_WAW,
+  UC_JOINING_GROUP_YEH,                   UC_JOINING_GROUP_YEH,
+  UC_JOINING_GROUP_YEH_BARREE,            UC_JOINING_GROUP_YEH_BARREE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_TEH_MARBUTA,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_DAL,                   UC_JOINING_GROUP_REH,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_SEEN,                  UC_JOINING_GROUP_SAD,
+  UC_JOINING_GROUP_AIN,                   UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_KNOTTED_HEH,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_ALAPH,                 UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_BETH,                  UC_JOINING_GROUP_GAMAL,
+  UC_JOINING_GROUP_GAMAL,                 UC_JOINING_GROUP_DALATH_RISH,
+  UC_JOINING_GROUP_DALATH_RISH,           UC_JOINING_GROUP_HE,
+  UC_JOINING_GROUP_SYRIAC_WAW,            UC_JOINING_GROUP_ZAIN,
+  UC_JOINING_GROUP_HETH,                  UC_JOINING_GROUP_TETH,
+  UC_JOINING_GROUP_TETH,                  UC_JOINING_GROUP_YUDH,
+  UC_JOINING_GROUP_YUDH_HE,               UC_JOINING_GROUP_KAPH,
+  UC_JOINING_GROUP_LAMADH,                UC_JOINING_GROUP_MIM,
+  UC_JOINING_GROUP_NUN,                   UC_JOINING_GROUP_SEMKATH,
+  UC_JOINING_GROUP_FINAL_SEMKATH,         UC_JOINING_GROUP_E,
+  UC_JOINING_GROUP_PE,                    UC_JOINING_GROUP_REVERSED_PE,
+  UC_JOINING_GROUP_SADHE,                 UC_JOINING_GROUP_QAPH,
+  UC_JOINING_GROUP_DALATH_RISH,           UC_JOINING_GROUP_SHIN,
+  UC_JOINING_GROUP_TAW,                   UC_JOINING_GROUP_BETH,
+  UC_JOINING_GROUP_GAMAL,                 UC_JOINING_GROUP_DALATH_RISH,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_NONE,
+  UC_JOINING_GROUP_NONE,                  UC_JOINING_GROUP_ZHAIN,
+  UC_JOINING_GROUP_KHAPH,                 UC_JOINING_GROUP_FE,
+  UC_JOINING_GROUP_BEH,                   UC_JOINING_GROUP_BEH,
+  UC_JOINING_GROUP_BEH,                   UC_JOINING_GROUP_BEH,
+  UC_JOINING_GROUP_BEH,                   UC_JOINING_GROUP_BEH,
+  UC_JOINING_GROUP_BEH,                   UC_JOINING_GROUP_HAH,
+  UC_JOINING_GROUP_HAH,                   UC_JOINING_GROUP_DAL,
+  UC_JOINING_GROUP_DAL,                   UC_JOINING_GROUP_REH,
+  UC_JOINING_GROUP_SEEN,                  UC_JOINING_GROUP_AIN,
+  UC_JOINING_GROUP_AIN,                   UC_JOINING_GROUP_AIN,
+  UC_JOINING_GROUP_FEH,                   UC_JOINING_GROUP_FEH,
+  UC_JOINING_GROUP_GAF,                   UC_JOINING_GROUP_GAF,
+  UC_JOINING_GROUP_GAF,                   UC_JOINING_GROUP_MEEM,
+  UC_JOINING_GROUP_MEEM,                  UC_JOINING_GROUP_NOON,
+  UC_JOINING_GROUP_NOON,                  UC_JOINING_GROUP_NOON,
+  UC_JOINING_GROUP_LAM,                   UC_JOINING_GROUP_REH,
+  UC_JOINING_GROUP_REH,                   UC_JOINING_GROUP_SEEN,
+  UC_JOINING_GROUP_HAH,                   UC_JOINING_GROUP_HAH,
+  UC_JOINING_GROUP_SEEN,                  UC_JOINING_GROUP_REH,
+  UC_JOINING_GROUP_HAH,                   UC_JOINING_GROUP_ALEF,
+  UC_JOINING_GROUP_ALEF,                  UC_JOINING_GROUP_FARSI_YEH,
+  UC_JOINING_GROUP_FARSI_YEH,             UC_JOINING_GROUP_YEH,
+  UC_JOINING_GROUP_WAW,                   UC_JOINING_GROUP_WAW,
+  UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE, UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE,
+  UC_JOINING_GROUP_HAH,                   UC_JOINING_GROUP_SEEN,
+  UC_JOINING_GROUP_SEEN,                  UC_JOINING_GROUP_KAF
+};
diff --git a/lib/unictype/joiningtype_byname.c b/lib/unictype/joiningtype_byname.c
new file mode 100644 (file)
index 0000000..3bc45b3
--- /dev/null
@@ -0,0 +1,63 @@
+/* Arabic joining type of Unicode characters.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "unictype/joiningtype_byname.h"
+
+int
+uc_joining_type_byname (const char *joining_type_name)
+{
+  size_t len;
+
+  len = strlen (joining_type_name);
+  if (len <= MAX_WORD_LENGTH)
+    {
+      char buf[MAX_WORD_LENGTH + 1];
+      const struct named_joining_type *found;
+
+      /* Copy joining_type_name into buf, converting '_' and '-' to ' '.  */
+      {
+        const char *p = joining_type_name;
+        char *q = buf;
+
+        for (;; p++, q++)
+          {
+            char c = *p;
+
+            if (c == '_' || c == '-')
+              c = ' ';
+            *q = c;
+            if (c == '\0')
+              break;
+          }
+      }
+      /* Here q == buf + len.  */
+
+      /* Do a hash table lookup, with case-insensitive comparison.  */
+      found = uc_joining_type_lookup (buf, len);
+      if (found != NULL)
+        return found->joining_type;
+    }
+  /* Invalid joining type name.  */
+  return -1;
+}
diff --git a/lib/unictype/joiningtype_byname.gperf b/lib/unictype/joiningtype_byname.gperf
new file mode 100644 (file)
index 0000000..6b1e7d7
--- /dev/null
@@ -0,0 +1,30 @@
+/* Arabic joining type of Unicode characters.  */
+struct named_joining_type { int name; int joining_type; };
+%struct-type
+%ignore-case
+%language=ANSI-C
+%define hash-function-name joining_type_hash
+%define lookup-function-name uc_joining_type_lookup
+%readonly-tables
+%global-table
+%define word-array-name joining_type_names
+%pic
+%define string-pool-name joining_type_stringpool
+%%
+C, UC_JOINING_TYPE_C
+D, UC_JOINING_TYPE_D
+L, UC_JOINING_TYPE_L
+R, UC_JOINING_TYPE_R
+T, UC_JOINING_TYPE_T
+U, UC_JOINING_TYPE_U
+Join Causing, UC_JOINING_TYPE_C
+JoinCausing, UC_JOINING_TYPE_C
+Dual Joining, UC_JOINING_TYPE_D
+DualJoining, UC_JOINING_TYPE_D
+Left Joining, UC_JOINING_TYPE_L
+LeftJoining, UC_JOINING_TYPE_L
+Right Joining, UC_JOINING_TYPE_R
+RightJoining, UC_JOINING_TYPE_R
+Transparent, UC_JOINING_TYPE_T
+Non Joining, UC_JOINING_TYPE_U
+NonJoining, UC_JOINING_TYPE_U
diff --git a/lib/unictype/joiningtype_byname.h b/lib/unictype/joiningtype_byname.h
new file mode 100644 (file)
index 0000000..37a95bb
--- /dev/null
@@ -0,0 +1,234 @@
+/* ANSI-C code produced by gperf version 3.0.4 */
+/* Command-line: gperf -m 10 ./unictype/joiningtype_byname.gperf  */
+/* Computed positions: -k'1' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+#endif
+
+#line 2 "./unictype/joiningtype_byname.gperf"
+struct named_joining_type { int name; int joining_type; };
+
+#define TOTAL_KEYWORDS 17
+#define MIN_WORD_LENGTH 1
+#define MAX_WORD_LENGTH 13
+#define MIN_HASH_VALUE 1
+#define MAX_HASH_VALUE 21
+/* maximum key range = 21, duplicates = 0 */
+
+#ifndef GPERF_DOWNCASE
+#define GPERF_DOWNCASE 1
+static unsigned char gperf_downcase[256] =
+  {
+      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
+     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
+     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
+     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
+     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
+    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
+    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+    255
+  };
+#endif
+
+#ifndef GPERF_CASE_STRCMP
+#define GPERF_CASE_STRCMP 1
+static int
+gperf_case_strcmp (register const char *s1, register const char *s2)
+{
+  for (;;)
+    {
+      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
+      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
+      if (c1 != 0 && c1 == c2)
+        continue;
+      return (int)c1 - (int)c2;
+    }
+}
+#endif
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+joining_type_hash (register const char *str, register unsigned int len)
+{
+  static const unsigned char asso_values[] =
+    {
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22,  3,  4, 22,
+      22, 22, 22, 22,  9, 22,  0, 22,  8, 22,
+      22, 22,  1, 22,  6,  2, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22,  3,
+       4, 22, 22, 22, 22, 22,  9, 22,  0, 22,
+       8, 22, 22, 22,  1, 22,  6,  2, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+      22, 22, 22, 22, 22, 22
+    };
+  return len + asso_values[(unsigned char)str[0]];
+}
+
+struct joining_type_stringpool_t
+  {
+    char joining_type_stringpool_str1[sizeof("L")];
+    char joining_type_stringpool_str2[sizeof("R")];
+    char joining_type_stringpool_str3[sizeof("U")];
+    char joining_type_stringpool_str4[sizeof("C")];
+    char joining_type_stringpool_str5[sizeof("D")];
+    char joining_type_stringpool_str7[sizeof("T")];
+    char joining_type_stringpool_str11[sizeof("LeftJoining")];
+    char joining_type_stringpool_str12[sizeof("Left Joining")];
+    char joining_type_stringpool_str13[sizeof("RightJoining")];
+    char joining_type_stringpool_str14[sizeof("Right Joining")];
+    char joining_type_stringpool_str15[sizeof("DualJoining")];
+    char joining_type_stringpool_str16[sizeof("Dual Joining")];
+    char joining_type_stringpool_str17[sizeof("Transparent")];
+    char joining_type_stringpool_str18[sizeof("NonJoining")];
+    char joining_type_stringpool_str19[sizeof("Non Joining")];
+    char joining_type_stringpool_str20[sizeof("JoinCausing")];
+    char joining_type_stringpool_str21[sizeof("Join Causing")];
+  };
+static const struct joining_type_stringpool_t joining_type_stringpool_contents =
+  {
+    "L",
+    "R",
+    "U",
+    "C",
+    "D",
+    "T",
+    "LeftJoining",
+    "Left Joining",
+    "RightJoining",
+    "Right Joining",
+    "DualJoining",
+    "Dual Joining",
+    "Transparent",
+    "NonJoining",
+    "Non Joining",
+    "JoinCausing",
+    "Join Causing"
+  };
+#define joining_type_stringpool ((const char *) &joining_type_stringpool_contents)
+
+static const struct named_joining_type joining_type_names[] =
+  {
+    {-1},
+#line 16 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str1, UC_JOINING_TYPE_L},
+#line 17 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str2, UC_JOINING_TYPE_R},
+#line 19 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str3, UC_JOINING_TYPE_U},
+#line 14 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str4, UC_JOINING_TYPE_C},
+#line 15 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str5, UC_JOINING_TYPE_D},
+    {-1},
+#line 18 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str7, UC_JOINING_TYPE_T},
+    {-1}, {-1}, {-1},
+#line 25 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str11, UC_JOINING_TYPE_L},
+#line 24 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str12, UC_JOINING_TYPE_L},
+#line 27 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str13, UC_JOINING_TYPE_R},
+#line 26 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str14, UC_JOINING_TYPE_R},
+#line 23 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str15, UC_JOINING_TYPE_D},
+#line 22 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str16, UC_JOINING_TYPE_D},
+#line 28 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str17, UC_JOINING_TYPE_T},
+#line 30 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str18, UC_JOINING_TYPE_U},
+#line 29 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str19, UC_JOINING_TYPE_U},
+#line 21 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str20, UC_JOINING_TYPE_C},
+#line 20 "./unictype/joiningtype_byname.gperf"
+    {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str21, UC_JOINING_TYPE_C}
+  };
+
+#ifdef __GNUC__
+__inline
+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct named_joining_type *
+uc_joining_type_lookup (register const char *str, register unsigned int len)
+{
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = joining_type_hash (str, len);
+
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
+          register int o = joining_type_names[key].name;
+          if (o >= 0)
+            {
+              register const char *s = o + joining_type_stringpool;
+
+              if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
+                return &joining_type_names[key];
+            }
+        }
+    }
+  return 0;
+}
diff --git a/lib/unictype/joiningtype_longname.c b/lib/unictype/joiningtype_longname.c
new file mode 100644 (file)
index 0000000..8fa7b34
--- /dev/null
@@ -0,0 +1,40 @@
+/* Arabic joining type of Unicode characters.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+static const char u_joining_type_long_name[6][14] =
+{
+  "Non Joining",
+  "Transparent",
+  "Join Causing",
+  "Left Joining",
+  "Right Joining",
+  "Dual Joining"
+};
+
+const char *
+uc_joining_type_long_name (int joining_type)
+{
+  if (joining_type >= 0
+      && joining_type < sizeof (u_joining_type_long_name) / sizeof (u_joining_type_long_name[0]))
+    return u_joining_type_long_name[joining_type];
+  return NULL;
+}
diff --git a/lib/unictype/joiningtype_name.c b/lib/unictype/joiningtype_name.c
new file mode 100644 (file)
index 0000000..c7080a4
--- /dev/null
@@ -0,0 +1,35 @@
+/* Arabic joining type of Unicode characters.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+static const char u_joining_type_name[6][2] =
+{
+  "U", "T", "C", "L", "R", "D"
+};
+
+const char *
+uc_joining_type_name (int joining_type)
+{
+  if (joining_type >= 0
+      && joining_type < sizeof (u_joining_type_name) / sizeof (u_joining_type_name[0]))
+    return u_joining_type_name[joining_type];
+  return NULL;
+}
diff --git a/lib/unictype/joiningtype_of.c b/lib/unictype/joiningtype_of.c
new file mode 100644 (file)
index 0000000..cd6f10f
--- /dev/null
@@ -0,0 +1,54 @@
+/* Arabic joining type of Unicode characters.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+/* Define u_joining_type table.  */
+#include "joiningtype_of.h"
+
+int
+uc_joining_type (ucs4_t uc)
+{
+  unsigned int index1 = uc >> joining_type_header_0;
+  if (index1 < joining_type_header_1)
+    {
+      int lookup1 = u_joining_type.level1[index1];
+      if (lookup1 >= 0)
+        {
+          unsigned int index2 = (uc >> joining_type_header_2) & joining_type_header_3;
+          int lookup2 = u_joining_type.level2[lookup1 + index2];
+          if (lookup2 >= 0)
+            {
+              unsigned int index3 = (uc & joining_type_header_4) + lookup2;
+              /* level3 contains 4-bit values.  */
+              unsigned int lookup3 =
+                (u_joining_type.level3[index3>>1] >> ((index3 % 2) * 4))
+                & 0x0f;
+
+              if (lookup3 != 0x0f)
+                return lookup3;
+            }
+        }
+    }
+  if (uc_is_general_category_withtable
+       (uc, UC_CATEGORY_MASK_Mn | UC_CATEGORY_MASK_Me | UC_CATEGORY_MASK_Cf))
+    return UC_JOINING_TYPE_T;
+  return UC_JOINING_TYPE_U;
+}
diff --git a/lib/unictype/joiningtype_of.h b/lib/unictype/joiningtype_of.h
new file mode 100644 (file)
index 0000000..7e2c8bc
--- /dev/null
@@ -0,0 +1,127 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Arabic joining type of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+#define joining_type_header_0 16
+#define joining_type_header_1 1
+#define joining_type_header_2 7
+#define joining_type_header_3 511
+#define joining_type_header_4 127
+static const
+struct
+  {
+    int level1[1];
+    short level2[1 << 9];
+    unsigned char level3[5 * 64];
+  }
+u_joining_type =
+{
+  {     0 },
+  {
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,     0,   128,   256,   384,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      512,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1
+  },
+  {
+    0x00, 0x00, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0x05, 0x44, 0x44, 0x45, 0x45, 0x55, 0x55, 0x45,
+    0x44, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+    0x52, 0x55, 0x55, 0x55, 0x54, 0xf5, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x55,
+    0x4f, 0x44, 0x40, 0x44, 0x55, 0x55, 0x55, 0x55,
+    0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55,
+    0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+    0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+    0x54, 0x45, 0x44, 0x44, 0x44, 0x44, 0x45, 0x45,
+    0x55, 0x44, 0x4f, 0xff, 0xff, 0xff, 0x0f, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x44,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x55, 0xf5, 0x5f,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xf4, 0x55, 0x45, 0x44, 0x44, 0x55, 0x55, 0x54,
+    0x55, 0x55, 0x55, 0x55, 0x54, 0x54, 0x54, 0x45,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x55,
+    0x55, 0x55, 0x55, 0x55, 0x45, 0x44, 0x55, 0x55,
+    0x55, 0x55, 0x55, 0x55, 0x55, 0x45, 0x54, 0x55,
+    0x45, 0x45, 0x54, 0x55, 0x44, 0x55, 0x55, 0x55,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55,
+    0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+    0x55, 0x55, 0x55, 0x55, 0x55, 0xf5, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+  }
+};
index 066d9d3..4ea7383 100644 (file)
@@ -1,5 +1,5 @@
 /* Mirrored Unicode characters.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index d55f153..786a010 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Mirrored Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define mirror_header_0 16
 #define mirror_header_1 2
 #define mirror_header_2 7
index 9eb4630..af37795 100644 (file)
@@ -1,5 +1,5 @@
 /* Values of numeric Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 382a093..7680466 100644 (file)
@@ -1,7 +1,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Numeric values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
-static const uc_fraction_t u_numeric_values[108] =
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+static const uc_fraction_t u_numeric_values[113] =
 {
   { 0, 0 },
   { 0, 1 },
@@ -107,10 +107,15 @@ static const uc_fraction_t u_numeric_values[108] =
   { 4, 5 },
   { 1, 6 },
   { 5, 6 },
+  { 1, 7 },
   { 1, 8 },
   { 3, 8 },
   { 5, 8 },
-  { 7, 8 }
+  { 7, 8 },
+  { 1, 9 },
+  { 1, 10 },
+  { 1, 16 },
+  { 3, 16 }
 };
 #define numeric_header_0 16
 #define numeric_header_1 3
@@ -122,7 +127,7 @@ struct
   {
     int level1[3];
     short level2[3 << 9];
-    unsigned short level3[44 * 56 + 1];
+    unsigned short level3[54 * 56 + 1];
   }
 u_numeric =
 {
@@ -130,17 +135,17 @@ u_numeric =
   {
         0,   128,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,   256,   384,    -1,   512,
-       -1,    -1,   640,   768,   640,   640,   640,   896,
-     1024,   640,  1152,    -1,  1280,  1280,  1408,    -1,
-      512,  1536,    -1,    -1,    -1,    -1,  1664,    -1,
-       -1,    -1,    -1,    -1,    -1,  1792,    -1,  1920,
-     1536,    -1,  2048,  1280,    -1,    -1,  1280,     0,
-     2176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     2304,  2432,  2560,  2688,    -1,    -1,    -1,    -1,
-     2816,  2944,    -1,    -1,    -1,    -1,  3072,  3200,
+       -1,    -1,   640,   768,   640,   640,   896,  1024,
+     1152,   640,  1280,    -1,  1408,  1408,  1536,    -1,
+      512,  1664,    -1,    -1,    -1,    -1,  1792,    -1,
+       -1,    -1,    -1,    -1,    -1,  1920,    -1,  2048,
+     1664,    -1,  2176,  2304,    -1,  2432,  1408,     0,
+     2560,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     2688,  2816,  2944,  3072,    -1,    -1,    -1,    -1,
+     3200,  3328,    -1,    -1,    -1,    -1,  3456,  3584,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,  3328,    -1,    -1,    -1,    -1,    -1,    -1,
-     3456,    -1,    -1,  3584,  3712,  3840,    -1,    -1,
+       -1,  3712,    -1,    -1,    -1,    -1,    -1,    -1,
+     3840,    -1,    -1,  3968,  4096,  4224,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -169,8 +174,8 @@ u_numeric =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  3968,    -1,    -1,    -1,
-       -1,  1280,  2432,    -1,  1280,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  4352,  4480,    -1,    -1,
+     4608,  1408,  2816,  1408,  1408,    -1,    -1,   384,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -190,18 +195,20 @@ u_numeric =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,  4096,  4224,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  1536,    -1,
-       -1,    -1,  4352,  4480,    -1,    -1,  4608,  4736,
-       -1,  3968,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,  4864,    -1,  4992,    -1,    -1,    -1,
+       -1,    -1,  4736,  4864,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  1664,    -1,
+       -1,    -1,  4992,  5120,    -1,    -1,  5248,  5376,
+       -1,  4352,    -1,    -1,    -1,    -1,    -1,    -1,
+     5504,    -1,  5632,    -1,  5760,    -1,  5888,    -1,
+       -1,    -1,    -1,    -1,  6016,    -1,    -1,    -1,
+     6144,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     6272,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     5120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -242,14 +249,15 @@ u_numeric =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  6400,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,  6528,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  5248,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,  5376,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,  6656,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -315,10 +323,7 @@ u_numeric =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,  5504,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,  6784,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1
   },
   {
@@ -370,7 +375,14 @@ u_numeric =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304, 0xc142, 0x4070,
-    0x1424, 0x0000, 0x2000, 0x1018, 0x800a, 0x0008, 0x0000, 0x0000,
+    0x1424, 0x0000, 0xf000, 0xc34e, 0xe1c1, 0x0008, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0304, 0xc142, 0x4070,
+    0x1424, 0x0000, 0x1ab8, 0xa77e, 0x00e1, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -444,6 +456,20 @@ u_numeric =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0085,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0xc101, 0x5080, 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000, 0xc101,
+    0x5080, 0x1c30, 0x0910, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910,
     0x0005, 0x0000, 0x0000, 0xc101, 0x5080, 0x1c30, 0x0910, 0x0005,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -466,10 +492,10 @@ u_numeric =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0xfbc0, 0x8f15, 0x65c9, 0x19f3,
-    0x569d, 0x05af, 0x0182, 0x60a1, 0x2038, 0x8a12, 0xa305, 0xc331,
+    0x0000, 0x0000, 0x0000, 0xb6e8, 0xfbdb, 0x8f15, 0x65c9, 0x39f3,
+    0x5ead, 0x05b3, 0x0182, 0x60a1, 0x2038, 0x8a12, 0xa305, 0xc331,
     0x82f1, 0x0182, 0x60a1, 0x2038, 0x8a12, 0xa305, 0xc331, 0x82f1,
-    0xa2c1, 0x0012, 0xcc38, 0x539c, 0x0000, 0x0000, 0x0000, 0x0000,
+    0xa2c1, 0x0012, 0xcc38, 0xd39c, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -551,6 +577,20 @@ u_numeric =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0800, 0x8406, 0xe182, 0x4880,
+    0x0228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6ae0, 0x9df8, 0x0386,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000,
     0x0000, 0x0000, 0x0160, 0x0000, 0x0300, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -589,7 +629,14 @@ u_numeric =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0800, 0x1516, 0x001c, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8200, 0x6101,
+    0xc151, 0x9505, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0800, 0x1516, 0x80dc, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -601,13 +648,34 @@ u_numeric =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0182, 0xb0a1, 0xe0a8, 0x0082,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x00cc,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8200, 0xa101,
+    0xa8b0, 0x82e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x8200, 0xa101, 0xa8b0, 0x82e0,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0182, 0x60a1, 0x2038, 0x8a12, 0xe545, 0x9a93,
+    0x6ad1, 0x1bb6, 0xa72e, 0xf1db, 0xbe7a, 0xb01f, 0xf60a, 0x017e,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x8000, 0x4060, 0x1828, 0x880e, 0x6284,
+    0xf951, 0x66a4, 0x9ab4, 0x86ed, 0x060b, 0x0304, 0xc142, 0x4070,
+    0x1424, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x4203, 0x70c1, 0x2440, 0x8414, 0xe182, 0x4880, 0x0a28, 0x0386,
     0xa122, 0x0c10, 0x0508, 0x01c3, 0x5091, 0x0608, 0x8284, 0x4061,
     0x1420, 0x070c, 0x4244, 0x1821, 0x0810, 0x0305, 0x2000, 0x1018,
     0x0508, 0x8103, 0x2850, 0x0a14, 0x0407, 0x9102, 0x2848, 0x0a14,
     0x80c5, 0x3050, 0x041c, 0x4203, 0x60a1, 0x0030, 0x8200, 0xf781,
-    0xf67b, 0xd17e, 0x3360, 0x0018, 0x0000, 0x0000, 0x0000, 0x0000,
+    0xf67b, 0xd37e, 0x3360, 0x0018, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -623,6 +691,13 @@ u_numeric =
     0x0000, 0x0000, 0x0404, 0x4203, 0x70c1, 0x2440, 0x0114, 0x80c1,
     0x3050, 0x101c, 0x4509, 0x3040, 0x1420, 0x070c, 0x4244, 0x1011,
     0x080c, 0xc305, 0x9101, 0x0450, 0x0304, 0xc142, 0x4070, 0x1424,
+    0x8081, 0x4060, 0x1828, 0x880e, 0x0284, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
index f94c71a..c5186e0 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 09ea6c8..0ba00fe 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[44 << 4];
+    /*unsigned*/ int level3[50 << 4];
   }
 u_property_alphabetic =
 {
@@ -156,9 +156,9 @@ u_property_alphabetic =
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   576,
         4 +   384 * sizeof (short) / sizeof (int) +   592,
+        4 +   384 * sizeof (short) / sizeof (int) +   608,
        -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
@@ -167,19 +167,16 @@ u_property_alphabetic =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
-        4 +   384 * sizeof (short) / sizeof (int) +   608,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -205,6 +202,8 @@ u_property_alphabetic =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   688,
        -1,
        -1,
        -1,
@@ -239,6 +238,7 @@ u_property_alphabetic =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
@@ -256,8 +256,8 @@ u_property_alphabetic =
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   640,
-        4 +   384 * sizeof (short) / sizeof (int) +   656,
+        4 +   384 * sizeof (short) / sizeof (int) +   720,
+        4 +   384 * sizeof (short) / sizeof (int) +   736,
        -1,
        -1,
        -1,
@@ -361,16 +361,16 @@ u_property_alphabetic =
         4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
-        4 +   384 * sizeof (short) / sizeof (int) +   672,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   752,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   336,
+        4 +   384 * sizeof (short) / sizeof (int) +   768,
+        4 +   384 * sizeof (short) / sizeof (int) +   784,
        -1,
        -1,
        -1,
@@ -403,7 +403,7 @@ u_property_alphabetic =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
-        4 +   384 * sizeof (short) / sizeof (int) +   688,
+        4 +   384 * sizeof (short) / sizeof (int) +   784,
        -1,
        -1
   },
@@ -418,32 +418,32 @@ u_property_alphabetic =
     0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0xBFFF0000, 0xFFFF00B6, 0x000707FF,
-    0x07FF0000, 0xFFFFFFFE, 0x7EFFFFFF, 0xFFFFC000,
+    0x07FF0000, 0xFFFFFFFF, 0xFEFFFFFF, 0xFFFFC000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x1FEFFFFF, 0x9C00E1FE,
     0xFFFF0000, 0xFFFFFFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFFFFC00, 0x043007FF,
+    0xFCFFFFFF, 0x00001FFF, 0x01FFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFE, 0xE3FFFFFF, 0xFF011FFF, 0xF806000F,
+    0xFFFFFFFF, 0xEFFFFFFF, 0xFFE1DFFF, 0xFEFE000F,
     0xFFF99FEE, 0xE3C5FDFF, 0xB080599F, 0x0003000F,
     0xFFF987EE, 0xC36DFDFF, 0x5E021987, 0x003F0000,
     0xFFFBBFEE, 0xE3EDFDFF, 0x00011BBF, 0x0000000F,
     0xFFF99FEE, 0xE3EDFDFF, 0xB0C0199F, 0x0002000F,
     0xD63DC7EC, 0xC3FFC718, 0x00811DC7, 0x00000000,
     0xFFFDDFEE, 0xE3EFFDFF, 0x03601DDF, 0x0000000F,
-    0xFFFDDFEC, 0xE3EFFDFF, 0x40601DDF, 0x0000000F,
-    0xFFFDDFEC, 0xE3FFFDFF, 0x00801DDF, 0xFC00000F,
+    0xFFFDDFEC, 0xE3EFFDFF, 0x40601DDF, 0x0006000F,
+    0xFFFDDFEC, 0xE7FFFFFF, 0x00805DDF, 0xFC00000F,
     0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F807F, 0x000C0000,
     0xFFFFFFFE, 0x07FFFFFF, 0x0000207F, 0x00000000,
     0xFEF02596, 0x3BFFECAE, 0x3000205F, 0x00000000,
     0x00000001, 0x00000000, 0xFFFFFEFF, 0xFFFE1FFF,
-    0xFEFF0F03, 0x1FFFFFFF, 0x00000000, 0x00000000,
+    0xFEFFFF03, 0x1FFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xF97FFFFF, 0xFFFF0000, 0xFFFFC1E7,
-    0x0000407F, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+    0x3000407F, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
     0xFF3DFFFF, 0xFFFFFFFF, 0x87FFFFFF, 0x00000000,
@@ -452,20 +452,20 @@ u_property_alphabetic =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF9FFF,
     0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
     0x000FDFFF, 0x000FFFFF, 0x000FFFFF, 0x000DDFFF,
     0xFFFFFFFF, 0xFFCFFFFF, 0x108001FF, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF07FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x01FF0FFF, 0xFFFF0000, 0x001F3FFF,
-    0xFFFFFFFF, 0xFFFF03FF, 0x000003FF, 0x00000000,
-    0x0FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF0FFF, 0x000003FF, 0x00000000,
+    0x0FFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF, 0x001FFFFE,
+    0x00000000, 0x00000080, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFEFFFFF, 0x00000FEF, 0x00000000,
-    0xFFFFFFFF, 0x0000C3FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0000C3FF, 0xFFFFFFFF, 0x0003FFBF,
     0xFFFFFFFF, 0x003FFFFF, 0xFC00E000, 0x3FFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0007DE00,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -473,15 +473,15 @@ u_property_alphabetic =
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
-    0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFF0000, 0x00000000, 0x00000000, 0x00000000,
     0x3E2FFC84, 0xF3FFBD50, 0x000043E0, 0xFFFFFFFF,
     0x000001FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFC00000, 0xFFFFFFFF, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000781F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
     0x00000000, 0x00008000, 0x00000000, 0x00000000,
@@ -491,7 +491,7 @@ u_property_alphabetic =
     0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+    0x00007FFF, 0x07FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -503,32 +503,32 @@ u_property_alphabetic =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00001FFF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
-    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFF,
+    0x00FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
     0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0x000379FF, 0x000003FF, 0x00000000, 0xFC000000,
     0xFFFFF7BB, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
-    0xFFFFFC00, 0xFFFF07FF, 0x0007FFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x007FFFFF, 0x00003FFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x08FC0000,
+    0xFFFFFC00, 0xFFFF07FF, 0x0007FFFF, 0x1FFFFFFF,
+    0xFFFFFFFF, 0xFFF7FFFF, 0x00008000, 0x00000000,
+    0xFFFFFFFF, 0x007FFFFF, 0x00003FFF, 0x047FFFFF,
+    0xFFFFFFFF, 0x7FFFFFFF, 0x38000005, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x000007FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xE0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
@@ -552,13 +552,21 @@ u_property_alphabetic =
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0x003FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEFF06F, 0x000FFFFF, 0x00000000, 0x00000000,
+    0xFEEFF06F, 0x000FFFFF, 0x00000000, 0x1FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x003FFFFF, 0x003FFFFF, 0x0007FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0xFFFFFFFC, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -568,6 +576,18 @@ u_property_alphabetic =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
     0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
     0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
@@ -578,8 +598,12 @@ u_property_alphabetic =
     0xFFFFFDFF, 0xFFFFFDFF, 0x00000FF7, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 4bad897..f5de966 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index d7884ca..5a4ddf3 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 8bcea66..374e533 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 999dda3..4f7c14b 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -9,19 +9,86 @@ static const
 struct
   {
     int header[1];
-    int level1[1];
-    short level2[1 << 7];
-    /*unsigned*/ int level3[1 << 4];
+    int level1[2];
+    short level2[2 << 7];
+    /*unsigned*/ int level3[2 << 4];
   }
 u_property_bidi_arabic_digit =
 {
-  { 1 },
-  {     2 * sizeof (int) / sizeof (short) +     0 },
+  { 2 },
   {
+        3 * sizeof (int) / sizeof (short) +     0,
+        3 * sizeof (int) / sizeof (short) +   128
+  },
+  {
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +     0,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +     0,
        -1,
        -1,
        -1,
@@ -89,6 +156,70 @@ u_property_bidi_arabic_digit =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    16,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
        -1,
        -1,
@@ -150,6 +281,10 @@ u_property_bidi_arabic_digit =
   {
     0x0000000F, 0x00000000, 0x00000000, 0x00001BFF,
     0x00000000, 0x00000000, 0x20000000, 0x00000000,
+    0x00008000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x7FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
index 834d67a..8fe1699 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4a566d6..918eda6 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -148,7 +148,7 @@ u_property_bidi_arabic_right_to_left =
         2 +   128 * sizeof (short) / sizeof (int) +    64
   },
   {
-    0xF8002930, 0xFFFFFFFF, 0x800007FF, 0xFFFEE000,
+    0xF8002930, 0xFFFFFFFF, 0x000007FF, 0xFFFEE000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0xFC00C060,
     0xFFFD7FFF, 0x0000FFFF, 0xFFFFF800, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFE003F, 0x00000000, 0x00000000,
index bec778d..3d0e332 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e82d2d4..86f4015 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index f64ae85..7f23430 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 8bc59e8..d9f9d5b 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[17];
     short level2[4 << 7];
-    /*unsigned*/ int level3[9 << 4];
+    /*unsigned*/ int level3[8 << 4];
   }
 u_property_bidi_boundary_neutral =
 {
@@ -39,7 +39,6 @@ u_property_bidi_boundary_neutral =
        18 +   512 * sizeof (short) / sizeof (int) +     0,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +    16,
        -1,
        -1,
        -1,
@@ -52,8 +51,8 @@ u_property_bidi_boundary_neutral =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +    32,
        -1,
+       18 +   512 * sizeof (short) / sizeof (int) +    16,
        -1,
        -1,
        -1,
@@ -162,8 +161,9 @@ u_property_bidi_boundary_neutral =
        -1,
        -1,
        -1,
+       -1,
+       18 +   512 * sizeof (short) / sizeof (int) +    32,
        18 +   512 * sizeof (short) / sizeof (int) +    48,
-       18 +   512 * sizeof (short) / sizeof (int) +    64,
        -1,
        -1,
        -1,
@@ -268,7 +268,7 @@ u_property_bidi_boundary_neutral =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +    80,
+       18 +   512 * sizeof (short) / sizeof (int) +    64,
        -1,
        -1,
        -1,
@@ -291,7 +291,7 @@ u_property_bidi_boundary_neutral =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +    96,
+       18 +   512 * sizeof (short) / sizeof (int) +    80,
        -1,
        -1,
        -1,
@@ -419,15 +419,15 @@ u_property_bidi_boundary_neutral =
        -1,
        -1,
        -1,
+       18 +   512 * sizeof (short) / sizeof (int) +    80,
        18 +   512 * sizeof (short) / sizeof (int) +    96,
        18 +   512 * sizeof (short) / sizeof (int) +   112,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
-       18 +   512 * sizeof (short) / sizeof (int) +   128,
+       18 +   512 * sizeof (short) / sizeof (int) +   112,
+       18 +   512 * sizeof (short) / sizeof (int) +   112,
+       18 +   512 * sizeof (short) / sizeof (int) +   112,
+       18 +   512 * sizeof (short) / sizeof (int) +   112,
+       18 +   512 * sizeof (short) / sizeof (int) +   112,
+       18 +   512 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
@@ -547,17 +547,13 @@ u_property_bidi_boundary_neutral =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +    96
+       18 +   512 * sizeof (short) / sizeof (int) +    80
   },
   {
     0x0FFFC1FF, 0x00000000, 0x00000000, 0x80000000,
     0xFFFFFFDF, 0x00002000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00008000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00003800, 0x00000000, 0x00000000, 0x0000FC1F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 2989ca6..9bd2bc3 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 67dedbb..e282ed9 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 6bb0adf..9b632c0 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index b676a97..413a01a 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 3af5785..471e2aa 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index d14a500..0959cf5 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 97a74b3..7ea598f 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index a18c249..2a94c12 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 7376c42..97ed74f 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 5228108..6dc0185 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[9 << 4];
+    /*unsigned*/ int level3[10 << 4];
   }
 u_property_bidi_eur_num_terminator =
 {
@@ -102,6 +102,7 @@ u_property_bidi_eur_num_terminator =
        -1,
        -1,
        -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -144,8 +145,7 @@ u_property_bidi_eur_num_terminator =
        -1,
        -1,
        -1,
-       -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   128
+        2 +   128 * sizeof (short) / sizeof (int) +   144
   },
   {
     0x00000000, 0x00000038, 0x00000000, 0x00000000,
@@ -159,7 +159,7 @@ u_property_bidi_eur_num_terminator =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x000C0000,
+    0x00000000, 0x00000000, 0x00000000, 0x080C0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00020000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -173,13 +173,17 @@ u_property_bidi_eur_num_terminator =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x08000000, 0x00000000,
     0x00000000, 0x001F0000, 0x00000000, 0x00000000,
-    0x00000000, 0x003FFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00004000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00080000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x03000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x80000000, 0x00000600,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000038, 0x00000000, 0x00000000, 0x00000000,
index f727dca..5579561 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 27d81bd..8fb100b 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[6 << 4];
+    /*unsigned*/ int level3[7 << 4];
   }
 u_property_bidi_european_digit =
 {
@@ -269,7 +269,7 @@ u_property_bidi_european_digit =
        -1,
        -1,
        -1,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
        -1,
@@ -302,6 +302,10 @@ u_property_bidi_european_digit =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF
+    0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x000007FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
index 42e836f..8dde941 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 652f5ba..a3e835f 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[8 << 4];
+    /*unsigned*/ int level3[9 << 4];
   }
 u_property_bidi_hebrew_right_to_left =
 {
@@ -156,7 +156,7 @@ u_property_bidi_hebrew_right_to_left =
         3 +   256 * sizeof (short) / sizeof (int) +    80,
         3 +   256 * sizeof (short) / sizeof (int) +    96,
         3 +   256 * sizeof (short) / sizeof (int) +   112,
-        3 +   256 * sizeof (short) / sizeof (int) +   112,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -287,7 +287,7 @@ u_property_bidi_hebrew_right_to_left =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFFFFFFF, 0xFC3007FF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x043FFFFF, 0xFFFFC110, 0xF1FFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -305,9 +305,13 @@ u_property_bidi_hebrew_right_to_left =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFF0F91, 0x78FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x01FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x80000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
index 3da97eb..774401f 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 73ee442..8a3c941 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[17];
     short level2[4 << 7];
-    /*unsigned*/ int level3[38 << 4];
+    /*unsigned*/ int level3[43 << 4];
   }
 u_property_bidi_left_to_right =
 {
@@ -62,364 +62,364 @@ u_property_bidi_left_to_right =
        18 +   512 * sizeof (short) / sizeof (int) +   352,
        18 +   512 * sizeof (short) / sizeof (int) +   368,
        18 +   512 * sizeof (short) / sizeof (int) +   384,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   400,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
        18 +   512 * sizeof (short) / sizeof (int) +   416,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
        18 +   512 * sizeof (short) / sizeof (int) +   432,
        18 +   512 * sizeof (short) / sizeof (int) +   448,
        18 +   512 * sizeof (short) / sizeof (int) +   464,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   480,
-       -1,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
        18 +   512 * sizeof (short) / sizeof (int) +   496,
+       -1,
        18 +   512 * sizeof (short) / sizeof (int) +   512,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
+       18 +   512 * sizeof (short) / sizeof (int) +   528,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   528,
        18 +   512 * sizeof (short) / sizeof (int) +   544,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
        18 +   512 * sizeof (short) / sizeof (int) +   560,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
        18 +   512 * sizeof (short) / sizeof (int) +   576,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   592,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
        18 +   512 * sizeof (short) / sizeof (int) +   592,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   608,
+       18 +   512 * sizeof (short) / sizeof (int) +   624,
+       18 +   512 * sizeof (short) / sizeof (int) +   640,
+       18 +   512 * sizeof (short) / sizeof (int) +   656,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   672,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -428,126 +428,126 @@ u_property_bidi_left_to_right =
        -1,
        -1,
        -1,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   144,
-       18 +   512 * sizeof (short) / sizeof (int) +   592
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   400,
+       18 +   512 * sizeof (short) / sizeof (int) +   672
   },
   {
     0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
@@ -564,29 +564,29 @@ u_property_bidi_left_to_right =
     0x0000FBFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF9, 0xEFFFFFFF, 0xFFE1DE01, 0xFFFFFFF3,
-    0xFFFFFFFD, 0xEFFFFFFF, 0xFFFFDFE1, 0xFFF3FFF3,
+    0xFFFFFFF8, 0xEBFFFFFF, 0xFF01DE01, 0xFFFFFFF3,
+    0xFFFFFFFD, 0xEFFFFFFF, 0xFFFFDFE1, 0xF7F3FFF3,
     0xFFFFFFF9, 0xEFFFFFFF, 0xFFFDC679, 0xFFDCFFFF,
     0xFFFFFFF9, 0xEFFFFFFF, 0xFFFFDE41, 0xFFFDFFF3,
     0xFFFFFFFD, 0x6FFFFFFF, 0xFFBFDFE1, 0xFFFFFFF3,
     0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFDFFE, 0xF807FFFF,
     0xFFFFFFFF, 0x3FFFFFFF, 0xFF9FC23E, 0x80FFFFF3,
-    0xFFFFFFFF, 0xEFFFFFFF, 0xFFFFCFFF, 0xFFF9FFF3,
+    0xFFFFFFFF, 0xEFFFFFFF, 0xFFFFCFFF, 0xFFFFFFF3,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFDFE1, 0xFFFFFFF3,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFA3FBFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x780DFFFF, 0xFFFF807F, 0xFFFFFFFF,
     0xFFFFFFFF, 0xE40DFFFF, 0xFFFFC0FF, 0xFFFFFFFF,
     0xFCFFFFFF, 0xC15FFFFF, 0xFFFFFFFF, 0x8001FFFF,
-    0x0100FF20, 0xE0000000, 0xFFFFFFBF, 0xFFFFFFFF,
+    0x01001F20, 0xE0000000, 0xFFFFFFBF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x99021FFF, 0x3CFFFFFF, 0xFFE1FFFE,
-    0xFFFFDF9B, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xDFFFDF9B, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x1FFFFFFF, 0xFFFFFFFF,
     0xFC00FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -598,47 +598,47 @@ u_property_bidi_left_to_right =
     0xFFFFFFFF, 0xFFFFFDFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xF1FBFE78, 0xFFFFFFCE, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF, 0x00000000,
-    0xFE7FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFE7FFFFF, 0xFFFFFFFF, 0x80BFFFFF, 0x6007E01A,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFF0, 0xE82FFFFF, 0xFFFFFFFB, 0xFFF007FF,
-    0xFFFFFFFC, 0xFFFFFCC3, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFC, 0xFFFFFCC3, 0xFFFFFFFF, 0xFFFC5CBF,
     0xFFFFFFFF, 0xFF300FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0008FFFF, 0xFFFFDE02,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x3FFFFF80,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x0FFFFF80,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x5FFFFFFF, 0x1FFF1FFC, 0x9FFF1FFF,
     0x00004000, 0x00000000, 0x00000000, 0x800E0000,
-    0xFFFF8000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
-    0x3E2FFC84, 0xF3FFBD50, 0x0007C3E0, 0xFFFFFFFF,
-    0x0000FFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF8000, 0xFC000000, 0x0000FFFF, 0xFFFE0000,
+    0x3E2FFC84, 0xF3FFBD50, 0x0000C3E0, 0xFFFFFFFF,
+    0x0000FDFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFC00000, 0xFFFFFFFF, 0x07FFFFFF,
-    0x00200000, 0x00000000, 0x00000000, 0xFFFFFF00,
+    0x00200000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0xFFFFFF80, 0xFFFFF800, 0x00000000,
     0xF0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x000003FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xC0000000, 0xE0001000, 0xFFFFFFF0, 0xFFFFFFFF,
-    0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
-    0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
+    0x00000000, 0x00001000, 0x00000000, 0x00000000,
+    0x00000001, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00002800, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFC00E000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x01FFF81F,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x01FC781F,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000,
-    0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFC0000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
@@ -653,23 +653,27 @@ u_property_bidi_left_to_right =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x0000FFFF, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFF1FFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0FF07FFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFCFFFF,
     0x00000000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFEFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFF7BB, 0xFFFFF09F, 0xFFFFFFFF, 0xFF0FFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFEF, 0xFFFFFFFF,
+    0xFFFFF7BB, 0xFCFFF09F, 0xFFFFFFFF, 0xFF0FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFEF, 0xFFFC0000,
     0xFFFFFFFF, 0xFFFFC03F, 0xFFFC007F, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFF8, 0xEC37FFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFF9981FF, 0xFFFFEFF7, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x3E62FFFF, 0xFFFFFFFD, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFDEDF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x1FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
@@ -682,6 +686,10 @@ u_property_bidi_left_to_right =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFD, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xF000F800, 0xFFFFFFFF, 0xFFFFFFFF, 0xDFFFFFFF,
+    0xFFFFFFFD, 0x00FFFFFF, 0x0003FF80, 0xFFFFFFC0,
+    0xFFFFFFFC, 0xF987FFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0007FC7F,
@@ -691,12 +699,24 @@ u_property_bidi_left_to_right =
     0x00000000, 0x00000000, 0xFF800000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xF7FFFFFF, 0xFFFFFFFF,
+    0xFFDFFFFF, 0xFFFFFFFF, 0xFFFF7FFF, 0xFFFFFFFF,
+    0xFFFFFDFF, 0xFFFFFFFF, 0x00003FF7, 0x00000000,
+    0x00000000, 0x0000F000, 0x00000000, 0x00000000,
+    0xFFF00000, 0x80018000, 0x00010001, 0xFFFFFFFF,
+    0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x00003FFF, 0x00000000,
-    0x00000000, 0x0000F000, 0x00000000, 0x00000000,
-    0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x0040FFFE, 0x00000000, 0xE0000000,
+    0xFFF00000, 0x00000000, 0xFFFFF820, 0xFFFE0000,
+    0x00000000, 0x80000000, 0x00000002, 0x00000000,
+    0x00001000, 0x00000000, 0x00000000, 0xE1000000,
+    0x00000000, 0xC0000010, 0x0000FFFF, 0xFFFFFF00,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+    0x8AA20001, 0x0010D0C0, 0xFFFF001E, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFFFC0, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0xFFF00000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
index df470bb..ac6acab 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 6d3c6c2..50c5d5f 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[26 << 4];
+    /*unsigned*/ int level3[27 << 4];
   }
 u_property_bidi_non_spacing_mark =
 {
@@ -170,6 +170,7 @@ u_property_bidi_non_spacing_mark =
        16 +   384 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -265,9 +266,8 @@ u_property_bidi_non_spacing_mark =
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   368,
        16 +   384 * sizeof (short) / sizeof (int) +   384,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@ u_property_bidi_non_spacing_mark =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   400,
+       16 +   384 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -428,13 +428,13 @@ u_property_bidi_non_spacing_mark =
     0x000003F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
-    0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
-    0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
+    0x07FF0000, 0x00000000, 0xFFFFF800, 0x00010000,
+    0x00000000, 0x00000000, 0x9FC00000, 0x00003D9F,
     0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
+    0xFBC00000, 0x00003EEF, 0x0E000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000006, 0x10000000, 0x001E21FE, 0x0000000C,
+    0x00000007, 0x14000000, 0x00FE21FE, 0x0000000C,
     0x00000002, 0x10000000, 0x0000201E, 0x0000000C,
     0x00000006, 0x10000000, 0x00023986, 0x00230000,
     0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
@@ -447,14 +447,14 @@ u_property_bidi_non_spacing_mark =
     0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
-    0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+    0xFEFFE0DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
     0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
-    0x00002064, 0x00000000, 0x00000000, 0x00000000,
+    0x20002064, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0xE0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -464,38 +464,38 @@ u_property_bidi_non_spacing_mark =
     0x00000000, 0x00000200, 0x00000000, 0x00000000,
     0x00000000, 0x0E040187, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x01800000, 0x00000000, 0x00000000, 0x00000000,
+    0x01800000, 0x00000000, 0x7F400000, 0x9FF81FE5,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
-    0x00000003, 0x0000033C, 0x00000000, 0x00000000,
+    0x00000003, 0x0000033C, 0x00000000, 0x0003A340,
     0x00000000, 0x00CFF000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFF70000, 0x000021FD,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xF000007F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00038000,
+    0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
     0x06000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x30078000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00030000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000844, 0x00000060, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000010, 0x00000000,
+    0x00000000, 0x00000000, 0x00000010, 0x0003FFFF,
     0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000007, 0x13C80000, 0x00000000, 0x00000000,
     0x00000000, 0x00667E00, 0x00001008, 0x00000000,
+    0x00000000, 0xC19D0000, 0x00000002, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00002120,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
@@ -512,6 +512,10 @@ u_property_bidi_non_spacing_mark =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000002, 0xFF000000, 0x0000007F, 0x00000000,
+    0x00000003, 0x06780000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xF8000380,
index 0f63bca..25e9592 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 2df9ce5..995d2ff 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[31 << 4];
+    /*unsigned*/ int level3[38 << 4];
   }
 u_property_bidi_other_neutral =
 {
@@ -31,12 +31,11 @@ u_property_bidi_other_neutral =
         3 +   256 * sizeof (short) / sizeof (int) +    96,
        -1,
         3 +   256 * sizeof (short) / sizeof (int) +   112,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   128,
         3 +   256 * sizeof (short) / sizeof (int) +   144,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
         3 +   256 * sizeof (short) / sizeof (int) +   192,
         3 +   256 * sizeof (short) / sizeof (int) +   208,
@@ -47,6 +46,7 @@ u_property_bidi_other_neutral =
         3 +   256 * sizeof (short) / sizeof (int) +   288,
         3 +   256 * sizeof (short) / sizeof (int) +   304,
         3 +   256 * sizeof (short) / sizeof (int) +   320,
+        3 +   256 * sizeof (short) / sizeof (int) +   336,
        -1,
        -1,
        -1,
@@ -59,7 +59,7 @@ u_property_bidi_other_neutral =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   336,
+        3 +   256 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
        -1,
@@ -103,9 +103,9 @@ u_property_bidi_other_neutral =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   352,
         3 +   256 * sizeof (short) / sizeof (int) +   368,
         3 +   256 * sizeof (short) / sizeof (int) +   384,
+        3 +   256 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -147,18 +147,17 @@ u_property_bidi_other_neutral =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   400,
         3 +   256 * sizeof (short) / sizeof (int) +   416,
         3 +   256 * sizeof (short) / sizeof (int) +   432,
-       -1,
-       -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   464,
+        3 +   256 * sizeof (short) / sizeof (int) +   480,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   496,
        -1,
        -1,
        -1,
@@ -254,10 +253,10 @@ u_property_bidi_other_neutral =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   464,
-       -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   512,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   528,
        -1,
        -1,
        -1,
@@ -269,10 +268,11 @@ u_property_bidi_other_neutral =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   480,
-       -1,
-       -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   544,
+        3 +   256 * sizeof (short) / sizeof (int) +   560,
+        3 +   256 * sizeof (short) / sizeof (int) +   576,
+        3 +   256 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -292,7 +292,7 @@ u_property_bidi_other_neutral =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000400, 0x00000000, 0x00000000, 0x00000000,
     0x0000C0C0, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000200,
+    0x00000000, 0x00000000, 0x40000000, 0x00000200,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03C00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -300,7 +300,7 @@ u_property_bidi_other_neutral =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x05F80000,
     0x00000000, 0x00000000, 0x00000000, 0x7F000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00060000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -311,6 +311,10 @@ u_property_bidi_other_neutral =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000001, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x18000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -325,33 +329,33 @@ u_property_bidi_other_neutral =
     0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
     0xFFFF0000, 0xFFE000FF, 0x7FFFFFEF, 0x70000000,
     0x00007000, 0x00000000, 0x00000000, 0x00000000,
-    0xC1D0037B, 0x0C0002AF, 0xFFF83C1F, 0x00000000,
-    0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xC1D0037B, 0x0C0002AF, 0xFFFF3C1F, 0x00000000,
+    0xFFFF0200, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFF3FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x003FFFFF, 0x00000000, 0xF8000000,
-    0xFFDFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
+    0xFFDFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
     0x000000FF, 0x00000000, 0x00000000, 0xFFFFFC00,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x3FFFFFFF, 0x1FFFEFFF, 0x0000000F, 0x00000000,
-    0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
-    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFEFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFD7FF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFE0007E0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0003FFFF, 0x00000000, 0x00000000,
     0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
@@ -395,13 +399,37 @@ u_property_bidi_other_neutral =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x80000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFE000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFC0000, 0x0000003F,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000023, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x08000000, 0x00000000,
+    0x00200000, 0x00000000, 0x00008000, 0x00000000,
+    0x00000200, 0x00000000, 0x00000008, 0x00000000,
     0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x000FFFFF, 0x7FFE7FFF, 0xFFFEFFFE, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFBF0001, 0xFFFFFFFF, 0x1FFFFFFF,
+    0x000FFFFF, 0xFFFFFFFF, 0x000007DF, 0x0001FFFF,
+    0xFFFFFFFF, 0x7FFFFFFF, 0xFFFFFFFD, 0xFFFFFFFF,
+    0xFFFFEFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1EFFFFFF,
+    0xFFFFFFFF, 0x3FFFFFEF, 0xFFFF0000, 0x000000FF,
+    0x00000000, 0x00000000, 0x00000000, 0xF8000000,
+    0x755DFFFE, 0xFFEF2F3F, 0x0000FFE1, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
index 7e8ace2..6009f2f 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index cef9325..f32fe6f 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 6452b07..8e0d013 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 09b018e..f35a725 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index ef22a3e..956f592 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 2053057..ffec908 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 89d59b9..e6a7bd3 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2011-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
 /* Specification.  */
 #include "unictype.h"
 
+#include <stdlib.h>
 #include <string.h>
 
+/* Indices stored in the 'struct named_category' elements of the perfect hash
+   table.  We don't use uc_general_category_t values or their addresses
+   directly, because this would introduce load-time relocations.  */
+enum
+{
+  /* General.  */
+  UC_PROPERTY_INDEX_WHITE_SPACE,
+  UC_PROPERTY_INDEX_ALPHABETIC,
+  UC_PROPERTY_INDEX_OTHER_ALPHABETIC,
+  UC_PROPERTY_INDEX_NOT_A_CHARACTER,
+  UC_PROPERTY_INDEX_DEFAULT_IGNORABLE_CODE_POINT,
+  UC_PROPERTY_INDEX_OTHER_DEFAULT_IGNORABLE_CODE_POINT,
+  UC_PROPERTY_INDEX_DEPRECATED,
+  UC_PROPERTY_INDEX_LOGICAL_ORDER_EXCEPTION,
+  UC_PROPERTY_INDEX_VARIATION_SELECTOR,
+  UC_PROPERTY_INDEX_PRIVATE_USE,
+  UC_PROPERTY_INDEX_UNASSIGNED_CODE_VALUE,
+  /* Case.  */
+  UC_PROPERTY_INDEX_UPPERCASE,
+  UC_PROPERTY_INDEX_OTHER_UPPERCASE,
+  UC_PROPERTY_INDEX_LOWERCASE,
+  UC_PROPERTY_INDEX_OTHER_LOWERCASE,
+  UC_PROPERTY_INDEX_TITLECASE,
+  UC_PROPERTY_INDEX_CASED,
+  UC_PROPERTY_INDEX_CASE_IGNORABLE,
+  UC_PROPERTY_INDEX_CHANGES_WHEN_LOWERCASED,
+  UC_PROPERTY_INDEX_CHANGES_WHEN_UPPERCASED,
+  UC_PROPERTY_INDEX_CHANGES_WHEN_TITLECASED,
+  UC_PROPERTY_INDEX_CHANGES_WHEN_CASEFOLDED,
+  UC_PROPERTY_INDEX_CHANGES_WHEN_CASEMAPPED,
+  UC_PROPERTY_INDEX_SOFT_DOTTED,
+  /* Identifiers.  */
+  UC_PROPERTY_INDEX_ID_START,
+  UC_PROPERTY_INDEX_OTHER_ID_START,
+  UC_PROPERTY_INDEX_ID_CONTINUE,
+  UC_PROPERTY_INDEX_OTHER_ID_CONTINUE,
+  UC_PROPERTY_INDEX_XID_START,
+  UC_PROPERTY_INDEX_XID_CONTINUE,
+  UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE,
+  UC_PROPERTY_INDEX_PATTERN_SYNTAX,
+  /* Shaping and rendering.  */
+  UC_PROPERTY_INDEX_JOIN_CONTROL,
+  UC_PROPERTY_INDEX_GRAPHEME_BASE,
+  UC_PROPERTY_INDEX_GRAPHEME_EXTEND,
+  UC_PROPERTY_INDEX_OTHER_GRAPHEME_EXTEND,
+  UC_PROPERTY_INDEX_GRAPHEME_LINK,
+  /* Bidi.  */
+  UC_PROPERTY_INDEX_BIDI_CONTROL,
+  UC_PROPERTY_INDEX_BIDI_LEFT_TO_RIGHT,
+  UC_PROPERTY_INDEX_BIDI_HEBREW_RIGHT_TO_LEFT,
+  UC_PROPERTY_INDEX_BIDI_ARABIC_RIGHT_TO_LEFT,
+  UC_PROPERTY_INDEX_BIDI_EUROPEAN_DIGIT,
+  UC_PROPERTY_INDEX_BIDI_EUR_NUM_SEPARATOR,
+  UC_PROPERTY_INDEX_BIDI_EUR_NUM_TERMINATOR,
+  UC_PROPERTY_INDEX_BIDI_ARABIC_DIGIT,
+  UC_PROPERTY_INDEX_BIDI_COMMON_SEPARATOR,
+  UC_PROPERTY_INDEX_BIDI_BLOCK_SEPARATOR,
+  UC_PROPERTY_INDEX_BIDI_SEGMENT_SEPARATOR,
+  UC_PROPERTY_INDEX_BIDI_WHITESPACE,
+  UC_PROPERTY_INDEX_BIDI_NON_SPACING_MARK,
+  UC_PROPERTY_INDEX_BIDI_BOUNDARY_NEUTRAL,
+  UC_PROPERTY_INDEX_BIDI_PDF,
+  UC_PROPERTY_INDEX_BIDI_EMBEDDING_OR_OVERRIDE,
+  UC_PROPERTY_INDEX_BIDI_OTHER_NEUTRAL,
+  /* Numeric.  */
+  UC_PROPERTY_INDEX_HEX_DIGIT,
+  UC_PROPERTY_INDEX_ASCII_HEX_DIGIT,
+  /* CJK.  */
+  UC_PROPERTY_INDEX_IDEOGRAPHIC,
+  UC_PROPERTY_INDEX_UNIFIED_IDEOGRAPH,
+  UC_PROPERTY_INDEX_RADICAL,
+  UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR,
+  UC_PROPERTY_INDEX_IDS_TRINARY_OPERATOR,
+  /* Misc.  */
+  UC_PROPERTY_INDEX_ZERO_WIDTH,
+  UC_PROPERTY_INDEX_SPACE,
+  UC_PROPERTY_INDEX_NON_BREAK,
+  UC_PROPERTY_INDEX_ISO_CONTROL,
+  UC_PROPERTY_INDEX_FORMAT_CONTROL,
+  UC_PROPERTY_INDEX_DASH,
+  UC_PROPERTY_INDEX_HYPHEN,
+  UC_PROPERTY_INDEX_PUNCTUATION,
+  UC_PROPERTY_INDEX_LINE_SEPARATOR,
+  UC_PROPERTY_INDEX_PARAGRAPH_SEPARATOR,
+  UC_PROPERTY_INDEX_QUOTATION_MARK,
+  UC_PROPERTY_INDEX_SENTENCE_TERMINAL,
+  UC_PROPERTY_INDEX_TERMINAL_PUNCTUATION,
+  UC_PROPERTY_INDEX_CURRENCY_SYMBOL,
+  UC_PROPERTY_INDEX_MATH,
+  UC_PROPERTY_INDEX_OTHER_MATH,
+  UC_PROPERTY_INDEX_PAIRED_PUNCTUATION,
+  UC_PROPERTY_INDEX_LEFT_OF_PAIR,
+  UC_PROPERTY_INDEX_COMBINING,
+  UC_PROPERTY_INDEX_COMPOSITE,
+  UC_PROPERTY_INDEX_DECIMAL_DIGIT,
+  UC_PROPERTY_INDEX_NUMERIC,
+  UC_PROPERTY_INDEX_DIACRITIC,
+  UC_PROPERTY_INDEX_EXTENDER,
+  UC_PROPERTY_INDEX_IGNORABLE_CONTROL
+};
+
 /* Get gperf generated lookup function.  */
 #include "unictype/pr_byname.h"
 
@@ -53,7 +155,185 @@ uc_property_byname (const char *property_name)
     }
   found = uc_property_lookup (buf, bp - buf);
   if (found != NULL)
-    return found->property;
+    /* Use a 'switch' statement here, because a table would introduce load-time
+       relocations.  */
+    switch (found->property_index)
+      {
+      case UC_PROPERTY_INDEX_WHITE_SPACE:
+        return UC_PROPERTY_WHITE_SPACE;
+      case UC_PROPERTY_INDEX_ALPHABETIC:
+        return UC_PROPERTY_ALPHABETIC;
+      case UC_PROPERTY_INDEX_OTHER_ALPHABETIC:
+        return UC_PROPERTY_OTHER_ALPHABETIC;
+      case UC_PROPERTY_INDEX_NOT_A_CHARACTER:
+        return UC_PROPERTY_NOT_A_CHARACTER;
+      case UC_PROPERTY_INDEX_DEFAULT_IGNORABLE_CODE_POINT:
+        return UC_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT;
+      case UC_PROPERTY_INDEX_OTHER_DEFAULT_IGNORABLE_CODE_POINT:
+        return UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT;
+      case UC_PROPERTY_INDEX_DEPRECATED:
+        return UC_PROPERTY_DEPRECATED;
+      case UC_PROPERTY_INDEX_LOGICAL_ORDER_EXCEPTION:
+        return UC_PROPERTY_LOGICAL_ORDER_EXCEPTION;
+      case UC_PROPERTY_INDEX_VARIATION_SELECTOR:
+        return UC_PROPERTY_VARIATION_SELECTOR;
+      case UC_PROPERTY_INDEX_PRIVATE_USE:
+        return UC_PROPERTY_PRIVATE_USE;
+      case UC_PROPERTY_INDEX_UNASSIGNED_CODE_VALUE:
+        return UC_PROPERTY_UNASSIGNED_CODE_VALUE;
+      case UC_PROPERTY_INDEX_UPPERCASE:
+        return UC_PROPERTY_UPPERCASE;
+      case UC_PROPERTY_INDEX_OTHER_UPPERCASE:
+        return UC_PROPERTY_OTHER_UPPERCASE;
+      case UC_PROPERTY_INDEX_LOWERCASE:
+        return UC_PROPERTY_LOWERCASE;
+      case UC_PROPERTY_INDEX_OTHER_LOWERCASE:
+        return UC_PROPERTY_OTHER_LOWERCASE;
+      case UC_PROPERTY_INDEX_TITLECASE:
+        return UC_PROPERTY_TITLECASE;
+      case UC_PROPERTY_INDEX_CASED:
+        return UC_PROPERTY_CASED;
+      case UC_PROPERTY_INDEX_CASE_IGNORABLE:
+        return UC_PROPERTY_CASE_IGNORABLE;
+      case UC_PROPERTY_INDEX_CHANGES_WHEN_LOWERCASED:
+        return UC_PROPERTY_CHANGES_WHEN_LOWERCASED;
+      case UC_PROPERTY_INDEX_CHANGES_WHEN_UPPERCASED:
+        return UC_PROPERTY_CHANGES_WHEN_UPPERCASED;
+      case UC_PROPERTY_INDEX_CHANGES_WHEN_TITLECASED:
+        return UC_PROPERTY_CHANGES_WHEN_TITLECASED;
+      case UC_PROPERTY_INDEX_CHANGES_WHEN_CASEFOLDED:
+        return UC_PROPERTY_CHANGES_WHEN_CASEFOLDED;
+      case UC_PROPERTY_INDEX_CHANGES_WHEN_CASEMAPPED:
+        return UC_PROPERTY_CHANGES_WHEN_CASEMAPPED;
+      case UC_PROPERTY_INDEX_SOFT_DOTTED:
+        return UC_PROPERTY_SOFT_DOTTED;
+      case UC_PROPERTY_INDEX_ID_START:
+        return UC_PROPERTY_ID_START;
+      case UC_PROPERTY_INDEX_OTHER_ID_START:
+        return UC_PROPERTY_OTHER_ID_START;
+      case UC_PROPERTY_INDEX_ID_CONTINUE:
+        return UC_PROPERTY_ID_CONTINUE;
+      case UC_PROPERTY_INDEX_OTHER_ID_CONTINUE:
+        return UC_PROPERTY_OTHER_ID_CONTINUE;
+      case UC_PROPERTY_INDEX_XID_START:
+        return UC_PROPERTY_XID_START;
+      case UC_PROPERTY_INDEX_XID_CONTINUE:
+        return UC_PROPERTY_XID_CONTINUE;
+      case UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE:
+        return UC_PROPERTY_PATTERN_WHITE_SPACE;
+      case UC_PROPERTY_INDEX_PATTERN_SYNTAX:
+        return UC_PROPERTY_PATTERN_SYNTAX;
+      case UC_PROPERTY_INDEX_JOIN_CONTROL:
+        return UC_PROPERTY_JOIN_CONTROL;
+      case UC_PROPERTY_INDEX_GRAPHEME_BASE:
+        return UC_PROPERTY_GRAPHEME_BASE;
+      case UC_PROPERTY_INDEX_GRAPHEME_EXTEND:
+        return UC_PROPERTY_GRAPHEME_EXTEND;
+      case UC_PROPERTY_INDEX_OTHER_GRAPHEME_EXTEND:
+        return UC_PROPERTY_OTHER_GRAPHEME_EXTEND;
+      case UC_PROPERTY_INDEX_GRAPHEME_LINK:
+        return UC_PROPERTY_GRAPHEME_LINK;
+      case UC_PROPERTY_INDEX_BIDI_CONTROL:
+        return UC_PROPERTY_BIDI_CONTROL;
+      case UC_PROPERTY_INDEX_BIDI_LEFT_TO_RIGHT:
+        return UC_PROPERTY_BIDI_LEFT_TO_RIGHT;
+      case UC_PROPERTY_INDEX_BIDI_HEBREW_RIGHT_TO_LEFT:
+        return UC_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT;
+      case UC_PROPERTY_INDEX_BIDI_ARABIC_RIGHT_TO_LEFT:
+        return UC_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT;
+      case UC_PROPERTY_INDEX_BIDI_EUROPEAN_DIGIT:
+        return UC_PROPERTY_BIDI_EUROPEAN_DIGIT;
+      case UC_PROPERTY_INDEX_BIDI_EUR_NUM_SEPARATOR:
+        return UC_PROPERTY_BIDI_EUR_NUM_SEPARATOR;
+      case UC_PROPERTY_INDEX_BIDI_EUR_NUM_TERMINATOR:
+        return UC_PROPERTY_BIDI_EUR_NUM_TERMINATOR;
+      case UC_PROPERTY_INDEX_BIDI_ARABIC_DIGIT:
+        return UC_PROPERTY_BIDI_ARABIC_DIGIT;
+      case UC_PROPERTY_INDEX_BIDI_COMMON_SEPARATOR:
+        return UC_PROPERTY_BIDI_COMMON_SEPARATOR;
+      case UC_PROPERTY_INDEX_BIDI_BLOCK_SEPARATOR:
+        return UC_PROPERTY_BIDI_BLOCK_SEPARATOR;
+      case UC_PROPERTY_INDEX_BIDI_SEGMENT_SEPARATOR:
+        return UC_PROPERTY_BIDI_SEGMENT_SEPARATOR;
+      case UC_PROPERTY_INDEX_BIDI_WHITESPACE:
+        return UC_PROPERTY_BIDI_WHITESPACE;
+      case UC_PROPERTY_INDEX_BIDI_NON_SPACING_MARK:
+        return UC_PROPERTY_BIDI_NON_SPACING_MARK;
+      case UC_PROPERTY_INDEX_BIDI_BOUNDARY_NEUTRAL:
+        return UC_PROPERTY_BIDI_BOUNDARY_NEUTRAL;
+      case UC_PROPERTY_INDEX_BIDI_PDF:
+        return UC_PROPERTY_BIDI_PDF;
+      case UC_PROPERTY_INDEX_BIDI_EMBEDDING_OR_OVERRIDE:
+        return UC_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE;
+      case UC_PROPERTY_INDEX_BIDI_OTHER_NEUTRAL:
+        return UC_PROPERTY_BIDI_OTHER_NEUTRAL;
+      case UC_PROPERTY_INDEX_HEX_DIGIT:
+        return UC_PROPERTY_HEX_DIGIT;
+      case UC_PROPERTY_INDEX_ASCII_HEX_DIGIT:
+        return UC_PROPERTY_ASCII_HEX_DIGIT;
+      case UC_PROPERTY_INDEX_IDEOGRAPHIC:
+        return UC_PROPERTY_IDEOGRAPHIC;
+      case UC_PROPERTY_INDEX_UNIFIED_IDEOGRAPH:
+        return UC_PROPERTY_UNIFIED_IDEOGRAPH;
+      case UC_PROPERTY_INDEX_RADICAL:
+        return UC_PROPERTY_RADICAL;
+      case UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR:
+        return UC_PROPERTY_IDS_BINARY_OPERATOR;
+      case UC_PROPERTY_INDEX_IDS_TRINARY_OPERATOR:
+        return UC_PROPERTY_IDS_TRINARY_OPERATOR;
+      case UC_PROPERTY_INDEX_ZERO_WIDTH:
+        return UC_PROPERTY_ZERO_WIDTH;
+      case UC_PROPERTY_INDEX_SPACE:
+        return UC_PROPERTY_SPACE;
+      case UC_PROPERTY_INDEX_NON_BREAK:
+        return UC_PROPERTY_NON_BREAK;
+      case UC_PROPERTY_INDEX_ISO_CONTROL:
+        return UC_PROPERTY_ISO_CONTROL;
+      case UC_PROPERTY_INDEX_FORMAT_CONTROL:
+        return UC_PROPERTY_FORMAT_CONTROL;
+      case UC_PROPERTY_INDEX_DASH:
+        return UC_PROPERTY_DASH;
+      case UC_PROPERTY_INDEX_HYPHEN:
+        return UC_PROPERTY_HYPHEN;
+      case UC_PROPERTY_INDEX_PUNCTUATION:
+        return UC_PROPERTY_PUNCTUATION;
+      case UC_PROPERTY_INDEX_LINE_SEPARATOR:
+        return UC_PROPERTY_LINE_SEPARATOR;
+      case UC_PROPERTY_INDEX_PARAGRAPH_SEPARATOR:
+        return UC_PROPERTY_PARAGRAPH_SEPARATOR;
+      case UC_PROPERTY_INDEX_QUOTATION_MARK:
+        return UC_PROPERTY_QUOTATION_MARK;
+      case UC_PROPERTY_INDEX_SENTENCE_TERMINAL:
+        return UC_PROPERTY_SENTENCE_TERMINAL;
+      case UC_PROPERTY_INDEX_TERMINAL_PUNCTUATION:
+        return UC_PROPERTY_TERMINAL_PUNCTUATION;
+      case UC_PROPERTY_INDEX_CURRENCY_SYMBOL:
+        return UC_PROPERTY_CURRENCY_SYMBOL;
+      case UC_PROPERTY_INDEX_MATH:
+        return UC_PROPERTY_MATH;
+      case UC_PROPERTY_INDEX_OTHER_MATH:
+        return UC_PROPERTY_OTHER_MATH;
+      case UC_PROPERTY_INDEX_PAIRED_PUNCTUATION:
+        return UC_PROPERTY_PAIRED_PUNCTUATION;
+      case UC_PROPERTY_INDEX_LEFT_OF_PAIR:
+        return UC_PROPERTY_LEFT_OF_PAIR;
+      case UC_PROPERTY_INDEX_COMBINING:
+        return UC_PROPERTY_COMBINING;
+      case UC_PROPERTY_INDEX_COMPOSITE:
+        return UC_PROPERTY_COMPOSITE;
+      case UC_PROPERTY_INDEX_DECIMAL_DIGIT:
+        return UC_PROPERTY_DECIMAL_DIGIT;
+      case UC_PROPERTY_INDEX_NUMERIC:
+        return UC_PROPERTY_NUMERIC;
+      case UC_PROPERTY_INDEX_DIACRITIC:
+        return UC_PROPERTY_DIACRITIC;
+      case UC_PROPERTY_INDEX_EXTENDER:
+        return UC_PROPERTY_EXTENDER;
+      case UC_PROPERTY_INDEX_IGNORABLE_CONTROL:
+        return UC_PROPERTY_IGNORABLE_CONTROL;
+      default:
+        abort ();
+      }
  invalid:
   return UC_PROPERTY_NONE;
 }
index 5d3daa0..9c2031b 100644 (file)
@@ -1,4 +1,4 @@
-struct named_property { const char *name; uc_property_t property; };
+struct named_property { int name; int property_index; };
 %struct-type
 %language=ANSI-C
 %define hash-function-name properties_hash
@@ -7,83 +7,212 @@ struct named_property { const char *name; uc_property_t property; };
 %readonly-tables
 %global-table
 %define word-array-name properties
+%pic
+%define string-pool-name properties_stringpool
 %%
-white_space, { &uc_is_property_white_space }
-alphabetic, { &uc_is_property_alphabetic }
-other_alphabetic, { &uc_is_property_other_alphabetic }
-not_a_character, { &uc_is_property_not_a_character }
-default_ignorable_code_point, { &uc_is_property_default_ignorable_code_point }
-other_default_ignorable_code_point, { &uc_is_property_other_default_ignorable_code_point }
-deprecated, { &uc_is_property_deprecated }
-logical_order_exception, { &uc_is_property_logical_order_exception }
-variation_selector, { &uc_is_property_variation_selector }
-private_use, { &uc_is_property_private_use }
-unassigned_code_value, { &uc_is_property_unassigned_code_value }
-uppercase, { &uc_is_property_uppercase }
-other_uppercase, { &uc_is_property_other_uppercase }
-lowercase, { &uc_is_property_lowercase }
-other_lowercase, { &uc_is_property_other_lowercase }
-titlecase, { &uc_is_property_titlecase }
-soft_dotted, { &uc_is_property_soft_dotted }
-id_start, { &uc_is_property_id_start }
-other_id_start, { &uc_is_property_other_id_start }
-id_continue, { &uc_is_property_id_continue }
-other_id_continue, { &uc_is_property_other_id_continue }
-xid_start, { &uc_is_property_xid_start }
-xid_continue, { &uc_is_property_xid_continue }
-pattern_white_space, { &uc_is_property_pattern_white_space }
-pattern_syntax, { &uc_is_property_pattern_syntax }
-join_control, { &uc_is_property_join_control }
-grapheme_base, { &uc_is_property_grapheme_base }
-grapheme_extend, { &uc_is_property_grapheme_extend }
-other_grapheme_extend, { &uc_is_property_other_grapheme_extend }
-grapheme_link, { &uc_is_property_grapheme_link }
-bidi_control, { &uc_is_property_bidi_control }
-bidi_left_to_right, { &uc_is_property_bidi_left_to_right }
-bidi_hebrew_right_to_left, { &uc_is_property_bidi_hebrew_right_to_left }
-bidi_arabic_right_to_left, { &uc_is_property_bidi_arabic_right_to_left }
-bidi_european_digit, { &uc_is_property_bidi_european_digit }
-bidi_eur_num_separator, { &uc_is_property_bidi_eur_num_separator }
-bidi_eur_num_terminator, { &uc_is_property_bidi_eur_num_terminator }
-bidi_arabic_digit, { &uc_is_property_bidi_arabic_digit }
-bidi_common_separator, { &uc_is_property_bidi_common_separator }
-bidi_block_separator, { &uc_is_property_bidi_block_separator }
-bidi_segment_separator, { &uc_is_property_bidi_segment_separator }
-bidi_whitespace, { &uc_is_property_bidi_whitespace }
-bidi_non_spacing_mark, { &uc_is_property_bidi_non_spacing_mark }
-bidi_boundary_neutral, { &uc_is_property_bidi_boundary_neutral }
-bidi_pdf, { &uc_is_property_bidi_pdf }
-bidi_embedding_or_override, { &uc_is_property_bidi_embedding_or_override }
-bidi_other_neutral, { &uc_is_property_bidi_other_neutral }
-hex_digit, { &uc_is_property_hex_digit }
-ascii_hex_digit, { &uc_is_property_ascii_hex_digit }
-ideographic, { &uc_is_property_ideographic }
-unified_ideograph, { &uc_is_property_unified_ideograph }
-radical, { &uc_is_property_radical }
-ids_binary_operator, { &uc_is_property_ids_binary_operator }
-ids_trinary_operator, { &uc_is_property_ids_trinary_operator }
-zero_width, { &uc_is_property_zero_width }
-space, { &uc_is_property_space }
-non_break, { &uc_is_property_non_break }
-iso_control, { &uc_is_property_iso_control }
-format_control, { &uc_is_property_format_control }
-dash, { &uc_is_property_dash }
-hyphen, { &uc_is_property_hyphen }
-punctuation, { &uc_is_property_punctuation }
-line_separator, { &uc_is_property_line_separator }
-paragraph_separator, { &uc_is_property_paragraph_separator }
-quotation_mark, { &uc_is_property_quotation_mark }
-sentence_terminal, { &uc_is_property_sentence_terminal }
-terminal_punctuation, { &uc_is_property_terminal_punctuation }
-currency_symbol, { &uc_is_property_currency_symbol }
-math, { &uc_is_property_math }
-other_math, { &uc_is_property_other_math }
-paired_punctuation, { &uc_is_property_paired_punctuation }
-left_of_pair, { &uc_is_property_left_of_pair }
-combining, { &uc_is_property_combining }
-composite, { &uc_is_property_composite }
-decimal_digit, { &uc_is_property_decimal_digit }
-numeric, { &uc_is_property_numeric }
-diacritic, { &uc_is_property_diacritic }
-extender, { &uc_is_property_extender }
-ignorable_control, { &uc_is_property_ignorable_control }
+white_space, UC_PROPERTY_INDEX_WHITE_SPACE
+whitespace, UC_PROPERTY_INDEX_WHITE_SPACE
+wspace, UC_PROPERTY_INDEX_WHITE_SPACE
+alphabetic, UC_PROPERTY_INDEX_ALPHABETIC
+alpha, UC_PROPERTY_INDEX_ALPHABETIC
+other_alphabetic, UC_PROPERTY_INDEX_OTHER_ALPHABETIC
+otheralphabetic, UC_PROPERTY_INDEX_OTHER_ALPHABETIC
+oalpha, UC_PROPERTY_INDEX_OTHER_ALPHABETIC
+not_a_character, UC_PROPERTY_INDEX_NOT_A_CHARACTER
+notacharacter, UC_PROPERTY_INDEX_NOT_A_CHARACTER
+default_ignorable_code_point, UC_PROPERTY_INDEX_DEFAULT_IGNORABLE_CODE_POINT
+defaultignorablecodepoint, UC_PROPERTY_INDEX_DEFAULT_IGNORABLE_CODE_POINT
+di, UC_PROPERTY_INDEX_DEFAULT_IGNORABLE_CODE_POINT
+other_default_ignorable_code_point, UC_PROPERTY_INDEX_OTHER_DEFAULT_IGNORABLE_CODE_POINT
+otherdefaultignorablecodepoint, UC_PROPERTY_INDEX_OTHER_DEFAULT_IGNORABLE_CODE_POINT
+odi, UC_PROPERTY_INDEX_OTHER_DEFAULT_IGNORABLE_CODE_POINT
+deprecated, UC_PROPERTY_INDEX_DEPRECATED
+dep, UC_PROPERTY_INDEX_DEPRECATED
+logical_order_exception, UC_PROPERTY_INDEX_LOGICAL_ORDER_EXCEPTION
+logicalorderexception, UC_PROPERTY_INDEX_LOGICAL_ORDER_EXCEPTION
+loe, UC_PROPERTY_INDEX_LOGICAL_ORDER_EXCEPTION
+variation_selector, UC_PROPERTY_INDEX_VARIATION_SELECTOR
+variationselector, UC_PROPERTY_INDEX_VARIATION_SELECTOR
+vs, UC_PROPERTY_INDEX_VARIATION_SELECTOR
+private_use, UC_PROPERTY_INDEX_PRIVATE_USE
+privateuse, UC_PROPERTY_INDEX_PRIVATE_USE
+unassigned_code_value, UC_PROPERTY_INDEX_UNASSIGNED_CODE_VALUE
+unassignedcodevalue, UC_PROPERTY_INDEX_UNASSIGNED_CODE_VALUE
+uppercase, UC_PROPERTY_INDEX_UPPERCASE
+upper, UC_PROPERTY_INDEX_UPPERCASE
+other_uppercase, UC_PROPERTY_INDEX_OTHER_UPPERCASE
+otheruppercase, UC_PROPERTY_INDEX_OTHER_UPPERCASE
+oupper, UC_PROPERTY_INDEX_OTHER_UPPERCASE
+lowercase, UC_PROPERTY_INDEX_LOWERCASE
+lower, UC_PROPERTY_INDEX_LOWERCASE
+other_lowercase, UC_PROPERTY_INDEX_OTHER_LOWERCASE
+otherlowercase, UC_PROPERTY_INDEX_OTHER_LOWERCASE
+olower, UC_PROPERTY_INDEX_OTHER_LOWERCASE
+titlecase, UC_PROPERTY_INDEX_TITLECASE
+cased, UC_PROPERTY_INDEX_CASED
+case_ignorable, UC_PROPERTY_INDEX_CASE_IGNORABLE
+caseignorable, UC_PROPERTY_INDEX_CASE_IGNORABLE
+ci, UC_PROPERTY_INDEX_CASE_IGNORABLE
+changes_when_lowercased, UC_PROPERTY_INDEX_CHANGES_WHEN_LOWERCASED
+changeswhenlowercased, UC_PROPERTY_INDEX_CHANGES_WHEN_LOWERCASED
+cwl, UC_PROPERTY_INDEX_CHANGES_WHEN_LOWERCASED
+changes_when_uppercased, UC_PROPERTY_INDEX_CHANGES_WHEN_UPPERCASED
+changeswhenuppercased, UC_PROPERTY_INDEX_CHANGES_WHEN_UPPERCASED
+cwu, UC_PROPERTY_INDEX_CHANGES_WHEN_UPPERCASED
+changes_when_titlecased, UC_PROPERTY_INDEX_CHANGES_WHEN_TITLECASED
+changeswhentitlecased, UC_PROPERTY_INDEX_CHANGES_WHEN_TITLECASED
+cwt, UC_PROPERTY_INDEX_CHANGES_WHEN_TITLECASED
+changes_when_casefolded, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEFOLDED
+changeswhencasefolded, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEFOLDED
+cwcf, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEFOLDED
+changes_when_casemapped, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEMAPPED
+changeswhencasemapped, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEMAPPED
+cwcm, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEMAPPED
+soft_dotted, UC_PROPERTY_INDEX_SOFT_DOTTED
+softdotted, UC_PROPERTY_INDEX_SOFT_DOTTED
+sd, UC_PROPERTY_INDEX_SOFT_DOTTED
+id_start, UC_PROPERTY_INDEX_ID_START
+idstart, UC_PROPERTY_INDEX_ID_START
+ids, UC_PROPERTY_INDEX_ID_START
+other_id_start, UC_PROPERTY_INDEX_OTHER_ID_START
+otheridstart, UC_PROPERTY_INDEX_OTHER_ID_START
+oids, UC_PROPERTY_INDEX_OTHER_ID_START
+id_continue, UC_PROPERTY_INDEX_ID_CONTINUE
+idcontinue, UC_PROPERTY_INDEX_ID_CONTINUE
+idc, UC_PROPERTY_INDEX_ID_CONTINUE
+other_id_continue, UC_PROPERTY_INDEX_OTHER_ID_CONTINUE
+otheridcontinue, UC_PROPERTY_INDEX_OTHER_ID_CONTINUE
+oidc, UC_PROPERTY_INDEX_OTHER_ID_CONTINUE
+xid_start, UC_PROPERTY_INDEX_XID_START
+xidstart, UC_PROPERTY_INDEX_XID_START
+xids, UC_PROPERTY_INDEX_XID_START
+xid_continue, UC_PROPERTY_INDEX_XID_CONTINUE
+xidcontinue, UC_PROPERTY_INDEX_XID_CONTINUE
+xidc, UC_PROPERTY_INDEX_XID_CONTINUE
+pattern_white_space, UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE
+patternwhitespace, UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE
+pat_ws, UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE
+patws, UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE
+pattern_syntax, UC_PROPERTY_INDEX_PATTERN_SYNTAX
+patternsyntax, UC_PROPERTY_INDEX_PATTERN_SYNTAX
+pat_syn, UC_PROPERTY_INDEX_PATTERN_SYNTAX
+patsyn, UC_PROPERTY_INDEX_PATTERN_SYNTAX
+join_control, UC_PROPERTY_INDEX_JOIN_CONTROL
+joincontrol, UC_PROPERTY_INDEX_JOIN_CONTROL
+join_c, UC_PROPERTY_INDEX_JOIN_CONTROL
+joinc, UC_PROPERTY_INDEX_JOIN_CONTROL
+grapheme_base, UC_PROPERTY_INDEX_GRAPHEME_BASE
+graphemebase, UC_PROPERTY_INDEX_GRAPHEME_BASE
+gr_base, UC_PROPERTY_INDEX_GRAPHEME_BASE
+grbase, UC_PROPERTY_INDEX_GRAPHEME_BASE
+grapheme_extend, UC_PROPERTY_INDEX_GRAPHEME_EXTEND
+graphemeextend, UC_PROPERTY_INDEX_GRAPHEME_EXTEND
+gr_ext, UC_PROPERTY_INDEX_GRAPHEME_EXTEND
+grext, UC_PROPERTY_INDEX_GRAPHEME_EXTEND
+other_grapheme_extend, UC_PROPERTY_INDEX_OTHER_GRAPHEME_EXTEND
+othergraphemeextend, UC_PROPERTY_INDEX_OTHER_GRAPHEME_EXTEND
+ogr_ext, UC_PROPERTY_INDEX_OTHER_GRAPHEME_EXTEND
+ogrext, UC_PROPERTY_INDEX_OTHER_GRAPHEME_EXTEND
+grapheme_link, UC_PROPERTY_INDEX_GRAPHEME_LINK
+graphemelink, UC_PROPERTY_INDEX_GRAPHEME_LINK
+gr_link, UC_PROPERTY_INDEX_GRAPHEME_LINK
+grlink, UC_PROPERTY_INDEX_GRAPHEME_LINK
+bidi_control, UC_PROPERTY_INDEX_BIDI_CONTROL
+bidicontrol, UC_PROPERTY_INDEX_BIDI_CONTROL
+bidi_c, UC_PROPERTY_INDEX_BIDI_CONTROL
+bidic, UC_PROPERTY_INDEX_BIDI_CONTROL
+bidi_left_to_right, UC_PROPERTY_INDEX_BIDI_LEFT_TO_RIGHT
+bidilefttoright, UC_PROPERTY_INDEX_BIDI_LEFT_TO_RIGHT
+bidi_hebrew_right_to_left, UC_PROPERTY_INDEX_BIDI_HEBREW_RIGHT_TO_LEFT
+bidihebrewrighttoleft, UC_PROPERTY_INDEX_BIDI_HEBREW_RIGHT_TO_LEFT
+bidi_arabic_right_to_left, UC_PROPERTY_INDEX_BIDI_ARABIC_RIGHT_TO_LEFT
+bidiarabicrighttoleft, UC_PROPERTY_INDEX_BIDI_ARABIC_RIGHT_TO_LEFT
+bidi_european_digit, UC_PROPERTY_INDEX_BIDI_EUROPEAN_DIGIT
+bidieuropeandigit, UC_PROPERTY_INDEX_BIDI_EUROPEAN_DIGIT
+bidi_eur_num_separator, UC_PROPERTY_INDEX_BIDI_EUR_NUM_SEPARATOR
+bidieurnumseparator, UC_PROPERTY_INDEX_BIDI_EUR_NUM_SEPARATOR
+bidi_eur_num_terminator, UC_PROPERTY_INDEX_BIDI_EUR_NUM_TERMINATOR
+bidieurnumterminator, UC_PROPERTY_INDEX_BIDI_EUR_NUM_TERMINATOR
+bidi_arabic_digit, UC_PROPERTY_INDEX_BIDI_ARABIC_DIGIT
+bidiarabicdigit, UC_PROPERTY_INDEX_BIDI_ARABIC_DIGIT
+bidi_common_separator, UC_PROPERTY_INDEX_BIDI_COMMON_SEPARATOR
+bidicommonseparator, UC_PROPERTY_INDEX_BIDI_COMMON_SEPARATOR
+bidi_block_separator, UC_PROPERTY_INDEX_BIDI_BLOCK_SEPARATOR
+bidiblockseparator, UC_PROPERTY_INDEX_BIDI_BLOCK_SEPARATOR
+bidi_segment_separator, UC_PROPERTY_INDEX_BIDI_SEGMENT_SEPARATOR
+bidisegmentseparator, UC_PROPERTY_INDEX_BIDI_SEGMENT_SEPARATOR
+bidi_whitespace, UC_PROPERTY_INDEX_BIDI_WHITESPACE
+bidiwhitespace, UC_PROPERTY_INDEX_BIDI_WHITESPACE
+bidi_non_spacing_mark, UC_PROPERTY_INDEX_BIDI_NON_SPACING_MARK
+bidinonspacingmark, UC_PROPERTY_INDEX_BIDI_NON_SPACING_MARK
+bidi_boundary_neutral, UC_PROPERTY_INDEX_BIDI_BOUNDARY_NEUTRAL
+bidiboundaryneutral, UC_PROPERTY_INDEX_BIDI_BOUNDARY_NEUTRAL
+bidi_pdf, UC_PROPERTY_INDEX_BIDI_PDF
+bidipdf, UC_PROPERTY_INDEX_BIDI_PDF
+bidi_embedding_or_override, UC_PROPERTY_INDEX_BIDI_EMBEDDING_OR_OVERRIDE
+bidiembeddingoroverride, UC_PROPERTY_INDEX_BIDI_EMBEDDING_OR_OVERRIDE
+bidi_other_neutral, UC_PROPERTY_INDEX_BIDI_OTHER_NEUTRAL
+bidiotherneutral, UC_PROPERTY_INDEX_BIDI_OTHER_NEUTRAL
+hex_digit, UC_PROPERTY_INDEX_HEX_DIGIT
+hexdigit, UC_PROPERTY_INDEX_HEX_DIGIT
+hex, UC_PROPERTY_INDEX_HEX_DIGIT
+ascii_hex_digit, UC_PROPERTY_INDEX_ASCII_HEX_DIGIT
+asciihexdigit, UC_PROPERTY_INDEX_ASCII_HEX_DIGIT
+ahex, UC_PROPERTY_INDEX_ASCII_HEX_DIGIT
+ideographic, UC_PROPERTY_INDEX_IDEOGRAPHIC
+ideo, UC_PROPERTY_INDEX_IDEOGRAPHIC
+unified_ideograph, UC_PROPERTY_INDEX_UNIFIED_IDEOGRAPH
+unifiedideograph, UC_PROPERTY_INDEX_UNIFIED_IDEOGRAPH
+uideo, UC_PROPERTY_INDEX_UNIFIED_IDEOGRAPH
+radical, UC_PROPERTY_INDEX_RADICAL
+ids_binary_operator, UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR
+idsbinaryoperator, UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR
+idsb, UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR
+ids_trinary_operator, UC_PROPERTY_INDEX_IDS_TRINARY_OPERATOR
+idstrinaryoperator, UC_PROPERTY_INDEX_IDS_TRINARY_OPERATOR
+idst, UC_PROPERTY_INDEX_IDS_TRINARY_OPERATOR
+zero_width, UC_PROPERTY_INDEX_ZERO_WIDTH
+zerowidth, UC_PROPERTY_INDEX_ZERO_WIDTH
+space, UC_PROPERTY_INDEX_SPACE
+non_break, UC_PROPERTY_INDEX_NON_BREAK
+nonbreak, UC_PROPERTY_INDEX_NON_BREAK
+iso_control, UC_PROPERTY_INDEX_ISO_CONTROL
+isocontrol, UC_PROPERTY_INDEX_ISO_CONTROL
+format_control, UC_PROPERTY_INDEX_FORMAT_CONTROL
+formatcontrol, UC_PROPERTY_INDEX_FORMAT_CONTROL
+dash, UC_PROPERTY_INDEX_DASH
+hyphen, UC_PROPERTY_INDEX_HYPHEN
+punctuation, UC_PROPERTY_INDEX_PUNCTUATION
+line_separator, UC_PROPERTY_INDEX_LINE_SEPARATOR
+lineseparator, UC_PROPERTY_INDEX_LINE_SEPARATOR
+paragraph_separator, UC_PROPERTY_INDEX_PARAGRAPH_SEPARATOR
+paragraphseparator, UC_PROPERTY_INDEX_PARAGRAPH_SEPARATOR
+quotation_mark, UC_PROPERTY_INDEX_QUOTATION_MARK
+quotationmark, UC_PROPERTY_INDEX_QUOTATION_MARK
+qmark, UC_PROPERTY_INDEX_QUOTATION_MARK
+sentence_terminal, UC_PROPERTY_INDEX_SENTENCE_TERMINAL
+sentenceterminal, UC_PROPERTY_INDEX_SENTENCE_TERMINAL
+terminal_punctuation, UC_PROPERTY_INDEX_TERMINAL_PUNCTUATION
+terminalpunctuation, UC_PROPERTY_INDEX_TERMINAL_PUNCTUATION
+term, UC_PROPERTY_INDEX_TERMINAL_PUNCTUATION
+currency_symbol, UC_PROPERTY_INDEX_CURRENCY_SYMBOL
+currencysymbol, UC_PROPERTY_INDEX_CURRENCY_SYMBOL
+math, UC_PROPERTY_INDEX_MATH
+other_math, UC_PROPERTY_INDEX_OTHER_MATH
+othermath, UC_PROPERTY_INDEX_OTHER_MATH
+omath, UC_PROPERTY_INDEX_OTHER_MATH
+paired_punctuation, UC_PROPERTY_INDEX_PAIRED_PUNCTUATION
+pairedpunctuation, UC_PROPERTY_INDEX_PAIRED_PUNCTUATION
+left_of_pair, UC_PROPERTY_INDEX_LEFT_OF_PAIR
+leftofpair, UC_PROPERTY_INDEX_LEFT_OF_PAIR
+combining, UC_PROPERTY_INDEX_COMBINING
+composite, UC_PROPERTY_INDEX_COMPOSITE
+decimal_digit, UC_PROPERTY_INDEX_DECIMAL_DIGIT
+decimaldigit, UC_PROPERTY_INDEX_DECIMAL_DIGIT
+numeric, UC_PROPERTY_INDEX_NUMERIC
+diacritic, UC_PROPERTY_INDEX_DIACRITIC
+dia, UC_PROPERTY_INDEX_DIACRITIC
+extender, UC_PROPERTY_INDEX_EXTENDER
+ext, UC_PROPERTY_INDEX_EXTENDER
+ignorable_control, UC_PROPERTY_INDEX_IGNORABLE_CONTROL
+ignorablecontrol, UC_PROPERTY_INDEX_IGNORABLE_CONTROL
index d529001..3b23903 100644 (file)
@@ -1,6 +1,6 @@
 /* ANSI-C code produced by gperf version 3.0.4 */
 /* Command-line: gperf -m 10 ./unictype/pr_byname.gperf  */
-/* Computed positions: -k'1,8,10' */
+/* Computed positions: -k'1-2,8,14,18,$' */
 
 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
       && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
 #endif
 
 #line 1 "./unictype/pr_byname.gperf"
-struct named_property { const char *name; uc_property_t property; };
+struct named_property { int name; int property_index; };
 
-#define TOTAL_KEYWORDS 79
-#define MIN_WORD_LENGTH 4
+#define TOTAL_KEYWORDS 206
+#define MIN_WORD_LENGTH 2
 #define MAX_WORD_LENGTH 34
-#define MIN_HASH_VALUE 7
-#define MAX_HASH_VALUE 120
-/* maximum key range = 114, duplicates = 0 */
+#define MIN_HASH_VALUE 8
+#define MAX_HASH_VALUE 619
+/* maximum key range = 612, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -49,29 +49,39 @@ inline
 static unsigned int
 properties_hash (register const char *str, register unsigned int len)
 {
-  static const unsigned char asso_values[] =
+  static const unsigned short asso_values[] =
     {
-      121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
-      121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
-      121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
-      121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
-      121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
-      121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
-      121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
-      121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
-      121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
-      121, 121, 121, 121, 121,  12, 121,  30,   0,  51,
-       37,   1,  42,  43,  36,   0,   4,  50,  14,  47,
-        1,   9,   3,  43,   0,  13,   7,  37,  30,   0,
-       44,  27,   0, 121, 121, 121, 121, 121
+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
+      620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
+      620, 620, 620, 620, 620, 110, 620,  29,  17, 101,
+        2,   2, 167, 230,  92,   2,  65,  62,  41, 152,
+       74,   2, 104,  14,  14,  20,   5,  80,  41, 140,
+      181,  68,  35, 620, 620, 620, 620, 620
     };
   register int hval = len;
 
   switch (hval)
     {
       default:
-        hval += asso_values[(unsigned char)str[9]];
+        hval += asso_values[(unsigned char)str[17]];
       /*FALLTHROUGH*/
+      case 17:
+      case 16:
+      case 15:
+      case 14:
+        hval += asso_values[(unsigned char)str[13]];
+      /*FALLTHROUGH*/
+      case 13:
+      case 12:
+      case 11:
+      case 10:
       case 9:
       case 8:
         hval += asso_values[(unsigned char)str[7]];
@@ -82,186 +92,968 @@ properties_hash (register const char *str, register unsigned int len)
       case 4:
       case 3:
       case 2:
+        hval += asso_values[(unsigned char)str[1]];
+      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
     }
-  return hval;
+  return hval + asso_values[(unsigned char)str[len - 1]];
 }
 
+struct properties_stringpool_t
+  {
+    char properties_stringpool_str8[sizeof("di")];
+    char properties_stringpool_str9[sizeof("odi")];
+    char properties_stringpool_str10[sizeof("ideo")];
+    char properties_stringpool_str13[sizeof("idst")];
+    char properties_stringpool_str16[sizeof("idstart")];
+    char properties_stringpool_str19[sizeof("id_continue")];
+    char properties_stringpool_str21[sizeof("deprecated")];
+    char properties_stringpool_str22[sizeof("id_start")];
+    char properties_stringpool_str23[sizeof("decimaldigit")];
+    char properties_stringpool_str25[sizeof("idsb")];
+    char properties_stringpool_str26[sizeof("sd")];
+    char properties_stringpool_str27[sizeof("ids")];
+    char properties_stringpool_str28[sizeof("oids")];
+    char properties_stringpool_str30[sizeof("other_id_continue")];
+    char properties_stringpool_str33[sizeof("other_id_start")];
+    char properties_stringpool_str36[sizeof("dia")];
+    char properties_stringpool_str38[sizeof("titlecase")];
+    char properties_stringpool_str39[sizeof("softdotted")];
+    char properties_stringpool_str40[sizeof("soft_dotted")];
+    char properties_stringpool_str42[sizeof("bidiwhitespace")];
+    char properties_stringpool_str44[sizeof("otheridstart")];
+    char properties_stringpool_str45[sizeof("bidieuropeandigit")];
+    char properties_stringpool_str46[sizeof("other_lowercase")];
+    char properties_stringpool_str48[sizeof("loe")];
+    char properties_stringpool_str50[sizeof("bidiembeddingoroverride")];
+    char properties_stringpool_str51[sizeof("other_grapheme_extend")];
+    char properties_stringpool_str55[sizeof("defaultignorablecodepoint")];
+    char properties_stringpool_str58[sizeof("bidiarabicdigit")];
+    char properties_stringpool_str62[sizeof("lower")];
+    char properties_stringpool_str63[sizeof("olower")];
+    char properties_stringpool_str66[sizeof("oalpha")];
+    char properties_stringpool_str70[sizeof("ids_binary_operator")];
+    char properties_stringpool_str72[sizeof("bidi_arabic_digit")];
+    char properties_stringpool_str73[sizeof("ascii_hex_digit")];
+    char properties_stringpool_str74[sizeof("lowercase")];
+    char properties_stringpool_str76[sizeof("bidicontrol")];
+    char properties_stringpool_str77[sizeof("bidi_eur_num_terminator")];
+    char properties_stringpool_str78[sizeof("idsbinaryoperator")];
+    char properties_stringpool_str79[sizeof("iso_control")];
+    char properties_stringpool_str83[sizeof("vs")];
+    char properties_stringpool_str84[sizeof("sentence_terminal")];
+    char properties_stringpool_str87[sizeof("isocontrol")];
+    char properties_stringpool_str89[sizeof("uideo")];
+    char properties_stringpool_str90[sizeof("idcontinue")];
+    char properties_stringpool_str91[sizeof("radical")];
+    char properties_stringpool_str92[sizeof("bidiotherneutral")];
+    char properties_stringpool_str93[sizeof("idstrinaryoperator")];
+    char properties_stringpool_str96[sizeof("leftofpair")];
+    char properties_stringpool_str99[sizeof("lineseparator")];
+    char properties_stringpool_str102[sizeof("oupper")];
+    char properties_stringpool_str103[sizeof("bidi_eur_num_separator")];
+    char properties_stringpool_str104[sizeof("alpha")];
+    char properties_stringpool_str107[sizeof("ci")];
+    char properties_stringpool_str108[sizeof("idc")];
+    char properties_stringpool_str109[sizeof("oidc")];
+    char properties_stringpool_str110[sizeof("hex_digit")];
+    char properties_stringpool_str111[sizeof("dep")];
+    char properties_stringpool_str112[sizeof("hexdigit")];
+    char properties_stringpool_str113[sizeof("othermath")];
+    char properties_stringpool_str116[sizeof("diacritic")];
+    char properties_stringpool_str117[sizeof("notacharacter")];
+    char properties_stringpool_str119[sizeof("composite")];
+    char properties_stringpool_str120[sizeof("variation_selector")];
+    char properties_stringpool_str124[sizeof("joincontrol")];
+    char properties_stringpool_str125[sizeof("bidic")];
+    char properties_stringpool_str126[sizeof("bidi_c")];
+    char properties_stringpool_str127[sizeof("dash")];
+    char properties_stringpool_str129[sizeof("otheruppercase")];
+    char properties_stringpool_str131[sizeof("space")];
+    char properties_stringpool_str132[sizeof("decimal_digit")];
+    char properties_stringpool_str133[sizeof("othergraphemeextend")];
+    char properties_stringpool_str136[sizeof("bidilefttoright")];
+    char properties_stringpool_str137[sizeof("cased")];
+    char properties_stringpool_str138[sizeof("other_math")];
+    char properties_stringpool_str139[sizeof("bidi_whitespace")];
+    char properties_stringpool_str141[sizeof("zero_width")];
+    char properties_stringpool_str143[sizeof("zerowidth")];
+    char properties_stringpool_str146[sizeof("bidi_control")];
+    char properties_stringpool_str147[sizeof("caseignorable")];
+    char properties_stringpool_str148[sizeof("other_uppercase")];
+    char properties_stringpool_str149[sizeof("terminal_punctuation")];
+    char properties_stringpool_str155[sizeof("sentenceterminal")];
+    char properties_stringpool_str157[sizeof("bidieurnumseparator")];
+    char properties_stringpool_str158[sizeof("patws")];
+    char properties_stringpool_str159[sizeof("pat_ws")];
+    char properties_stringpool_str160[sizeof("other_default_ignorable_code_point")];
+    char properties_stringpool_str163[sizeof("term")];
+    char properties_stringpool_str164[sizeof("bidi_block_separator")];
+    char properties_stringpool_str165[sizeof("otherlowercase")];
+    char properties_stringpool_str168[sizeof("wspace")];
+    char properties_stringpool_str169[sizeof("bidi_european_digit")];
+    char properties_stringpool_str170[sizeof("other_alphabetic")];
+    char properties_stringpool_str171[sizeof("quotationmark")];
+    char properties_stringpool_str173[sizeof("joinc")];
+    char properties_stringpool_str174[sizeof("join_c")];
+    char properties_stringpool_str176[sizeof("non_break")];
+    char properties_stringpool_str178[sizeof("bidi_hebrew_right_to_left")];
+    char properties_stringpool_str179[sizeof("left_of_pair")];
+    char properties_stringpool_str180[sizeof("bidiblockseparator")];
+    char properties_stringpool_str184[sizeof("bidiboundaryneutral")];
+    char properties_stringpool_str186[sizeof("alphabetic")];
+    char properties_stringpool_str189[sizeof("line_separator")];
+    char properties_stringpool_str190[sizeof("bidi_arabic_right_to_left")];
+    char properties_stringpool_str191[sizeof("ext")];
+    char properties_stringpool_str192[sizeof("bidihebrewrighttoleft")];
+    char properties_stringpool_str193[sizeof("bidipdf")];
+    char properties_stringpool_str194[sizeof("join_control")];
+    char properties_stringpool_str195[sizeof("bidiarabicrighttoleft")];
+    char properties_stringpool_str198[sizeof("xidcontinue")];
+    char properties_stringpool_str199[sizeof("not_a_character")];
+    char properties_stringpool_str201[sizeof("xidstart")];
+    char properties_stringpool_str202[sizeof("xid_continue")];
+    char properties_stringpool_str203[sizeof("upper")];
+    char properties_stringpool_str204[sizeof("variationselector")];
+    char properties_stringpool_str205[sizeof("otheridcontinue")];
+    char properties_stringpool_str207[sizeof("xids")];
+    char properties_stringpool_str208[sizeof("nonbreak")];
+    char properties_stringpool_str210[sizeof("privateuse")];
+    char properties_stringpool_str211[sizeof("xid_start")];
+    char properties_stringpool_str213[sizeof("patsyn")];
+    char properties_stringpool_str214[sizeof("pat_syn")];
+    char properties_stringpool_str215[sizeof("uppercase")];
+    char properties_stringpool_str219[sizeof("extender")];
+    char properties_stringpool_str220[sizeof("ideographic")];
+    char properties_stringpool_str221[sizeof("ids_trinary_operator")];
+    char properties_stringpool_str222[sizeof("case_ignorable")];
+    char properties_stringpool_str223[sizeof("terminalpunctuation")];
+    char properties_stringpool_str225[sizeof("formatcontrol")];
+    char properties_stringpool_str228[sizeof("bidi_left_to_right")];
+    char properties_stringpool_str229[sizeof("otheralphabetic")];
+    char properties_stringpool_str233[sizeof("qmark")];
+    char properties_stringpool_str234[sizeof("quotation_mark")];
+    char properties_stringpool_str235[sizeof("bidicommonseparator")];
+    char properties_stringpool_str237[sizeof("bidi_common_separator")];
+    char properties_stringpool_str240[sizeof("hyphen")];
+    char properties_stringpool_str241[sizeof("private_use")];
+    char properties_stringpool_str243[sizeof("ogrext")];
+    char properties_stringpool_str244[sizeof("ogr_ext")];
+    char properties_stringpool_str248[sizeof("asciihexdigit")];
+    char properties_stringpool_str249[sizeof("cwt")];
+    char properties_stringpool_str251[sizeof("omath")];
+    char properties_stringpool_str252[sizeof("grbase")];
+    char properties_stringpool_str253[sizeof("gr_base")];
+    char properties_stringpool_str254[sizeof("grext")];
+    char properties_stringpool_str255[sizeof("gr_ext")];
+    char properties_stringpool_str260[sizeof("graphemebase")];
+    char properties_stringpool_str261[sizeof("grapheme_base")];
+    char properties_stringpool_str262[sizeof("numeric")];
+    char properties_stringpool_str264[sizeof("graphemeextend")];
+    char properties_stringpool_str273[sizeof("whitespace")];
+    char properties_stringpool_str274[sizeof("punctuation")];
+    char properties_stringpool_str276[sizeof("bidi_boundary_neutral")];
+    char properties_stringpool_str277[sizeof("math")];
+    char properties_stringpool_str278[sizeof("hex")];
+    char properties_stringpool_str282[sizeof("unassigned_code_value")];
+    char properties_stringpool_str284[sizeof("bidieurnumterminator")];
+    char properties_stringpool_str285[sizeof("cwl")];
+    char properties_stringpool_str286[sizeof("default_ignorable_code_point")];
+    char properties_stringpool_str288[sizeof("xidc")];
+    char properties_stringpool_str291[sizeof("bidi_other_neutral")];
+    char properties_stringpool_str293[sizeof("unifiedideograph")];
+    char properties_stringpool_str297[sizeof("paragraphseparator")];
+    char properties_stringpool_str301[sizeof("paragraph_separator")];
+    char properties_stringpool_str306[sizeof("ahex")];
+    char properties_stringpool_str307[sizeof("currency_symbol")];
+    char properties_stringpool_str309[sizeof("pairedpunctuation")];
+    char properties_stringpool_str312[sizeof("grlink")];
+    char properties_stringpool_str313[sizeof("gr_link")];
+    char properties_stringpool_str314[sizeof("bidisegmentseparator")];
+    char properties_stringpool_str319[sizeof("bidi_segment_separator")];
+    char properties_stringpool_str320[sizeof("graphemelink")];
+    char properties_stringpool_str321[sizeof("grapheme_link")];
+    char properties_stringpool_str324[sizeof("cwu")];
+    char properties_stringpool_str326[sizeof("logicalorderexception")];
+    char properties_stringpool_str330[sizeof("bidi_non_spacing_mark")];
+    char properties_stringpool_str331[sizeof("unassignedcodevalue")];
+    char properties_stringpool_str335[sizeof("changes_when_titlecased")];
+    char properties_stringpool_str336[sizeof("ignorable_control")];
+    char properties_stringpool_str337[sizeof("grapheme_extend")];
+    char properties_stringpool_str344[sizeof("ignorablecontrol")];
+    char properties_stringpool_str345[sizeof("currencysymbol")];
+    char properties_stringpool_str347[sizeof("patternsyntax")];
+    char properties_stringpool_str349[sizeof("white_space")];
+    char properties_stringpool_str361[sizeof("bidi_pdf")];
+    char properties_stringpool_str362[sizeof("logical_order_exception")];
+    char properties_stringpool_str366[sizeof("format_control")];
+    char properties_stringpool_str383[sizeof("changes_when_lowercased")];
+    char properties_stringpool_str387[sizeof("unified_ideograph")];
+    char properties_stringpool_str390[sizeof("changeswhentitlecased")];
+    char properties_stringpool_str396[sizeof("patternwhitespace")];
+    char properties_stringpool_str397[sizeof("cwcm")];
+    char properties_stringpool_str404[sizeof("bidi_embedding_or_override")];
+    char properties_stringpool_str411[sizeof("bidinonspacingmark")];
+    char properties_stringpool_str412[sizeof("cwcf")];
+    char properties_stringpool_str416[sizeof("combining")];
+    char properties_stringpool_str417[sizeof("changeswhencasefolded")];
+    char properties_stringpool_str422[sizeof("changes_when_uppercased")];
+    char properties_stringpool_str432[sizeof("paired_punctuation")];
+    char properties_stringpool_str468[sizeof("otherdefaultignorablecodepoint")];
+    char properties_stringpool_str475[sizeof("pattern_white_space")];
+    char properties_stringpool_str480[sizeof("changeswhencasemapped")];
+    char properties_stringpool_str489[sizeof("changeswhenuppercased")];
+    char properties_stringpool_str525[sizeof("changeswhenlowercased")];
+    char properties_stringpool_str581[sizeof("changes_when_casemapped")];
+    char properties_stringpool_str596[sizeof("changes_when_casefolded")];
+    char properties_stringpool_str619[sizeof("pattern_syntax")];
+  };
+static const struct properties_stringpool_t properties_stringpool_contents =
+  {
+    "di",
+    "odi",
+    "ideo",
+    "idst",
+    "idstart",
+    "id_continue",
+    "deprecated",
+    "id_start",
+    "decimaldigit",
+    "idsb",
+    "sd",
+    "ids",
+    "oids",
+    "other_id_continue",
+    "other_id_start",
+    "dia",
+    "titlecase",
+    "softdotted",
+    "soft_dotted",
+    "bidiwhitespace",
+    "otheridstart",
+    "bidieuropeandigit",
+    "other_lowercase",
+    "loe",
+    "bidiembeddingoroverride",
+    "other_grapheme_extend",
+    "defaultignorablecodepoint",
+    "bidiarabicdigit",
+    "lower",
+    "olower",
+    "oalpha",
+    "ids_binary_operator",
+    "bidi_arabic_digit",
+    "ascii_hex_digit",
+    "lowercase",
+    "bidicontrol",
+    "bidi_eur_num_terminator",
+    "idsbinaryoperator",
+    "iso_control",
+    "vs",
+    "sentence_terminal",
+    "isocontrol",
+    "uideo",
+    "idcontinue",
+    "radical",
+    "bidiotherneutral",
+    "idstrinaryoperator",
+    "leftofpair",
+    "lineseparator",
+    "oupper",
+    "bidi_eur_num_separator",
+    "alpha",
+    "ci",
+    "idc",
+    "oidc",
+    "hex_digit",
+    "dep",
+    "hexdigit",
+    "othermath",
+    "diacritic",
+    "notacharacter",
+    "composite",
+    "variation_selector",
+    "joincontrol",
+    "bidic",
+    "bidi_c",
+    "dash",
+    "otheruppercase",
+    "space",
+    "decimal_digit",
+    "othergraphemeextend",
+    "bidilefttoright",
+    "cased",
+    "other_math",
+    "bidi_whitespace",
+    "zero_width",
+    "zerowidth",
+    "bidi_control",
+    "caseignorable",
+    "other_uppercase",
+    "terminal_punctuation",
+    "sentenceterminal",
+    "bidieurnumseparator",
+    "patws",
+    "pat_ws",
+    "other_default_ignorable_code_point",
+    "term",
+    "bidi_block_separator",
+    "otherlowercase",
+    "wspace",
+    "bidi_european_digit",
+    "other_alphabetic",
+    "quotationmark",
+    "joinc",
+    "join_c",
+    "non_break",
+    "bidi_hebrew_right_to_left",
+    "left_of_pair",
+    "bidiblockseparator",
+    "bidiboundaryneutral",
+    "alphabetic",
+    "line_separator",
+    "bidi_arabic_right_to_left",
+    "ext",
+    "bidihebrewrighttoleft",
+    "bidipdf",
+    "join_control",
+    "bidiarabicrighttoleft",
+    "xidcontinue",
+    "not_a_character",
+    "xidstart",
+    "xid_continue",
+    "upper",
+    "variationselector",
+    "otheridcontinue",
+    "xids",
+    "nonbreak",
+    "privateuse",
+    "xid_start",
+    "patsyn",
+    "pat_syn",
+    "uppercase",
+    "extender",
+    "ideographic",
+    "ids_trinary_operator",
+    "case_ignorable",
+    "terminalpunctuation",
+    "formatcontrol",
+    "bidi_left_to_right",
+    "otheralphabetic",
+    "qmark",
+    "quotation_mark",
+    "bidicommonseparator",
+    "bidi_common_separator",
+    "hyphen",
+    "private_use",
+    "ogrext",
+    "ogr_ext",
+    "asciihexdigit",
+    "cwt",
+    "omath",
+    "grbase",
+    "gr_base",
+    "grext",
+    "gr_ext",
+    "graphemebase",
+    "grapheme_base",
+    "numeric",
+    "graphemeextend",
+    "whitespace",
+    "punctuation",
+    "bidi_boundary_neutral",
+    "math",
+    "hex",
+    "unassigned_code_value",
+    "bidieurnumterminator",
+    "cwl",
+    "default_ignorable_code_point",
+    "xidc",
+    "bidi_other_neutral",
+    "unifiedideograph",
+    "paragraphseparator",
+    "paragraph_separator",
+    "ahex",
+    "currency_symbol",
+    "pairedpunctuation",
+    "grlink",
+    "gr_link",
+    "bidisegmentseparator",
+    "bidi_segment_separator",
+    "graphemelink",
+    "grapheme_link",
+    "cwu",
+    "logicalorderexception",
+    "bidi_non_spacing_mark",
+    "unassignedcodevalue",
+    "changes_when_titlecased",
+    "ignorable_control",
+    "grapheme_extend",
+    "ignorablecontrol",
+    "currencysymbol",
+    "patternsyntax",
+    "white_space",
+    "bidi_pdf",
+    "logical_order_exception",
+    "format_control",
+    "changes_when_lowercased",
+    "unified_ideograph",
+    "changeswhentitlecased",
+    "patternwhitespace",
+    "cwcm",
+    "bidi_embedding_or_override",
+    "bidinonspacingmark",
+    "cwcf",
+    "combining",
+    "changeswhencasefolded",
+    "changes_when_uppercased",
+    "paired_punctuation",
+    "otherdefaultignorablecodepoint",
+    "pattern_white_space",
+    "changeswhencasemapped",
+    "changeswhenuppercased",
+    "changeswhenlowercased",
+    "changes_when_casemapped",
+    "changes_when_casefolded",
+    "pattern_syntax"
+  };
+#define properties_stringpool ((const char *) &properties_stringpool_contents)
+
 static const struct named_property properties[] =
   {
-    {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 62 "./unictype/pr_byname.gperf"
-    {"radical", { &uc_is_property_radical }},
-#line 86 "./unictype/pr_byname.gperf"
-    {"numeric", { &uc_is_property_numeric }},
-#line 88 "./unictype/pr_byname.gperf"
-    {"extender", { &uc_is_property_extender }},
-    {""}, {""}, {""},
-#line 41 "./unictype/pr_byname.gperf"
-    {"bidi_control", { &uc_is_property_bidi_control }},
-#line 60 "./unictype/pr_byname.gperf"
-    {"ideographic", { &uc_is_property_ideographic }},
-#line 28 "./unictype/pr_byname.gperf"
-    {"id_start", { &uc_is_property_id_start }},
-#line 52 "./unictype/pr_byname.gperf"
-    {"bidi_whitespace", { &uc_is_property_bidi_whitespace }},
-#line 36 "./unictype/pr_byname.gperf"
-    {"join_control", { &uc_is_property_join_control }},
-#line 66 "./unictype/pr_byname.gperf"
-    {"space", { &uc_is_property_space }},
-    {""}, {""},
-#line 64 "./unictype/pr_byname.gperf"
-    {"ids_trinary_operator", { &uc_is_property_ids_trinary_operator }},
-#line 45 "./unictype/pr_byname.gperf"
-    {"bidi_european_digit", { &uc_is_property_bidi_european_digit }},
-#line 46 "./unictype/pr_byname.gperf"
-    {"bidi_eur_num_separator", { &uc_is_property_bidi_eur_num_separator }},
-#line 47 "./unictype/pr_byname.gperf"
-    {"bidi_eur_num_terminator", { &uc_is_property_bidi_eur_num_terminator }},
-#line 81 "./unictype/pr_byname.gperf"
-    {"paired_punctuation", { &uc_is_property_paired_punctuation }},
-#line 43 "./unictype/pr_byname.gperf"
-    {"bidi_hebrew_right_to_left", { &uc_is_property_bidi_hebrew_right_to_left }},
-#line 68 "./unictype/pr_byname.gperf"
-    {"iso_control", { &uc_is_property_iso_control }},
-#line 23 "./unictype/pr_byname.gperf"
-    {"other_uppercase", { &uc_is_property_other_uppercase }},
-#line 26 "./unictype/pr_byname.gperf"
-    {"titlecase", { &uc_is_property_titlecase }},
-#line 72 "./unictype/pr_byname.gperf"
-    {"punctuation", { &uc_is_property_punctuation }},
-#line 73 "./unictype/pr_byname.gperf"
-    {"line_separator", { &uc_is_property_line_separator }},
-#line 27 "./unictype/pr_byname.gperf"
-    {"soft_dotted", { &uc_is_property_soft_dotted }},
-#line 39 "./unictype/pr_byname.gperf"
-    {"other_grapheme_extend", { &uc_is_property_other_grapheme_extend }},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
 #line 25 "./unictype/pr_byname.gperf"
-    {"other_lowercase", { &uc_is_property_other_lowercase }},
-#line 53 "./unictype/pr_byname.gperf"
-    {"bidi_non_spacing_mark", { &uc_is_property_bidi_non_spacing_mark }},
-#line 24 "./unictype/pr_byname.gperf"
-    {"lowercase", { &uc_is_property_lowercase }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str8, UC_PROPERTY_INDEX_DEFAULT_IGNORABLE_CODE_POINT},
+#line 28 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str9, UC_PROPERTY_INDEX_OTHER_DEFAULT_IGNORABLE_CODE_POINT},
+#line 163 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str10, UC_PROPERTY_INDEX_IDEOGRAPHIC},
+    {-1}, {-1},
+#line 173 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str13, UC_PROPERTY_INDEX_IDS_TRINARY_OPERATOR},
+    {-1}, {-1},
+#line 75 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str16, UC_PROPERTY_INDEX_ID_START},
+    {-1}, {-1},
+#line 80 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str19, UC_PROPERTY_INDEX_ID_CONTINUE},
+    {-1},
+#line 29 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str21, UC_PROPERTY_INDEX_DEPRECATED},
 #line 74 "./unictype/pr_byname.gperf"
-    {"paragraph_separator", { &uc_is_property_paragraph_separator }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str22, UC_PROPERTY_INDEX_ID_START},
+#line 211 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str23, UC_PROPERTY_INDEX_DECIMAL_DIGIT},
+    {-1},
+#line 170 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str25, UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR},
+#line 73 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str26, UC_PROPERTY_INDEX_SOFT_DOTTED},
 #line 76 "./unictype/pr_byname.gperf"
-    {"sentence_terminal", { &uc_is_property_sentence_terminal }},
-#line 20 "./unictype/pr_byname.gperf"
-    {"private_use", { &uc_is_property_private_use }},
-#line 67 "./unictype/pr_byname.gperf"
-    {"non_break", { &uc_is_property_non_break }},
-#line 70 "./unictype/pr_byname.gperf"
-    {"dash", { &uc_is_property_dash }},
-#line 71 "./unictype/pr_byname.gperf"
-    {"hyphen", { &uc_is_property_hyphen }},
-#line 89 "./unictype/pr_byname.gperf"
-    {"ignorable_control", { &uc_is_property_ignorable_control }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str27, UC_PROPERTY_INDEX_ID_START},
+#line 79 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str28, UC_PROPERTY_INDEX_OTHER_ID_START},
+    {-1},
+#line 83 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str30, UC_PROPERTY_INDEX_OTHER_ID_CONTINUE},
+    {-1}, {-1},
 #line 77 "./unictype/pr_byname.gperf"
-    {"terminal_punctuation", { &uc_is_property_terminal_punctuation }},
-#line 58 "./unictype/pr_byname.gperf"
-    {"hex_digit", { &uc_is_property_hex_digit }},
-#line 87 "./unictype/pr_byname.gperf"
-    {"diacritic", { &uc_is_property_diacritic }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str33, UC_PROPERTY_INDEX_OTHER_ID_START},
+    {-1}, {-1},
+#line 214 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str36, UC_PROPERTY_INDEX_DIACRITIC},
+    {-1},
+#line 51 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str38, UC_PROPERTY_INDEX_TITLECASE},
+#line 72 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str39, UC_PROPERTY_INDEX_SOFT_DOTTED},
+#line 71 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str40, UC_PROPERTY_INDEX_SOFT_DOTTED},
+    {-1},
+#line 145 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str42, UC_PROPERTY_INDEX_BIDI_WHITESPACE},
+    {-1},
+#line 78 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str44, UC_PROPERTY_INDEX_OTHER_ID_START},
+#line 131 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str45, UC_PROPERTY_INDEX_BIDI_EUROPEAN_DIGIT},
 #line 48 "./unictype/pr_byname.gperf"
-    {"bidi_arabic_digit", { &uc_is_property_bidi_arabic_digit }},
-#line 30 "./unictype/pr_byname.gperf"
-    {"id_continue", { &uc_is_property_id_continue }},
-#line 18 "./unictype/pr_byname.gperf"
-    {"logical_order_exception", { &uc_is_property_logical_order_exception }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str46, UC_PROPERTY_INDEX_OTHER_LOWERCASE},
+    {-1},
+#line 33 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str48, UC_PROPERTY_INDEX_LOGICAL_ORDER_EXCEPTION},
+    {-1},
+#line 153 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str50, UC_PROPERTY_INDEX_BIDI_EMBEDDING_OR_OVERRIDE},
+#line 112 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str51, UC_PROPERTY_INDEX_OTHER_GRAPHEME_EXTEND},
+    {-1}, {-1}, {-1},
+#line 24 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str55, UC_PROPERTY_INDEX_DEFAULT_IGNORABLE_CODE_POINT},
+    {-1}, {-1},
+#line 137 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str58, UC_PROPERTY_INDEX_BIDI_ARABIC_DIGIT},
+    {-1}, {-1}, {-1},
+#line 47 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str62, UC_PROPERTY_INDEX_LOWERCASE},
+#line 50 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str63, UC_PROPERTY_INDEX_OTHER_LOWERCASE},
+    {-1}, {-1},
+#line 20 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str66, UC_PROPERTY_INDEX_OTHER_ALPHABETIC},
+    {-1}, {-1}, {-1},
+#line 168 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str70, UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR},
+    {-1},
+#line 136 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str72, UC_PROPERTY_INDEX_BIDI_ARABIC_DIGIT},
+#line 159 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str73, UC_PROPERTY_INDEX_ASCII_HEX_DIGIT},
+#line 46 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str74, UC_PROPERTY_INDEX_LOWERCASE},
+    {-1},
+#line 121 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str76, UC_PROPERTY_INDEX_BIDI_CONTROL},
+#line 134 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str77, UC_PROPERTY_INDEX_BIDI_EUR_NUM_TERMINATOR},
+#line 169 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str78, UC_PROPERTY_INDEX_IDS_BINARY_OPERATOR},
+#line 179 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str79, UC_PROPERTY_INDEX_ISO_CONTROL},
+    {-1}, {-1}, {-1},
+#line 36 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str83, UC_PROPERTY_INDEX_VARIATION_SELECTOR},
+#line 193 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str84, UC_PROPERTY_INDEX_SENTENCE_TERMINAL},
+    {-1}, {-1},
+#line 180 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str87, UC_PROPERTY_INDEX_ISO_CONTROL},
+    {-1},
+#line 166 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str89, UC_PROPERTY_INDEX_UNIFIED_IDEOGRAPH},
+#line 81 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str90, UC_PROPERTY_INDEX_ID_CONTINUE},
+#line 167 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str91, UC_PROPERTY_INDEX_RADICAL},
+#line 155 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str92, UC_PROPERTY_INDEX_BIDI_OTHER_NEUTRAL},
+#line 172 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str93, UC_PROPERTY_INDEX_IDS_TRINARY_OPERATOR},
+    {-1}, {-1},
+#line 207 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str96, UC_PROPERTY_INDEX_LEFT_OF_PAIR},
+    {-1}, {-1},
+#line 187 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str99, UC_PROPERTY_INDEX_LINE_SEPARATOR},
+    {-1}, {-1},
+#line 45 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str102, UC_PROPERTY_INDEX_OTHER_UPPERCASE},
+#line 132 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str103, UC_PROPERTY_INDEX_BIDI_EUR_NUM_SEPARATOR},
+#line 17 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str104, UC_PROPERTY_INDEX_ALPHABETIC},
+    {-1}, {-1},
 #line 55 "./unictype/pr_byname.gperf"
-    {"bidi_pdf", { &uc_is_property_bidi_pdf }},
-#line 79 "./unictype/pr_byname.gperf"
-    {"math", { &uc_is_property_math }},
-#line 14 "./unictype/pr_byname.gperf"
-    {"not_a_character", { &uc_is_property_not_a_character }},
-#line 32 "./unictype/pr_byname.gperf"
-    {"xid_start", { &uc_is_property_xid_start }},
-#line 57 "./unictype/pr_byname.gperf"
-    {"bidi_other_neutral", { &uc_is_property_bidi_other_neutral }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str107, UC_PROPERTY_INDEX_CASE_IGNORABLE},
+#line 82 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str108, UC_PROPERTY_INDEX_ID_CONTINUE},
+#line 85 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str109, UC_PROPERTY_INDEX_OTHER_ID_CONTINUE},
+#line 156 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str110, UC_PROPERTY_INDEX_HEX_DIGIT},
+#line 30 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str111, UC_PROPERTY_INDEX_DEPRECATED},
+#line 157 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str112, UC_PROPERTY_INDEX_HEX_DIGIT},
+#line 202 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str113, UC_PROPERTY_INDEX_OTHER_MATH},
+    {-1}, {-1},
+#line 213 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str116, UC_PROPERTY_INDEX_DIACRITIC},
+#line 22 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str117, UC_PROPERTY_INDEX_NOT_A_CHARACTER},
+    {-1},
+#line 209 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str119, UC_PROPERTY_INDEX_COMPOSITE},
+#line 34 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str120, UC_PROPERTY_INDEX_VARIATION_SELECTOR},
+    {-1}, {-1}, {-1},
+#line 101 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str124, UC_PROPERTY_INDEX_JOIN_CONTROL},
+#line 123 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str125, UC_PROPERTY_INDEX_BIDI_CONTROL},
+#line 122 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str126, UC_PROPERTY_INDEX_BIDI_CONTROL},
+#line 183 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str127, UC_PROPERTY_INDEX_DASH},
+    {-1},
 #line 44 "./unictype/pr_byname.gperf"
-    {"bidi_arabic_right_to_left", { &uc_is_property_bidi_arabic_right_to_left }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str129, UC_PROPERTY_INDEX_OTHER_UPPERCASE},
+    {-1},
+#line 176 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str131, UC_PROPERTY_INDEX_SPACE},
+#line 210 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str132, UC_PROPERTY_INDEX_DECIMAL_DIGIT},
+#line 113 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str133, UC_PROPERTY_INDEX_OTHER_GRAPHEME_EXTEND},
+    {-1}, {-1},
+#line 125 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str136, UC_PROPERTY_INDEX_BIDI_LEFT_TO_RIGHT},
+#line 52 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str137, UC_PROPERTY_INDEX_CASED},
+#line 201 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str138, UC_PROPERTY_INDEX_OTHER_MATH},
+#line 144 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str139, UC_PROPERTY_INDEX_BIDI_WHITESPACE},
+    {-1},
+#line 174 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str141, UC_PROPERTY_INDEX_ZERO_WIDTH},
+    {-1},
+#line 175 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str143, UC_PROPERTY_INDEX_ZERO_WIDTH},
+    {-1}, {-1},
+#line 120 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str146, UC_PROPERTY_INDEX_BIDI_CONTROL},
+#line 54 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str147, UC_PROPERTY_INDEX_CASE_IGNORABLE},
+#line 43 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str148, UC_PROPERTY_INDEX_OTHER_UPPERCASE},
+#line 195 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str149, UC_PROPERTY_INDEX_TERMINAL_PUNCTUATION},
+    {-1}, {-1}, {-1}, {-1}, {-1},
+#line 194 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str155, UC_PROPERTY_INDEX_SENTENCE_TERMINAL},
+    {-1},
+#line 133 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str157, UC_PROPERTY_INDEX_BIDI_EUR_NUM_SEPARATOR},
+#line 95 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str158, UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE},
+#line 94 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str159, UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE},
+#line 26 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str160, UC_PROPERTY_INDEX_OTHER_DEFAULT_IGNORABLE_CODE_POINT},
+    {-1}, {-1},
+#line 197 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str163, UC_PROPERTY_INDEX_TERMINAL_PUNCTUATION},
+#line 140 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str164, UC_PROPERTY_INDEX_BIDI_BLOCK_SEPARATOR},
+#line 49 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str165, UC_PROPERTY_INDEX_OTHER_LOWERCASE},
+    {-1}, {-1},
+#line 15 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str168, UC_PROPERTY_INDEX_WHITE_SPACE},
+#line 130 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str169, UC_PROPERTY_INDEX_BIDI_EUROPEAN_DIGIT},
+#line 18 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str170, UC_PROPERTY_INDEX_OTHER_ALPHABETIC},
+#line 191 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str171, UC_PROPERTY_INDEX_QUOTATION_MARK},
+    {-1},
+#line 103 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str173, UC_PROPERTY_INDEX_JOIN_CONTROL},
+#line 102 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str174, UC_PROPERTY_INDEX_JOIN_CONTROL},
+    {-1},
+#line 177 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str176, UC_PROPERTY_INDEX_NON_BREAK},
+    {-1},
+#line 126 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str178, UC_PROPERTY_INDEX_BIDI_HEBREW_RIGHT_TO_LEFT},
+#line 206 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str179, UC_PROPERTY_INDEX_LEFT_OF_PAIR},
+#line 141 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str180, UC_PROPERTY_INDEX_BIDI_BLOCK_SEPARATOR},
+    {-1}, {-1}, {-1},
+#line 149 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str184, UC_PROPERTY_INDEX_BIDI_BOUNDARY_NEUTRAL},
+    {-1},
+#line 16 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str186, UC_PROPERTY_INDEX_ALPHABETIC},
+    {-1}, {-1},
+#line 186 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str189, UC_PROPERTY_INDEX_LINE_SEPARATOR},
+#line 128 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str190, UC_PROPERTY_INDEX_BIDI_ARABIC_RIGHT_TO_LEFT},
+#line 216 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str191, UC_PROPERTY_INDEX_EXTENDER},
+#line 127 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str192, UC_PROPERTY_INDEX_BIDI_HEBREW_RIGHT_TO_LEFT},
+#line 151 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str193, UC_PROPERTY_INDEX_BIDI_PDF},
+#line 100 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str194, UC_PROPERTY_INDEX_JOIN_CONTROL},
+#line 129 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str195, UC_PROPERTY_INDEX_BIDI_ARABIC_RIGHT_TO_LEFT},
+    {-1}, {-1},
+#line 90 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str198, UC_PROPERTY_INDEX_XID_CONTINUE},
+#line 21 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str199, UC_PROPERTY_INDEX_NOT_A_CHARACTER},
+    {-1},
+#line 87 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str201, UC_PROPERTY_INDEX_XID_START},
+#line 89 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str202, UC_PROPERTY_INDEX_XID_CONTINUE},
+#line 42 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str203, UC_PROPERTY_INDEX_UPPERCASE},
 #line 35 "./unictype/pr_byname.gperf"
-    {"pattern_syntax", { &uc_is_property_pattern_syntax }},
-#line 37 "./unictype/pr_byname.gperf"
-    {"grapheme_base", { &uc_is_property_grapheme_base }},
-#line 59 "./unictype/pr_byname.gperf"
-    {"ascii_hex_digit", { &uc_is_property_ascii_hex_digit }},
-#line 22 "./unictype/pr_byname.gperf"
-    {"uppercase", { &uc_is_property_uppercase }},
-#line 38 "./unictype/pr_byname.gperf"
-    {"grapheme_extend", { &uc_is_property_grapheme_extend }},
-#line 83 "./unictype/pr_byname.gperf"
-    {"combining", { &uc_is_property_combining }},
-#line 85 "./unictype/pr_byname.gperf"
-    {"decimal_digit", { &uc_is_property_decimal_digit }},
-#line 56 "./unictype/pr_byname.gperf"
-    {"bidi_embedding_or_override", { &uc_is_property_bidi_embedding_or_override }},
-#line 33 "./unictype/pr_byname.gperf"
-    {"xid_continue", { &uc_is_property_xid_continue }},
-#line 11 "./unictype/pr_byname.gperf"
-    {"white_space", { &uc_is_property_white_space }},
-#line 51 "./unictype/pr_byname.gperf"
-    {"bidi_segment_separator", { &uc_is_property_bidi_segment_separator }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str204, UC_PROPERTY_INDEX_VARIATION_SELECTOR},
 #line 84 "./unictype/pr_byname.gperf"
-    {"composite", { &uc_is_property_composite }},
-#line 82 "./unictype/pr_byname.gperf"
-    {"left_of_pair", { &uc_is_property_left_of_pair }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str205, UC_PROPERTY_INDEX_OTHER_ID_CONTINUE},
+    {-1},
+#line 88 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str207, UC_PROPERTY_INDEX_XID_START},
+#line 178 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str208, UC_PROPERTY_INDEX_NON_BREAK},
+    {-1},
+#line 38 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str210, UC_PROPERTY_INDEX_PRIVATE_USE},
+#line 86 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str211, UC_PROPERTY_INDEX_XID_START},
+    {-1},
+#line 99 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str213, UC_PROPERTY_INDEX_PATTERN_SYNTAX},
+#line 98 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str214, UC_PROPERTY_INDEX_PATTERN_SYNTAX},
+#line 41 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str215, UC_PROPERTY_INDEX_UPPERCASE},
+    {-1}, {-1}, {-1},
+#line 215 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str219, UC_PROPERTY_INDEX_EXTENDER},
+#line 162 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str220, UC_PROPERTY_INDEX_IDEOGRAPHIC},
+#line 171 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str221, UC_PROPERTY_INDEX_IDS_TRINARY_OPERATOR},
+#line 53 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str222, UC_PROPERTY_INDEX_CASE_IGNORABLE},
+#line 196 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str223, UC_PROPERTY_INDEX_TERMINAL_PUNCTUATION},
+    {-1},
+#line 182 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str225, UC_PROPERTY_INDEX_FORMAT_CONTROL},
+    {-1}, {-1},
+#line 124 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str228, UC_PROPERTY_INDEX_BIDI_LEFT_TO_RIGHT},
 #line 19 "./unictype/pr_byname.gperf"
-    {"variation_selector", { &uc_is_property_variation_selector }},
-#line 34 "./unictype/pr_byname.gperf"
-    {"pattern_white_space", { &uc_is_property_pattern_white_space }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str229, UC_PROPERTY_INDEX_OTHER_ALPHABETIC},
+    {-1}, {-1}, {-1},
+#line 192 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str233, UC_PROPERTY_INDEX_QUOTATION_MARK},
+#line 190 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str234, UC_PROPERTY_INDEX_QUOTATION_MARK},
+#line 139 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str235, UC_PROPERTY_INDEX_BIDI_COMMON_SEPARATOR},
+    {-1},
+#line 138 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str237, UC_PROPERTY_INDEX_BIDI_COMMON_SEPARATOR},
+    {-1}, {-1},
+#line 184 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str240, UC_PROPERTY_INDEX_HYPHEN},
+#line 37 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str241, UC_PROPERTY_INDEX_PRIVATE_USE},
+    {-1},
+#line 115 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str243, UC_PROPERTY_INDEX_OTHER_GRAPHEME_EXTEND},
+#line 114 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str244, UC_PROPERTY_INDEX_OTHER_GRAPHEME_EXTEND},
+    {-1}, {-1}, {-1},
+#line 160 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str248, UC_PROPERTY_INDEX_ASCII_HEX_DIGIT},
+#line 64 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str249, UC_PROPERTY_INDEX_CHANGES_WHEN_TITLECASED},
+    {-1},
+#line 203 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str251, UC_PROPERTY_INDEX_OTHER_MATH},
+#line 107 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str252, UC_PROPERTY_INDEX_GRAPHEME_BASE},
+#line 106 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str253, UC_PROPERTY_INDEX_GRAPHEME_BASE},
+#line 111 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str254, UC_PROPERTY_INDEX_GRAPHEME_EXTEND},
+#line 110 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str255, UC_PROPERTY_INDEX_GRAPHEME_EXTEND},
+    {-1}, {-1}, {-1}, {-1},
+#line 105 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str260, UC_PROPERTY_INDEX_GRAPHEME_BASE},
+#line 104 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str261, UC_PROPERTY_INDEX_GRAPHEME_BASE},
+#line 212 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str262, UC_PROPERTY_INDEX_NUMERIC},
+    {-1},
+#line 109 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str264, UC_PROPERTY_INDEX_GRAPHEME_EXTEND},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 14 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str273, UC_PROPERTY_INDEX_WHITE_SPACE},
+#line 185 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str274, UC_PROPERTY_INDEX_PUNCTUATION},
+    {-1},
+#line 148 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str276, UC_PROPERTY_INDEX_BIDI_BOUNDARY_NEUTRAL},
+#line 200 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str277, UC_PROPERTY_INDEX_MATH},
+#line 158 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str278, UC_PROPERTY_INDEX_HEX_DIGIT},
+    {-1}, {-1}, {-1},
+#line 39 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str282, UC_PROPERTY_INDEX_UNASSIGNED_CODE_VALUE},
+    {-1},
+#line 135 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str284, UC_PROPERTY_INDEX_BIDI_EUR_NUM_TERMINATOR},
+#line 58 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str285, UC_PROPERTY_INDEX_CHANGES_WHEN_LOWERCASED},
+#line 23 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str286, UC_PROPERTY_INDEX_DEFAULT_IGNORABLE_CODE_POINT},
+    {-1},
+#line 91 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str288, UC_PROPERTY_INDEX_XID_CONTINUE},
+    {-1}, {-1},
+#line 154 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str291, UC_PROPERTY_INDEX_BIDI_OTHER_NEUTRAL},
+    {-1},
+#line 165 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str293, UC_PROPERTY_INDEX_UNIFIED_IDEOGRAPH},
+    {-1}, {-1}, {-1},
+#line 189 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str297, UC_PROPERTY_INDEX_PARAGRAPH_SEPARATOR},
+    {-1}, {-1}, {-1},
+#line 188 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str301, UC_PROPERTY_INDEX_PARAGRAPH_SEPARATOR},
+    {-1}, {-1}, {-1}, {-1},
+#line 161 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str306, UC_PROPERTY_INDEX_ASCII_HEX_DIGIT},
+#line 198 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str307, UC_PROPERTY_INDEX_CURRENCY_SYMBOL},
+    {-1},
+#line 205 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str309, UC_PROPERTY_INDEX_PAIRED_PUNCTUATION},
+    {-1}, {-1},
+#line 119 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str312, UC_PROPERTY_INDEX_GRAPHEME_LINK},
+#line 118 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str313, UC_PROPERTY_INDEX_GRAPHEME_LINK},
+#line 143 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str314, UC_PROPERTY_INDEX_BIDI_SEGMENT_SEPARATOR},
+    {-1}, {-1}, {-1}, {-1},
+#line 142 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str319, UC_PROPERTY_INDEX_BIDI_SEGMENT_SEPARATOR},
+#line 117 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str320, UC_PROPERTY_INDEX_GRAPHEME_LINK},
+#line 116 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str321, UC_PROPERTY_INDEX_GRAPHEME_LINK},
+    {-1}, {-1},
+#line 61 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str324, UC_PROPERTY_INDEX_CHANGES_WHEN_UPPERCASED},
+    {-1},
+#line 32 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str326, UC_PROPERTY_INDEX_LOGICAL_ORDER_EXCEPTION},
+    {-1}, {-1}, {-1},
+#line 146 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str330, UC_PROPERTY_INDEX_BIDI_NON_SPACING_MARK},
 #line 40 "./unictype/pr_byname.gperf"
-    {"grapheme_link", { &uc_is_property_grapheme_link }},
-#line 42 "./unictype/pr_byname.gperf"
-    {"bidi_left_to_right", { &uc_is_property_bidi_left_to_right }},
-#line 29 "./unictype/pr_byname.gperf"
-    {"other_id_start", { &uc_is_property_other_id_start }},
-#line 16 "./unictype/pr_byname.gperf"
-    {"other_default_ignorable_code_point", { &uc_is_property_other_default_ignorable_code_point }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str331, UC_PROPERTY_INDEX_UNASSIGNED_CODE_VALUE},
+    {-1}, {-1}, {-1},
+#line 62 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str335, UC_PROPERTY_INDEX_CHANGES_WHEN_TITLECASED},
+#line 217 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str336, UC_PROPERTY_INDEX_IGNORABLE_CONTROL},
+#line 108 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str337, UC_PROPERTY_INDEX_GRAPHEME_EXTEND},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 218 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str344, UC_PROPERTY_INDEX_IGNORABLE_CONTROL},
+#line 199 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str345, UC_PROPERTY_INDEX_CURRENCY_SYMBOL},
+    {-1},
+#line 97 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str347, UC_PROPERTY_INDEX_PATTERN_SYNTAX},
+    {-1},
 #line 13 "./unictype/pr_byname.gperf"
-    {"other_alphabetic", { &uc_is_property_other_alphabetic }},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str349, UC_PROPERTY_INDEX_WHITE_SPACE},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1},
+#line 150 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str361, UC_PROPERTY_INDEX_BIDI_PDF},
+#line 31 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str362, UC_PROPERTY_INDEX_LOGICAL_ORDER_EXCEPTION},
+    {-1}, {-1}, {-1},
+#line 181 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str366, UC_PROPERTY_INDEX_FORMAT_CONTROL},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 56 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str383, UC_PROPERTY_INDEX_CHANGES_WHEN_LOWERCASED},
+    {-1}, {-1}, {-1},
+#line 164 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str387, UC_PROPERTY_INDEX_UNIFIED_IDEOGRAPH},
+    {-1}, {-1},
 #line 63 "./unictype/pr_byname.gperf"
-    {"ids_binary_operator", { &uc_is_property_ids_binary_operator }},
-#line 49 "./unictype/pr_byname.gperf"
-    {"bidi_common_separator", { &uc_is_property_bidi_common_separator }},
-#line 75 "./unictype/pr_byname.gperf"
-    {"quotation_mark", { &uc_is_property_quotation_mark }},
-#line 50 "./unictype/pr_byname.gperf"
-    {"bidi_block_separator", { &uc_is_property_bidi_block_separator }},
-    {""}, {""}, {""},
-#line 65 "./unictype/pr_byname.gperf"
-    {"zero_width", { &uc_is_property_zero_width }},
-    {""},
-#line 80 "./unictype/pr_byname.gperf"
-    {"other_math", { &uc_is_property_other_math }},
-    {""}, {""}, {""}, {""}, {""},
-#line 17 "./unictype/pr_byname.gperf"
-    {"deprecated", { &uc_is_property_deprecated }},
-    {""}, {""}, {""},
-#line 54 "./unictype/pr_byname.gperf"
-    {"bidi_boundary_neutral", { &uc_is_property_bidi_boundary_neutral }},
-#line 21 "./unictype/pr_byname.gperf"
-    {"unassigned_code_value", { &uc_is_property_unassigned_code_value }},
-    {""},
-#line 12 "./unictype/pr_byname.gperf"
-    {"alphabetic", { &uc_is_property_alphabetic }},
-    {""}, {""}, {""}, {""},
-#line 61 "./unictype/pr_byname.gperf"
-    {"unified_ideograph", { &uc_is_property_unified_ideograph }},
-    {""}, {""},
-#line 78 "./unictype/pr_byname.gperf"
-    {"currency_symbol", { &uc_is_property_currency_symbol }},
-    {""},
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str390, UC_PROPERTY_INDEX_CHANGES_WHEN_TITLECASED},
+    {-1}, {-1}, {-1}, {-1}, {-1},
+#line 93 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str396, UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE},
+#line 70 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str397, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEMAPPED},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 152 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str404, UC_PROPERTY_INDEX_BIDI_EMBEDDING_OR_OVERRIDE},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 147 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str411, UC_PROPERTY_INDEX_BIDI_NON_SPACING_MARK},
+#line 67 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str412, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEFOLDED},
+    {-1}, {-1}, {-1},
+#line 208 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str416, UC_PROPERTY_INDEX_COMBINING},
+#line 66 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str417, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEFOLDED},
+    {-1}, {-1}, {-1}, {-1},
+#line 59 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str422, UC_PROPERTY_INDEX_CHANGES_WHEN_UPPERCASED},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 204 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str432, UC_PROPERTY_INDEX_PAIRED_PUNCTUATION},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 27 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str468, UC_PROPERTY_INDEX_OTHER_DEFAULT_IGNORABLE_CODE_POINT},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 92 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str475, UC_PROPERTY_INDEX_PATTERN_WHITE_SPACE},
+    {-1}, {-1}, {-1}, {-1},
 #line 69 "./unictype/pr_byname.gperf"
-    {"format_control", { &uc_is_property_format_control }},
-    {""}, {""}, {""}, {""}, {""},
-#line 31 "./unictype/pr_byname.gperf"
-    {"other_id_continue", { &uc_is_property_other_id_continue }},
-    {""}, {""}, {""}, {""}, {""},
-#line 15 "./unictype/pr_byname.gperf"
-    {"default_ignorable_code_point", { &uc_is_property_default_ignorable_code_point }}
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str480, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEMAPPED},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 60 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str489, UC_PROPERTY_INDEX_CHANGES_WHEN_UPPERCASED},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 57 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str525, UC_PROPERTY_INDEX_CHANGES_WHEN_LOWERCASED},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1},
+#line 68 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str581, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEMAPPED},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1},
+#line 65 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str596, UC_PROPERTY_INDEX_CHANGES_WHEN_CASEFOLDED},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1}, {-1},
+#line 96 "./unictype/pr_byname.gperf"
+    {(int)(long)&((struct properties_stringpool_t *)0)->properties_stringpool_str619, UC_PROPERTY_INDEX_PATTERN_SYNTAX}
   };
 
 #ifdef __GNUC__
@@ -279,10 +1071,14 @@ uc_property_lookup (register const char *str, register unsigned int len)
 
       if (key <= MAX_HASH_VALUE && key >= 0)
         {
-          register const char *s = properties[key].name;
+          register int o = properties[key].name;
+          if (o >= 0)
+            {
+              register const char *s = o + properties_stringpool;
 
-          if (*str == *s && !strcmp (str + 1, s + 1))
-            return &properties[key];
+              if (*str == *s && !strcmp (str + 1, s + 1))
+                return &properties[key];
+            }
         }
     }
   return 0;
diff --git a/lib/unictype/pr_case_ignorable.c b/lib/unictype/pr_case_ignorable.c
new file mode 100644 (file)
index 0000000..ef5f340
--- /dev/null
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_case_ignorable table.  */
+#include "pr_case_ignorable.h"
+
+bool
+uc_is_property_case_ignorable (ucs4_t uc)
+{
+  return bitmap_lookup (&u_property_case_ignorable, uc);
+}
+
+const uc_property_t UC_PROPERTY_CASE_IGNORABLE =
+  { &uc_is_property_case_ignorable };
diff --git a/lib/unictype/pr_case_ignorable.h b/lib/unictype/pr_case_ignorable.h
new file mode 100644 (file)
index 0000000..15f2472
--- /dev/null
@@ -0,0 +1,552 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+  {
+    int header[1];
+    int level1[15];
+    short level2[3 << 7];
+    /*unsigned*/ int level3[32 << 4];
+  }
+u_property_case_ignorable =
+{
+  { 15 },
+  {
+       16 * sizeof (int) / sizeof (short) +     0,
+       16 * sizeof (int) / sizeof (short) +   128,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 * sizeof (int) / sizeof (short) +   256
+  },
+  {
+       16 +   384 * sizeof (short) / sizeof (int) +     0,
+       16 +   384 * sizeof (short) / sizeof (int) +    16,
+       16 +   384 * sizeof (short) / sizeof (int) +    32,
+       16 +   384 * sizeof (short) / sizeof (int) +    48,
+       16 +   384 * sizeof (short) / sizeof (int) +    64,
+       16 +   384 * sizeof (short) / sizeof (int) +    80,
+       16 +   384 * sizeof (short) / sizeof (int) +    96,
+       16 +   384 * sizeof (short) / sizeof (int) +   112,
+       16 +   384 * sizeof (short) / sizeof (int) +   128,
+       16 +   384 * sizeof (short) / sizeof (int) +   144,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   160,
+       16 +   384 * sizeof (short) / sizeof (int) +   176,
+       16 +   384 * sizeof (short) / sizeof (int) +   192,
+       16 +   384 * sizeof (short) / sizeof (int) +   208,
+       16 +   384 * sizeof (short) / sizeof (int) +   224,
+       16 +   384 * sizeof (short) / sizeof (int) +   240,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   256,
+       16 +   384 * sizeof (short) / sizeof (int) +   272,
+       16 +   384 * sizeof (short) / sizeof (int) +   288,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   304,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   320,
+       16 +   384 * sizeof (short) / sizeof (int) +   336,
+       16 +   384 * sizeof (short) / sizeof (int) +   352,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   384,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
+       16 +   384 * sizeof (short) / sizeof (int) +   416,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   432,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   448,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   464,
+       16 +   384 * sizeof (short) / sizeof (int) +   480,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   496,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1
+  },
+  {
+    0x00000000, 0x04004080, 0x40000000, 0x00000001,
+    0x00000000, 0x0190A100, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0430FFFF,
+    0x000000B0, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x000003F8, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x02000000, 0x00000000,
+    0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00100000,
+    0x07FF000F, 0x00000000, 0xFFFFF801, 0x00010000,
+    0x00000000, 0x00000000, 0xBFC00000, 0x00003DFF,
+    0x00028000, 0xFFFF0000, 0x000007FF, 0x00000000,
+    0x00000000, 0x0001FFC0, 0x00000000, 0x043FF800,
+    0xFFC00000, 0x00003FFF, 0x0E000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000007, 0x14000000, 0x00FE21FE, 0x0002000C,
+    0x00000002, 0x10000000, 0x0000201E, 0x0000000C,
+    0x00000006, 0x10000000, 0x00023986, 0x00230000,
+    0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
+    0x00000002, 0x90000000, 0x0040201E, 0x0000000C,
+    0x00000004, 0x00000000, 0x00002001, 0x00000000,
+    0x00000000, 0xC0000000, 0x00603DC1, 0x0000000C,
+    0x00000000, 0x90000000, 0x00003040, 0x0000000C,
+    0x00000000, 0x00000000, 0x0000201E, 0x0000000C,
+    0x00000000, 0x00000000, 0x005C0400, 0x00000000,
+    0x00000000, 0x07F20000, 0x00007FC0, 0x00000000,
+    0x00000000, 0x1BF20000, 0x00003F40, 0x00000000,
+    0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
+    0xFEFFE0DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+    0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
+    0x20002064, 0x00000000, 0x00000000, 0x10000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xE0000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x001C0000, 0x001C0000, 0x000C0000, 0x000C0000,
+    0x00000000, 0x3FB00000, 0x208FFE40, 0x00000000,
+    0x00003800, 0x00000000, 0x00000008, 0x00000000,
+    0x00000000, 0x00000200, 0x00000000, 0x00000000,
+    0x00000000, 0x0E040187, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x01800000, 0x00000000, 0x7F400000, 0x9FF81FE5,
+    0x00000000, 0x00000080, 0x00000000, 0x00000000,
+    0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
+    0x00000003, 0x0000033C, 0x00000000, 0x0003A340,
+    0x00000000, 0x00CFF000, 0x00000000, 0x3F000000,
+    0x00000000, 0x00000000, 0xFFF70000, 0x000021FD,
+    0x00000000, 0xFFFFF000, 0xFFFFFFFF, 0x01000003,
+    0xF8000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xF000007F,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
+    0x0300F800, 0x00007C90, 0x00000000, 0x8002FC1F,
+    0x1FFF0000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x20000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00038000,
+    0x00000000, 0x00000000, 0x00000000, 0x80008000,
+    0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
+    0x00000000, 0x00008000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000020, 0x083EFC00, 0x00000000, 0x00000000,
+    0x7E000000, 0x00000000, 0x00000000, 0x70000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00200000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x3F000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00001000, 0x00000000, 0x00000000, 0xB0078000,
+    0x00000000, 0x00000000, 0x00000000, 0x00030000,
+    0xFFFFFFFF, 0x00000003, 0x00000000, 0x00010000,
+    0x00000700, 0x00000000, 0x00000000, 0x00000000,
+    0x00000844, 0x00000060, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000010, 0x0003FFFF,
+    0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
+    0x00000007, 0x13C80000, 0x00008000, 0x00000000,
+    0x00000000, 0x00667E00, 0x00001008, 0x00010000,
+    0x00000000, 0xC19D0000, 0x20000002, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00002120,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x40000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFC0000, 0x00000003, 0x00000000,
+    0x0008FFFF, 0x0000007F, 0x00240000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x80000000,
+    0x04004080, 0x40000000, 0x00000001, 0x00010000,
+    0xC0000000, 0x00000000, 0x00000000, 0x0E000008,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x20000000,
+    0x0000F06E, 0x87000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000002, 0xFF000000, 0x0000007F, 0x00000000,
+    0x00000003, 0x26780000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xFFF80380,
+    0x00000FE7, 0x00003C00, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x0000001C, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF
+  }
+};
diff --git a/lib/unictype/pr_cased.c b/lib/unictype/pr_cased.c
new file mode 100644 (file)
index 0000000..ab93612
--- /dev/null
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_cased table.  */
+#include "pr_cased.h"
+
+bool
+uc_is_property_cased (ucs4_t uc)
+{
+  return bitmap_lookup (&u_property_cased, uc);
+}
+
+const uc_property_t UC_PROPERTY_CASED =
+  { &uc_is_property_cased };
diff --git a/lib/unictype/pr_cased.h b/lib/unictype/pr_cased.h
new file mode 100644 (file)
index 0000000..96ae141
--- /dev/null
@@ -0,0 +1,343 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+  {
+    int header[1];
+    int level1[2];
+    short level2[2 << 7];
+    /*unsigned*/ int level3[15 << 4];
+  }
+u_property_cased =
+{
+  { 2 },
+  {
+        3 * sizeof (int) / sizeof (short) +     0,
+        3 * sizeof (int) / sizeof (short) +   128
+  },
+  {
+        3 +   256 * sizeof (short) / sizeof (int) +     0,
+        3 +   256 * sizeof (short) / sizeof (int) +    16,
+        3 +   256 * sizeof (short) / sizeof (int) +    32,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    48,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    64,
+        3 +   256 * sizeof (short) / sizeof (int) +    80,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
+        3 +   256 * sizeof (short) / sizeof (int) +   224,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1
+  },
+  {
+    0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
+    0x00000000, 0x04200400, 0xFF7FFFFF, 0xFF7FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xF7FFFFFF, 0xFFFFFFF0, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFEFFFFF, 0x01FFFFFF, 0x00000003, 0x0000001F,
+    0x00000000, 0x00000000, 0x00000020, 0x3CCF0000,
+    0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFE00FF, 0x007FFFFF, 0xFFFFFFFE,
+    0x000000FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+    0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+    0x3E2FFC84, 0xF21FBD50, 0x000043E0, 0xFFFFFFFF,
+    0x00000018, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFC00000, 0xFFFFFFFF, 0x000003FF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000781F,
+    0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x00003FFF,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000378FF, 0x000003FF, 0x00000000, 0x04000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x07FFFFFE, 0x07FFFFFE, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
+    0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
+    0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFF3F, 0xF7FFFFFD, 0xF7FFFFFF,
+    0xFFDFFFFF, 0xFFDFFFFF, 0xFFFF7FFF, 0xFFFF7FFF,
+    0xFFFFFDFF, 0xFFFFFDFF, 0x00000FF7, 0x00000000
+  }
+};
diff --git a/lib/unictype/pr_changes_when_casefolded.c b/lib/unictype/pr_changes_when_casefolded.c
new file mode 100644 (file)
index 0000000..28576a6
--- /dev/null
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_changes_when_casefolded table.  */
+#include "pr_changes_when_casefolded.h"
+
+bool
+uc_is_property_changes_when_casefolded (ucs4_t uc)
+{
+  return bitmap_lookup (&u_property_changes_when_casefolded, uc);
+}
+
+const uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEFOLDED =
+  { &uc_is_property_changes_when_casefolded };
diff --git a/lib/unictype/pr_changes_when_casefolded.h b/lib/unictype/pr_changes_when_casefolded.h
new file mode 100644 (file)
index 0000000..44393b4
--- /dev/null
@@ -0,0 +1,331 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+  {
+    int header[1];
+    int level1[2];
+    short level2[2 << 7];
+    /*unsigned*/ int level3[12 << 4];
+  }
+u_property_changes_when_casefolded =
+{
+  { 2 },
+  {
+        3 * sizeof (int) / sizeof (short) +     0,
+        3 * sizeof (int) / sizeof (short) +   128
+  },
+  {
+        3 +   256 * sizeof (short) / sizeof (int) +     0,
+        3 +   256 * sizeof (short) / sizeof (int) +    16,
+        3 +   256 * sizeof (short) / sizeof (int) +    32,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    48,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    64,
+        3 +   256 * sizeof (short) / sizeof (int) +    80,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1
+  },
+  {
+    0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
+    0x00000000, 0x00200000, 0xFF7FFFFF, 0x00000000,
+    0x55555555, 0xAA555555, 0x555556AA, 0xAB555555,
+    0xB1DBCED6, 0x11AED2D5, 0x4AAAADB0, 0x55D65555,
+    0x55555555, 0x6C055555, 0x0000557A, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000020, 0x00450000,
+    0xFFFED740, 0x00000FFB, 0x55638004, 0xE6B35555,
+    0xFFFFFFFF, 0x0000FFFF, 0x00000000, 0x55555555,
+    0x55555401, 0x55555555, 0x55552AAB, 0x55555555,
+    0x55555555, 0xFFFE0055, 0x007FFFFF, 0x00000000,
+    0x00000080, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x55555555, 0x55555555, 0x55555555, 0x55555555,
+    0x4C155555, 0x55555555, 0x55555555, 0x55555555,
+    0x3F00FF00, 0xFF00FF00, 0xAA003F00, 0x0000FF00,
+    0xFFFFFFFF, 0x1F9CFFFF, 0x0F001F9C, 0x1F9C1F00,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00040C40, 0x00000000, 0x0000FFFF,
+    0x00000008, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFC00000, 0x0000FFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0xC025EA9D,
+    0x55555555, 0x55555555, 0x55555555, 0x00002805,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x55555555, 0x00001555,
+    0x00555555, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x55545554, 0x55555555, 0x6A005555,
+    0x00012855, 0x00000155, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x07FFFFFE, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000000FF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000
+  }
+};
diff --git a/lib/unictype/pr_changes_when_casemapped.c b/lib/unictype/pr_changes_when_casemapped.c
new file mode 100644 (file)
index 0000000..9984904
--- /dev/null
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_changes_when_casemapped table.  */
+#include "pr_changes_when_casemapped.h"
+
+bool
+uc_is_property_changes_when_casemapped (ucs4_t uc)
+{
+  return bitmap_lookup (&u_property_changes_when_casemapped, uc);
+}
+
+const uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEMAPPED =
+  { &uc_is_property_changes_when_casemapped };
diff --git a/lib/unictype/pr_changes_when_casemapped.h b/lib/unictype/pr_changes_when_casemapped.h
new file mode 100644 (file)
index 0000000..34f528c
--- /dev/null
@@ -0,0 +1,335 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+  {
+    int header[1];
+    int level1[2];
+    short level2[2 << 7];
+    /*unsigned*/ int level3[13 << 4];
+  }
+u_property_changes_when_casemapped =
+{
+  { 2 },
+  {
+        3 * sizeof (int) / sizeof (short) +     0,
+        3 * sizeof (int) / sizeof (short) +   128
+  },
+  {
+        3 +   256 * sizeof (short) / sizeof (int) +     0,
+        3 +   256 * sizeof (short) / sizeof (int) +    16,
+        3 +   256 * sizeof (short) / sizeof (int) +    32,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    48,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    64,
+        3 +   256 * sizeof (short) / sizeof (int) +    80,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1
+  },
+  {
+    0x00000000, 0x00000000, 0x07FFFFFE, 0x07FFFFFE,
+    0x00000000, 0x00200000, 0xFF7FFFFF, 0xFF7FFFFF,
+    0xFFFFFFFF, 0xFEFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xF7FFDFFF, 0xB3FFF3FF, 0xFFFFFFF0, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFC0FFFFD, 0x0ADFFFFF, 0x20268B29,
+    0x00041F09, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000020, 0x38CF0000,
+    0xFFFFD740, 0xFFFFFFFB, 0xFFE3FFFF, 0xEFB7FFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFE00FF, 0x007FFFFF, 0xFFFFFFFE,
+    0x000000FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x22000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x4FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
+    0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00040C40, 0x00004000, 0xFFFFFFFF,
+    0x00000018, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFC00000, 0xFFFFFFFF, 0x000003FF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xC06DFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000780F,
+    0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x00003FFF,
+    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFCFFFC, 0xFFFFFFFF, 0xFE00FFFF,
+    0x000338FF, 0x000003FF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x07FFFFFE, 0x07FFFFFE, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000
+  }
+};
diff --git a/lib/unictype/pr_changes_when_lowercased.c b/lib/unictype/pr_changes_when_lowercased.c
new file mode 100644 (file)
index 0000000..f84bd84
--- /dev/null
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_changes_when_lowercased table.  */
+#include "pr_changes_when_lowercased.h"
+
+bool
+uc_is_property_changes_when_lowercased (ucs4_t uc)
+{
+  return bitmap_lookup (&u_property_changes_when_lowercased, uc);
+}
+
+const uc_property_t UC_PROPERTY_CHANGES_WHEN_LOWERCASED =
+  { &uc_is_property_changes_when_lowercased };
diff --git a/lib/unictype/pr_changes_when_lowercased.h b/lib/unictype/pr_changes_when_lowercased.h
new file mode 100644 (file)
index 0000000..57e62ed
--- /dev/null
@@ -0,0 +1,327 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+  {
+    int header[1];
+    int level1[2];
+    short level2[2 << 7];
+    /*unsigned*/ int level3[11 << 4];
+  }
+u_property_changes_when_lowercased =
+{
+  { 2 },
+  {
+        3 * sizeof (int) / sizeof (short) +     0,
+        3 * sizeof (int) / sizeof (short) +   128
+  },
+  {
+        3 +   256 * sizeof (short) / sizeof (int) +     0,
+        3 +   256 * sizeof (short) / sizeof (int) +    16,
+        3 +   256 * sizeof (short) / sizeof (int) +    32,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    48,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    64,
+        3 +   256 * sizeof (short) / sizeof (int) +    80,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1
+  },
+  {
+    0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
+    0x00000000, 0x00000000, 0x7F7FFFFF, 0x00000000,
+    0x55555555, 0xAA555555, 0x555554AA, 0x2B555555,
+    0xB1DBCED6, 0x11AED2D5, 0x4AAAADB0, 0x55D65555,
+    0x55555555, 0x6C055555, 0x0000557A, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00450000,
+    0xFFFED740, 0x00000FFB, 0x55008000, 0xE6905555,
+    0xFFFFFFFF, 0x0000FFFF, 0x00000000, 0x55555555,
+    0x55555401, 0x55555555, 0x55552AAB, 0x55555555,
+    0x55555555, 0xFFFE0055, 0x007FFFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x55555555, 0x55555555, 0x55555555, 0x55555555,
+    0x40155555, 0x55555555, 0x55555555, 0x55555555,
+    0x3F00FF00, 0xFF00FF00, 0xAA003F00, 0x0000FF00,
+    0xFF00FF00, 0x1F00FF00, 0x0F001F00, 0x1F001F00,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00040C40, 0x00000000, 0x0000FFFF,
+    0x00000008, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFC00000, 0x0000FFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0xC025EA9D,
+    0x55555555, 0x55555555, 0x55555555, 0x00002805,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x55555555, 0x00001555,
+    0x00555555, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x55545554, 0x55555555, 0x6A005555,
+    0x00012855, 0x00000155, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x07FFFFFE, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x000000FF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000
+  }
+};
diff --git a/lib/unictype/pr_changes_when_titlecased.c b/lib/unictype/pr_changes_when_titlecased.c
new file mode 100644 (file)
index 0000000..86509a7
--- /dev/null
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_changes_when_titlecased table.  */
+#include "pr_changes_when_titlecased.h"
+
+bool
+uc_is_property_changes_when_titlecased (ucs4_t uc)
+{
+  return bitmap_lookup (&u_property_changes_when_titlecased, uc);
+}
+
+const uc_property_t UC_PROPERTY_CHANGES_WHEN_TITLECASED =
+  { &uc_is_property_changes_when_titlecased };
diff --git a/lib/unictype/pr_changes_when_titlecased.h b/lib/unictype/pr_changes_when_titlecased.h
new file mode 100644 (file)
index 0000000..d0b6cd7
--- /dev/null
@@ -0,0 +1,331 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+  {
+    int header[1];
+    int level1[2];
+    short level2[2 << 7];
+    /*unsigned*/ int level3[12 << 4];
+  }
+u_property_changes_when_titlecased =
+{
+  { 2 },
+  {
+        3 * sizeof (int) / sizeof (short) +     0,
+        3 * sizeof (int) / sizeof (short) +   128
+  },
+  {
+        3 +   256 * sizeof (short) / sizeof (int) +     0,
+        3 +   256 * sizeof (short) / sizeof (int) +    16,
+        3 +   256 * sizeof (short) / sizeof (int) +    32,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    48,
+        3 +   256 * sizeof (short) / sizeof (int) +    64,
+        3 +   256 * sizeof (short) / sizeof (int) +    80,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1
+  },
+  {
+    0x00000000, 0x00000000, 0x00000000, 0x07FFFFFE,
+    0x00000000, 0x00200000, 0x80000000, 0xFF7FFFFF,
+    0xAAAAAAAA, 0x54AAAAAA, 0xAAAAAB55, 0xD4AAAAAA,
+    0x46241129, 0xA251212A, 0xB55556D0, 0xAA2BAAAA,
+    0xAAAAAAAA, 0x900AAAA8, 0x0ADFAA85, 0x20268B29,
+    0x00041F09, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000020, 0x388A0000,
+    0x00010000, 0xFFFFF000, 0xAAE37FFF, 0x0927AAAA,
+    0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xAAAAAAAA,
+    0xAAAAA802, 0xAAAAAAAA, 0xAAAAD554, 0xAAAAAAAA,
+    0xAAAAAAAA, 0x000000AA, 0x00000000, 0xFFFFFFFE,
+    0x000000FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x22000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
+    0x0FEAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
+    0x003F00FF, 0x00FF00FF, 0x00FF003F, 0x3FFF00FF,
+    0x00FF00FF, 0x40DF00FF, 0x00CF00DC, 0x00DC00FF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00004000, 0xFFFF0000,
+    0x00000010, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0x000003FF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x00481562,
+    0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000500A,
+    0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AAA,
+    0x00AAAAAA, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xAAA8AAA8, 0xAAAAAAAA, 0x9400AAAA,
+    0x000210AA, 0x000002AA, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFFF00, 0x0000FFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000
+  }
+};
diff --git a/lib/unictype/pr_changes_when_uppercased.c b/lib/unictype/pr_changes_when_uppercased.c
new file mode 100644 (file)
index 0000000..2dfe3aa
--- /dev/null
@@ -0,0 +1,35 @@
+/* Properties of Unicode characters.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include "bitmap.h"
+
+/* Define u_property_changes_when_uppercased table.  */
+#include "pr_changes_when_uppercased.h"
+
+bool
+uc_is_property_changes_when_uppercased (ucs4_t uc)
+{
+  return bitmap_lookup (&u_property_changes_when_uppercased, uc);
+}
+
+const uc_property_t UC_PROPERTY_CHANGES_WHEN_UPPERCASED =
+  { &uc_is_property_changes_when_uppercased };
diff --git a/lib/unictype/pr_changes_when_uppercased.h b/lib/unictype/pr_changes_when_uppercased.h
new file mode 100644 (file)
index 0000000..849bdc8
--- /dev/null
@@ -0,0 +1,331 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Properties of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+#define header_0 16
+#define header_2 9
+#define header_3 127
+#define header_4 15
+static const
+struct
+  {
+    int header[1];
+    int level1[2];
+    short level2[2 << 7];
+    /*unsigned*/ int level3[12 << 4];
+  }
+u_property_changes_when_uppercased =
+{
+  { 2 },
+  {
+        3 * sizeof (int) / sizeof (short) +     0,
+        3 * sizeof (int) / sizeof (short) +   128
+  },
+  {
+        3 +   256 * sizeof (short) / sizeof (int) +     0,
+        3 +   256 * sizeof (short) / sizeof (int) +    16,
+        3 +   256 * sizeof (short) / sizeof (int) +    32,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    48,
+        3 +   256 * sizeof (short) / sizeof (int) +    64,
+        3 +   256 * sizeof (short) / sizeof (int) +    80,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1
+  },
+  {
+    0x00000000, 0x00000000, 0x00000000, 0x07FFFFFE,
+    0x00000000, 0x00200000, 0x80000000, 0xFF7FFFFF,
+    0xAAAAAAAA, 0x54AAAAAA, 0xAAAAAB55, 0xD4AAAAAA,
+    0x46241129, 0xA251212A, 0xB5555B60, 0xAA2DAAAA,
+    0xAAAAAAAA, 0x900AAAA8, 0x0ADFAA85, 0x20268B29,
+    0x00041F09, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000020, 0x388A0000,
+    0x00010000, 0xFFFFF000, 0xAAE37FFF, 0x0927AAAA,
+    0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xAAAAAAAA,
+    0xAAAAA802, 0xAAAAAAAA, 0xAAAAD554, 0xAAAAAAAA,
+    0xAAAAAAAA, 0x000000AA, 0x00000000, 0xFFFFFFFE,
+    0x000000FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x22000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
+    0x0FEAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
+    0x003F00FF, 0x00FF00FF, 0x00FF003F, 0x3FFF00FF,
+    0xFFFFFFFF, 0x50DFFFFF, 0x00CF10DC, 0x10DC00FF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00004000, 0xFFFF0000,
+    0x00000010, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0x000003FF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x00481562,
+    0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000500A,
+    0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AAA,
+    0x00AAAAAA, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xAAA8AAA8, 0xAAAAAAAA, 0x9400AAAA,
+    0x000210AA, 0x000002AA, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x07FFFFFE, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFFFFF00, 0x0000FFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000
+  }
+};
index 631a1b2..20b18b4 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index f17c6a5..c920b3a 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[26 << 4];
+    /*unsigned*/ int level3[27 << 4];
   }
 u_property_combining =
 {
@@ -170,6 +170,7 @@ u_property_combining =
        16 +   384 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -265,9 +266,8 @@ u_property_combining =
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   368,
        16 +   384 * sizeof (short) / sizeof (int) +   384,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@ u_property_combining =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   400,
+       16 +   384 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -428,13 +428,13 @@ u_property_combining =
     0x000003F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
-    0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
-    0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
+    0x07FF0000, 0x00000000, 0xFFFFF800, 0x00010000,
+    0x00000000, 0x00000000, 0x9FC00000, 0x00003D9F,
     0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
+    0xFBC00000, 0x00003EEF, 0x0E000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000000E, 0xD0000000, 0x001E3FFF, 0x0000000C,
+    0x0000000F, 0xDC000000, 0x00FEFFFF, 0x0000000C,
     0x0000000E, 0xD0000000, 0x0080399F, 0x0000000C,
     0x0000000E, 0xD0000000, 0x00023987, 0x00230000,
     0x0000000E, 0xD0000000, 0x00003BBF, 0x0000000C,
@@ -447,14 +447,14 @@ u_property_combining =
     0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0x03000000, 0xC2A00000, 0x00000000, 0xFFFE0000,
-    0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+    0xFEFFE0DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
     0x00000000, 0x7FFFF800, 0xC3C00000, 0x001E3F9D,
-    0x0000BFFC, 0x00000000, 0x00000000, 0x00000000,
+    0x3C00BFFC, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0xE0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -464,38 +464,38 @@ u_property_combining =
     0x00000000, 0x00000200, 0x00000000, 0x00000000,
     0x00000000, 0x0FFF0FFF, 0x00000000, 0x00000000,
     0x00000000, 0xFFFF0000, 0x00000301, 0x00000000,
-    0x0F800000, 0x00000000, 0x00000000, 0x00000000,
+    0x0F800000, 0x00000000, 0x7FE00000, 0x9FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000001F, 0xFFF00000, 0x0000001F, 0x000FF800,
-    0x00000007, 0x000007FE, 0x00000000, 0x00000000,
+    0x00000007, 0x000007FE, 0x00000000, 0x000FFFC0,
     0x00000000, 0x00FFFFF0, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFF70000, 0x000421FF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xF000007F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00038000,
+    0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
     0x06000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x30078000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00030000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000844, 0x000000F8, 0x00000000, 0x00000000,
-    0x00000003, 0xFFF00000, 0x0000001F, 0x00000000,
+    0x00000003, 0xFFF00000, 0x0000001F, 0x0003FFFF,
     0x00000000, 0x00003FC0, 0x000FFF80, 0x00000000,
+    0x0000000F, 0xFFF80000, 0x00000001, 0x00000000,
+    0x00000000, 0x007FFE00, 0x00003008, 0x08000000,
+    0x00000000, 0xC19D0000, 0x00000002, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x007FFE00, 0x00003008, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x000037F8,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
@@ -512,6 +512,10 @@ u_property_combining =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000007, 0xFF000000, 0x0000007F, 0x00000000,
+    0x00000007, 0x07FF0000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xF807E3E0,
index 0aae82a..3f7dbe7 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 43639b5..890af97 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[23 << 4];
+    /*unsigned*/ int level3[26 << 4];
   }
 u_property_composite =
 {
@@ -157,6 +157,7 @@ u_property_composite =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
        -1,
@@ -252,10 +253,7 @@ u_property_composite =
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   352,
-       -1,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -271,6 +269,8 @@ u_property_composite =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   384,
+        3 +   256 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -325,8 +325,8 @@ u_property_composite =
     0xFFFFFFFF, 0x17DFFFFF, 0xE7C7F5DE, 0x15DC37F7,
     0x00000000, 0x10D80060, 0x00800380, 0x00000000,
     0x00000000, 0x00000100, 0x00000000, 0x00000000,
-    0x0040026B, 0x08000007, 0xFFF80000, 0x0DEE0DEE,
-    0x0C000000, 0x00004000, 0x0000E000, 0x00000000,
+    0x0040026B, 0x08000007, 0xFFFF0000, 0x0DEE0DEE,
+    0x0C000200, 0x00004000, 0x0000E000, 0x00000000,
     0x00001210, 0x0001B050, 0x00000292, 0x0333E005,
     0x00000333, 0x0000F000, 0x00000000, 0x00003C0F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -368,8 +368,20 @@ u_property_composite =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x14000000, 0x00000800, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xC0000000, 0x0000001F,
-    0x00000000, 0xF8000000, 0x00000001, 0x00000000
+    0x00000000, 0xF8000000, 0x00000001, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF07FF, 0x000067FF, 0x0000FC00, 0x00000000,
+    0x00010000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x000001FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
index 1f37bb5..0845686 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 8815876..79219a7 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[9 << 4];
+    /*unsigned*/ int level3[10 << 4];
   }
 u_property_currency_symbol =
 {
@@ -102,6 +102,7 @@ u_property_currency_symbol =
        -1,
        -1,
        -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
@@ -143,9 +144,8 @@ u_property_currency_symbol =
        -1,
        -1,
        -1,
-       -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   112,
-        2 +   128 * sizeof (short) / sizeof (int) +   128
+        2 +   128 * sizeof (short) / sizeof (int) +   128,
+        2 +   128 * sizeof (short) / sizeof (int) +   144
   },
   {
     0x00000000, 0x00000010, 0x00000000, 0x00000000,
@@ -159,7 +159,7 @@ u_property_currency_symbol =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x000C0000,
+    0x00000000, 0x00000000, 0x00000000, 0x080C0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00020000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -173,7 +173,11 @@ u_property_currency_symbol =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x08000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x003FFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x03FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x01000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 033dc6c..8398fb6 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 70e67e0..6df9fbb 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[8 << 4];
+    /*unsigned*/ int level3[9 << 4];
   }
 u_property_dash =
 {
@@ -28,21 +28,21 @@ u_property_dash =
        -1,
        -1,
        -1,
-       -1,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +    32,
        -1,
+        2 +   128 * sizeof (short) / sizeof (int) +    48,
+       -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    48,
         2 +   128 * sizeof (short) / sizeof (int) +    64,
+        2 +   128 * sizeof (short) / sizeof (int) +    80,
        -1,
        -1,
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    80,
         2 +   128 * sizeof (short) / sizeof (int) +    96,
+        2 +   128 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
@@ -145,7 +145,7 @@ u_property_dash =
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   112
+        2 +   128 * sizeof (short) / sizeof (int) +   128
   },
   {
     0x00000000, 0x00002000, 0x00000000, 0x00000000,
@@ -156,6 +156,10 @@ u_property_dash =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000400, 0x40000000, 0x00000000, 0x00000000,
+    0x00000001, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000040, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index de31d24..87cfb61 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index d73e8bc..980a867 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[17 << 4];
+    /*unsigned*/ int level3[18 << 4];
   }
 u_property_decimal_digit =
 {
@@ -157,6 +157,7 @@ u_property_decimal_digit =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
        -1,
        -1,
@@ -255,8 +256,7 @@ u_property_decimal_digit =
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
+        3 +   256 * sizeof (short) / sizeof (int) +   272,
        -1,
        -1,
        -1,
@@ -316,7 +316,7 @@ u_property_decimal_digit =
     0x00000000, 0x00000000, 0x0000FFC0, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x03FF03FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
@@ -330,11 +330,11 @@ u_property_decimal_digit =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x000003FF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
@@ -343,6 +343,10 @@ u_property_decimal_digit =
     0x00000000, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index ce0e816..b0f60a6 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index df57db5..6c5470f 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 9f8cf61..429eac9 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index ee69bbf..4bb6261 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[2 << 7];
-    /*unsigned*/ int level3[4 << 4];
+    /*unsigned*/ int level3[7 << 4];
   }
 u_property_deprecated =
 {
@@ -34,24 +34,24 @@ u_property_deprecated =
        16 * sizeof (int) / sizeof (short) +   128
   },
   {
-       -1,
        16 +   256 * sizeof (short) / sizeof (int) +     0,
        -1,
        -1,
+       16 +   256 * sizeof (short) / sizeof (int) +    16,
        -1,
        -1,
        -1,
+       16 +   256 * sizeof (short) / sizeof (int) +    32,
        -1,
        -1,
        -1,
-       -1,
-       16 +   256 * sizeof (short) / sizeof (int) +    16,
-       -1,
+       16 +   256 * sizeof (short) / sizeof (int) +    48,
        -1,
        -1,
        -1,
-       16 +   256 * sizeof (short) / sizeof (int) +    32,
        -1,
+       16 +   256 * sizeof (short) / sizeof (int) +    64,
+       16 +   256 * sizeof (short) / sizeof (int) +    80,
        -1,
        -1,
        -1,
@@ -162,7 +162,7 @@ u_property_deprecated =
        -1,
        -1,
        -1,
-       16 +   256 * sizeof (short) / sizeof (int) +    48,
+       16 +   256 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
        -1,
@@ -294,16 +294,28 @@ u_property_deprecated =
   {
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000003, 0x00000000,
+    0x00000000, 0x00000000, 0x00000200, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00080000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000008, 0x00080000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x02800000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000018, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x0000FC00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000600, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000002, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index cb23950..5de6f72 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4a8390b..494bc08 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[21 << 4];
+    /*unsigned*/ int level3[24 << 4];
   }
 u_property_diacritic =
 {
@@ -43,9 +43,9 @@ u_property_diacritic =
        -1,
        -1,
        -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   224,
         3 +   256 * sizeof (short) / sizeof (int) +   240,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
        -1,
        -1,
@@ -104,8 +104,9 @@ u_property_diacritic =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
         3 +   256 * sizeof (short) / sizeof (int) +   272,
+        3 +   256 * sizeof (short) / sizeof (int) +   288,
+        3 +   256 * sizeof (short) / sizeof (int) +   304,
        -1,
        -1,
        -1,
@@ -145,11 +146,9 @@ u_property_diacritic =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   288,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   304,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   336,
        -1,
        -1,
        -1,
@@ -158,6 +157,7 @@ u_property_diacritic =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
        -1,
@@ -253,7 +253,7 @@ u_property_diacritic =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   320,
+        3 +   256 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -295,7 +295,7 @@ u_property_diacritic =
     0x00000000, 0x00000000, 0x80000000, 0x00001C61,
     0x00000000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x003FF800,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x03000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x10000000, 0x001E2000, 0x00020000,
     0x00000000, 0x10000000, 0x00002000, 0x00000000,
@@ -312,7 +312,7 @@ u_property_diacritic =
     0x03000000, 0xC2A00000, 0x00000000, 0x00000000,
     0x000000DC, 0x00000000, 0x00000040, 0x00000000,
     0x00000000, 0x06800000, 0x00000000, 0x00000000,
-    0x0000BF80, 0x00000000, 0x00000000, 0x00000000,
+    0x0C00BF80, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -323,18 +323,22 @@ u_property_diacritic =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x0E000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x9FE00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00100000, 0x00000010, 0x000FF800,
     0x00000000, 0x00000400, 0x00000000, 0x00000000,
     0x00000000, 0x00C00000, 0x00000000, 0x3F000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0x000021FF,
     0x00000000, 0xFFFFF000, 0xFFFFFFFF, 0x000007FF,
-    0x00000000, 0x00000000, 0x0000FFF0, 0xC0000000,
+    0x00000000, 0x00000000, 0x0000FFF0, 0xE0000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xA0000000, 0xE000E003, 0x6000E000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00038000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00008000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -344,13 +348,17 @@ u_property_diacritic =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xB0008000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00030000,
     0xFF800000, 0x00000003, 0x00000000, 0x00000000,
     0x00000100, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000010, 0x00000000,
+    0x00000000, 0x00000000, 0x00000010, 0x0003FFFF,
     0x00000000, 0x00007800, 0x00080000, 0x00000000,
+    0x00000000, 0x00080000, 0x00000001, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x08000000,
+    0x00000000, 0x80000000, 0x00000007, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00003000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
@@ -360,6 +368,10 @@ u_property_diacritic =
     0x00000000, 0x40000000, 0x00000001, 0x00010000,
     0xC0000000, 0x00000000, 0x00000000, 0x00000008,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x06000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xF807E380,
     0x00000FE7, 0x00003C00, 0x00000000, 0x00000000
index 5e5a69c..728a132 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 70d9582..21f6e56 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[10 << 4];
+    /*unsigned*/ int level3[13 << 4];
   }
 u_property_extender =
 {
@@ -31,8 +31,8 @@ u_property_extender =
        -1,
        -1,
         2 +   128 * sizeof (short) / sizeof (int) +    64,
-       -1,
         2 +   128 * sizeof (short) / sizeof (int) +    80,
+        2 +   128 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
        -1,
@@ -42,9 +42,7 @@ u_property_extender =
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    96,
-       -1,
-       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
@@ -98,12 +96,14 @@ u_property_extender =
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
         2 +   128 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
+        2 +   128 * sizeof (short) / sizeof (int) +   144,
+        2 +   128 * sizeof (short) / sizeof (int) +   160,
+        2 +   128 * sizeof (short) / sizeof (int) +   176,
        -1,
        -1,
        -1,
@@ -145,7 +145,7 @@ u_property_extender =
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   144
+        2 +   128 * sizeof (short) / sizeof (int) +   192
   },
   {
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -168,6 +168,10 @@ u_property_extender =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000080, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00400000, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -186,6 +190,14 @@ u_property_extender =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00008000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00010000,
+    0x00000000, 0x00000000, 0x20000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00010000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
index aca189e..dc2b838 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index fde6b40..42298d1 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[5 << 4];
+    /*unsigned*/ int level3[4 << 4];
   }
 u_property_format_control =
 {
@@ -37,7 +37,6 @@ u_property_format_control =
        16 +   384 * sizeof (short) / sizeof (int) +     0,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +    16,
        -1,
        -1,
        -1,
@@ -50,8 +49,8 @@ u_property_format_control =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +    32,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +    16,
        -1,
        -1,
        -1,
@@ -266,7 +265,8 @@ u_property_format_control =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +    48,
+       -1,
+       16 +   384 * sizeof (short) / sizeof (int) +    32,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@ u_property_format_control =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +    64,
+       16 +   384 * sizeof (short) / sizeof (int) +    48,
        -1,
        -1,
        -1,
@@ -424,10 +424,6 @@ u_property_format_control =
     0x00000000, 0x00002000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00008000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000800, 0x00000000, 0x00000000, 0x0000FC1F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 1d6530c..e4847a0 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 6926dfd..f7f9cec 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[51 << 4];
+    /*unsigned*/ int level3[60 << 4];
   }
 u_property_grapheme_base =
 {
@@ -42,94 +42,94 @@ u_property_grapheme_base =
         4 +   384 * sizeof (short) / sizeof (int) +   272,
         4 +   384 * sizeof (short) / sizeof (int) +   288,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
         4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   336,
         4 +   384 * sizeof (short) / sizeof (int) +   352,
         4 +   384 * sizeof (short) / sizeof (int) +   368,
         4 +   384 * sizeof (short) / sizeof (int) +   384,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
         4 +   384 * sizeof (short) / sizeof (int) +   400,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
         4 +   384 * sizeof (short) / sizeof (int) +   416,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
         4 +   384 * sizeof (short) / sizeof (int) +   432,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   448,
         4 +   384 * sizeof (short) / sizeof (int) +   464,
         4 +   384 * sizeof (short) / sizeof (int) +   480,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
         4 +   384 * sizeof (short) / sizeof (int) +   496,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   512,
        -1,
        -1,
        -1,
@@ -146,27 +146,17 @@ u_property_grapheme_base =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   512,
         4 +   384 * sizeof (short) / sizeof (int) +   528,
         4 +   384 * sizeof (short) / sizeof (int) +   544,
         4 +   384 * sizeof (short) / sizeof (int) +   560,
         4 +   384 * sizeof (short) / sizeof (int) +   576,
         4 +   384 * sizeof (short) / sizeof (int) +   592,
         4 +   384 * sizeof (short) / sizeof (int) +   608,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
         4 +   384 * sizeof (short) / sizeof (int) +   640,
         4 +   384 * sizeof (short) / sizeof (int) +   656,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
         4 +   384 * sizeof (short) / sizeof (int) +   672,
         4 +   384 * sizeof (short) / sizeof (int) +   688,
        -1,
@@ -176,11 +166,17 @@ u_property_grapheme_base =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   704,
+        4 +   384 * sizeof (short) / sizeof (int) +   720,
        -1,
        -1,
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   736,
        -1,
        -1,
        -1,
@@ -206,6 +202,8 @@ u_property_grapheme_base =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -240,6 +238,7 @@ u_property_grapheme_base =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   768,
        -1,
        -1,
        -1,
@@ -254,23 +253,11 @@ u_property_grapheme_base =
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   704,
-        4 +   384 * sizeof (short) / sizeof (int) +   720,
-        4 +   384 * sizeof (short) / sizeof (int) +   736,
-        4 +   384 * sizeof (short) / sizeof (int) +   752,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   768,
+        4 +   384 * sizeof (short) / sizeof (int) +   784,
+        4 +   384 * sizeof (short) / sizeof (int) +   800,
+        4 +   384 * sizeof (short) / sizeof (int) +   816,
+        4 +   384 * sizeof (short) / sizeof (int) +   832,
        -1,
        -1,
        -1,
@@ -278,99 +265,112 @@ u_property_grapheme_base =
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   784,
        -1,
        -1,
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   848,
+        4 +   384 * sizeof (short) / sizeof (int) +   864,
+        4 +   384 * sizeof (short) / sizeof (int) +   880,
+        4 +   384 * sizeof (short) / sizeof (int) +   896,
        -1,
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   912,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   928,
+        4 +   384 * sizeof (short) / sizeof (int) +   944,
        -1,
        -1,
        -1,
@@ -402,8 +402,8 @@ u_property_grapheme_base =
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   320,
-        4 +   384 * sizeof (short) / sizeof (int) +   800,
+        4 +   384 * sizeof (short) / sizeof (int) +   160,
+        4 +   384 * sizeof (short) / sizeof (int) +   944,
        -1,
        -1
   },
@@ -418,54 +418,54 @@ u_property_grapheme_base =
     0xFFFFD7F0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC07, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0xFE7FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0xFE7FFFFF, 0xFFFFFFFE,
     0x000006FF, 0x40000000, 0xFFFF0049, 0x001F07FF,
-    0xC800FFC0, 0xFFFFFFFE, 0x000007FF, 0xFFFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0xFFFFC260,
+    0xC800FFC0, 0xFFFFFFFF, 0x000007FF, 0xFFFEFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x403FFFFF, 0xFFFFC260,
     0xFFFD3FFF, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFFFF, 0x07F007FF,
+    0x043FFFFF, 0x7FFF0110, 0x41FFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF8, 0xE3FFFFFF, 0xFF011E01, 0xF807FFF3,
-    0xFFF99FEC, 0xA3C5FDFF, 0xB0005981, 0x07FFFFC3,
+    0xFFFFFFF8, 0xEBFFFFFF, 0xFF01DE01, 0xFEFFFFF3,
+    0xFFF99FEC, 0xA3C5FDFF, 0xB0005981, 0x0FFFFFC3,
     0xFFF987E8, 0xC36DFDFF, 0x5E000001, 0x001CFFC0,
     0xFFFBBFE8, 0xE3EDFDFF, 0x00011A01, 0x0002FFC3,
-    0xFFF99FEC, 0x23EDFDFF, 0xB0001981, 0x0003FFC3,
+    0xFFF99FEC, 0x23EDFDFF, 0xB0001981, 0x00FFFFC3,
     0xD63DC7E8, 0x83FFC718, 0x00011DC6, 0x07FFFFC0,
     0xFFFDDFEE, 0x23EFFDFF, 0x0300001E, 0xFF00FFC3,
     0xFFFDDFEC, 0x63EFFDFF, 0x40000D9B, 0x0006FFC3,
-    0xFFFDDFEC, 0xA3FFFDFF, 0x00001DC1, 0xFE3FFFC3,
+    0xFFFDDFEC, 0xA7FFFFFF, 0x00005DC1, 0xFE3FFFC3,
     0xFC7FFFEC, 0x2FFBFFFF, 0x7F03007F, 0x001C0000,
     0xFFFFFFFE, 0x800DFFFF, 0x0FFF807F, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x33FF005F, 0x00000000,
     0xFCFFFFFF, 0xFD5FFFFF, 0xFFFFFEFF, 0x80001FFF,
-    0x00000F20, 0xC0000000, 0x001FDFBF, 0x00000000,
+    0x00001F20, 0xC0000000, 0x07FFDFBF, 0x00000000,
     0xFFFFFFFF, 0x99021FFF, 0x3CFFFFFF, 0xFFE1FFFE,
-    0xC3FFDF9B, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+    0xDFFFDF9B, 0xFFFFFFFF, 0xFFFF003F, 0x1FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
     0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x1FFFFFFF,
     0x03FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
-    0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x1FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001FFFF,
     0x0003DFFF, 0x0063FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0xC04FFFFF, 0x1FF001BF, 0x03FF03FF,
     0x03FF47FF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF05FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x01FB0E78, 0xFFFFFFF1, 0x001F3FFF,
-    0xFFFFFFFF, 0xFFFF03FF, 0xC3FF03FF, 0xFFFFFFFF,
-    0xCE7FFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF0FFF, 0xC7FF03FF, 0xFFFFFFFF,
+    0xCE7FFFFF, 0xFFFFFFFF, 0x00BFFFFF, 0x0007E01A,
+    0x03FF03FF, 0x00003FFF, 0x00000000, 0x00000000,
     0xFFFFFFF0, 0xE82FFFFF, 0xFFFF0FFB, 0x1FF007FF,
-    0xFFFFFFFC, 0x03FFC4C3, 0x00000000, 0x00000000,
+    0xFFFFFFFC, 0x03FFC4C3, 0xFFFFFFFF, 0xF00C5CBF,
     0xFFFFFFFF, 0xF8300FFF, 0xFFFFE3FF, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00080000, 0x0007DE02,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -473,42 +473,38 @@ u_property_grapheme_base =
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFDFFFFF, 0xEFCFFFDF, 0x7FDCFFFF,
     0xFFFF07FF, 0xFFFF80FF, 0xFFFFFFFF, 0xFFF30000,
-    0x001F7FFF, 0x003FFFFF, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF8FFFF, 0xFFFFFFFF,
-    0xFFFF01FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x1FFF7FFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000FF,
-    0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
+    0xFFFF03FF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
+    0xFFFFFFFF, 0x0000007F, 0x000007FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x3FFFFFFF, 0x1FFFFFFF, 0x0000000F, 0x00000000,
-    0xFFFFF3DE, 0xFFFFFEFF, 0x7F47AFFF, 0xFFFFFFFE,
-    0xFF1FFFFF, 0x7FFEFFFF, 0xFFFF17FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFD7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x001F1FFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF1FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE0007FF,
-    0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFE007FFF,
+    0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0001803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
-    0xFFFFFFFF, 0x0001FFFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x0003FFFF, 0x00000000, 0x00000000,
     0xFBFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF, 0x0FFF0000,
     0xFFFFFFFF, 0xFFFF03FF, 0xFFFFFFFE, 0xFFFFFFFF,
     0xF87FFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF7FFF, 0x00FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
-    0x7FFFFFFF, 0xFFFFFFFF, 0xFFFF000F, 0xFFFFFFFF,
+    0xFFFF7FFF, 0x07FFFFFF, 0xFFFFFFFF, 0xFFFF000F,
+    0x7FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -519,35 +515,35 @@ u_property_grapheme_base =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF1FFF, 0xFFFFFFFF, 0x0000007F, 0x00000000,
+    0xFFFF1FFF, 0xFFFFFFFF, 0xFFFF007F, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xC0087FFC,
-    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00000FFF, 0xFFFFFFFF, 0xC0087FFF,
+    0x00FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FCFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0xF8000000,
-    0xFFFFF7BB, 0x00000F9F, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC00F, 0x00000000,
-    0xFFFFFFFF, 0xFFFFC03F, 0x800C007F, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x001981FF, 0xF3FF2FF7, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00037FFF, 0x000003FF, 0x00000000, 0xFC000000,
+    0xFFFFF7BB, 0x03FF0F9F, 0xFFFFFFFF, 0x00FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FFC00F, 0x0FFC0000,
+    0xFFFFFFFF, 0xFFFFC03F, 0x800C007F, 0x1FFFFFFF,
+    0xFFFFFFF8, 0xEC37FFFF, 0xC3FFBFFF, 0x00000000,
+    0xFFFFFFFF, 0x001981FF, 0xF3FF2FF7, 0x0FFFFFFF,
+    0xFFFFFFFF, 0x3E62FFFF, 0xF8000005, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x03FF1EDF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xA0F8007F, 0x5F7FFFFF, 0xFFFFFFDB, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFF80003, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF0000, 0xFFFFFFFF,
@@ -568,14 +564,26 @@ u_property_grapheme_base =
     0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0xFFBFFFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x8FFFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFEEF0001, 0x000FFFFF, 0x01FF00FF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFE3FFFFF, 0xFF3FFFFF, 0xFF07FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x83FFFFFF, 0x83FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEF0001, 0x000FFFFF, 0x01FF00FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x7FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFD, 0x00FFFFFF, 0xFFFC3F80, 0x0000FFFF,
+    0xFFFFFFFC, 0xD987FFFF, 0x00000003, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
@@ -584,6 +592,18 @@ u_property_grapheme_base =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x003FFFFF,
     0xFFFFFFFF, 0xFFFFFE7F, 0xFFFFFFFF, 0x00003C5F,
@@ -601,13 +621,29 @@ u_property_grapheme_base =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFCFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFF0FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000FFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x000FFFFF, 0x7FFE7FFF, 0xFFFEFFFE, 0x00000000,
+    0xFFFF07FF, 0xFFFF7FFF, 0xFFFFFFFF, 0xFFFF03FF,
+    0x07FFFFFF, 0x00000000, 0x00000000, 0xFFFFFFC0,
+    0xFFFF0007, 0x07FFFFFF, 0x000301FF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFBF0001, 0xFFFFFFFF, 0x1FFFFFFF,
+    0x000FFFFF, 0xFFFFFFFF, 0x000007DF, 0x0001FFFF,
+    0xFFFFFFFF, 0x7FFFFFFF, 0xFFFFFFFD, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x1EFFFFFF,
+    0xFFFFFFFF, 0x3FFFFFFF, 0xFFFF0000, 0x000000FF,
+    0x00000000, 0x00000000, 0x00000000, 0xF8000000,
+    0x755DFFFE, 0xFFEF2F3F, 0x0000FFE1, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000FFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 1a95297..0c70345 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 2cd1ca6..f6c570b 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[26 << 4];
+    /*unsigned*/ int level3[27 << 4];
   }
 u_property_grapheme_extend =
 {
@@ -170,6 +170,7 @@ u_property_grapheme_extend =
        16 +   384 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -265,9 +266,8 @@ u_property_grapheme_extend =
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   368,
        16 +   384 * sizeof (short) / sizeof (int) +   384,
+       16 +   384 * sizeof (short) / sizeof (int) +   400,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@ u_property_grapheme_extend =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +   400,
+       16 +   384 * sizeof (short) / sizeof (int) +   416,
        -1,
        -1,
        -1,
@@ -428,13 +428,13 @@ u_property_grapheme_extend =
     0x000003F8, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFE0000, 0xBFFFFFFF, 0x000000B6, 0x00000000,
-    0x07FF0000, 0x00000000, 0x7FFFF800, 0x00010000,
-    0x00000000, 0x00000000, 0xDFC00000, 0x00003D9F,
+    0x07FF0000, 0x00000000, 0xFFFFF800, 0x00010000,
+    0x00000000, 0x00000000, 0x9FC00000, 0x00003D9F,
     0x00020000, 0xFFFF0000, 0x000007FF, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x000FF800,
+    0xFBC00000, 0x00003EEF, 0x0E000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000006, 0x10000000, 0x001E21FE, 0x0000000C,
+    0x00000007, 0x14000000, 0x00FE21FE, 0x0000000C,
     0x00000002, 0x50000000, 0x0080201E, 0x0000000C,
     0x00000006, 0x10000000, 0x00023986, 0x00230000,
     0x00000006, 0x10000000, 0x000021BE, 0x0000000C,
@@ -447,14 +447,14 @@ u_property_grapheme_extend =
     0x00000000, 0x07F20000, 0x00007F80, 0x00000000,
     0x00000000, 0x1BF20000, 0x00003F00, 0x00000000,
     0x03000000, 0x02A00000, 0x00000000, 0x7FFE0000,
-    0xFEFF00DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+    0xFEFFE0DF, 0x1FFFFFFF, 0x00000040, 0x00000000,
     0x00000000, 0x66FDE000, 0xC3000000, 0x001E0001,
-    0x00002064, 0x00000000, 0x00000000, 0x00000000,
+    0x20002064, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0xE0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -464,38 +464,38 @@ u_property_grapheme_extend =
     0x00000000, 0x00000200, 0x00000000, 0x00000000,
     0x00000000, 0x0E040187, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x01800000, 0x00000000, 0x00000000, 0x00000000,
+    0x01800000, 0x00000000, 0x7F400000, 0x9FF81FE5,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000000F, 0x17D00000, 0x00000004, 0x000FF800,
-    0x00000003, 0x0000033C, 0x00000000, 0x00000000,
+    0x00000003, 0x0000033C, 0x00000000, 0x0003A340,
     0x00000000, 0x00CFF000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFF70000, 0x000021FD,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFFFFF, 0xC000007F,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0xF000007F,
     0x00003000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFFF0000, 0x0001FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00038000,
+    0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x00000000, 0x0000FC00, 0x00000000, 0x00000000,
     0x06000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x30078000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00030000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000844, 0x00000060, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000010, 0x00000000,
+    0x00000000, 0x00000000, 0x00000010, 0x0003FFFF,
     0x00000000, 0x00003FC0, 0x0003FF80, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000007, 0x13C80000, 0x00000000, 0x00000000,
     0x00000000, 0x00667E00, 0x00001008, 0x00000000,
+    0x00000000, 0xC19D0000, 0x00000002, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00002120,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
@@ -512,6 +512,10 @@ u_property_grapheme_extend =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000002, 0xFF000000, 0x0000007F, 0x00000000,
+    0x00000003, 0x06780000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xF807C3A0,
index b3a499c..572e55b 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 1437975..32acdb1 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[9 << 4];
+    /*unsigned*/ int level3[12 << 4];
   }
 u_property_grapheme_link =
 {
@@ -43,6 +43,7 @@ u_property_grapheme_link =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
@@ -104,10 +105,8 @@ u_property_grapheme_link =
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   112,
-       -1,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
        -1,
        -1,
        -1,
@@ -154,10 +153,11 @@ u_property_grapheme_link =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
        -1,
        -1,
        -1,
@@ -303,17 +303,29 @@ u_property_grapheme_link =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00100000, 0x00100000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00040000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000001,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000010, 0x00000000,
-    0x00000000, 0x00000400, 0x00000000, 0x00000000,
+    0x00000000, 0x00000400, 0x00000000, 0x000C0000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x80000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000040, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000010, 0x00000000,
     0x00000000, 0x00000000, 0x00080000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000001, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00002000,
     0x00000000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000040, 0x00000000,
+    0x00000000, 0x02000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
index ce5a73a..99840c8 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 8bbe5f1..c459d00 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index c2a5d0f..0b69b92 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index f52c26f..2714ac9 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 0115c46..aec0082 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 9c55e7f..5bc130e 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[4 << 7];
-    /*unsigned*/ int level3[45 << 4];
+    /*unsigned*/ int level3[51 << 4];
   }
 u_property_id_continue =
 {
@@ -168,9 +168,9 @@ u_property_id_continue =
        -1,
        16 +   512 * sizeof (short) / sizeof (int) +   544,
        16 +   512 * sizeof (short) / sizeof (int) +   560,
+       16 +   512 * sizeof (short) / sizeof (int) +   576,
        -1,
-       -1,
-       -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -179,19 +179,16 @@ u_property_id_continue =
        -1,
        -1,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   576,
-       16 +   512 * sizeof (short) / sizeof (int) +   592,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   608,
+       16 +   512 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
        -1,
        -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -217,6 +214,8 @@ u_property_id_continue =
        -1,
        -1,
        -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -251,6 +250,7 @@ u_property_id_continue =
        -1,
        -1,
        -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -266,10 +266,10 @@ u_property_id_continue =
        -1,
        -1,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   608,
-       16 +   512 * sizeof (short) / sizeof (int) +   624,
-       16 +   512 * sizeof (short) / sizeof (int) +   640,
-       16 +   512 * sizeof (short) / sizeof (int) +   656,
+       16 +   512 * sizeof (short) / sizeof (int) +   688,
+       16 +   512 * sizeof (short) / sizeof (int) +   704,
+       16 +   512 * sizeof (short) / sizeof (int) +   720,
+       16 +   512 * sizeof (short) / sizeof (int) +   736,
        -1,
        -1,
        -1,
@@ -373,16 +373,16 @@ u_property_id_continue =
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   672,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   752,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   768,
+       16 +   512 * sizeof (short) / sizeof (int) +   784,
        -1,
        -1,
        -1,
@@ -415,10 +415,10 @@ u_property_id_continue =
        -1,
        -1,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   688,
+       16 +   512 * sizeof (short) / sizeof (int) +   784,
        -1,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   704,
+       16 +   512 * sizeof (short) / sizeof (int) +   800,
        -1,
        -1,
        -1,
@@ -558,72 +558,72 @@ u_property_id_continue =
     0xFFFFD7C0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFCFB, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0x027FFFFF, 0xFFFFFFFE,
     0xFFFE00FF, 0xBFFFFFFF, 0xFFFF00B6, 0x000707FF,
-    0x07FF0000, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFC3FF,
+    0x07FF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC3FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x9FEFFFFF, 0x9FFFFDFF,
     0xFFFF0000, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x043FFFFF,
+    0xFFFFFFFF, 0x00003FFF, 0x0FFFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF806FFCF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFEFEFFCF,
     0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x0003FFCF,
     0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
     0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0000FFCF,
     0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0002FFCF,
     0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x0000FFC0,
     0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0x0000FFCF,
-    0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0000FFCF,
-    0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFC00FFCF,
+    0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0006FFCF,
+    0xFFFDDFEC, 0xE7FFFFFF, 0x00807DDF, 0xFC00FFCF,
     0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x000C0000,
     0xFFFFFFFE, 0x07FFFFFF, 0x03FF7FFF, 0x00000000,
     0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
     0x03000001, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE1FFF,
-    0xFEFF0FDF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+    0xFEFFFFDF, 0x1FFFFFFF, 0x00000040, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF03FF, 0xFFFFFFFF,
-    0x03FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+    0x3FFFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
-    0xFF3DFFFF, 0xFFFFFFFF, 0x87FFFFFF, 0x0003FE00,
+    0xFF3DFFFF, 0xFFFFFFFF, 0xE7FFFFFF, 0x0003FE00,
     0x0000FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
     0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF9FFF,
     0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
     0x001FDFFF, 0x001FFFFF, 0x000FFFFF, 0x000DDFFF,
     0xFFFFFFFF, 0xFFCFFFFF, 0x308FFFFF, 0x000003FF,
     0x03FF3800, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF07FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFC0, 0x001F3FFF,
-    0xFFFFFFFF, 0xFFFF03FF, 0x03FF03FF, 0x00000000,
-    0x0FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF0FFF, 0x07FF03FF, 0x00000000,
+    0x0FFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF, 0x9FFFFFFF,
+    0x03FF03FF, 0x00000080, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FF0FFF, 0x000FF800,
-    0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x03FFC7FF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0x00FFFFFF, 0xFFFFE3FF, 0x3FFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFF70000, 0x0007FFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF000007F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x80000000, 0x00100001, 0x80020000,
-    0x001F0000, 0x00000000, 0x1FFF0000, 0x0001FFE2,
+    0x1FFF0000, 0x00000000, 0x1FFF0000, 0x0001FFE2,
     0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
     0x000001FF, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
-    0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0003F81F,
+    0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x8000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
     0x000000E0, 0x1F3EFFFE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xFE7FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+    0x00007FFF, 0x07FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -635,32 +635,32 @@ u_property_id_continue =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00001FFF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0xB000FFFC,
-    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0xB000FFFF,
+    0x00FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFFF,
     0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0x000379FF, 0x000003FF, 0x00000000, 0xFC000000,
     0xFFFFFFFF, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF001F, 0x00000000,
-    0xFFFFFFFF, 0xFFFF3FFF, 0x000FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x007FFFFF, 0x03FF3FFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF001F, 0x08FFFFFF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0x000FFFFF, 0x1FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF8001, 0x00000000,
+    0xFFFFFFFF, 0x007FFFFF, 0x03FF3FFF, 0x0C7FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x38000007, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x03FF37FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xE0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
@@ -684,14 +684,22 @@ u_property_id_continue =
     0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0x003FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEFF06F, 0x870FFFFF, 0x00000000, 0x00000000,
+    0xFEEFF06F, 0x870FFFFF, 0x00000000, 0x1FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x003FFFFF, 0x003FFFFF, 0x0007FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000007F, 0x0000FFC0,
+    0xFFFFFFFF, 0x07FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
@@ -700,6 +708,18 @@ u_property_id_continue =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xF807E3E0,
@@ -718,8 +738,12 @@ u_property_id_continue =
     0xFFFFFDFF, 0xFFFFFDFF, 0xFFFFCFF7, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index ec349dd..9980ab1 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 178d718..ecddf47 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[42 << 4];
+    /*unsigned*/ int level3[48 << 4];
   }
 u_property_id_start =
 {
@@ -156,9 +156,9 @@ u_property_id_start =
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   544,
         4 +   384 * sizeof (short) / sizeof (int) +   560,
+        4 +   384 * sizeof (short) / sizeof (int) +   576,
        -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -167,19 +167,16 @@ u_property_id_start =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   576,
-        4 +   384 * sizeof (short) / sizeof (int) +   592,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   608,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -205,6 +202,8 @@ u_property_id_start =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -239,6 +238,7 @@ u_property_id_start =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -256,8 +256,8 @@ u_property_id_start =
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   608,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
+        4 +   384 * sizeof (short) / sizeof (int) +   688,
+        4 +   384 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
@@ -361,16 +361,16 @@ u_property_id_start =
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   640,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   720,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   736,
+        4 +   384 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -403,7 +403,7 @@ u_property_id_start =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   656,
+        4 +   384 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1
   },
@@ -418,32 +418,32 @@ u_property_id_start =
     0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC000,
+    0x00000000, 0xFFFFFFFF, 0x000007FF, 0xFFFEC000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C060,
     0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x043007FF,
+    0x043FFFFF, 0x00000110, 0x01FFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8060003,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xFEFE0003,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
     0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
     0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
-    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
-    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
+    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00060003,
+    0xFFFDDFE0, 0x27FFFFFF, 0x00004000, 0xFC000003,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x000DFFFF, 0x0000007F, 0x00000000,
     0xFEF02596, 0x200DECAE, 0x3000005F, 0x00000000,
     0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
-    0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+    0x00001F00, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
     0x00004003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
     0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
@@ -452,20 +452,20 @@ u_property_id_start =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF9FFF,
     0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF05FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
-    0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
-    0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00000FFF, 0x000000FE, 0x00000000,
+    0x007FFFFF, 0xFFFFFFFF, 0x001FFFFF, 0x00000000,
+    0x00000000, 0x00000080, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
-    0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x0000C001, 0xFFFFFFFF, 0x0000003F,
     0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x3FFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0003DE00,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -473,17 +473,17 @@ u_property_id_start =
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
-    0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFF0000, 0x00000000, 0x00000000, 0x00000000,
     0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
     0x000001FF, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000781F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
     0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xF87FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+    0x00007FFF, 0x07FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -495,32 +495,32 @@ u_property_id_start =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00001FFF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
-    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFF,
+    0x00FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
     0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0x000379FF, 0x000003FF, 0x00000000, 0xFC000000,
     0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
-    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
-    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x08FC0000,
+    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x1FFFFFFF,
+    0xFFFFFFF0, 0x0007FFFF, 0x00008000, 0x00000000,
+    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x047FFFFF,
+    0xFFFFFFFF, 0x3E62FFFF, 0x38000005, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000007,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xA0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
@@ -544,13 +544,21 @@ u_property_id_start =
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0x003FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x1FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x003FFFFF, 0x003FFFFF, 0x0007FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x00FFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x0000FFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -560,6 +568,18 @@ u_property_id_start =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
     0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
     0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
@@ -570,8 +590,12 @@ u_property_id_start =
     0xFFFFFDFF, 0xFFFFFDFF, 0x00000FF7, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 266034c..31c3da7 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index b0b2db2..e0f23d4 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[3];
     short level2[2 << 7];
-    /*unsigned*/ int level3[8 << 4];
+    /*unsigned*/ int level3[9 << 4];
   }
 u_property_ideographic =
 {
@@ -234,15 +234,15 @@ u_property_ideographic =
         4 +   256 * sizeof (short) / sizeof (int) +    16,
         4 +   256 * sizeof (short) / sizeof (int) +    16,
         4 +   256 * sizeof (short) / sizeof (int) +    96,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   256 * sizeof (short) / sizeof (int) +    16,
+        4 +   256 * sizeof (short) / sizeof (int) +    16,
+        4 +   256 * sizeof (short) / sizeof (int) +    16,
+        4 +   256 * sizeof (short) / sizeof (int) +    16,
+        4 +   256 * sizeof (short) / sizeof (int) +    16,
+        4 +   256 * sizeof (short) / sizeof (int) +    16,
+        4 +   256 * sizeof (short) / sizeof (int) +    16,
+        4 +   256 * sizeof (short) / sizeof (int) +   112,
+        4 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1,
        -1,
@@ -275,7 +275,7 @@ u_property_ideographic =
        -1,
        -1,
         4 +   256 * sizeof (short) / sizeof (int) +    16,
-        4 +   256 * sizeof (short) / sizeof (int) +   112,
+        4 +   256 * sizeof (short) / sizeof (int) +   128,
        -1,
        -1
   },
@@ -295,19 +295,23 @@ u_property_ideographic =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 25e12a3..6590b4c 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 2d7f401..d559b60 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 2a85221..51fca1e 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index f4e57d8..db1f752 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 7b04244..c8307ff 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 426c5f7..a75a29c 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[7 << 4];
+    /*unsigned*/ int level3[8 << 4];
   }
 u_property_ignorable_control =
 {
@@ -170,6 +170,7 @@ u_property_ignorable_control =
        -1,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +    80,
        -1,
        -1,
        -1,
@@ -265,8 +266,7 @@ u_property_ignorable_control =
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +    80,
+       16 +   384 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@ u_property_ignorable_control =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +    96,
+       16 +   384 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
@@ -441,6 +441,10 @@ u_property_ignorable_control =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x0E000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x20000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x07F80000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index bba6608..ea24f2a 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 0953791..c12e04f 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 8cf3706..491ec90 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 649a168..d3965a4 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 344e3f0..20d7a5f 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index af7ee2c..42c062d 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 72c1964..fc870f1 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 56dd92b..518e3fe 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 720e951..2c0e0db 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index c8894ad..3592b41 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[1 << 4];
+    /*unsigned*/ int level3[2 << 4];
   }
 u_property_logical_order_exception =
 {
@@ -103,7 +103,7 @@ u_property_logical_order_exception =
        -1,
        -1,
        -1,
-       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +    16,
        -1,
        -1,
        -1,
@@ -151,6 +151,10 @@ u_property_logical_order_exception =
     0x00000000, 0x00000000, 0x0000001F, 0x00000000,
     0x00000000, 0x00000000, 0x0000001F, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x1A600000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
index 1dbbba2..16fb552 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 3443aec..5f98c21 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -289,7 +289,7 @@ u_property_lowercase =
     0x00010000, 0xFFFFF000, 0xAAE37FFF, 0x192FAAAA,
     0x00000000, 0xFFFF0000, 0xFFFFFFFF, 0xAAAAAAAA,
     0xAAAAA802, 0xAAAAAAAA, 0xAAAAD554, 0xAAAAAAAA,
-    0xAAAAAAAA, 0x0000000A, 0x00000000, 0xFFFFFFFE,
+    0xAAAAAAAA, 0x000000AA, 0x00000000, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -299,7 +299,7 @@ u_property_lowercase =
     0xBFEAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA,
     0x003F00FF, 0x00FF00FF, 0x00FF003F, 0x3FFF00FF,
     0x00FF00FF, 0x40DF00FF, 0x00CF00DC, 0x00DC00FF,
-    0x00000000, 0x00000000, 0x00000000, 0x80020000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x001F0000, 0x00000000, 0x00000000, 0x00000000,
     0x0008C400, 0x32108000, 0x000043C0, 0xFFFF0000,
     0x00000010, 0x00000000, 0x00000000, 0x00000000,
@@ -308,13 +308,13 @@ u_property_lowercase =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFF0000, 0x7FFFFFFF, 0x3FDA1562,
-    0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000001A,
+    0xAAAAAAAA, 0xAAAAAAAA, 0xAAAAAAAA, 0x0000501A,
     0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AA8,
+    0x00000000, 0x00000000, 0xAAAAAAAA, 0x00002AAA,
     0x00AAAAAA, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xAAABAAA8, 0xAAAAAAAA, 0x95FFAAAA,
-    0x000010AA, 0x00000000, 0x00000000, 0x00000000,
+    0x000250AA, 0x000002AA, 0x00000000, 0x04000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00F8007F, 0x00000000, 0x00000000, 0x00000000,
index 35bde04..70b8a57 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index dd3ae7e..e4bf2ce 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -293,7 +293,7 @@ u_property_math =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00400000, 0x001C0000, 0x00040011, 0x7C00001E,
     0x00007C00, 0x00000000, 0x1FFF0000, 0x0000F862,
-    0x3E2FFC04, 0xF1FBB310, 0x00000BFF, 0x00000000,
+    0x3F2FFC84, 0xF1FBB310, 0x00000BFF, 0x00000000,
     0xFFFF0000, 0xF0C37EFF, 0x2FFFFFFF, 0xFFF00030,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -306,7 +306,7 @@ u_property_math =
     0x00000060, 0x00000000, 0x00000005, 0x0000E00F,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFF17FF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFD7FF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
index 7ef84ff..32e75f2 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 0525fb9..e70ec82 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index b8b96c3..1b1d67c 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 267df70..31f75b7 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 7fe7633..fe3f06b 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 14aaa03..4ab5e4f 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[32 << 4];
+    /*unsigned*/ int level3[35 << 4];
   }
 u_property_numeric =
 {
@@ -157,6 +157,8 @@ u_property_numeric =
         4 +   384 * sizeof (short) / sizeof (int) +   416,
         4 +   384 * sizeof (short) / sizeof (int) +   432,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   448,
+        4 +   384 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
        -1,
@@ -166,10 +168,7 @@ u_property_numeric =
        -1,
        -1,
        -1,
-       -1,
-       -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   448,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   480,
        -1,
        -1,
        -1,
@@ -255,10 +254,10 @@ u_property_numeric =
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   464,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   480,
+        4 +   384 * sizeof (short) / sizeof (int) +   496,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   512,
        -1,
        -1,
        -1,
@@ -271,6 +270,7 @@ u_property_numeric =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   528,
        -1,
        -1,
        -1,
@@ -402,7 +402,7 @@ u_property_numeric =
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   496,
+        4 +   384 * sizeof (short) / sizeof (int) +   544,
        -1,
        -1,
        -1
@@ -422,7 +422,7 @@ u_property_numeric =
     0x00000000, 0x00000000, 0x00000000, 0x03F0FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
-    0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
+    0x00000000, 0x00000000, 0x00000000, 0x00FCFFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0007FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x7F00FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
@@ -447,9 +447,9 @@ u_property_numeric =
     0x03FF0000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FFC0, 0x00000000,
-    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x07FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x03FF03FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x03FF0000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF03FF, 0x00000000,
@@ -458,8 +458,8 @@ u_property_numeric =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03F10000,
     0x000003FF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFF80000, 0xFFFFFFFF,
-    0x000001EF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,
+    0x000003EF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
     0x0FFFFFFF, 0x00000000, 0x00000000, 0xFFFFFC00,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -481,17 +481,17 @@ u_property_numeric =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x000003FF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0000FFC0,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x003F0000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x000003FF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x03FF0000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x03FF0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x01080800,
@@ -512,11 +512,19 @@ u_property_numeric =
     0x00000000, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFF000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0FC00000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x03C00000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x000000FF, 0x60000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x000000FF, 0x00000000,
+    0x00000000, 0x00000000, 0xFF000000, 0xFF000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x7FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFC0000, 0x0000FFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -533,6 +541,10 @@ u_property_numeric =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFFFC000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x000007FF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00010000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
index 398288f..8da7e51 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index c0c4271..5348558 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[19 << 4];
+    /*unsigned*/ int level3[20 << 4];
   }
 u_property_other_alphabetic =
 {
@@ -157,7 +157,7 @@ u_property_other_alphabetic =
         3 +   256 * sizeof (short) / sizeof (int) +   288,
        -1,
        -1,
-       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   304,
        -1,
        -1,
        -1,
@@ -287,13 +287,13 @@ u_property_other_alphabetic =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xBFFF0000, 0x000000B6, 0x00000000,
-    0x07FF0000, 0x00000000, 0x7EFFF800, 0x00010000,
+    0x07FF0000, 0x00000000, 0xFEFFF800, 0x00010000,
     0x00000000, 0x00000000, 0x1FC00000, 0x0000219E,
     0x00020000, 0xFFFF0000, 0x00000000, 0x00000000,
     0x00000000, 0x0001FFC0, 0x00000000, 0x00000000,
+    0xF8C00000, 0x00001EEF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000000E, 0xC0000000, 0x00001FFF, 0x0000000C,
+    0x0000000F, 0xCC000000, 0x00E0DFFF, 0x0000000C,
     0x0000000E, 0xC0000000, 0x0080199F, 0x0000000C,
     0x0000000E, 0xC0000000, 0x00021987, 0x00230000,
     0x0000000E, 0xC0000000, 0x00001BBF, 0x0000000C,
@@ -306,9 +306,9 @@ u_property_other_alphabetic =
     0x00000000, 0x07F20000, 0x00002000, 0x00000000,
     0x00000000, 0x1BF20000, 0x00002000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFFE0000,
-    0xFEFF0003, 0x1FFFFFFF, 0x00000000, 0x00000000,
+    0xFEFFE003, 0x1FFFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x797FF800, 0xC3C00000, 0x001E0185,
-    0x0000007C, 0x00000000, 0x00000000, 0x00000000,
+    0x3000007C, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -323,12 +323,12 @@ u_property_other_alphabetic =
     0x00000000, 0x00000200, 0x00000000, 0x00000000,
     0x00000000, 0x01FF0FFF, 0x00000000, 0x00000000,
     0x00000000, 0xFFFF0000, 0x00000301, 0x00000000,
-    0x0F800000, 0x00000000, 0x00000000, 0x00000000,
+    0x0F800000, 0x00000000, 0x7FE00000, 0x001FFFFE,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0000001F, 0xFFE00000, 0x0000000F, 0x00000000,
-    0x00000007, 0x000003FE, 0x00000000, 0x00000000,
+    0x00000007, 0x000003FE, 0x00000000, 0x0003FF80,
     0x00000000, 0x003FFFF0, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00040000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -342,11 +342,11 @@ u_property_other_alphabetic =
     0x00000000, 0x000000F8, 0x00000000, 0x00000000,
     0x00000003, 0xFFF00000, 0x0000000F, 0x00000000,
     0x00000000, 0x000007C0, 0x0007FF80, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000000F, 0xFFF00000, 0x00000000, 0x00000000,
     0x00000000, 0x007FFE00, 0x00003008, 0x00000000,
+    0x00000000, 0x419D0000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x000007F8,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x40000000, 0x00000000, 0x00000000, 0x00000000,
@@ -354,6 +354,10 @@ u_property_other_alphabetic =
     0x0000F06E, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000007, 0xFF000000, 0x0000003F, 0x00000000,
+    0x00000004, 0x01FF0000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
index 1f65195..70c7b0b 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 621cf4c..8303ef6 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 209e19f..a76e1a2 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index cbf3b98..7d98a4c 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index aeb00cc..b7066d4 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 78e2b63..d029114 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[1];
     short level2[1 << 7];
-    /*unsigned*/ int level3[3 << 4];
+    /*unsigned*/ int level3[4 << 4];
   }
 u_property_other_id_continue =
 {
@@ -30,7 +30,7 @@ u_property_other_id_continue =
         2 +   128 * sizeof (short) / sizeof (int) +    32,
        -1,
        -1,
-       -1,
+        2 +   128 * sizeof (short) / sizeof (int) +    48,
        -1,
        -1,
        -1,
@@ -159,6 +159,10 @@ u_property_other_id_continue =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x0003FE00,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x04000000, 0x00000000
   }
 };
index 40d09bc..3d360ae 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 233f80f..82122b6 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 8126f3c..e40845c 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 7811908..e3e39b6 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 30a864d..bd549fc 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 116311d..9e8a456 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -289,7 +289,7 @@ u_property_other_math =
     0x00000000, 0x00000000, 0x00270000, 0x00330000,
     0x00400000, 0x001C0000, 0x00000001, 0x6000001E,
     0x00006000, 0x00000000, 0x1FFF0000, 0x0000F862,
-    0x3E2FFC04, 0xF1FBB310, 0x000003E0, 0x00000000,
+    0x3E2FFC84, 0xF1FBB310, 0x000003E0, 0x00000000,
     0xF3E00000, 0xF0C33EB6, 0x2FEB3FFF, 0x00000030,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 9c6b1de..42cd5a5 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index be01f4d..fe143dd 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 1faa2cd..5911cb6 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 7723d32..bf19712 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index dc7260d..7a3f972 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 72c2a85..c5e458a 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index bd46e3f..a10ad6f 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index f399065..70a23a5 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 6c4465c..70bb78f 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 559d08f..98698db 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 815ac9b..f30728d 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e18b60e..b432856 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 39f0cfa..e3d0b0c 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index cfa6649..a057b4a 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[30 << 4];
+    /*unsigned*/ int level3[33 << 4];
   }
 u_property_punctuation =
 {
@@ -31,21 +31,21 @@ u_property_punctuation =
         3 +   256 * sizeof (short) / sizeof (int) +    96,
         3 +   256 * sizeof (short) / sizeof (int) +   112,
         3 +   256 * sizeof (short) / sizeof (int) +   128,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   144,
         3 +   256 * sizeof (short) / sizeof (int) +   160,
         3 +   256 * sizeof (short) / sizeof (int) +   176,
         3 +   256 * sizeof (short) / sizeof (int) +   192,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   208,
-        3 +   256 * sizeof (short) / sizeof (int) +   224,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   224,
         3 +   256 * sizeof (short) / sizeof (int) +   240,
-        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
         3 +   256 * sizeof (short) / sizeof (int) +   272,
+       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   288,
         3 +   256 * sizeof (short) / sizeof (int) +   304,
+        3 +   256 * sizeof (short) / sizeof (int) +   320,
        -1,
        -1,
        -1,
@@ -103,10 +103,10 @@ u_property_punctuation =
        -1,
        -1,
        -1,
-       -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   320,
         3 +   256 * sizeof (short) / sizeof (int) +   336,
         3 +   256 * sizeof (short) / sizeof (int) +   352,
+        3 +   256 * sizeof (short) / sizeof (int) +   368,
+        3 +   256 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -147,18 +147,17 @@ u_property_punctuation =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   368,
-        3 +   256 * sizeof (short) / sizeof (int) +   384,
         3 +   256 * sizeof (short) / sizeof (int) +   400,
         3 +   256 * sizeof (short) / sizeof (int) +   416,
-       -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   432,
         3 +   256 * sizeof (short) / sizeof (int) +   448,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   464,
+        3 +   256 * sizeof (short) / sizeof (int) +   480,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   496,
        -1,
        -1,
        -1,
@@ -167,7 +166,8 @@ u_property_punctuation =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   464,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   512,
        -1,
        -1,
        -1,
@@ -295,7 +295,7 @@ u_property_punctuation =
     0x00000000, 0x00000000, 0x00100000, 0x00000000,
     0x00003FFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03800000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x7FFF0000, 0x40000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00010030,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -306,7 +306,7 @@ u_property_punctuation =
     0x00000000, 0x00000000, 0x0C008000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x0007FFF0, 0x3C000000, 0x00000000, 0x00000000,
-    0x00000020, 0x00000000, 0x001F0000, 0x00000000,
+    0x00000020, 0x00000000, 0x061F0000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FC00, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -315,6 +315,10 @@ u_property_punctuation =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x000001FE,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000001, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00006000,
     0x18000000, 0x00000000, 0x00000000, 0x00003800,
     0x00000000, 0x00600000, 0x00000000, 0x00000000,
@@ -322,13 +326,13 @@ u_property_punctuation =
     0x000007FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000030, 0x00000000,
-    0x00000000, 0x00000000, 0xC0000000, 0x00000000,
-    0xC0000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xC0000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00003F7F, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFC000000, 0x00000001,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xF0000000,
     0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00080000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFF0000, 0xFFFF00FF, 0x7FFBFFEF, 0x60000000,
@@ -349,9 +353,9 @@ u_property_punctuation =
     0x01FFFFF8, 0x00000000, 0x0F000000, 0x30000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xDE000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00010000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x00017FFF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00037FFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -359,18 +363,22 @@ u_property_punctuation =
     0x00000000, 0x00000001, 0x00000000, 0x08000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000E000, 0x00000000, 0x00000000, 0x40080000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xC0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000E000, 0x00000000, 0x00000000, 0x40080000,
+    0x00000000, 0x00000000, 0x00000000, 0x00FC0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00F00000,
-    0x00000000, 0x00000000, 0x0000C000, 0x00000000,
+    0x00000000, 0x00000000, 0x0000C000, 0x07000000,
     0x00000000, 0x0000C000, 0x80000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xC0003FFE, 0x00000000,
     0x00000000, 0x00000000, 0xF0000000, 0x00000000,
+    0x00000000, 0x00000000, 0xC0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000800,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xC0000000, 0x00000000, 0x00000000,
@@ -387,12 +395,16 @@ u_property_punctuation =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x80000000, 0x00000000, 0x00010000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00800000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x80000000, 0x80000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x01FF0000, 0x00000000,
+    0x00000000, 0x00000000, 0x01FF0000, 0x80000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFE000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00003F80, 0x00000000,
+    0x00000000, 0xD8000000, 0x00000003, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x000F0000,
index 13e3239..be1cfe4 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e334761..8dfa68c 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 3d82389..0c41b83 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e4b54c1..f24e4f0 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 81a94da..2c015e8 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index fd5bfbf..68e5c7a 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -9,40 +9,115 @@ static const
 struct
   {
     int header[1];
-    int level1[1];
-    short level2[1 << 7];
-    /*unsigned*/ int level3[17 << 4];
+    int level1[2];
+    short level2[2 << 7];
+    /*unsigned*/ int level3[20 << 4];
   }
 u_property_sentence_terminal =
 {
-  { 1 },
-  {     2 * sizeof (int) / sizeof (short) +     0 },
+  { 2 },
   {
-        2 +   128 * sizeof (short) / sizeof (int) +     0,
+        3 * sizeof (int) / sizeof (short) +     0,
+        3 * sizeof (int) / sizeof (short) +   128
+  },
+  {
+        3 +   256 * sizeof (short) / sizeof (int) +     0,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    16,
+        3 +   256 * sizeof (short) / sizeof (int) +    32,
+        3 +   256 * sizeof (short) / sizeof (int) +    48,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    64,
+        3 +   256 * sizeof (short) / sizeof (int) +    80,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +    96,
+        3 +   256 * sizeof (short) / sizeof (int) +   112,
+        3 +   256 * sizeof (short) / sizeof (int) +   128,
+        3 +   256 * sizeof (short) / sizeof (int) +   144,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   160,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   176,
+        3 +   256 * sizeof (short) / sizeof (int) +   192,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    16,
-        2 +   128 * sizeof (short) / sizeof (int) +    32,
-        2 +   128 * sizeof (short) / sizeof (int) +    48,
+        3 +   256 * sizeof (short) / sizeof (int) +   208,
+        3 +   256 * sizeof (short) / sizeof (int) +   224,
+        3 +   256 * sizeof (short) / sizeof (int) +   240,
+        3 +   256 * sizeof (short) / sizeof (int) +   256,
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    64,
-        2 +   128 * sizeof (short) / sizeof (int) +    80,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +    96,
-        2 +   128 * sizeof (short) / sizeof (int) +   112,
-        2 +   128 * sizeof (short) / sizeof (int) +   128,
-        2 +   128 * sizeof (short) / sizeof (int) +   144,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   160,
        -1,
        -1,
        -1,
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   176,
-        2 +   128 * sizeof (short) / sizeof (int) +   192,
        -1,
        -1,
        -1,
@@ -73,13 +148,16 @@ u_property_sentence_terminal =
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   272,
        -1,
        -1,
        -1,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   288,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   304,
        -1,
        -1,
        -1,
@@ -101,9 +179,6 @@ u_property_sentence_terminal =
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   208,
-        2 +   128 * sizeof (short) / sizeof (int) +   224,
-        2 +   128 * sizeof (short) / sizeof (int) +   240,
        -1,
        -1,
        -1,
@@ -145,7 +220,63 @@ u_property_sentence_terminal =
        -1,
        -1,
        -1,
-        2 +   128 * sizeof (short) / sizeof (int) +   256
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1
   },
   {
     0x00000000, 0x80004002, 0x00000000, 0x00000000,
@@ -174,14 +305,14 @@ u_property_sentence_terminal =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00004000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00600000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000208, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000030, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000F00, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xCC000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x18000000, 0x00000000, 0xC0000000,
@@ -200,21 +331,33 @@ u_property_sentence_terminal =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000C000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x80000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000C000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00880000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00C00000,
     0x00000000, 0x00000000, 0x0000C000, 0x00000000,
     0x00000000, 0x00008000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000300, 0x00000000,
     0x00000000, 0x00000000, 0xE0000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000800,
     0x00000000, 0x00000000, 0x00C40000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x80004002, 0x00000000, 0x00000000, 0x00000002,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00C00000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000180, 0x00000000,
+    0x00000000, 0xC0000000, 0x00000003, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 };
index b4a5c8b..fe5ad65 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 6342371..bc9e168 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index b34b366..0ace6d1 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index b86a6a4..a805a8e 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 5843a34..93b3658 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index d6cd379..d3ea66e 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[2];
     short level2[2 << 7];
-    /*unsigned*/ int level3[22 << 4];
+    /*unsigned*/ int level3[25 << 4];
   }
 u_property_terminal_punctuation =
 {
@@ -103,10 +103,10 @@ u_property_terminal_punctuation =
        -1,
        -1,
        -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   240,
         3 +   256 * sizeof (short) / sizeof (int) +   256,
         3 +   256 * sizeof (short) / sizeof (int) +   272,
+        3 +   256 * sizeof (short) / sizeof (int) +   288,
        -1,
        -1,
        -1,
@@ -148,16 +148,16 @@ u_property_terminal_punctuation =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   288,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   304,
        -1,
-       -1,
         3 +   256 * sizeof (short) / sizeof (int) +   320,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   336,
+        3 +   256 * sizeof (short) / sizeof (int) +   352,
        -1,
        -1,
+        3 +   256 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -167,7 +167,7 @@ u_property_terminal_punctuation =
        -1,
        -1,
        -1,
-        3 +   256 * sizeof (short) / sizeof (int) +   336,
+        3 +   256 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
        -1,
@@ -295,7 +295,7 @@ u_property_terminal_punctuation =
     0x00000000, 0x00000000, 0x00100000, 0x00000000,
     0x000017FF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x03000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x7FFF0000, 0x40000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000030,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -320,7 +320,7 @@ u_property_terminal_punctuation =
     0x00000000, 0x00000000, 0x00000030, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000F00, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xEC000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xF8000000, 0x00000000, 0xC0000000,
@@ -339,18 +339,22 @@ u_property_terminal_punctuation =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000E000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xC0000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000E000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00F80000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00C00000,
     0x00000000, 0x00000000, 0x0000C000, 0x00000000,
     0x00000000, 0x00008000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000380, 0x00000000,
     0x00000000, 0x00000000, 0xE0000000, 0x00000000,
+    0x00000000, 0x00000000, 0x80000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000800,
     0x00000000, 0x00000000, 0x00F70000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x8C005002, 0x00000000, 0x00000000, 0x00000012,
@@ -359,10 +363,18 @@ u_property_terminal_punctuation =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x80000000, 0x00000000, 0x00010000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00800000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x80000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFC000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00003F80, 0x00000000,
+    0x00000000, 0xC0000000, 0x00000003, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x000F0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index e106839..8a0e404 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2005-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 93a6a88..29ef7fc 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 35dc74e..aabc6e0 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index b7baf1b..30a82c5 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 5b12cf6..74ac22f 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[5 << 7];
-    /*unsigned*/ int level3[51 << 4];
+    /*unsigned*/ int level3[60 << 4];
   }
 u_property_unassigned_code_value =
 {
@@ -44,6 +44,7 @@ u_property_unassigned_code_value =
        16 +   640 * sizeof (short) / sizeof (int) +    96,
        16 +   640 * sizeof (short) / sizeof (int) +   112,
        16 +   640 * sizeof (short) / sizeof (int) +   128,
+       -1,
        16 +   640 * sizeof (short) / sizeof (int) +   144,
        16 +   640 * sizeof (short) / sizeof (int) +   160,
        16 +   640 * sizeof (short) / sizeof (int) +   176,
@@ -53,13 +54,12 @@ u_property_unassigned_code_value =
        16 +   640 * sizeof (short) / sizeof (int) +   240,
        16 +   640 * sizeof (short) / sizeof (int) +   256,
        16 +   640 * sizeof (short) / sizeof (int) +   272,
-       16 +   640 * sizeof (short) / sizeof (int) +   288,
        -1,
+       16 +   640 * sizeof (short) / sizeof (int) +   288,
        16 +   640 * sizeof (short) / sizeof (int) +   304,
        16 +   640 * sizeof (short) / sizeof (int) +   320,
        16 +   640 * sizeof (short) / sizeof (int) +   336,
        16 +   640 * sizeof (short) / sizeof (int) +   352,
-       16 +   640 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -72,7 +72,7 @@ u_property_unassigned_code_value =
        -1,
        -1,
        -1,
-       16 +   640 * sizeof (short) / sizeof (int) +   384,
+       16 +   640 * sizeof (short) / sizeof (int) +   368,
        -1,
        -1,
        -1,
@@ -113,13 +113,13 @@ u_property_unassigned_code_value =
        -1,
        -1,
        -1,
-       16 +   640 * sizeof (short) / sizeof (int) +   400,
+       16 +   640 * sizeof (short) / sizeof (int) +   384,
        -1,
        -1,
+       16 +   640 * sizeof (short) / sizeof (int) +   400,
        16 +   640 * sizeof (short) / sizeof (int) +   416,
        16 +   640 * sizeof (short) / sizeof (int) +   432,
        16 +   640 * sizeof (short) / sizeof (int) +   448,
-       16 +   640 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
        -1,
@@ -141,7 +141,7 @@ u_property_unassigned_code_value =
        -1,
        -1,
        -1,
-       16 +   640 * sizeof (short) / sizeof (int) +   480,
+       16 +   640 * sizeof (short) / sizeof (int) +   464,
        -1,
        -1,
        -1,
@@ -159,6 +159,7 @@ u_property_unassigned_code_value =
        -1,
        -1,
        -1,
+       16 +   640 * sizeof (short) / sizeof (int) +   480,
        16 +   640 * sizeof (short) / sizeof (int) +   496,
        16 +   640 * sizeof (short) / sizeof (int) +   512,
        16 +   640 * sizeof (short) / sizeof (int) +   528,
@@ -168,128 +169,127 @@ u_property_unassigned_code_value =
        16 +   640 * sizeof (short) / sizeof (int) +   592,
        16 +   640 * sizeof (short) / sizeof (int) +   608,
        16 +   640 * sizeof (short) / sizeof (int) +   624,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       -1,
        16 +   640 * sizeof (short) / sizeof (int) +   640,
        16 +   640 * sizeof (short) / sizeof (int) +   656,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       -1,
        16 +   640 * sizeof (short) / sizeof (int) +   672,
        16 +   640 * sizeof (short) / sizeof (int) +   688,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       -1,
+       -1,
        16 +   640 * sizeof (short) / sizeof (int) +   704,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       -1,
        16 +   640 * sizeof (short) / sizeof (int) +   720,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
        16 +   640 * sizeof (short) / sizeof (int) +   736,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
        16 +   640 * sizeof (short) / sizeof (int) +   752,
+       16 +   640 * sizeof (short) / sizeof (int) +   768,
+       16 +   640 * sizeof (short) / sizeof (int) +   784,
+       16 +   640 * sizeof (short) / sizeof (int) +   800,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   816,
+       16 +   640 * sizeof (short) / sizeof (int) +   832,
+       16 +   640 * sizeof (short) / sizeof (int) +   848,
+       16 +   640 * sizeof (short) / sizeof (int) +   864,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   880,
        -1,
        -1,
        -1,
@@ -373,307 +373,307 @@ u_property_unassigned_code_value =
        -1,
        -1,
        -1,
-       16 +   640 * sizeof (short) / sizeof (int) +   768,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
+       16 +   640 * sizeof (short) / sizeof (int) +   896,
        -1,
-       16 +   640 * sizeof (short) / sizeof (int) +   784,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   752,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   752,
-       16 +   640 * sizeof (short) / sizeof (int) +   800,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   592,
-       16 +   640 * sizeof (short) / sizeof (int) +   752
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       -1,
+       16 +   640 * sizeof (short) / sizeof (int) +   912,
+       16 +   640 * sizeof (short) / sizeof (int) +   928,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       -1,
+       16 +   640 * sizeof (short) / sizeof (int) +   928,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   880,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   880,
+       16 +   640 * sizeof (short) / sizeof (int) +   944,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   576,
+       16 +   640 * sizeof (short) / sizeof (int) +   880
   },
   {
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -682,93 +682,89 @@ u_property_unassigned_code_value =
     0x0000280F, 0x00000004, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x0001FFF0, 0x01800000, 0x00000001,
+    0x00000000, 0x0001FF00, 0x01800000, 0x00000001,
     0x0001F900, 0x00000000, 0x0000FF00, 0xFFE0F800,
-    0x30000030, 0x00000001, 0x80000000, 0x00000000,
+    0x30000030, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00004000, 0x00000000, 0x00001800, 0x00000000,
     0x00000000, 0xFFFC0000, 0x00000000, 0xF8000000,
+    0x00000000, 0x8000C000, 0xB0000000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000001, 0x0C000000, 0x00E0C000, 0x07F80000,
-    0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF8000030,
+    0x00000000, 0x00000000, 0x00000000, 0x01000000,
+    0x00066011, 0x0C3A0200, 0x4F7F8660, 0xF0000030,
     0x00067811, 0x2C920200, 0xA1FDC678, 0xFFC0003F,
     0x00044011, 0x0C120200, 0xFFFEC440, 0xFFFD0030,
-    0x00066011, 0x0C120200, 0x4F3FC660, 0xFFFC0030,
+    0x00066011, 0x0C120200, 0x4F3FC660, 0xFF000030,
     0x29C23813, 0x3C0038E7, 0xFF7EC238, 0xF800003F,
     0x00022011, 0x1C100200, 0xFC9FC220, 0x00FF0030,
     0x00022013, 0x0C100200, 0xBF9FC220, 0xFFF90030,
-    0x00022013, 0x1C000200, 0xFF7FC220, 0x01C00030,
+    0x00022013, 0x18000000, 0xFF7F8220, 0x01C00030,
     0x03800013, 0xD0040000, 0x00A07B80, 0xFFE3FFFF,
     0x00000001, 0x78000000, 0xF0000000, 0xFFFFFFFF,
     0x010FDA69, 0xC4001351, 0xCC00C0A0, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000100, 0x0001E000,
-    0x0100F000, 0x20000000, 0xFFE02000, 0xFFFFFFFF,
+    0x01000000, 0x20000000, 0xF8002000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x0000FFC0, 0xE0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x3C000000, 0x00000000, 0x0000FFC0, 0xE0000000,
-    0x00000000, 0x00000000, 0x7C000000, 0x00000000,
-    0x00000000, 0x000000F8, 0x00000000, 0xFC000000,
     0x00000000, 0x00000000, 0xC280C200, 0x00000000,
     0x0000C200, 0x80C20000, 0x008000C2, 0x00000000,
-    0x00C20000, 0x00000000, 0x78000000, 0xE0000000,
+    0x00C20000, 0x00000000, 0x18000000, 0xE0000000,
     0xFC000000, 0x00000000, 0x00000000, 0xFFE00000,
-    0x00000001, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0xFF800000,
     0xE0000000, 0x00000000, 0x00000000, 0xFFFE0000,
     0xFFE02000, 0xFF800000, 0xFFF00000, 0xFFF22000,
     0x00000000, 0x00000000, 0xC0000000, 0xFC00FC00,
     0xFC008000, 0x00000000, 0x00000000, 0xFF000000,
-    0x00000000, 0xFFFFF800, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x0000F800, 0x00000000, 0xFFC00000,
     0xE0000000, 0xF000F000, 0x0000000E, 0xFFE0C000,
-    0x00000000, 0x0000FC00, 0x3C00FC00, 0x00000000,
-    0x30000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x0000F000, 0x3800FC00, 0x00000000,
+    0x30000000, 0x00000000, 0x80000000, 0x60000000,
+    0xFC00FC00, 0xFFFFC000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x0000F000, 0xE0000000,
-    0x00000000, 0xFC003800, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFC003800, 0x00000000, 0x0FF00000,
     0x00000000, 0x07000000, 0x00001C00, 0x00000000,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF, 0xFFF80000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x3FFFFF80,
+    0x00000000, 0x00000000, 0x00000000, 0x0FFFFF80,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0C00000, 0x00000000, 0x5500C0C0, 0xC0000000,
     0x00000000, 0x00200000, 0x10300020, 0x80230000,
     0x00000000, 0x00000000, 0x00000000, 0x000C03E0,
-    0xFFE08000, 0xFFC00000, 0x0000FFFF, 0xFFFE0000,
-    0x00000000, 0x00000000, 0x00070000, 0x00000000,
-    0x0000FE00, 0x00000000, 0x00000000, 0x00000000,
+    0xE0008000, 0xFC000000, 0x0000FFFF, 0xFFFE0000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x0000FC00, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0xFFFFFF00,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0xFFFFFF80, 0xFFFFF800, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xC0000000, 0xE0000000, 0xFFFFFFF0, 0xFFFFFFFF,
-    0x00000C21, 0x00000100, 0x80B85000, 0x00000001,
-    0x00E00000, 0x80010000, 0x0000E800, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000001, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00002800, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFE0E000, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFC00E000, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x00008000, 0x80000000, 0xC0010000,
-    0x00000000, 0x00000000, 0x00000000, 0x01FFF800,
-    0x00000000, 0x0000FFC0, 0x00000000, 0xFFFF7FC0,
+    0x00000000, 0x00008000, 0x80000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x01FC0000,
+    0x00000000, 0x0000FFC0, 0x00000000, 0x7FFE7FC0,
     0xFF800000, 0x80808080, 0x80808080, 0x00000000,
-    0x00000000, 0xFFFE0000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFC0000, 0xFFFFFFFF, 0xFFFFFFFF,
     0x04000000, 0x00000000, 0x00000000, 0xFFF00000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFFC00000, 0xF000FFFF,
     0x00000000, 0x00000000, 0x00000001, 0x00000000,
     0x01800000, 0x00000000, 0x00000000, 0x00000000,
     0x0000001F, 0x0001C000, 0x00000000, 0x00000000,
-    0x00008000, 0xFF000000, 0x00000000, 0x0000FFF0,
-    0x80000000, 0x00000000, 0x0000FFF0, 0x00000000,
+    0x00008000, 0xF8000000, 0x00000000, 0x0000FFF0,
+    0x80000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -779,31 +775,31 @@ u_property_unassigned_code_value =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xFFFFFFF0, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFF000, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x0000E000, 0x00000000, 0xFFFFFF80, 0xFFFFFFFF,
+    0x0000E000, 0x00000000, 0x0000FF80, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00003,
-    0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFFF000, 0x00000000, 0x0FF00000,
+    0xFF000000, 0x00000000, 0x00000000, 0xFF000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFE000, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
-    0x00000000, 0xFFFFF000, 0x00000000, 0xFF000000,
-    0x00000000, 0x00000000, 0xFC003FE0, 0xFFFFFFFF,
-    0x00000000, 0x00000000, 0x7FF00000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0xFF800000, 0x0C00C000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFC8000, 0xFFFFFC00, 0xFFFFFFFF, 0x03FFFFFF,
+    0x00000000, 0xFC00F000, 0x00000000, 0xFF000000,
+    0x00000000, 0x00000000, 0xFC003FE0, 0xF0000000,
+    0x00000000, 0x00000000, 0x7FF00000, 0xE0000000,
+    0x00000000, 0x00000000, 0x3C004000, 0xFFFFFFFF,
+    0x00000000, 0xFF800000, 0x0C00C000, 0xF0000000,
+    0x00000000, 0x00000000, 0x07FFFFF8, 0xFFFFFFFF,
+    0xFF818181, 0xFFFF8080, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0xFC00C000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xFFFFFFF0, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00000000, 0x0000C000, 0x00000000, 0x0000F800,
+    0x00000000, 0x0000FFF0, 0x00000780, 0xF0000000,
+    0x00000000, 0x0000C000, 0x00000000, 0x0000C000,
     0x00000000, 0x00000000, 0xFC000000, 0xFFFFFFFF,
     0x1F07FF80, 0xA0800000, 0x00000024, 0x00000000,
-    0x00000000, 0xFFFC0000, 0x0007FFFF, 0x00000000,
+    0x00000000, 0x00000000, 0x0007FFFC, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x0000FFFF, 0x00000000,
@@ -828,12 +824,24 @@ u_property_unassigned_code_value =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000002C0, 0x6E400000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x000002C0, 0x6E400000, 0x00400000, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x70000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x7C000000, 0x7C000000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x01100F90, 0x78F00000, 0xFE00FF00, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x01100F90, 0x78F00000, 0xFE00FF00, 0xFFFFFFFF,
+    0x00000000, 0x01C00000, 0x00C00000, 0x00F80000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFFE00, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x80000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x0003C000, 0xFFFF0000,
+    0x00000000, 0x00000000, 0xFFFFFFFC, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -844,6 +852,18 @@ u_property_unassigned_code_value =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFFFF8000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0xFE000000, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xFFC00000,
     0x00000000, 0x00000180, 0x00000000, 0x00000000,
@@ -861,8 +881,20 @@ u_property_unassigned_code_value =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00003000, 0x00000000,
     0x00000000, 0x0000F000, 0x00000000, 0x00000000,
-    0xFFF00000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFF00000, 0x80018000, 0x00010001, 0xFFFFFFFF,
+    0x0000F800, 0x00008000, 0x00000000, 0x0000FC00,
+    0xF8000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F,
+    0x0000FFF8, 0xF8000000, 0xFFFCFE00, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x0040FFFE, 0x00000000, 0xE0000000,
+    0xFFF00000, 0x00000000, 0xFFFFF820, 0xFFFE0000,
+    0x00000000, 0x80000000, 0x00000002, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xE1000000,
+    0x00000000, 0xC0000000, 0x0000FFFF, 0xFFFFFF00,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x07FFFFFF,
+    0x8AA20001, 0x0010D0C0, 0xFFFF001E, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0xFFFFFFC0, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0xFFF00000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -870,8 +902,12 @@ u_property_unassigned_code_value =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x3FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0xFF800000, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xFFE00000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xC0000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
index b08494f..5076228 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 353ee4f..a32c65c 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[3];
     short level2[2 << 7];
-    /*unsigned*/ int level3[5 << 4];
+    /*unsigned*/ int level3[7 << 4];
   }
 u_property_unified_ideograph =
 {
@@ -234,15 +234,15 @@ u_property_unified_ideograph =
         4 +   256 * sizeof (short) / sizeof (int) +     0,
         4 +   256 * sizeof (short) / sizeof (int) +     0,
         4 +   256 * sizeof (short) / sizeof (int) +    64,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   256 * sizeof (short) / sizeof (int) +     0,
+        4 +   256 * sizeof (short) / sizeof (int) +     0,
+        4 +   256 * sizeof (short) / sizeof (int) +     0,
+        4 +   256 * sizeof (short) / sizeof (int) +     0,
+        4 +   256 * sizeof (short) / sizeof (int) +     0,
+        4 +   256 * sizeof (short) / sizeof (int) +     0,
+        4 +   256 * sizeof (short) / sizeof (int) +     0,
+        4 +   256 * sizeof (short) / sizeof (int) +    80,
+        4 +   256 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
        -1,
@@ -291,13 +291,21 @@ u_property_unified_ideograph =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0x801AC000, 0x0000039A, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
index d373393..7d6db0c 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 14b2bde..9002116 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -289,7 +289,7 @@ u_property_uppercase =
     0xFFFED740, 0x00000FFB, 0x551C8000, 0xE6905555,
     0xFFFFFFFF, 0x0000FFFF, 0x00000000, 0x55555555,
     0x55555401, 0x55555555, 0x55552AAB, 0x55555555,
-    0x55555555, 0xFFFE0005, 0x007FFFFF, 0x00000000,
+    0x55555555, 0xFFFE0055, 0x007FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0x0000003F, 0x00000000,
@@ -307,14 +307,14 @@ u_property_uppercase =
     0x00000000, 0xFFC00000, 0x0000FFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x0024EA9D,
-    0x55555555, 0x55555555, 0x55555555, 0x00000005,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0xC025EA9D,
+    0x55555555, 0x55555555, 0x55555555, 0x00002805,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x55555555, 0x00001554,
+    0x00000000, 0x00000000, 0x55555555, 0x00001555,
     0x00555555, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x55545554, 0x55555555, 0x6A005555,
-    0x00000855, 0x00000000, 0x00000000, 0x00000000,
+    0x00012855, 0x00000155, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x07FFFFFE, 0x00000000, 0x00000000,
index d7604d6..098387d 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index ba644eb..ede3709 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 18dc4ec..54f2289 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 519b35a..bd2ac52 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
index 67faae1..b9a2a23 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 79913a7..975e5ef 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[4 << 7];
-    /*unsigned*/ int level3[45 << 4];
+    /*unsigned*/ int level3[51 << 4];
   }
 u_property_xid_continue =
 {
@@ -168,9 +168,9 @@ u_property_xid_continue =
        -1,
        16 +   512 * sizeof (short) / sizeof (int) +   544,
        16 +   512 * sizeof (short) / sizeof (int) +   560,
+       16 +   512 * sizeof (short) / sizeof (int) +   576,
        -1,
-       -1,
-       -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -179,19 +179,16 @@ u_property_xid_continue =
        -1,
        -1,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   576,
-       16 +   512 * sizeof (short) / sizeof (int) +   592,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   608,
+       16 +   512 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
        -1,
        -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -217,6 +214,8 @@ u_property_xid_continue =
        -1,
        -1,
        -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -251,6 +250,7 @@ u_property_xid_continue =
        -1,
        -1,
        -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -266,10 +266,10 @@ u_property_xid_continue =
        -1,
        -1,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   608,
-       16 +   512 * sizeof (short) / sizeof (int) +   624,
-       16 +   512 * sizeof (short) / sizeof (int) +   640,
-       16 +   512 * sizeof (short) / sizeof (int) +   656,
+       16 +   512 * sizeof (short) / sizeof (int) +   688,
+       16 +   512 * sizeof (short) / sizeof (int) +   704,
+       16 +   512 * sizeof (short) / sizeof (int) +   720,
+       16 +   512 * sizeof (short) / sizeof (int) +   736,
        -1,
        -1,
        -1,
@@ -373,16 +373,16 @@ u_property_xid_continue =
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   672,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+       16 +   512 * sizeof (short) / sizeof (int) +   752,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   304,
+       16 +   512 * sizeof (short) / sizeof (int) +   768,
+       16 +   512 * sizeof (short) / sizeof (int) +   784,
        -1,
        -1,
        -1,
@@ -415,10 +415,10 @@ u_property_xid_continue =
        -1,
        -1,
        16 +   512 * sizeof (short) / sizeof (int) +   304,
-       16 +   512 * sizeof (short) / sizeof (int) +   688,
+       16 +   512 * sizeof (short) / sizeof (int) +   784,
        -1,
        -1,
-       16 +   512 * sizeof (short) / sizeof (int) +   704,
+       16 +   512 * sizeof (short) / sizeof (int) +   800,
        -1,
        -1,
        -1,
@@ -558,72 +558,72 @@ u_property_xid_continue =
     0xFFFFD7C0, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFCFB, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0x027FFFFF, 0xFFFFFFFE,
     0xFFFE00FF, 0xBFFFFFFF, 0xFFFF00B6, 0x000707FF,
-    0x07FF0000, 0xFFFFFFFE, 0x7FFFFFFF, 0xFFFFC3FF,
+    0x07FF0000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFC3FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x9FEFFFFF, 0x9FFFFDFF,
     0xFFFF0000, 0xFFFFFFFF, 0xFFFFE7FF, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFFFFFFF, 0x043FFFFF,
+    0xFFFFFFFF, 0x00003FFF, 0x0FFFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFE, 0xF3FFFFFF, 0xFF1F3FFF, 0xF806FFCF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFEFEFFCF,
     0xFFF99FEE, 0xF3C5FDFF, 0xB080799F, 0x0003FFCF,
     0xFFF987EE, 0xD36DFDFF, 0x5E023987, 0x003FFFC0,
     0xFFFBBFEE, 0xF3EDFDFF, 0x00013BBF, 0x0000FFCF,
     0xFFF99FEE, 0xF3EDFDFF, 0xB0C0399F, 0x0002FFCF,
     0xD63DC7EC, 0xC3FFC718, 0x00813DC7, 0x0000FFC0,
     0xFFFDDFEE, 0xE3EFFDFF, 0x03603DDF, 0x0000FFCF,
-    0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0000FFCF,
-    0xFFFDDFEC, 0xE3FFFDFF, 0x00803DDF, 0xFC00FFCF,
+    0xFFFDDFEC, 0xF3EFFDFF, 0x40603DDF, 0x0006FFCF,
+    0xFFFDDFEC, 0xE7FFFFFF, 0x00807DDF, 0xFC00FFCF,
     0xFC7FFFEC, 0x2FFBFFFF, 0xFF5F847F, 0x000C0000,
     0xFFFFFFFE, 0x07FFFFFF, 0x03FF7FFF, 0x00000000,
     0xFEF02596, 0x3BFFECAE, 0x33FF3F5F, 0x00000000,
     0x03000001, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE1FFF,
-    0xFEFF0FDF, 0x1FFFFFFF, 0x00000040, 0x00000000,
+    0xFEFFFFDF, 0x1FFFFFFF, 0x00000040, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF03FF, 0xFFFFFFFF,
-    0x03FFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+    0x3FFFFFFF, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
-    0xFF3DFFFF, 0xFFFFFFFF, 0x87FFFFFF, 0x0003FE00,
+    0xFF3DFFFF, 0xFFFFFFFF, 0xE7FFFFFF, 0x0003FE00,
     0x0000FFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x001FFFFF,
     0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF9FFF,
     0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
     0x001FDFFF, 0x001FFFFF, 0x000FFFFF, 0x000DDFFF,
     0xFFFFFFFF, 0xFFCFFFFF, 0x308FFFFF, 0x000003FF,
     0x03FF3800, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000007FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF07FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x0FFF0FFF, 0xFFFFFFC0, 0x001F3FFF,
-    0xFFFFFFFF, 0xFFFF03FF, 0x03FF03FF, 0x00000000,
-    0x0FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF0FFF, 0x07FF03FF, 0x00000000,
+    0x0FFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF, 0x9FFFFFFF,
+    0x03FF03FF, 0x00000080, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FF0FFF, 0x000FF800,
-    0xFFFFFFFF, 0x03FFC7FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x03FFC7FF, 0xFFFFFFFF, 0x000FFFFF,
     0xFFFFFFFF, 0x00FFFFFF, 0xFFFFE3FF, 0x3FFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFF70000, 0x0007FFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xC000007F,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xF000007F,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x80000000, 0x00100001, 0x80020000,
-    0x001F0000, 0x00000000, 0x1FFF0000, 0x0001FFE2,
+    0x1FFF0000, 0x00000000, 0x1FFF0000, 0x0001FFE2,
     0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
     0x000001FF, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
-    0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0003F81F,
+    0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x8000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0xFFFFFFFF,
     0x000000E0, 0x1F3EFFFE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE67FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+    0x00007FFF, 0x07FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -635,32 +635,32 @@ u_property_xid_continue =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00001FFF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0xB000FFFC,
-    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF1FFF, 0x00000FFF, 0xFFFFFFFF, 0xB000FFFF,
+    0x00FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0003FFFF,
     0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0x000379FF, 0x000003FF, 0x00000000, 0xFC000000,
     0xFFFFFFFF, 0x000000FF, 0xFFFFFFFF, 0x000FFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF001F, 0x00000000,
-    0xFFFFFFFF, 0xFFFF3FFF, 0x000FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x007FFFFF, 0x03FF3FFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF001F, 0x08FFFFFF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0x000FFFFF, 0x1FFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x03FF8001, 0x00000000,
+    0xFFFFFFFF, 0x007FFFFF, 0x03FF3FFF, 0x0C7FFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x38000007, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x03FF37FF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xE0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
@@ -684,14 +684,22 @@ u_property_xid_continue =
     0x3FFFFFFF, 0x000003FF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0x003FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEFF06F, 0x870FFFFF, 0x00000000, 0x00000000,
+    0xFEEFF06F, 0x870FFFFF, 0x00000000, 0x1FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x003FFFFF, 0x003FFFFF, 0x0007FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x0000007F, 0x0000FFC0,
+    0xFFFFFFFF, 0x07FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x00007FFF,
@@ -700,6 +708,18 @@ u_property_xid_continue =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0xF807E3E0,
@@ -718,8 +738,12 @@ u_property_xid_continue =
     0xFFFFFDFF, 0xFFFFFDFF, 0xFFFFCFF7, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index b9b496f..4d4897f 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 97fc710..7b28f82 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[3];
     short level2[3 << 7];
-    /*unsigned*/ int level3[42 << 4];
+    /*unsigned*/ int level3[48 << 4];
   }
 u_property_xid_start =
 {
@@ -156,9 +156,9 @@ u_property_xid_start =
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   544,
         4 +   384 * sizeof (short) / sizeof (int) +   560,
+        4 +   384 * sizeof (short) / sizeof (int) +   576,
        -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   592,
        -1,
        -1,
        -1,
@@ -167,19 +167,16 @@ u_property_xid_start =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   576,
-        4 +   384 * sizeof (short) / sizeof (int) +   592,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   608,
+        4 +   384 * sizeof (short) / sizeof (int) +   624,
        -1,
        -1,
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   640,
        -1,
        -1,
        -1,
@@ -205,6 +202,8 @@ u_property_xid_start =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   656,
        -1,
        -1,
        -1,
@@ -239,6 +238,7 @@ u_property_xid_start =
        -1,
        -1,
        -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   672,
        -1,
        -1,
        -1,
@@ -256,8 +256,8 @@ u_property_xid_start =
        -1,
        -1,
        -1,
-        4 +   384 * sizeof (short) / sizeof (int) +   608,
-        4 +   384 * sizeof (short) / sizeof (int) +   624,
+        4 +   384 * sizeof (short) / sizeof (int) +   688,
+        4 +   384 * sizeof (short) / sizeof (int) +   704,
        -1,
        -1,
        -1,
@@ -361,16 +361,16 @@ u_property_xid_start =
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   640,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
-       -1,
+        4 +   384 * sizeof (short) / sizeof (int) +   720,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   304,
+        4 +   384 * sizeof (short) / sizeof (int) +   736,
+        4 +   384 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1,
        -1,
@@ -403,7 +403,7 @@ u_property_xid_start =
        -1,
        -1,
         4 +   384 * sizeof (short) / sizeof (int) +   304,
-        4 +   384 * sizeof (short) / sizeof (int) +   656,
+        4 +   384 * sizeof (short) / sizeof (int) +   752,
        -1,
        -1
   },
@@ -418,32 +418,32 @@ u_property_xid_start =
     0xFFFFD740, 0xFFFFFFFB, 0xFFFFFFFF, 0xFFBFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFC03, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFE000F, 0x027FFFFF, 0xFFFFFFFE,
+    0xFFFFFFFF, 0xFFFE00FF, 0x027FFFFF, 0xFFFFFFFE,
     0x000000FF, 0x00000000, 0xFFFF0000, 0x000707FF,
-    0x00000000, 0xFFFFFFFE, 0x000007FF, 0xFFFEC000,
+    0x00000000, 0xFFFFFFFF, 0x000007FF, 0xFFFEC000,
     0xFFFFFFFF, 0xFFFFFFFF, 0x002FFFFF, 0x9C00C060,
     0xFFFD0000, 0x0000FFFF, 0xFFFFE000, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0002003F, 0xFFFFFC00, 0x043007FF,
+    0x043FFFFF, 0x00000110, 0x01FFFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xF8060003,
+    0xFFFFFFF0, 0x23FFFFFF, 0xFF010000, 0xFEFE0003,
     0xFFF99FE0, 0x23C5FDFF, 0xB0004000, 0x00030003,
     0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,
     0xFFFBBFE0, 0x23EDFDFF, 0x00010000, 0x00000003,
     0xFFF99FE0, 0x23EDFDFF, 0xB0000000, 0x00020003,
     0xD63DC7E8, 0x03FFC718, 0x00010000, 0x00000000,
     0xFFFDDFE0, 0x23EFFDFF, 0x03000000, 0x00000003,
-    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00000003,
-    0xFFFDDFE0, 0x23FFFDFF, 0x00000000, 0xFC000003,
+    0xFFFDDFE0, 0x23EFFDFF, 0x40000000, 0x00060003,
+    0xFFFDDFE0, 0x27FFFFFF, 0x00004000, 0xFC000003,
     0xFC7FFFE0, 0x2FFBFFFF, 0x0000007F, 0x00000000,
     0xFFFFFFFE, 0x0005FFFF, 0x0000007F, 0x00000000,
     0xFEF02596, 0x2005ECAE, 0x3000005F, 0x00000000,
     0x00000001, 0x00000000, 0xFFFFFEFF, 0x00001FFF,
-    0x00000F00, 0x00000000, 0x00000000, 0x00000000,
+    0x00001F00, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0x800007FF, 0x3C3F0000, 0xFFE1C062,
     0x00004003, 0xFFFFFFFF, 0xFFFF003F, 0x17FFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x83FFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFF07, 0xFFFFFFFF, 0x03FFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x3D7F3DFF, 0xFFFFFFFF,
     0xFFFF3DFF, 0x7F3DFFFF, 0xFF7FFF3D, 0xFFFFFFFF,
     0xFF3DFFFF, 0xFFFFFFFF, 0x07FFFFFF, 0x00000000,
@@ -452,20 +452,20 @@ u_property_xid_start =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x007F9FFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFF9FFF,
     0x07FFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0x0001C7FF,
     0x0003DFFF, 0x0003FFFF, 0x0003FFFF, 0x0001DFFF,
     0xFFFFFFFF, 0x000FFFFF, 0x10800000, 0x00000000,
     0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF,
-    0xFFFFFFFF, 0x000005FF, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF05FF, 0xFFFFFFFF, 0x003FFFFF,
     0x1FFFFFFF, 0x00000000, 0xFFFF0000, 0x001F3FFF,
-    0xFFFFFFFF, 0x000003FF, 0x000000FE, 0x00000000,
-    0x007FFFFF, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00000FFF, 0x000000FE, 0x00000000,
+    0x007FFFFF, 0xFFFFFFFF, 0x001FFFFF, 0x00000000,
+    0x00000000, 0x00000080, 0x00000000, 0x00000000,
     0xFFFFFFE0, 0x000FFFFF, 0x00000FE0, 0x00000000,
-    0xFFFFFFF8, 0x0000C001, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x0000C001, 0xFFFFFFFF, 0x0000003F,
     0xFFFFFFFF, 0x0000000F, 0xFC00E000, 0x3FFFFFFF,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x0003DE00,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -473,17 +473,17 @@ u_property_xid_start =
     0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,
     0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,
     0x00000000, 0x00000000, 0x00000000, 0x80020000,
-    0x001F0000, 0x00000000, 0x00000000, 0x00000000,
+    0x1FFF0000, 0x00000000, 0x00000000, 0x00000000,
     0x3F2FFC84, 0xF3FFFD50, 0x000043E0, 0xFFFFFFFF,
     0x000001FF, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0x3FFEFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000001F,
+    0xFFFFFFFF, 0xFFFF7FFF, 0x7FFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000781F,
     0xFFFFFFFF, 0xFFFF003F, 0xFFFFFFFF, 0x0000803F,
     0x007FFFFF, 0x7F7F7F7F, 0x7F7F7F7F, 0x00000000,
     0x000000E0, 0x1F3E03FE, 0xFFFFFFFE, 0xFFFFFFFF,
     0xE07FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xF7FFFFFF,
     0xFFFFFFE0, 0xFFFE3FFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00007FFF, 0x00FFFFFF, 0x00000000, 0xFFFF0000,
+    0x00007FFF, 0x07FFFFFF, 0x00000000, 0xFFFF0000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -495,32 +495,32 @@ u_property_xid_start =
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFFFFFF, 0x0000000F, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x00000FFF, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x00001FFF, 0x00000000, 0x00000000, 0x00000000,
+    0x00001FFF, 0x00000000, 0xFFFF0000, 0x3FFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFC,
-    0x00FFFFFF, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFF1FFF, 0x00000C00, 0xFFFFFFFF, 0x80007FFF,
+    0x00FFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0000FFFF,
     0xFF800000, 0xFFFFFFFC, 0xFFFFFFFF, 0xFFFFFFFF,
-    0x000019FF, 0x00000000, 0x00000000, 0xF8000000,
+    0x000379FF, 0x000003FF, 0x00000000, 0xFC000000,
     0xFFFFF7BB, 0x00000007, 0xFFFFFFFF, 0x000FFFFF,
-    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x00000000,
-    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFC, 0x000FFFFF, 0x00000000, 0x08FC0000,
+    0xFFFFFC00, 0xFFFF003F, 0x0000007F, 0x1FFFFFFF,
+    0xFFFFFFF0, 0x0007FFFF, 0x00008000, 0x00000000,
+    0xFFFFFFFF, 0x000001FF, 0x00000FF7, 0x047FFFFF,
+    0xFFFFFFFF, 0x3E62FFFF, 0x38000005, 0x00000000,
+    0x007E7E7E, 0x00007F7F, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000007,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFF000F, 0xFFFFF87F, 0x0FFFFFFF,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
-    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF07FF,
+    0xFFFFFFFF, 0xFFFF3FFF, 0xFFFFFFFF, 0xFFFF3FFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF, 0x00000000,
     0xA0F8007F, 0x5F7FFDFF, 0xFFFFFFDB, 0xFFFFFFFF,
     0xFFFFFFFF, 0x0003FFFF, 0xFFF80000, 0xFFFFFFFF,
@@ -544,13 +544,21 @@ u_property_xid_start =
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFFFFFD3F, 0x91BFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFD3F, 0x91BFFFFF, 0x003FFFFF, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x003FFFFF, 0x03FFFFFF, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x00000000,
+    0xFEEF0001, 0x000FFFFF, 0x00000000, 0x1FFFFFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x003FFFFF, 0x003FFFFF, 0x0007FFFF,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0x000001FF, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x00FFFFFF, 0x00000000, 0x00000000,
+    0xFFFFFFF8, 0x0000FFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
@@ -560,6 +568,18 @@ u_property_xid_start =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x00007FFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0x01FFFFFF, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000003, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFDFFFFF, 0xFFFFFFFF,
     0xDFFFFFFF, 0xEBFFDE64, 0xFFFFFFEF, 0xFFFFFFFF,
     0xDFDFE7BF, 0x7BFFFFFF, 0xFFFDFC5F, 0xFFFFFFFF,
@@ -570,8 +590,12 @@ u_property_xid_start =
     0xFFFFFDFF, 0xFFFFFDFF, 0x00000FF7, 0x00000000,
     0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0xFFFFFFFF, 0xFFFFFFFF, 0x007FFFFF, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0x001FFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+    0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
     0x3FFFFFFF, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 903e003..b99c349 100644 (file)
@@ -1,5 +1,5 @@
 /* Properties of Unicode characters.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 96047b5..2cd20ad 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define header_0 16
 #define header_2 9
 #define header_3 127
@@ -11,7 +11,7 @@ struct
     int header[1];
     int level1[15];
     short level2[3 << 7];
-    /*unsigned*/ int level3[7 << 4];
+    /*unsigned*/ int level3[8 << 4];
   }
 u_property_zero_width =
 {
@@ -170,6 +170,7 @@ u_property_zero_width =
        -1,
        -1,
        -1,
+       16 +   384 * sizeof (short) / sizeof (int) +    80,
        -1,
        -1,
        -1,
@@ -265,8 +266,7 @@ u_property_zero_width =
        -1,
        -1,
        -1,
-       -1,
-       16 +   384 * sizeof (short) / sizeof (int) +    80,
+       16 +   384 * sizeof (short) / sizeof (int) +    96,
        -1,
        -1,
        -1,
@@ -290,7 +290,7 @@ u_property_zero_width =
        -1,
        -1,
        -1,
-       16 +   384 * sizeof (short) / sizeof (int) +    96,
+       16 +   384 * sizeof (short) / sizeof (int) +   112,
        -1,
        -1,
        -1,
@@ -441,6 +441,10 @@ u_property_zero_width =
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x0E000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x20000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x07F80000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000,
index 822c3c5..90f638b 100644 (file)
@@ -1,5 +1,5 @@
 /* Scripts of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
index 1d465ae..dc984c3 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Unicode scripts.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 static const uc_interval_t script_common_intervals[] =
 {
   { 0x0000, 1, 0 }, { 0x0040, 0, 1 },
@@ -11,13 +11,13 @@ static const uc_interval_t script_common_intervals[] =
   { 0x00D7, 1, 1 },
   { 0x00F7, 1, 1 },
   { 0x02B9, 1, 0 }, { 0x02DF, 0, 1 },
-  { 0x02E5, 1, 0 }, { 0x02FF, 0, 1 },
+  { 0x02E5, 1, 0 }, { 0x02E9, 0, 1 },
+  { 0x02EC, 1, 0 }, { 0x02FF, 0, 1 },
   { 0x0374, 1, 1 },
   { 0x037E, 1, 1 },
   { 0x0385, 1, 1 },
   { 0x0387, 1, 1 },
   { 0x0589, 1, 1 },
-  { 0x0600, 1, 0 }, { 0x0603, 0, 1 },
   { 0x060C, 1, 1 },
   { 0x061B, 1, 1 },
   { 0x061F, 1, 1 },
@@ -26,48 +26,39 @@ static const uc_interval_t script_common_intervals[] =
   { 0x06DD, 1, 1 },
   { 0x0964, 1, 0 }, { 0x0965, 0, 1 },
   { 0x0970, 1, 1 },
-  { 0x0CF1, 1, 0 }, { 0x0CF2, 0, 1 },
   { 0x0E3F, 1, 1 },
+  { 0x0FD5, 1, 0 }, { 0x0FD8, 0, 1 },
   { 0x10FB, 1, 1 },
   { 0x16EB, 1, 0 }, { 0x16ED, 0, 1 },
   { 0x1735, 1, 0 }, { 0x1736, 0, 1 },
   { 0x1802, 1, 0 }, { 0x1803, 0, 1 },
   { 0x1805, 1, 1 },
+  { 0x1CD3, 1, 1 },
+  { 0x1CE1, 1, 1 },
+  { 0x1CE9, 1, 0 }, { 0x1CEC, 0, 1 },
+  { 0x1CEE, 1, 0 }, { 0x1CF2, 0, 1 },
   { 0x2000, 1, 0 }, { 0x200B, 0, 1 },
   { 0x200E, 1, 0 }, { 0x2064, 0, 1 },
   { 0x206A, 1, 0 }, { 0x2070, 0, 1 },
   { 0x2074, 1, 0 }, { 0x207E, 0, 1 },
   { 0x2080, 1, 0 }, { 0x208E, 0, 1 },
-  { 0x20A0, 1, 0 }, { 0x20B5, 0, 1 },
+  { 0x20A0, 1, 0 }, { 0x20B9, 0, 1 },
   { 0x2100, 1, 0 }, { 0x2125, 0, 1 },
   { 0x2127, 1, 0 }, { 0x2129, 0, 1 },
   { 0x212C, 1, 0 }, { 0x2131, 0, 1 },
   { 0x2133, 1, 0 }, { 0x214D, 0, 1 },
-  { 0x214F, 1, 1 },
-  { 0x2153, 1, 0 }, { 0x215F, 0, 1 },
-  { 0x2190, 1, 0 }, { 0x23E7, 0, 1 },
+  { 0x214F, 1, 0 }, { 0x215F, 0, 1 },
+  { 0x2189, 1, 1 },
+  { 0x2190, 1, 0 }, { 0x23F3, 0, 1 },
   { 0x2400, 1, 0 }, { 0x2426, 0, 1 },
   { 0x2440, 1, 0 }, { 0x244A, 0, 1 },
-  { 0x2460, 1, 0 }, { 0x269D, 0, 1 },
-  { 0x26A0, 1, 0 }, { 0x26BC, 0, 1 },
-  { 0x26C0, 1, 0 }, { 0x26C3, 0, 1 },
-  { 0x2701, 1, 0 }, { 0x2704, 0, 1 },
-  { 0x2706, 1, 0 }, { 0x2709, 0, 1 },
-  { 0x270C, 1, 0 }, { 0x2727, 0, 1 },
-  { 0x2729, 1, 0 }, { 0x274B, 0, 1 },
-  { 0x274D, 1, 1 },
-  { 0x274F, 1, 0 }, { 0x2752, 0, 1 },
-  { 0x2756, 1, 1 },
-  { 0x2758, 1, 0 }, { 0x275E, 0, 1 },
-  { 0x2761, 1, 0 }, { 0x2794, 0, 1 },
-  { 0x2798, 1, 0 }, { 0x27AF, 0, 1 },
-  { 0x27B1, 1, 0 }, { 0x27BE, 0, 1 },
-  { 0x27C0, 1, 0 }, { 0x27CA, 0, 1 },
+  { 0x2460, 1, 0 }, { 0x26FF, 0, 1 },
+  { 0x2701, 1, 0 }, { 0x27CA, 0, 1 },
   { 0x27CC, 1, 1 },
-  { 0x27D0, 1, 0 }, { 0x27FF, 0, 1 },
+  { 0x27CE, 1, 0 }, { 0x27FF, 0, 1 },
   { 0x2900, 1, 0 }, { 0x2B4C, 0, 1 },
-  { 0x2B50, 1, 0 }, { 0x2B54, 0, 1 },
-  { 0x2E00, 1, 0 }, { 0x2E30, 0, 1 },
+  { 0x2B50, 1, 0 }, { 0x2B59, 0, 1 },
+  { 0x2E00, 1, 0 }, { 0x2E31, 0, 1 },
   { 0x2FF0, 1, 0 }, { 0x2FFB, 0, 1 },
   { 0x3000, 1, 0 }, { 0x3004, 0, 1 },
   { 0x3006, 1, 1 },
@@ -79,13 +70,13 @@ static const uc_interval_t script_common_intervals[] =
   { 0x30FB, 1, 0 }, { 0x30FC, 0, 1 },
   { 0x3190, 1, 0 }, { 0x319F, 0, 1 },
   { 0x31C0, 1, 0 }, { 0x31E3, 0, 1 },
-  { 0x3220, 1, 0 }, { 0x3243, 0, 1 },
-  { 0x3250, 1, 0 }, { 0x325F, 0, 1 },
+  { 0x3220, 1, 0 }, { 0x325F, 0, 1 },
   { 0x327F, 1, 0 }, { 0x32CF, 0, 1 },
   { 0x3358, 1, 0 }, { 0x33FF, 0, 1 },
   { 0x4DC0, 1, 0 }, { 0x4DFF, 0, 1 },
   { 0xA700, 1, 0 }, { 0xA721, 0, 1 },
   { 0xA788, 1, 0 }, { 0xA78A, 0, 1 },
+  { 0xA830, 1, 0 }, { 0xA839, 0, 1 },
   { 0xFD3E, 1, 0 }, { 0xFD3F, 0, 1 },
   { 0xFDFD, 1, 1 },
   { 0xFE10, 1, 0 }, { 0xFE19, 0, 1 },
@@ -138,6 +129,47 @@ static const uc_interval_t script_common_intervals[] =
   { 0x1D7CE, 1, 0 }, { 0x1D7FF, 0, 1 },
   { 0x1F000, 1, 0 }, { 0x1F02B, 0, 1 },
   { 0x1F030, 1, 0 }, { 0x1F093, 0, 1 },
+  { 0x1F0A0, 1, 0 }, { 0x1F0AE, 0, 1 },
+  { 0x1F0B1, 1, 0 }, { 0x1F0BE, 0, 1 },
+  { 0x1F0C1, 1, 0 }, { 0x1F0CF, 0, 1 },
+  { 0x1F0D1, 1, 0 }, { 0x1F0DF, 0, 1 },
+  { 0x1F100, 1, 0 }, { 0x1F10A, 0, 1 },
+  { 0x1F110, 1, 0 }, { 0x1F12E, 0, 1 },
+  { 0x1F130, 1, 0 }, { 0x1F169, 0, 1 },
+  { 0x1F170, 1, 0 }, { 0x1F19A, 0, 1 },
+  { 0x1F1E6, 1, 0 }, { 0x1F1FF, 0, 1 },
+  { 0x1F201, 1, 0 }, { 0x1F202, 0, 1 },
+  { 0x1F210, 1, 0 }, { 0x1F23A, 0, 1 },
+  { 0x1F240, 1, 0 }, { 0x1F248, 0, 1 },
+  { 0x1F250, 1, 0 }, { 0x1F251, 0, 1 },
+  { 0x1F300, 1, 0 }, { 0x1F320, 0, 1 },
+  { 0x1F330, 1, 0 }, { 0x1F335, 0, 1 },
+  { 0x1F337, 1, 0 }, { 0x1F37C, 0, 1 },
+  { 0x1F380, 1, 0 }, { 0x1F393, 0, 1 },
+  { 0x1F3A0, 1, 0 }, { 0x1F3C4, 0, 1 },
+  { 0x1F3C6, 1, 0 }, { 0x1F3CA, 0, 1 },
+  { 0x1F3E0, 1, 0 }, { 0x1F3F0, 0, 1 },
+  { 0x1F400, 1, 0 }, { 0x1F43E, 0, 1 },
+  { 0x1F440, 1, 1 },
+  { 0x1F442, 1, 0 }, { 0x1F4F7, 0, 1 },
+  { 0x1F4F9, 1, 0 }, { 0x1F4FC, 0, 1 },
+  { 0x1F500, 1, 0 }, { 0x1F53D, 0, 1 },
+  { 0x1F550, 1, 0 }, { 0x1F567, 0, 1 },
+  { 0x1F5FB, 1, 0 }, { 0x1F5FF, 0, 1 },
+  { 0x1F601, 1, 0 }, { 0x1F610, 0, 1 },
+  { 0x1F612, 1, 0 }, { 0x1F614, 0, 1 },
+  { 0x1F616, 1, 1 },
+  { 0x1F618, 1, 1 },
+  { 0x1F61A, 1, 1 },
+  { 0x1F61C, 1, 0 }, { 0x1F61E, 0, 1 },
+  { 0x1F620, 1, 0 }, { 0x1F625, 0, 1 },
+  { 0x1F628, 1, 0 }, { 0x1F62B, 0, 1 },
+  { 0x1F62D, 1, 1 },
+  { 0x1F630, 1, 0 }, { 0x1F633, 0, 1 },
+  { 0x1F635, 1, 0 }, { 0x1F640, 0, 1 },
+  { 0x1F645, 1, 0 }, { 0x1F64F, 0, 1 },
+  { 0x1F680, 1, 0 }, { 0x1F6C5, 0, 1 },
+  { 0x1F700, 1, 0 }, { 0x1F773, 0, 1 },
   { 0xE0001, 1, 1 },
   { 0xE0020, 1, 0 }, { 0xE007F, 0, 1 }
 };
@@ -159,16 +191,17 @@ static const uc_interval_t script_latin_intervals[] =
   { 0x1E00, 1, 0 }, { 0x1EFF, 0, 1 },
   { 0x2071, 1, 1 },
   { 0x207F, 1, 1 },
-  { 0x2090, 1, 0 }, { 0x2094, 0, 1 },
+  { 0x2090, 1, 0 }, { 0x209C, 0, 1 },
   { 0x212A, 1, 0 }, { 0x212B, 0, 1 },
   { 0x2132, 1, 1 },
   { 0x214E, 1, 1 },
   { 0x2160, 1, 0 }, { 0x2188, 0, 1 },
-  { 0x2C60, 1, 0 }, { 0x2C6F, 0, 1 },
-  { 0x2C71, 1, 0 }, { 0x2C7D, 0, 1 },
+  { 0x2C60, 1, 0 }, { 0x2C7F, 0, 1 },
   { 0xA722, 1, 0 }, { 0xA787, 0, 1 },
-  { 0xA78B, 1, 0 }, { 0xA78C, 0, 1 },
-  { 0xA7FB, 1, 0 }, { 0xA7FF, 0, 1 },
+  { 0xA78B, 1, 0 }, { 0xA78E, 0, 1 },
+  { 0xA790, 1, 0 }, { 0xA791, 0, 1 },
+  { 0xA7A0, 1, 0 }, { 0xA7A9, 0, 1 },
+  { 0xA7FA, 1, 0 }, { 0xA7FF, 0, 1 },
   { 0xFB00, 1, 0 }, { 0xFB06, 0, 1 },
   { 0xFF21, 1, 0 }, { 0xFF3A, 0, 1 },
   { 0xFF41, 1, 0 }, { 0xFF5A, 0, 1 }
@@ -211,12 +244,12 @@ static const uc_interval_t script_greek_intervals[] =
 };
 static const uc_interval_t script_cyrillic_intervals[] =
 {
-  { 0x0400, 1, 0 }, { 0x0523, 0, 1 },
+  { 0x0400, 1, 0 }, { 0x0484, 0, 1 },
+  { 0x0487, 1, 0 }, { 0x0527, 0, 1 },
   { 0x1D2B, 1, 1 },
   { 0x1D78, 1, 1 },
   { 0x2DE0, 1, 0 }, { 0x2DFF, 0, 1 },
-  { 0xA640, 1, 0 }, { 0xA65F, 0, 1 },
-  { 0xA662, 1, 0 }, { 0xA673, 0, 1 },
+  { 0xA640, 1, 0 }, { 0xA673, 0, 1 },
   { 0xA67C, 1, 0 }, { 0xA697, 0, 1 }
 };
 static const uc_interval_t script_armenian_intervals[] =
@@ -241,23 +274,25 @@ static const uc_interval_t script_hebrew_intervals[] =
 };
 static const uc_interval_t script_arabic_intervals[] =
 {
+  { 0x0600, 1, 0 }, { 0x0603, 0, 1 },
   { 0x0606, 1, 0 }, { 0x060B, 0, 1 },
   { 0x060D, 1, 0 }, { 0x061A, 0, 1 },
   { 0x061E, 1, 1 },
-  { 0x0621, 1, 0 }, { 0x063F, 0, 1 },
+  { 0x0620, 1, 0 }, { 0x063F, 0, 1 },
   { 0x0641, 1, 0 }, { 0x064A, 0, 1 },
   { 0x0656, 1, 0 }, { 0x065E, 0, 1 },
   { 0x066A, 1, 0 }, { 0x066F, 0, 1 },
   { 0x0671, 1, 0 }, { 0x06DC, 0, 1 },
   { 0x06DE, 1, 0 }, { 0x06FF, 0, 1 },
   { 0x0750, 1, 0 }, { 0x077F, 0, 1 },
-  { 0xFB50, 1, 0 }, { 0xFBB1, 0, 1 },
+  { 0xFB50, 1, 0 }, { 0xFBC1, 0, 1 },
   { 0xFBD3, 1, 0 }, { 0xFD3D, 0, 1 },
   { 0xFD50, 1, 0 }, { 0xFD8F, 0, 1 },
   { 0xFD92, 1, 0 }, { 0xFDC7, 0, 1 },
   { 0xFDF0, 1, 0 }, { 0xFDFC, 0, 1 },
   { 0xFE70, 1, 0 }, { 0xFE74, 0, 1 },
-  { 0xFE76, 1, 0 }, { 0xFEFC, 0, 1 }
+  { 0xFE76, 1, 0 }, { 0xFEFC, 0, 1 },
+  { 0x10E60, 1, 0 }, { 0x10E7E, 0, 1 }
 };
 static const uc_interval_t script_syriac_intervals[] =
 {
@@ -271,14 +306,12 @@ static const uc_interval_t script_thaana_intervals[] =
 };
 static const uc_interval_t script_devanagari_intervals[] =
 {
-  { 0x0901, 1, 0 }, { 0x0939, 0, 1 },
-  { 0x093C, 1, 0 }, { 0x094D, 0, 1 },
-  { 0x0950, 1, 1 },
-  { 0x0953, 1, 0 }, { 0x0954, 0, 1 },
-  { 0x0958, 1, 0 }, { 0x0963, 0, 1 },
+  { 0x0900, 1, 0 }, { 0x0950, 0, 1 },
+  { 0x0953, 1, 0 }, { 0x0963, 0, 1 },
   { 0x0966, 1, 0 }, { 0x096F, 0, 1 },
-  { 0x0971, 1, 0 }, { 0x0972, 0, 1 },
-  { 0x097B, 1, 0 }, { 0x097F, 0, 1 }
+  { 0x0971, 1, 0 }, { 0x0977, 0, 1 },
+  { 0x0979, 1, 0 }, { 0x097F, 0, 1 },
+  { 0xA8E0, 1, 0 }, { 0xA8FB, 0, 1 }
 };
 static const uc_interval_t script_bengali_intervals[] =
 {
@@ -295,7 +328,7 @@ static const uc_interval_t script_bengali_intervals[] =
   { 0x09D7, 1, 1 },
   { 0x09DC, 1, 0 }, { 0x09DD, 0, 1 },
   { 0x09DF, 1, 0 }, { 0x09E3, 0, 1 },
-  { 0x09E6, 1, 0 }, { 0x09FA, 0, 1 }
+  { 0x09E6, 1, 0 }, { 0x09FB, 0, 1 }
 };
 static const uc_interval_t script_gurmukhi_intervals[] =
 {
@@ -348,7 +381,7 @@ static const uc_interval_t script_oriya_intervals[] =
   { 0x0B56, 1, 0 }, { 0x0B57, 0, 1 },
   { 0x0B5C, 1, 0 }, { 0x0B5D, 0, 1 },
   { 0x0B5F, 1, 0 }, { 0x0B63, 0, 1 },
-  { 0x0B66, 1, 0 }, { 0x0B71, 0, 1 }
+  { 0x0B66, 1, 0 }, { 0x0B77, 0, 1 }
 };
 static const uc_interval_t script_tamil_intervals[] =
 {
@@ -400,18 +433,18 @@ static const uc_interval_t script_kannada_intervals[] =
   { 0x0CD5, 1, 0 }, { 0x0CD6, 0, 1 },
   { 0x0CDE, 1, 1 },
   { 0x0CE0, 1, 0 }, { 0x0CE3, 0, 1 },
-  { 0x0CE6, 1, 0 }, { 0x0CEF, 0, 1 }
+  { 0x0CE6, 1, 0 }, { 0x0CEF, 0, 1 },
+  { 0x0CF1, 1, 0 }, { 0x0CF2, 0, 1 }
 };
 static const uc_interval_t script_malayalam_intervals[] =
 {
   { 0x0D02, 1, 0 }, { 0x0D03, 0, 1 },
   { 0x0D05, 1, 0 }, { 0x0D0C, 0, 1 },
   { 0x0D0E, 1, 0 }, { 0x0D10, 0, 1 },
-  { 0x0D12, 1, 0 }, { 0x0D28, 0, 1 },
-  { 0x0D2A, 1, 0 }, { 0x0D39, 0, 1 },
+  { 0x0D12, 1, 0 }, { 0x0D3A, 0, 1 },
   { 0x0D3D, 1, 0 }, { 0x0D44, 0, 1 },
   { 0x0D46, 1, 0 }, { 0x0D48, 0, 1 },
-  { 0x0D4A, 1, 0 }, { 0x0D4D, 0, 1 },
+  { 0x0D4A, 1, 0 }, { 0x0D4E, 0, 1 },
   { 0x0D57, 1, 1 },
   { 0x0D60, 1, 0 }, { 0x0D63, 0, 1 },
   { 0x0D66, 1, 0 }, { 0x0D75, 0, 1 },
@@ -461,16 +494,16 @@ static const uc_interval_t script_tibetan_intervals[] =
 {
   { 0x0F00, 1, 0 }, { 0x0F47, 0, 1 },
   { 0x0F49, 1, 0 }, { 0x0F6C, 0, 1 },
-  { 0x0F71, 1, 0 }, { 0x0F8B, 0, 1 },
-  { 0x0F90, 1, 0 }, { 0x0F97, 0, 1 },
+  { 0x0F71, 1, 0 }, { 0x0F97, 0, 1 },
   { 0x0F99, 1, 0 }, { 0x0FBC, 0, 1 },
   { 0x0FBE, 1, 0 }, { 0x0FCC, 0, 1 },
-  { 0x0FCE, 1, 0 }, { 0x0FD4, 0, 1 }
+  { 0x0FCE, 1, 0 }, { 0x0FD4, 0, 1 },
+  { 0x0FD9, 1, 0 }, { 0x0FDA, 0, 1 }
 };
 static const uc_interval_t script_myanmar_intervals[] =
 {
-  { 0x1000, 1, 0 }, { 0x1099, 0, 1 },
-  { 0x109E, 1, 0 }, { 0x109F, 0, 1 }
+  { 0x1000, 1, 0 }, { 0x109F, 0, 1 },
+  { 0xAA60, 1, 0 }, { 0xAA7B, 0, 1 }
 };
 static const uc_interval_t script_georgian_intervals[] =
 {
@@ -481,13 +514,15 @@ static const uc_interval_t script_georgian_intervals[] =
 };
 static const uc_interval_t script_hangul_intervals[] =
 {
-  { 0x1100, 1, 0 }, { 0x1159, 0, 1 },
-  { 0x115F, 1, 0 }, { 0x11A2, 0, 1 },
-  { 0x11A8, 1, 0 }, { 0x11F9, 0, 1 },
+  { 0x1100, 1, 0 }, { 0x11FF, 0, 1 },
+  { 0x302E, 1, 0 }, { 0x302F, 0, 1 },
   { 0x3131, 1, 0 }, { 0x318E, 0, 1 },
   { 0x3200, 1, 0 }, { 0x321E, 0, 1 },
   { 0x3260, 1, 0 }, { 0x327E, 0, 1 },
+  { 0xA960, 1, 0 }, { 0xA97C, 0, 1 },
   { 0xAC00, 1, 0 }, { 0xD7A3, 0, 1 },
+  { 0xD7B0, 1, 0 }, { 0xD7C6, 0, 1 },
+  { 0xD7CB, 1, 0 }, { 0xD7FB, 0, 1 },
   { 0xFFA0, 1, 0 }, { 0xFFBE, 0, 1 },
   { 0xFFC2, 1, 0 }, { 0xFFC7, 0, 1 },
   { 0xFFCA, 1, 0 }, { 0xFFCF, 0, 1 },
@@ -512,7 +547,7 @@ static const uc_interval_t script_ethiopic_intervals[] =
   { 0x12D8, 1, 0 }, { 0x1310, 0, 1 },
   { 0x1312, 1, 0 }, { 0x1315, 0, 1 },
   { 0x1318, 1, 0 }, { 0x135A, 0, 1 },
-  { 0x135F, 1, 0 }, { 0x137C, 0, 1 },
+  { 0x135D, 1, 0 }, { 0x137C, 0, 1 },
   { 0x1380, 1, 0 }, { 0x1399, 0, 1 },
   { 0x2D80, 1, 0 }, { 0x2D96, 0, 1 },
   { 0x2DA0, 1, 0 }, { 0x2DA6, 0, 1 },
@@ -522,7 +557,12 @@ static const uc_interval_t script_ethiopic_intervals[] =
   { 0x2DC0, 1, 0 }, { 0x2DC6, 0, 1 },
   { 0x2DC8, 1, 0 }, { 0x2DCE, 0, 1 },
   { 0x2DD0, 1, 0 }, { 0x2DD6, 0, 1 },
-  { 0x2DD8, 1, 0 }, { 0x2DDE, 0, 1 }
+  { 0x2DD8, 1, 0 }, { 0x2DDE, 0, 1 },
+  { 0xAB01, 1, 0 }, { 0xAB06, 0, 1 },
+  { 0xAB09, 1, 0 }, { 0xAB0E, 0, 1 },
+  { 0xAB11, 1, 0 }, { 0xAB16, 0, 1 },
+  { 0xAB20, 1, 0 }, { 0xAB26, 0, 1 },
+  { 0xAB28, 1, 0 }, { 0xAB2E, 0, 1 }
 };
 static const uc_interval_t script_cherokee_intervals[] =
 {
@@ -530,7 +570,8 @@ static const uc_interval_t script_cherokee_intervals[] =
 };
 static const uc_interval_t script_canadian_aboriginal_intervals[] =
 {
-  { 0x1401, 1, 0 }, { 0x1676, 0, 1 }
+  { 0x1400, 1, 0 }, { 0x167F, 0, 1 },
+  { 0x18B0, 1, 0 }, { 0x18F5, 0, 1 }
 };
 static const uc_interval_t script_ogham_intervals[] =
 {
@@ -560,7 +601,9 @@ static const uc_interval_t script_mongolian_intervals[] =
 static const uc_interval_t script_hiragana_intervals[] =
 {
   { 0x3041, 1, 0 }, { 0x3096, 0, 1 },
-  { 0x309D, 1, 0 }, { 0x309F, 0, 1 }
+  { 0x309D, 1, 0 }, { 0x309F, 0, 1 },
+  { 0x1B001, 1, 1 },
+  { 0x1F200, 1, 1 }
 };
 static const uc_interval_t script_katakana_intervals[] =
 {
@@ -570,12 +613,14 @@ static const uc_interval_t script_katakana_intervals[] =
   { 0x32D0, 1, 0 }, { 0x32FE, 0, 1 },
   { 0x3300, 1, 0 }, { 0x3357, 0, 1 },
   { 0xFF66, 1, 0 }, { 0xFF6F, 0, 1 },
-  { 0xFF71, 1, 0 }, { 0xFF9D, 0, 1 }
+  { 0xFF71, 1, 0 }, { 0xFF9D, 0, 1 },
+  { 0x1B000, 1, 1 }
 };
 static const uc_interval_t script_bopomofo_intervals[] =
 {
+  { 0x02EA, 1, 0 }, { 0x02EB, 0, 1 },
   { 0x3105, 1, 0 }, { 0x312D, 0, 1 },
-  { 0x31A0, 1, 0 }, { 0x31B7, 0, 1 }
+  { 0x31A0, 1, 0 }, { 0x31BA, 0, 1 }
 };
 static const uc_interval_t script_han_intervals[] =
 {
@@ -587,11 +632,13 @@ static const uc_interval_t script_han_intervals[] =
   { 0x3021, 1, 0 }, { 0x3029, 0, 1 },
   { 0x3038, 1, 0 }, { 0x303B, 0, 1 },
   { 0x3400, 1, 0 }, { 0x4DB5, 0, 1 },
-  { 0x4E00, 1, 0 }, { 0x9FC3, 0, 1 },
+  { 0x4E00, 1, 0 }, { 0x9FCB, 0, 1 },
   { 0xF900, 1, 0 }, { 0xFA2D, 0, 1 },
-  { 0xFA30, 1, 0 }, { 0xFA6A, 0, 1 },
+  { 0xFA30, 1, 0 }, { 0xFA6D, 0, 1 },
   { 0xFA70, 1, 0 }, { 0xFAD9, 0, 1 },
   { 0x20000, 1, 0 }, { 0x2A6D6, 0, 1 },
+  { 0x2A700, 1, 0 }, { 0x2B734, 0, 1 },
+  { 0x2B740, 1, 0 }, { 0x2B81D, 0, 1 },
   { 0x2F800, 1, 0 }, { 0x2FA1D, 0, 1 }
 };
 static const uc_interval_t script_yi_intervals[] =
@@ -615,14 +662,20 @@ static const uc_interval_t script_deseret_intervals[] =
 static const uc_interval_t script_inherited_intervals[] =
 {
   { 0x0300, 1, 0 }, { 0x036F, 0, 1 },
+  { 0x0485, 1, 0 }, { 0x0486, 0, 1 },
   { 0x064B, 1, 0 }, { 0x0655, 0, 1 },
+  { 0x065F, 1, 1 },
   { 0x0670, 1, 1 },
   { 0x0951, 1, 0 }, { 0x0952, 0, 1 },
+  { 0x1CD0, 1, 0 }, { 0x1CD2, 0, 1 },
+  { 0x1CD4, 1, 0 }, { 0x1CE0, 0, 1 },
+  { 0x1CE2, 1, 0 }, { 0x1CE8, 0, 1 },
+  { 0x1CED, 1, 1 },
   { 0x1DC0, 1, 0 }, { 0x1DE6, 0, 1 },
-  { 0x1DFE, 1, 0 }, { 0x1DFF, 0, 1 },
+  { 0x1DFC, 1, 0 }, { 0x1DFF, 0, 1 },
   { 0x200C, 1, 0 }, { 0x200D, 0, 1 },
   { 0x20D0, 1, 0 }, { 0x20F0, 0, 1 },
-  { 0x302A, 1, 0 }, { 0x302F, 0, 1 },
+  { 0x302A, 1, 0 }, { 0x302D, 0, 1 },
   { 0x3099, 1, 0 }, { 0x309A, 0, 1 },
   { 0xFE00, 1, 0 }, { 0xFE0F, 0, 1 },
   { 0xFE20, 1, 0 }, { 0xFE26, 0, 1 },
@@ -710,14 +763,14 @@ static const uc_interval_t script_buginese_intervals[] =
 static const uc_interval_t script_coptic_intervals[] =
 {
   { 0x03E2, 1, 0 }, { 0x03EF, 0, 1 },
-  { 0x2C80, 1, 0 }, { 0x2CEA, 0, 1 },
+  { 0x2C80, 1, 0 }, { 0x2CF1, 0, 1 },
   { 0x2CF9, 1, 0 }, { 0x2CFF, 0, 1 }
 };
 static const uc_interval_t script_new_tai_lue_intervals[] =
 {
-  { 0x1980, 1, 0 }, { 0x19A9, 0, 1 },
+  { 0x1980, 1, 0 }, { 0x19AB, 0, 1 },
   { 0x19B0, 1, 0 }, { 0x19C9, 0, 1 },
-  { 0x19D0, 1, 0 }, { 0x19D9, 0, 1 },
+  { 0x19D0, 1, 0 }, { 0x19DA, 0, 1 },
   { 0x19DE, 1, 0 }, { 0x19DF, 0, 1 }
 };
 static const uc_interval_t script_glagolitic_intervals[] =
@@ -728,7 +781,8 @@ static const uc_interval_t script_glagolitic_intervals[] =
 static const uc_interval_t script_tifinagh_intervals[] =
 {
   { 0x2D30, 1, 0 }, { 0x2D65, 0, 1 },
-  { 0x2D6F, 1, 1 }
+  { 0x2D6F, 1, 0 }, { 0x2D70, 0, 1 },
+  { 0x2D7F, 1, 1 }
 };
 static const uc_interval_t script_syloti_nagri_intervals[] =
 {
@@ -763,7 +817,7 @@ static const uc_interval_t script_cuneiform_intervals[] =
 };
 static const uc_interval_t script_phoenician_intervals[] =
 {
-  { 0x10900, 1, 0 }, { 0x10919, 0, 1 },
+  { 0x10900, 1, 0 }, { 0x1091B, 0, 1 },
   { 0x1091F, 1, 1 }
 };
 static const uc_interval_t script_phags_pa_intervals[] =
@@ -827,7 +881,96 @@ static const uc_interval_t script_cham_intervals[] =
   { 0xAA50, 1, 0 }, { 0xAA59, 0, 1 },
   { 0xAA5C, 1, 0 }, { 0xAA5F, 0, 1 }
 };
-static const uc_script_t scripts[77] =
+static const uc_interval_t script_tai_tham_intervals[] =
+{
+  { 0x1A20, 1, 0 }, { 0x1A5E, 0, 1 },
+  { 0x1A60, 1, 0 }, { 0x1A7C, 0, 1 },
+  { 0x1A7F, 1, 0 }, { 0x1A89, 0, 1 },
+  { 0x1A90, 1, 0 }, { 0x1A99, 0, 1 },
+  { 0x1AA0, 1, 0 }, { 0x1AAD, 0, 1 }
+};
+static const uc_interval_t script_tai_viet_intervals[] =
+{
+  { 0xAA80, 1, 0 }, { 0xAAC2, 0, 1 },
+  { 0xAADB, 1, 0 }, { 0xAADF, 0, 1 }
+};
+static const uc_interval_t script_avestan_intervals[] =
+{
+  { 0x10B00, 1, 0 }, { 0x10B35, 0, 1 },
+  { 0x10B39, 1, 0 }, { 0x10B3F, 0, 1 }
+};
+static const uc_interval_t script_egyptian_hieroglyphs_intervals[] =
+{
+  { 0x13000, 1, 0 }, { 0x1342E, 0, 1 }
+};
+static const uc_interval_t script_samaritan_intervals[] =
+{
+  { 0x0800, 1, 0 }, { 0x082D, 0, 1 },
+  { 0x0830, 1, 0 }, { 0x083E, 0, 1 }
+};
+static const uc_interval_t script_lisu_intervals[] =
+{
+  { 0xA4D0, 1, 0 }, { 0xA4FF, 0, 1 }
+};
+static const uc_interval_t script_bamum_intervals[] =
+{
+  { 0xA6A0, 1, 0 }, { 0xA6F7, 0, 1 },
+  { 0x16800, 1, 0 }, { 0x16A38, 0, 1 }
+};
+static const uc_interval_t script_javanese_intervals[] =
+{
+  { 0xA980, 1, 0 }, { 0xA9CD, 0, 1 },
+  { 0xA9CF, 1, 0 }, { 0xA9D9, 0, 1 },
+  { 0xA9DE, 1, 0 }, { 0xA9DF, 0, 1 }
+};
+static const uc_interval_t script_meetei_mayek_intervals[] =
+{
+  { 0xABC0, 1, 0 }, { 0xABED, 0, 1 },
+  { 0xABF0, 1, 0 }, { 0xABF9, 0, 1 }
+};
+static const uc_interval_t script_imperial_aramaic_intervals[] =
+{
+  { 0x10840, 1, 0 }, { 0x10855, 0, 1 },
+  { 0x10857, 1, 0 }, { 0x1085F, 0, 1 }
+};
+static const uc_interval_t script_old_south_arabian_intervals[] =
+{
+  { 0x10A60, 1, 0 }, { 0x10A7F, 0, 1 }
+};
+static const uc_interval_t script_inscriptional_parthian_intervals[] =
+{
+  { 0x10B40, 1, 0 }, { 0x10B55, 0, 1 },
+  { 0x10B58, 1, 0 }, { 0x10B5F, 0, 1 }
+};
+static const uc_interval_t script_inscriptional_pahlavi_intervals[] =
+{
+  { 0x10B60, 1, 0 }, { 0x10B72, 0, 1 },
+  { 0x10B78, 1, 0 }, { 0x10B7F, 0, 1 }
+};
+static const uc_interval_t script_old_turkic_intervals[] =
+{
+  { 0x10C00, 1, 0 }, { 0x10C48, 0, 1 }
+};
+static const uc_interval_t script_kaithi_intervals[] =
+{
+  { 0x11080, 1, 0 }, { 0x110C1, 0, 1 }
+};
+static const uc_interval_t script_batak_intervals[] =
+{
+  { 0x1BC0, 1, 0 }, { 0x1BF3, 0, 1 },
+  { 0x1BFC, 1, 0 }, { 0x1BFF, 0, 1 }
+};
+static const uc_interval_t script_brahmi_intervals[] =
+{
+  { 0x11000, 1, 0 }, { 0x1104D, 0, 1 },
+  { 0x11052, 1, 0 }, { 0x1106F, 0, 1 }
+};
+static const uc_interval_t script_mandaic_intervals[] =
+{
+  { 0x0840, 1, 0 }, { 0x085B, 0, 1 },
+  { 0x085E, 1, 1 }
+};
+static const uc_script_t scripts[95] =
 {
   {
     sizeof (script_common_intervals) / sizeof (uc_interval_t),
@@ -1213,6 +1356,96 @@ static const uc_script_t scripts[77] =
     sizeof (script_cham_intervals) / sizeof (uc_interval_t),
     script_cham_intervals,
     "Cham"
+  },
+  {
+    sizeof (script_tai_tham_intervals) / sizeof (uc_interval_t),
+    script_tai_tham_intervals,
+    "Tai_Tham"
+  },
+  {
+    sizeof (script_tai_viet_intervals) / sizeof (uc_interval_t),
+    script_tai_viet_intervals,
+    "Tai_Viet"
+  },
+  {
+    sizeof (script_avestan_intervals) / sizeof (uc_interval_t),
+    script_avestan_intervals,
+    "Avestan"
+  },
+  {
+    sizeof (script_egyptian_hieroglyphs_intervals) / sizeof (uc_interval_t),
+    script_egyptian_hieroglyphs_intervals,
+    "Egyptian_Hieroglyphs"
+  },
+  {
+    sizeof (script_samaritan_intervals) / sizeof (uc_interval_t),
+    script_samaritan_intervals,
+    "Samaritan"
+  },
+  {
+    sizeof (script_lisu_intervals) / sizeof (uc_interval_t),
+    script_lisu_intervals,
+    "Lisu"
+  },
+  {
+    sizeof (script_bamum_intervals) / sizeof (uc_interval_t),
+    script_bamum_intervals,
+    "Bamum"
+  },
+  {
+    sizeof (script_javanese_intervals) / sizeof (uc_interval_t),
+    script_javanese_intervals,
+    "Javanese"
+  },
+  {
+    sizeof (script_meetei_mayek_intervals) / sizeof (uc_interval_t),
+    script_meetei_mayek_intervals,
+    "Meetei_Mayek"
+  },
+  {
+    sizeof (script_imperial_aramaic_intervals) / sizeof (uc_interval_t),
+    script_imperial_aramaic_intervals,
+    "Imperial_Aramaic"
+  },
+  {
+    sizeof (script_old_south_arabian_intervals) / sizeof (uc_interval_t),
+    script_old_south_arabian_intervals,
+    "Old_South_Arabian"
+  },
+  {
+    sizeof (script_inscriptional_parthian_intervals) / sizeof (uc_interval_t),
+    script_inscriptional_parthian_intervals,
+    "Inscriptional_Parthian"
+  },
+  {
+    sizeof (script_inscriptional_pahlavi_intervals) / sizeof (uc_interval_t),
+    script_inscriptional_pahlavi_intervals,
+    "Inscriptional_Pahlavi"
+  },
+  {
+    sizeof (script_old_turkic_intervals) / sizeof (uc_interval_t),
+    script_old_turkic_intervals,
+    "Old_Turkic"
+  },
+  {
+    sizeof (script_kaithi_intervals) / sizeof (uc_interval_t),
+    script_kaithi_intervals,
+    "Kaithi"
+  },
+  {
+    sizeof (script_batak_intervals) / sizeof (uc_interval_t),
+    script_batak_intervals,
+    "Batak"
+  },
+  {
+    sizeof (script_brahmi_intervals) / sizeof (uc_interval_t),
+    script_brahmi_intervals,
+    "Brahmi"
+  },
+  {
+    sizeof (script_mandaic_intervals) / sizeof (uc_interval_t),
+    script_mandaic_intervals,
+    "Mandaic"
   }
 };
 #define script_header_0 16
@@ -1225,7 +1458,7 @@ struct
   {
     int level1[15];
     short level2[4 << 9];
-    unsigned char level3[138 << 7];
+    unsigned char level3[163 << 7];
   }
 u_script =
 {
@@ -1235,18 +1468,18 @@ u_script =
   },
   {
         0,   128,   256,   256,   256,   384,   512,   640,
-      768,   768,   896,  1024,  1152,  1280,  1408,  1536,
-       -1,    -1,  1664,  1792,  1920,  2048,  2176,  2304,
-     2432,  2560,  2688,  2816,  2944,  3072,  3200,  3328,
-     3456,  3584,  3712,  3840,  3968,  4096,  4224,  4352,
-     4480,  4608,  4608,  4608,  4736,  4864,  4992,  5120,
-     5248,  5376,  5504,  5632,  5760,    -1,  5888,  6016,
-     6144,    -1,  6272,  6400,   256,   256,  6528,  6656,
-     6784,  6912,  7040,  7168,  7296,  7296,  7296,  7424,
-     7552,  7296,  7296,  7296,  7296,  7680,  7808,  7936,
-     8064,  8064,  7296,  7296,  7296,  7296,  8192,    -1,
+      768,   896,  1024,  1152,  1280,  1408,  1536,  1664,
+     1792,    -1,  1920,  2048,  2176,  2304,  2432,  2560,
+     2688,  2816,  2944,  3072,  3200,  3328,  3456,  3584,
+     3712,  3840,  3968,  3968,  4096,  4224,  4352,  4480,
+     4608,  4608,  4608,  4608,  4608,  4736,  4864,  4992,
+     5120,  5248,  5376,  5504,  5632,  5760,  5888,  6016,
+     6144,  6272,  6400,  6528,   256,   256,  6656,  6784,
+     6912,  7040,  7168,  7296,  7424,  7424,  7424,  7552,
+     7680,  7424,  7424,  7424,  7424,  7424,  7808,  7936,
+     8064,  8064,  7424,  7424,  7424,  7424,  8192,    -1,
      8320,  8448,  8576,  8704,  8832,  8960,  9088,  9216,
-     9344,  9472,  9600,  9728,  9856,  9984, 10112,  7296,
+     9344,  9472,  9600,  9728,  9856,  9984, 10112,  7424,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
@@ -1276,44 +1509,42 @@ u_script =
      9088,  9088,  9088,  9088,  9088,  9088,  9088, 10368,
     10496, 10496, 10496, 10496, 10496, 10496, 10496, 10496,
     10496, 10624, 10752, 10752, 10880, 11008, 11136, 11264,
-    11392, 11520, 11648,    -1, 11776,    -1,    -1,    -1,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 11904,
-    11904, 11904, 11904, 11904, 11904, 11904, 11904, 12032,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    11392, 11520, 11648, 11776, 11904, 12032, 12160, 12288,
+     3968,  3968,  3968,  3968,  3968,  3968,  3968,  3968,
+     3968,  3968,  3968,  3968,  3968,  3968,  3968,  3968,
+     3968,  3968,  3968,  3968,  3968,  3968,  3968,  3968,
+     3968,  3968,  3968,  3968,  3968,  3968,  3968,  3968,
+     3968,  3968,  3968,  3968,  3968,  3968,  3968,  3968,
+     3968,  3968,  3968,  3968,  3968,  3968,  3968,  3968,
+     3968,  3968,  3968,  3968,  3968,  3968,  3968,  3968,
+     3968,  3968,  3968,  3968,  3968,  3968,  3968,  3968,
+     3968,  3968,  3968,  3968,  3968,  3968,  3968,  3968,
+     3968,  3968,  3968,  3968,  3968,  3968,  3968,  3968,
+     3968,  3968,  3968,  3968,  3968,  3968,  3968, 12416,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,  9088,  9088, 12160, 12288, 12416, 12544,
-    12672, 12672, 12800, 12928, 13056, 13184, 13312, 13440,
-    13568, 13696, 13824, 13952,    -1, 14080, 14208, 14336,
-    14464, 14592,    -1,    -1,    -1,    -1,    -1,    -1,
-    14720,    -1, 14848,    -1, 14976,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    15104, 15104, 15104, 15104, 15104, 15104, 15232,    -1,
-    15360,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,  9088,  9088, 12544, 12672, 12800, 12928,
+    13056, 13056, 13184, 13312, 13440, 13568, 13696, 13824,
+    13952, 14080, 14208, 14336,    -1, 14464, 14592, 14720,
+    14848, 14976,    -1,    -1,    -1,    -1,    -1,    -1,
+    15104,    -1, 15232,    -1, 15360,    -1, 15488,    -1,
+    15616,    -1,    -1,    -1, 15744,    -1,    -1,    -1,
+    15872, 16000,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    16128, 16128, 16128, 16128, 16128, 16128, 16256,    -1,
+    16384,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    16512, 16512, 16512, 16512, 16512, 16512, 16512, 16512,
+    16640,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1326,6 +1557,7 @@ u_script =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    16768, 16768, 16768, 16768, 16896,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1343,6 +1575,7 @@ u_script =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    17024,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1350,16 +1583,16 @@ u_script =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     7296, 15488, 15616, 15744, 15872,    -1, 16000,    -1,
-    16128, 16256, 16384,  7296,  7296, 16512,  7296, 16640,
+     7424, 17152, 17280, 17408, 17536,    -1, 17664,    -1,
+    17792, 17920, 18048,  7424,  7424, 18176,  7424, 18304,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    16768, 16896,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    18432, 18560, 18688, 18816, 18944,    -1, 19072, 19200,
+    19328, 19456, 19584, 19712, 19840, 19968,  7552,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
@@ -1403,12 +1636,12 @@ u_script =
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
      9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
-     9088,  9088,  9088,  9088,  9088, 17024,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     9088,  9088,  9088,  9088,  9088, 20096,  9088,  9088,
+     9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
+     9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
+     9088,  9088,  9088,  9088,  9088,  9088,  9088,  9088,
+     9088,  9088,  9088,  9088,  9088,  9088, 20224,  9088,
+    20352,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1424,9 +1657,9 @@ u_script =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     9088,  9088,  9088,  9088, 17152,    -1,    -1,    -1,
+     9088,  9088,  9088,  9088, 20352,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    17280,    -1, 17408, 17536,    -1,    -1,    -1,    -1,
+    20480,    -1, 20608, 20736,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1553,7 +1786,7 @@ u_script =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       1,   1,   1,   1,   1,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,  34,  34,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
      40,  40,  40,  40,  40,  40,  40,  40,
@@ -1604,11 +1837,27 @@ u_script =
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,  40,  40,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
-      3,   3,   3,   3, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255,   4,   4,   4,   4,   4,   4,   4,
       4,   4,   4,   4,   4,   4,   4,   4,
@@ -1636,18 +1885,18 @@ u_script =
       5,   5,   5, 255, 255, 255, 255, 255,
       5,   5,   5,   5,   5, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
-      0,   0,   0,   0, 255, 255,   6,   6,
+      6,   6,   6,   6, 255, 255,   6,   6,
       6,   6,   6,   6,   0,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,   0, 255, 255,   6,   0,
-    255,   6,   6,   6,   6,   6,   6,   6,
+      6,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
       0,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,  40,  40,  40,  40,  40,
      40,  40,  40,  40,  40,  40,   6,   6,
-      6,   6,   6,   6,   6,   6,   6, 255,
+      6,   6,   6,   6,   6,   6,   6,  40,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   6,   6,   6,   6,   6,   6,
      40,   6,   6,   6,   6,   6,   6,   6,
@@ -1700,22 +1949,38 @@ u_script =
      65,  65,  65,  65,  65,  65,  65,  65,
      65,  65,  65,  65,  65,  65,  65,  65,
      65,  65,  65, 255, 255, 255, 255, 255,
-    255,   9,   9,   9,   9,   9,   9,   9,
+     81,  81,  81,  81,  81,  81,  81,  81,
+     81,  81,  81,  81,  81,  81,  81,  81,
+     81,  81,  81,  81,  81,  81,  81,  81,
+     81,  81,  81,  81,  81,  81,  81,  81,
+     81,  81,  81,  81,  81,  81,  81,  81,
+     81,  81,  81,  81,  81,  81, 255, 255,
+     81,  81,  81,  81,  81,  81,  81,  81,
+     81,  81,  81,  81,  81,  81,  81, 255,
+     94,  94,  94,  94,  94,  94,  94,  94,
+     94,  94,  94,  94,  94,  94,  94,  94,
+     94,  94,  94,  94,  94,  94,  94,  94,
+     94,  94,  94,  94, 255, 255,  94, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      9,   9,   9,   9,   9,   9,   9,   9,
+      9,   9,   9,   9,   9,   9,   9,   9,
       9,   9,   9,   9,   9,   9,   9,   9,
       9,   9,   9,   9,   9,   9,   9,   9,
       9,   9,   9,   9,   9,   9,   9,   9,
       9,   9,   9,   9,   9,   9,   9,   9,
       9,   9,   9,   9,   9,   9,   9,   9,
       9,   9,   9,   9,   9,   9,   9,   9,
-      9,   9, 255, 255,   9,   9,   9,   9,
       9,   9,   9,   9,   9,   9,   9,   9,
-      9,   9,   9,   9,   9,   9, 255, 255,
-      9,  40,  40,   9,   9, 255, 255, 255,
+      9,   9,   9,   9,   9,   9,   9,   9,
+      9,  40,  40,   9,   9,   9,   9,   9,
       9,   9,   9,   9,   9,   9,   9,   9,
       9,   9,   9,   9,   0,   0,   9,   9,
       9,   9,   9,   9,   9,   9,   9,   9,
-      0,   9,   9, 255, 255, 255, 255, 255,
-    255, 255, 255,   9,   9,   9,   9,   9,
+      0,   9,   9,   9,   9,   9,   9,   9,
+    255,   9,   9,   9,   9,   9,   9,   9,
     255,  10,  10,  10, 255,  10,  10,  10,
      10,  10,  10,  10,  10, 255, 255,  10,
      10, 255, 255,  10,  10,  10,  10,  10,
@@ -1731,7 +1996,7 @@ u_script =
      10,  10,  10,  10, 255, 255,  10,  10,
      10,  10,  10,  10,  10,  10,  10,  10,
      10,  10,  10,  10,  10,  10,  10,  10,
-     10,  10,  10, 255, 255, 255, 255, 255,
+     10,  10,  10,  10, 255, 255, 255, 255,
     255,  11,  11,  11, 255,  11,  11,  11,
      11,  11,  11, 255, 255, 255, 255,  11,
      11, 255, 255,  11,  11,  11,  11,  11,
@@ -1778,7 +2043,7 @@ u_script =
     255, 255, 255, 255,  13,  13, 255,  13,
      13,  13,  13,  13, 255, 255,  13,  13,
      13,  13,  13,  13,  13,  13,  13,  13,
-     13,  13, 255, 255, 255, 255, 255, 255,
+     13,  13,  13,  13,  13,  13,  13,  13,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255,  14,  14, 255,  14,  14,  14,
      14,  14,  14, 255, 255, 255,  14,  14,
@@ -1826,18 +2091,18 @@ u_script =
     255, 255, 255, 255, 255, 255,  16, 255,
      16,  16,  16,  16, 255, 255,  16,  16,
      16,  16,  16,  16,  16,  16,  16,  16,
-    255,   0,   0, 255, 255, 255, 255, 255,
+    255,  16,  16, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255,  17,  17, 255,  17,  17,  17,
      17,  17,  17,  17,  17, 255,  17,  17,
      17, 255,  17,  17,  17,  17,  17,  17,
      17,  17,  17,  17,  17,  17,  17,  17,
      17,  17,  17,  17,  17,  17,  17,  17,
-     17, 255,  17,  17,  17,  17,  17,  17,
      17,  17,  17,  17,  17,  17,  17,  17,
-     17,  17, 255, 255, 255,  17,  17,  17,
+     17,  17,  17,  17,  17,  17,  17,  17,
+     17,  17,  17, 255, 255,  17,  17,  17,
      17,  17,  17,  17,  17, 255,  17,  17,
-     17, 255,  17,  17,  17,  17, 255, 255,
+     17, 255,  17,  17,  17,  17,  17, 255,
     255, 255, 255, 255, 255, 255, 255,  17,
     255, 255, 255, 255, 255, 255, 255, 255,
      17,  17,  17,  17, 255, 255,  17,  17,
@@ -1909,7 +2174,7 @@ u_script =
     255,  21,  21,  21,  21,  21,  21,  21,
      21,  21,  21,  21,  21,  21,  21,  21,
      21,  21,  21,  21,  21,  21,  21,  21,
-     21,  21,  21,  21, 255, 255, 255, 255,
+     21,  21,  21,  21,  21,  21,  21,  21,
      21,  21,  21,  21,  21,  21,  21,  21,
     255,  21,  21,  21,  21,  21,  21,  21,
      21,  21,  21,  21,  21,  21,  21,  21,
@@ -1918,8 +2183,8 @@ u_script =
      21,  21,  21,  21,  21, 255,  21,  21,
      21,  21,  21,  21,  21,  21,  21,  21,
      21,  21,  21,  21,  21, 255,  21,  21,
-     21,  21,  21,  21,  21, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     21,  21,  21,  21,  21,   0,   0,   0,
+      0,  21,  21, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -1943,7 +2208,7 @@ u_script =
      22,  22,  22,  22,  22,  22,  22,  22,
      22,  22,  22,  22,  22,  22,  22,  22,
      22,  22,  22,  22,  22,  22,  22,  22,
-     22,  22, 255, 255, 255, 255,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
      23,  23,  23,  23,  23,  23,  23,  23,
      23,  23,  23,  23,  23,  23,  23,  23,
      23,  23,  23,  23,  23,  23,  23,  23,
@@ -1967,27 +2232,11 @@ u_script =
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24, 255, 255, 255, 255, 255,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24, 255, 255, 255, 255, 255,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24, 255, 255, 255, 255, 255, 255,
      25,  25,  25,  25,  25,  25,  25,  25,
      25,  25,  25,  25,  25,  25,  25,  25,
      25,  25,  25,  25,  25,  25,  25,  25,
@@ -2031,7 +2280,7 @@ u_script =
      25,  25,  25,  25,  25,  25,  25,  25,
      25,  25,  25,  25,  25,  25,  25,  25,
      25,  25,  25,  25,  25,  25,  25,  25,
-     25,  25,  25, 255, 255, 255, 255,  25,
+     25,  25,  25, 255, 255,  25,  25,  25,
      25,  25,  25,  25,  25,  25,  25,  25,
      25,  25,  25,  25,  25,  25,  25,  25,
      25,  25,  25,  25,  25,  25,  25,  25,
@@ -2052,29 +2301,6 @@ u_script =
      26,  26,  26,  26,  26,  26,  26,  26,
      26,  26,  26,  26,  26, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
-    255,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
      27,  27,  27,  27,  27,  27,  27,  27,
      27,  27,  27,  27,  27,  27,  27,  27,
      27,  27,  27,  27,  27,  27,  27,  27,
@@ -2091,15 +2317,6 @@ u_script =
      27,  27,  27,  27,  27,  27,  27,  27,
      27,  27,  27,  27,  27,  27,  27,  27,
      27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27,  27,
-     27,  27,  27,  27,  27,  27,  27, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
      28,  28,  28,  28,  28,  28,  28,  28,
      28,  28,  28,  28,  28,  28,  28,  28,
      28,  28,  28,  28,  28,  28,  28,  28,
@@ -2170,15 +2387,15 @@ u_script =
      31,  31,  31,  31,  31,  31,  31,  31,
      31,  31,  31,  31,  31,  31,  31,  31,
      31,  31,  31, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     27,  27,  27,  27,  27,  27,  27,  27,
+     27,  27,  27,  27,  27,  27,  27,  27,
+     27,  27,  27,  27,  27,  27,  27,  27,
+     27,  27,  27,  27,  27,  27,  27,  27,
+     27,  27,  27,  27,  27,  27,  27,  27,
+     27,  27,  27,  27,  27,  27,  27,  27,
+     27,  27,  27,  27,  27,  27,  27,  27,
+     27,  27,  27,  27,  27,  27,  27,  27,
+     27,  27,  27,  27,  27,  27, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
      45,  45,  45,  45,  45,  45,  45,  45,
      45,  45,  45,  45,  45,  45,  45,  45,
@@ -2201,13 +2418,13 @@ u_script =
      55,  55,  55,  55,  55,  55,  55,  55,
      55,  55,  55,  55,  55,  55,  55,  55,
      55,  55,  55,  55,  55,  55,  55,  55,
-     55,  55, 255, 255, 255, 255, 255, 255,
+     55,  55,  55,  55, 255, 255, 255, 255,
      55,  55,  55,  55,  55,  55,  55,  55,
      55,  55,  55,  55,  55,  55,  55,  55,
      55,  55,  55,  55,  55,  55,  55,  55,
      55,  55, 255, 255, 255, 255, 255, 255,
      55,  55,  55,  55,  55,  55,  55,  55,
-     55,  55, 255, 255, 255, 255,  55,  55,
+     55,  55,  55, 255, 255, 255,  55,  55,
      30,  30,  30,  30,  30,  30,  30,  30,
      30,  30,  30,  30,  30,  30,  30,  30,
      30,  30,  30,  30,  30,  30,  30,  30,
@@ -2216,8 +2433,24 @@ u_script =
      53,  53,  53,  53,  53,  53,  53,  53,
      53,  53,  53,  53,  53,  53,  53,  53,
      53,  53,  53,  53, 255, 255,  53,  53,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77,  77,  77,  77,  77,  77, 255,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77,  77,  77,  77, 255, 255,  77,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77, 255, 255, 255, 255, 255, 255,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77, 255, 255, 255, 255, 255, 255,
+     77,  77,  77,  77,  77,  77,  77,  77,
+     77,  77,  77,  77,  77,  77, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -2252,14 +2485,14 @@ u_script =
      66,  66,  66, 255, 255, 255,  66,  66,
      66,  66,  66,  66,  66,  66,  66,  66,
      66,  66, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     92,  92,  92,  92,  92,  92,  92,  92,
+     92,  92,  92,  92,  92,  92,  92,  92,
+     92,  92,  92,  92,  92,  92,  92,  92,
+     92,  92,  92,  92,  92,  92,  92,  92,
+     92,  92,  92,  92,  92,  92,  92,  92,
+     92,  92,  92,  92,  92,  92,  92,  92,
+     92,  92,  92,  92, 255, 255, 255, 255,
+    255, 255, 255, 255,  92,  92,  92,  92,
      67,  67,  67,  67,  67,  67,  67,  67,
      67,  67,  67,  67,  67,  67,  67,  67,
      67,  67,  67,  67,  67,  67,  67,  67,
@@ -2276,6 +2509,22 @@ u_script =
      68,  68,  68,  68,  68,  68,  68,  68,
      68,  68,  68,  68,  68,  68,  68,  68,
      68,  68,  68,  68,  68,  68,  68,  68,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+     40,  40,  40,   0,  40,  40,  40,  40,
+     40,  40,  40,  40,  40,  40,  40,  40,
+     40,   0,  40,  40,  40,  40,  40,  40,
+     40,   0,   0,   0,   0,  40,   0,   0,
+      0,   0,   0, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   1,
@@ -2307,7 +2556,7 @@ u_script =
      40,  40,  40,  40,  40,  40,  40, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255,  40,  40,
+    255, 255, 255, 255,  40,  40,  40,  40,
       2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,   2,   2,   2,   2,   2,   2,
       2,   2,   2,   2,   2,   2, 255, 255,
@@ -2358,12 +2607,12 @@ u_script =
       0,   0,   0,   0,   0,   0,   0,   1,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0, 255,
+      1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
      40,  40,  40,  40,  40,  40,  40,  40,
@@ -2382,14 +2631,14 @@ u_script =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   1,   0,
-    255, 255, 255,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   1,
-      1, 255, 255, 255, 255, 255, 255, 255,
+      1,   0, 255, 255, 255, 255, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -2433,8 +2682,8 @@ u_script =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -2452,48 +2701,32 @@ u_script =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
+    255,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0, 255, 255, 255,
-      0,   0,   0,   0, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255,   0,   0,   0,   0, 255,   0,   0,
-      0,   0, 255, 255,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-    255,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0, 255,   0, 255,   0,
-      0,   0,   0, 255, 255, 255,   0, 255,
-      0,   0,   0,   0,   0,   0,   0, 255,
-    255,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0, 255, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-    255,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0,   0,   0,   0, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0, 255,   0, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0, 255,   0, 255,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -2526,8 +2759,8 @@ u_script =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0, 255, 255, 255,
-      0,   0,   0,   0,   0, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -2546,8 +2779,8 @@ u_script =
      56,  56,  56,  56,  56,  56,  56, 255,
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   1,
-    255,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   1,   1,   1,   1, 255, 255,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1,   1,   1,   1,   1,   1,   1,
      54,  54,  54,  54,  54,  54,  54,  54,
      54,  54,  54,  54,  54,  54,  54,  54,
      54,  54,  54,  54,  54,  54,  54,  54,
@@ -2561,8 +2794,8 @@ u_script =
      54,  54,  54,  54,  54,  54,  54,  54,
      54,  54,  54,  54,  54,  54,  54,  54,
      54,  54,  54,  54,  54,  54,  54,  54,
-     54,  54,  54, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     54,  54,  54,  54,  54,  54,  54,  54,
+     54,  54, 255, 255, 255, 255, 255, 255,
     255,  54,  54,  54,  54,  54,  54,  54,
      23,  23,  23,  23,  23,  23,  23,  23,
      23,  23,  23,  23,  23,  23,  23,  23,
@@ -2578,8 +2811,8 @@ u_script =
      57,  57,  57,  57,  57,  57,  57,  57,
      57,  57,  57,  57,  57,  57, 255, 255,
     255, 255, 255, 255, 255, 255, 255,  57,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     57, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255,  57,
      25,  25,  25,  25,  25,  25,  25,  25,
      25,  25,  25,  25,  25,  25,  25,  25,
      25,  25,  25,  25,  25,  25,  25, 255,
@@ -2602,7 +2835,7 @@ u_script =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0, 255, 255, 255, 255, 255, 255, 255,
+      0,   0, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -2665,7 +2898,7 @@ u_script =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,  35,  35,  35,  35,  35,  35,  35,
-     35,  35,  40,  40,  40,  40,  40,  40,
+     35,  35,  40,  40,  40,  40,  24,  24,
       0,   0,   0,   0,   0,   0,   0,   0,
      35,  35,  35,  35,   0,   0,   0,   0,
     255,  32,  32,  32,  32,  32,  32,  32,
@@ -2715,7 +2948,7 @@ u_script =
      34,  34,  34,  34,  34,  34,  34,  34,
      34,  34,  34,  34,  34,  34,  34,  34,
      34,  34,  34,  34,  34,  34,  34,  34,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     34,  34,  34, 255, 255, 255, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -2732,8 +2965,8 @@ u_script =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
-      0,   0,   0,   0, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
      24,  24,  24,  24,  24,  24,  24,  24,
@@ -2796,6 +3029,7 @@ u_script =
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -2803,7 +3037,6 @@ u_script =
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
      36,  36,  36,  36,  36,  36,  36,  36,
      36,  36,  36,  36,  36,  36,  36,  36,
      36,  36,  36,  36,  36,  36,  36,  36,
@@ -2830,12 +3063,12 @@ u_script =
      36,  36,  36,  36,  36,  36,  36,  36,
      36,  36,  36,  36,  36,  36,  36, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     82,  82,  82,  82,  82,  82,  82,  82,
+     82,  82,  82,  82,  82,  82,  82,  82,
+     82,  82,  82,  82,  82,  82,  82,  82,
+     82,  82,  82,  82,  82,  82,  82,  82,
+     82,  82,  82,  82,  82,  82,  82,  82,
+     82,  82,  82,  82,  82,  82,  82,  82,
      69,  69,  69,  69,  69,  69,  69,  69,
      69,  69,  69,  69,  69,  69,  69,  69,
      69,  69,  69,  69,  69,  69,  69,  69,
@@ -2864,7 +3097,7 @@ u_script =
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
-    255, 255,   3,   3,   3,   3,   3,   3,
+      3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3, 255, 255, 255, 255,
     255, 255, 255, 255,   3,   3,   3,   3,
@@ -2872,17 +3105,17 @@ u_script =
       3,   3,   3,   3,   3,   3,   3,   3,
       3,   3,   3,   3,   3,   3,   3,   3,
     255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
     255, 255, 255, 255, 255, 255, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -2901,11 +3134,11 @@ u_script =
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   1,
       1,   1,   1,   1,   1,   1,   1,   1,
-      0,   0,   0,   1,   1, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   1,   1,   1,   1, 255,
+      1,   1, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
+      1,   1,   1,   1,   1,   1,   1,   1,
+      1,   1, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -2915,15 +3148,15 @@ u_script =
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255,   1,   1,   1,   1,   1,
+    255, 255,   1,   1,   1,   1,   1,   1,
      58,  58,  58,  58,  58,  58,  58,  58,
      58,  58,  58,  58,  58,  58,  58,  58,
      58,  58,  58,  58,  58,  58,  58,  58,
      58,  58,  58,  58,  58,  58,  58,  58,
      58,  58,  58,  58,  58,  58,  58,  58,
      58,  58,  58,  58, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0, 255, 255, 255, 255, 255, 255,
      64,  64,  64,  64,  64,  64,  64,  64,
      64,  64,  64,  64,  64,  64,  64,  64,
      64,  64,  64,  64,  64,  64,  64,  64,
@@ -2944,10 +3177,10 @@ u_script =
     255, 255, 255, 255, 255, 255,  70,  70,
      70,  70,  70,  70,  70,  70,  70,  70,
      70,  70, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+      9,   9,   9,   9,   9,   9,   9,   9,
+      9,   9,   9,   9,   9,   9,   9,   9,
+      9,   9,   9,   9,   9,   9,   9,   9,
+      9,   9,   9,   9, 255, 255, 255, 255,
      71,  71,  71,  71,  71,  71,  71,  71,
      71,  71,  71,  71,  71,  71,  71,  71,
      71,  71,  71,  71,  71,  71,  71,  71,
@@ -2960,6 +3193,22 @@ u_script =
      72,  72,  72,  72,  72,  72,  72,  72,
      72,  72,  72,  72, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255,  72,
+     24,  24,  24,  24,  24,  24,  24,  24,
+     24,  24,  24,  24,  24,  24,  24,  24,
+     24,  24,  24,  24,  24,  24,  24,  24,
+     24,  24,  24,  24,  24, 255, 255, 255,
+     84,  84,  84,  84,  84,  84,  84,  84,
+     84,  84,  84,  84,  84,  84,  84,  84,
+     84,  84,  84,  84,  84,  84,  84,  84,
+     84,  84,  84,  84,  84,  84,  84,  84,
+     84,  84,  84,  84,  84,  84,  84,  84,
+     84,  84,  84,  84,  84,  84,  84,  84,
+     84,  84,  84,  84,  84,  84,  84,  84,
+     84,  84,  84,  84,  84,  84,  84,  84,
+     84,  84,  84,  84,  84,  84,  84,  84,
+     84,  84,  84,  84,  84,  84, 255,  84,
+     84,  84,  84,  84,  84,  84,  84,  84,
+     84,  84, 255, 255, 255, 255,  84,  84,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -2976,42 +3225,74 @@ u_script =
      76,  76,  76,  76,  76,  76, 255, 255,
      76,  76,  76,  76,  76,  76,  76,  76,
      76,  76, 255, 255,  76,  76,  76,  76,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22,  22,  22,  22,  22,
+     22,  22,  22,  22, 255, 255, 255, 255,
+     78,  78,  78,  78,  78,  78,  78,  78,
+     78,  78,  78,  78,  78,  78,  78,  78,
+     78,  78,  78,  78,  78,  78,  78,  78,
+     78,  78,  78,  78,  78,  78,  78,  78,
+     78,  78,  78,  78,  78,  78,  78,  78,
+     78,  78,  78,  78,  78,  78,  78,  78,
+     78,  78,  78,  78,  78,  78,  78,  78,
+     78,  78,  78,  78,  78,  78,  78,  78,
+     78,  78,  78, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255,  78,  78,  78,  78,  78,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255,  25,  25,  25,  25,  25,  25, 255,
+    255,  25,  25,  25,  25,  25,  25, 255,
+    255,  25,  25,  25,  25,  25,  25, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+     25,  25,  25,  25,  25,  25,  25, 255,
+     25,  25,  25,  25,  25,  25,  25, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+     85,  85,  85,  85,  85,  85,  85,  85,
+     85,  85,  85,  85,  85,  85,  85,  85,
+     85,  85,  85,  85,  85,  85,  85,  85,
+     85,  85,  85,  85,  85,  85,  85,  85,
+     85,  85,  85,  85,  85,  85,  85,  85,
+     85,  85,  85,  85,  85,  85, 255, 255,
+     85,  85,  85,  85,  85,  85,  85,  85,
+     85,  85, 255, 255, 255, 255, 255, 255,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
+     24,  24,  24,  24, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
-     24,  24,  24,  24,  24,  24,  24,  24,
+     24,  24,  24,  24,  24,  24,  24, 255,
+    255, 255, 255,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24,  24,  24,  24,  24,
      24,  24,  24,  24, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
@@ -3025,7 +3306,7 @@ u_script =
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
-     35,  35,  35, 255, 255, 255, 255, 255,
+     35,  35,  35,  35,  35,  35, 255, 255,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
@@ -3066,10 +3347,10 @@ u_script =
       6,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
+      6,   6,   6,   6,   6,   6,   6,   6,
+      6,   6,   6,   6,   6,   6,   6,   6,
       6,   6, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255,   6,   6,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
       6,   6,   6,   6,   6,   6,   6,   6,
@@ -3340,10 +3621,10 @@ u_script =
      51,  51,  51,  51,  51,  51,  51,  51,
      51,  51,  51,  51,  51,  51, 255,  51,
      51, 255, 255, 255,  51, 255, 255,  51,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
-    255, 255, 255, 255, 255, 255, 255, 255,
+     86,  86,  86,  86,  86,  86,  86,  86,
+     86,  86,  86,  86,  86,  86,  86,  86,
+     86,  86,  86,  86,  86,  86, 255,  86,
+     86,  86,  86,  86,  86,  86,  86,  86,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -3351,7 +3632,7 @@ u_script =
      63,  63,  63,  63,  63,  63,  63,  63,
      63,  63,  63,  63,  63,  63,  63,  63,
      63,  63,  63,  63,  63,  63,  63,  63,
-     63,  63, 255, 255, 255, 255, 255,  63,
+     63,  63,  63,  63, 255, 255, 255,  63,
      75,  75,  75,  75,  75,  75,  75,  75,
      75,  75,  75,  75,  75,  75,  75,  75,
      75,  75,  75,  75,  75,  75,  75,  75,
@@ -3376,6 +3657,86 @@ u_script =
     255, 255, 255, 255, 255, 255, 255, 255,
      60,  60,  60,  60,  60,  60,  60,  60,
      60, 255, 255, 255, 255, 255, 255, 255,
+     87,  87,  87,  87,  87,  87,  87,  87,
+     87,  87,  87,  87,  87,  87,  87,  87,
+     87,  87,  87,  87,  87,  87,  87,  87,
+     87,  87,  87,  87,  87,  87,  87,  87,
+     79,  79,  79,  79,  79,  79,  79,  79,
+     79,  79,  79,  79,  79,  79,  79,  79,
+     79,  79,  79,  79,  79,  79,  79,  79,
+     79,  79,  79,  79,  79,  79,  79,  79,
+     79,  79,  79,  79,  79,  79,  79,  79,
+     79,  79,  79,  79,  79,  79,  79,  79,
+     79,  79,  79,  79,  79,  79, 255, 255,
+    255,  79,  79,  79,  79,  79,  79,  79,
+     88,  88,  88,  88,  88,  88,  88,  88,
+     88,  88,  88,  88,  88,  88,  88,  88,
+     88,  88,  88,  88,  88,  88, 255, 255,
+     88,  88,  88,  88,  88,  88,  88,  88,
+     89,  89,  89,  89,  89,  89,  89,  89,
+     89,  89,  89,  89,  89,  89,  89,  89,
+     89,  89,  89, 255, 255, 255, 255, 255,
+     89,  89,  89,  89,  89,  89,  89,  89,
+     90,  90,  90,  90,  90,  90,  90,  90,
+     90,  90,  90,  90,  90,  90,  90,  90,
+     90,  90,  90,  90,  90,  90,  90,  90,
+     90,  90,  90,  90,  90,  90,  90,  90,
+     90,  90,  90,  90,  90,  90,  90,  90,
+     90,  90,  90,  90,  90,  90,  90,  90,
+     90,  90,  90,  90,  90,  90,  90,  90,
+     90,  90,  90,  90,  90,  90,  90,  90,
+     90,  90,  90,  90,  90,  90,  90,  90,
+     90, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      6,   6,   6,   6,   6,   6,   6,   6,
+      6,   6,   6,   6,   6,   6,   6,   6,
+      6,   6,   6,   6,   6,   6,   6,   6,
+      6,   6,   6,   6,   6,   6,   6, 255,
+     93,  93,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93, 255, 255,
+    255, 255,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93,  93,  93,
+     93,  93,  93,  93,  93,  93,  93,  93,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+     91,  91,  91,  91,  91,  91,  91,  91,
+     91,  91,  91,  91,  91,  91,  91,  91,
+     91,  91,  91,  91,  91,  91,  91,  91,
+     91,  91,  91,  91,  91,  91,  91,  91,
+     91,  91,  91,  91,  91,  91,  91,  91,
+     91,  91,  91,  91,  91,  91,  91,  91,
+     91,  91,  91,  91,  91,  91,  91,  91,
+     91,  91,  91,  91,  91,  91,  91,  91,
+     91,  91, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -3428,6 +3789,86 @@ u_script =
     255, 255, 255, 255, 255, 255, 255, 255,
      62,  62,  62,  62, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80,  80,
+     80,  80,  80,  80,  80,  80,  80, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83,  83,  83,  83,  83,  83,  83,  83,
+     83, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+     33,  32, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,
@@ -3608,6 +4049,150 @@ u_script =
       0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0, 255,
+    255,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0, 255,
+    255,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    255,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     32,   0,   0, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0, 255, 255, 255, 255, 255, 255, 255,
+      0,   0, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0, 255,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0, 255,   0,   0,
+      0,   0,   0, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0, 255,
+      0, 255,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    255,   0,   0,   0,   0, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
@@ -3619,6 +4204,38 @@ u_script =
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255,   0,   0,   0,   0,   0,
+    255,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0, 255,   0,   0,   0, 255,   0, 255,
+      0, 255,   0, 255,   0,   0,   0, 255,
+      0,   0,   0,   0,   0,   0, 255, 255,
+      0,   0,   0,   0, 255,   0, 255, 255,
+      0,   0,   0,   0, 255,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0, 255, 255, 255, 255,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
@@ -3639,6 +4256,22 @@ u_script =
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35, 255, 255, 255,
+    255, 255, 255, 255, 255, 255, 255, 255,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
+     35,  35,  35,  35,  35,  35,  35,  35,
      35,  35,  35,  35,  35,  35, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255,
index c3ebfae..6352fdf 100644 (file)
@@ -1,7 +1,7 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Unicode scripts.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
-struct named_script { const char *name; unsigned int index; };
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+struct named_script { int name; unsigned int index; };
 %struct-type
 %language=ANSI-C
 %define hash-function-name scripts_hash
@@ -9,6 +9,8 @@ struct named_script { const char *name; unsigned int index; };
 %readonly-tables
 %global-table
 %define word-array-name script_names
+%pic
+%define string-pool-name script_stringpool
 %%
 Common, 0
 Latin, 1
@@ -87,3 +89,21 @@ Lycian, 73
 Carian, 74
 Lydian, 75
 Cham, 76
+Tai_Tham, 77
+Tai_Viet, 78
+Avestan, 79
+Egyptian_Hieroglyphs, 80
+Samaritan, 81
+Lisu, 82
+Bamum, 83
+Javanese, 84
+Meetei_Mayek, 85
+Imperial_Aramaic, 86
+Old_South_Arabian, 87
+Inscriptional_Parthian, 88
+Inscriptional_Pahlavi, 89
+Old_Turkic, 90
+Kaithi, 91
+Batak, 92
+Brahmi, 93
+Mandaic, 94
index e7a7667..1868bb8 100644 (file)
@@ -1,6 +1,6 @@
 /* ANSI-C code produced by gperf version 3.0.4 */
 /* Command-line: gperf -m 10 ./unictype/scripts_byname.gperf  */
-/* Computed positions: -k'1,3' */
+/* Computed positions: -k'1,3,5' */
 
 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
       && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
 #endif
 
 #line 4 "./unictype/scripts_byname.gperf"
-struct named_script { const char *name; unsigned int index; };
+struct named_script { int name; unsigned int index; };
 
-#define TOTAL_KEYWORDS 77
+#define TOTAL_KEYWORDS 95
 #define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 19
+#define MAX_WORD_LENGTH 22
 #define MIN_HASH_VALUE 2
-#define MAX_HASH_VALUE 92
-/* maximum key range = 91, duplicates = 0 */
+#define MAX_HASH_VALUE 121
+/* maximum key range = 120, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -51,38 +51,42 @@ scripts_hash (register const char *str, register unsigned int len)
 {
   static const unsigned char asso_values[] =
     {
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 53, 14,  3, 29, 27,
-      93, 25,  0, 25, 93, 24,  7, 36, 28,  8,
-      49, 93, 54,  7, 11, 64, 32, 93, 93,  0,
-      93, 93, 93, 93, 93, 57, 93,  3, 52, 59,
-      29, 39, 52, 22, 42, 39, 24, 93,  6, 20,
-       0, 33, 17, 93,  0, 32, 22,  2, 28, 26,
-      93, 31, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
-      93, 93, 93, 93, 93, 93
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122,  48,   4,  10,  48,  30,
+      122,  28,  35,  19,  52,  26,  20,  46,  64,  11,
+       37, 122,  52,   8,   0,   3,  70, 122, 122,   0,
+      122, 122, 122, 122, 122,  56, 122,   0,  34,  44,
+        8,  11,   0,   1,  19,  12,  25,  21,   0,   8,
+        4,  22,  11, 122,   8,  29,  42,  31,  31,  16,
+      122,  29, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+      122, 122, 122, 122, 122, 122
     };
   register int hval = len;
 
   switch (hval)
     {
       default:
+        hval += asso_values[(unsigned char)str[4]];
+      /*FALLTHROUGH*/
+      case 4:
+      case 3:
         hval += asso_values[(unsigned char)str[2]];
       /*FALLTHROUGH*/
       case 2:
@@ -93,167 +97,404 @@ scripts_hash (register const char *str, register unsigned int len)
   return hval;
 }
 
+struct script_stringpool_t
+  {
+    char script_stringpool_str2[sizeof("Yi")];
+    char script_stringpool_str4[sizeof("Thai")];
+    char script_stringpool_str7[sizeof("Telugu")];
+    char script_stringpool_str8[sizeof("Tagalog")];
+    char script_stringpool_str9[sizeof("Tagbanwa")];
+    char script_stringpool_str10[sizeof("Thaana")];
+    char script_stringpool_str11[sizeof("Braille")];
+    char script_stringpool_str12[sizeof("Tifinagh")];
+    char script_stringpool_str13[sizeof("Tamil")];
+    char script_stringpool_str14[sizeof("Cham")];
+    char script_stringpool_str15[sizeof("Bengali")];
+    char script_stringpool_str16[sizeof("Balinese")];
+    char script_stringpool_str17[sizeof("Buginese")];
+    char script_stringpool_str18[sizeof("Brahmi")];
+    char script_stringpool_str19[sizeof("Sinhala")];
+    char script_stringpool_str20[sizeof("Tai_Tham")];
+    char script_stringpool_str21[sizeof("Sundanese")];
+    char script_stringpool_str22[sizeof("Syriac")];
+    char script_stringpool_str23[sizeof("Ugaritic")];
+    char script_stringpool_str24[sizeof("Carian")];
+    char script_stringpool_str25[sizeof("Bamum")];
+    char script_stringpool_str26[sizeof("Cyrillic")];
+    char script_stringpool_str27[sizeof("Shavian")];
+    char script_stringpool_str28[sizeof("Oriya")];
+    char script_stringpool_str29[sizeof("Old_Turkic")];
+    char script_stringpool_str30[sizeof("Osmanya")];
+    char script_stringpool_str31[sizeof("Bopomofo")];
+    char script_stringpool_str32[sizeof("Linear_B")];
+    char script_stringpool_str33[sizeof("Samaritan")];
+    char script_stringpool_str34[sizeof("Lydian")];
+    char script_stringpool_str35[sizeof("Cuneiform")];
+    char script_stringpool_str36[sizeof("Buhid")];
+    char script_stringpool_str37[sizeof("Kannada")];
+    char script_stringpool_str38[sizeof("Tai_Le")];
+    char script_stringpool_str39[sizeof("Coptic")];
+    char script_stringpool_str40[sizeof("Cypriot")];
+    char script_stringpool_str41[sizeof("Canadian_Aboriginal")];
+    char script_stringpool_str42[sizeof("Han")];
+    char script_stringpool_str43[sizeof("Ogham")];
+    char script_stringpool_str44[sizeof("Old_South_Arabian")];
+    char script_stringpool_str45[sizeof("Lao")];
+    char script_stringpool_str46[sizeof("Common")];
+    char script_stringpool_str47[sizeof("Khmer")];
+    char script_stringpool_str48[sizeof("Old_Italic")];
+    char script_stringpool_str49[sizeof("Saurashtra")];
+    char script_stringpool_str50[sizeof("Hanunoo")];
+    char script_stringpool_str51[sizeof("Cherokee")];
+    char script_stringpool_str52[sizeof("Hiragana")];
+    char script_stringpool_str53[sizeof("Lisu")];
+    char script_stringpool_str54[sizeof("Imperial_Aramaic")];
+    char script_stringpool_str55[sizeof("Inherited")];
+    char script_stringpool_str56[sizeof("Lepcha")];
+    char script_stringpool_str57[sizeof("Mandaic")];
+    char script_stringpool_str58[sizeof("Kharoshthi")];
+    char script_stringpool_str59[sizeof("Georgian")];
+    char script_stringpool_str60[sizeof("Glagolitic")];
+    char script_stringpool_str61[sizeof("Myanmar")];
+    char script_stringpool_str62[sizeof("Syloti_Nagri")];
+    char script_stringpool_str63[sizeof("Kaithi")];
+    char script_stringpool_str64[sizeof("Limbu")];
+    char script_stringpool_str65[sizeof("Greek")];
+    char script_stringpool_str66[sizeof("Arabic")];
+    char script_stringpool_str67[sizeof("Old_Persian")];
+    char script_stringpool_str68[sizeof("Armenian")];
+    char script_stringpool_str69[sizeof("Gujarati")];
+    char script_stringpool_str70[sizeof("Lycian")];
+    char script_stringpool_str71[sizeof("Latin")];
+    char script_stringpool_str72[sizeof("Batak")];
+    char script_stringpool_str73[sizeof("Phoenician")];
+    char script_stringpool_str74[sizeof("Phags_Pa")];
+    char script_stringpool_str75[sizeof("Gurmukhi")];
+    char script_stringpool_str76[sizeof("Hangul")];
+    char script_stringpool_str77[sizeof("Inscriptional_Pahlavi")];
+    char script_stringpool_str78[sizeof("Inscriptional_Parthian")];
+    char script_stringpool_str79[sizeof("Ethiopic")];
+    char script_stringpool_str80[sizeof("Meetei_Mayek")];
+    char script_stringpool_str81[sizeof("Mongolian")];
+    char script_stringpool_str82[sizeof("Kayah_Li")];
+    char script_stringpool_str83[sizeof("Tibetan")];
+    char script_stringpool_str84[sizeof("Malayalam")];
+    char script_stringpool_str85[sizeof("Vai")];
+    char script_stringpool_str86[sizeof("Hebrew")];
+    char script_stringpool_str87[sizeof("Rejang")];
+    char script_stringpool_str88[sizeof("Gothic")];
+    char script_stringpool_str89[sizeof("Nko")];
+    char script_stringpool_str90[sizeof("Tai_Viet")];
+    char script_stringpool_str91[sizeof("New_Tai_Lue")];
+    char script_stringpool_str92[sizeof("Deseret")];
+    char script_stringpool_str93[sizeof("Devanagari")];
+    char script_stringpool_str94[sizeof("Ol_Chiki")];
+    char script_stringpool_str95[sizeof("Javanese")];
+    char script_stringpool_str97[sizeof("Katakana")];
+    char script_stringpool_str105[sizeof("Runic")];
+    char script_stringpool_str108[sizeof("Avestan")];
+    char script_stringpool_str121[sizeof("Egyptian_Hieroglyphs")];
+  };
+static const struct script_stringpool_t script_stringpool_contents =
+  {
+    "Yi",
+    "Thai",
+    "Telugu",
+    "Tagalog",
+    "Tagbanwa",
+    "Thaana",
+    "Braille",
+    "Tifinagh",
+    "Tamil",
+    "Cham",
+    "Bengali",
+    "Balinese",
+    "Buginese",
+    "Brahmi",
+    "Sinhala",
+    "Tai_Tham",
+    "Sundanese",
+    "Syriac",
+    "Ugaritic",
+    "Carian",
+    "Bamum",
+    "Cyrillic",
+    "Shavian",
+    "Oriya",
+    "Old_Turkic",
+    "Osmanya",
+    "Bopomofo",
+    "Linear_B",
+    "Samaritan",
+    "Lydian",
+    "Cuneiform",
+    "Buhid",
+    "Kannada",
+    "Tai_Le",
+    "Coptic",
+    "Cypriot",
+    "Canadian_Aboriginal",
+    "Han",
+    "Ogham",
+    "Old_South_Arabian",
+    "Lao",
+    "Common",
+    "Khmer",
+    "Old_Italic",
+    "Saurashtra",
+    "Hanunoo",
+    "Cherokee",
+    "Hiragana",
+    "Lisu",
+    "Imperial_Aramaic",
+    "Inherited",
+    "Lepcha",
+    "Mandaic",
+    "Kharoshthi",
+    "Georgian",
+    "Glagolitic",
+    "Myanmar",
+    "Syloti_Nagri",
+    "Kaithi",
+    "Limbu",
+    "Greek",
+    "Arabic",
+    "Old_Persian",
+    "Armenian",
+    "Gujarati",
+    "Lycian",
+    "Latin",
+    "Batak",
+    "Phoenician",
+    "Phags_Pa",
+    "Gurmukhi",
+    "Hangul",
+    "Inscriptional_Pahlavi",
+    "Inscriptional_Parthian",
+    "Ethiopic",
+    "Meetei_Mayek",
+    "Mongolian",
+    "Kayah_Li",
+    "Tibetan",
+    "Malayalam",
+    "Vai",
+    "Hebrew",
+    "Rejang",
+    "Gothic",
+    "Nko",
+    "Tai_Viet",
+    "New_Tai_Lue",
+    "Deseret",
+    "Devanagari",
+    "Ol_Chiki",
+    "Javanese",
+    "Katakana",
+    "Runic",
+    "Avestan",
+    "Egyptian_Hieroglyphs"
+  };
+#define script_stringpool ((const char *) &script_stringpool_contents)
+
 static const struct named_script script_names[] =
   {
-    {""}, {""},
-#line 49 "./unictype/scripts_byname.gperf"
-    {"Yi", 36},
-#line 48 "./unictype/scripts_byname.gperf"
-    {"Han", 35},
-    {""}, {""},
-#line 37 "./unictype/scripts_byname.gperf"
-    {"Hangul", 24},
-#line 55 "./unictype/scripts_byname.gperf"
-    {"Hanunoo", 42},
-#line 45 "./unictype/scripts_byname.gperf"
-    {"Hiragana", 32},
-#line 87 "./unictype/scripts_byname.gperf"
-    {"Carian", 74},
-#line 89 "./unictype/scripts_byname.gperf"
-    {"Cham", 76},
-#line 16 "./unictype/scripts_byname.gperf"
-    {"Cyrillic", 3},
-#line 75 "./unictype/scripts_byname.gperf"
-    {"Cuneiform", 62},
-#line 20 "./unictype/scripts_byname.gperf"
-    {"Syriac", 7},
-#line 31 "./unictype/scripts_byname.gperf"
-    {"Sinhala", 18},
-#line 60 "./unictype/scripts_byname.gperf"
-    {"Linear_B", 47},
-#line 79 "./unictype/scripts_byname.gperf"
-    {"Sundanese", 66},
-#line 62 "./unictype/scripts_byname.gperf"
-    {"Shavian", 49},
-#line 32 "./unictype/scripts_byname.gperf"
-    {"Thai", 19},
-#line 83 "./unictype/scripts_byname.gperf"
-    {"Saurashtra", 70},
-#line 21 "./unictype/scripts_byname.gperf"
-    {"Thaana", 8},
+    {-1}, {-1},
+#line 51 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str2, 36},
+    {-1},
+#line 34 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str4, 19},
+    {-1}, {-1},
+#line 30 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str7, 15},
+#line 56 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str8, 41},
+#line 59 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str9, 44},
 #line 23 "./unictype/scripts_byname.gperf"
-    {"Bengali", 10},
-#line 40 "./unictype/scripts_byname.gperf"
-    {"Canadian_Aboriginal", 27},
-#line 28 "./unictype/scripts_byname.gperf"
-    {"Telugu", 15},
-#line 65 "./unictype/scripts_byname.gperf"
-    {"Braille", 52},
-#line 71 "./unictype/scripts_byname.gperf"
-    {"Syloti_Nagri", 58},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str10, 8},
 #line 67 "./unictype/scripts_byname.gperf"
-    {"Coptic", 54},
-#line 64 "./unictype/scripts_byname.gperf"
-    {"Cypriot", 51},
-#line 74 "./unictype/scripts_byname.gperf"
-    {"Balinese", 61},
-#line 13 "./unictype/scripts_byname.gperf"
-    {"Common", 0},
-#line 80 "./unictype/scripts_byname.gperf"
-    {"Lepcha", 67},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str11, 52},
+#line 72 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str12, 57},
 #line 29 "./unictype/scripts_byname.gperf"
-    {"Kannada", 16},
-#line 58 "./unictype/scripts_byname.gperf"
-    {"Limbu", 45},
-#line 24 "./unictype/scripts_byname.gperf"
-    {"Gurmukhi", 11},
-#line 14 "./unictype/scripts_byname.gperf"
-    {"Latin", 1},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str13, 14},
+#line 91 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str14, 76},
+#line 25 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str15, 10},
+#line 76 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str16, 61},
+#line 68 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str17, 53},
+#line 108 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str18, 93},
+#line 33 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str19, 18},
+#line 92 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str20, 77},
+#line 81 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str21, 66},
+#line 22 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str22, 7},
 #line 63 "./unictype/scripts_byname.gperf"
-    {"Osmanya", 50},
-#line 27 "./unictype/scripts_byname.gperf"
-    {"Tamil", 14},
-#line 73 "./unictype/scripts_byname.gperf"
-    {"Kharoshthi", 60},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str23, 48},
+#line 89 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str24, 74},
+#line 98 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str25, 83},
+#line 18 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str26, 3},
+#line 64 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str27, 49},
+#line 28 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str28, 13},
+#line 105 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str29, 90},
+#line 65 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str30, 50},
+#line 49 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str31, 34},
+#line 62 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str32, 47},
+#line 96 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str33, 81},
+#line 90 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str34, 75},
+#line 77 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str35, 62},
+#line 58 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str36, 43},
+#line 31 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str37, 16},
+#line 61 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str38, 46},
 #line 69 "./unictype/scripts_byname.gperf"
-    {"Glagolitic", 56},
-#line 47 "./unictype/scripts_byname.gperf"
-    {"Bopomofo", 34},
-#line 54 "./unictype/scripts_byname.gperf"
-    {"Tagalog", 41},
-#line 57 "./unictype/scripts_byname.gperf"
-    {"Tagbanwa", 44},
-#line 88 "./unictype/scripts_byname.gperf"
-    {"Lydian", 75},
-#line 33 "./unictype/scripts_byname.gperf"
-    {"Lao", 20},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str39, 54},
 #line 66 "./unictype/scripts_byname.gperf"
-    {"Buginese", 53},
-#line 44 "./unictype/scripts_byname.gperf"
-    {"Mongolian", 31},
-#line 35 "./unictype/scripts_byname.gperf"
-    {"Myanmar", 22},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str40, 51},
+#line 42 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str41, 27},
 #line 50 "./unictype/scripts_byname.gperf"
-    {"Old_Italic", 37},
-#line 72 "./unictype/scripts_byname.gperf"
-    {"Old_Persian", 59},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str42, 35},
 #line 43 "./unictype/scripts_byname.gperf"
-    {"Khmer", 30},
-#line 39 "./unictype/scripts_byname.gperf"
-    {"Cherokee", 26},
-#line 30 "./unictype/scripts_byname.gperf"
-    {"Malayalam", 17},
-#line 26 "./unictype/scripts_byname.gperf"
-    {"Oriya", 13},
-#line 51 "./unictype/scripts_byname.gperf"
-    {"Gothic", 38},
-#line 46 "./unictype/scripts_byname.gperf"
-    {"Katakana", 33},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str43, 28},
+#line 102 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str44, 87},
+#line 35 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str45, 20},
+#line 15 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str46, 0},
+#line 45 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str47, 30},
+#line 52 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str48, 37},
+#line 85 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str49, 70},
+#line 57 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str50, 42},
 #line 41 "./unictype/scripts_byname.gperf"
-    {"Ogham", 28},
-#line 59 "./unictype/scripts_byname.gperf"
-    {"Tai_Le", 46},
-#line 25 "./unictype/scripts_byname.gperf"
-    {"Gujarati", 12},
-#line 18 "./unictype/scripts_byname.gperf"
-    {"Hebrew", 5},
-#line 42 "./unictype/scripts_byname.gperf"
-    {"Runic", 29},
-#line 77 "./unictype/scripts_byname.gperf"
-    {"Phags_Pa", 64},
-#line 56 "./unictype/scripts_byname.gperf"
-    {"Buhid", 43},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str51, 26},
+#line 47 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str52, 32},
+#line 97 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str53, 82},
+#line 101 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str54, 86},
+#line 55 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str55, 40},
+#line 82 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str56, 67},
+#line 109 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str57, 94},
+#line 75 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str58, 60},
+#line 38 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str59, 23},
+#line 71 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str60, 56},
+#line 37 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str61, 22},
+#line 73 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str62, 58},
+#line 106 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str63, 91},
+#line 60 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str64, 45},
+#line 17 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str65, 2},
+#line 21 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str66, 6},
+#line 74 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str67, 59},
 #line 19 "./unictype/scripts_byname.gperf"
-    {"Arabic", 6},
-#line 84 "./unictype/scripts_byname.gperf"
-    {"Kayah_Li", 71},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str68, 4},
+#line 27 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str69, 12},
+#line 88 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str70, 73},
+#line 16 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str71, 1},
+#line 107 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str72, 92},
 #line 78 "./unictype/scripts_byname.gperf"
-    {"Nko", 65},
-#line 68 "./unictype/scripts_byname.gperf"
-    {"New_Tai_Lue", 55},
-#line 36 "./unictype/scripts_byname.gperf"
-    {"Georgian", 23},
-#line 22 "./unictype/scripts_byname.gperf"
-    {"Devanagari", 9},
-#line 52 "./unictype/scripts_byname.gperf"
-    {"Deseret", 39},
-#line 15 "./unictype/scripts_byname.gperf"
-    {"Greek", 2},
-#line 34 "./unictype/scripts_byname.gperf"
-    {"Tibetan", 21},
-#line 70 "./unictype/scripts_byname.gperf"
-    {"Tifinagh", 57},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str73, 63},
+#line 79 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str74, 64},
+#line 26 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str75, 11},
+#line 39 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str76, 24},
+#line 104 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str77, 89},
+#line 103 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str78, 88},
+#line 40 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str79, 25},
+#line 100 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str80, 85},
+#line 46 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str81, 31},
 #line 86 "./unictype/scripts_byname.gperf"
-    {"Lycian", 73},
-#line 81 "./unictype/scripts_byname.gperf"
-    {"Ol_Chiki", 68},
-#line 82 "./unictype/scripts_byname.gperf"
-    {"Vai", 69},
-#line 61 "./unictype/scripts_byname.gperf"
-    {"Ugaritic", 48},
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str82, 71},
+#line 36 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str83, 21},
+#line 32 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str84, 17},
+#line 84 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str85, 69},
+#line 20 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str86, 5},
+#line 87 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str87, 72},
 #line 53 "./unictype/scripts_byname.gperf"
-    {"Inherited", 40},
-#line 38 "./unictype/scripts_byname.gperf"
-    {"Ethiopic", 25},
-    {""}, {""}, {""},
-#line 17 "./unictype/scripts_byname.gperf"
-    {"Armenian", 4},
-    {""}, {""},
-#line 85 "./unictype/scripts_byname.gperf"
-    {"Rejang", 72},
-    {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 76 "./unictype/scripts_byname.gperf"
-    {"Phoenician", 63}
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str88, 38},
+#line 80 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str89, 65},
+#line 93 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str90, 78},
+#line 70 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str91, 55},
+#line 54 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str92, 39},
+#line 24 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str93, 9},
+#line 83 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str94, 68},
+#line 99 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str95, 84},
+    {-1},
+#line 48 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str97, 33},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 44 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str105, 29},
+    {-1}, {-1},
+#line 94 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str108, 79},
+    {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+    {-1}, {-1}, {-1},
+#line 95 "./unictype/scripts_byname.gperf"
+    {(int)(long)&((struct script_stringpool_t *)0)->script_stringpool_str121, 80}
   };
 
 #ifdef __GNUC__
@@ -271,10 +512,14 @@ uc_script_lookup (register const char *str, register unsigned int len)
 
       if (key <= MAX_HASH_VALUE && key >= 0)
         {
-          register const char *s = script_names[key].name;
+          register int o = script_names[key].name;
+          if (o >= 0)
+            {
+              register const char *s = o + script_stringpool;
 
-          if (*str == *s && !strcmp (str + 1, s + 1))
-            return &script_names[key];
+              if (*str == *s && !strcmp (str + 1, s + 1))
+                return &script_names[key];
+            }
         }
     }
   return 0;
index 3d89841..a0b780d 100644 (file)
@@ -1,5 +1,5 @@
 /* Syntax properties of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
index 74d96ed..387aeed 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Language syntax properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define identsyntax_header_0 12
 #define identsyntax_header_1 14
 #define identsyntax_header_2 7
index 989838f..2144732 100644 (file)
@@ -1,5 +1,5 @@
 /* Syntax properties of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
index 1defc2b..e2feac8 100644 (file)
@@ -1,5 +1,5 @@
 /* Syntax properties of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
index bad2b03..46decd6 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Language syntax properties of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 #define identsyntax_header_0 12
 #define identsyntax_header_1 225
 #define identsyntax_header_2 7
@@ -10,18 +10,18 @@ static const
 struct
   {
     int level1[225];
-    short level2[16 << 5];
-    unsigned short level3[113 * 16];
+    short level2[21 << 5];
+    unsigned short level3[126 * 16];
   }
 u_java_ident =
 {
   {
         0,    32,    64,    96,   128,   160,   160,   160,
       160,   192,   224,   160,   160,   256,    -1,   288,
-      320,    -1,   352,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   384,    -1,    -1,
+      320,   352,   384,   416,    -1,    -1,   448,    -1,
+       -1,    -1,    -1,   480,    -1,   512,    -1,    -1,
       160,   160,   160,   160,   160,   160,   160,   160,
-      160,   160,   416,    -1,    -1,    -1,    -1,   448,
+      160,   160,   544,   576,    -1,    -1,    -1,   608,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -44,29 +44,29 @@ u_java_ident =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      480
+      640
   },
   {
         0,   128,   256,   256,   256,   384,   512,   640,
       256,   768,   896,  1024,  1152,  1280,  1408,  1536,
-       -1,    -1,  1664,  1792,  1920,  2048,  2176,  2304,
-     2432,  2560,  2688,  2816,  2944,  3072,  3200,  3328,
-     3456,  3584,  3712,  3840,  3968,  4096,  4224,  4352,
-     4480,   256,   256,   256,  4608,  4736,  4864,  4992,
-     5120,  5248,  5376,  5504,  5632,    -1,  5760,  5888,
-     6016,    -1,   256,  6144,   256,   256,  6272,  6400,
-     6528,  6656,  6784,  6912,    -1,    -1,    -1,    -1,
+     1664,    -1,  1792,  1920,  2048,  2176,  2304,  2432,
+     2560,  2688,  2816,  2944,  3072,  3200,  3328,  3456,
+     3584,  3712,   256,   256,  3840,  3968,  4096,  4224,
+     4352,   256,   256,   256,  4480,  4608,  4736,  4864,
+     4992,  5120,  5248,  5376,  5504,  5632,  5760,  5888,
+     6016,  6144,   256,  6272,   256,   256,  6400,  6528,
+     6656,  6784,  6912,  7040,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     7040,  7168,  7296,  7424,  7552,    -1,    -1,    -1,
-     7680,  7808,  7936,  8064,    -1,    -1,    -1,    -1,
+     7168,  7296,  7424,  7552,  7680,    -1,    -1,    -1,
+     7808,  7936,  8064,  8192,    -1,    -1,    -1,    -1,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,   256,   256,  8192,   256,   256,   256,   256,
+      256,   256,   256,  8320,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
@@ -74,40 +74,60 @@ u_java_ident =
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,   256,   256,   256,   256,   256,   256,  8320,
+      256,   256,   256,   256,   256,   256,   256,  8448,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,  8448,   256,   256,  8576,  8704,  8832,  8960,
-     9088,  9216,  9344,    -1,  9472,    -1,    -1,    -1,
+      256,  8576,   256,   256,  8704,  8832,  8960,  9088,
+     9216,  9344,  9472,  9600,  9728,  9856,  9984, 10112,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,   256,   256,   256,   256,   256,   256,  9600,
+      256,   256,   256,   256,   256,   256,   256, 10240,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   256,   256,  9728,  9856,  9984, 10112,
-      256,   256, 10240, 10368, 10496, 10624, 10752, 10880,
-    11008, 11136, 11264, 11392,    -1, 11520, 11648, 11776,
-      256, 11904,    -1,    -1,    -1,    -1,    -1,    -1,
-    12032,    -1, 12160,    -1, 12288,    -1,    -1,    -1,
+       -1,    -1,   256,   256, 10368, 10496, 10624, 10752,
+      256,   256, 10880, 11008, 11136, 11264, 11392, 11520,
+    11648, 11776, 11904, 12032,    -1, 12160, 12288, 12416,
+      256, 12544,    -1,    -1,    -1,    -1,    -1,    -1,
+    12672,    -1, 12800,    -1, 12928,    -1, 13056,    -1,
+    13184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    13312, 13440,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      256,   256,   256,   256,   256,   256, 12416,    -1,
-    12544,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1, 12672, 12800, 12928,    -1,    -1,    -1,
-    13056, 13184, 13312,   256,   256, 13440, 13568, 13696,
+      256,   256,   256,   256,   256,   256, 13568,    -1,
+    13696,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,   256,   256,   256,   256, 13824,    -1,    -1,
+    13824,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       256,   256,   256,   256, 13952,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    14080,    -1, 14208, 14336,    -1,    -1,    -1,    -1,
+    14080,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1, 14208, 14336, 14464,    -1,    -1,    -1,
+    14592, 14720, 14848,   256,   256, 14976, 15104, 15232,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256,   256,   256,   256,   256,   256,   256,   256,
+      256,   256,   256,   256,   256, 15360,   256,   256,
+      256,   256,   256,   256,   256,   256,   256,   256,
+      256,   256,   256,   256,   256,   256,   256,   256,
+      256,   256,   256,   256,   256,   256,   256,   256,
+      256,   256,   256,   256,   256,   256, 15488,   256,
+    15616,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256,   256,   256,   256, 15616,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    15744,    -1, 15872, 16000,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1
@@ -127,22 +147,24 @@ u_java_ident =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2000, 0x0000,
     0x5560, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa, 0x0002, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaaa, 0x0002, 0x0000,
     0x0000, 0x0000, 0x8000, 0xaaa2, 0x0002, 0x0000, 0x0000, 0x0000,
     0x0000, 0xaaaa, 0x5556, 0x5555, 0x5555, 0x5555, 0x5555, 0x6555,
     0x6596, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xaa80, 0xaa80, 0xaaaa,
-    0xaaff, 0xaa2a, 0x5555, 0xaa95, 0x0002, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x5540, 0x5555, 0x9555, 0x5555, 0x0aa5, 0x0001, 0x0000,
+    0xaaff, 0xaa2a, 0x5555, 0xaa95, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x5540, 0x5555, 0x5555, 0x5555, 0x0aa5, 0x0001, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x5200, 0x6d55, 0x4155, 0x0559, 0x5555, 0x2805,
     0xaaaa, 0xeaaa, 0x0004, 0x0000, 0x0000, 0x0000, 0x5555, 0x5555,
     0x5555, 0x0295, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x5000, 0x5555, 0xaaa1, 0xaaaa,
     0x5555, 0x0005, 0x0000, 0x0000, 0x0000, 0x5540, 0xa055, 0xaa8a,
-    0x0056, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x51a0,
-    0x5555, 0xa555, 0xa954, 0x0000, 0x5a50, 0x5555, 0xaa82, 0x002a,
+    0x0000, 0x0000, 0x5000, 0x5545, 0x5455, 0xa554, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0xaa54, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0055, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5150,
+    0x5555, 0x5555, 0x5554, 0x0000, 0x5a50, 0x5555, 0x0002, 0x0002,
     0x0256, 0x2800, 0x0028, 0x0000, 0x0000, 0x0008, 0x0a88, 0x51a0,
-    0x6955, 0x8569, 0x6aaa, 0x20aa, 0x5a50, 0x5555, 0xaa00, 0xaaaa,
+    0x6955, 0x8569, 0x6aaa, 0x20aa, 0x5a50, 0x5555, 0xaa00, 0xaa2a,
     0x0256, 0x2a80, 0x0028, 0x0000, 0x0000, 0x0008, 0x8208, 0x59a0,
     0x6a95, 0xa569, 0xaaa6, 0x8802, 0x5aaa, 0x5555, 0xa405, 0xaaaa,
     0x0256, 0x2000, 0x0020, 0x0000, 0x0000, 0x0008, 0x0208, 0x51a0,
@@ -154,9 +176,9 @@ u_java_ident =
     0x0256, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0200, 0x52a0,
     0x5955, 0xa559, 0x96aa, 0xaaa0, 0x5a50, 0x5555, 0xaaaa, 0xaaaa,
     0x025a, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0200, 0x51a0,
-    0x5955, 0xa559, 0x96aa, 0x8aaa, 0x5a50, 0x5555, 0xaaaa, 0xaaaa,
-    0x025a, 0x0800, 0x0008, 0x0000, 0x0000, 0x0008, 0x0000, 0x52a0,
-    0x5955, 0xa559, 0x6aaa, 0xaaaa, 0x5a50, 0x5555, 0xaaaa, 0x000a,
+    0x5955, 0xa559, 0x96aa, 0x8aaa, 0x5a50, 0x5555, 0xaa82, 0xaaaa,
+    0x025a, 0x0800, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x5280,
+    0x5955, 0x8559, 0x6aaa, 0xaaaa, 0x5a50, 0x5555, 0xaaaa, 0x000a,
     0x025a, 0x0000, 0x8000, 0x000a, 0x0000, 0x0000, 0x0020, 0xa200,
     0x8000, 0x6a9a, 0x9955, 0x5555, 0xaaaa, 0xaaaa, 0xaa5a, 0xaaaa,
     0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5504, 0x2a95,
@@ -165,28 +187,24 @@ u_java_ident =
     0x8800, 0xa555, 0x5555, 0xa0a5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaa8, 0xaaaa, 0xaaaa, 0xaaa5, 0x5555, 0xaaa5, 0x66aa, 0x5aa6,
     0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0xa800, 0x5556, 0x5555,
-    0x5955, 0xaa00, 0x5555, 0x5556, 0x5555, 0x5555, 0x5555, 0xa955,
+    0x5955, 0x5400, 0x5555, 0x5556, 0x5555, 0x5555, 0x5555, 0xa955,
     0x9aaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5540, 0x5555, 0x1555,
     0x5555, 0xaaa5, 0x5000, 0x5005, 0x4151, 0x0555, 0x0154, 0x0000,
-    0x5550, 0x4555, 0x5555, 0xaaa5, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x5550, 0x4555, 0x5555, 0xa555, 0x0000, 0x0000, 0x0000, 0x0000,
     0xa000, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa880,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x2aa0, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0xaa80, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaa0,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0xa008, 0x8000, 0xa008, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0xa008, 0x0000, 0x0000, 0x0000, 0x0000, 0xa008, 0x8000,
     0xa008, 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0xa008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x6a80, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x5680, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0xaaaa,
     0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2800, 0x8000, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2800, 0x0000, 0x0000,
     0x0002, 0x0000, 0x0000, 0xaa80, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0a80, 0xaaa8, 0xaaaa,
     0x0000, 0x0800, 0xa950, 0xaaaa, 0x0000, 0x0000, 0xa950, 0xaaaa,
@@ -195,40 +213,44 @@ u_java_ident =
     0x5555, 0x5555, 0x2a55, 0xa42a, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa,
     0xaaaa, 0xa56a, 0x5555, 0xaaa5, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaaa,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa84, 0xaaaa, 0xaaaa,
-    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa84, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0xa800, 0x5555, 0xaa55, 0x5555, 0xaa55,
     0x5aaa, 0x5555, 0x0000, 0x0000, 0x0000, 0xa000, 0xa800, 0xaaaa,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaa0, 0x5555, 0x5555,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0x5555, 0x5555,
     0x0001, 0xaaa5, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
-    0x0000, 0x0000, 0x4000, 0xaa55, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x4000, 0xaa55, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x5400, 0x9555, 0x5555, 0x5555, 0x5555, 0x6955,
+    0x5555, 0xaaa5, 0x5555, 0xaaa5, 0x2aaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0155, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5500, 0x5555,
     0x0155, 0xaa00, 0x5555, 0xaaa5, 0xaaaa, 0x556a, 0xaa55, 0xaaaa,
     0x0015, 0x0000, 0x0000, 0x0000, 0x5554, 0x0a95, 0x5555, 0xaaa5,
-    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x5000, 0x5555, 0xaa55, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x5500, 0x5555, 0x5555, 0xaaaa,
     0x5555, 0x02a5, 0x5555, 0x0005, 0x0000, 0x0000, 0x0000, 0xa000,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0xaaaa, 0xaaaa, 0x5595, 0x5555, 0x5555, 0x0401, 0xaa90, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x5555, 0x5555, 0x5555, 0x5555, 0x9555, 0xaaaa, 0xaaaa, 0x5aaa,
+    0x5555, 0x5555, 0x5555, 0x5555, 0x9555, 0xaaaa, 0xaaaa, 0x55aa,
     0x0000, 0x0000, 0xa000, 0xa000, 0x0000, 0x0000, 0x0000, 0x0000,
     0xa000, 0xa000, 0x0000, 0x2222, 0x0000, 0x0000, 0x0000, 0xa000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0800, 0x8800,
     0x080a, 0xa800, 0x0a00, 0xaa00, 0x0000, 0xa800, 0x080a, 0xa800,
     0xaaaa, 0xffea, 0xaaaa, 0xaaaa, 0xaaaa, 0xbffa, 0xaaaa, 0x2aaa,
     0xaaa8, 0xaaaa, 0xa8aa, 0xaaaa, 0xabff, 0xfffa, 0xaaa2, 0x2aaa,
-    0xaaaa, 0xaaaa, 0xa800, 0xaaaa, 0x0000, 0x0000, 0xa000, 0xaaaa,
+    0xaaaa, 0xaaaa, 0x0000, 0xa800, 0x0000, 0x0000, 0x0000, 0xaaa0,
     0xaaaa, 0xaaaa, 0x5555, 0xa955, 0x56a6, 0x5555, 0xaaa9, 0xaaaa,
     0x2a8a, 0x000a, 0xa200, 0xa002, 0x88aa, 0x2008, 0x0000, 0x00a0,
     0x02aa, 0x8aa0, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0xaaa8, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000, 0x0002, 0xa000,
+    0x0000, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0x402a, 0xaaa5, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x2aaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x2aaa, 0xaaaa, 0x6aaa,
     0x0000, 0x0000, 0x8000, 0xaaaa, 0x8000, 0x8000, 0x8000, 0x8000,
     0x8000, 0x8000, 0x8000, 0x8000, 0x5555, 0x5555, 0x5555, 0x5555,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x2aaa, 0xaaaa, 0xaaaa,
@@ -239,34 +261,42 @@ u_java_ident =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080,
     0x02aa, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x0002, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x8000, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xaaaa,
+    0x0000, 0x8000, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xaa80,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0xaa00, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0xaa00, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0xa800, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
-    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000,
     0x0000, 0xa800, 0x0000, 0x0000, 0x5555, 0xaa05, 0xaaaa, 0xaaaa,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x4000, 0xaaaa, 0x25aa,
-    0x0000, 0x0000, 0x0000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
-    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0xaaaa, 0x25aa,
+    0x0000, 0x0000, 0x0000, 0xaaaa, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaa5, 0xaaaa,
     0xaaaa, 0xaaaa, 0x2aaa, 0x0000, 0x000a, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0xa828, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
-    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x002a,
-    0x1010, 0x0040, 0x0000, 0x0000, 0x5540, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x8028, 0xaaa0, 0xaaaa, 0x0000, 0xaaa0, 0xaaaa, 0xaaaa,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x000a,
+    0x1010, 0x0040, 0x0000, 0x0000, 0x5540, 0xaaaa, 0xaaaa, 0xaaa8,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa,
     0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5500, 0x5555,
-    0xa955, 0xaaaa, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0xa955, 0xaaaa, 0x5555, 0xaaa5, 0x5555, 0x5555, 0x0005, 0xaa2a,
     0x5555, 0x0005, 0x0000, 0x0000, 0x5000, 0xa555, 0x0000, 0x0000,
-    0x4000, 0x5555, 0xaa55, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x4000, 0x5555, 0xaa55, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xa800,
+    0x0055, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5540, 0x5555,
+    0xaaa9, 0x2aaa, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5554, 0x9555, 0xaaaa,
-    0x0040, 0xa500, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
-    0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0040, 0xa500, 0x5555, 0xaaa5, 0x0000, 0x0000, 0x8000, 0xaa4a,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4151, 0x5001,
+    0xaa84, 0xaaaa, 0xaaaa, 0xa02a, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x8002, 0x8002, 0x8002, 0xaaaa, 0x8000, 0x8000, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x5540, 0xa595, 0x5555, 0xaaa5,
+    0x0000, 0x0000, 0x0000, 0x0000, 0xaa00, 0xaaaa, 0x0000, 0x0000,
+    0x8000, 0x002a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa00,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaa80, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0xaaa0, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x8000, 0xaaaa, 0x002a, 0x12aa, 0x0000, 0x0008, 0x8000, 0x8800,
@@ -302,15 +332,29 @@ u_java_ident =
     0x0000, 0x0000, 0x0000, 0xa000, 0x5555, 0xaaa5, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xa000, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x2000, 0x28a8,
-    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0xa000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0xa000, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xaaa0,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x9654, 0x55aa, 0x0200, 0x0002, 0x0000, 0x0000, 0xaa00, 0x6a95,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x0000, 0x0000, 0x0000, 0xa800,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa,
+    0x0000, 0x0000, 0xa000, 0xaaaa, 0x0000, 0x0000, 0xaa80, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0xaaa8, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0015, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5555,
+    0x9555, 0xaaaa, 0xaaaa, 0xaaaa, 0x5aaa, 0x5555, 0xaaaa, 0xaaaa,
+    0x0015, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5555, 0xae95,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0xaaaa, 0xaaaa,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0xaa80, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0xaaaa, 0xaaaa,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xaaa8,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0xaaa0, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0x56aa, 0x56a5, 0xffd5, 0x557f,
     0x5695, 0xaa55, 0xaaaa, 0xaaaa, 0xaaaa, 0xa55a, 0xaaaa, 0xaaaa,
@@ -331,6 +375,8 @@ u_java_ident =
     0x0080, 0x5a00, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x8000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa800, 0xaaaa,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0xa000, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa,
     0xaaae, 0xaaaa, 0xaaaa, 0xaaaa, 0xffff, 0xffff, 0xffff, 0xffff,
index 34d3afd..2dab012 100644 (file)
@@ -1,5 +1,5 @@
 /* Syntax properties of Unicode characters.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
diff --git a/lib/unigbrk.h b/lib/unigbrk.h
new file mode 100644 (file)
index 0000000..ca552d3
--- /dev/null
@@ -0,0 +1,129 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Grapheme cluster breaks in Unicode strings.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNIGBRK_H
+#define _UNIGBRK_H
+
+/* Get bool.  */
+#include <unistring/stdbool.h>
+
+/* Get size_t. */
+#include <stddef.h>
+
+#include "unitypes.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ========================================================================= */
+
+/* Property defined in Unicode Standard Annex #29, section "Grapheme Cluster
+   Boundaries"
+   <http://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries> */
+
+/* Possible values of the Grapheme_Cluster_Break property.
+   This enumeration may be extended in the future.  */
+enum
+{
+  GBP_OTHER        = 0,
+  GBP_CR           = 1,
+  GBP_LF           = 2,
+  GBP_CONTROL      = 3,
+  GBP_EXTEND       = 4,
+  GBP_PREPEND      = 5,
+  GBP_SPACINGMARK  = 6,
+  GBP_L            = 7,
+  GBP_V            = 8,
+  GBP_T            = 9,
+  GBP_LV           = 10,
+  GBP_LVT          = 11
+};
+
+/* Return the Grapheme_Cluster_Break property of a Unicode character. */
+extern int
+       uc_graphemeclusterbreak_property (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Grapheme cluster breaks.  */
+
+/* Returns true if there is a grapheme cluster boundary between Unicode code
+   points A and B.  A "grapheme cluster" is an approximation to a
+   user-perceived character, which sometimes corresponds to multiple code
+   points.  For example, an English letter followed by an acute accent can be
+   expressed as two consecutive Unicode code points, but it is perceived by the
+   user as only a single character and therefore constitutes a single grapheme
+   cluster.
+
+   Implements extended (not legacy) grapheme cluster rules, because UAX #29
+   indicates that they are preferred.
+
+   Use A == 0 or B == 0 to indicate start of text or end of text,
+   respectively. */
+extern bool
+       uc_is_grapheme_break (ucs4_t a, ucs4_t b)
+       _UC_ATTRIBUTE_CONST;
+
+/* Returns the start of the next grapheme cluster following S, or NULL if the
+   end of the string has been reached. */
+extern const uint8_t *
+       u8_grapheme_next (const uint8_t *s, const uint8_t *end)
+       _UC_ATTRIBUTE_PURE;
+extern const uint16_t *
+       u16_grapheme_next (const uint16_t *s, const uint16_t *end)
+       _UC_ATTRIBUTE_PURE;
+extern const uint32_t *
+       u32_grapheme_next (const uint32_t *s, const uint32_t *end)
+       _UC_ATTRIBUTE_PURE;
+
+/* Returns the start of the previous grapheme cluster before S, or NULL if the
+   start of the string has been reached. */
+extern const uint8_t *
+       u8_grapheme_prev (const uint8_t *s, const uint8_t *start)
+       _UC_ATTRIBUTE_PURE;
+extern const uint16_t *
+       u16_grapheme_prev (const uint16_t *s, const uint16_t *start)
+       _UC_ATTRIBUTE_PURE;
+extern const uint32_t *
+       u32_grapheme_prev (const uint32_t *s, const uint32_t *start)
+       _UC_ATTRIBUTE_PURE;
+
+/* Determine the grapheme cluster boundaries in S, and store the result at
+   p[0..n-1].  p[i] = 1 means that a new grapheme cluster begins at s[i].  p[i]
+   = 0 means that s[i-1] and s[i] are part of the same grapheme cluster.  p[0]
+   will always be 1.
+ */
+extern void
+       u8_grapheme_breaks (const uint8_t *s, size_t n, char *p);
+extern void
+       u16_grapheme_breaks (const uint16_t *s, size_t n, char *p);
+extern void
+       u32_grapheme_breaks (const uint32_t *s, size_t n, char *p);
+extern void
+       ulc_grapheme_breaks (const char *s, size_t n, char *p);
+
+/* ========================================================================= */
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _UNIGBRK_H */
diff --git a/lib/unigbrk.in.h b/lib/unigbrk.in.h
new file mode 100644 (file)
index 0000000..39795ce
--- /dev/null
@@ -0,0 +1,128 @@
+/* Grapheme cluster breaks in Unicode strings.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNIGBRK_H
+#define _UNIGBRK_H
+
+/* Get bool.  */
+#include <unistring/stdbool.h>
+
+/* Get size_t. */
+#include <stddef.h>
+
+#include "unitypes.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ========================================================================= */
+
+/* Property defined in Unicode Standard Annex #29, section "Grapheme Cluster
+   Boundaries"
+   <http://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries> */
+
+/* Possible values of the Grapheme_Cluster_Break property.
+   This enumeration may be extended in the future.  */
+enum
+{
+  GBP_OTHER        = 0,
+  GBP_CR           = 1,
+  GBP_LF           = 2,
+  GBP_CONTROL      = 3,
+  GBP_EXTEND       = 4,
+  GBP_PREPEND      = 5,
+  GBP_SPACINGMARK  = 6,
+  GBP_L            = 7,
+  GBP_V            = 8,
+  GBP_T            = 9,
+  GBP_LV           = 10,
+  GBP_LVT          = 11
+};
+
+/* Return the Grapheme_Cluster_Break property of a Unicode character. */
+extern int
+       uc_graphemeclusterbreak_property (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Grapheme cluster breaks.  */
+
+/* Returns true if there is a grapheme cluster boundary between Unicode code
+   points A and B.  A "grapheme cluster" is an approximation to a
+   user-perceived character, which sometimes corresponds to multiple code
+   points.  For example, an English letter followed by an acute accent can be
+   expressed as two consecutive Unicode code points, but it is perceived by the
+   user as only a single character and therefore constitutes a single grapheme
+   cluster.
+
+   Implements extended (not legacy) grapheme cluster rules, because UAX #29
+   indicates that they are preferred.
+
+   Use A == 0 or B == 0 to indicate start of text or end of text,
+   respectively. */
+extern bool
+       uc_is_grapheme_break (ucs4_t a, ucs4_t b)
+       _UC_ATTRIBUTE_CONST;
+
+/* Returns the start of the next grapheme cluster following S, or NULL if the
+   end of the string has been reached. */
+extern const uint8_t *
+       u8_grapheme_next (const uint8_t *s, const uint8_t *end)
+       _UC_ATTRIBUTE_PURE;
+extern const uint16_t *
+       u16_grapheme_next (const uint16_t *s, const uint16_t *end)
+       _UC_ATTRIBUTE_PURE;
+extern const uint32_t *
+       u32_grapheme_next (const uint32_t *s, const uint32_t *end)
+       _UC_ATTRIBUTE_PURE;
+
+/* Returns the start of the previous grapheme cluster before S, or NULL if the
+   start of the string has been reached. */
+extern const uint8_t *
+       u8_grapheme_prev (const uint8_t *s, const uint8_t *start)
+       _UC_ATTRIBUTE_PURE;
+extern const uint16_t *
+       u16_grapheme_prev (const uint16_t *s, const uint16_t *start)
+       _UC_ATTRIBUTE_PURE;
+extern const uint32_t *
+       u32_grapheme_prev (const uint32_t *s, const uint32_t *start)
+       _UC_ATTRIBUTE_PURE;
+
+/* Determine the grapheme cluster boundaries in S, and store the result at
+   p[0..n-1].  p[i] = 1 means that a new grapheme cluster begins at s[i].  p[i]
+   = 0 means that s[i-1] and s[i] are part of the same grapheme cluster.  p[0]
+   will always be 1.
+ */
+extern void
+       u8_grapheme_breaks (const uint8_t *s, size_t n, char *p);
+extern void
+       u16_grapheme_breaks (const uint16_t *s, size_t n, char *p);
+extern void
+       u32_grapheme_breaks (const uint32_t *s, size_t n, char *p);
+extern void
+       ulc_grapheme_breaks (const char *s, size_t n, char *p);
+
+/* ========================================================================= */
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _UNIGBRK_H */
diff --git a/lib/unigbrk/gbrkprop.h b/lib/unigbrk/gbrkprop.h
new file mode 100644 (file)
index 0000000..847d2e7
--- /dev/null
@@ -0,0 +1,842 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Grapheme break property of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+#define gbrkprop_header_0 16
+#define gbrkprop_header_1 15
+#define gbrkprop_header_2 7
+#define gbrkprop_header_3 511
+#define gbrkprop_header_4 127
+static const
+struct
+  {
+    int level1[15];
+    short level2[3 << 9];
+    unsigned char level3[(78 << 7) / 2];
+  }
+unigbrkprop =
+{
+  {
+        0,   512,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  1024
+  },
+  {
+        0,    64,    -1,    -1,    -1,    -1,   128,    -1,
+       -1,   192,    -1,   256,   320,   384,   448,   512,
+      576,    -1,   640,   704,   768,   832,   896,   960,
+     1024,  1088,  1152,  1216,  1280,  1344,  1408,  1472,
+     1536,  1600,  1664,  1728,    -1,    -1,  1792,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  1856,  1920,
+     1984,  2048,  2112,  2176,  2240,    -1,  2304,  2368,
+     2432,  2496,    -1,  2560,    -1,    -1,    -1,    -1,
+     2624,  2688,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,  2752,  2816,  2880,    -1,    -1,    -1,    -1,
+     2944,  3008,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  3072,  3136,    -1,    -1,
+     3200,  3264,  3328,  3392,  3456,  3520,    -1,  3584,
+     3648,  3712,  3776,  3840,  3904,  3968,  4032,  3648,
+     3712,  3776,  3840,  3904,  3968,  4032,  3648,  3712,
+     3776,  3840,  3904,  3968,  4032,  3648,  3712,  3776,
+     3840,  3904,  3968,  4032,  3648,  3712,  3776,  3840,
+     3904,  3968,  4032,  3648,  3712,  3776,  3840,  3904,
+     3968,  4032,  3648,  3712,  3776,  3840,  3904,  3968,
+     4032,  3648,  3712,  3776,  3840,  3904,  3968,  4032,
+     3648,  3712,  3776,  3840,  3904,  3968,  4032,  3648,
+     3712,  3776,  3840,  3904,  3968,  4032,  3648,  3712,
+     3776,  3840,  3904,  3968,  4032,  3648,  3712,  3776,
+     3840,  3904,  3968,  4032,  3648,  3712,  3776,  4096,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  4160,    -1,
+       -1,    -1,    -1,    -1,  4224,  4288,    -1,  4352,
+       -1,    -1,    -1,  4416,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  4480,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     4544,  4608,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,  4672,  4736,  4800,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     4864,    -1,  4928,   128,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1
+  },
+  {
+    0x33, 0x33, 0x33, 0x33, 0x33, 0x32, 0x13, 0x33,
+    0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+    0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+    0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x40, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x40, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x40,
+    0x40, 0x04, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x04, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x34, 0x40,
+    0x44, 0x44, 0x04, 0x40, 0x04, 0x44, 0x44, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+    0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x04, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x44, 0x44,
+    0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x44, 0x44, 0x40, 0x44, 0x44,
+    0x44, 0x44, 0x40, 0x44, 0x40, 0x44, 0x44, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x40, 0x44, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x04, 0x66,
+    0x46, 0x44, 0x44, 0x44, 0x64, 0x66, 0x46, 0x66,
+    0x40, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x40, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x64,
+    0x46, 0x44, 0x04, 0x60, 0x06, 0x60, 0x46, 0x00,
+    0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x40, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x66,
+    0x46, 0x04, 0x00, 0x40, 0x04, 0x40, 0x44, 0x00,
+    0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x40, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x66,
+    0x46, 0x44, 0x44, 0x40, 0x64, 0x60, 0x46, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x40, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44,
+    0x46, 0x44, 0x04, 0x60, 0x06, 0x60, 0x46, 0x00,
+    0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64,
+    0x64, 0x06, 0x00, 0x66, 0x06, 0x66, 0x46, 0x00,
+    0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x60, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
+    0x64, 0x66, 0x06, 0x44, 0x04, 0x44, 0x44, 0x00,
+    0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x46,
+    0x66, 0x64, 0x06, 0x64, 0x06, 0x66, 0x44, 0x00,
+    0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64,
+    0x46, 0x44, 0x04, 0x66, 0x06, 0x66, 0x46, 0x00,
+    0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40,
+    0x66, 0x44, 0x04, 0x04, 0x66, 0x66, 0x66, 0x46,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x46, 0x66, 0x44, 0x44, 0x44, 0x04, 0x00, 0x00,
+    0x55, 0x55, 0x65, 0x40, 0x44, 0x44, 0x44, 0x04,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x46, 0x66, 0x44, 0x44, 0x44, 0x40, 0x04, 0x00,
+    0x55, 0x55, 0x05, 0x00, 0x44, 0x44, 0x44, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x40, 0x40, 0x40, 0x00, 0x00, 0x66,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x40, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x64,
+    0x44, 0x44, 0x04, 0x44, 0x00, 0x00, 0x40, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x40, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x04, 0x00,
+    0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x46, 0x44,
+    0x64, 0x44, 0x44, 0x44, 0x46, 0x64, 0x46, 0x04,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x66, 0x44, 0x00, 0x00, 0x44,
+    0x04, 0x66, 0x06, 0x60, 0x66, 0x66, 0x66, 0x00,
+    0x40, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x64, 0x46, 0x64, 0x66, 0x66, 0x46, 0x60,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x46, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+    0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+    0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+    0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+    0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+    0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+    0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+    0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+    0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+    0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+    0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99,
+    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x44,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x33, 0x46, 0x44, 0x44, 0x44, 0x66,
+    0x66, 0x66, 0x66, 0x64, 0x46, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x44, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x64, 0x66, 0x46, 0x64, 0x66, 0x00, 0x00,
+    0x66, 0x64, 0x66, 0x66, 0x46, 0x44, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+    0x06, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x40, 0x64, 0x66, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x60, 0x64, 0x44, 0x44, 0x44, 0x04,
+    0x64, 0x64, 0x46, 0x44, 0x44, 0x44, 0x64, 0x66,
+    0x66, 0x46, 0x44, 0x44, 0x44, 0x44, 0x04, 0x40,
+    0x44, 0x44, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x64, 0x44, 0x44, 0x64, 0x64, 0x66,
+    0x66, 0x64, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x44, 0x44,
+    0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x60, 0x44, 0x44, 0x66, 0x44, 0x06, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x64, 0x44, 0x66, 0x46, 0x46,
+    0x44, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x44, 0x44,
+    0x44, 0x44, 0x66, 0x44, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x04, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x64, 0x44, 0x44, 0x44, 0x04, 0x00, 0x40, 0x00,
+    0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x44, 0x33,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, 0x03,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x33, 0x33, 0x03, 0x00, 0x00, 0x33, 0x33, 0x33,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+    0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x44,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
+    0x44, 0x04, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x04, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x60, 0x46, 0x64, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+    0x66, 0x66, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x44, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x40, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+    0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x07, 0x00,
+    0x44, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x40, 0x66, 0x44, 0x44, 0x66, 0x64, 0x66,
+    0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x40, 0x44, 0x44, 0x64,
+    0x46, 0x64, 0x46, 0x04, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x04, 0x44, 0x54, 0x45, 0x54, 0x50, 0x05, 0x44,
+    0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x60, 0x46, 0x66, 0x64, 0x06, 0x46, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xba, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb,
+    0xbb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+    0x88, 0x88, 0x88, 0x08, 0x00, 0x90, 0x99, 0x99,
+    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+    0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x44, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x30, 0x33, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
+    0x40, 0x44, 0x40, 0x04, 0x00, 0x00, 0x44, 0x44,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x44, 0x04, 0x00, 0x40,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x46, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x44, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x66, 0x46, 0x44, 0x64, 0x46, 0x04, 0x30, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x40, 0x46, 0x44, 0x00, 0x60, 0x44,
+    0x44, 0x34, 0x33, 0x33, 0x33, 0x43, 0x44, 0x44,
+    0x44, 0x04, 0x40, 0x44, 0x44, 0x44, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+    0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+    0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+    0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+    0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+    0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
+    0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44
+  }
+};
diff --git a/lib/unigbrk/u16-grapheme-breaks.c b/lib/unigbrk/u16-grapheme-breaks.c
new file mode 100644 (file)
index 0000000..e5348d5
--- /dev/null
@@ -0,0 +1,44 @@
+/* Grapheme cluster breaks function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+#include "unistr.h"
+
+void
+u16_grapheme_breaks (const uint16_t *s, size_t n, char *p)
+{
+  ucs4_t prev;
+  int mblen;
+
+  prev = 0;
+  for (; n > 0; s += mblen, p += mblen, n -= mblen)
+    {
+      ucs4_t next;
+
+      mblen = u16_mbtouc (&next, s, n);
+
+      p[0] = uc_is_grapheme_break (prev, next);
+      if (mblen > 1)
+        p[1] = 0;
+
+      prev = next;
+    }
+}
diff --git a/lib/unigbrk/u16-grapheme-next.c b/lib/unigbrk/u16-grapheme-next.c
new file mode 100644 (file)
index 0000000..095f732
--- /dev/null
@@ -0,0 +1,46 @@
+/* Next grapheme cluster function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+#include "unistr.h"
+
+const uint16_t *
+u16_grapheme_next (const uint16_t *s, const uint16_t *end)
+{
+  ucs4_t prev;
+  int mblen;
+
+  if (s == end)
+    return NULL;
+
+  for (s += u16_mbtouc (&prev, s, end - s); s != end; s += mblen)
+    {
+      ucs4_t next;
+
+      mblen = u16_mbtouc (&next, s, end - s);
+      if (uc_is_grapheme_break (prev, next))
+        break;
+
+      prev = next;
+    }
+
+  return s;
+}
diff --git a/lib/unigbrk/u16-grapheme-prev.c b/lib/unigbrk/u16-grapheme-prev.c
new file mode 100644 (file)
index 0000000..7df2b7a
--- /dev/null
@@ -0,0 +1,54 @@
+/* Previous grapheme cluster function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+#include "unistr.h"
+
+const uint16_t *
+u16_grapheme_prev (const uint16_t *s, const uint16_t *start)
+{
+  ucs4_t next;
+
+  if (s == start)
+    return NULL;
+
+  s = u16_prev (&next, s, start);
+  while (s != start)
+    {
+      const uint16_t *prev_s;
+      ucs4_t prev;
+
+      prev_s = u16_prev (&prev, s, start);
+      if (prev_s == NULL)
+        {
+          /* Ill-formed UTF-16 encoding. */
+          return start;
+        }
+
+      if (uc_is_grapheme_break (prev, next))
+        break;
+
+      s = prev_s;
+      next = prev;
+    }
+
+  return s;
+}
diff --git a/lib/unigbrk/u32-grapheme-breaks.c b/lib/unigbrk/u32-grapheme-breaks.c
new file mode 100644 (file)
index 0000000..53cb441
--- /dev/null
@@ -0,0 +1,42 @@
+/* Grapheme cluster breaks function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+#include "unistr.h"
+
+void
+u32_grapheme_breaks (const uint32_t *s, size_t n, char *p)
+{
+  ucs4_t prev;
+  size_t i;
+
+  prev = 0;
+  for (i = 0; i < n; i++)
+    {
+      ucs4_t next;
+
+      u32_mbtouc (&next, &s[i], 1);
+
+      p[i] = uc_is_grapheme_break (prev, next);
+
+      prev = next;
+    }
+}
diff --git a/lib/unigbrk/u32-grapheme-next.c b/lib/unigbrk/u32-grapheme-next.c
new file mode 100644 (file)
index 0000000..7de747c
--- /dev/null
@@ -0,0 +1,46 @@
+/* Next grapheme cluster function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+#include "unistr.h"
+
+const uint32_t *
+u32_grapheme_next (const uint32_t *s, const uint32_t *end)
+{
+  ucs4_t prev;
+
+  if (s == end)
+    return NULL;
+
+  u32_mbtouc (&prev, s, end - s);
+  for (s++; s != end; s++)
+    {
+      ucs4_t next;
+
+      u32_mbtouc (&next, s, end - s);
+      if (uc_is_grapheme_break (prev, next))
+        break;
+
+      prev = next;
+    }
+
+  return s;
+}
diff --git a/lib/unigbrk/u32-grapheme-prev.c b/lib/unigbrk/u32-grapheme-prev.c
new file mode 100644 (file)
index 0000000..39e9778
--- /dev/null
@@ -0,0 +1,51 @@
+/* Previous grapheme cluster function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+#include "unistr.h"
+
+const uint32_t *
+u32_grapheme_prev (const uint32_t *s, const uint32_t *start)
+{
+  ucs4_t next;
+
+  if (s == start)
+    return NULL;
+
+  u32_prev (&next, s, start);
+  for (s--; s != start; s--)
+    {
+      ucs4_t prev;
+
+      if (u32_prev (&prev, s, start) == NULL)
+        {
+          /* Ill-formed UTF-32 encoding. */
+          return start;
+        }
+
+      if (uc_is_grapheme_break (prev, next))
+        break;
+
+      next = prev;
+    }
+
+  return s;
+}
diff --git a/lib/unigbrk/u8-grapheme-breaks.c b/lib/unigbrk/u8-grapheme-breaks.c
new file mode 100644 (file)
index 0000000..b5591c1
--- /dev/null
@@ -0,0 +1,46 @@
+/* Grapheme cluster breaks function.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010,
+   based on code written by Bruno Haible <bruno@clisp.org>, 2009.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+#include "unistr.h"
+
+void
+u8_grapheme_breaks (const uint8_t *s, size_t n, char *p)
+{
+  ucs4_t prev;
+  int mblen;
+
+  prev = 0;
+  for (; n > 0; s += mblen, p += mblen, n -= mblen)
+    {
+      ucs4_t next;
+      int i;
+
+      mblen = u8_mbtouc (&next, s, n);
+
+      p[0] = uc_is_grapheme_break (prev, next);
+      for (i = 1; i < mblen; i++)
+        p[i] = 0;
+
+      prev = next;
+    }
+}
diff --git a/lib/unigbrk/u8-grapheme-next.c b/lib/unigbrk/u8-grapheme-next.c
new file mode 100644 (file)
index 0000000..e30444e
--- /dev/null
@@ -0,0 +1,46 @@
+/* Next grapheme cluster function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+#include "unistr.h"
+
+const uint8_t *
+u8_grapheme_next (const uint8_t *s, const uint8_t *end)
+{
+  ucs4_t prev;
+  int mblen;
+
+  if (s == end)
+    return NULL;
+
+  for (s += u8_mbtouc (&prev, s, end - s); s != end; s += mblen)
+    {
+      ucs4_t next;
+
+      mblen = u8_mbtouc (&next, s, end - s);
+      if (uc_is_grapheme_break (prev, next))
+        break;
+
+      prev = next;
+    }
+
+  return s;
+}
diff --git a/lib/unigbrk/u8-grapheme-prev.c b/lib/unigbrk/u8-grapheme-prev.c
new file mode 100644 (file)
index 0000000..0b0aa91
--- /dev/null
@@ -0,0 +1,54 @@
+/* Previous grapheme cluster function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+#include "unistr.h"
+
+const uint8_t *
+u8_grapheme_prev (const uint8_t *s, const uint8_t *start)
+{
+  ucs4_t next;
+
+  if (s == start)
+    return NULL;
+
+  s = u8_prev (&next, s, start);
+  while (s != start)
+    {
+      const uint8_t *prev_s;
+      ucs4_t prev;
+
+      prev_s = u8_prev (&prev, s, start);
+      if (prev_s == NULL)
+        {
+          /* Ill-formed UTF-8 encoding. */
+          return start;
+        }
+
+      if (uc_is_grapheme_break (prev, next))
+        break;
+
+      s = prev_s;
+      next = prev;
+    }
+
+  return s;
+}
diff --git a/lib/unigbrk/uc-gbrk-prop.c b/lib/unigbrk/uc-gbrk-prop.c
new file mode 100644 (file)
index 0000000..a11fc67
--- /dev/null
@@ -0,0 +1,45 @@
+/* Grapheme cluster break property function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+#include "gbrkprop.h"
+
+int
+uc_graphemeclusterbreak_property (ucs4_t uc)
+{
+  unsigned int index1 = uc >> gbrkprop_header_0;
+  if (index1 < gbrkprop_header_1)
+    {
+      int lookup1 = unigbrkprop.level1[index1];
+      if (lookup1 >= 0)
+        {
+          unsigned int index2 = (uc >> gbrkprop_header_2) & gbrkprop_header_3;
+          int lookup2 = unigbrkprop.level2[lookup1 + index2];
+          if (lookup2 >= 0)
+            {
+              unsigned int index3 = uc & gbrkprop_header_4;
+              unsigned char lookup3 = unigbrkprop.level3[lookup2 + index3 / 2];
+              return (lookup3 >> ((uc & 1) << 2)) & 0x0f;
+            }
+        }
+    }
+  return GBP_OTHER;
+}
diff --git a/lib/unigbrk/uc-is-grapheme-break.c b/lib/unigbrk/uc-is-grapheme-break.c
new file mode 100644 (file)
index 0000000..0e61e79
--- /dev/null
@@ -0,0 +1,106 @@
+/* Grapheme cluster break function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+/* Evaluates to true if there is an extended grapheme cluster break between
+   code points with GBP_* values A and B, false if there is not.  The comments
+   are the grapheme cluster boundary rules from in UAX #29. */
+#define UC_IS_GRAPHEME_BREAK(A, B)                                      \
+  (/* GB1 and GB2 are covered--just use a GBP_CONTROL character, such   \
+      as 0, for sot and eot. */                                         \
+                                                                        \
+   /* GB3 */                                                            \
+   (A) == GBP_CR && (B) == GBP_LF ? false :                             \
+                                                                        \
+   /* GB4 */                                                            \
+   (A) == GBP_CONTROL || (A) == GBP_CR || (A) == GBP_LF ? true :        \
+                                                                        \
+   /* GB5 */                                                            \
+   (B) == GBP_CONTROL || (B) == GBP_CR || (B) == GBP_LF ? true :        \
+                                                                        \
+   /* GB6 */                                                            \
+   (A) == GBP_L && ((B) == GBP_L || (B) == GBP_V                        \
+                    || (B) == GBP_LV || (B) == GBP_LVT) ? false :       \
+                                                                        \
+   /* GB7 */                                                            \
+   ((A) == GBP_LV || (A) == GBP_V)                                      \
+   && ((B) == GBP_V || (B) == GBP_T) ? false :                          \
+                                                                        \
+   /* GB8 */                                                            \
+   ((A) == GBP_LVT || (A) == GBP_T) && (B) == GBP_T ? false :           \
+                                                                        \
+   /* GB9 */                                                            \
+   (B) == GBP_EXTEND ? false :                                          \
+                                                                        \
+   /* GB9a */                                                           \
+   (B) == GBP_SPACINGMARK ? false :                                     \
+                                                                        \
+   /* GB9b */                                                           \
+   (A) == GBP_PREPEND ? false                                           \
+                                                                        \
+   /* GB10 */                                                           \
+   : true)
+
+#define UC_GRAPHEME_BREAKS_FOR(A)                                       \
+  (  (UC_IS_GRAPHEME_BREAK(A, GBP_OTHER)       << GBP_OTHER)            \
+   | (UC_IS_GRAPHEME_BREAK(A, GBP_CR)          << GBP_CR)               \
+   | (UC_IS_GRAPHEME_BREAK(A, GBP_LF)          << GBP_LF)               \
+   | (UC_IS_GRAPHEME_BREAK(A, GBP_CONTROL)     << GBP_CONTROL)          \
+   | (UC_IS_GRAPHEME_BREAK(A, GBP_EXTEND)      << GBP_EXTEND)           \
+   | (UC_IS_GRAPHEME_BREAK(A, GBP_PREPEND)     << GBP_PREPEND)          \
+   | (UC_IS_GRAPHEME_BREAK(A, GBP_SPACINGMARK) << GBP_SPACINGMARK)      \
+   | (UC_IS_GRAPHEME_BREAK(A, GBP_L)           << GBP_L)                \
+   | (UC_IS_GRAPHEME_BREAK(A, GBP_V)           << GBP_V)                \
+   | (UC_IS_GRAPHEME_BREAK(A, GBP_T)           << GBP_T)                \
+   | (UC_IS_GRAPHEME_BREAK(A, GBP_LV)          << GBP_LV)               \
+   | (UC_IS_GRAPHEME_BREAK(A, GBP_LVT)         << GBP_LVT))
+
+static const unsigned short int gb_table[12] =
+  {
+    UC_GRAPHEME_BREAKS_FOR(0),  /* GBP_OTHER */
+    UC_GRAPHEME_BREAKS_FOR(1),  /* GBP_CR */
+    UC_GRAPHEME_BREAKS_FOR(2),  /* GBP_LF */
+    UC_GRAPHEME_BREAKS_FOR(3),  /* GBP_CONTROL */
+    UC_GRAPHEME_BREAKS_FOR(4),  /* GBP_EXTEND */
+    UC_GRAPHEME_BREAKS_FOR(5),  /* GBP_PREPEND */
+    UC_GRAPHEME_BREAKS_FOR(6),  /* GBP_SPACINGMARK */
+    UC_GRAPHEME_BREAKS_FOR(7),  /* GBP_L */
+    UC_GRAPHEME_BREAKS_FOR(8),  /* GBP_V */
+    UC_GRAPHEME_BREAKS_FOR(9),  /* GBP_T */
+    UC_GRAPHEME_BREAKS_FOR(10), /* GBP_LV */
+    UC_GRAPHEME_BREAKS_FOR(11), /* GBP_LVT */
+  };
+
+bool
+uc_is_grapheme_break (ucs4_t a, ucs4_t b)
+{
+  int a_gcp, b_gcp;
+
+  if ((a | b) < 0x300)
+    {
+      /* GB3 is the only relevant rule for this case. */
+      return a != '\r' || b != '\n';
+    }
+
+  a_gcp = uc_graphemeclusterbreak_property (a);
+  b_gcp = uc_graphemeclusterbreak_property (b);
+  return (gb_table[a_gcp] >> b_gcp) & 1;
+}
diff --git a/lib/unigbrk/ulc-grapheme-breaks.c b/lib/unigbrk/ulc-grapheme-breaks.c
new file mode 100644 (file)
index 0000000..b6bf994
--- /dev/null
@@ -0,0 +1,130 @@
+/* Grapheme cluster breaks function.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@cs.stanford.edu>, 2010,
+   based on code written by Bruno Haible <bruno@clisp.org>, 2009.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unigbrk.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "c-ctype.h"
+#include "c-strcaseeq.h"
+#include "localcharset.h"
+#include "uniconv.h"
+
+static int
+is_utf8_encoding (const char *encoding)
+{
+  if (STRCASEEQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0))
+    return 1;
+  return 0;
+}
+
+#if C_CTYPE_ASCII
+/* Assume that every ASCII character starts a new grapheme, which is often
+   true, except that CR-LF is a single grapheme. */
+static void
+ascii_grapheme_breaks (const char *s, size_t n, char *p)
+{
+  size_t i;
+
+  p[0] = 1;
+  for (i = 1; i < n; i++)
+    {
+      bool is_ascii = c_isprint (s[i]) || c_isspace (s[i]);
+      p[i] = is_ascii && (s[i] != '\n' || s[i - 1] != '\r');
+    }
+}
+#endif
+
+/* Grapheme boundaries in a string in an arbitrary encoding.
+
+   We convert the input string to Unicode.
+
+   The standardized Unicode encodings are UTF-8, UCS-2, UCS-4, UTF-16,
+   UTF-16BE, UTF-16LE, UTF-7.  UCS-2 supports only characters up to
+   \U0000FFFF.  UTF-16 and variants support only characters up to
+   \U0010FFFF.  UTF-7 is way too complex and not supported by glibc-2.1.
+   UCS-4 specification leaves doubts about endianness and byte order mark.
+   glibc currently interprets it as big endian without byte order mark,
+   but this is not backed by an RFC.  So we use UTF-8. It supports
+   characters up to \U7FFFFFFF and is unambiguously defined.  */
+
+void
+ulc_grapheme_breaks (const char *s, size_t n, char *p)
+{
+  if (n > 0)
+    {
+      const char *encoding = locale_charset ();
+
+      if (is_utf8_encoding (encoding))
+        u8_grapheme_breaks ((const uint8_t *) s, n, p);
+      else
+        {
+          /* Convert the string to UTF-8 and build a translation table
+             from offsets into s to offsets into the translated string.  */
+          size_t *offsets = (size_t *) malloc (n * sizeof (size_t));
+
+          if (offsets != NULL)
+            {
+              uint8_t *t;
+              size_t m;
+
+              t = u8_conv_from_encoding (encoding, iconveh_question_mark,
+                                         s, n, offsets, NULL, &m);
+              if (t != NULL)
+                {
+                  char *q = (char *) (m > 0 ? malloc (m) : NULL);
+
+                  if (m == 0 || q != NULL)
+                    {
+                      size_t i;
+
+                      /* Determine the grapheme breaks of the UTF-8 string.  */
+                      u8_grapheme_breaks (t, m, q);
+
+                      /* Translate the result back to the original string.  */
+                      memset (p, 0, n);
+                      for (i = 0; i < n; i++)
+                        if (offsets[i] != (size_t)(-1))
+                          p[i] = q[offsets[i]];
+
+                      free (q);
+                      free (t);
+                      free (offsets);
+                      return;
+                    }
+                  free (t);
+                }
+              free (offsets);
+            }
+
+          /* Impossible to convert. */
+#if C_CTYPE_ASCII
+          /* Fall back to ASCII as best we can. */
+          ascii_grapheme_breaks (s, n, p);
+#else
+          /* We cannot make any assumptions. */
+          p[0] = 1;
+          memset (p + 1, 0, n - 1);
+#endif
+        }
+    }
+}
index ca8f42b..6c8111b 100644 (file)
@@ -1,5 +1,6 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Line breaking of Unicode strings.
-   Copyright (C) 2001-2003, 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
diff --git a/lib/unilbrk.in.h b/lib/unilbrk.in.h
new file mode 100644 (file)
index 0000000..0e5f8be
--- /dev/null
@@ -0,0 +1,110 @@
+/* Line breaking of Unicode strings.
+   Copyright (C) 2001-2003, 2005-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2001.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNILBRK_H
+#define _UNILBRK_H
+
+/* Get size_t.  */
+#include <stddef.h>
+
+#include "unitypes.h"
+
+/* Get locale_charset() declaration.  */
+#include <unistring/localcharset.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* These functions are locale dependent.  The encoding argument identifies
+   the encoding (e.g. "ISO-8859-2" for Polish).  */
+
+
+/* Line breaking.  */
+
+enum
+{
+  UC_BREAK_UNDEFINED,
+  UC_BREAK_PROHIBITED,
+  UC_BREAK_POSSIBLE,
+  UC_BREAK_MANDATORY,
+  UC_BREAK_HYPHENATION
+};
+
+/* Determine the line break points in S, and store the result at p[0..n-1].
+   p[i] = UC_BREAK_MANDATORY means that s[i] is a line break character.
+   p[i] = UC_BREAK_POSSIBLE means that a line break may be inserted between
+          s[i-1] and s[i].
+   p[i] = UC_BREAK_HYPHENATION means that a hyphen and a line break may be
+          inserted between s[i-1] and s[i].  But beware of language dependent
+          hyphenation rules.
+   p[i] = UC_BREAK_PROHIBITED means that s[i-1] and s[i] must not be separated.
+ */
+extern void
+       u8_possible_linebreaks (const uint8_t *s, size_t n,
+                               const char *encoding, char *p);
+extern void
+       u16_possible_linebreaks (const uint16_t *s, size_t n,
+                                const char *encoding, char *p);
+extern void
+       u32_possible_linebreaks (const uint32_t *s, size_t n,
+                                const char *encoding, char *p);
+extern void
+       ulc_possible_linebreaks (const char *s, size_t n,
+                                const char *encoding, char *p);
+
+/* Choose the best line breaks, assuming the uc_width function.
+   The string is s[0..n-1].  The maximum number of columns per line is given
+   as WIDTH.  The starting column of the string is given as START_COLUMN.
+   If the algorithm shall keep room after the last piece, they can be given
+   as AT_END_COLUMNS.
+   o is an optional override; if o[i] != UC_BREAK_UNDEFINED, o[i] takes
+   precedence over p[i] as returned by the *_possible_linebreaks function.
+   The given ENCODING is used for disambiguating widths in uc_width.
+   Return the column after the end of the string, and store the result at
+   p[0..n-1].
+ */
+extern int
+       u8_width_linebreaks (const uint8_t *s, size_t n, int width,
+                            int start_column, int at_end_columns,
+                            const char *o, const char *encoding,
+                            char *p);
+extern int
+       u16_width_linebreaks (const uint16_t *s, size_t n, int width,
+                             int start_column, int at_end_columns,
+                             const char *o, const char *encoding,
+                             char *p);
+extern int
+       u32_width_linebreaks (const uint32_t *s, size_t n, int width,
+                             int start_column, int at_end_columns,
+                             const char *o, const char *encoding,
+                             char *p);
+extern int
+       ulc_width_linebreaks (const char *s, size_t n, int width,
+                             int start_column, int at_end_columns,
+                             const char *o, const char *encoding,
+                             char *p);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _UNILBRK_H */
index ba6e1b8..fb1767f 100644 (file)
@@ -1,8 +1,8 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Line breaking properties of Unicode characters.  */
-/* Generated automatically by gen-lbrk for Unicode 5.1.0.  */
+/* Generated automatically by gen-lbrk for Unicode 6.0.0.  */
 
-/* Copyright (C) 2000-2002, 2004, 2008-2010 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2002, 2004, 2008 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -27,7 +27,7 @@ typedef struct
   {
     int level1[15];
     int level2[4 << 9];
-    unsigned char level3[142 << 7];
+    unsigned char level3[166 << 7];
   }
 lbrkprop_t;
 extern const lbrkprop_t unilbrkprop;
index 45b93b1..e4d4f69 100644 (file)
@@ -1,8 +1,8 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Line breaking properties of Unicode characters.  */
-/* Generated automatically by gen-lbrk for Unicode 5.1.0.  */
+/* Generated automatically by gen-lbrk for Unicode 6.0.0.  */
 
-/* Copyright (C) 2000-2002, 2004, 2008-2010 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2002, 2004, 2008 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
 const lbrkprop_t unilbrkprop =
 {
   {
-        0,   512,  1024,    -1,    -1,    -1,    -1,    -1,
+        0,   512,  1024,  1024,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,  1536
   },
   {
         0,   128,   256,   256,   256,   384,   512,   640,
       256,   768,   896,  1024,  1152,  1280,  1408,  1536,
-       -1,    -1,  1664,  1792,  1920,  2048,  2176,  2304,
-     2432,  2560,  2688,  2816,  2944,  3072,  3200,  3328,
-     3456,  3584,  3712,  3840,  3968,  4096,  4224,  4352,
-     4480,   256,   256,   256,  4608,  4736,  4864,  4992,
-     5120,  5248,  5376,  5504,  5632,    -1,  5760,  5888,
-     6016,    -1,   256,  6144,   256,   256,  6272,  6400,
-     6528,  6656,  6784,  6912,  7040,  7168,  7296,  7424,
-     7552,  7680,  7808,  7936,  8064,  8192,  8320,  8448,
-      256,   256,   256,  8576,   256,   256,  8704,    -1,
-     8832,  8960,  9088,  9216,  9344,  9472,  9600,  9728,
-     9856,  9984, 10112, 10240, 10368, 10496,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600, 10624,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600, 10752,
-    10880,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600, 11008,   256,   256, 11136, 11264,   256, 11392,
-    11520, 11648, 11776,    -1, 11904,    -1,    -1,    -1,
-    12032, 12160, 12288, 12416, 12544, 12672, 12800, 12032,
-    12160, 12288, 12416, 12544, 12672, 12800, 12032, 12160,
-    12288, 12416, 12544, 12672, 12800, 12032, 12160, 12288,
-    12416, 12544, 12672, 12800, 12032, 12160, 12288, 12416,
-    12544, 12672, 12800, 12032, 12160, 12288, 12416, 12544,
-    12672, 12800, 12032, 12160, 12288, 12416, 12544, 12672,
-    12800, 12032, 12160, 12288, 12416, 12544, 12672, 12800,
-    12032, 12160, 12288, 12416, 12544, 12672, 12800, 12032,
-    12160, 12288, 12416, 12544, 12672, 12800, 12032, 12160,
-    12288, 12416, 12544, 12672, 12800, 12032, 12160, 12288,
-    12416, 12544, 12672, 12800, 12032, 12160, 12288, 12928,
+     1664,    -1,  1792,  1920,  2048,  2176,  2304,  2432,
+     2560,  2688,  2816,  2944,  3072,  3200,  3328,  3456,
+     3584,  3712,  3840,  3968,  4096,  4224,  4352,  4480,
+     4608,   256,   256,   256,   256,  4736,  4864,  4992,
+     5120,  5248,  5376,  5504,  5632,  5760,  5888,  6016,
+     6144,  6272,   256,  6400,   256,   256,  6528,  6656,
+     6784,  6912,  7040,  7168,  7296,  7424,  7552,  7680,
+     7808,  7936,  8064,  8192,  8320,  8448,  8576,  8704,
+      256,   256,   256,  8832,   256,   256,  8960,    -1,
+     9088,  9216,  9344,  9472,  9600,  9728,  9856,  9984,
+    10112, 10240, 10368, 10496, 10624, 10752,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856, 10880,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+    11008,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856, 11136,   256,   256, 11264, 11392,   256, 11520,
+    11648, 11776, 11904, 12032, 12160, 12288, 12416, 12544,
+    12672, 12800, 12928, 13056, 13184, 13312, 13440, 12672,
+    12800, 12928, 13056, 13184, 13312, 13440, 12672, 12800,
+    12928, 13056, 13184, 13312, 13440, 12672, 12800, 12928,
+    13056, 13184, 13312, 13440, 12672, 12800, 12928, 13056,
+    13184, 13312, 13440, 12672, 12800, 12928, 13056, 13184,
+    13312, 13440, 12672, 12800, 12928, 13056, 13184, 13312,
+    13440, 12672, 12800, 12928, 13056, 13184, 13312, 13440,
+    12672, 12800, 12928, 13056, 13184, 13312, 13440, 12672,
+    12800, 12928, 13056, 13184, 13312, 13440, 12672, 12800,
+    12928, 13056, 13184, 13312, 13440, 12672, 12800, 12928,
+    13056, 13184, 13312, 13440, 12672, 12800, 12928, 13568,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -86,18 +86,22 @@ const lbrkprop_t unilbrkprop =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,  9600,  9600, 13056, 13184, 13312, 13440,
-      256,   256, 13568, 13696, 13824, 13952, 14080, 14208,
-    14336, 14464, 14592, 14720,    -1, 14848, 14976, 15104,
-      256, 15232,    -1,    -1,    -1,    -1,    -1,    -1,
-    15360,    -1, 15488,    -1, 15616,    -1,    -1,    -1,
+       -1,    -1,  9856,  9856,  9856,  9856, 13696, 13824,
+      256,   256, 13952, 14080, 14208, 14336, 14464, 14592,
+    14720, 14848, 14976, 15104,    -1, 15232, 15360, 15488,
+      256, 15616,    -1,    -1,    -1,    -1,    -1,    -1,
+    15744,    -1, 15872,    -1, 16000,    -1, 16128,    -1,
+    16256,    -1,    -1,    -1, 16384,    -1,    -1,    -1,
+    16512, 16640,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256,   256,   256,   256,   256,   256, 16768,    -1,
+    16896,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      256,   256,   256,   256,   256,   256, 15744,    -1,
-    15872,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256,   256,   256,   256, 17024, 17152, 17280,   256,
+    17408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -110,6 +114,7 @@ const lbrkprop_t unilbrkprop =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256,   256,   256,   256, 17536,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -127,6 +132,7 @@ const lbrkprop_t unilbrkprop =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    17664,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -134,89 +140,83 @@ const lbrkprop_t unilbrkprop =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256, 17792, 17920, 18048, 18176,    -1, 18304,    -1,
+    18432, 18560, 18688,   256,   256, 18816,   256, 18944,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      256, 16000, 16128, 16256, 16384,    -1, 16512,    -1,
-    16640, 16768, 16896,   256,   256, 17024,   256, 17152,
+    19072, 19200, 19328, 19456, 19584,    -1, 19712, 19840,
+    19968, 20096, 20224, 20352, 20480, 20608,  7680,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    17280, 17408,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600,  9600,  9600,  9600,
-     9600,  9600,  9600,  9600,  9600, 17536,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     9600,  9600,  9600,  9600, 17664,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    17792,    -1, 17920, 18048,    -1,    -1,    -1,    -1,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856,  9856,
+     9856,  9856,  9856,  9856,  9856,  9856,  9856, 20736,
+    20864,    -1, 20992, 21120,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -287,13 +287,13 @@ const lbrkprop_t unilbrkprop =
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_SP, LBP_EX, LBP_QU, LBP_AL, LBP_PR, LBP_PO, LBP_AL, LBP_QU,
-    LBP_OP, LBP_CL, LBP_AL, LBP_PR, LBP_IS, LBP_HY, LBP_IS, LBP_SY,
+    LBP_OP, LBP_CP, LBP_AL, LBP_PR, LBP_IS, LBP_HY, LBP_IS, LBP_SY,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_IS, LBP_IS, LBP_AL, LBP_AL, LBP_AL, LBP_EX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_PR, LBP_CL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_PR, LBP_CP, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -398,7 +398,7 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -430,14 +430,14 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_PO, LBP_PO, LBP_PO, LBP_IS, LBP_IS, LBP_AL, LBP_AL,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_EX, LBP_XX, LBP_XX, LBP_EX, LBP_EX,
-    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
-    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_PO, LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL,
     LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -453,7 +453,7 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_EX, LBP_AL, LBP_CM, LBP_CM,
-    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_CM,
     LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
@@ -490,22 +490,38 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_IS, LBP_EX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM,
+    LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+    LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_AL, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
-    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
-    LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_BA, LBP_BA, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
     LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -520,8 +536,8 @@ const lbrkprop_t unilbrkprop =
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
     LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
-    LBP_AL, LBP_AL, LBP_PR, LBP_PR, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_PO, LBP_PO, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_PO, LBP_AL, LBP_PR, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
     LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -568,7 +584,7 @@ const lbrkprop_t unilbrkprop =
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
     LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
@@ -623,11 +639,11 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_CM, LBP_CM,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
-    LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+    LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
@@ -699,7 +715,7 @@ const lbrkprop_t unilbrkprop =
     LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA, LBP_CM, LBP_CM,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
@@ -708,8 +724,8 @@ const lbrkprop_t unilbrkprop =
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_BA, LBP_BA,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
-    LBP_BB, LBP_BB, LBP_BA, LBP_BB, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_BB, LBP_BB, LBP_BA, LBP_BB, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_GL, LBP_GL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -733,7 +749,7 @@ const lbrkprop_t unilbrkprop =
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
-    LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_SA, LBP_SA,
+    LBP_NU, LBP_NU, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -757,7 +773,7 @@ const lbrkprop_t unilbrkprop =
     LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
     LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
     LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
-    LBP_JL, LBP_JL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_JL,
+    LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
     LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
     LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
     LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
@@ -766,7 +782,8 @@ const lbrkprop_t unilbrkprop =
     LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
     LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
     LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
-    LBP_JV, LBP_JV, LBP_JV, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
+    LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
     LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
     LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
     LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
@@ -777,7 +794,6 @@ const lbrkprop_t unilbrkprop =
     LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
     LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
     LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
-    LBP_JT, LBP_JT, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -821,7 +837,7 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM,
     LBP_AL, LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -842,21 +858,7 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -872,8 +874,6 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -944,15 +944,15 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -975,13 +975,13 @@ const lbrkprop_t unilbrkprop =
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
-    LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
     LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
     LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
-    LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_SA, LBP_SA,
+    LBP_NU, LBP_NU, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_SA, LBP_SA,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -990,8 +990,24 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_CM,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -1013,7 +1029,7 @@ const lbrkprop_t unilbrkprop =
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
-    LBP_NU, LBP_NU, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA,
+    LBP_NU, LBP_NU, LBP_BA, LBP_BA, LBP_AL, LBP_BA, LBP_BA, LBP_BA,
     LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1026,14 +1042,14 @@ const lbrkprop_t unilbrkprop =
     LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1050,6 +1066,22 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1065,7 +1097,7 @@ const lbrkprop_t unilbrkprop =
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
@@ -1116,12 +1148,12 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_AI,
     LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PO,
     LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR,
-    LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PO, LBP_PR,
+    LBP_PR, LBP_PR, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
@@ -1140,14 +1172,14 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL,
     LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
     LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
     LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AI, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
     LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1223,8 +1255,8 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1309,45 +1341,45 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX,
-    LBP_AL, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_XX,
-    LBP_XX, LBP_AL, LBP_EX, LBP_EX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+    LBP_AL, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_AL,
+    LBP_AL, LBP_AL, LBP_EX, LBP_EX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL,
     LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_AI, LBP_AI,
     LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
     LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
     LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
-    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL,
@@ -1380,8 +1412,8 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -1400,8 +1432,6 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1415,8 +1445,10 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM,
+    LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_EX, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_EX, LBP_BA,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1432,8 +1464,8 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
@@ -1456,7 +1488,7 @@ const lbrkprop_t unilbrkprop =
     LBP_OP, LBP_BA, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_AL, LBP_AL,
     LBP_QU, LBP_QU, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL,
     LBP_OP, LBP_CL, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_EX, LBP_AL,
-    LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_BA, LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -1569,7 +1601,7 @@ const lbrkprop_t unilbrkprop =
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
@@ -1586,8 +1618,8 @@ const lbrkprop_t unilbrkprop =
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
@@ -1616,8 +1648,8 @@ const lbrkprop_t unilbrkprop =
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1628,22 +1660,6 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
@@ -1668,12 +1684,12 @@ const lbrkprop_t unilbrkprop =
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_EX, LBP_BA,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1686,7 +1702,7 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_AL, LBP_AL,
@@ -1694,24 +1710,24 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_CM, LBP_CM, LBP_AL, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -1721,15 +1737,15 @@ const lbrkprop_t unilbrkprop =
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_PO, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1750,10 +1766,10 @@ const lbrkprop_t unilbrkprop =
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_BA, LBP_BA,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1766,6 +1782,22 @@ const lbrkprop_t unilbrkprop =
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
     LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
+    LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+    LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+    LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL,
+    LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_JL, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA,
+    LBP_BA, LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -1782,10 +1814,58 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
     LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
     LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_AL, LBP_BA, LBP_BA, LBP_BA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_BA, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_H2, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
     LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
     LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
@@ -1904,48 +1984,16 @@ const lbrkprop_t unilbrkprop =
     LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_H3,
     LBP_H3, LBP_H3, LBP_H3, LBP_H3, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
+    LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV,
+    LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_JV, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+    LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+    LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+    LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+    LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+    LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_JT,
+    LBP_JT, LBP_JT, LBP_JT, LBP_JT, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -1968,10 +2016,10 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -2210,10 +2258,10 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
     LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_BA,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -2221,7 +2269,7 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
-    LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_BA,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_BA,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -2246,6 +2294,86 @@ const lbrkprop_t unilbrkprop =
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA,
     LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+    LBP_XX, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BA,
+    LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_NU, LBP_NU,
+    LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+    LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA,
+    LBP_BA, LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -2293,6 +2421,102 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_OP, LBP_OP, LBP_OP, LBP_CL, LBP_CL, LBP_CL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL,
+    LBP_OP, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_OP, LBP_CL, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
@@ -2462,9 +2686,38 @@ const lbrkprop_t unilbrkprop =
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_XX,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+    LBP_AI, LBP_AI, LBP_AI, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
@@ -2473,39 +2726,170 @@ const lbrkprop_t unilbrkprop =
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+    LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
-    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX,
+    LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+    LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+    LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
     LBP_XX, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
     LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
index fbc8931..f0b3d59 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking auxiliary tables.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
 /* Define unilbrkprop, table of line breaking properties.  */
 #include "unilbrk/lbrkprop2.h"
 
-const unsigned char unilbrk_table[24][24] =
+const unsigned char unilbrk_table[25][25] =
 {
                                 /* after */
-        /* WJ GL B2 BA BB HY CL EX IN NS OP QU IS NU PO PR SY AL H2 H3 ID JL JV JT */
-/* WJ */ { P, I, I, I, I, I, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, },
-/* GL */ { P, I, I, I, I, I, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, },
-/* B2 */ { P, I, P, I, D, I, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
-/* BA */ { P, D, D, I, D, I, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
-/* BB */ { P, I, I, I, I, I, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, },
-/* HY */ { P, D, D, I, D, I, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, },
-/* CL */ { P, I, D, I, D, I, P, P, D, P, D, I, P, D, I, I, P, D, D, D, D, D, D, D, },
-/* EX */ { P, I, D, I, D, I, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
-/* IN */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
-/* NS */ { P, I, D, I, D, I, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
-/* OP */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
-/* QU */ { P, I, I, I, I, I, P, P, I, I, P, I, P, I, I, I, P, I, I, I, I, I, I, I, },
-/* IS */ { P, I, D, I, D, I, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, },
-/* NU */ { P, I, D, I, D, I, P, P, I, I, D, I, P, I, I, I, P, I, D, D, D, D, D, D, },
-/* PO */ { P, I, D, I, D, I, P, P, D, I, I, I, P, I, D, D, P, I, D, D, D, D, D, D, },
-/* PR */ { P, I, D, I, D, I, P, P, D, I, I, I, P, I, D, D, P, I, I, I, I, I, I, I, },
-/* SY */ { P, I, D, I, D, I, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, },
-/* AL */ { P, I, D, I, D, I, P, P, I, I, D, I, P, I, D, D, P, I, D, D, D, D, D, D, },
-/* H2 */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, I, I, },
-/* H3 */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, I, },
-/* ID */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, D, },
-/* JL */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, I, I, D, I, I, D, },
-/* JV */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, I, I, },
-/* JT */ { P, I, D, I, D, I, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, I, },
+        /* WJ GL B2 BA BB HY CL CP EX IN NS OP QU IS NU PO PR SY AL H2 H3 ID JL JV JT */
+/* WJ */ { P, I, I, I, I, I, P, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, },
+/* GL */ { P, I, I, I, I, I, P, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, },
+/* B2 */ { P, I, P, I, D, I, P, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
+/* BA */ { P, D, D, I, D, I, P, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
+/* BB */ { P, I, I, I, I, I, P, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, },
+/* HY */ { P, D, D, I, D, I, P, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, },
+/* CL */ { P, I, D, I, D, I, P, P, P, D, P, D, I, P, D, I, I, P, D, D, D, D, D, D, D, },
+/* CP */ { P, I, D, I, D, I, P, P, P, D, P, D, I, P, I, I, I, P, I, D, D, D, D, D, D, },
+/* EX */ { P, I, D, I, D, I, P, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
+/* IN */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
+/* NS */ { P, I, D, I, D, I, P, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, },
+/* OP */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
+/* QU */ { P, I, I, I, I, I, P, P, P, I, I, P, I, P, I, I, I, P, I, I, I, I, I, I, I, },
+/* IS */ { P, I, D, I, D, I, P, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, },
+/* NU */ { P, I, D, I, D, I, P, P, P, I, I, I, I, P, I, I, I, P, I, D, D, D, D, D, D, },
+/* PO */ { P, I, D, I, D, I, P, P, P, D, I, I, I, P, I, D, D, P, I, D, D, D, D, D, D, },
+/* PR */ { P, I, D, I, D, I, P, P, P, D, I, I, I, P, I, D, D, P, I, I, I, I, I, I, I, },
+/* SY */ { P, I, D, I, D, I, P, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, },
+/* AL */ { P, I, D, I, D, I, P, P, P, I, I, I, I, P, I, D, D, P, I, D, D, D, D, D, D, },
+/* H2 */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, I, I, },
+/* H3 */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, I, },
+/* ID */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, D, },
+/* JL */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, I, I, D, I, I, D, },
+/* JV */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, I, I, },
+/* JT */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, I, },
 /* "" */
 /* before */
 };
index e86c49f..e651d71 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking auxiliary tables.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
 
 enum
 {
-  /* Values >= 24 are resolved at run time. */
-  LBP_BK = 24, /* mandatory break */
+  /* Values >= 25 are resolved at run time. */
+  LBP_BK = 25, /* mandatory break */
 /*LBP_CR,         carriage return - not used here because it's a DOSism */
 /*LBP_LF,         line feed - not used here because it's a DOSism */
-  LBP_CM = 25, /* attached characters and combining marks */
+  LBP_CM = 26, /* attached characters and combining marks */
 /*LBP_NL,         next line - not used here because it's equivalent to LBP_BK */
 /*LBP_SG,         surrogates - not used here because they are not characters */
   LBP_WJ =  0, /* word joiner */
-  LBP_ZW = 26, /* zero width space */
+  LBP_ZW = 27, /* zero width space */
   LBP_GL =  1, /* non-breaking (glue) */
-  LBP_SP = 27, /* space */
+  LBP_SP = 28, /* space */
   LBP_B2 =  2, /* break opportunity before and after */
   LBP_BA =  3, /* break opportunity after */
   LBP_BB =  4, /* break opportunity before */
   LBP_HY =  5, /* hyphen */
-  LBP_CB = 28, /* contingent break opportunity */
+  LBP_CB = 29, /* contingent break opportunity */
   LBP_CL =  6, /* closing punctuation */
-  LBP_EX =  7, /* exclamation/interrogation */
-  LBP_IN =  8, /* inseparable */
-  LBP_NS =  9, /* non starter */
-  LBP_OP = 10, /* opening punctuation */
-  LBP_QU = 11, /* ambiguous quotation */
-  LBP_IS = 12, /* infix separator (numeric) */
-  LBP_NU = 13, /* numeric */
-  LBP_PO = 14, /* postfix (numeric) */
-  LBP_PR = 15, /* prefix (numeric) */
-  LBP_SY = 16, /* symbols allowing breaks */
-  LBP_AI = 29, /* ambiguous (alphabetic or ideograph) */
-  LBP_AL = 17, /* ordinary alphabetic and symbol characters */
-  LBP_H2 = 18, /* Hangul LV syllable */
-  LBP_H3 = 19, /* Hangul LVT syllable */
-  LBP_ID = 20, /* ideographic */
-  LBP_JL = 21, /* Hangul L Jamo */
-  LBP_JV = 22, /* Hangul V Jamo */
-  LBP_JT = 23, /* Hangul T Jamo */
-  LBP_SA = 30, /* complex context (South East Asian) */
-  LBP_XX = 31  /* unknown */
+  LBP_CP =  7, /* closing parenthesis */
+  LBP_EX =  8, /* exclamation/interrogation */
+  LBP_IN =  9, /* inseparable */
+  LBP_NS = 10, /* non starter */
+  LBP_OP = 11, /* opening punctuation */
+  LBP_QU = 12, /* ambiguous quotation */
+  LBP_IS = 13, /* infix separator (numeric) */
+  LBP_NU = 14, /* numeric */
+  LBP_PO = 15, /* postfix (numeric) */
+  LBP_PR = 16, /* prefix (numeric) */
+  LBP_SY = 17, /* symbols allowing breaks */
+  LBP_AI = 30, /* ambiguous (alphabetic or ideograph) */
+  LBP_AL = 18, /* ordinary alphabetic and symbol characters */
+  LBP_H2 = 19, /* Hangul LV syllable */
+  LBP_H3 = 20, /* Hangul LVT syllable */
+  LBP_ID = 21, /* ideographic */
+  LBP_JL = 22, /* Hangul L Jamo */
+  LBP_JV = 23, /* Hangul V Jamo */
+  LBP_JT = 24, /* Hangul T Jamo */
+  LBP_SA = 31, /* complex context (South East Asian) */
+  LBP_XX = 32  /* unknown */
 };
 
 #include "lbrkprop1.h"
@@ -88,7 +89,7 @@ unilbrkprop_lookup (ucs4_t uc)
 #define I 2  /* indirect break opportunity, '%' in table 7.3 of UTR #14 */
 #define P 3  /* prohibited break,           '^' in table 7.3 of UTR #14 */
 
-extern const unsigned char unilbrk_table[24][24];
+extern const unsigned char unilbrk_table[25][25];
 
 /* We don't support line breaking of complex-context dependent characters
    (Thai, Lao, Myanmar, Khmer) yet, because it requires dictionary lookup. */
index 25b9851..1927c84 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking of UTF-16 strings.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index 152178e..2e743e1 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking of UTF-16 strings.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index c375a0c..a660ef6 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking of UTF-32 strings.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index c5803db..f477519 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking of UTF-32 strings.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index d65335e..5cc71a7 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking of UTF-8 strings.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index fffe62a..8b0fa44 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking of UTF-8 strings.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index 1ed9c82..423df1d 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking auxiliary functions.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index bd3c6e4..9dc912b 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking auxiliary functions.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index eed59b4..e3ed280 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking of strings.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index 16b3881..7c1ad73 100644 (file)
@@ -1,5 +1,5 @@
 /* Line breaking of strings.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index 1d0f81c..16873a9 100644 (file)
@@ -1,5 +1,6 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Association between Unicode characters and their names.
-   Copyright (C) 2000-2002, 2005, 2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 2000-2002, 2005, 2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
@@ -35,7 +36,8 @@ extern char *
 /* Looks up the Unicode character with a given name, in upper- or lowercase
    ASCII.  Returns the character if found, or UNINAME_INVALID if not found.  */
 extern ucs4_t
-       unicode_name_character (const char *name);
+       unicode_name_character (const char *name)
+       _UC_ATTRIBUTE_PURE;
 #define UNINAME_INVALID ((ucs4_t) 0xFFFF)
 
 #ifdef __cplusplus
diff --git a/lib/uniname.in.h b/lib/uniname.in.h
new file mode 100644 (file)
index 0000000..62f5b55
--- /dev/null
@@ -0,0 +1,46 @@
+/* Association between Unicode characters and their names.
+   Copyright (C) 2000-2002, 2005, 2007, 2009-2014 Free Software Foundation,
+   Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNINAME_H
+#define _UNINAME_H
+
+#include "unitypes.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Required size of buffer for a Unicode character name.  */
+#define UNINAME_MAX 256
+
+/* Looks up the name of a Unicode character, in uppercase ASCII.
+   Returns the filled buf, or NULL if the character does not have a name.  */
+extern char *
+       unicode_character_name (ucs4_t uc, char *buf);
+
+/* Looks up the Unicode character with a given name, in upper- or lowercase
+   ASCII.  Returns the character if found, or UNINAME_INVALID if not found.  */
+extern ucs4_t
+       unicode_name_character (const char *name)
+       _UC_ATTRIBUTE_PURE;
+#define UNINAME_INVALID ((ucs4_t) 0xFFFF)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNINAME_H */
index e4b81cc..8f4b32d 100644 (file)
@@ -1,5 +1,5 @@
 /* Association between Unicode characters and their names.
-   Copyright (C) 2000-2002, 2005-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2000-2002, 2005-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index 5fdcc22..3bcce42 100644 (file)
@@ -1,5 +1,6 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Normalization forms (composition and decomposition) of Unicode strings.
-   Copyright (C) 2001-2002, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -102,7 +103,8 @@ extern int
    Not all decompositions can be recombined using this function.  See the
    Unicode file CompositionExclusions.txt for details.  */
 extern ucs4_t
-       uc_composition (ucs4_t uc1, ucs4_t uc2);
+       uc_composition (ucs4_t uc1, ucs4_t uc2)
+       _UC_ATTRIBUTE_CONST;
 
 
 /* An object of type uninorm_t denotes a Unicode normalization form.  */
@@ -137,7 +139,9 @@ extern LIBUNISTRING_DLL_VARIABLE const struct unicode_normalization_form uninorm
 
 /* Return the decomposing variant of a normalization form.
    This maps NFC,NFD -> NFD and NFKC,NFKD -> NFKD.  */
-extern uninorm_t uninorm_decomposing_form (uninorm_t nf);
+extern uninorm_t
+       uninorm_decomposing_form (uninorm_t nf)
+       _UC_ATTRIBUTE_PURE;
 
 
 /* Return the specified normalization form of a string.  */
diff --git a/lib/uninorm.in.h b/lib/uninorm.in.h
new file mode 100644 (file)
index 0000000..5129e4d
--- /dev/null
@@ -0,0 +1,251 @@
+/* Normalization forms (composition and decomposition) of Unicode strings.
+   Copyright (C) 2001-2002, 2009-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNINORM_H
+#define _UNINORM_H
+
+/* Get LIBUNISTRING_DLL_VARIABLE.  */
+#include <unistring/woe32dll.h>
+
+/* Get size_t.  */
+#include <stddef.h>
+
+#include "unitypes.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Conventions:
+
+   All functions prefixed with u8_ operate on UTF-8 encoded strings.
+   Their unit is an uint8_t (1 byte).
+
+   All functions prefixed with u16_ operate on UTF-16 encoded strings.
+   Their unit is an uint16_t (a 2-byte word).
+
+   All functions prefixed with u32_ operate on UCS-4 encoded strings.
+   Their unit is an uint32_t (a 4-byte word).
+
+   All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly
+   n units.
+
+   Functions returning a string result take a (resultbuf, lengthp) argument
+   pair.  If resultbuf is not NULL and the result fits into *lengthp units,
+   it is put in resultbuf, and resultbuf is returned.  Otherwise, a freshly
+   allocated string is returned.  In both cases, *lengthp is set to the
+   length (number of units) of the returned string.  In case of error,
+   NULL is returned and errno is set.  */
+
+
+enum
+{
+  UC_DECOMP_CANONICAL,/*            Canonical decomposition.                  */
+  UC_DECOMP_FONT,    /*   <font>    A font variant (e.g. a blackletter form). */
+  UC_DECOMP_NOBREAK, /* <noBreak>   A no-break version of a space or hyphen.  */
+  UC_DECOMP_INITIAL, /* <initial>   An initial presentation form (Arabic).    */
+  UC_DECOMP_MEDIAL,  /*  <medial>   A medial presentation form (Arabic).      */
+  UC_DECOMP_FINAL,   /*  <final>    A final presentation form (Arabic).       */
+  UC_DECOMP_ISOLATED,/* <isolated>  An isolated presentation form (Arabic).   */
+  UC_DECOMP_CIRCLE,  /*  <circle>   An encircled form.                        */
+  UC_DECOMP_SUPER,   /*  <super>    A superscript form.                       */
+  UC_DECOMP_SUB,     /*   <sub>     A subscript form.                         */
+  UC_DECOMP_VERTICAL,/* <vertical>  A vertical layout presentation form.      */
+  UC_DECOMP_WIDE,    /*   <wide>    A wide (or zenkaku) compatibility character. */
+  UC_DECOMP_NARROW,  /*  <narrow>   A narrow (or hankaku) compatibility character. */
+  UC_DECOMP_SMALL,   /*  <small>    A small variant form (CNS compatibility). */
+  UC_DECOMP_SQUARE,  /*  <square>   A CJK squared font variant.               */
+  UC_DECOMP_FRACTION,/* <fraction>  A vulgar fraction form.                   */
+  UC_DECOMP_COMPAT   /*  <compat>   Otherwise unspecified compatibility character. */
+};
+
+/* Maximum size of decomposition of a single Unicode character.  */
+#define UC_DECOMPOSITION_MAX_LENGTH 32
+
+/* Return the character decomposition mapping of a Unicode character.
+   DECOMPOSITION must point to an array of at least UC_DECOMPOSITION_MAX_LENGTH
+   ucs_t elements.
+   When a decomposition exists, DECOMPOSITION[0..N-1] and *DECOMP_TAG are
+   filled and N is returned.  Otherwise -1 is returned.  */
+extern int
+       uc_decomposition (ucs4_t uc, int *decomp_tag, ucs4_t *decomposition);
+
+/* Return the canonical character decomposition mapping of a Unicode character.
+   DECOMPOSITION must point to an array of at least UC_DECOMPOSITION_MAX_LENGTH
+   ucs_t elements.
+   When a decomposition exists, DECOMPOSITION[0..N-1] is filled and N is
+   returned.  Otherwise -1 is returned.  */
+extern int
+       uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition);
+
+
+/* Attempt to combine the Unicode characters uc1, uc2.
+   uc1 is known to have canonical combining class 0.
+   Return the combination of uc1 and uc2, if it exists.
+   Return 0 otherwise.
+   Not all decompositions can be recombined using this function.  See the
+   Unicode file CompositionExclusions.txt for details.  */
+extern ucs4_t
+       uc_composition (ucs4_t uc1, ucs4_t uc2)
+       _UC_ATTRIBUTE_CONST;
+
+
+/* An object of type uninorm_t denotes a Unicode normalization form.  */
+struct unicode_normalization_form;
+typedef const struct unicode_normalization_form *uninorm_t;
+
+/* UNINORM_NFD: Normalization form D: canonical decomposition.  */
+extern LIBUNISTRING_DLL_VARIABLE const struct unicode_normalization_form uninorm_nfd;
+#define UNINORM_NFD (&uninorm_nfd)
+
+/* UNINORM_NFC: Normalization form C: canonical decomposition, then
+   canonical composition.  */
+extern LIBUNISTRING_DLL_VARIABLE const struct unicode_normalization_form uninorm_nfc;
+#define UNINORM_NFC (&uninorm_nfc)
+
+/* UNINORM_NFKD: Normalization form KD: compatibility decomposition.  */
+extern LIBUNISTRING_DLL_VARIABLE const struct unicode_normalization_form uninorm_nfkd;
+#define UNINORM_NFKD (&uninorm_nfkd)
+
+/* UNINORM_NFKC: Normalization form KC: compatibility decomposition, then
+   canonical composition.  */
+extern LIBUNISTRING_DLL_VARIABLE const struct unicode_normalization_form uninorm_nfkc;
+#define UNINORM_NFKC (&uninorm_nfkc)
+
+/* Test whether a normalization form does compatibility decomposition.  */
+#define uninorm_is_compat_decomposing(nf) \
+  ((* (const unsigned int *) (nf) >> 0) & 1)
+
+/* Test whether a normalization form includes canonical composition.  */
+#define uninorm_is_composing(nf) \
+  ((* (const unsigned int *) (nf) >> 1) & 1)
+
+/* Return the decomposing variant of a normalization form.
+   This maps NFC,NFD -> NFD and NFKC,NFKD -> NFKD.  */
+extern uninorm_t
+       uninorm_decomposing_form (uninorm_t nf)
+       _UC_ATTRIBUTE_PURE;
+
+
+/* Return the specified normalization form of a string.  */
+extern uint8_t *
+       u8_normalize (uninorm_t nf, const uint8_t *s, size_t n,
+                     uint8_t *resultbuf, size_t *lengthp);
+extern uint16_t *
+       u16_normalize (uninorm_t nf, const uint16_t *s, size_t n,
+                      uint16_t *resultbuf, size_t *lengthp);
+extern uint32_t *
+       u32_normalize (uninorm_t nf, const uint32_t *s, size_t n,
+                      uint32_t *resultbuf, size_t *lengthp);
+
+
+/* Compare S1 and S2, ignoring differences in normalization.
+   NF must be either UNINORM_NFD or UNINORM_NFKD.
+   If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and
+   return 0.  Upon failure, return -1 with errno set.  */
+extern int
+       u8_normcmp (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2,
+                   uninorm_t nf, int *resultp);
+extern int
+       u16_normcmp (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2,
+                    uninorm_t nf, int *resultp);
+extern int
+       u32_normcmp (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2,
+                    uninorm_t nf, int *resultp);
+
+
+/* Converts the string S of length N to a NUL-terminated byte sequence, in such
+   a way that comparing uN_normxfrm (S1) and uN_normxfrm (S2) with uN_cmp2() is
+   equivalent to comparing S1 and S2 with uN_normcoll().
+   NF must be either UNINORM_NFC or UNINORM_NFKC.  */
+extern char *
+       u8_normxfrm (const uint8_t *s, size_t n, uninorm_t nf,
+                    char *resultbuf, size_t *lengthp);
+extern char *
+       u16_normxfrm (const uint16_t *s, size_t n, uninorm_t nf,
+                     char *resultbuf, size_t *lengthp);
+extern char *
+       u32_normxfrm (const uint32_t *s, size_t n, uninorm_t nf,
+                     char *resultbuf, size_t *lengthp);
+
+
+/* Compare S1 and S2, ignoring differences in normalization, using the
+   collation rules of the current locale.
+   NF must be either UNINORM_NFC or UNINORM_NFKC.
+   If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and
+   return 0.  Upon failure, return -1 with errno set.  */
+extern int
+       u8_normcoll (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2,
+                    uninorm_t nf, int *resultp);
+extern int
+       u16_normcoll (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2,
+                     uninorm_t nf, int *resultp);
+extern int
+       u32_normcoll (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2,
+                     uninorm_t nf, int *resultp);
+
+
+/* Normalization of a stream of Unicode characters.
+
+   A "stream of Unicode characters" is essentially a function that accepts an
+   ucs4_t argument repeatedly, optionally combined with a function that
+   "flushes" the stream.  */
+
+/* Data type of a stream of Unicode characters that normalizes its input
+   according to a given normalization form and passes the normalized character
+   sequence to the encapsulated stream of Unicode characters.  */
+struct uninorm_filter;
+
+/* Create and return a normalization filter for Unicode characters.
+   The pair (stream_func, stream_data) is the encapsulated stream.
+   stream_func (stream_data, uc) receives the Unicode character uc
+   and returns 0 if successful, or -1 with errno set upon failure.
+   Return the new filter, or NULL with errno set upon failure.  */
+extern struct uninorm_filter *
+       uninorm_filter_create (uninorm_t nf,
+                              int (*stream_func) (void *stream_data, ucs4_t uc),
+                              void *stream_data);
+
+/* Stuff a Unicode character into a normalizing filter.
+   Return 0 if successful, or -1 with errno set upon failure.  */
+extern int
+       uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc);
+
+/* Bring data buffered in the filter to its destination, the encapsulated
+   stream.
+   Return 0 if successful, or -1 with errno set upon failure.
+   Note! If after calling this function, additional characters are written
+   into the filter, the resulting character sequence in the encapsulated stream
+   will not necessarily be normalized.  */
+extern int
+       uninorm_filter_flush (struct uninorm_filter *filter);
+
+/* Bring data buffered in the filter to its destination, the encapsulated
+   stream, then close and free the filter.
+   Return 0 if successful, or -1 with errno set upon failure.  */
+extern int
+       uninorm_filter_free (struct uninorm_filter *filter);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _UNINORM_H */
index e6e39e0..0e18a15 100644 (file)
@@ -1,5 +1,5 @@
 /* Canonical decomposition of Unicode characters.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -105,4 +105,3 @@ uc_canonical_decomposition (ucs4_t uc, ucs4_t *decomposition)
     }
   return -1;
 }
-
index 740cc5c..378c551 100644 (file)
@@ -1,5 +1,5 @@
 /* Compatibility decomposition of Unicode characters.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 4651725..c1bab90 100644 (file)
@@ -1,8 +1,8 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Canonical composition of Unicode characters.  */
-/* Generated automatically by gen-uni-tables for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables for Unicode 6.0.0.  */
 
-/* Copyright (C) 2009-2010 Free Software Foundation, Inc.
+/* Copyright (C) 2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -17,7 +17,7 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-struct composition_rule { char codes[4]; };
+struct composition_rule { char codes[6]; };
 %struct-type
 %language=ANSI-C
 %define slot-name codes
@@ -28,931 +28,934 @@ struct composition_rule { char codes[4]; };
 %readonly-tables
 %omit-struct-type
 %%
-"\x00\x41\x03\x00", 0x00c0
-"\x00\x41\x03\x01", 0x00c1
-"\x00\x41\x03\x02", 0x00c2
-"\x00\x41\x03\x03", 0x00c3
-"\x00\x41\x03\x08", 0x00c4
-"\x00\x41\x03\x0a", 0x00c5
-"\x00\x43\x03\x27", 0x00c7
-"\x00\x45\x03\x00", 0x00c8
-"\x00\x45\x03\x01", 0x00c9
-"\x00\x45\x03\x02", 0x00ca
-"\x00\x45\x03\x08", 0x00cb
-"\x00\x49\x03\x00", 0x00cc
-"\x00\x49\x03\x01", 0x00cd
-"\x00\x49\x03\x02", 0x00ce
-"\x00\x49\x03\x08", 0x00cf
-"\x00\x4e\x03\x03", 0x00d1
-"\x00\x4f\x03\x00", 0x00d2
-"\x00\x4f\x03\x01", 0x00d3
-"\x00\x4f\x03\x02", 0x00d4
-"\x00\x4f\x03\x03", 0x00d5
-"\x00\x4f\x03\x08", 0x00d6
-"\x00\x55\x03\x00", 0x00d9
-"\x00\x55\x03\x01", 0x00da
-"\x00\x55\x03\x02", 0x00db
-"\x00\x55\x03\x08", 0x00dc
-"\x00\x59\x03\x01", 0x00dd
-"\x00\x61\x03\x00", 0x00e0
-"\x00\x61\x03\x01", 0x00e1
-"\x00\x61\x03\x02", 0x00e2
-"\x00\x61\x03\x03", 0x00e3
-"\x00\x61\x03\x08", 0x00e4
-"\x00\x61\x03\x0a", 0x00e5
-"\x00\x63\x03\x27", 0x00e7
-"\x00\x65\x03\x00", 0x00e8
-"\x00\x65\x03\x01", 0x00e9
-"\x00\x65\x03\x02", 0x00ea
-"\x00\x65\x03\x08", 0x00eb
-"\x00\x69\x03\x00", 0x00ec
-"\x00\x69\x03\x01", 0x00ed
-"\x00\x69\x03\x02", 0x00ee
-"\x00\x69\x03\x08", 0x00ef
-"\x00\x6e\x03\x03", 0x00f1
-"\x00\x6f\x03\x00", 0x00f2
-"\x00\x6f\x03\x01", 0x00f3
-"\x00\x6f\x03\x02", 0x00f4
-"\x00\x6f\x03\x03", 0x00f5
-"\x00\x6f\x03\x08", 0x00f6
-"\x00\x75\x03\x00", 0x00f9
-"\x00\x75\x03\x01", 0x00fa
-"\x00\x75\x03\x02", 0x00fb
-"\x00\x75\x03\x08", 0x00fc
-"\x00\x79\x03\x01", 0x00fd
-"\x00\x79\x03\x08", 0x00ff
-"\x00\x41\x03\x04", 0x0100
-"\x00\x61\x03\x04", 0x0101
-"\x00\x41\x03\x06", 0x0102
-"\x00\x61\x03\x06", 0x0103
-"\x00\x41\x03\x28", 0x0104
-"\x00\x61\x03\x28", 0x0105
-"\x00\x43\x03\x01", 0x0106
-"\x00\x63\x03\x01", 0x0107
-"\x00\x43\x03\x02", 0x0108
-"\x00\x63\x03\x02", 0x0109
-"\x00\x43\x03\x07", 0x010a
-"\x00\x63\x03\x07", 0x010b
-"\x00\x43\x03\x0c", 0x010c
-"\x00\x63\x03\x0c", 0x010d
-"\x00\x44\x03\x0c", 0x010e
-"\x00\x64\x03\x0c", 0x010f
-"\x00\x45\x03\x04", 0x0112
-"\x00\x65\x03\x04", 0x0113
-"\x00\x45\x03\x06", 0x0114
-"\x00\x65\x03\x06", 0x0115
-"\x00\x45\x03\x07", 0x0116
-"\x00\x65\x03\x07", 0x0117
-"\x00\x45\x03\x28", 0x0118
-"\x00\x65\x03\x28", 0x0119
-"\x00\x45\x03\x0c", 0x011a
-"\x00\x65\x03\x0c", 0x011b
-"\x00\x47\x03\x02", 0x011c
-"\x00\x67\x03\x02", 0x011d
-"\x00\x47\x03\x06", 0x011e
-"\x00\x67\x03\x06", 0x011f
-"\x00\x47\x03\x07", 0x0120
-"\x00\x67\x03\x07", 0x0121
-"\x00\x47\x03\x27", 0x0122
-"\x00\x67\x03\x27", 0x0123
-"\x00\x48\x03\x02", 0x0124
-"\x00\x68\x03\x02", 0x0125
-"\x00\x49\x03\x03", 0x0128
-"\x00\x69\x03\x03", 0x0129
-"\x00\x49\x03\x04", 0x012a
-"\x00\x69\x03\x04", 0x012b
-"\x00\x49\x03\x06", 0x012c
-"\x00\x69\x03\x06", 0x012d
-"\x00\x49\x03\x28", 0x012e
-"\x00\x69\x03\x28", 0x012f
-"\x00\x49\x03\x07", 0x0130
-"\x00\x4a\x03\x02", 0x0134
-"\x00\x6a\x03\x02", 0x0135
-"\x00\x4b\x03\x27", 0x0136
-"\x00\x6b\x03\x27", 0x0137
-"\x00\x4c\x03\x01", 0x0139
-"\x00\x6c\x03\x01", 0x013a
-"\x00\x4c\x03\x27", 0x013b
-"\x00\x6c\x03\x27", 0x013c
-"\x00\x4c\x03\x0c", 0x013d
-"\x00\x6c\x03\x0c", 0x013e
-"\x00\x4e\x03\x01", 0x0143
-"\x00\x6e\x03\x01", 0x0144
-"\x00\x4e\x03\x27", 0x0145
-"\x00\x6e\x03\x27", 0x0146
-"\x00\x4e\x03\x0c", 0x0147
-"\x00\x6e\x03\x0c", 0x0148
-"\x00\x4f\x03\x04", 0x014c
-"\x00\x6f\x03\x04", 0x014d
-"\x00\x4f\x03\x06", 0x014e
-"\x00\x6f\x03\x06", 0x014f
-"\x00\x4f\x03\x0b", 0x0150
-"\x00\x6f\x03\x0b", 0x0151
-"\x00\x52\x03\x01", 0x0154
-"\x00\x72\x03\x01", 0x0155
-"\x00\x52\x03\x27", 0x0156
-"\x00\x72\x03\x27", 0x0157
-"\x00\x52\x03\x0c", 0x0158
-"\x00\x72\x03\x0c", 0x0159
-"\x00\x53\x03\x01", 0x015a
-"\x00\x73\x03\x01", 0x015b
-"\x00\x53\x03\x02", 0x015c
-"\x00\x73\x03\x02", 0x015d
-"\x00\x53\x03\x27", 0x015e
-"\x00\x73\x03\x27", 0x015f
-"\x00\x53\x03\x0c", 0x0160
-"\x00\x73\x03\x0c", 0x0161
-"\x00\x54\x03\x27", 0x0162
-"\x00\x74\x03\x27", 0x0163
-"\x00\x54\x03\x0c", 0x0164
-"\x00\x74\x03\x0c", 0x0165
-"\x00\x55\x03\x03", 0x0168
-"\x00\x75\x03\x03", 0x0169
-"\x00\x55\x03\x04", 0x016a
-"\x00\x75\x03\x04", 0x016b
-"\x00\x55\x03\x06", 0x016c
-"\x00\x75\x03\x06", 0x016d
-"\x00\x55\x03\x0a", 0x016e
-"\x00\x75\x03\x0a", 0x016f
-"\x00\x55\x03\x0b", 0x0170
-"\x00\x75\x03\x0b", 0x0171
-"\x00\x55\x03\x28", 0x0172
-"\x00\x75\x03\x28", 0x0173
-"\x00\x57\x03\x02", 0x0174
-"\x00\x77\x03\x02", 0x0175
-"\x00\x59\x03\x02", 0x0176
-"\x00\x79\x03\x02", 0x0177
-"\x00\x59\x03\x08", 0x0178
-"\x00\x5a\x03\x01", 0x0179
-"\x00\x7a\x03\x01", 0x017a
-"\x00\x5a\x03\x07", 0x017b
-"\x00\x7a\x03\x07", 0x017c
-"\x00\x5a\x03\x0c", 0x017d
-"\x00\x7a\x03\x0c", 0x017e
-"\x00\x4f\x03\x1b", 0x01a0
-"\x00\x6f\x03\x1b", 0x01a1
-"\x00\x55\x03\x1b", 0x01af
-"\x00\x75\x03\x1b", 0x01b0
-"\x00\x41\x03\x0c", 0x01cd
-"\x00\x61\x03\x0c", 0x01ce
-"\x00\x49\x03\x0c", 0x01cf
-"\x00\x69\x03\x0c", 0x01d0
-"\x00\x4f\x03\x0c", 0x01d1
-"\x00\x6f\x03\x0c", 0x01d2
-"\x00\x55\x03\x0c", 0x01d3
-"\x00\x75\x03\x0c", 0x01d4
-"\x00\xdc\x03\x04", 0x01d5
-"\x00\xfc\x03\x04", 0x01d6
-"\x00\xdc\x03\x01", 0x01d7
-"\x00\xfc\x03\x01", 0x01d8
-"\x00\xdc\x03\x0c", 0x01d9
-"\x00\xfc\x03\x0c", 0x01da
-"\x00\xdc\x03\x00", 0x01db
-"\x00\xfc\x03\x00", 0x01dc
-"\x00\xc4\x03\x04", 0x01de
-"\x00\xe4\x03\x04", 0x01df
-"\x02\x26\x03\x04", 0x01e0
-"\x02\x27\x03\x04", 0x01e1
-"\x00\xc6\x03\x04", 0x01e2
-"\x00\xe6\x03\x04", 0x01e3
-"\x00\x47\x03\x0c", 0x01e6
-"\x00\x67\x03\x0c", 0x01e7
-"\x00\x4b\x03\x0c", 0x01e8
-"\x00\x6b\x03\x0c", 0x01e9
-"\x00\x4f\x03\x28", 0x01ea
-"\x00\x6f\x03\x28", 0x01eb
-"\x01\xea\x03\x04", 0x01ec
-"\x01\xeb\x03\x04", 0x01ed
-"\x01\xb7\x03\x0c", 0x01ee
-"\x02\x92\x03\x0c", 0x01ef
-"\x00\x6a\x03\x0c", 0x01f0
-"\x00\x47\x03\x01", 0x01f4
-"\x00\x67\x03\x01", 0x01f5
-"\x00\x4e\x03\x00", 0x01f8
-"\x00\x6e\x03\x00", 0x01f9
-"\x00\xc5\x03\x01", 0x01fa
-"\x00\xe5\x03\x01", 0x01fb
-"\x00\xc6\x03\x01", 0x01fc
-"\x00\xe6\x03\x01", 0x01fd
-"\x00\xd8\x03\x01", 0x01fe
-"\x00\xf8\x03\x01", 0x01ff
-"\x00\x41\x03\x0f", 0x0200
-"\x00\x61\x03\x0f", 0x0201
-"\x00\x41\x03\x11", 0x0202
-"\x00\x61\x03\x11", 0x0203
-"\x00\x45\x03\x0f", 0x0204
-"\x00\x65\x03\x0f", 0x0205
-"\x00\x45\x03\x11", 0x0206
-"\x00\x65\x03\x11", 0x0207
-"\x00\x49\x03\x0f", 0x0208
-"\x00\x69\x03\x0f", 0x0209
-"\x00\x49\x03\x11", 0x020a
-"\x00\x69\x03\x11", 0x020b
-"\x00\x4f\x03\x0f", 0x020c
-"\x00\x6f\x03\x0f", 0x020d
-"\x00\x4f\x03\x11", 0x020e
-"\x00\x6f\x03\x11", 0x020f
-"\x00\x52\x03\x0f", 0x0210
-"\x00\x72\x03\x0f", 0x0211
-"\x00\x52\x03\x11", 0x0212
-"\x00\x72\x03\x11", 0x0213
-"\x00\x55\x03\x0f", 0x0214
-"\x00\x75\x03\x0f", 0x0215
-"\x00\x55\x03\x11", 0x0216
-"\x00\x75\x03\x11", 0x0217
-"\x00\x53\x03\x26", 0x0218
-"\x00\x73\x03\x26", 0x0219
-"\x00\x54\x03\x26", 0x021a
-"\x00\x74\x03\x26", 0x021b
-"\x00\x48\x03\x0c", 0x021e
-"\x00\x68\x03\x0c", 0x021f
-"\x00\x41\x03\x07", 0x0226
-"\x00\x61\x03\x07", 0x0227
-"\x00\x45\x03\x27", 0x0228
-"\x00\x65\x03\x27", 0x0229
-"\x00\xd6\x03\x04", 0x022a
-"\x00\xf6\x03\x04", 0x022b
-"\x00\xd5\x03\x04", 0x022c
-"\x00\xf5\x03\x04", 0x022d
-"\x00\x4f\x03\x07", 0x022e
-"\x00\x6f\x03\x07", 0x022f
-"\x02\x2e\x03\x04", 0x0230
-"\x02\x2f\x03\x04", 0x0231
-"\x00\x59\x03\x04", 0x0232
-"\x00\x79\x03\x04", 0x0233
-"\x00\xa8\x03\x01", 0x0385
-"\x03\x91\x03\x01", 0x0386
-"\x03\x95\x03\x01", 0x0388
-"\x03\x97\x03\x01", 0x0389
-"\x03\x99\x03\x01", 0x038a
-"\x03\x9f\x03\x01", 0x038c
-"\x03\xa5\x03\x01", 0x038e
-"\x03\xa9\x03\x01", 0x038f
-"\x03\xca\x03\x01", 0x0390
-"\x03\x99\x03\x08", 0x03aa
-"\x03\xa5\x03\x08", 0x03ab
-"\x03\xb1\x03\x01", 0x03ac
-"\x03\xb5\x03\x01", 0x03ad
-"\x03\xb7\x03\x01", 0x03ae
-"\x03\xb9\x03\x01", 0x03af
-"\x03\xcb\x03\x01", 0x03b0
-"\x03\xb9\x03\x08", 0x03ca
-"\x03\xc5\x03\x08", 0x03cb
-"\x03\xbf\x03\x01", 0x03cc
-"\x03\xc5\x03\x01", 0x03cd
-"\x03\xc9\x03\x01", 0x03ce
-"\x03\xd2\x03\x01", 0x03d3
-"\x03\xd2\x03\x08", 0x03d4
-"\x04\x15\x03\x00", 0x0400
-"\x04\x15\x03\x08", 0x0401
-"\x04\x13\x03\x01", 0x0403
-"\x04\x06\x03\x08", 0x0407
-"\x04\x1a\x03\x01", 0x040c
-"\x04\x18\x03\x00", 0x040d
-"\x04\x23\x03\x06", 0x040e
-"\x04\x18\x03\x06", 0x0419
-"\x04\x38\x03\x06", 0x0439
-"\x04\x35\x03\x00", 0x0450
-"\x04\x35\x03\x08", 0x0451
-"\x04\x33\x03\x01", 0x0453
-"\x04\x56\x03\x08", 0x0457
-"\x04\x3a\x03\x01", 0x045c
-"\x04\x38\x03\x00", 0x045d
-"\x04\x43\x03\x06", 0x045e
-"\x04\x74\x03\x0f", 0x0476
-"\x04\x75\x03\x0f", 0x0477
-"\x04\x16\x03\x06", 0x04c1
-"\x04\x36\x03\x06", 0x04c2
-"\x04\x10\x03\x06", 0x04d0
-"\x04\x30\x03\x06", 0x04d1
-"\x04\x10\x03\x08", 0x04d2
-"\x04\x30\x03\x08", 0x04d3
-"\x04\x15\x03\x06", 0x04d6
-"\x04\x35\x03\x06", 0x04d7
-"\x04\xd8\x03\x08", 0x04da
-"\x04\xd9\x03\x08", 0x04db
-"\x04\x16\x03\x08", 0x04dc
-"\x04\x36\x03\x08", 0x04dd
-"\x04\x17\x03\x08", 0x04de
-"\x04\x37\x03\x08", 0x04df
-"\x04\x18\x03\x04", 0x04e2
-"\x04\x38\x03\x04", 0x04e3
-"\x04\x18\x03\x08", 0x04e4
-"\x04\x38\x03\x08", 0x04e5
-"\x04\x1e\x03\x08", 0x04e6
-"\x04\x3e\x03\x08", 0x04e7
-"\x04\xe8\x03\x08", 0x04ea
-"\x04\xe9\x03\x08", 0x04eb
-"\x04\x2d\x03\x08", 0x04ec
-"\x04\x4d\x03\x08", 0x04ed
-"\x04\x23\x03\x04", 0x04ee
-"\x04\x43\x03\x04", 0x04ef
-"\x04\x23\x03\x08", 0x04f0
-"\x04\x43\x03\x08", 0x04f1
-"\x04\x23\x03\x0b", 0x04f2
-"\x04\x43\x03\x0b", 0x04f3
-"\x04\x27\x03\x08", 0x04f4
-"\x04\x47\x03\x08", 0x04f5
-"\x04\x2b\x03\x08", 0x04f8
-"\x04\x4b\x03\x08", 0x04f9
-"\x06\x27\x06\x53", 0x0622
-"\x06\x27\x06\x54", 0x0623
-"\x06\x48\x06\x54", 0x0624
-"\x06\x27\x06\x55", 0x0625
-"\x06\x4a\x06\x54", 0x0626
-"\x06\xd5\x06\x54", 0x06c0
-"\x06\xc1\x06\x54", 0x06c2
-"\x06\xd2\x06\x54", 0x06d3
-"\x09\x28\x09\x3c", 0x0929
-"\x09\x30\x09\x3c", 0x0931
-"\x09\x33\x09\x3c", 0x0934
-"\x09\xc7\x09\xbe", 0x09cb
-"\x09\xc7\x09\xd7", 0x09cc
-"\x0b\x47\x0b\x56", 0x0b48
-"\x0b\x47\x0b\x3e", 0x0b4b
-"\x0b\x47\x0b\x57", 0x0b4c
-"\x0b\x92\x0b\xd7", 0x0b94
-"\x0b\xc6\x0b\xbe", 0x0bca
-"\x0b\xc7\x0b\xbe", 0x0bcb
-"\x0b\xc6\x0b\xd7", 0x0bcc
-"\x0c\x46\x0c\x56", 0x0c48
-"\x0c\xbf\x0c\xd5", 0x0cc0
-"\x0c\xc6\x0c\xd5", 0x0cc7
-"\x0c\xc6\x0c\xd6", 0x0cc8
-"\x0c\xc6\x0c\xc2", 0x0cca
-"\x0c\xca\x0c\xd5", 0x0ccb
-"\x0d\x46\x0d\x3e", 0x0d4a
-"\x0d\x47\x0d\x3e", 0x0d4b
-"\x0d\x46\x0d\x57", 0x0d4c
-"\x0d\xd9\x0d\xca", 0x0dda
-"\x0d\xd9\x0d\xcf", 0x0ddc
-"\x0d\xdc\x0d\xca", 0x0ddd
-"\x0d\xd9\x0d\xdf", 0x0dde
-"\x10\x25\x10\x2e", 0x1026
-"\x1b\x05\x1b\x35", 0x1b06
-"\x1b\x07\x1b\x35", 0x1b08
-"\x1b\x09\x1b\x35", 0x1b0a
-"\x1b\x0b\x1b\x35", 0x1b0c
-"\x1b\x0d\x1b\x35", 0x1b0e
-"\x1b\x11\x1b\x35", 0x1b12
-"\x1b\x3a\x1b\x35", 0x1b3b
-"\x1b\x3c\x1b\x35", 0x1b3d
-"\x1b\x3e\x1b\x35", 0x1b40
-"\x1b\x3f\x1b\x35", 0x1b41
-"\x1b\x42\x1b\x35", 0x1b43
-"\x00\x41\x03\x25", 0x1e00
-"\x00\x61\x03\x25", 0x1e01
-"\x00\x42\x03\x07", 0x1e02
-"\x00\x62\x03\x07", 0x1e03
-"\x00\x42\x03\x23", 0x1e04
-"\x00\x62\x03\x23", 0x1e05
-"\x00\x42\x03\x31", 0x1e06
-"\x00\x62\x03\x31", 0x1e07
-"\x00\xc7\x03\x01", 0x1e08
-"\x00\xe7\x03\x01", 0x1e09
-"\x00\x44\x03\x07", 0x1e0a
-"\x00\x64\x03\x07", 0x1e0b
-"\x00\x44\x03\x23", 0x1e0c
-"\x00\x64\x03\x23", 0x1e0d
-"\x00\x44\x03\x31", 0x1e0e
-"\x00\x64\x03\x31", 0x1e0f
-"\x00\x44\x03\x27", 0x1e10
-"\x00\x64\x03\x27", 0x1e11
-"\x00\x44\x03\x2d", 0x1e12
-"\x00\x64\x03\x2d", 0x1e13
-"\x01\x12\x03\x00", 0x1e14
-"\x01\x13\x03\x00", 0x1e15
-"\x01\x12\x03\x01", 0x1e16
-"\x01\x13\x03\x01", 0x1e17
-"\x00\x45\x03\x2d", 0x1e18
-"\x00\x65\x03\x2d", 0x1e19
-"\x00\x45\x03\x30", 0x1e1a
-"\x00\x65\x03\x30", 0x1e1b
-"\x02\x28\x03\x06", 0x1e1c
-"\x02\x29\x03\x06", 0x1e1d
-"\x00\x46\x03\x07", 0x1e1e
-"\x00\x66\x03\x07", 0x1e1f
-"\x00\x47\x03\x04", 0x1e20
-"\x00\x67\x03\x04", 0x1e21
-"\x00\x48\x03\x07", 0x1e22
-"\x00\x68\x03\x07", 0x1e23
-"\x00\x48\x03\x23", 0x1e24
-"\x00\x68\x03\x23", 0x1e25
-"\x00\x48\x03\x08", 0x1e26
-"\x00\x68\x03\x08", 0x1e27
-"\x00\x48\x03\x27", 0x1e28
-"\x00\x68\x03\x27", 0x1e29
-"\x00\x48\x03\x2e", 0x1e2a
-"\x00\x68\x03\x2e", 0x1e2b
-"\x00\x49\x03\x30", 0x1e2c
-"\x00\x69\x03\x30", 0x1e2d
-"\x00\xcf\x03\x01", 0x1e2e
-"\x00\xef\x03\x01", 0x1e2f
-"\x00\x4b\x03\x01", 0x1e30
-"\x00\x6b\x03\x01", 0x1e31
-"\x00\x4b\x03\x23", 0x1e32
-"\x00\x6b\x03\x23", 0x1e33
-"\x00\x4b\x03\x31", 0x1e34
-"\x00\x6b\x03\x31", 0x1e35
-"\x00\x4c\x03\x23", 0x1e36
-"\x00\x6c\x03\x23", 0x1e37
-"\x1e\x36\x03\x04", 0x1e38
-"\x1e\x37\x03\x04", 0x1e39
-"\x00\x4c\x03\x31", 0x1e3a
-"\x00\x6c\x03\x31", 0x1e3b
-"\x00\x4c\x03\x2d", 0x1e3c
-"\x00\x6c\x03\x2d", 0x1e3d
-"\x00\x4d\x03\x01", 0x1e3e
-"\x00\x6d\x03\x01", 0x1e3f
-"\x00\x4d\x03\x07", 0x1e40
-"\x00\x6d\x03\x07", 0x1e41
-"\x00\x4d\x03\x23", 0x1e42
-"\x00\x6d\x03\x23", 0x1e43
-"\x00\x4e\x03\x07", 0x1e44
-"\x00\x6e\x03\x07", 0x1e45
-"\x00\x4e\x03\x23", 0x1e46
-"\x00\x6e\x03\x23", 0x1e47
-"\x00\x4e\x03\x31", 0x1e48
-"\x00\x6e\x03\x31", 0x1e49
-"\x00\x4e\x03\x2d", 0x1e4a
-"\x00\x6e\x03\x2d", 0x1e4b
-"\x00\xd5\x03\x01", 0x1e4c
-"\x00\xf5\x03\x01", 0x1e4d
-"\x00\xd5\x03\x08", 0x1e4e
-"\x00\xf5\x03\x08", 0x1e4f
-"\x01\x4c\x03\x00", 0x1e50
-"\x01\x4d\x03\x00", 0x1e51
-"\x01\x4c\x03\x01", 0x1e52
-"\x01\x4d\x03\x01", 0x1e53
-"\x00\x50\x03\x01", 0x1e54
-"\x00\x70\x03\x01", 0x1e55
-"\x00\x50\x03\x07", 0x1e56
-"\x00\x70\x03\x07", 0x1e57
-"\x00\x52\x03\x07", 0x1e58
-"\x00\x72\x03\x07", 0x1e59
-"\x00\x52\x03\x23", 0x1e5a
-"\x00\x72\x03\x23", 0x1e5b
-"\x1e\x5a\x03\x04", 0x1e5c
-"\x1e\x5b\x03\x04", 0x1e5d
-"\x00\x52\x03\x31", 0x1e5e
-"\x00\x72\x03\x31", 0x1e5f
-"\x00\x53\x03\x07", 0x1e60
-"\x00\x73\x03\x07", 0x1e61
-"\x00\x53\x03\x23", 0x1e62
-"\x00\x73\x03\x23", 0x1e63
-"\x01\x5a\x03\x07", 0x1e64
-"\x01\x5b\x03\x07", 0x1e65
-"\x01\x60\x03\x07", 0x1e66
-"\x01\x61\x03\x07", 0x1e67
-"\x1e\x62\x03\x07", 0x1e68
-"\x1e\x63\x03\x07", 0x1e69
-"\x00\x54\x03\x07", 0x1e6a
-"\x00\x74\x03\x07", 0x1e6b
-"\x00\x54\x03\x23", 0x1e6c
-"\x00\x74\x03\x23", 0x1e6d
-"\x00\x54\x03\x31", 0x1e6e
-"\x00\x74\x03\x31", 0x1e6f
-"\x00\x54\x03\x2d", 0x1e70
-"\x00\x74\x03\x2d", 0x1e71
-"\x00\x55\x03\x24", 0x1e72
-"\x00\x75\x03\x24", 0x1e73
-"\x00\x55\x03\x30", 0x1e74
-"\x00\x75\x03\x30", 0x1e75
-"\x00\x55\x03\x2d", 0x1e76
-"\x00\x75\x03\x2d", 0x1e77
-"\x01\x68\x03\x01", 0x1e78
-"\x01\x69\x03\x01", 0x1e79
-"\x01\x6a\x03\x08", 0x1e7a
-"\x01\x6b\x03\x08", 0x1e7b
-"\x00\x56\x03\x03", 0x1e7c
-"\x00\x76\x03\x03", 0x1e7d
-"\x00\x56\x03\x23", 0x1e7e
-"\x00\x76\x03\x23", 0x1e7f
-"\x00\x57\x03\x00", 0x1e80
-"\x00\x77\x03\x00", 0x1e81
-"\x00\x57\x03\x01", 0x1e82
-"\x00\x77\x03\x01", 0x1e83
-"\x00\x57\x03\x08", 0x1e84
-"\x00\x77\x03\x08", 0x1e85
-"\x00\x57\x03\x07", 0x1e86
-"\x00\x77\x03\x07", 0x1e87
-"\x00\x57\x03\x23", 0x1e88
-"\x00\x77\x03\x23", 0x1e89
-"\x00\x58\x03\x07", 0x1e8a
-"\x00\x78\x03\x07", 0x1e8b
-"\x00\x58\x03\x08", 0x1e8c
-"\x00\x78\x03\x08", 0x1e8d
-"\x00\x59\x03\x07", 0x1e8e
-"\x00\x79\x03\x07", 0x1e8f
-"\x00\x5a\x03\x02", 0x1e90
-"\x00\x7a\x03\x02", 0x1e91
-"\x00\x5a\x03\x23", 0x1e92
-"\x00\x7a\x03\x23", 0x1e93
-"\x00\x5a\x03\x31", 0x1e94
-"\x00\x7a\x03\x31", 0x1e95
-"\x00\x68\x03\x31", 0x1e96
-"\x00\x74\x03\x08", 0x1e97
-"\x00\x77\x03\x0a", 0x1e98
-"\x00\x79\x03\x0a", 0x1e99
-"\x01\x7f\x03\x07", 0x1e9b
-"\x00\x41\x03\x23", 0x1ea0
-"\x00\x61\x03\x23", 0x1ea1
-"\x00\x41\x03\x09", 0x1ea2
-"\x00\x61\x03\x09", 0x1ea3
-"\x00\xc2\x03\x01", 0x1ea4
-"\x00\xe2\x03\x01", 0x1ea5
-"\x00\xc2\x03\x00", 0x1ea6
-"\x00\xe2\x03\x00", 0x1ea7
-"\x00\xc2\x03\x09", 0x1ea8
-"\x00\xe2\x03\x09", 0x1ea9
-"\x00\xc2\x03\x03", 0x1eaa
-"\x00\xe2\x03\x03", 0x1eab
-"\x1e\xa0\x03\x02", 0x1eac
-"\x1e\xa1\x03\x02", 0x1ead
-"\x01\x02\x03\x01", 0x1eae
-"\x01\x03\x03\x01", 0x1eaf
-"\x01\x02\x03\x00", 0x1eb0
-"\x01\x03\x03\x00", 0x1eb1
-"\x01\x02\x03\x09", 0x1eb2
-"\x01\x03\x03\x09", 0x1eb3
-"\x01\x02\x03\x03", 0x1eb4
-"\x01\x03\x03\x03", 0x1eb5
-"\x1e\xa0\x03\x06", 0x1eb6
-"\x1e\xa1\x03\x06", 0x1eb7
-"\x00\x45\x03\x23", 0x1eb8
-"\x00\x65\x03\x23", 0x1eb9
-"\x00\x45\x03\x09", 0x1eba
-"\x00\x65\x03\x09", 0x1ebb
-"\x00\x45\x03\x03", 0x1ebc
-"\x00\x65\x03\x03", 0x1ebd
-"\x00\xca\x03\x01", 0x1ebe
-"\x00\xea\x03\x01", 0x1ebf
-"\x00\xca\x03\x00", 0x1ec0
-"\x00\xea\x03\x00", 0x1ec1
-"\x00\xca\x03\x09", 0x1ec2
-"\x00\xea\x03\x09", 0x1ec3
-"\x00\xca\x03\x03", 0x1ec4
-"\x00\xea\x03\x03", 0x1ec5
-"\x1e\xb8\x03\x02", 0x1ec6
-"\x1e\xb9\x03\x02", 0x1ec7
-"\x00\x49\x03\x09", 0x1ec8
-"\x00\x69\x03\x09", 0x1ec9
-"\x00\x49\x03\x23", 0x1eca
-"\x00\x69\x03\x23", 0x1ecb
-"\x00\x4f\x03\x23", 0x1ecc
-"\x00\x6f\x03\x23", 0x1ecd
-"\x00\x4f\x03\x09", 0x1ece
-"\x00\x6f\x03\x09", 0x1ecf
-"\x00\xd4\x03\x01", 0x1ed0
-"\x00\xf4\x03\x01", 0x1ed1
-"\x00\xd4\x03\x00", 0x1ed2
-"\x00\xf4\x03\x00", 0x1ed3
-"\x00\xd4\x03\x09", 0x1ed4
-"\x00\xf4\x03\x09", 0x1ed5
-"\x00\xd4\x03\x03", 0x1ed6
-"\x00\xf4\x03\x03", 0x1ed7
-"\x1e\xcc\x03\x02", 0x1ed8
-"\x1e\xcd\x03\x02", 0x1ed9
-"\x01\xa0\x03\x01", 0x1eda
-"\x01\xa1\x03\x01", 0x1edb
-"\x01\xa0\x03\x00", 0x1edc
-"\x01\xa1\x03\x00", 0x1edd
-"\x01\xa0\x03\x09", 0x1ede
-"\x01\xa1\x03\x09", 0x1edf
-"\x01\xa0\x03\x03", 0x1ee0
-"\x01\xa1\x03\x03", 0x1ee1
-"\x01\xa0\x03\x23", 0x1ee2
-"\x01\xa1\x03\x23", 0x1ee3
-"\x00\x55\x03\x23", 0x1ee4
-"\x00\x75\x03\x23", 0x1ee5
-"\x00\x55\x03\x09", 0x1ee6
-"\x00\x75\x03\x09", 0x1ee7
-"\x01\xaf\x03\x01", 0x1ee8
-"\x01\xb0\x03\x01", 0x1ee9
-"\x01\xaf\x03\x00", 0x1eea
-"\x01\xb0\x03\x00", 0x1eeb
-"\x01\xaf\x03\x09", 0x1eec
-"\x01\xb0\x03\x09", 0x1eed
-"\x01\xaf\x03\x03", 0x1eee
-"\x01\xb0\x03\x03", 0x1eef
-"\x01\xaf\x03\x23", 0x1ef0
-"\x01\xb0\x03\x23", 0x1ef1
-"\x00\x59\x03\x00", 0x1ef2
-"\x00\x79\x03\x00", 0x1ef3
-"\x00\x59\x03\x23", 0x1ef4
-"\x00\x79\x03\x23", 0x1ef5
-"\x00\x59\x03\x09", 0x1ef6
-"\x00\x79\x03\x09", 0x1ef7
-"\x00\x59\x03\x03", 0x1ef8
-"\x00\x79\x03\x03", 0x1ef9
-"\x03\xb1\x03\x13", 0x1f00
-"\x03\xb1\x03\x14", 0x1f01
-"\x1f\x00\x03\x00", 0x1f02
-"\x1f\x01\x03\x00", 0x1f03
-"\x1f\x00\x03\x01", 0x1f04
-"\x1f\x01\x03\x01", 0x1f05
-"\x1f\x00\x03\x42", 0x1f06
-"\x1f\x01\x03\x42", 0x1f07
-"\x03\x91\x03\x13", 0x1f08
-"\x03\x91\x03\x14", 0x1f09
-"\x1f\x08\x03\x00", 0x1f0a
-"\x1f\x09\x03\x00", 0x1f0b
-"\x1f\x08\x03\x01", 0x1f0c
-"\x1f\x09\x03\x01", 0x1f0d
-"\x1f\x08\x03\x42", 0x1f0e
-"\x1f\x09\x03\x42", 0x1f0f
-"\x03\xb5\x03\x13", 0x1f10
-"\x03\xb5\x03\x14", 0x1f11
-"\x1f\x10\x03\x00", 0x1f12
-"\x1f\x11\x03\x00", 0x1f13
-"\x1f\x10\x03\x01", 0x1f14
-"\x1f\x11\x03\x01", 0x1f15
-"\x03\x95\x03\x13", 0x1f18
-"\x03\x95\x03\x14", 0x1f19
-"\x1f\x18\x03\x00", 0x1f1a
-"\x1f\x19\x03\x00", 0x1f1b
-"\x1f\x18\x03\x01", 0x1f1c
-"\x1f\x19\x03\x01", 0x1f1d
-"\x03\xb7\x03\x13", 0x1f20
-"\x03\xb7\x03\x14", 0x1f21
-"\x1f\x20\x03\x00", 0x1f22
-"\x1f\x21\x03\x00", 0x1f23
-"\x1f\x20\x03\x01", 0x1f24
-"\x1f\x21\x03\x01", 0x1f25
-"\x1f\x20\x03\x42", 0x1f26
-"\x1f\x21\x03\x42", 0x1f27
-"\x03\x97\x03\x13", 0x1f28
-"\x03\x97\x03\x14", 0x1f29
-"\x1f\x28\x03\x00", 0x1f2a
-"\x1f\x29\x03\x00", 0x1f2b
-"\x1f\x28\x03\x01", 0x1f2c
-"\x1f\x29\x03\x01", 0x1f2d
-"\x1f\x28\x03\x42", 0x1f2e
-"\x1f\x29\x03\x42", 0x1f2f
-"\x03\xb9\x03\x13", 0x1f30
-"\x03\xb9\x03\x14", 0x1f31
-"\x1f\x30\x03\x00", 0x1f32
-"\x1f\x31\x03\x00", 0x1f33
-"\x1f\x30\x03\x01", 0x1f34
-"\x1f\x31\x03\x01", 0x1f35
-"\x1f\x30\x03\x42", 0x1f36
-"\x1f\x31\x03\x42", 0x1f37
-"\x03\x99\x03\x13", 0x1f38
-"\x03\x99\x03\x14", 0x1f39
-"\x1f\x38\x03\x00", 0x1f3a
-"\x1f\x39\x03\x00", 0x1f3b
-"\x1f\x38\x03\x01", 0x1f3c
-"\x1f\x39\x03\x01", 0x1f3d
-"\x1f\x38\x03\x42", 0x1f3e
-"\x1f\x39\x03\x42", 0x1f3f
-"\x03\xbf\x03\x13", 0x1f40
-"\x03\xbf\x03\x14", 0x1f41
-"\x1f\x40\x03\x00", 0x1f42
-"\x1f\x41\x03\x00", 0x1f43
-"\x1f\x40\x03\x01", 0x1f44
-"\x1f\x41\x03\x01", 0x1f45
-"\x03\x9f\x03\x13", 0x1f48
-"\x03\x9f\x03\x14", 0x1f49
-"\x1f\x48\x03\x00", 0x1f4a
-"\x1f\x49\x03\x00", 0x1f4b
-"\x1f\x48\x03\x01", 0x1f4c
-"\x1f\x49\x03\x01", 0x1f4d
-"\x03\xc5\x03\x13", 0x1f50
-"\x03\xc5\x03\x14", 0x1f51
-"\x1f\x50\x03\x00", 0x1f52
-"\x1f\x51\x03\x00", 0x1f53
-"\x1f\x50\x03\x01", 0x1f54
-"\x1f\x51\x03\x01", 0x1f55
-"\x1f\x50\x03\x42", 0x1f56
-"\x1f\x51\x03\x42", 0x1f57
-"\x03\xa5\x03\x14", 0x1f59
-"\x1f\x59\x03\x00", 0x1f5b
-"\x1f\x59\x03\x01", 0x1f5d
-"\x1f\x59\x03\x42", 0x1f5f
-"\x03\xc9\x03\x13", 0x1f60
-"\x03\xc9\x03\x14", 0x1f61
-"\x1f\x60\x03\x00", 0x1f62
-"\x1f\x61\x03\x00", 0x1f63
-"\x1f\x60\x03\x01", 0x1f64
-"\x1f\x61\x03\x01", 0x1f65
-"\x1f\x60\x03\x42", 0x1f66
-"\x1f\x61\x03\x42", 0x1f67
-"\x03\xa9\x03\x13", 0x1f68
-"\x03\xa9\x03\x14", 0x1f69
-"\x1f\x68\x03\x00", 0x1f6a
-"\x1f\x69\x03\x00", 0x1f6b
-"\x1f\x68\x03\x01", 0x1f6c
-"\x1f\x69\x03\x01", 0x1f6d
-"\x1f\x68\x03\x42", 0x1f6e
-"\x1f\x69\x03\x42", 0x1f6f
-"\x03\xb1\x03\x00", 0x1f70
-"\x03\xb5\x03\x00", 0x1f72
-"\x03\xb7\x03\x00", 0x1f74
-"\x03\xb9\x03\x00", 0x1f76
-"\x03\xbf\x03\x00", 0x1f78
-"\x03\xc5\x03\x00", 0x1f7a
-"\x03\xc9\x03\x00", 0x1f7c
-"\x1f\x00\x03\x45", 0x1f80
-"\x1f\x01\x03\x45", 0x1f81
-"\x1f\x02\x03\x45", 0x1f82
-"\x1f\x03\x03\x45", 0x1f83
-"\x1f\x04\x03\x45", 0x1f84
-"\x1f\x05\x03\x45", 0x1f85
-"\x1f\x06\x03\x45", 0x1f86
-"\x1f\x07\x03\x45", 0x1f87
-"\x1f\x08\x03\x45", 0x1f88
-"\x1f\x09\x03\x45", 0x1f89
-"\x1f\x0a\x03\x45", 0x1f8a
-"\x1f\x0b\x03\x45", 0x1f8b
-"\x1f\x0c\x03\x45", 0x1f8c
-"\x1f\x0d\x03\x45", 0x1f8d
-"\x1f\x0e\x03\x45", 0x1f8e
-"\x1f\x0f\x03\x45", 0x1f8f
-"\x1f\x20\x03\x45", 0x1f90
-"\x1f\x21\x03\x45", 0x1f91
-"\x1f\x22\x03\x45", 0x1f92
-"\x1f\x23\x03\x45", 0x1f93
-"\x1f\x24\x03\x45", 0x1f94
-"\x1f\x25\x03\x45", 0x1f95
-"\x1f\x26\x03\x45", 0x1f96
-"\x1f\x27\x03\x45", 0x1f97
-"\x1f\x28\x03\x45", 0x1f98
-"\x1f\x29\x03\x45", 0x1f99
-"\x1f\x2a\x03\x45", 0x1f9a
-"\x1f\x2b\x03\x45", 0x1f9b
-"\x1f\x2c\x03\x45", 0x1f9c
-"\x1f\x2d\x03\x45", 0x1f9d
-"\x1f\x2e\x03\x45", 0x1f9e
-"\x1f\x2f\x03\x45", 0x1f9f
-"\x1f\x60\x03\x45", 0x1fa0
-"\x1f\x61\x03\x45", 0x1fa1
-"\x1f\x62\x03\x45", 0x1fa2
-"\x1f\x63\x03\x45", 0x1fa3
-"\x1f\x64\x03\x45", 0x1fa4
-"\x1f\x65\x03\x45", 0x1fa5
-"\x1f\x66\x03\x45", 0x1fa6
-"\x1f\x67\x03\x45", 0x1fa7
-"\x1f\x68\x03\x45", 0x1fa8
-"\x1f\x69\x03\x45", 0x1fa9
-"\x1f\x6a\x03\x45", 0x1faa
-"\x1f\x6b\x03\x45", 0x1fab
-"\x1f\x6c\x03\x45", 0x1fac
-"\x1f\x6d\x03\x45", 0x1fad
-"\x1f\x6e\x03\x45", 0x1fae
-"\x1f\x6f\x03\x45", 0x1faf
-"\x03\xb1\x03\x06", 0x1fb0
-"\x03\xb1\x03\x04", 0x1fb1
-"\x1f\x70\x03\x45", 0x1fb2
-"\x03\xb1\x03\x45", 0x1fb3
-"\x03\xac\x03\x45", 0x1fb4
-"\x03\xb1\x03\x42", 0x1fb6
-"\x1f\xb6\x03\x45", 0x1fb7
-"\x03\x91\x03\x06", 0x1fb8
-"\x03\x91\x03\x04", 0x1fb9
-"\x03\x91\x03\x00", 0x1fba
-"\x03\x91\x03\x45", 0x1fbc
-"\x00\xa8\x03\x42", 0x1fc1
-"\x1f\x74\x03\x45", 0x1fc2
-"\x03\xb7\x03\x45", 0x1fc3
-"\x03\xae\x03\x45", 0x1fc4
-"\x03\xb7\x03\x42", 0x1fc6
-"\x1f\xc6\x03\x45", 0x1fc7
-"\x03\x95\x03\x00", 0x1fc8
-"\x03\x97\x03\x00", 0x1fca
-"\x03\x97\x03\x45", 0x1fcc
-"\x1f\xbf\x03\x00", 0x1fcd
-"\x1f\xbf\x03\x01", 0x1fce
-"\x1f\xbf\x03\x42", 0x1fcf
-"\x03\xb9\x03\x06", 0x1fd0
-"\x03\xb9\x03\x04", 0x1fd1
-"\x03\xca\x03\x00", 0x1fd2
-"\x03\xb9\x03\x42", 0x1fd6
-"\x03\xca\x03\x42", 0x1fd7
-"\x03\x99\x03\x06", 0x1fd8
-"\x03\x99\x03\x04", 0x1fd9
-"\x03\x99\x03\x00", 0x1fda
-"\x1f\xfe\x03\x00", 0x1fdd
-"\x1f\xfe\x03\x01", 0x1fde
-"\x1f\xfe\x03\x42", 0x1fdf
-"\x03\xc5\x03\x06", 0x1fe0
-"\x03\xc5\x03\x04", 0x1fe1
-"\x03\xcb\x03\x00", 0x1fe2
-"\x03\xc1\x03\x13", 0x1fe4
-"\x03\xc1\x03\x14", 0x1fe5
-"\x03\xc5\x03\x42", 0x1fe6
-"\x03\xcb\x03\x42", 0x1fe7
-"\x03\xa5\x03\x06", 0x1fe8
-"\x03\xa5\x03\x04", 0x1fe9
-"\x03\xa5\x03\x00", 0x1fea
-"\x03\xa1\x03\x14", 0x1fec
-"\x00\xa8\x03\x00", 0x1fed
-"\x1f\x7c\x03\x45", 0x1ff2
-"\x03\xc9\x03\x45", 0x1ff3
-"\x03\xce\x03\x45", 0x1ff4
-"\x03\xc9\x03\x42", 0x1ff6
-"\x1f\xf6\x03\x45", 0x1ff7
-"\x03\x9f\x03\x00", 0x1ff8
-"\x03\xa9\x03\x00", 0x1ffa
-"\x03\xa9\x03\x45", 0x1ffc
-"\x21\x90\x03\x38", 0x219a
-"\x21\x92\x03\x38", 0x219b
-"\x21\x94\x03\x38", 0x21ae
-"\x21\xd0\x03\x38", 0x21cd
-"\x21\xd4\x03\x38", 0x21ce
-"\x21\xd2\x03\x38", 0x21cf
-"\x22\x03\x03\x38", 0x2204
-"\x22\x08\x03\x38", 0x2209
-"\x22\x0b\x03\x38", 0x220c
-"\x22\x23\x03\x38", 0x2224
-"\x22\x25\x03\x38", 0x2226
-"\x22\x3c\x03\x38", 0x2241
-"\x22\x43\x03\x38", 0x2244
-"\x22\x45\x03\x38", 0x2247
-"\x22\x48\x03\x38", 0x2249
-"\x00\x3d\x03\x38", 0x2260
-"\x22\x61\x03\x38", 0x2262
-"\x22\x4d\x03\x38", 0x226d
-"\x00\x3c\x03\x38", 0x226e
-"\x00\x3e\x03\x38", 0x226f
-"\x22\x64\x03\x38", 0x2270
-"\x22\x65\x03\x38", 0x2271
-"\x22\x72\x03\x38", 0x2274
-"\x22\x73\x03\x38", 0x2275
-"\x22\x76\x03\x38", 0x2278
-"\x22\x77\x03\x38", 0x2279
-"\x22\x7a\x03\x38", 0x2280
-"\x22\x7b\x03\x38", 0x2281
-"\x22\x82\x03\x38", 0x2284
-"\x22\x83\x03\x38", 0x2285
-"\x22\x86\x03\x38", 0x2288
-"\x22\x87\x03\x38", 0x2289
-"\x22\xa2\x03\x38", 0x22ac
-"\x22\xa8\x03\x38", 0x22ad
-"\x22\xa9\x03\x38", 0x22ae
-"\x22\xab\x03\x38", 0x22af
-"\x22\x7c\x03\x38", 0x22e0
-"\x22\x7d\x03\x38", 0x22e1
-"\x22\x91\x03\x38", 0x22e2
-"\x22\x92\x03\x38", 0x22e3
-"\x22\xb2\x03\x38", 0x22ea
-"\x22\xb3\x03\x38", 0x22eb
-"\x22\xb4\x03\x38", 0x22ec
-"\x22\xb5\x03\x38", 0x22ed
-"\x30\x4b\x30\x99", 0x304c
-"\x30\x4d\x30\x99", 0x304e
-"\x30\x4f\x30\x99", 0x3050
-"\x30\x51\x30\x99", 0x3052
-"\x30\x53\x30\x99", 0x3054
-"\x30\x55\x30\x99", 0x3056
-"\x30\x57\x30\x99", 0x3058
-"\x30\x59\x30\x99", 0x305a
-"\x30\x5b\x30\x99", 0x305c
-"\x30\x5d\x30\x99", 0x305e
-"\x30\x5f\x30\x99", 0x3060
-"\x30\x61\x30\x99", 0x3062
-"\x30\x64\x30\x99", 0x3065
-"\x30\x66\x30\x99", 0x3067
-"\x30\x68\x30\x99", 0x3069
-"\x30\x6f\x30\x99", 0x3070
-"\x30\x6f\x30\x9a", 0x3071
-"\x30\x72\x30\x99", 0x3073
-"\x30\x72\x30\x9a", 0x3074
-"\x30\x75\x30\x99", 0x3076
-"\x30\x75\x30\x9a", 0x3077
-"\x30\x78\x30\x99", 0x3079
-"\x30\x78\x30\x9a", 0x307a
-"\x30\x7b\x30\x99", 0x307c
-"\x30\x7b\x30\x9a", 0x307d
-"\x30\x46\x30\x99", 0x3094
-"\x30\x9d\x30\x99", 0x309e
-"\x30\xab\x30\x99", 0x30ac
-"\x30\xad\x30\x99", 0x30ae
-"\x30\xaf\x30\x99", 0x30b0
-"\x30\xb1\x30\x99", 0x30b2
-"\x30\xb3\x30\x99", 0x30b4
-"\x30\xb5\x30\x99", 0x30b6
-"\x30\xb7\x30\x99", 0x30b8
-"\x30\xb9\x30\x99", 0x30ba
-"\x30\xbb\x30\x99", 0x30bc
-"\x30\xbd\x30\x99", 0x30be
-"\x30\xbf\x30\x99", 0x30c0
-"\x30\xc1\x30\x99", 0x30c2
-"\x30\xc4\x30\x99", 0x30c5
-"\x30\xc6\x30\x99", 0x30c7
-"\x30\xc8\x30\x99", 0x30c9
-"\x30\xcf\x30\x99", 0x30d0
-"\x30\xcf\x30\x9a", 0x30d1
-"\x30\xd2\x30\x99", 0x30d3
-"\x30\xd2\x30\x9a", 0x30d4
-"\x30\xd5\x30\x99", 0x30d6
-"\x30\xd5\x30\x9a", 0x30d7
-"\x30\xd8\x30\x99", 0x30d9
-"\x30\xd8\x30\x9a", 0x30da
-"\x30\xdb\x30\x99", 0x30dc
-"\x30\xdb\x30\x9a", 0x30dd
-"\x30\xa6\x30\x99", 0x30f4
-"\x30\xef\x30\x99", 0x30f7
-"\x30\xf0\x30\x99", 0x30f8
-"\x30\xf1\x30\x99", 0x30f9
-"\x30\xf2\x30\x99", 0x30fa
-"\x30\xfd\x30\x99", 0x30fe
+"\x00\x00\x41\x00\x03\x00", 0x00c0
+"\x00\x00\x41\x00\x03\x01", 0x00c1
+"\x00\x00\x41\x00\x03\x02", 0x00c2
+"\x00\x00\x41\x00\x03\x03", 0x00c3
+"\x00\x00\x41\x00\x03\x08", 0x00c4
+"\x00\x00\x41\x00\x03\x0a", 0x00c5
+"\x00\x00\x43\x00\x03\x27", 0x00c7
+"\x00\x00\x45\x00\x03\x00", 0x00c8
+"\x00\x00\x45\x00\x03\x01", 0x00c9
+"\x00\x00\x45\x00\x03\x02", 0x00ca
+"\x00\x00\x45\x00\x03\x08", 0x00cb
+"\x00\x00\x49\x00\x03\x00", 0x00cc
+"\x00\x00\x49\x00\x03\x01", 0x00cd
+"\x00\x00\x49\x00\x03\x02", 0x00ce
+"\x00\x00\x49\x00\x03\x08", 0x00cf
+"\x00\x00\x4e\x00\x03\x03", 0x00d1
+"\x00\x00\x4f\x00\x03\x00", 0x00d2
+"\x00\x00\x4f\x00\x03\x01", 0x00d3
+"\x00\x00\x4f\x00\x03\x02", 0x00d4
+"\x00\x00\x4f\x00\x03\x03", 0x00d5
+"\x00\x00\x4f\x00\x03\x08", 0x00d6
+"\x00\x00\x55\x00\x03\x00", 0x00d9
+"\x00\x00\x55\x00\x03\x01", 0x00da
+"\x00\x00\x55\x00\x03\x02", 0x00db
+"\x00\x00\x55\x00\x03\x08", 0x00dc
+"\x00\x00\x59\x00\x03\x01", 0x00dd
+"\x00\x00\x61\x00\x03\x00", 0x00e0
+"\x00\x00\x61\x00\x03\x01", 0x00e1
+"\x00\x00\x61\x00\x03\x02", 0x00e2
+"\x00\x00\x61\x00\x03\x03", 0x00e3
+"\x00\x00\x61\x00\x03\x08", 0x00e4
+"\x00\x00\x61\x00\x03\x0a", 0x00e5
+"\x00\x00\x63\x00\x03\x27", 0x00e7
+"\x00\x00\x65\x00\x03\x00", 0x00e8
+"\x00\x00\x65\x00\x03\x01", 0x00e9
+"\x00\x00\x65\x00\x03\x02", 0x00ea
+"\x00\x00\x65\x00\x03\x08", 0x00eb
+"\x00\x00\x69\x00\x03\x00", 0x00ec
+"\x00\x00\x69\x00\x03\x01", 0x00ed
+"\x00\x00\x69\x00\x03\x02", 0x00ee
+"\x00\x00\x69\x00\x03\x08", 0x00ef
+"\x00\x00\x6e\x00\x03\x03", 0x00f1
+"\x00\x00\x6f\x00\x03\x00", 0x00f2
+"\x00\x00\x6f\x00\x03\x01", 0x00f3
+"\x00\x00\x6f\x00\x03\x02", 0x00f4
+"\x00\x00\x6f\x00\x03\x03", 0x00f5
+"\x00\x00\x6f\x00\x03\x08", 0x00f6
+"\x00\x00\x75\x00\x03\x00", 0x00f9
+"\x00\x00\x75\x00\x03\x01", 0x00fa
+"\x00\x00\x75\x00\x03\x02", 0x00fb
+"\x00\x00\x75\x00\x03\x08", 0x00fc
+"\x00\x00\x79\x00\x03\x01", 0x00fd
+"\x00\x00\x79\x00\x03\x08", 0x00ff
+"\x00\x00\x41\x00\x03\x04", 0x0100
+"\x00\x00\x61\x00\x03\x04", 0x0101
+"\x00\x00\x41\x00\x03\x06", 0x0102
+"\x00\x00\x61\x00\x03\x06", 0x0103
+"\x00\x00\x41\x00\x03\x28", 0x0104
+"\x00\x00\x61\x00\x03\x28", 0x0105
+"\x00\x00\x43\x00\x03\x01", 0x0106
+"\x00\x00\x63\x00\x03\x01", 0x0107
+"\x00\x00\x43\x00\x03\x02", 0x0108
+"\x00\x00\x63\x00\x03\x02", 0x0109
+"\x00\x00\x43\x00\x03\x07", 0x010a
+"\x00\x00\x63\x00\x03\x07", 0x010b
+"\x00\x00\x43\x00\x03\x0c", 0x010c
+"\x00\x00\x63\x00\x03\x0c", 0x010d
+"\x00\x00\x44\x00\x03\x0c", 0x010e
+"\x00\x00\x64\x00\x03\x0c", 0x010f
+"\x00\x00\x45\x00\x03\x04", 0x0112
+"\x00\x00\x65\x00\x03\x04", 0x0113
+"\x00\x00\x45\x00\x03\x06", 0x0114
+"\x00\x00\x65\x00\x03\x06", 0x0115
+"\x00\x00\x45\x00\x03\x07", 0x0116
+"\x00\x00\x65\x00\x03\x07", 0x0117
+"\x00\x00\x45\x00\x03\x28", 0x0118
+"\x00\x00\x65\x00\x03\x28", 0x0119
+"\x00\x00\x45\x00\x03\x0c", 0x011a
+"\x00\x00\x65\x00\x03\x0c", 0x011b
+"\x00\x00\x47\x00\x03\x02", 0x011c
+"\x00\x00\x67\x00\x03\x02", 0x011d
+"\x00\x00\x47\x00\x03\x06", 0x011e
+"\x00\x00\x67\x00\x03\x06", 0x011f
+"\x00\x00\x47\x00\x03\x07", 0x0120
+"\x00\x00\x67\x00\x03\x07", 0x0121
+"\x00\x00\x47\x00\x03\x27", 0x0122
+"\x00\x00\x67\x00\x03\x27", 0x0123
+"\x00\x00\x48\x00\x03\x02", 0x0124
+"\x00\x00\x68\x00\x03\x02", 0x0125
+"\x00\x00\x49\x00\x03\x03", 0x0128
+"\x00\x00\x69\x00\x03\x03", 0x0129
+"\x00\x00\x49\x00\x03\x04", 0x012a
+"\x00\x00\x69\x00\x03\x04", 0x012b
+"\x00\x00\x49\x00\x03\x06", 0x012c
+"\x00\x00\x69\x00\x03\x06", 0x012d
+"\x00\x00\x49\x00\x03\x28", 0x012e
+"\x00\x00\x69\x00\x03\x28", 0x012f
+"\x00\x00\x49\x00\x03\x07", 0x0130
+"\x00\x00\x4a\x00\x03\x02", 0x0134
+"\x00\x00\x6a\x00\x03\x02", 0x0135
+"\x00\x00\x4b\x00\x03\x27", 0x0136
+"\x00\x00\x6b\x00\x03\x27", 0x0137
+"\x00\x00\x4c\x00\x03\x01", 0x0139
+"\x00\x00\x6c\x00\x03\x01", 0x013a
+"\x00\x00\x4c\x00\x03\x27", 0x013b
+"\x00\x00\x6c\x00\x03\x27", 0x013c
+"\x00\x00\x4c\x00\x03\x0c", 0x013d
+"\x00\x00\x6c\x00\x03\x0c", 0x013e
+"\x00\x00\x4e\x00\x03\x01", 0x0143
+"\x00\x00\x6e\x00\x03\x01", 0x0144
+"\x00\x00\x4e\x00\x03\x27", 0x0145
+"\x00\x00\x6e\x00\x03\x27", 0x0146
+"\x00\x00\x4e\x00\x03\x0c", 0x0147
+"\x00\x00\x6e\x00\x03\x0c", 0x0148
+"\x00\x00\x4f\x00\x03\x04", 0x014c
+"\x00\x00\x6f\x00\x03\x04", 0x014d
+"\x00\x00\x4f\x00\x03\x06", 0x014e
+"\x00\x00\x6f\x00\x03\x06", 0x014f
+"\x00\x00\x4f\x00\x03\x0b", 0x0150
+"\x00\x00\x6f\x00\x03\x0b", 0x0151
+"\x00\x00\x52\x00\x03\x01", 0x0154
+"\x00\x00\x72\x00\x03\x01", 0x0155
+"\x00\x00\x52\x00\x03\x27", 0x0156
+"\x00\x00\x72\x00\x03\x27", 0x0157
+"\x00\x00\x52\x00\x03\x0c", 0x0158
+"\x00\x00\x72\x00\x03\x0c", 0x0159
+"\x00\x00\x53\x00\x03\x01", 0x015a
+"\x00\x00\x73\x00\x03\x01", 0x015b
+"\x00\x00\x53\x00\x03\x02", 0x015c
+"\x00\x00\x73\x00\x03\x02", 0x015d
+"\x00\x00\x53\x00\x03\x27", 0x015e
+"\x00\x00\x73\x00\x03\x27", 0x015f
+"\x00\x00\x53\x00\x03\x0c", 0x0160
+"\x00\x00\x73\x00\x03\x0c", 0x0161
+"\x00\x00\x54\x00\x03\x27", 0x0162
+"\x00\x00\x74\x00\x03\x27", 0x0163
+"\x00\x00\x54\x00\x03\x0c", 0x0164
+"\x00\x00\x74\x00\x03\x0c", 0x0165
+"\x00\x00\x55\x00\x03\x03", 0x0168
+"\x00\x00\x75\x00\x03\x03", 0x0169
+"\x00\x00\x55\x00\x03\x04", 0x016a
+"\x00\x00\x75\x00\x03\x04", 0x016b
+"\x00\x00\x55\x00\x03\x06", 0x016c
+"\x00\x00\x75\x00\x03\x06", 0x016d
+"\x00\x00\x55\x00\x03\x0a", 0x016e
+"\x00\x00\x75\x00\x03\x0a", 0x016f
+"\x00\x00\x55\x00\x03\x0b", 0x0170
+"\x00\x00\x75\x00\x03\x0b", 0x0171
+"\x00\x00\x55\x00\x03\x28", 0x0172
+"\x00\x00\x75\x00\x03\x28", 0x0173
+"\x00\x00\x57\x00\x03\x02", 0x0174
+"\x00\x00\x77\x00\x03\x02", 0x0175
+"\x00\x00\x59\x00\x03\x02", 0x0176
+"\x00\x00\x79\x00\x03\x02", 0x0177
+"\x00\x00\x59\x00\x03\x08", 0x0178
+"\x00\x00\x5a\x00\x03\x01", 0x0179
+"\x00\x00\x7a\x00\x03\x01", 0x017a
+"\x00\x00\x5a\x00\x03\x07", 0x017b
+"\x00\x00\x7a\x00\x03\x07", 0x017c
+"\x00\x00\x5a\x00\x03\x0c", 0x017d
+"\x00\x00\x7a\x00\x03\x0c", 0x017e
+"\x00\x00\x4f\x00\x03\x1b", 0x01a0
+"\x00\x00\x6f\x00\x03\x1b", 0x01a1
+"\x00\x00\x55\x00\x03\x1b", 0x01af
+"\x00\x00\x75\x00\x03\x1b", 0x01b0
+"\x00\x00\x41\x00\x03\x0c", 0x01cd
+"\x00\x00\x61\x00\x03\x0c", 0x01ce
+"\x00\x00\x49\x00\x03\x0c", 0x01cf
+"\x00\x00\x69\x00\x03\x0c", 0x01d0
+"\x00\x00\x4f\x00\x03\x0c", 0x01d1
+"\x00\x00\x6f\x00\x03\x0c", 0x01d2
+"\x00\x00\x55\x00\x03\x0c", 0x01d3
+"\x00\x00\x75\x00\x03\x0c", 0x01d4
+"\x00\x00\xdc\x00\x03\x04", 0x01d5
+"\x00\x00\xfc\x00\x03\x04", 0x01d6
+"\x00\x00\xdc\x00\x03\x01", 0x01d7
+"\x00\x00\xfc\x00\x03\x01", 0x01d8
+"\x00\x00\xdc\x00\x03\x0c", 0x01d9
+"\x00\x00\xfc\x00\x03\x0c", 0x01da
+"\x00\x00\xdc\x00\x03\x00", 0x01db
+"\x00\x00\xfc\x00\x03\x00", 0x01dc
+"\x00\x00\xc4\x00\x03\x04", 0x01de
+"\x00\x00\xe4\x00\x03\x04", 0x01df
+"\x00\x02\x26\x00\x03\x04", 0x01e0
+"\x00\x02\x27\x00\x03\x04", 0x01e1
+"\x00\x00\xc6\x00\x03\x04", 0x01e2
+"\x00\x00\xe6\x00\x03\x04", 0x01e3
+"\x00\x00\x47\x00\x03\x0c", 0x01e6
+"\x00\x00\x67\x00\x03\x0c", 0x01e7
+"\x00\x00\x4b\x00\x03\x0c", 0x01e8
+"\x00\x00\x6b\x00\x03\x0c", 0x01e9
+"\x00\x00\x4f\x00\x03\x28", 0x01ea
+"\x00\x00\x6f\x00\x03\x28", 0x01eb
+"\x00\x01\xea\x00\x03\x04", 0x01ec
+"\x00\x01\xeb\x00\x03\x04", 0x01ed
+"\x00\x01\xb7\x00\x03\x0c", 0x01ee
+"\x00\x02\x92\x00\x03\x0c", 0x01ef
+"\x00\x00\x6a\x00\x03\x0c", 0x01f0
+"\x00\x00\x47\x00\x03\x01", 0x01f4
+"\x00\x00\x67\x00\x03\x01", 0x01f5
+"\x00\x00\x4e\x00\x03\x00", 0x01f8
+"\x00\x00\x6e\x00\x03\x00", 0x01f9
+"\x00\x00\xc5\x00\x03\x01", 0x01fa
+"\x00\x00\xe5\x00\x03\x01", 0x01fb
+"\x00\x00\xc6\x00\x03\x01", 0x01fc
+"\x00\x00\xe6\x00\x03\x01", 0x01fd
+"\x00\x00\xd8\x00\x03\x01", 0x01fe
+"\x00\x00\xf8\x00\x03\x01", 0x01ff
+"\x00\x00\x41\x00\x03\x0f", 0x0200
+"\x00\x00\x61\x00\x03\x0f", 0x0201
+"\x00\x00\x41\x00\x03\x11", 0x0202
+"\x00\x00\x61\x00\x03\x11", 0x0203
+"\x00\x00\x45\x00\x03\x0f", 0x0204
+"\x00\x00\x65\x00\x03\x0f", 0x0205
+"\x00\x00\x45\x00\x03\x11", 0x0206
+"\x00\x00\x65\x00\x03\x11", 0x0207
+"\x00\x00\x49\x00\x03\x0f", 0x0208
+"\x00\x00\x69\x00\x03\x0f", 0x0209
+"\x00\x00\x49\x00\x03\x11", 0x020a
+"\x00\x00\x69\x00\x03\x11", 0x020b
+"\x00\x00\x4f\x00\x03\x0f", 0x020c
+"\x00\x00\x6f\x00\x03\x0f", 0x020d
+"\x00\x00\x4f\x00\x03\x11", 0x020e
+"\x00\x00\x6f\x00\x03\x11", 0x020f
+"\x00\x00\x52\x00\x03\x0f", 0x0210
+"\x00\x00\x72\x00\x03\x0f", 0x0211
+"\x00\x00\x52\x00\x03\x11", 0x0212
+"\x00\x00\x72\x00\x03\x11", 0x0213
+"\x00\x00\x55\x00\x03\x0f", 0x0214
+"\x00\x00\x75\x00\x03\x0f", 0x0215
+"\x00\x00\x55\x00\x03\x11", 0x0216
+"\x00\x00\x75\x00\x03\x11", 0x0217
+"\x00\x00\x53\x00\x03\x26", 0x0218
+"\x00\x00\x73\x00\x03\x26", 0x0219
+"\x00\x00\x54\x00\x03\x26", 0x021a
+"\x00\x00\x74\x00\x03\x26", 0x021b
+"\x00\x00\x48\x00\x03\x0c", 0x021e
+"\x00\x00\x68\x00\x03\x0c", 0x021f
+"\x00\x00\x41\x00\x03\x07", 0x0226
+"\x00\x00\x61\x00\x03\x07", 0x0227
+"\x00\x00\x45\x00\x03\x27", 0x0228
+"\x00\x00\x65\x00\x03\x27", 0x0229
+"\x00\x00\xd6\x00\x03\x04", 0x022a
+"\x00\x00\xf6\x00\x03\x04", 0x022b
+"\x00\x00\xd5\x00\x03\x04", 0x022c
+"\x00\x00\xf5\x00\x03\x04", 0x022d
+"\x00\x00\x4f\x00\x03\x07", 0x022e
+"\x00\x00\x6f\x00\x03\x07", 0x022f
+"\x00\x02\x2e\x00\x03\x04", 0x0230
+"\x00\x02\x2f\x00\x03\x04", 0x0231
+"\x00\x00\x59\x00\x03\x04", 0x0232
+"\x00\x00\x79\x00\x03\x04", 0x0233
+"\x00\x00\xa8\x00\x03\x01", 0x0385
+"\x00\x03\x91\x00\x03\x01", 0x0386
+"\x00\x03\x95\x00\x03\x01", 0x0388
+"\x00\x03\x97\x00\x03\x01", 0x0389
+"\x00\x03\x99\x00\x03\x01", 0x038a
+"\x00\x03\x9f\x00\x03\x01", 0x038c
+"\x00\x03\xa5\x00\x03\x01", 0x038e
+"\x00\x03\xa9\x00\x03\x01", 0x038f
+"\x00\x03\xca\x00\x03\x01", 0x0390
+"\x00\x03\x99\x00\x03\x08", 0x03aa
+"\x00\x03\xa5\x00\x03\x08", 0x03ab
+"\x00\x03\xb1\x00\x03\x01", 0x03ac
+"\x00\x03\xb5\x00\x03\x01", 0x03ad
+"\x00\x03\xb7\x00\x03\x01", 0x03ae
+"\x00\x03\xb9\x00\x03\x01", 0x03af
+"\x00\x03\xcb\x00\x03\x01", 0x03b0
+"\x00\x03\xb9\x00\x03\x08", 0x03ca
+"\x00\x03\xc5\x00\x03\x08", 0x03cb
+"\x00\x03\xbf\x00\x03\x01", 0x03cc
+"\x00\x03\xc5\x00\x03\x01", 0x03cd
+"\x00\x03\xc9\x00\x03\x01", 0x03ce
+"\x00\x03\xd2\x00\x03\x01", 0x03d3
+"\x00\x03\xd2\x00\x03\x08", 0x03d4
+"\x00\x04\x15\x00\x03\x00", 0x0400
+"\x00\x04\x15\x00\x03\x08", 0x0401
+"\x00\x04\x13\x00\x03\x01", 0x0403
+"\x00\x04\x06\x00\x03\x08", 0x0407
+"\x00\x04\x1a\x00\x03\x01", 0x040c
+"\x00\x04\x18\x00\x03\x00", 0x040d
+"\x00\x04\x23\x00\x03\x06", 0x040e
+"\x00\x04\x18\x00\x03\x06", 0x0419
+"\x00\x04\x38\x00\x03\x06", 0x0439
+"\x00\x04\x35\x00\x03\x00", 0x0450
+"\x00\x04\x35\x00\x03\x08", 0x0451
+"\x00\x04\x33\x00\x03\x01", 0x0453
+"\x00\x04\x56\x00\x03\x08", 0x0457
+"\x00\x04\x3a\x00\x03\x01", 0x045c
+"\x00\x04\x38\x00\x03\x00", 0x045d
+"\x00\x04\x43\x00\x03\x06", 0x045e
+"\x00\x04\x74\x00\x03\x0f", 0x0476
+"\x00\x04\x75\x00\x03\x0f", 0x0477
+"\x00\x04\x16\x00\x03\x06", 0x04c1
+"\x00\x04\x36\x00\x03\x06", 0x04c2
+"\x00\x04\x10\x00\x03\x06", 0x04d0
+"\x00\x04\x30\x00\x03\x06", 0x04d1
+"\x00\x04\x10\x00\x03\x08", 0x04d2
+"\x00\x04\x30\x00\x03\x08", 0x04d3
+"\x00\x04\x15\x00\x03\x06", 0x04d6
+"\x00\x04\x35\x00\x03\x06", 0x04d7
+"\x00\x04\xd8\x00\x03\x08", 0x04da
+"\x00\x04\xd9\x00\x03\x08", 0x04db
+"\x00\x04\x16\x00\x03\x08", 0x04dc
+"\x00\x04\x36\x00\x03\x08", 0x04dd
+"\x00\x04\x17\x00\x03\x08", 0x04de
+"\x00\x04\x37\x00\x03\x08", 0x04df
+"\x00\x04\x18\x00\x03\x04", 0x04e2
+"\x00\x04\x38\x00\x03\x04", 0x04e3
+"\x00\x04\x18\x00\x03\x08", 0x04e4
+"\x00\x04\x38\x00\x03\x08", 0x04e5
+"\x00\x04\x1e\x00\x03\x08", 0x04e6
+"\x00\x04\x3e\x00\x03\x08", 0x04e7
+"\x00\x04\xe8\x00\x03\x08", 0x04ea
+"\x00\x04\xe9\x00\x03\x08", 0x04eb
+"\x00\x04\x2d\x00\x03\x08", 0x04ec
+"\x00\x04\x4d\x00\x03\x08", 0x04ed
+"\x00\x04\x23\x00\x03\x04", 0x04ee
+"\x00\x04\x43\x00\x03\x04", 0x04ef
+"\x00\x04\x23\x00\x03\x08", 0x04f0
+"\x00\x04\x43\x00\x03\x08", 0x04f1
+"\x00\x04\x23\x00\x03\x0b", 0x04f2
+"\x00\x04\x43\x00\x03\x0b", 0x04f3
+"\x00\x04\x27\x00\x03\x08", 0x04f4
+"\x00\x04\x47\x00\x03\x08", 0x04f5
+"\x00\x04\x2b\x00\x03\x08", 0x04f8
+"\x00\x04\x4b\x00\x03\x08", 0x04f9
+"\x00\x06\x27\x00\x06\x53", 0x0622
+"\x00\x06\x27\x00\x06\x54", 0x0623
+"\x00\x06\x48\x00\x06\x54", 0x0624
+"\x00\x06\x27\x00\x06\x55", 0x0625
+"\x00\x06\x4a\x00\x06\x54", 0x0626
+"\x00\x06\xd5\x00\x06\x54", 0x06c0
+"\x00\x06\xc1\x00\x06\x54", 0x06c2
+"\x00\x06\xd2\x00\x06\x54", 0x06d3
+"\x00\x09\x28\x00\x09\x3c", 0x0929
+"\x00\x09\x30\x00\x09\x3c", 0x0931
+"\x00\x09\x33\x00\x09\x3c", 0x0934
+"\x00\x09\xc7\x00\x09\xbe", 0x09cb
+"\x00\x09\xc7\x00\x09\xd7", 0x09cc
+"\x00\x0b\x47\x00\x0b\x56", 0x0b48
+"\x00\x0b\x47\x00\x0b\x3e", 0x0b4b
+"\x00\x0b\x47\x00\x0b\x57", 0x0b4c
+"\x00\x0b\x92\x00\x0b\xd7", 0x0b94
+"\x00\x0b\xc6\x00\x0b\xbe", 0x0bca
+"\x00\x0b\xc7\x00\x0b\xbe", 0x0bcb
+"\x00\x0b\xc6\x00\x0b\xd7", 0x0bcc
+"\x00\x0c\x46\x00\x0c\x56", 0x0c48
+"\x00\x0c\xbf\x00\x0c\xd5", 0x0cc0
+"\x00\x0c\xc6\x00\x0c\xd5", 0x0cc7
+"\x00\x0c\xc6\x00\x0c\xd6", 0x0cc8
+"\x00\x0c\xc6\x00\x0c\xc2", 0x0cca
+"\x00\x0c\xca\x00\x0c\xd5", 0x0ccb
+"\x00\x0d\x46\x00\x0d\x3e", 0x0d4a
+"\x00\x0d\x47\x00\x0d\x3e", 0x0d4b
+"\x00\x0d\x46\x00\x0d\x57", 0x0d4c
+"\x00\x0d\xd9\x00\x0d\xca", 0x0dda
+"\x00\x0d\xd9\x00\x0d\xcf", 0x0ddc
+"\x00\x0d\xdc\x00\x0d\xca", 0x0ddd
+"\x00\x0d\xd9\x00\x0d\xdf", 0x0dde
+"\x00\x10\x25\x00\x10\x2e", 0x1026
+"\x00\x1b\x05\x00\x1b\x35", 0x1b06
+"\x00\x1b\x07\x00\x1b\x35", 0x1b08
+"\x00\x1b\x09\x00\x1b\x35", 0x1b0a
+"\x00\x1b\x0b\x00\x1b\x35", 0x1b0c
+"\x00\x1b\x0d\x00\x1b\x35", 0x1b0e
+"\x00\x1b\x11\x00\x1b\x35", 0x1b12
+"\x00\x1b\x3a\x00\x1b\x35", 0x1b3b
+"\x00\x1b\x3c\x00\x1b\x35", 0x1b3d
+"\x00\x1b\x3e\x00\x1b\x35", 0x1b40
+"\x00\x1b\x3f\x00\x1b\x35", 0x1b41
+"\x00\x1b\x42\x00\x1b\x35", 0x1b43
+"\x00\x00\x41\x00\x03\x25", 0x1e00
+"\x00\x00\x61\x00\x03\x25", 0x1e01
+"\x00\x00\x42\x00\x03\x07", 0x1e02
+"\x00\x00\x62\x00\x03\x07", 0x1e03
+"\x00\x00\x42\x00\x03\x23", 0x1e04
+"\x00\x00\x62\x00\x03\x23", 0x1e05
+"\x00\x00\x42\x00\x03\x31", 0x1e06
+"\x00\x00\x62\x00\x03\x31", 0x1e07
+"\x00\x00\xc7\x00\x03\x01", 0x1e08
+"\x00\x00\xe7\x00\x03\x01", 0x1e09
+"\x00\x00\x44\x00\x03\x07", 0x1e0a
+"\x00\x00\x64\x00\x03\x07", 0x1e0b
+"\x00\x00\x44\x00\x03\x23", 0x1e0c
+"\x00\x00\x64\x00\x03\x23", 0x1e0d
+"\x00\x00\x44\x00\x03\x31", 0x1e0e
+"\x00\x00\x64\x00\x03\x31", 0x1e0f
+"\x00\x00\x44\x00\x03\x27", 0x1e10
+"\x00\x00\x64\x00\x03\x27", 0x1e11
+"\x00\x00\x44\x00\x03\x2d", 0x1e12
+"\x00\x00\x64\x00\x03\x2d", 0x1e13
+"\x00\x01\x12\x00\x03\x00", 0x1e14
+"\x00\x01\x13\x00\x03\x00", 0x1e15
+"\x00\x01\x12\x00\x03\x01", 0x1e16
+"\x00\x01\x13\x00\x03\x01", 0x1e17
+"\x00\x00\x45\x00\x03\x2d", 0x1e18
+"\x00\x00\x65\x00\x03\x2d", 0x1e19
+"\x00\x00\x45\x00\x03\x30", 0x1e1a
+"\x00\x00\x65\x00\x03\x30", 0x1e1b
+"\x00\x02\x28\x00\x03\x06", 0x1e1c
+"\x00\x02\x29\x00\x03\x06", 0x1e1d
+"\x00\x00\x46\x00\x03\x07", 0x1e1e
+"\x00\x00\x66\x00\x03\x07", 0x1e1f
+"\x00\x00\x47\x00\x03\x04", 0x1e20
+"\x00\x00\x67\x00\x03\x04", 0x1e21
+"\x00\x00\x48\x00\x03\x07", 0x1e22
+"\x00\x00\x68\x00\x03\x07", 0x1e23
+"\x00\x00\x48\x00\x03\x23", 0x1e24
+"\x00\x00\x68\x00\x03\x23", 0x1e25
+"\x00\x00\x48\x00\x03\x08", 0x1e26
+"\x00\x00\x68\x00\x03\x08", 0x1e27
+"\x00\x00\x48\x00\x03\x27", 0x1e28
+"\x00\x00\x68\x00\x03\x27", 0x1e29
+"\x00\x00\x48\x00\x03\x2e", 0x1e2a
+"\x00\x00\x68\x00\x03\x2e", 0x1e2b
+"\x00\x00\x49\x00\x03\x30", 0x1e2c
+"\x00\x00\x69\x00\x03\x30", 0x1e2d
+"\x00\x00\xcf\x00\x03\x01", 0x1e2e
+"\x00\x00\xef\x00\x03\x01", 0x1e2f
+"\x00\x00\x4b\x00\x03\x01", 0x1e30
+"\x00\x00\x6b\x00\x03\x01", 0x1e31
+"\x00\x00\x4b\x00\x03\x23", 0x1e32
+"\x00\x00\x6b\x00\x03\x23", 0x1e33
+"\x00\x00\x4b\x00\x03\x31", 0x1e34
+"\x00\x00\x6b\x00\x03\x31", 0x1e35
+"\x00\x00\x4c\x00\x03\x23", 0x1e36
+"\x00\x00\x6c\x00\x03\x23", 0x1e37
+"\x00\x1e\x36\x00\x03\x04", 0x1e38
+"\x00\x1e\x37\x00\x03\x04", 0x1e39
+"\x00\x00\x4c\x00\x03\x31", 0x1e3a
+"\x00\x00\x6c\x00\x03\x31", 0x1e3b
+"\x00\x00\x4c\x00\x03\x2d", 0x1e3c
+"\x00\x00\x6c\x00\x03\x2d", 0x1e3d
+"\x00\x00\x4d\x00\x03\x01", 0x1e3e
+"\x00\x00\x6d\x00\x03\x01", 0x1e3f
+"\x00\x00\x4d\x00\x03\x07", 0x1e40
+"\x00\x00\x6d\x00\x03\x07", 0x1e41
+"\x00\x00\x4d\x00\x03\x23", 0x1e42
+"\x00\x00\x6d\x00\x03\x23", 0x1e43
+"\x00\x00\x4e\x00\x03\x07", 0x1e44
+"\x00\x00\x6e\x00\x03\x07", 0x1e45
+"\x00\x00\x4e\x00\x03\x23", 0x1e46
+"\x00\x00\x6e\x00\x03\x23", 0x1e47
+"\x00\x00\x4e\x00\x03\x31", 0x1e48
+"\x00\x00\x6e\x00\x03\x31", 0x1e49
+"\x00\x00\x4e\x00\x03\x2d", 0x1e4a
+"\x00\x00\x6e\x00\x03\x2d", 0x1e4b
+"\x00\x00\xd5\x00\x03\x01", 0x1e4c
+"\x00\x00\xf5\x00\x03\x01", 0x1e4d
+"\x00\x00\xd5\x00\x03\x08", 0x1e4e
+"\x00\x00\xf5\x00\x03\x08", 0x1e4f
+"\x00\x01\x4c\x00\x03\x00", 0x1e50
+"\x00\x01\x4d\x00\x03\x00", 0x1e51
+"\x00\x01\x4c\x00\x03\x01", 0x1e52
+"\x00\x01\x4d\x00\x03\x01", 0x1e53
+"\x00\x00\x50\x00\x03\x01", 0x1e54
+"\x00\x00\x70\x00\x03\x01", 0x1e55
+"\x00\x00\x50\x00\x03\x07", 0x1e56
+"\x00\x00\x70\x00\x03\x07", 0x1e57
+"\x00\x00\x52\x00\x03\x07", 0x1e58
+"\x00\x00\x72\x00\x03\x07", 0x1e59
+"\x00\x00\x52\x00\x03\x23", 0x1e5a
+"\x00\x00\x72\x00\x03\x23", 0x1e5b
+"\x00\x1e\x5a\x00\x03\x04", 0x1e5c
+"\x00\x1e\x5b\x00\x03\x04", 0x1e5d
+"\x00\x00\x52\x00\x03\x31", 0x1e5e
+"\x00\x00\x72\x00\x03\x31", 0x1e5f
+"\x00\x00\x53\x00\x03\x07", 0x1e60
+"\x00\x00\x73\x00\x03\x07", 0x1e61
+"\x00\x00\x53\x00\x03\x23", 0x1e62
+"\x00\x00\x73\x00\x03\x23", 0x1e63
+"\x00\x01\x5a\x00\x03\x07", 0x1e64
+"\x00\x01\x5b\x00\x03\x07", 0x1e65
+"\x00\x01\x60\x00\x03\x07", 0x1e66
+"\x00\x01\x61\x00\x03\x07", 0x1e67
+"\x00\x1e\x62\x00\x03\x07", 0x1e68
+"\x00\x1e\x63\x00\x03\x07", 0x1e69
+"\x00\x00\x54\x00\x03\x07", 0x1e6a
+"\x00\x00\x74\x00\x03\x07", 0x1e6b
+"\x00\x00\x54\x00\x03\x23", 0x1e6c
+"\x00\x00\x74\x00\x03\x23", 0x1e6d
+"\x00\x00\x54\x00\x03\x31", 0x1e6e
+"\x00\x00\x74\x00\x03\x31", 0x1e6f
+"\x00\x00\x54\x00\x03\x2d", 0x1e70
+"\x00\x00\x74\x00\x03\x2d", 0x1e71
+"\x00\x00\x55\x00\x03\x24", 0x1e72
+"\x00\x00\x75\x00\x03\x24", 0x1e73
+"\x00\x00\x55\x00\x03\x30", 0x1e74
+"\x00\x00\x75\x00\x03\x30", 0x1e75
+"\x00\x00\x55\x00\x03\x2d", 0x1e76
+"\x00\x00\x75\x00\x03\x2d", 0x1e77
+"\x00\x01\x68\x00\x03\x01", 0x1e78
+"\x00\x01\x69\x00\x03\x01", 0x1e79
+"\x00\x01\x6a\x00\x03\x08", 0x1e7a
+"\x00\x01\x6b\x00\x03\x08", 0x1e7b
+"\x00\x00\x56\x00\x03\x03", 0x1e7c
+"\x00\x00\x76\x00\x03\x03", 0x1e7d
+"\x00\x00\x56\x00\x03\x23", 0x1e7e
+"\x00\x00\x76\x00\x03\x23", 0x1e7f
+"\x00\x00\x57\x00\x03\x00", 0x1e80
+"\x00\x00\x77\x00\x03\x00", 0x1e81
+"\x00\x00\x57\x00\x03\x01", 0x1e82
+"\x00\x00\x77\x00\x03\x01", 0x1e83
+"\x00\x00\x57\x00\x03\x08", 0x1e84
+"\x00\x00\x77\x00\x03\x08", 0x1e85
+"\x00\x00\x57\x00\x03\x07", 0x1e86
+"\x00\x00\x77\x00\x03\x07", 0x1e87
+"\x00\x00\x57\x00\x03\x23", 0x1e88
+"\x00\x00\x77\x00\x03\x23", 0x1e89
+"\x00\x00\x58\x00\x03\x07", 0x1e8a
+"\x00\x00\x78\x00\x03\x07", 0x1e8b
+"\x00\x00\x58\x00\x03\x08", 0x1e8c
+"\x00\x00\x78\x00\x03\x08", 0x1e8d
+"\x00\x00\x59\x00\x03\x07", 0x1e8e
+"\x00\x00\x79\x00\x03\x07", 0x1e8f
+"\x00\x00\x5a\x00\x03\x02", 0x1e90
+"\x00\x00\x7a\x00\x03\x02", 0x1e91
+"\x00\x00\x5a\x00\x03\x23", 0x1e92
+"\x00\x00\x7a\x00\x03\x23", 0x1e93
+"\x00\x00\x5a\x00\x03\x31", 0x1e94
+"\x00\x00\x7a\x00\x03\x31", 0x1e95
+"\x00\x00\x68\x00\x03\x31", 0x1e96
+"\x00\x00\x74\x00\x03\x08", 0x1e97
+"\x00\x00\x77\x00\x03\x0a", 0x1e98
+"\x00\x00\x79\x00\x03\x0a", 0x1e99
+"\x00\x01\x7f\x00\x03\x07", 0x1e9b
+"\x00\x00\x41\x00\x03\x23", 0x1ea0
+"\x00\x00\x61\x00\x03\x23", 0x1ea1
+"\x00\x00\x41\x00\x03\x09", 0x1ea2
+"\x00\x00\x61\x00\x03\x09", 0x1ea3
+"\x00\x00\xc2\x00\x03\x01", 0x1ea4
+"\x00\x00\xe2\x00\x03\x01", 0x1ea5
+"\x00\x00\xc2\x00\x03\x00", 0x1ea6
+"\x00\x00\xe2\x00\x03\x00", 0x1ea7
+"\x00\x00\xc2\x00\x03\x09", 0x1ea8
+"\x00\x00\xe2\x00\x03\x09", 0x1ea9
+"\x00\x00\xc2\x00\x03\x03", 0x1eaa
+"\x00\x00\xe2\x00\x03\x03", 0x1eab
+"\x00\x1e\xa0\x00\x03\x02", 0x1eac
+"\x00\x1e\xa1\x00\x03\x02", 0x1ead
+"\x00\x01\x02\x00\x03\x01", 0x1eae
+"\x00\x01\x03\x00\x03\x01", 0x1eaf
+"\x00\x01\x02\x00\x03\x00", 0x1eb0
+"\x00\x01\x03\x00\x03\x00", 0x1eb1
+"\x00\x01\x02\x00\x03\x09", 0x1eb2
+"\x00\x01\x03\x00\x03\x09", 0x1eb3
+"\x00\x01\x02\x00\x03\x03", 0x1eb4
+"\x00\x01\x03\x00\x03\x03", 0x1eb5
+"\x00\x1e\xa0\x00\x03\x06", 0x1eb6
+"\x00\x1e\xa1\x00\x03\x06", 0x1eb7
+"\x00\x00\x45\x00\x03\x23", 0x1eb8
+"\x00\x00\x65\x00\x03\x23", 0x1eb9
+"\x00\x00\x45\x00\x03\x09", 0x1eba
+"\x00\x00\x65\x00\x03\x09", 0x1ebb
+"\x00\x00\x45\x00\x03\x03", 0x1ebc
+"\x00\x00\x65\x00\x03\x03", 0x1ebd
+"\x00\x00\xca\x00\x03\x01", 0x1ebe
+"\x00\x00\xea\x00\x03\x01", 0x1ebf
+"\x00\x00\xca\x00\x03\x00", 0x1ec0
+"\x00\x00\xea\x00\x03\x00", 0x1ec1
+"\x00\x00\xca\x00\x03\x09", 0x1ec2
+"\x00\x00\xea\x00\x03\x09", 0x1ec3
+"\x00\x00\xca\x00\x03\x03", 0x1ec4
+"\x00\x00\xea\x00\x03\x03", 0x1ec5
+"\x00\x1e\xb8\x00\x03\x02", 0x1ec6
+"\x00\x1e\xb9\x00\x03\x02", 0x1ec7
+"\x00\x00\x49\x00\x03\x09", 0x1ec8
+"\x00\x00\x69\x00\x03\x09", 0x1ec9
+"\x00\x00\x49\x00\x03\x23", 0x1eca
+"\x00\x00\x69\x00\x03\x23", 0x1ecb
+"\x00\x00\x4f\x00\x03\x23", 0x1ecc
+"\x00\x00\x6f\x00\x03\x23", 0x1ecd
+"\x00\x00\x4f\x00\x03\x09", 0x1ece
+"\x00\x00\x6f\x00\x03\x09", 0x1ecf
+"\x00\x00\xd4\x00\x03\x01", 0x1ed0
+"\x00\x00\xf4\x00\x03\x01", 0x1ed1
+"\x00\x00\xd4\x00\x03\x00", 0x1ed2
+"\x00\x00\xf4\x00\x03\x00", 0x1ed3
+"\x00\x00\xd4\x00\x03\x09", 0x1ed4
+"\x00\x00\xf4\x00\x03\x09", 0x1ed5
+"\x00\x00\xd4\x00\x03\x03", 0x1ed6
+"\x00\x00\xf4\x00\x03\x03", 0x1ed7
+"\x00\x1e\xcc\x00\x03\x02", 0x1ed8
+"\x00\x1e\xcd\x00\x03\x02", 0x1ed9
+"\x00\x01\xa0\x00\x03\x01", 0x1eda
+"\x00\x01\xa1\x00\x03\x01", 0x1edb
+"\x00\x01\xa0\x00\x03\x00", 0x1edc
+"\x00\x01\xa1\x00\x03\x00", 0x1edd
+"\x00\x01\xa0\x00\x03\x09", 0x1ede
+"\x00\x01\xa1\x00\x03\x09", 0x1edf
+"\x00\x01\xa0\x00\x03\x03", 0x1ee0
+"\x00\x01\xa1\x00\x03\x03", 0x1ee1
+"\x00\x01\xa0\x00\x03\x23", 0x1ee2
+"\x00\x01\xa1\x00\x03\x23", 0x1ee3
+"\x00\x00\x55\x00\x03\x23", 0x1ee4
+"\x00\x00\x75\x00\x03\x23", 0x1ee5
+"\x00\x00\x55\x00\x03\x09", 0x1ee6
+"\x00\x00\x75\x00\x03\x09", 0x1ee7
+"\x00\x01\xaf\x00\x03\x01", 0x1ee8
+"\x00\x01\xb0\x00\x03\x01", 0x1ee9
+"\x00\x01\xaf\x00\x03\x00", 0x1eea
+"\x00\x01\xb0\x00\x03\x00", 0x1eeb
+"\x00\x01\xaf\x00\x03\x09", 0x1eec
+"\x00\x01\xb0\x00\x03\x09", 0x1eed
+"\x00\x01\xaf\x00\x03\x03", 0x1eee
+"\x00\x01\xb0\x00\x03\x03", 0x1eef
+"\x00\x01\xaf\x00\x03\x23", 0x1ef0
+"\x00\x01\xb0\x00\x03\x23", 0x1ef1
+"\x00\x00\x59\x00\x03\x00", 0x1ef2
+"\x00\x00\x79\x00\x03\x00", 0x1ef3
+"\x00\x00\x59\x00\x03\x23", 0x1ef4
+"\x00\x00\x79\x00\x03\x23", 0x1ef5
+"\x00\x00\x59\x00\x03\x09", 0x1ef6
+"\x00\x00\x79\x00\x03\x09", 0x1ef7
+"\x00\x00\x59\x00\x03\x03", 0x1ef8
+"\x00\x00\x79\x00\x03\x03", 0x1ef9
+"\x00\x03\xb1\x00\x03\x13", 0x1f00
+"\x00\x03\xb1\x00\x03\x14", 0x1f01
+"\x00\x1f\x00\x00\x03\x00", 0x1f02
+"\x00\x1f\x01\x00\x03\x00", 0x1f03
+"\x00\x1f\x00\x00\x03\x01", 0x1f04
+"\x00\x1f\x01\x00\x03\x01", 0x1f05
+"\x00\x1f\x00\x00\x03\x42", 0x1f06
+"\x00\x1f\x01\x00\x03\x42", 0x1f07
+"\x00\x03\x91\x00\x03\x13", 0x1f08
+"\x00\x03\x91\x00\x03\x14", 0x1f09
+"\x00\x1f\x08\x00\x03\x00", 0x1f0a
+"\x00\x1f\x09\x00\x03\x00", 0x1f0b
+"\x00\x1f\x08\x00\x03\x01", 0x1f0c
+"\x00\x1f\x09\x00\x03\x01", 0x1f0d
+"\x00\x1f\x08\x00\x03\x42", 0x1f0e
+"\x00\x1f\x09\x00\x03\x42", 0x1f0f
+"\x00\x03\xb5\x00\x03\x13", 0x1f10
+"\x00\x03\xb5\x00\x03\x14", 0x1f11
+"\x00\x1f\x10\x00\x03\x00", 0x1f12
+"\x00\x1f\x11\x00\x03\x00", 0x1f13
+"\x00\x1f\x10\x00\x03\x01", 0x1f14
+"\x00\x1f\x11\x00\x03\x01", 0x1f15
+"\x00\x03\x95\x00\x03\x13", 0x1f18
+"\x00\x03\x95\x00\x03\x14", 0x1f19
+"\x00\x1f\x18\x00\x03\x00", 0x1f1a
+"\x00\x1f\x19\x00\x03\x00", 0x1f1b
+"\x00\x1f\x18\x00\x03\x01", 0x1f1c
+"\x00\x1f\x19\x00\x03\x01", 0x1f1d
+"\x00\x03\xb7\x00\x03\x13", 0x1f20
+"\x00\x03\xb7\x00\x03\x14", 0x1f21
+"\x00\x1f\x20\x00\x03\x00", 0x1f22
+"\x00\x1f\x21\x00\x03\x00", 0x1f23
+"\x00\x1f\x20\x00\x03\x01", 0x1f24
+"\x00\x1f\x21\x00\x03\x01", 0x1f25
+"\x00\x1f\x20\x00\x03\x42", 0x1f26
+"\x00\x1f\x21\x00\x03\x42", 0x1f27
+"\x00\x03\x97\x00\x03\x13", 0x1f28
+"\x00\x03\x97\x00\x03\x14", 0x1f29
+"\x00\x1f\x28\x00\x03\x00", 0x1f2a
+"\x00\x1f\x29\x00\x03\x00", 0x1f2b
+"\x00\x1f\x28\x00\x03\x01", 0x1f2c
+"\x00\x1f\x29\x00\x03\x01", 0x1f2d
+"\x00\x1f\x28\x00\x03\x42", 0x1f2e
+"\x00\x1f\x29\x00\x03\x42", 0x1f2f
+"\x00\x03\xb9\x00\x03\x13", 0x1f30
+"\x00\x03\xb9\x00\x03\x14", 0x1f31
+"\x00\x1f\x30\x00\x03\x00", 0x1f32
+"\x00\x1f\x31\x00\x03\x00", 0x1f33
+"\x00\x1f\x30\x00\x03\x01", 0x1f34
+"\x00\x1f\x31\x00\x03\x01", 0x1f35
+"\x00\x1f\x30\x00\x03\x42", 0x1f36
+"\x00\x1f\x31\x00\x03\x42", 0x1f37
+"\x00\x03\x99\x00\x03\x13", 0x1f38
+"\x00\x03\x99\x00\x03\x14", 0x1f39
+"\x00\x1f\x38\x00\x03\x00", 0x1f3a
+"\x00\x1f\x39\x00\x03\x00", 0x1f3b
+"\x00\x1f\x38\x00\x03\x01", 0x1f3c
+"\x00\x1f\x39\x00\x03\x01", 0x1f3d
+"\x00\x1f\x38\x00\x03\x42", 0x1f3e
+"\x00\x1f\x39\x00\x03\x42", 0x1f3f
+"\x00\x03\xbf\x00\x03\x13", 0x1f40
+"\x00\x03\xbf\x00\x03\x14", 0x1f41
+"\x00\x1f\x40\x00\x03\x00", 0x1f42
+"\x00\x1f\x41\x00\x03\x00", 0x1f43
+"\x00\x1f\x40\x00\x03\x01", 0x1f44
+"\x00\x1f\x41\x00\x03\x01", 0x1f45
+"\x00\x03\x9f\x00\x03\x13", 0x1f48
+"\x00\x03\x9f\x00\x03\x14", 0x1f49
+"\x00\x1f\x48\x00\x03\x00", 0x1f4a
+"\x00\x1f\x49\x00\x03\x00", 0x1f4b
+"\x00\x1f\x48\x00\x03\x01", 0x1f4c
+"\x00\x1f\x49\x00\x03\x01", 0x1f4d
+"\x00\x03\xc5\x00\x03\x13", 0x1f50
+"\x00\x03\xc5\x00\x03\x14", 0x1f51
+"\x00\x1f\x50\x00\x03\x00", 0x1f52
+"\x00\x1f\x51\x00\x03\x00", 0x1f53
+"\x00\x1f\x50\x00\x03\x01", 0x1f54
+"\x00\x1f\x51\x00\x03\x01", 0x1f55
+"\x00\x1f\x50\x00\x03\x42", 0x1f56
+"\x00\x1f\x51\x00\x03\x42", 0x1f57
+"\x00\x03\xa5\x00\x03\x14", 0x1f59
+"\x00\x1f\x59\x00\x03\x00", 0x1f5b
+"\x00\x1f\x59\x00\x03\x01", 0x1f5d
+"\x00\x1f\x59\x00\x03\x42", 0x1f5f
+"\x00\x03\xc9\x00\x03\x13", 0x1f60
+"\x00\x03\xc9\x00\x03\x14", 0x1f61
+"\x00\x1f\x60\x00\x03\x00", 0x1f62
+"\x00\x1f\x61\x00\x03\x00", 0x1f63
+"\x00\x1f\x60\x00\x03\x01", 0x1f64
+"\x00\x1f\x61\x00\x03\x01", 0x1f65
+"\x00\x1f\x60\x00\x03\x42", 0x1f66
+"\x00\x1f\x61\x00\x03\x42", 0x1f67
+"\x00\x03\xa9\x00\x03\x13", 0x1f68
+"\x00\x03\xa9\x00\x03\x14", 0x1f69
+"\x00\x1f\x68\x00\x03\x00", 0x1f6a
+"\x00\x1f\x69\x00\x03\x00", 0x1f6b
+"\x00\x1f\x68\x00\x03\x01", 0x1f6c
+"\x00\x1f\x69\x00\x03\x01", 0x1f6d
+"\x00\x1f\x68\x00\x03\x42", 0x1f6e
+"\x00\x1f\x69\x00\x03\x42", 0x1f6f
+"\x00\x03\xb1\x00\x03\x00", 0x1f70
+"\x00\x03\xb5\x00\x03\x00", 0x1f72
+"\x00\x03\xb7\x00\x03\x00", 0x1f74
+"\x00\x03\xb9\x00\x03\x00", 0x1f76
+"\x00\x03\xbf\x00\x03\x00", 0x1f78
+"\x00\x03\xc5\x00\x03\x00", 0x1f7a
+"\x00\x03\xc9\x00\x03\x00", 0x1f7c
+"\x00\x1f\x00\x00\x03\x45", 0x1f80
+"\x00\x1f\x01\x00\x03\x45", 0x1f81
+"\x00\x1f\x02\x00\x03\x45", 0x1f82
+"\x00\x1f\x03\x00\x03\x45", 0x1f83
+"\x00\x1f\x04\x00\x03\x45", 0x1f84
+"\x00\x1f\x05\x00\x03\x45", 0x1f85
+"\x00\x1f\x06\x00\x03\x45", 0x1f86
+"\x00\x1f\x07\x00\x03\x45", 0x1f87
+"\x00\x1f\x08\x00\x03\x45", 0x1f88
+"\x00\x1f\x09\x00\x03\x45", 0x1f89
+"\x00\x1f\x0a\x00\x03\x45", 0x1f8a
+"\x00\x1f\x0b\x00\x03\x45", 0x1f8b
+"\x00\x1f\x0c\x00\x03\x45", 0x1f8c
+"\x00\x1f\x0d\x00\x03\x45", 0x1f8d
+"\x00\x1f\x0e\x00\x03\x45", 0x1f8e
+"\x00\x1f\x0f\x00\x03\x45", 0x1f8f
+"\x00\x1f\x20\x00\x03\x45", 0x1f90
+"\x00\x1f\x21\x00\x03\x45", 0x1f91
+"\x00\x1f\x22\x00\x03\x45", 0x1f92
+"\x00\x1f\x23\x00\x03\x45", 0x1f93
+"\x00\x1f\x24\x00\x03\x45", 0x1f94
+"\x00\x1f\x25\x00\x03\x45", 0x1f95
+"\x00\x1f\x26\x00\x03\x45", 0x1f96
+"\x00\x1f\x27\x00\x03\x45", 0x1f97
+"\x00\x1f\x28\x00\x03\x45", 0x1f98
+"\x00\x1f\x29\x00\x03\x45", 0x1f99
+"\x00\x1f\x2a\x00\x03\x45", 0x1f9a
+"\x00\x1f\x2b\x00\x03\x45", 0x1f9b
+"\x00\x1f\x2c\x00\x03\x45", 0x1f9c
+"\x00\x1f\x2d\x00\x03\x45", 0x1f9d
+"\x00\x1f\x2e\x00\x03\x45", 0x1f9e
+"\x00\x1f\x2f\x00\x03\x45", 0x1f9f
+"\x00\x1f\x60\x00\x03\x45", 0x1fa0
+"\x00\x1f\x61\x00\x03\x45", 0x1fa1
+"\x00\x1f\x62\x00\x03\x45", 0x1fa2
+"\x00\x1f\x63\x00\x03\x45", 0x1fa3
+"\x00\x1f\x64\x00\x03\x45", 0x1fa4
+"\x00\x1f\x65\x00\x03\x45", 0x1fa5
+"\x00\x1f\x66\x00\x03\x45", 0x1fa6
+"\x00\x1f\x67\x00\x03\x45", 0x1fa7
+"\x00\x1f\x68\x00\x03\x45", 0x1fa8
+"\x00\x1f\x69\x00\x03\x45", 0x1fa9
+"\x00\x1f\x6a\x00\x03\x45", 0x1faa
+"\x00\x1f\x6b\x00\x03\x45", 0x1fab
+"\x00\x1f\x6c\x00\x03\x45", 0x1fac
+"\x00\x1f\x6d\x00\x03\x45", 0x1fad
+"\x00\x1f\x6e\x00\x03\x45", 0x1fae
+"\x00\x1f\x6f\x00\x03\x45", 0x1faf
+"\x00\x03\xb1\x00\x03\x06", 0x1fb0
+"\x00\x03\xb1\x00\x03\x04", 0x1fb1
+"\x00\x1f\x70\x00\x03\x45", 0x1fb2
+"\x00\x03\xb1\x00\x03\x45", 0x1fb3
+"\x00\x03\xac\x00\x03\x45", 0x1fb4
+"\x00\x03\xb1\x00\x03\x42", 0x1fb6
+"\x00\x1f\xb6\x00\x03\x45", 0x1fb7
+"\x00\x03\x91\x00\x03\x06", 0x1fb8
+"\x00\x03\x91\x00\x03\x04", 0x1fb9
+"\x00\x03\x91\x00\x03\x00", 0x1fba
+"\x00\x03\x91\x00\x03\x45", 0x1fbc
+"\x00\x00\xa8\x00\x03\x42", 0x1fc1
+"\x00\x1f\x74\x00\x03\x45", 0x1fc2
+"\x00\x03\xb7\x00\x03\x45", 0x1fc3
+"\x00\x03\xae\x00\x03\x45", 0x1fc4
+"\x00\x03\xb7\x00\x03\x42", 0x1fc6
+"\x00\x1f\xc6\x00\x03\x45", 0x1fc7
+"\x00\x03\x95\x00\x03\x00", 0x1fc8
+"\x00\x03\x97\x00\x03\x00", 0x1fca
+"\x00\x03\x97\x00\x03\x45", 0x1fcc
+"\x00\x1f\xbf\x00\x03\x00", 0x1fcd
+"\x00\x1f\xbf\x00\x03\x01", 0x1fce
+"\x00\x1f\xbf\x00\x03\x42", 0x1fcf
+"\x00\x03\xb9\x00\x03\x06", 0x1fd0
+"\x00\x03\xb9\x00\x03\x04", 0x1fd1
+"\x00\x03\xca\x00\x03\x00", 0x1fd2
+"\x00\x03\xb9\x00\x03\x42", 0x1fd6
+"\x00\x03\xca\x00\x03\x42", 0x1fd7
+"\x00\x03\x99\x00\x03\x06", 0x1fd8
+"\x00\x03\x99\x00\x03\x04", 0x1fd9
+"\x00\x03\x99\x00\x03\x00", 0x1fda
+"\x00\x1f\xfe\x00\x03\x00", 0x1fdd
+"\x00\x1f\xfe\x00\x03\x01", 0x1fde
+"\x00\x1f\xfe\x00\x03\x42", 0x1fdf
+"\x00\x03\xc5\x00\x03\x06", 0x1fe0
+"\x00\x03\xc5\x00\x03\x04", 0x1fe1
+"\x00\x03\xcb\x00\x03\x00", 0x1fe2
+"\x00\x03\xc1\x00\x03\x13", 0x1fe4
+"\x00\x03\xc1\x00\x03\x14", 0x1fe5
+"\x00\x03\xc5\x00\x03\x42", 0x1fe6
+"\x00\x03\xcb\x00\x03\x42", 0x1fe7
+"\x00\x03\xa5\x00\x03\x06", 0x1fe8
+"\x00\x03\xa5\x00\x03\x04", 0x1fe9
+"\x00\x03\xa5\x00\x03\x00", 0x1fea
+"\x00\x03\xa1\x00\x03\x14", 0x1fec
+"\x00\x00\xa8\x00\x03\x00", 0x1fed
+"\x00\x1f\x7c\x00\x03\x45", 0x1ff2
+"\x00\x03\xc9\x00\x03\x45", 0x1ff3
+"\x00\x03\xce\x00\x03\x45", 0x1ff4
+"\x00\x03\xc9\x00\x03\x42", 0x1ff6
+"\x00\x1f\xf6\x00\x03\x45", 0x1ff7
+"\x00\x03\x9f\x00\x03\x00", 0x1ff8
+"\x00\x03\xa9\x00\x03\x00", 0x1ffa
+"\x00\x03\xa9\x00\x03\x45", 0x1ffc
+"\x00\x21\x90\x00\x03\x38", 0x219a
+"\x00\x21\x92\x00\x03\x38", 0x219b
+"\x00\x21\x94\x00\x03\x38", 0x21ae
+"\x00\x21\xd0\x00\x03\x38", 0x21cd
+"\x00\x21\xd4\x00\x03\x38", 0x21ce
+"\x00\x21\xd2\x00\x03\x38", 0x21cf
+"\x00\x22\x03\x00\x03\x38", 0x2204
+"\x00\x22\x08\x00\x03\x38", 0x2209
+"\x00\x22\x0b\x00\x03\x38", 0x220c
+"\x00\x22\x23\x00\x03\x38", 0x2224
+"\x00\x22\x25\x00\x03\x38", 0x2226
+"\x00\x22\x3c\x00\x03\x38", 0x2241
+"\x00\x22\x43\x00\x03\x38", 0x2244
+"\x00\x22\x45\x00\x03\x38", 0x2247
+"\x00\x22\x48\x00\x03\x38", 0x2249
+"\x00\x00\x3d\x00\x03\x38", 0x2260
+"\x00\x22\x61\x00\x03\x38", 0x2262
+"\x00\x22\x4d\x00\x03\x38", 0x226d
+"\x00\x00\x3c\x00\x03\x38", 0x226e
+"\x00\x00\x3e\x00\x03\x38", 0x226f
+"\x00\x22\x64\x00\x03\x38", 0x2270
+"\x00\x22\x65\x00\x03\x38", 0x2271
+"\x00\x22\x72\x00\x03\x38", 0x2274
+"\x00\x22\x73\x00\x03\x38", 0x2275
+"\x00\x22\x76\x00\x03\x38", 0x2278
+"\x00\x22\x77\x00\x03\x38", 0x2279
+"\x00\x22\x7a\x00\x03\x38", 0x2280
+"\x00\x22\x7b\x00\x03\x38", 0x2281
+"\x00\x22\x82\x00\x03\x38", 0x2284
+"\x00\x22\x83\x00\x03\x38", 0x2285
+"\x00\x22\x86\x00\x03\x38", 0x2288
+"\x00\x22\x87\x00\x03\x38", 0x2289
+"\x00\x22\xa2\x00\x03\x38", 0x22ac
+"\x00\x22\xa8\x00\x03\x38", 0x22ad
+"\x00\x22\xa9\x00\x03\x38", 0x22ae
+"\x00\x22\xab\x00\x03\x38", 0x22af
+"\x00\x22\x7c\x00\x03\x38", 0x22e0
+"\x00\x22\x7d\x00\x03\x38", 0x22e1
+"\x00\x22\x91\x00\x03\x38", 0x22e2
+"\x00\x22\x92\x00\x03\x38", 0x22e3
+"\x00\x22\xb2\x00\x03\x38", 0x22ea
+"\x00\x22\xb3\x00\x03\x38", 0x22eb
+"\x00\x22\xb4\x00\x03\x38", 0x22ec
+"\x00\x22\xb5\x00\x03\x38", 0x22ed
+"\x00\x30\x4b\x00\x30\x99", 0x304c
+"\x00\x30\x4d\x00\x30\x99", 0x304e
+"\x00\x30\x4f\x00\x30\x99", 0x3050
+"\x00\x30\x51\x00\x30\x99", 0x3052
+"\x00\x30\x53\x00\x30\x99", 0x3054
+"\x00\x30\x55\x00\x30\x99", 0x3056
+"\x00\x30\x57\x00\x30\x99", 0x3058
+"\x00\x30\x59\x00\x30\x99", 0x305a
+"\x00\x30\x5b\x00\x30\x99", 0x305c
+"\x00\x30\x5d\x00\x30\x99", 0x305e
+"\x00\x30\x5f\x00\x30\x99", 0x3060
+"\x00\x30\x61\x00\x30\x99", 0x3062
+"\x00\x30\x64\x00\x30\x99", 0x3065
+"\x00\x30\x66\x00\x30\x99", 0x3067
+"\x00\x30\x68\x00\x30\x99", 0x3069
+"\x00\x30\x6f\x00\x30\x99", 0x3070
+"\x00\x30\x6f\x00\x30\x9a", 0x3071
+"\x00\x30\x72\x00\x30\x99", 0x3073
+"\x00\x30\x72\x00\x30\x9a", 0x3074
+"\x00\x30\x75\x00\x30\x99", 0x3076
+"\x00\x30\x75\x00\x30\x9a", 0x3077
+"\x00\x30\x78\x00\x30\x99", 0x3079
+"\x00\x30\x78\x00\x30\x9a", 0x307a
+"\x00\x30\x7b\x00\x30\x99", 0x307c
+"\x00\x30\x7b\x00\x30\x9a", 0x307d
+"\x00\x30\x46\x00\x30\x99", 0x3094
+"\x00\x30\x9d\x00\x30\x99", 0x309e
+"\x00\x30\xab\x00\x30\x99", 0x30ac
+"\x00\x30\xad\x00\x30\x99", 0x30ae
+"\x00\x30\xaf\x00\x30\x99", 0x30b0
+"\x00\x30\xb1\x00\x30\x99", 0x30b2
+"\x00\x30\xb3\x00\x30\x99", 0x30b4
+"\x00\x30\xb5\x00\x30\x99", 0x30b6
+"\x00\x30\xb7\x00\x30\x99", 0x30b8
+"\x00\x30\xb9\x00\x30\x99", 0x30ba
+"\x00\x30\xbb\x00\x30\x99", 0x30bc
+"\x00\x30\xbd\x00\x30\x99", 0x30be
+"\x00\x30\xbf\x00\x30\x99", 0x30c0
+"\x00\x30\xc1\x00\x30\x99", 0x30c2
+"\x00\x30\xc4\x00\x30\x99", 0x30c5
+"\x00\x30\xc6\x00\x30\x99", 0x30c7
+"\x00\x30\xc8\x00\x30\x99", 0x30c9
+"\x00\x30\xcf\x00\x30\x99", 0x30d0
+"\x00\x30\xcf\x00\x30\x9a", 0x30d1
+"\x00\x30\xd2\x00\x30\x99", 0x30d3
+"\x00\x30\xd2\x00\x30\x9a", 0x30d4
+"\x00\x30\xd5\x00\x30\x99", 0x30d6
+"\x00\x30\xd5\x00\x30\x9a", 0x30d7
+"\x00\x30\xd8\x00\x30\x99", 0x30d9
+"\x00\x30\xd8\x00\x30\x9a", 0x30da
+"\x00\x30\xdb\x00\x30\x99", 0x30dc
+"\x00\x30\xdb\x00\x30\x9a", 0x30dd
+"\x00\x30\xa6\x00\x30\x99", 0x30f4
+"\x00\x30\xef\x00\x30\x99", 0x30f7
+"\x00\x30\xf0\x00\x30\x99", 0x30f8
+"\x00\x30\xf1\x00\x30\x99", 0x30f9
+"\x00\x30\xf2\x00\x30\x99", 0x30fa
+"\x00\x30\xfd\x00\x30\x99", 0x30fe
+"\x01\x10\x99\x01\x10\xba", 0x1109a
+"\x01\x10\x9b\x01\x10\xba", 0x1109c
+"\x01\x10\xa5\x01\x10\xba", 0x110ab
index 3e992a4..22f2670 100644 (file)
@@ -1,14 +1,14 @@
 /* ANSI-C code produced by gperf version 3.0.4 */
 /* Command-line: gperf -m 1 ./uninorm/composition-table.gperf  */
-/* Computed positions: -k'1-2,4' */
+/* Computed positions: -k'2-3,6' */
 
 
-#define TOTAL_KEYWORDS 928
-#define MIN_WORD_LENGTH 4
-#define MAX_WORD_LENGTH 4
+#define TOTAL_KEYWORDS 931
+#define MIN_WORD_LENGTH 6
+#define MAX_WORD_LENGTH 6
 #define MIN_HASH_VALUE 1
-#define MAX_HASH_VALUE 1527
-/* maximum key range = 1527, duplicates = 0 */
+#define MAX_HASH_VALUE 1475
+/* maximum key range = 1475, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -23,34 +23,34 @@ gl_uninorm_compose_hash (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-         7,    1,    0,    3,   58,  132,  240,   62,    4,   33,
-       117,  268,  485,  135,  601,  599,  103,  770,  249,  284,
-        59,  337,  685,  524,  711,  106,  498,  569,  712, 1528,
-        91,   13,  841,  752,  322,  487,  192,  604,  817,   13,
-       337,   65,  137,  147,   45,  144,  255,  588,  133,  342,
-       172,   15, 1528,  794,   60,   95,  606,   50,   18, 1528,
-       239,   67,  198,  362,   75,   89,  324,    2,  531,  167,
-        12,  375,  289,   61,  397,  314,  431,  452,  395,  180,
-       821,  736,  362,  561,  456,  202,  536,  360,  645,  300,
-       592,  700, 1528,  361, 1528,  358,  796,   26,  783,  653,
-       270,   98,  253,  415,  323,   42,  747,  575,  542,  691,
-       262,  124,  792, 1528,  251,  559,  236,  133,   12,  406,
-       460,  219,  627,    9,  158,  168, 1528,    1, 1528, 1528,
-       161,  153, 1528, 1528,  129,  123, 1528, 1528, 1528, 1528,
-      1528, 1528, 1528, 1528,   23,  493,  109, 1528,   10,  676,
-      1528,  725, 1528,  650,   59,  384, 1528,  291, 1528,   50,
-       589,  518,   79, 1528, 1528,  672,  235, 1528,  466,  628,
-      1528,   62,   27,  229,   20,  668,  778,  531,   37,    5,
-        16,  416,    5,  560,   34,  482, 1528,  147, 1528,  138,
-      1528,  476, 1528,  530,  839,    1,  329,  524,  675,  342,
-       136,  684,  580,  211,   31,   19,    9,   87,   21, 1528,
-       356, 1528,  725,  313,   14,    0,  555,   65, 1528,  256,
-        37, 1528, 1528, 1528,  105, 1528,  833, 1528,   16,    4,
-         0,    3,   19,    1,  755,    4, 1528, 1528, 1528,   54,
-       100,   76,   27, 1528,  811,   20,   56, 1528,    1, 1528,
-      1528, 1528,  706,   14,   71, 1528, 1528
+         7,    1,    0,    3,   58,  132,  476,   62,    4,   33,
+       117,  268,  485,  135,  494,  481,  103,  265,  249,  472,
+        59,  337,  392,  404,  703,  106,  413,  657,  369, 1476,
+        64,   13,  864,  697,  322,  229,  192,  637,  787,   13,
+       337,   65,  423,  744,  305,  430,  255,  625,  133,  342,
+       172,   18, 1476,  361,   19,  346,  672,   50,  228, 1476,
+        16,   35,   37,  378,   75,   89,  324,    2,  440,  167,
+        12,  375,  289,   61,  173,  541,  431,  452,  395,  180,
+       823,  855,  362,  561,  456,  202,  711,  360,  714,  300,
+       592,   72, 1476,  136, 1476,  113,  736,   26,  779,  653,
+       270,   98,  126,  415,  323,   42,  833,  604,  314,  849,
+       262,  124,  884, 1476,  251,  559,  236,  133,  327,  406,
+       522,  219,  602,  358,   35,   62, 1476,    1, 1476, 1476,
+        55,   49, 1476, 1476,   39,   37, 1476, 1476, 1476, 1476,
+      1476, 1476, 1476, 1476,   17,  493,  103, 1476,    1,  811,
+      1476,  783, 1476,  633,   59,  358, 1476,  104, 1476,   50,
+       606,  589,   12, 1476, 1476,  672,  100, 1476,  832,  667,
+      1476,  457,   46,   97,   20,  625,  754,  531,   11,    5,
+         9,  617,    2,  560,  218,  482, 1476,  139, 1476,   73,
+      1476,  476, 1476,   19,  798,    1,   43,  524,  627,  346,
+        63,  685,  580,  822,   58,    3,    9,  276,   23, 1476,
+       150, 1476,  728,  640,   20,    0,  513,   22, 1476,   14,
+        37, 1476, 1476, 1476,   89, 1476,  789, 1476,   33,    4,
+        23,    1,   33,   24,  720,   36, 1476, 1476, 1476,    3,
+        52,   41,   29, 1476,  766,  438,   17, 1476,    0, 1476,
+      1476, 1476,   77,   22,  867, 1476, 1476
     };
-  return asso_values[(unsigned char)str[3]+1] + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]];
+  return asso_values[(unsigned char)str[5]+1] + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[1]];
 }
 
 #ifdef __GNUC__
@@ -64,2046 +64,2043 @@ gl_uninorm_compose_lookup (register const char *str, register unsigned int len)
 {
   static const unsigned char lengthtable[] =
     {
-       0,  4,  4,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  0,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  0,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  0,  4,  4,  0,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  0,  4,  4,  4,  4,  4,
-       4,  0,  4,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  0,  4,  4,  4,  4,  4,  4,  4,  4,  4,
-       4,  4,  4,  4,  4,  4,  4,  4,  0,  0,  4,  4,  4,  4,
-       4,  0,  4,  4,  4,  4,  0,  4,  4,  0,  4,  4,  0,  0,
-       0,  0,  4,  4,  4,  0,  4,  4,  4,  0,  4,  0,  0,  0,
-       4,  4,  4,  4,  4,  4,  0,  4,  4,  4,  0,  0,  0,  0,
-       0,  4,  0,  4,  4,  0,  0,  0,  4,  4,  0,  4,  0,  4,
-       0,  0,  0,  0,  4,  0,  4,  4,  4,  0,  0,  4,  0,  0,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,
-       0,  4,  0,  0,  0,  4,  0,  0,  0,  0,  4,  4,  0,  0,
-       0,  0,  4,  0,  0,  4,  4,  0,  0,  4,  4,  4,  0,  0,
-       0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  4,  4,  0,  0,
-       0,  0,  0,  4,  0,  4,  4,  0,  0,  4,  0,  4,  0,  0,
-       0,  0,  0,  0,  4,  0,  0,  0,  4,  0,  0,  0,  0,  0,
-       0,  0,  4,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,
+       0,  6,  6,  0,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  0,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  0,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  0,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  0,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  0,
+       6,  6,  0,  6,  6,  6,  6,  6,  6,  0,  0,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  0,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  0,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  0,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  0,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  0,  6,  6,  6,
+       6,  6,  6,  6,  6,  0,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  0,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  0,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
+       6,  6,  0,  6,  6,  6,  6,  6,  0,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  6,  0,  6,  6,  6,  6,  6,  6,  0,  6,
+       6,  6,  6,  6,  6,  6,  6,  6,  0,  6,  6,  6,  6,  6,
+       6,  6,  6,  6,  0,  0,  6,  6,  6,  6,  6,  6,  0,  6,
+       0,  6,  0,  0,  6,  0,  0,  6,  6,  6,  0,  0,  0,  6,
+       6,  0,  0,  6,  6,  0,  0,  0,  0,  6,  0,  6,  6,  0,
+       0,  0,  0,  0,  0,  6,  0,  6,  0,  0,  0,  0,  0,  0,
+       0,  0,  0,  6,  0,  0,  6,  6,  0,  6,  6,  0,  0,  0,
+       0,  0,  0,  6,  0,  6,  6,  0,  0,  0,  0,  0,  0,  0,
+       0,  6,  0,  0,  0,  0,  0,  6,  6,  6,  0,  0,  6,  6,
+       0,  6,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,
+       6,  0,  0,  6,  0,  0,  6,  0,  0,  6,  6,  0,  0,  6,
+       0,  6,  0,  0,  6,  6,  0,  0,  0,  0,  0,  0,  0,  6,
+       0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+       0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  6,  6,  0,
+       0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+       0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  6,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  4,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,
-       0,  4,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,
+       0,  0,  0,  0,  0,  0,  6,  6,  0,  0,  0,  0,  0,  0,
+       0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  6,  6,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+       0,  0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,
+       6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  4,  4,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+       0,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,
+       0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,  6,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       4,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+       0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  0,  0,  0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  4
+       0,  0,  0,  0,  0,  6
     };
   static const struct composition_rule wordlist[] =
     {
       {""},
 #line 572 "./uninorm/composition-table.gperf"
-      {"\001\002\003\001", 0x1eae},
+      {"\000\001\002\000\003\001", 0x1eae},
 #line 574 "./uninorm/composition-table.gperf"
-      {"\001\002\003\000", 0x1eb0},
+      {"\000\001\002\000\003\000", 0x1eb0},
       {""},
 #line 573 "./uninorm/composition-table.gperf"
-      {"\001\003\003\001", 0x1eaf},
+      {"\000\001\003\000\003\001", 0x1eaf},
 #line 575 "./uninorm/composition-table.gperf"
-      {"\001\003\003\000", 0x1eb1},
+      {"\000\001\003\000\003\000", 0x1eb1},
 #line 557 "./uninorm/composition-table.gperf"
-      {"\001\177\003\007", 0x1e9b},
-#line 236 "./uninorm/composition-table.gperf"
-      {"\000\346\003\001", 0x01fd},
+      {"\000\001\177\000\003\007", 0x1e9b},
 #line 238 "./uninorm/composition-table.gperf"
-      {"\000\370\003\001", 0x01ff},
-#line 90 "./uninorm/composition-table.gperf"
-      {"\000C\003\001", 0x0106},
+      {"\000\000\370\000\003\001", 0x01ff},
 #line 412 "./uninorm/composition-table.gperf"
-      {"\000\347\003\001", 0x1e09},
+      {"\000\000\347\000\003\001", 0x1e09},
+#line 90 "./uninorm/composition-table.gperf"
+      {"\000\000C\000\003\001", 0x0106},
+#line 450 "./uninorm/composition-table.gperf"
+      {"\000\000\357\000\003\001", 0x1e2f},
 #line 234 "./uninorm/composition-table.gperf"
-      {"\000\345\003\001", 0x01fb},
+      {"\000\000\345\000\003\001", 0x01fb},
 #line 92 "./uninorm/composition-table.gperf"
-      {"\000C\003\002", 0x0108},
+      {"\000\000C\000\003\002", 0x0108},
 #line 94 "./uninorm/composition-table.gperf"
-      {"\000C\003\007", 0x010a},
+      {"\000\000C\000\003\007", 0x010a},
 #line 653 "./uninorm/composition-table.gperf"
-      {"\037\001\003\001", 0x1f05},
+      {"\000\037\001\000\003\001", 0x1f05},
 #line 651 "./uninorm/composition-table.gperf"
-      {"\037\001\003\000", 0x1f03},
+      {"\000\037\001\000\003\000", 0x1f03},
 #line 655 "./uninorm/composition-table.gperf"
-      {"\037\001\003B", 0x1f07},
+      {"\000\037\001\000\003B", 0x1f07},
 #line 660 "./uninorm/composition-table.gperf"
-      {"\037\010\003\001", 0x1f0c},
+      {"\000\037\010\000\003\001", 0x1f0c},
 #line 658 "./uninorm/composition-table.gperf"
-      {"\037\010\003\000", 0x1f0a},
+      {"\000\037\010\000\003\000", 0x1f0a},
 #line 662 "./uninorm/composition-table.gperf"
-      {"\037\010\003B", 0x1f0e},
+      {"\000\037\010\000\003B", 0x1f0e},
 #line 652 "./uninorm/composition-table.gperf"
-      {"\037\000\003\001", 0x1f04},
+      {"\000\037\000\000\003\001", 0x1f04},
 #line 650 "./uninorm/composition-table.gperf"
-      {"\037\000\003\000", 0x1f02},
+      {"\000\037\000\000\003\000", 0x1f02},
 #line 654 "./uninorm/composition-table.gperf"
-      {"\037\000\003B", 0x1f06},
+      {"\000\037\000\000\003B", 0x1f06},
 #line 433 "./uninorm/composition-table.gperf"
-      {"\000F\003\007", 0x1e1e},
+      {"\000\000F\000\003\007", 0x1e1e},
 #line 851 "./uninorm/composition-table.gperf"
-      {"\003\316\003E", 0x1ff4},
+      {"\000\003\316\000\003E", 0x1ff4},
 #line 757 "./uninorm/composition-table.gperf"
-      {"\037\002\003E", 0x1f82},
+      {"\000\037\002\000\003E", 0x1f82},
 #line 756 "./uninorm/composition-table.gperf"
-      {"\037\001\003E", 0x1f81},
-#line 480 "./uninorm/composition-table.gperf"
-      {"\000\365\003\001", 0x1e4d},
+      {"\000\037\001\000\003E", 0x1f81},
+#line 809 "./uninorm/composition-table.gperf"
+      {"\000\037\266\000\003E", 0x1fb7},
 #line 758 "./uninorm/composition-table.gperf"
-      {"\037\003\003E", 0x1f83},
+      {"\000\037\003\000\003E", 0x1f83},
 #line 763 "./uninorm/composition-table.gperf"
-      {"\037\010\003E", 0x1f88},
-#line 809 "./uninorm/composition-table.gperf"
-      {"\037\266\003E", 0x1fb7},
+      {"\000\037\010\000\003E", 0x1f88},
+#line 236 "./uninorm/composition-table.gperf"
+      {"\000\000\346\000\003\001", 0x01fd},
 #line 506 "./uninorm/composition-table.gperf"
-      {"\001a\003\007", 0x1e67},
+      {"\000\001a\000\003\007", 0x1e67},
 #line 755 "./uninorm/composition-table.gperf"
-      {"\037\000\003E", 0x1f80},
+      {"\000\037\000\000\003E", 0x1f80},
 #line 58 "./uninorm/composition-table.gperf"
-      {"\000a\003\001", 0x00e1},
+      {"\000\000a\000\003\001", 0x00e1},
 #line 57 "./uninorm/composition-table.gperf"
-      {"\000a\003\000", 0x00e0},
+      {"\000\000a\000\003\000", 0x00e0},
 #line 817 "./uninorm/composition-table.gperf"
-      {"\003\256\003E", 0x1fc4},
+      {"\000\003\256\000\003E", 0x1fc4},
 #line 59 "./uninorm/composition-table.gperf"
-      {"\000a\003\002", 0x00e2},
+      {"\000\000a\000\003\002", 0x00e2},
 #line 270 "./uninorm/composition-table.gperf"
-      {"\000a\003\007", 0x0227},
+      {"\000\000a\000\003\007", 0x0227},
 #line 778 "./uninorm/composition-table.gperf"
-      {"\037'\003E", 0x1f97},
+      {"\000\037'\000\003E", 0x1f97},
 #line 737 "./uninorm/composition-table.gperf"
-      {"\037a\003\001", 0x1f65},
+      {"\000\037a\000\003\001", 0x1f65},
 #line 735 "./uninorm/composition-table.gperf"
-      {"\037a\003\000", 0x1f63},
+      {"\000\037a\000\003\000", 0x1f63},
 #line 739 "./uninorm/composition-table.gperf"
-      {"\037a\003B", 0x1f67},
-#line 807 "./uninorm/composition-table.gperf"
-      {"\003\254\003E", 0x1fb4},
+      {"\000\037a\000\003B", 0x1f67},
+#line 853 "./uninorm/composition-table.gperf"
+      {"\000\037\366\000\003E", 0x1ff7},
 #line 524 "./uninorm/composition-table.gperf"
-      {"\001i\003\001", 0x1e79},
+      {"\000\001i\000\003\001", 0x1e79},
 #line 206 "./uninorm/composition-table.gperf"
-      {"\000\334\003\001", 0x01d7},
+      {"\000\000\334\000\003\001", 0x01d7},
 #line 210 "./uninorm/composition-table.gperf"
-      {"\000\334\003\000", 0x01db},
+      {"\000\000\334\000\003\000", 0x01db},
 #line 661 "./uninorm/composition-table.gperf"
-      {"\037\011\003\001", 0x1f0d},
+      {"\000\037\011\000\003\001", 0x1f0d},
 #line 659 "./uninorm/composition-table.gperf"
-      {"\037\011\003\000", 0x1f0b},
+      {"\000\037\011\000\003\000", 0x1f0b},
 #line 663 "./uninorm/composition-table.gperf"
-      {"\037\011\003B", 0x1f0f},
+      {"\000\037\011\000\003B", 0x1f0f},
 #line 69 "./uninorm/composition-table.gperf"
-      {"\000i\003\001", 0x00ed},
+      {"\000\000i\000\003\001", 0x00ed},
 #line 68 "./uninorm/composition-table.gperf"
-      {"\000i\003\000", 0x00ec},
+      {"\000\000i\000\003\000", 0x00ec},
 #line 788 "./uninorm/composition-table.gperf"
-      {"\037a\003E", 0x1fa1},
+      {"\000\037a\000\003E", 0x1fa1},
 #line 70 "./uninorm/composition-table.gperf"
-      {"\000i\003\002", 0x00ee},
+      {"\000\000i\000\003\002", 0x00ee},
 #line 288 "./uninorm/composition-table.gperf"
-      {"\003\237\003\001", 0x038c},
+      {"\000\003\237\000\003\001", 0x038c},
 #line 854 "./uninorm/composition-table.gperf"
-      {"\003\237\003\000", 0x1ff8},
+      {"\000\003\237\000\003\000", 0x1ff8},
 #line 745 "./uninorm/composition-table.gperf"
-      {"\037i\003\001", 0x1f6d},
+      {"\000\037i\000\003\001", 0x1f6d},
 #line 743 "./uninorm/composition-table.gperf"
-      {"\037i\003\000", 0x1f6b},
+      {"\000\037i\000\003\000", 0x1f6b},
 #line 747 "./uninorm/composition-table.gperf"
-      {"\037i\003B", 0x1f6f},
+      {"\000\037i\000\003B", 0x1f6f},
 #line 764 "./uninorm/composition-table.gperf"
-      {"\037\011\003E", 0x1f89},
+      {"\000\037\011\000\003E", 0x1f89},
 #line 578 "./uninorm/composition-table.gperf"
-      {"\001\002\003\003", 0x1eb4},
-#line 482 "./uninorm/composition-table.gperf"
-      {"\000\365\003\010", 0x1e4f},
-#line 450 "./uninorm/composition-table.gperf"
-      {"\000\357\003\001", 0x1e2f},
+      {"\000\001\002\000\003\003", 0x1eb4},
+#line 849 "./uninorm/composition-table.gperf"
+      {"\000\037|\000\003E", 0x1ff2},
+#line 807 "./uninorm/composition-table.gperf"
+      {"\000\003\254\000\003E", 0x1fb4},
 #line 579 "./uninorm/composition-table.gperf"
-      {"\001\003\003\003", 0x1eb5},
+      {"\000\001\003\000\003\003", 0x1eb5},
 #line 705 "./uninorm/composition-table.gperf"
-      {"\0379\003\001", 0x1f3d},
+      {"\000\0379\000\003\001", 0x1f3d},
 #line 703 "./uninorm/composition-table.gperf"
-      {"\0379\003\000", 0x1f3b},
+      {"\000\0379\000\003\000", 0x1f3b},
 #line 707 "./uninorm/composition-table.gperf"
-      {"\0379\003B", 0x1f3f},
+      {"\000\0379\000\003B", 0x1f3f},
 #line 61 "./uninorm/composition-table.gperf"
-      {"\000a\003\010", 0x00e4},
+      {"\000\000a\000\003\010", 0x00e4},
 #line 796 "./uninorm/composition-table.gperf"
-      {"\037i\003E", 0x1fa9},
+      {"\000\037i\000\003E", 0x1fa9},
 #line 43 "./uninorm/composition-table.gperf"
-      {"\000I\003\001", 0x00cd},
+      {"\000\000I\000\003\001", 0x00cd},
 #line 42 "./uninorm/composition-table.gperf"
-      {"\000I\003\000", 0x00cc},
-#line 783 "./uninorm/composition-table.gperf"
-      {"\037,\003E", 0x1f9c},
+      {"\000\000I\000\003\000", 0x00cc},
+#line 615 "./uninorm/composition-table.gperf"
+      {"\000\036\315\000\003\002", 0x1ed9},
 #line 44 "./uninorm/composition-table.gperf"
-      {"\000I\003\002", 0x00ce},
+      {"\000\000I\000\003\002", 0x00ce},
 #line 128 "./uninorm/composition-table.gperf"
-      {"\000I\003\007", 0x0130},
-#line 317 "./uninorm/composition-table.gperf"
-      {"\0043\003\001", 0x0453},
+      {"\000\000I\000\003\007", 0x0130},
+#line 875 "./uninorm/composition-table.gperf"
+      {"\000\000<\000\0038", 0x226e},
 #line 719 "./uninorm/composition-table.gperf"
-      {"\037I\003\001", 0x1f4d},
+      {"\000\037I\000\003\001", 0x1f4d},
 #line 717 "./uninorm/composition-table.gperf"
-      {"\037I\003\000", 0x1f4b},
-#line 319 "./uninorm/composition-table.gperf"
-      {"\004:\003\001", 0x045c},
-#line 528 "./uninorm/composition-table.gperf"
-      {"\000v\003\003", 0x1e7d},
+      {"\000\037I\000\003\000", 0x1f4b},
+#line 317 "./uninorm/composition-table.gperf"
+      {"\000\0043\000\003\001", 0x0453},
+#line 504 "./uninorm/composition-table.gperf"
+      {"\000\001[\000\003\007", 0x1e65},
 #line 689 "./uninorm/composition-table.gperf"
-      {"\037)\003\001", 0x1f2d},
+      {"\000\037)\000\003\001", 0x1f2d},
 #line 687 "./uninorm/composition-table.gperf"
-      {"\037)\003\000", 0x1f2b},
+      {"\000\037)\000\003\000", 0x1f2b},
 #line 691 "./uninorm/composition-table.gperf"
-      {"\037)\003B", 0x1f2f},
-#line 853 "./uninorm/composition-table.gperf"
-      {"\037\366\003E", 0x1ff7},
+      {"\000\037)\000\003B", 0x1f2f},
+#line 840 "./uninorm/composition-table.gperf"
+      {"\000\003\301\000\003\023", 0x1fe4},
 #line 71 "./uninorm/composition-table.gperf"
-      {"\000i\003\010", 0x00ef},
+      {"\000\000i\000\003\010", 0x00ef},
 #line 759 "./uninorm/composition-table.gperf"
-      {"\037\004\003E", 0x1f84},
-#line 835 "./uninorm/composition-table.gperf"
-      {"\037\376\003\001", 0x1fde},
-#line 834 "./uninorm/composition-table.gperf"
-      {"\037\376\003\000", 0x1fdd},
-#line 836 "./uninorm/composition-table.gperf"
-      {"\037\376\003B", 0x1fdf},
+      {"\000\037\004\000\003E", 0x1f84},
+#line 207 "./uninorm/composition-table.gperf"
+      {"\000\000\374\000\003\001", 0x01d8},
+#line 211 "./uninorm/composition-table.gperf"
+      {"\000\000\374\000\003\000", 0x01dc},
+#line 368 "./uninorm/composition-table.gperf"
+      {"\000\0113\000\011<", 0x0934},
 #line 762 "./uninorm/composition-table.gperf"
-      {"\037\007\003E", 0x1f87},
+      {"\000\037\007\000\003E", 0x1f87},
 #line 712 "./uninorm/composition-table.gperf"
-      {"\037@\003\001", 0x1f44},
+      {"\000\037@\000\003\001", 0x1f44},
 #line 710 "./uninorm/composition-table.gperf"
-      {"\037@\003\000", 0x1f42},
+      {"\000\037@\000\003\000", 0x1f42},
 #line 780 "./uninorm/composition-table.gperf"
-      {"\037)\003E", 0x1f99},
+      {"\000\037)\000\003E", 0x1f99},
 #line 60 "./uninorm/composition-table.gperf"
-      {"\000a\003\003", 0x00e3},
-#line 345 "./uninorm/composition-table.gperf"
-      {"\004\351\003\010", 0x04eb},
+      {"\000\000a\000\003\003", 0x00e3},
+#line 872 "./uninorm/composition-table.gperf"
+      {"\000\000=\000\0038", 0x2260},
 #line 351 "./uninorm/composition-table.gperf"
-      {"\004C\003\010", 0x04f1},
-#line 449 "./uninorm/composition-table.gperf"
-      {"\000\317\003\001", 0x1e2e},
+      {"\000\004C\000\003\010", 0x04f1},
+#line 876 "./uninorm/composition-table.gperf"
+      {"\000\000>\000\0038", 0x226f},
 #line 87 "./uninorm/composition-table.gperf"
-      {"\000a\003\006", 0x0103},
+      {"\000\000a\000\003\006", 0x0103},
 #line 32 "./uninorm/composition-table.gperf"
-      {"\000A\003\001", 0x00c1},
+      {"\000\000A\000\003\001", 0x00c1},
 #line 31 "./uninorm/composition-table.gperf"
-      {"\000A\003\000", 0x00c0},
+      {"\000\000A\000\003\000", 0x00c0},
 #line 89 "./uninorm/composition-table.gperf"
-      {"\000a\003(", 0x0105},
+      {"\000\000a\000\003(", 0x0105},
 #line 33 "./uninorm/composition-table.gperf"
-      {"\000A\003\002", 0x00c2},
+      {"\000\000A\000\003\002", 0x00c2},
 #line 269 "./uninorm/composition-table.gperf"
-      {"\000A\003\007", 0x0226},
+      {"\000\000A\000\003\007", 0x0226},
 #line 45 "./uninorm/composition-table.gperf"
-      {"\000I\003\010", 0x00cf},
+      {"\000\000I\000\003\010", 0x00cf},
 #line 713 "./uninorm/composition-table.gperf"
-      {"\037A\003\001", 0x1f45},
+      {"\000\037A\000\003\001", 0x1f45},
 #line 711 "./uninorm/composition-table.gperf"
-      {"\037A\003\000", 0x1f43},
+      {"\000\037A\000\003\000", 0x1f43},
 #line 354 "./uninorm/composition-table.gperf"
-      {"\004'\003\010", 0x04f4},
+      {"\000\004'\000\003\010", 0x04f4},
 #line 65 "./uninorm/composition-table.gperf"
-      {"\000e\003\001", 0x00e9},
+      {"\000\000e\000\003\001", 0x00e9},
 #line 64 "./uninorm/composition-table.gperf"
-      {"\000e\003\000", 0x00e8},
+      {"\000\000e\000\003\000", 0x00e8},
 #line 121 "./uninorm/composition-table.gperf"
-      {"\000i\003\003", 0x0129},
+      {"\000\000i\000\003\003", 0x0129},
 #line 66 "./uninorm/composition-table.gperf"
-      {"\000e\003\002", 0x00ea},
+      {"\000\000e\000\003\002", 0x00ea},
 #line 105 "./uninorm/composition-table.gperf"
-      {"\000e\003\007", 0x0117},
-#line 344 "./uninorm/composition-table.gperf"
-      {"\004\350\003\010", 0x04ea},
+      {"\000\000e\000\003\007", 0x0117},
+#line 335 "./uninorm/composition-table.gperf"
+      {"\000\0046\000\003\010", 0x04dd},
 #line 125 "./uninorm/composition-table.gperf"
-      {"\000i\003\006", 0x012d},
+      {"\000\000i\000\003\006", 0x012d},
 #line 714 "./uninorm/composition-table.gperf"
-      {"\003\237\003\023", 0x1f48},
-#line 615 "./uninorm/composition-table.gperf"
-      {"\036\315\003\002", 0x1ed9},
+      {"\000\003\237\000\003\023", 0x1f48},
+#line 333 "./uninorm/composition-table.gperf"
+      {"\000\004\331\000\003\010", 0x04db},
 #line 127 "./uninorm/composition-table.gperf"
-      {"\000i\003(", 0x012f},
-#line 368 "./uninorm/composition-table.gperf"
-      {"\0113\011<", 0x0934},
+      {"\000\000i\000\003(", 0x012f},
+#line 345 "./uninorm/composition-table.gperf"
+      {"\000\004\351\000\003\010", 0x04eb},
 #line 668 "./uninorm/composition-table.gperf"
-      {"\037\020\003\001", 0x1f14},
+      {"\000\037\020\000\003\001", 0x1f14},
 #line 666 "./uninorm/composition-table.gperf"
-      {"\037\020\003\000", 0x1f12},
+      {"\000\037\020\000\003\000", 0x1f12},
 #line 576 "./uninorm/composition-table.gperf"
-      {"\001\002\003\011", 0x1eb2},
+      {"\000\001\002\000\003\011", 0x1eb2},
 #line 675 "./uninorm/composition-table.gperf"
-      {"\037\031\003\001", 0x1f1d},
+      {"\000\037\031\000\003\001", 0x1f1d},
 #line 673 "./uninorm/composition-table.gperf"
-      {"\037\031\003\000", 0x1f1b},
+      {"\000\037\031\000\003\000", 0x1f1b},
 #line 577 "./uninorm/composition-table.gperf"
-      {"\001\003\003\011", 0x1eb3},
+      {"\000\001\003\000\003\011", 0x1eb3},
 #line 321 "./uninorm/composition-table.gperf"
-      {"\004C\003\006", 0x045e},
+      {"\000\004C\000\003\006", 0x045e},
 #line 792 "./uninorm/composition-table.gperf"
-      {"\037e\003E", 0x1fa5},
-#line 872 "./uninorm/composition-table.gperf"
-      {"\000=\0038", 0x2260},
+      {"\000\037e\000\003E", 0x1fa5},
+#line 344 "./uninorm/composition-table.gperf"
+      {"\000\004\350\000\003\010", 0x04ea},
 #line 614 "./uninorm/composition-table.gperf"
-      {"\036\314\003\002", 0x1ed8},
+      {"\000\036\314\000\003\002", 0x1ed8},
 #line 120 "./uninorm/composition-table.gperf"
-      {"\000I\003\003", 0x0128},
+      {"\000\000I\000\003\003", 0x0128},
 #line 432 "./uninorm/composition-table.gperf"
-      {"\002)\003\006", 0x1e1d},
-#line 596 "./uninorm/composition-table.gperf"
-      {"\036\270\003\002", 0x1ec6},
+      {"\000\002)\000\003\006", 0x1e1d},
+#line 343 "./uninorm/composition-table.gperf"
+      {"\000\004>\000\003\010", 0x04e7},
 #line 35 "./uninorm/composition-table.gperf"
-      {"\000A\003\010", 0x00c4},
+      {"\000\000A\000\003\010", 0x00c4},
 #line 124 "./uninorm/composition-table.gperf"
-      {"\000I\003\006", 0x012c},
+      {"\000\000I\000\003\006", 0x012c},
 #line 74 "./uninorm/composition-table.gperf"
-      {"\000o\003\001", 0x00f3},
+      {"\000\000o\000\003\001", 0x00f3},
 #line 73 "./uninorm/composition-table.gperf"
-      {"\000o\003\000", 0x00f2},
+      {"\000\000o\000\003\000", 0x00f2},
 #line 126 "./uninorm/composition-table.gperf"
-      {"\000I\003(", 0x012e},
+      {"\000\000I\000\003(", 0x012e},
 #line 75 "./uninorm/composition-table.gperf"
-      {"\000o\003\002", 0x00f4},
+      {"\000\000o\000\003\002", 0x00f4},
 #line 278 "./uninorm/composition-table.gperf"
-      {"\000o\003\007", 0x022f},
+      {"\000\000o\000\003\007", 0x022f},
 #line 240 "./uninorm/composition-table.gperf"
-      {"\000a\003\017", 0x0201},
-#line 225 "./uninorm/composition-table.gperf"
-      {"\001\353\003\004", 0x01ed},
+      {"\000\000a\000\003\017", 0x0201},
+#line 434 "./uninorm/composition-table.gperf"
+      {"\000\000f\000\003\007", 0x1e1f},
 #line 67 "./uninorm/composition-table.gperf"
-      {"\000e\003\010", 0x00eb},
-#line 217 "./uninorm/composition-table.gperf"
-      {"\000\346\003\004", 0x01e3},
+      {"\000\000e\000\003\010", 0x00eb},
+#line 325 "./uninorm/composition-table.gperf"
+      {"\000\0046\000\003\006", 0x04c2},
 #line 79 "./uninorm/composition-table.gperf"
-      {"\000u\003\001", 0x00fa},
+      {"\000\000u\000\003\001", 0x00fa},
 #line 78 "./uninorm/composition-table.gperf"
-      {"\000u\003\000", 0x00f9},
+      {"\000\000u\000\003\000", 0x00f9},
 #line 765 "./uninorm/composition-table.gperf"
-      {"\037\012\003E", 0x1f8a},
+      {"\000\037\012\000\003E", 0x1f8a},
 #line 80 "./uninorm/composition-table.gperf"
-      {"\000u\003\002", 0x00fb},
+      {"\000\000u\000\003\002", 0x00fb},
 #line 96 "./uninorm/composition-table.gperf"
-      {"\000C\003\014", 0x010c},
+      {"\000\000C\000\003\014", 0x010c},
 #line 215 "./uninorm/composition-table.gperf"
-      {"\002'\003\004", 0x01e1},
+      {"\000\002'\000\003\004", 0x01e1},
 #line 696 "./uninorm/composition-table.gperf"
-      {"\0370\003\001", 0x1f34},
+      {"\000\0370\000\003\001", 0x1f34},
 #line 694 "./uninorm/composition-table.gperf"
-      {"\0370\003\000", 0x1f32},
+      {"\000\0370\000\003\000", 0x1f32},
 #line 698 "./uninorm/composition-table.gperf"
-      {"\0370\003B", 0x1f36},
+      {"\000\0370\000\003B", 0x1f36},
 #line 802 "./uninorm/composition-table.gperf"
-      {"\037o\003E", 0x1faf},
+      {"\000\037o\000\003E", 0x1faf},
 #line 561 "./uninorm/composition-table.gperf"
-      {"\000a\003\011", 0x1ea3},
-#line 335 "./uninorm/composition-table.gperf"
-      {"\0046\003\010", 0x04dd},
+      {"\000\000a\000\003\011", 0x1ea3},
+#line 793 "./uninorm/composition-table.gperf"
+      {"\000\037f\000\003E", 0x1fa6},
 #line 248 "./uninorm/composition-table.gperf"
-      {"\000i\003\017", 0x0209},
-#line 273 "./uninorm/composition-table.gperf"
-      {"\000\326\003\004", 0x022a},
+      {"\000\000i\000\003\017", 0x0209},
+#line 304 "./uninorm/composition-table.gperf"
+      {"\000\003\322\000\003\001", 0x03d3},
 #line 34 "./uninorm/composition-table.gperf"
-      {"\000A\003\003", 0x00c3},
-#line 213 "./uninorm/composition-table.gperf"
-      {"\000\344\003\004", 0x01df},
-#line 333 "./uninorm/composition-table.gperf"
-      {"\004\331\003\010", 0x04db},
+      {"\000\000A\000\003\003", 0x00c3},
+#line 342 "./uninorm/composition-table.gperf"
+      {"\000\004\036\000\003\010", 0x04e6},
+#line 274 "./uninorm/composition-table.gperf"
+      {"\000\000\366\000\003\004", 0x022b},
 #line 760 "./uninorm/composition-table.gperf"
-      {"\037\005\003E", 0x1f85},
+      {"\000\037\005\000\003E", 0x1f85},
 #line 86 "./uninorm/composition-table.gperf"
-      {"\000A\003\006", 0x0102},
-#line 276 "./uninorm/composition-table.gperf"
-      {"\000\365\003\004", 0x022d},
+      {"\000\000A\000\003\006", 0x0102},
+#line 273 "./uninorm/composition-table.gperf"
+      {"\000\000\326\000\003\004", 0x022a},
 #line 768 "./uninorm/composition-table.gperf"
-      {"\037\015\003E", 0x1f8d},
+      {"\000\037\015\000\003E", 0x1f8d},
 #line 88 "./uninorm/composition-table.gperf"
-      {"\000A\003(", 0x0104},
-#line 781 "./uninorm/composition-table.gperf"
-      {"\037*\003E", 0x1f9a},
+      {"\000\000A\000\003(", 0x0104},
+#line 217 "./uninorm/composition-table.gperf"
+      {"\000\000\346\000\003\004", 0x01e3},
 #line 587 "./uninorm/composition-table.gperf"
-      {"\000e\003\003", 0x1ebd},
+      {"\000\000e\000\003\003", 0x1ebd},
 #line 77 "./uninorm/composition-table.gperf"
-      {"\000o\003\010", 0x00f6},
+      {"\000\000o\000\003\010", 0x00f6},
 #line 85 "./uninorm/composition-table.gperf"
-      {"\000a\003\004", 0x0101},
+      {"\000\000a\000\003\004", 0x0101},
 #line 599 "./uninorm/composition-table.gperf"
-      {"\000i\003\011", 0x1ec9},
+      {"\000\000i\000\003\011", 0x1ec9},
 #line 103 "./uninorm/composition-table.gperf"
-      {"\000e\003\006", 0x0115},
+      {"\000\000e\000\003\006", 0x0115},
 #line 197 "./uninorm/composition-table.gperf"
-      {"\000a\003\014", 0x01ce},
-#line 784 "./uninorm/composition-table.gperf"
-      {"\037-\003E", 0x1f9d},
+      {"\000\000a\000\003\014", 0x01ce},
+#line 225 "./uninorm/composition-table.gperf"
+      {"\000\001\353\000\003\004", 0x01ed},
 #line 107 "./uninorm/composition-table.gperf"
-      {"\000e\003(", 0x0119},
+      {"\000\000e\000\003(", 0x0119},
 #line 247 "./uninorm/composition-table.gperf"
-      {"\000I\003\017", 0x0208},
-#line 782 "./uninorm/composition-table.gperf"
-      {"\037+\003E", 0x1f9b},
+      {"\000\000I\000\003\017", 0x0208},
+#line 213 "./uninorm/composition-table.gperf"
+      {"\000\000\344\000\003\004", 0x01df},
 #line 81 "./uninorm/composition-table.gperf"
-      {"\000u\003\010", 0x00fc},
+      {"\000\000u\000\003\010", 0x00fc},
 #line 39 "./uninorm/composition-table.gperf"
-      {"\000E\003\001", 0x00c9},
+      {"\000\000E\000\003\001", 0x00c9},
 #line 38 "./uninorm/composition-table.gperf"
-      {"\000E\003\000", 0x00c8},
+      {"\000\000E\000\003\000", 0x00c8},
 #line 204 "./uninorm/composition-table.gperf"
-      {"\000\334\003\004", 0x01d5},
+      {"\000\000\334\000\003\004", 0x01d5},
 #line 40 "./uninorm/composition-table.gperf"
-      {"\000E\003\002", 0x00ca},
+      {"\000\000E\000\003\002", 0x00ca},
 #line 104 "./uninorm/composition-table.gperf"
-      {"\000E\003\007", 0x0116},
+      {"\000\000E\000\003\007", 0x0116},
 #line 208 "./uninorm/composition-table.gperf"
-      {"\000\334\003\014", 0x01d9},
-#line 325 "./uninorm/composition-table.gperf"
-      {"\0046\003\006", 0x04c2},
+      {"\000\000\334\000\003\014", 0x01d9},
+#line 388 "./uninorm/composition-table.gperf"
+      {"\000\015\331\000\015\317", 0x0ddc},
 #line 123 "./uninorm/composition-table.gperf"
-      {"\000i\003\004", 0x012b},
-#line 342 "./uninorm/composition-table.gperf"
-      {"\004\036\003\010", 0x04e6},
-#line 849 "./uninorm/composition-table.gperf"
-      {"\037|\003E", 0x1ff2},
+      {"\000\000i\000\003\004", 0x012b},
+#line 212 "./uninorm/composition-table.gperf"
+      {"\000\000\304\000\003\004", 0x01de},
+#line 129 "./uninorm/composition-table.gperf"
+      {"\000\000J\000\003\002", 0x0134},
 #line 199 "./uninorm/composition-table.gperf"
-      {"\000i\003\014", 0x01d0},
+      {"\000\000i\000\003\014", 0x01d0},
 #line 598 "./uninorm/composition-table.gperf"
-      {"\000I\003\011", 0x1ec8},
-#line 337 "./uninorm/composition-table.gperf"
-      {"\0047\003\010", 0x04df},
+      {"\000\000I\000\003\011", 0x1ec8},
+#line 305 "./uninorm/composition-table.gperf"
+      {"\000\003\322\000\003\010", 0x03d4},
 #line 48 "./uninorm/composition-table.gperf"
-      {"\000O\003\001", 0x00d3},
+      {"\000\000O\000\003\001", 0x00d3},
 #line 47 "./uninorm/composition-table.gperf"
-      {"\000O\003\000", 0x00d2},
+      {"\000\000O\000\003\000", 0x00d2},
 #line 76 "./uninorm/composition-table.gperf"
-      {"\000o\003\003", 0x00f5},
+      {"\000\000o\000\003\003", 0x00f5},
 #line 49 "./uninorm/composition-table.gperf"
-      {"\000O\003\002", 0x00d4},
+      {"\000\000O\000\003\002", 0x00d4},
 #line 277 "./uninorm/composition-table.gperf"
-      {"\000O\003\007", 0x022e},
+      {"\000\000O\000\003\007", 0x022e},
 #line 349 "./uninorm/composition-table.gperf"
-      {"\004C\003\004", 0x04ef},
+      {"\000\004C\000\003\004", 0x04ef},
 #line 148 "./uninorm/composition-table.gperf"
-      {"\000o\003\006", 0x014f},
+      {"\000\000o\000\003\006", 0x014f},
 #line 328 "./uninorm/composition-table.gperf"
-      {"\004\020\003\010", 0x04d2},
-#line 274 "./uninorm/composition-table.gperf"
-      {"\000\366\003\004", 0x022b},
+      {"\000\004\020\000\003\010", 0x04d2},
+#line 954 "./uninorm/composition-table.gperf"
+      {"\0000\357\0000\231", 0x30f7},
 #line 223 "./uninorm/composition-table.gperf"
-      {"\000o\003(", 0x01eb},
+      {"\000\000o\000\003(", 0x01eb},
 #line 932 "./uninorm/composition-table.gperf"
-      {"0\2630\231", 0x30b4},
+      {"\0000\263\0000\231", 0x30b4},
 #line 170 "./uninorm/composition-table.gperf"
-      {"\000u\003\003", 0x0169},
+      {"\000\000u\000\003\003", 0x0169},
 #line 239 "./uninorm/composition-table.gperf"
-      {"\000A\003\017", 0x0200},
+      {"\000\000A\000\003\017", 0x0200},
 #line 122 "./uninorm/composition-table.gperf"
-      {"\000I\003\004", 0x012a},
-#line 924 "./uninorm/composition-table.gperf"
-      {"0{0\231", 0x307c},
+      {"\000\000I\000\003\004", 0x012a},
+#line 367 "./uninorm/composition-table.gperf"
+      {"\000\0110\000\011<", 0x0931},
 #line 174 "./uninorm/composition-table.gperf"
-      {"\000u\003\006", 0x016d},
+      {"\000\000u\000\003\006", 0x016d},
 #line 198 "./uninorm/composition-table.gperf"
-      {"\000I\003\014", 0x01cf},
+      {"\000\000I\000\003\014", 0x01cf},
 #line 926 "./uninorm/composition-table.gperf"
-      {"0F0\231", 0x3094},
+      {"\0000F\0000\231", 0x3094},
 #line 180 "./uninorm/composition-table.gperf"
-      {"\000u\003(", 0x0173},
-#line 958 "./uninorm/composition-table.gperf"
-      {"0\3750\231", 0x30fe},
+      {"\000\000u\000\003(", 0x0173},
+#line 951 "./uninorm/composition-table.gperf"
+      {"\0000\333\0000\231", 0x30dc},
 #line 41 "./uninorm/composition-table.gperf"
-      {"\000E\003\010", 0x00cb},
+      {"\000\000E\000\003\010", 0x00cb},
 #line 244 "./uninorm/composition-table.gperf"
-      {"\000e\003\017", 0x0205},
+      {"\000\000e\000\003\017", 0x0205},
 #line 53 "./uninorm/composition-table.gperf"
-      {"\000U\003\001", 0x00da},
+      {"\000\000U\000\003\001", 0x00da},
 #line 52 "./uninorm/composition-table.gperf"
-      {"\000U\003\000", 0x00d9},
-#line 530 "./uninorm/composition-table.gperf"
-      {"\000v\003#", 0x1e7f},
+      {"\000\000U\000\003\000", 0x00d9},
+#line 939 "./uninorm/composition-table.gperf"
+      {"\0000\301\0000\231", 0x30c2},
 #line 54 "./uninorm/composition-table.gperf"
-      {"\000U\003\002", 0x00db},
+      {"\000\000U\000\003\002", 0x00db},
 #line 560 "./uninorm/composition-table.gperf"
-      {"\000A\003\011", 0x1ea2},
-#line 298 "./uninorm/composition-table.gperf"
-      {"\003\313\003\001", 0x03b0},
-#line 839 "./uninorm/composition-table.gperf"
-      {"\003\313\003\000", 0x1fe2},
-#line 843 "./uninorm/composition-table.gperf"
-      {"\003\313\003B", 0x1fe7},
+      {"\000\000A\000\003\011", 0x1ea2},
+#line 958 "./uninorm/composition-table.gperf"
+      {"\0000\375\0000\231", 0x30fe},
+#line 459 "./uninorm/composition-table.gperf"
+      {"\000\0366\000\003\004", 0x1e38},
+#line 205 "./uninorm/composition-table.gperf"
+      {"\000\000\374\000\003\004", 0x01d6},
 #line 775 "./uninorm/composition-table.gperf"
-      {"\037$\003E", 0x1f94},
+      {"\000\037$\000\003E", 0x1f94},
 #line 912 "./uninorm/composition-table.gperf"
-      {"0a0\231", 0x3062},
-#line 957 "./uninorm/composition-table.gperf"
-      {"0\3620\231", 0x30fa},
+      {"\0000a\0000\231", 0x3062},
+#line 209 "./uninorm/composition-table.gperf"
+      {"\000\000\374\000\003\014", 0x01da},
 #line 51 "./uninorm/composition-table.gperf"
-      {"\000O\003\010", 0x00d6},
-#line 388 "./uninorm/composition-table.gperf"
-      {"\015\331\015\317", 0x0ddc},
+      {"\000\000O\000\003\010", 0x00d6},
+#line 957 "./uninorm/composition-table.gperf"
+      {"\0000\362\0000\231", 0x30fa},
 #line 585 "./uninorm/composition-table.gperf"
-      {"\000e\003\011", 0x1ebb},
+      {"\000\000e\000\003\011", 0x1ebb},
 #line 326 "./uninorm/composition-table.gperf"
-      {"\004\020\003\006", 0x04d0},
+      {"\000\004\020\000\003\006", 0x04d0},
 #line 329 "./uninorm/composition-table.gperf"
-      {"\0040\003\010", 0x04d3},
+      {"\000\0040\000\003\010", 0x04d3},
 #line 559 "./uninorm/composition-table.gperf"
-      {"\000a\003#", 0x1ea1},
+      {"\000\000a\000\003#", 0x1ea1},
 #line 82 "./uninorm/composition-table.gperf"
-      {"\000y\003\001", 0x00fd},
+      {"\000\000y\000\003\001", 0x00fd},
 #line 641 "./uninorm/composition-table.gperf"
-      {"\000y\003\000", 0x1ef3},
+      {"\000\000y\000\003\000", 0x1ef3},
 #line 84 "./uninorm/composition-table.gperf"
-      {"\000A\003\004", 0x0100},
+      {"\000\000A\000\003\004", 0x0100},
 #line 184 "./uninorm/composition-table.gperf"
-      {"\000y\003\002", 0x0177},
+      {"\000\000y\000\003\002", 0x0177},
 #line 546 "./uninorm/composition-table.gperf"
-      {"\000y\003\007", 0x1e8f},
+      {"\000\000y\000\003\007", 0x1e8f},
 #line 196 "./uninorm/composition-table.gperf"
-      {"\000A\003\014", 0x01cd},
+      {"\000\000A\000\003\014", 0x01cd},
 #line 586 "./uninorm/composition-table.gperf"
-      {"\000E\003\003", 0x1ebc},
-#line 367 "./uninorm/composition-table.gperf"
-      {"\0110\011<", 0x0931},
+      {"\000\000E\000\003\003", 0x1ebc},
+#line 956 "./uninorm/composition-table.gperf"
+      {"\0000\361\0000\231", 0x30f9},
 #line 252 "./uninorm/composition-table.gperf"
-      {"\000o\003\017", 0x020d},
-#line 346 "./uninorm/composition-table.gperf"
-      {"\004-\003\010", 0x04ec},
+      {"\000\000o\000\003\017", 0x020d},
+#line 940 "./uninorm/composition-table.gperf"
+      {"\0000\304\0000\231", 0x30c5},
 #line 102 "./uninorm/composition-table.gperf"
-      {"\000E\003\006", 0x0114},
+      {"\000\000E\000\003\006", 0x0114},
 #line 101 "./uninorm/composition-table.gperf"
-      {"\000e\003\004", 0x0113},
-#line 356 "./uninorm/composition-table.gperf"
-      {"\004+\003\010", 0x04f8},
+      {"\000\000e\000\003\004", 0x0113},
+#line 227 "./uninorm/composition-table.gperf"
+      {"\000\002\222\000\003\014", 0x01ef},
 #line 106 "./uninorm/composition-table.gperf"
-      {"\000E\003(", 0x0118},
+      {"\000\000E\000\003(", 0x0118},
 #line 109 "./uninorm/composition-table.gperf"
-      {"\000e\003\014", 0x011b},
+      {"\000\000e\000\003\014", 0x011b},
 #line 601 "./uninorm/composition-table.gperf"
-      {"\000i\003#", 0x1ecb},
+      {"\000\000i\000\003#", 0x1ecb},
 #line 55 "./uninorm/composition-table.gperf"
-      {"\000U\003\010", 0x00dc},
+      {"\000\000U\000\003\010", 0x00dc},
 #line 260 "./uninorm/composition-table.gperf"
-      {"\000u\003\017", 0x0215},
-#line 227 "./uninorm/composition-table.gperf"
-      {"\002\222\003\014", 0x01ef},
+      {"\000\000u\000\003\017", 0x0215},
+#line 955 "./uninorm/composition-table.gperf"
+      {"\0000\360\0000\231", 0x30f8},
 #line 50 "./uninorm/composition-table.gperf"
-      {"\000O\003\003", 0x00d5},
-#line 954 "./uninorm/composition-table.gperf"
-      {"0\3570\231", 0x30f7},
+      {"\000\000O\000\003\003", 0x00d5},
+#line 390 "./uninorm/composition-table.gperf"
+      {"\000\015\331\000\015\337", 0x0dde},
 #line 510 "./uninorm/composition-table.gperf"
-      {"\000t\003\007", 0x1e6b},
+      {"\000\000t\000\003\007", 0x1e6b},
 #line 605 "./uninorm/composition-table.gperf"
-      {"\000o\003\011", 0x1ecf},
+      {"\000\000o\000\003\011", 0x1ecf},
 #line 147 "./uninorm/composition-table.gperf"
-      {"\000O\003\006", 0x014e},
+      {"\000\000O\000\003\006", 0x014e},
 #line 425 "./uninorm/composition-table.gperf"
-      {"\001\022\003\001", 0x1e16},
+      {"\000\001\022\000\003\001", 0x1e16},
 #line 423 "./uninorm/composition-table.gperf"
-      {"\001\022\003\000", 0x1e14},
+      {"\000\001\022\000\003\000", 0x1e14},
 #line 222 "./uninorm/composition-table.gperf"
-      {"\000O\003(", 0x01ea},
+      {"\000\000O\000\003(", 0x01ea},
 #line 327 "./uninorm/composition-table.gperf"
-      {"\0040\003\006", 0x04d1},
-#line 928 "./uninorm/composition-table.gperf"
-      {"0\2530\231", 0x30ac},
-#line 876 "./uninorm/composition-table.gperf"
-      {"\000>\0038", 0x226f},
+      {"\000\0040\000\003\006", 0x04d1},
+#line 774 "./uninorm/composition-table.gperf"
+      {"\000\037#\000\003E", 0x1f93},
+#line 942 "./uninorm/composition-table.gperf"
+      {"\0000\310\0000\231", 0x30c9},
 #line 266 "./uninorm/composition-table.gperf"
-      {"\000t\003&", 0x021b},
+      {"\000\000t\000\003&", 0x021b},
 #line 629 "./uninorm/composition-table.gperf"
-      {"\000u\003\011", 0x1ee7},
+      {"\000\000u\000\003\011", 0x1ee7},
 #line 152 "./uninorm/composition-table.gperf"
-      {"\000r\003\001", 0x0155},
+      {"\000\000r\000\003\001", 0x0155},
 #line 83 "./uninorm/composition-table.gperf"
-      {"\000y\003\010", 0x00ff},
+      {"\000\000y\000\003\010", 0x00ff},
 #line 600 "./uninorm/composition-table.gperf"
-      {"\000I\003#", 0x1eca},
+      {"\000\000I\000\003#", 0x1eca},
 #line 815 "./uninorm/composition-table.gperf"
-      {"\037t\003E", 0x1fc2},
+      {"\000\037t\000\003E", 0x1fc2},
 #line 492 "./uninorm/composition-table.gperf"
-      {"\000r\003\007", 0x1e59},
+      {"\000\000r\000\003\007", 0x1e59},
 #line 146 "./uninorm/composition-table.gperf"
-      {"\000o\003\004", 0x014d},
-#line 434 "./uninorm/composition-table.gperf"
-      {"\000f\003\007", 0x1e1f},
-#line 761 "./uninorm/composition-table.gperf"
-      {"\037\006\003E", 0x1f86},
+      {"\000\000o\000\003\004", 0x014d},
+#line 909 "./uninorm/composition-table.gperf"
+      {"\0000[\0000\231", 0x305c},
+#line 937 "./uninorm/composition-table.gperf"
+      {"\0000\275\0000\231", 0x30be},
 #line 201 "./uninorm/composition-table.gperf"
-      {"\000o\003\014", 0x01d2},
+      {"\000\000o\000\003\014", 0x01d2},
 #line 169 "./uninorm/composition-table.gperf"
-      {"\000U\003\003", 0x0168},
-#line 956 "./uninorm/composition-table.gperf"
-      {"0\3610\231", 0x30f9},
+      {"\000\000U\000\003\003", 0x0168},
+#line 496 "./uninorm/composition-table.gperf"
+      {"\000\036[\000\003\004", 0x1e5d},
 #line 140 "./uninorm/composition-table.gperf"
-      {"\000n\003\001", 0x0144},
+      {"\000\000n\000\003\001", 0x0144},
 #line 232 "./uninorm/composition-table.gperf"
-      {"\000n\003\000", 0x01f9},
+      {"\000\000n\000\003\000", 0x01f9},
 #line 173 "./uninorm/composition-table.gperf"
-      {"\000U\003\006", 0x016c},
+      {"\000\000U\000\003\006", 0x016c},
 #line 172 "./uninorm/composition-table.gperf"
-      {"\000u\003\004", 0x016b},
+      {"\000\000u\000\003\004", 0x016b},
 #line 472 "./uninorm/composition-table.gperf"
-      {"\000n\003\007", 0x1e45},
+      {"\000\000n\000\003\007", 0x1e45},
 #line 179 "./uninorm/composition-table.gperf"
-      {"\000U\003(", 0x0172},
+      {"\000\000U\000\003(", 0x0172},
 #line 203 "./uninorm/composition-table.gperf"
-      {"\000u\003\014", 0x01d4},
+      {"\000\000u\000\003\014", 0x01d4},
 #line 554 "./uninorm/composition-table.gperf"
-      {"\000t\003\010", 0x1e97},
+      {"\000\000t\000\003\010", 0x1e97},
 #line 243 "./uninorm/composition-table.gperf"
-      {"\000E\003\017", 0x0204},
-#line 793 "./uninorm/composition-table.gperf"
-      {"\037f\003E", 0x1fa6},
-#line 943 "./uninorm/composition-table.gperf"
-      {"0\3170\231", 0x30d0},
+      {"\000\000E\000\003\017", 0x0204},
+#line 669 "./uninorm/composition-table.gperf"
+      {"\000\037\021\000\003\001", 0x1f15},
+#line 667 "./uninorm/composition-table.gperf"
+      {"\000\037\021\000\003\000", 0x1f13},
 #line 785 "./uninorm/composition-table.gperf"
-      {"\037.\003E", 0x1f9e},
+      {"\000\037.\000\003E", 0x1f9e},
 #line 414 "./uninorm/composition-table.gperf"
-      {"\000d\003\007", 0x1e0b},
+      {"\000\000d\000\003\007", 0x1e0b},
 #line 242 "./uninorm/composition-table.gperf"
-      {"\000a\003\021", 0x0203},
-#line 459 "./uninorm/composition-table.gperf"
-      {"\0366\003\004", 0x1e38},
+      {"\000\000a\000\003\021", 0x0203},
+#line 449 "./uninorm/composition-table.gperf"
+      {"\000\000\317\000\003\001", 0x1e2e},
 #line 647 "./uninorm/composition-table.gperf"
-      {"\000y\003\003", 0x1ef9},
-#line 426 "./uninorm/composition-table.gperf"
-      {"\001\023\003\001", 0x1e17},
-#line 424 "./uninorm/composition-table.gperf"
-      {"\001\023\003\000", 0x1e15},
+      {"\000\000y\000\003\003", 0x1ef9},
+#line 596 "./uninorm/composition-table.gperf"
+      {"\000\036\270\000\003\002", 0x1ec6},
+#line 319 "./uninorm/composition-table.gperf"
+      {"\000\004:\000\003\001", 0x045c},
 #line 801 "./uninorm/composition-table.gperf"
-      {"\037n\003E", 0x1fae},
+      {"\000\037n\000\003E", 0x1fae},
 #line 558 "./uninorm/composition-table.gperf"
-      {"\000A\003#", 0x1ea0},
-#line 343 "./uninorm/composition-table.gperf"
-      {"\004>\003\010", 0x04e7},
+      {"\000\000A\000\003#", 0x1ea0},
+#line 929 "./uninorm/composition-table.gperf"
+      {"\0000\255\0000\231", 0x30ae},
 #line 251 "./uninorm/composition-table.gperf"
-      {"\000O\003\017", 0x020c},
+      {"\000\000O\000\003\017", 0x020c},
 #line 584 "./uninorm/composition-table.gperf"
-      {"\000E\003\011", 0x1eba},
-#line 955 "./uninorm/composition-table.gperf"
-      {"0\3600\231", 0x30f8},
+      {"\000\000E\000\003\011", 0x1eba},
+#line 953 "./uninorm/composition-table.gperf"
+      {"\0000\246\0000\231", 0x30f4},
 #line 766 "./uninorm/composition-table.gperf"
-      {"\037\013\003E", 0x1f8b},
+      {"\000\037\013\000\003E", 0x1f8b},
 #line 323 "./uninorm/composition-table.gperf"
-      {"\004u\003\017", 0x0477},
+      {"\000\004u\000\003\017", 0x0477},
 #line 791 "./uninorm/composition-table.gperf"
-      {"\037d\003E", 0x1fa4},
-#line 875 "./uninorm/composition-table.gperf"
-      {"\000<\0038", 0x226e},
+      {"\000\037d\000\003E", 0x1fa4},
+#line 927 "./uninorm/composition-table.gperf"
+      {"\0000\235\0000\231", 0x309e},
 #line 583 "./uninorm/composition-table.gperf"
-      {"\000e\003#", 0x1eb9},
+      {"\000\000e\000\003#", 0x1eb9},
 #line 250 "./uninorm/composition-table.gperf"
-      {"\000i\003\021", 0x020b},
+      {"\000\000i\000\003\021", 0x020b},
 #line 118 "./uninorm/composition-table.gperf"
-      {"\000H\003\002", 0x0124},
+      {"\000\000H\000\003\002", 0x0124},
 #line 437 "./uninorm/composition-table.gperf"
-      {"\000H\003\007", 0x1e22},
+      {"\000\000H\000\003\007", 0x1e22},
 #line 62 "./uninorm/composition-table.gperf"
-      {"\000a\003\012", 0x00e5},
+      {"\000\000a\000\003\012", 0x00e5},
 #line 718 "./uninorm/composition-table.gperf"
-      {"\037H\003\001", 0x1f4c},
+      {"\000\037H\000\003\001", 0x1f4c},
 #line 716 "./uninorm/composition-table.gperf"
-      {"\037H\003\000", 0x1f4a},
+      {"\000\037H\000\003\000", 0x1f4a},
 #line 604 "./uninorm/composition-table.gperf"
-      {"\000O\003\011", 0x1ece},
-#line 390 "./uninorm/composition-table.gperf"
-      {"\015\331\015\337", 0x0dde},
+      {"\000\000O\000\003\011", 0x1ece},
+#line 911 "./uninorm/composition-table.gperf"
+      {"\0000_\0000\231", 0x3060},
 #line 100 "./uninorm/composition-table.gperf"
-      {"\000E\003\004", 0x0112},
+      {"\000\000E\000\003\004", 0x0112},
 #line 56 "./uninorm/composition-table.gperf"
-      {"\000Y\003\001", 0x00dd},
+      {"\000\000Y\000\003\001", 0x00dd},
 #line 640 "./uninorm/composition-table.gperf"
-      {"\000Y\003\000", 0x1ef2},
+      {"\000\000Y\000\003\000", 0x1ef2},
 #line 108 "./uninorm/composition-table.gperf"
-      {"\000E\003\014", 0x011a},
+      {"\000\000E\000\003\014", 0x011a},
 #line 183 "./uninorm/composition-table.gperf"
-      {"\000Y\003\002", 0x0176},
+      {"\000\000Y\000\003\002", 0x0176},
 #line 545 "./uninorm/composition-table.gperf"
-      {"\000Y\003\007", 0x1e8e},
+      {"\000\000Y\000\003\007", 0x1e8e},
 #line 259 "./uninorm/composition-table.gperf"
-      {"\000U\003\017", 0x0214},
+      {"\000\000U\000\003\017", 0x0214},
 #line 730 "./uninorm/composition-table.gperf"
-      {"\037Y\003\001", 0x1f5d},
+      {"\000\037Y\000\003\001", 0x1f5d},
 #line 729 "./uninorm/composition-table.gperf"
-      {"\037Y\003\000", 0x1f5b},
+      {"\000\037Y\000\003\000", 0x1f5b},
 #line 731 "./uninorm/composition-table.gperf"
-      {"\037Y\003B", 0x1f5f},
+      {"\000\037Y\000\003B", 0x1f5f},
 #line 916 "./uninorm/composition-table.gperf"
-      {"0o0\231", 0x3070},
+      {"\0000o\0000\231", 0x3070},
 #line 249 "./uninorm/composition-table.gperf"
-      {"\000I\003\021", 0x020a},
-#line 460 "./uninorm/composition-table.gperf"
-      {"\0367\003\004", 0x1e39},
+      {"\000\000I\000\003\021", 0x020a},
+#line 914 "./uninorm/composition-table.gperf"
+      {"\0000f\0000\231", 0x3067},
 #line 145 "./uninorm/composition-table.gperf"
-      {"\000O\003\004", 0x014c},
-#line 479 "./uninorm/composition-table.gperf"
-      {"\000\325\003\001", 0x1e4c},
-#line 451 "./uninorm/composition-table.gperf"
-      {"\000K\003\001", 0x1e30},
+      {"\000\000O\000\003\004", 0x014c},
+#line 350 "./uninorm/composition-table.gperf"
+      {"\000\004#\000\003\010", 0x04f0},
+#line 134 "./uninorm/composition-table.gperf"
+      {"\000\000l\000\003\001", 0x013a},
 #line 200 "./uninorm/composition-table.gperf"
-      {"\000O\003\014", 0x01d1},
+      {"\000\000O\000\003\014", 0x01d1},
 #line 603 "./uninorm/composition-table.gperf"
-      {"\000o\003#", 0x1ecd},
+      {"\000\000o\000\003#", 0x1ecd},
 #line 523 "./uninorm/composition-table.gperf"
-      {"\001h\003\001", 0x1e78},
+      {"\000\001h\000\003\001", 0x1e78},
 #line 920 "./uninorm/composition-table.gperf"
-      {"0u0\231", 0x3076},
+      {"\0000u\0000\231", 0x3076},
 #line 628 "./uninorm/composition-table.gperf"
-      {"\000U\003\011", 0x1ee6},
+      {"\000\000U\000\003\011", 0x1ee6},
 #line 72 "./uninorm/composition-table.gperf"
-      {"\000n\003\003", 0x00f1},
-#line 942 "./uninorm/composition-table.gperf"
-      {"0\3100\231", 0x30c9},
+      {"\000\000n\000\003\003", 0x00f1},
+#line 910 "./uninorm/composition-table.gperf"
+      {"\0000]\0000\231", 0x305e},
 #line 441 "./uninorm/composition-table.gperf"
-      {"\000H\003\010", 0x1e26},
-#line 937 "./uninorm/composition-table.gperf"
-      {"0\2750\231", 0x30be},
-#line 309 "./uninorm/composition-table.gperf"
-      {"\004\006\003\010", 0x0407},
+      {"\000\000H\000\003\010", 0x1e26},
+#line 783 "./uninorm/composition-table.gperf"
+      {"\000\037,\000\003E", 0x1f9c},
+#line 936 "./uninorm/composition-table.gperf"
+      {"\0000\273\0000\231", 0x30bc},
 #line 627 "./uninorm/composition-table.gperf"
-      {"\000u\003#", 0x1ee5},
+      {"\000\000u\000\003#", 0x1ee5},
 #line 119 "./uninorm/composition-table.gperf"
-      {"\000h\003\002", 0x0125},
+      {"\000\000h\000\003\002", 0x0125},
 #line 438 "./uninorm/composition-table.gperf"
-      {"\000h\003\007", 0x1e23},
+      {"\000\000h\000\003\007", 0x1e23},
 #line 405 "./uninorm/composition-table.gperf"
-      {"\000B\003\007", 0x1e02},
+      {"\000\000B\000\003\007", 0x1e02},
 #line 744 "./uninorm/composition-table.gperf"
-      {"\037h\003\001", 0x1f6c},
+      {"\000\037h\000\003\001", 0x1f6c},
 #line 742 "./uninorm/composition-table.gperf"
-      {"\037h\003\000", 0x1f6a},
+      {"\000\037h\000\003\000", 0x1f6a},
 #line 746 "./uninorm/composition-table.gperf"
-      {"\037h\003B", 0x1f6e},
-#line 936 "./uninorm/composition-table.gperf"
-      {"0\2730\231", 0x30bc},
+      {"\000\037h\000\003B", 0x1f6e},
+#line 799 "./uninorm/composition-table.gperf"
+      {"\000\037l\000\003E", 0x1fac},
 #line 185 "./uninorm/composition-table.gperf"
-      {"\000Y\003\010", 0x0178},
+      {"\000\000Y\000\003\010", 0x0178},
 #line 171 "./uninorm/composition-table.gperf"
-      {"\000U\003\004", 0x016a},
-#line 308 "./uninorm/composition-table.gperf"
-      {"\004\023\003\001", 0x0403},
+      {"\000\000U\000\003\004", 0x016a},
+#line 945 "./uninorm/composition-table.gperf"
+      {"\0000\322\0000\231", 0x30d3},
 #line 645 "./uninorm/composition-table.gperf"
-      {"\000y\003\011", 0x1ef7},
+      {"\000\000y\000\003\011", 0x1ef7},
 #line 202 "./uninorm/composition-table.gperf"
-      {"\000U\003\014", 0x01d3},
+      {"\000\000U\000\003\014", 0x01d3},
 #line 241 "./uninorm/composition-table.gperf"
-      {"\000A\003\021", 0x0202},
+      {"\000\000A\000\003\021", 0x0202},
 #line 37 "./uninorm/composition-table.gperf"
-      {"\000C\003'", 0x00c7},
+      {"\000\000C\000\003'", 0x00c7},
 #line 773 "./uninorm/composition-table.gperf"
-      {"\037\"\003E", 0x1f92},
+      {"\000\037\"\000\003E", 0x1f92},
 #line 795 "./uninorm/composition-table.gperf"
-      {"\037h\003E", 0x1fa8},
-#line 411 "./uninorm/composition-table.gperf"
-      {"\000\307\003\001", 0x1e08},
+      {"\000\037h\000\003E", 0x1fa8},
+#line 312 "./uninorm/composition-table.gperf"
+      {"\000\004#\000\003\006", 0x040e},
 #line 688 "./uninorm/composition-table.gperf"
-      {"\037(\003\001", 0x1f2c},
+      {"\000\037(\000\003\001", 0x1f2c},
 #line 686 "./uninorm/composition-table.gperf"
-      {"\037(\003\000", 0x1f2a},
+      {"\000\037(\000\003\000", 0x1f2a},
 #line 690 "./uninorm/composition-table.gperf"
-      {"\037(\003B", 0x1f2e},
-#line 481 "./uninorm/composition-table.gperf"
-      {"\000\325\003\010", 0x1e4e},
+      {"\000\037(\000\003B", 0x1f2e},
+#line 411 "./uninorm/composition-table.gperf"
+      {"\000\000\307\000\003\001", 0x1e08},
 #line 246 "./uninorm/composition-table.gperf"
-      {"\000e\003\021", 0x0207},
+      {"\000\000e\000\003\021", 0x0207},
 #line 697 "./uninorm/composition-table.gperf"
-      {"\0371\003\001", 0x1f35},
+      {"\000\0371\000\003\001", 0x1f35},
 #line 695 "./uninorm/composition-table.gperf"
-      {"\0371\003\000", 0x1f33},
+      {"\000\0371\000\003\000", 0x1f33},
 #line 699 "./uninorm/composition-table.gperf"
-      {"\0371\003B", 0x1f37},
+      {"\000\0371\000\003B", 0x1f37},
 #line 282 "./uninorm/composition-table.gperf"
-      {"\000y\003\004", 0x0233},
-#line 304 "./uninorm/composition-table.gperf"
-      {"\003\322\003\001", 0x03d3},
+      {"\000\000y\000\003\004", 0x0233},
+#line 841 "./uninorm/composition-table.gperf"
+      {"\000\003\301\000\003\024", 0x1fe5},
 #line 428 "./uninorm/composition-table.gperf"
-      {"\000e\003-", 0x1e19},
+      {"\000\000e\000\003-", 0x1e19},
 #line 256 "./uninorm/composition-table.gperf"
-      {"\000r\003\017", 0x0211},
+      {"\000\000r\000\003\017", 0x0211},
 #line 779 "./uninorm/composition-table.gperf"
-      {"\037(\003E", 0x1f98},
+      {"\000\037(\000\003E", 0x1f98},
 #line 442 "./uninorm/composition-table.gperf"
-      {"\000h\003\010", 0x1e27},
+      {"\000\000h\000\003\010", 0x1e27},
 #line 36 "./uninorm/composition-table.gperf"
-      {"\000A\003\012", 0x00c5},
+      {"\000\000A\000\003\012", 0x00c5},
 #line 646 "./uninorm/composition-table.gperf"
-      {"\000Y\003\003", 0x1ef8},
+      {"\000\000Y\000\003\003", 0x1ef8},
 #line 582 "./uninorm/composition-table.gperf"
-      {"\000E\003#", 0x1eb8},
+      {"\000\000E\000\003#", 0x1eb8},
 #line 533 "./uninorm/composition-table.gperf"
-      {"\000W\003\001", 0x1e82},
+      {"\000\000W\000\003\001", 0x1e82},
 #line 531 "./uninorm/composition-table.gperf"
-      {"\000W\003\000", 0x1e80},
+      {"\000\000W\000\003\000", 0x1e80},
 #line 151 "./uninorm/composition-table.gperf"
-      {"\000R\003\001", 0x0154},
+      {"\000\000R\000\003\001", 0x0154},
 #line 181 "./uninorm/composition-table.gperf"
-      {"\000W\003\002", 0x0174},
+      {"\000\000W\000\003\002", 0x0174},
 #line 537 "./uninorm/composition-table.gperf"
-      {"\000W\003\007", 0x1e86},
+      {"\000\000W\000\003\007", 0x1e86},
 #line 903 "./uninorm/composition-table.gperf"
-      {"0O0\231", 0x3050},
+      {"\0000O\0000\231", 0x3050},
 #line 491 "./uninorm/composition-table.gperf"
-      {"\000R\003\007", 0x1e58},
+      {"\000\000R\000\003\007", 0x1e58},
 #line 869 "./uninorm/composition-table.gperf"
-      {"\"C\0038", 0x2244},
+      {"\000\"C\000\0038", 0x2244},
 #line 863 "./uninorm/composition-table.gperf"
-      {"\"\003\0038", 0x2204},
+      {"\000\"\003\000\0038", 0x2204},
 #line 864 "./uninorm/composition-table.gperf"
-      {"\"\010\0038", 0x2209},
+      {"\000\"\010\000\0038", 0x2209},
 #line 898 "./uninorm/composition-table.gperf"
-      {"\"\263\0038", 0x22eb},
+      {"\000\"\263\000\0038", 0x22eb},
 #line 168 "./uninorm/composition-table.gperf"
-      {"\000t\003\014", 0x0165},
+      {"\000\000t\000\003\014", 0x0165},
 #line 602 "./uninorm/composition-table.gperf"
-      {"\000O\003#", 0x1ecc},
+      {"\000\000O\000\003#", 0x1ecc},
 #line 254 "./uninorm/composition-table.gperf"
-      {"\000o\003\021", 0x020f},
-#line 884 "./uninorm/composition-table.gperf"
-      {"\"{\0038", 0x2281},
+      {"\000\000o\000\003\021", 0x020f},
+#line 899 "./uninorm/composition-table.gperf"
+      {"\000\"\264\000\0038", 0x22ec},
 #line 229 "./uninorm/composition-table.gperf"
-      {"\000G\003\001", 0x01f4},
-#line 389 "./uninorm/composition-table.gperf"
-      {"\015\334\015\312", 0x0ddd},
-#line 881 "./uninorm/composition-table.gperf"
-      {"\"v\0038", 0x2278},
+      {"\000\000G\000\003\001", 0x01f4},
+#line 897 "./uninorm/composition-table.gperf"
+      {"\000\"\262\000\0038", 0x22ea},
+#line 889 "./uninorm/composition-table.gperf"
+      {"\000\"\242\000\0038", 0x22ac},
 #line 110 "./uninorm/composition-table.gperf"
-      {"\000G\003\002", 0x011c},
+      {"\000\000G\000\003\002", 0x011c},
 #line 114 "./uninorm/composition-table.gperf"
-      {"\000G\003\007", 0x0120},
+      {"\000\000G\000\003\007", 0x0120},
 #line 279 "./uninorm/composition-table.gperf"
-      {"\002.\003\004", 0x0230},
-#line 899 "./uninorm/composition-table.gperf"
-      {"\"\264\0038", 0x22ec},
+      {"\000\002.\000\003\004", 0x0230},
+#line 868 "./uninorm/composition-table.gperf"
+      {"\000\"<\000\0038", 0x2241},
 #line 262 "./uninorm/composition-table.gperf"
-      {"\000u\003\021", 0x0217},
+      {"\000\000u\000\003\021", 0x0217},
 #line 715 "./uninorm/composition-table.gperf"
-      {"\003\237\003\024", 0x1f49},
+      {"\000\003\237\000\003\024", 0x1f49},
 #line 448 "./uninorm/composition-table.gperf"
-      {"\000i\0030", 0x1e2d},
-#line 305 "./uninorm/composition-table.gperf"
-      {"\003\322\003\010", 0x03d4},
+      {"\000\000i\000\0030", 0x1e2d},
+#line 528 "./uninorm/composition-table.gperf"
+      {"\000\000v\000\003\003", 0x1e7d},
 #line 156 "./uninorm/composition-table.gperf"
-      {"\000r\003\014", 0x0159},
+      {"\000\000r\000\003\014", 0x0159},
 #line 906 "./uninorm/composition-table.gperf"
-      {"0U0\231", 0x3056},
+      {"\0000U\0000\231", 0x3056},
 #line 522 "./uninorm/composition-table.gperf"
-      {"\000u\003-", 0x1e77},
+      {"\000\000u\000\003-", 0x1e77},
 #line 306 "./uninorm/composition-table.gperf"
-      {"\004\025\003\000", 0x0400},
+      {"\000\004\025\000\003\000", 0x0400},
 #line 322 "./uninorm/composition-table.gperf"
-      {"\004t\003\017", 0x0476},
+      {"\000\004t\000\003\017", 0x0476},
 #line 873 "./uninorm/composition-table.gperf"
-      {"\"a\0038", 0x2262},
+      {"\000\"a\000\0038", 0x2262},
 #line 431 "./uninorm/composition-table.gperf"
-      {"\002(\003\006", 0x1e1c},
+      {"\000\002(\000\003\006", 0x1e1c},
 #line 535 "./uninorm/composition-table.gperf"
-      {"\000W\003\010", 0x1e84},
+      {"\000\000W\000\003\010", 0x1e84},
 #line 626 "./uninorm/composition-table.gperf"
-      {"\000U\003#", 0x1ee4},
+      {"\000\000U\000\003#", 0x1ee4},
 #line 139 "./uninorm/composition-table.gperf"
-      {"\000N\003\001", 0x0143},
+      {"\000\000N\000\003\001", 0x0143},
 #line 231 "./uninorm/composition-table.gperf"
-      {"\000N\003\000", 0x01f8},
+      {"\000\000N\000\003\000", 0x01f8},
 #line 144 "./uninorm/composition-table.gperf"
-      {"\000n\003\014", 0x0148},
-#line 357 "./uninorm/composition-table.gperf"
-      {"\004K\003\010", 0x04f9},
+      {"\000\000n\000\003\014", 0x0148},
+#line 366 "./uninorm/composition-table.gperf"
+      {"\000\011(\000\011<", 0x0929},
 #line 471 "./uninorm/composition-table.gperf"
-      {"\000N\003\007", 0x1e44},
-#line 129 "./uninorm/composition-table.gperf"
-      {"\000J\003\002", 0x0134},
+      {"\000\000N\000\003\007", 0x1e44},
+#line 893 "./uninorm/composition-table.gperf"
+      {"\000\"|\000\0038", 0x22e0},
 #line 176 "./uninorm/composition-table.gperf"
-      {"\000u\003\012", 0x016f},
-#line 897 "./uninorm/composition-table.gperf"
-      {"\"\262\0038", 0x22ea},
+      {"\000\000u\000\003\012", 0x016f},
+#line 888 "./uninorm/composition-table.gperf"
+      {"\000\"\207\000\0038", 0x2289},
 #line 447 "./uninorm/composition-table.gperf"
-      {"\000I\0030", 0x1e2c},
-#line 387 "./uninorm/composition-table.gperf"
-      {"\015\331\015\312", 0x0dda},
+      {"\000\000I\000\0030", 0x1e2c},
+#line 887 "./uninorm/composition-table.gperf"
+      {"\000\"\206\000\0038", 0x2288},
 #line 99 "./uninorm/composition-table.gperf"
-      {"\000d\003\014", 0x010f},
+      {"\000\000d\000\003\014", 0x010f},
 #line 534 "./uninorm/composition-table.gperf"
-      {"\000w\003\001", 0x1e83},
+      {"\000\000w\000\003\001", 0x1e83},
 #line 532 "./uninorm/composition-table.gperf"
-      {"\000w\003\000", 0x1e81},
+      {"\000\000w\000\003\000", 0x1e81},
 #line 514 "./uninorm/composition-table.gperf"
-      {"\000t\0031", 0x1e6f},
+      {"\000\000t\000\0031", 0x1e6f},
 #line 182 "./uninorm/composition-table.gperf"
-      {"\000w\003\002", 0x0175},
+      {"\000\000w\000\003\002", 0x0175},
 #line 538 "./uninorm/composition-table.gperf"
-      {"\000w\003\007", 0x1e87},
+      {"\000\000w\000\003\007", 0x1e87},
 #line 643 "./uninorm/composition-table.gperf"
-      {"\000y\003#", 0x1ef5},
-#line 295 "./uninorm/composition-table.gperf"
-      {"\003\265\003\001", 0x03ad},
-#line 749 "./uninorm/composition-table.gperf"
-      {"\003\265\003\000", 0x1f72},
-#line 929 "./uninorm/composition-table.gperf"
-      {"0\2550\231", 0x30ae},
+      {"\000\000y\000\003#", 0x1ef5},
+#line 348 "./uninorm/composition-table.gperf"
+      {"\000\004#\000\003\004", 0x04ee},
+#line 315 "./uninorm/composition-table.gperf"
+      {"\000\0045\000\003\000", 0x0450},
+#line 886 "./uninorm/composition-table.gperf"
+      {"\000\"\203\000\0038", 0x2285},
 #line 230 "./uninorm/composition-table.gperf"
-      {"\000g\003\001", 0x01f5},
+      {"\000\000g\000\003\001", 0x01f5},
 #line 245 "./uninorm/composition-table.gperf"
-      {"\000E\003\021", 0x0206},
+      {"\000\000E\000\003\021", 0x0206},
 #line 644 "./uninorm/composition-table.gperf"
-      {"\000Y\003\011", 0x1ef6},
+      {"\000\000Y\000\003\011", 0x1ef6},
 #line 111 "./uninorm/composition-table.gperf"
-      {"\000g\003\002", 0x011d},
+      {"\000\000g\000\003\002", 0x011d},
 #line 115 "./uninorm/composition-table.gperf"
-      {"\000g\003\007", 0x0121},
-#line 953 "./uninorm/composition-table.gperf"
-      {"0\2460\231", 0x30f4},
+      {"\000\000g\000\003\007", 0x0121},
+#line 885 "./uninorm/composition-table.gperf"
+      {"\000\"\202\000\0038", 0x2284},
 #line 307 "./uninorm/composition-table.gperf"
-      {"\004\025\003\010", 0x0401},
+      {"\000\004\025\000\003\010", 0x0401},
 #line 427 "./uninorm/composition-table.gperf"
-      {"\000E\003-", 0x1e18},
+      {"\000\000E\000\003-", 0x1e18},
 #line 498 "./uninorm/composition-table.gperf"
-      {"\000r\0031", 0x1e5f},
+      {"\000\000r\000\0031", 0x1e5f},
 #line 267 "./uninorm/composition-table.gperf"
-      {"\000H\003\014", 0x021e},
+      {"\000\000H\000\003\014", 0x021e},
 #line 485 "./uninorm/composition-table.gperf"
-      {"\001L\003\001", 0x1e52},
+      {"\000\001L\000\003\001", 0x1e52},
 #line 483 "./uninorm/composition-table.gperf"
-      {"\001L\003\000", 0x1e50},
-#line 892 "./uninorm/composition-table.gperf"
-      {"\"\253\0038", 0x22af},
+      {"\000\001L\000\003\000", 0x1e50},
+#line 894 "./uninorm/composition-table.gperf"
+      {"\000\"}\000\0038", 0x22e1},
 #line 512 "./uninorm/composition-table.gperf"
-      {"\000t\003#", 0x1e6d},
+      {"\000\000t\000\003#", 0x1e6d},
 #line 253 "./uninorm/composition-table.gperf"
-      {"\000O\003\021", 0x020e},
-#line 366 "./uninorm/composition-table.gperf"
-      {"\011(\011<", 0x0929},
+      {"\000\000O\000\003\021", 0x020e},
+#line 337 "./uninorm/composition-table.gperf"
+      {"\000\0047\000\003\010", 0x04df},
 #line 133 "./uninorm/composition-table.gperf"
-      {"\000L\003\001", 0x0139},
+      {"\000\000L\000\003\001", 0x0139},
 #line 281 "./uninorm/composition-table.gperf"
-      {"\000Y\003\004", 0x0232},
+      {"\000\000Y\000\003\004", 0x0232},
 #line 794 "./uninorm/composition-table.gperf"
-      {"\037g\003E", 0x1fa7},
+      {"\000\037g\000\003E", 0x1fa7},
 #line 476 "./uninorm/composition-table.gperf"
-      {"\000n\0031", 0x1e49},
+      {"\000\000n\000\0031", 0x1e49},
 #line 272 "./uninorm/composition-table.gperf"
-      {"\000e\003'", 0x0229},
+      {"\000\000e\000\003'", 0x0229},
 #line 918 "./uninorm/composition-table.gperf"
-      {"0r0\231", 0x3073},
+      {"\0000r\0000\231", 0x3073},
 #line 112 "./uninorm/composition-table.gperf"
-      {"\000G\003\006", 0x011e},
-#line 914 "./uninorm/composition-table.gperf"
-      {"0f0\231", 0x3067},
+      {"\000\000G\000\003\006", 0x011e},
+#line 480 "./uninorm/composition-table.gperf"
+      {"\000\000\365\000\003\001", 0x1e4d},
 #line 536 "./uninorm/composition-table.gperf"
-      {"\000w\003\010", 0x1e85},
+      {"\000\000w\000\003\010", 0x1e85},
 #line 430 "./uninorm/composition-table.gperf"
-      {"\000e\0030", 0x1e1b},
-#line 951 "./uninorm/composition-table.gperf"
-      {"0\3330\231", 0x30dc},
+      {"\000\000e\000\0030", 0x1e1b},
+#line 781 "./uninorm/composition-table.gperf"
+      {"\000\037*\000\003E", 0x1f9a},
 #line 418 "./uninorm/composition-table.gperf"
-      {"\000d\0031", 0x1e0f},
+      {"\000\000d\000\0031", 0x1e0f},
 #line 494 "./uninorm/composition-table.gperf"
-      {"\000r\003#", 0x1e5b},
-#line 889 "./uninorm/composition-table.gperf"
-      {"\"\242\0038", 0x22ac},
-#line 275 "./uninorm/composition-table.gperf"
-      {"\000\325\003\004", 0x022c},
+      {"\000\000r\000\003#", 0x1e5b},
+#line 413 "./uninorm/composition-table.gperf"
+      {"\000\000D\000\003\007", 0x1e0a},
+#line 316 "./uninorm/composition-table.gperf"
+      {"\000\0045\000\003\010", 0x0451},
 #line 486 "./uninorm/composition-table.gperf"
-      {"\001M\003\001", 0x1e53},
+      {"\000\001M\000\003\001", 0x1e53},
 #line 484 "./uninorm/composition-table.gperf"
-      {"\001M\003\000", 0x1e51},
-#line 359 "./uninorm/composition-table.gperf"
-      {"\006'\006T", 0x0623},
-#line 220 "./uninorm/composition-table.gperf"
-      {"\000K\003\014", 0x01e8},
+      {"\000\001M\000\003\000", 0x1e51},
+#line 784 "./uninorm/composition-table.gperf"
+      {"\000\037-\000\003E", 0x1f9d},
+#line 138 "./uninorm/composition-table.gperf"
+      {"\000\000l\000\003\014", 0x013e},
 #line 330 "./uninorm/composition-table.gperf"
-      {"\004\025\003\006", 0x04d6},
+      {"\000\004\025\000\003\006", 0x04d6},
 #line 261 "./uninorm/composition-table.gperf"
-      {"\000U\003\021", 0x0216},
+      {"\000\000U\000\003\021", 0x0216},
 #line 465 "./uninorm/composition-table.gperf"
-      {"\000M\003\001", 0x1e3e},
+      {"\000\000M\000\003\001", 0x1e3e},
 #line 46 "./uninorm/composition-table.gperf"
-      {"\000N\003\003", 0x00d1},
+      {"\000\000N\000\003\003", 0x00d1},
 #line 474 "./uninorm/composition-table.gperf"
-      {"\000n\003#", 0x1e47},
+      {"\000\000n\000\003#", 0x1e47},
 #line 913 "./uninorm/composition-table.gperf"
-      {"0d0\231", 0x3065},
+      {"\0000d\0000\231", 0x3065},
 #line 467 "./uninorm/composition-table.gperf"
-      {"\000M\003\007", 0x1e40},
+      {"\000\000M\000\003\007", 0x1e40},
 #line 521 "./uninorm/composition-table.gperf"
-      {"\000U\003-", 0x1e76},
+      {"\000\000U\000\003-", 0x1e76},
 #line 268 "./uninorm/composition-table.gperf"
-      {"\000h\003\014", 0x021f},
+      {"\000\000h\000\003\014", 0x021f},
 #line 355 "./uninorm/composition-table.gperf"
-      {"\004G\003\010", 0x04f5},
+      {"\000\004G\000\003\010", 0x04f5},
 #line 509 "./uninorm/composition-table.gperf"
-      {"\000T\003\007", 0x1e6a},
-#line 212 "./uninorm/composition-table.gperf"
-      {"\000\304\003\004", 0x01de},
+      {"\000\000T\000\003\007", 0x1e6a},
+#line 943 "./uninorm/composition-table.gperf"
+      {"\0000\317\0000\231", 0x30d0},
 #line 416 "./uninorm/composition-table.gperf"
-      {"\000d\003#", 0x1e0d},
+      {"\000\000d\000\003#", 0x1e0d},
 #line 878 "./uninorm/composition-table.gperf"
-      {"\"e\0038", 0x2271},
-#line 542 "./uninorm/composition-table.gperf"
-      {"\000x\003\007", 0x1e8b},
+      {"\000\"e\000\0038", 0x2271},
+#line 310 "./uninorm/composition-table.gperf"
+      {"\000\004\032\000\003\001", 0x040c},
 #line 255 "./uninorm/composition-table.gperf"
-      {"\000R\003\017", 0x0210},
-#line 283 "./uninorm/composition-table.gperf"
-      {"\000\250\003\001", 0x0385},
-#line 848 "./uninorm/composition-table.gperf"
-      {"\000\250\003\000", 0x1fed},
-#line 814 "./uninorm/composition-table.gperf"
-      {"\000\250\003B", 0x1fc1},
+      {"\000\000R\000\003\017", 0x0210},
+#line 426 "./uninorm/composition-table.gperf"
+      {"\000\001\023\000\003\001", 0x1e17},
+#line 424 "./uninorm/composition-table.gperf"
+      {"\000\001\023\000\003\000", 0x1e15},
+#line 896 "./uninorm/composition-table.gperf"
+      {"\000\"\222\000\0038", 0x22e3},
 #line 265 "./uninorm/composition-table.gperf"
-      {"\000T\003&", 0x021a},
+      {"\000\000T\000\003&", 0x021a},
 #line 175 "./uninorm/composition-table.gperf"
-      {"\000U\003\012", 0x016e},
-#line 664 "./uninorm/composition-table.gperf"
-      {"\003\265\003\023", 0x1f10},
+      {"\000\000U\000\003\012", 0x016e},
+#line 482 "./uninorm/composition-table.gperf"
+      {"\000\000\365\000\003\010", 0x1e4f},
 #line 301 "./uninorm/composition-table.gperf"
-      {"\003\277\003\001", 0x03cc},
+      {"\000\003\277\000\003\001", 0x03cc},
 #line 752 "./uninorm/composition-table.gperf"
-      {"\003\277\003\000", 0x1f78},
-#line 896 "./uninorm/composition-table.gperf"
-      {"\"\222\0038", 0x22e3},
+      {"\000\003\277\000\003\000", 0x1f78},
+#line 331 "./uninorm/composition-table.gperf"
+      {"\000\0045\000\003\006", 0x04d7},
 #line 520 "./uninorm/composition-table.gperf"
-      {"\000u\0030", 0x1e75},
-#line 927 "./uninorm/composition-table.gperf"
-      {"0\2350\231", 0x309e},
+      {"\000\000u\000\0030", 0x1e75},
+#line 334 "./uninorm/composition-table.gperf"
+      {"\000\004\026\000\003\010", 0x04dc},
 #line 113 "./uninorm/composition-table.gperf"
-      {"\000g\003\006", 0x011f},
+      {"\000\000g\000\003\006", 0x011f},
 #line 297 "./uninorm/composition-table.gperf"
-      {"\003\271\003\001", 0x03af},
+      {"\000\003\271\000\003\001", 0x03af},
 #line 751 "./uninorm/composition-table.gperf"
-      {"\003\271\003\000", 0x1f76},
+      {"\000\003\271\000\003\000", 0x1f76},
 #line 829 "./uninorm/composition-table.gperf"
-      {"\003\271\003B", 0x1fd6},
+      {"\000\003\271\000\003B", 0x1fd6},
 #line 439 "./uninorm/composition-table.gperf"
-      {"\000H\003#", 0x1e24},
+      {"\000\000H\000\003#", 0x1e24},
 #line 824 "./uninorm/composition-table.gperf"
-      {"\037\277\003\001", 0x1fce},
+      {"\000\037\277\000\003\001", 0x1fce},
 #line 823 "./uninorm/composition-table.gperf"
-      {"\037\277\003\000", 0x1fcd},
+      {"\000\037\277\000\003\000", 0x1fcd},
 #line 825 "./uninorm/composition-table.gperf"
-      {"\037\277\003B", 0x1fcf},
+      {"\000\037\277\000\003B", 0x1fcf},
 #line 908 "./uninorm/composition-table.gperf"
-      {"0Y0\231", 0x305a},
-#line 455 "./uninorm/composition-table.gperf"
-      {"\000K\0031", 0x1e34},
+      {"\0000Y\0000\231", 0x305a},
+#line 462 "./uninorm/composition-table.gperf"
+      {"\000\000l\000\0031", 0x1e3b},
 #line 556 "./uninorm/composition-table.gperf"
-      {"\000y\003\012", 0x1e99},
-#line 888 "./uninorm/composition-table.gperf"
-      {"\"\207\0038", 0x2289},
+      {"\000\000y\000\003\012", 0x1e99},
+#line 336 "./uninorm/composition-table.gperf"
+      {"\000\004\027\000\003\010", 0x04de},
 #line 284 "./uninorm/composition-table.gperf"
-      {"\003\221\003\001", 0x0386},
+      {"\000\003\221\000\003\001", 0x0386},
 #line 812 "./uninorm/composition-table.gperf"
-      {"\003\221\003\000", 0x1fba},
+      {"\000\003\221\000\003\000", 0x1fba},
 #line 516 "./uninorm/composition-table.gperf"
-      {"\000t\003-", 0x1e71},
+      {"\000\000t\000\003-", 0x1e71},
 #line 642 "./uninorm/composition-table.gperf"
-      {"\000Y\003#", 0x1ef4},
-#line 544 "./uninorm/composition-table.gperf"
-      {"\000x\003\010", 0x1e8d},
-#line 887 "./uninorm/composition-table.gperf"
-      {"\"\206\0038", 0x2288},
+      {"\000\000Y\000\003#", 0x1ef4},
+#line 193 "./uninorm/composition-table.gperf"
+      {"\000\000o\000\003\033", 0x01a1},
+#line 761 "./uninorm/composition-table.gperf"
+      {"\000\037\006\000\003E", 0x1f86},
 #line 553 "./uninorm/composition-table.gperf"
-      {"\000h\0031", 0x1e96},
+      {"\000\000h\000\0031", 0x1e96},
 #line 409 "./uninorm/composition-table.gperf"
-      {"\000B\0031", 0x1e06},
+      {"\000\000B\000\0031", 0x1e06},
 #line 155 "./uninorm/composition-table.gperf"
-      {"\000R\003\014", 0x0158},
-#line 947 "./uninorm/composition-table.gperf"
-      {"0\3250\231", 0x30d6},
-#line 901 "./uninorm/composition-table.gperf"
-      {"0K0\231", 0x304c},
+      {"\000\000R\000\003\014", 0x0158},
+#line 952 "./uninorm/composition-table.gperf"
+      {"\0000\333\0000\232", 0x30dd},
+#line 770 "./uninorm/composition-table.gperf"
+      {"\000\037\017\000\003E", 0x1f8f},
 #line 258 "./uninorm/composition-table.gperf"
-      {"\000r\003\021", 0x0213},
+      {"\000\000r\000\003\021", 0x0213},
 #line 813 "./uninorm/composition-table.gperf"
-      {"\003\221\003E", 0x1fbc},
-#line 384 "./uninorm/composition-table.gperf"
-      {"\015F\015>", 0x0d4a},
+      {"\000\003\221\000\003E", 0x1fbc},
+#line 195 "./uninorm/composition-table.gperf"
+      {"\000\000u\000\003\033", 0x01b0},
 #line 767 "./uninorm/composition-table.gperf"
-      {"\037\014\003E", 0x1f8c},
+      {"\000\037\014\000\003E", 0x1f8c},
 #line 271 "./uninorm/composition-table.gperf"
-      {"\000E\003'", 0x0228},
-#line 774 "./uninorm/composition-table.gperf"
-      {"\037#\003E", 0x1f93},
-#line 453 "./uninorm/composition-table.gperf"
-      {"\000K\003#", 0x1e32},
+      {"\000\000E\000\003'", 0x0228},
+#line 324 "./uninorm/composition-table.gperf"
+      {"\000\004\026\000\003\006", 0x04c1},
+#line 458 "./uninorm/composition-table.gperf"
+      {"\000\000l\000\003#", 0x1e37},
 #line 435 "./uninorm/composition-table.gperf"
-      {"\000G\003\004", 0x1e20},
+      {"\000\000G\000\003\004", 0x1e20},
 #line 915 "./uninorm/composition-table.gperf"
-      {"0h0\231", 0x3069},
+      {"\0000h\0000\231", 0x3069},
 #line 429 "./uninorm/composition-table.gperf"
-      {"\000E\0030", 0x1e1a},
+      {"\000\000E\000\0030", 0x1e1a},
 #line 218 "./uninorm/composition-table.gperf"
-      {"\000G\003\014", 0x01e6},
+      {"\000\000G\000\003\014", 0x01e6},
 #line 299 "./uninorm/composition-table.gperf"
-      {"\003\271\003\010", 0x03ca},
-#line 617 "./uninorm/composition-table.gperf"
-      {"\001\241\003\001", 0x1edb},
-#line 619 "./uninorm/composition-table.gperf"
-      {"\001\241\003\000", 0x1edd},
-#line 940 "./uninorm/composition-table.gperf"
-      {"0\3040\231", 0x30c5},
+      {"\000\003\271\000\003\010", 0x03ca},
+#line 769 "./uninorm/composition-table.gperf"
+      {"\000\037\016\000\003E", 0x1f8e},
+#line 237 "./uninorm/composition-table.gperf"
+      {"\000\000\330\000\003\001", 0x01fe},
+#line 346 "./uninorm/composition-table.gperf"
+      {"\000\004-\000\003\010", 0x04ec},
 #line 440 "./uninorm/composition-table.gperf"
-      {"\000h\003#", 0x1e25},
+      {"\000\000h\000\003#", 0x1e25},
 #line 407 "./uninorm/composition-table.gperf"
-      {"\000B\003#", 0x1e04},
+      {"\000\000B\000\003#", 0x1e04},
 #line 478 "./uninorm/composition-table.gperf"
-      {"\000n\003-", 0x1e4b},
-#line 886 "./uninorm/composition-table.gperf"
-      {"\"\203\0038", 0x2285},
-#line 925 "./uninorm/composition-table.gperf"
-      {"0{0\232", 0x307d},
+      {"\000\000n\000\003-", 0x1e4b},
+#line 384 "./uninorm/composition-table.gperf"
+      {"\000\015F\000\015>", 0x0d4a},
+#line 530 "./uninorm/composition-table.gperf"
+      {"\000\000v\000\003#", 0x1e7f},
 #line 302 "./uninorm/composition-table.gperf"
-      {"\003\305\003\001", 0x03cd},
+      {"\000\003\305\000\003\001", 0x03cd},
 #line 753 "./uninorm/composition-table.gperf"
-      {"\003\305\003\000", 0x1f7a},
+      {"\000\003\305\000\003\000", 0x1f7a},
 #line 842 "./uninorm/composition-table.gperf"
-      {"\003\305\003B", 0x1fe6},
-#line 893 "./uninorm/composition-table.gperf"
-      {"\"|\0038", 0x22e0},
+      {"\000\003\305\000\003B", 0x1fe6},
+#line 308 "./uninorm/composition-table.gperf"
+      {"\000\004\023\000\003\001", 0x0403},
 #line 233 "./uninorm/composition-table.gperf"
-      {"\000\305\003\001", 0x01fa},
+      {"\000\000\305\000\003\001", 0x01fa},
 #line 422 "./uninorm/composition-table.gperf"
-      {"\000d\003-", 0x1e13},
-#line 885 "./uninorm/composition-table.gperf"
-      {"\"\202\0038", 0x2284},
+      {"\000\000d\000\003-", 0x1e13},
+#line 542 "./uninorm/composition-table.gperf"
+      {"\000\000x\000\003\007", 0x1e8b},
 #line 294 "./uninorm/composition-table.gperf"
-      {"\003\261\003\001", 0x03ac},
+      {"\000\003\261\000\003\001", 0x03ac},
 #line 748 "./uninorm/composition-table.gperf"
-      {"\003\261\003\000", 0x1f70},
+      {"\000\003\261\000\003\000", 0x1f70},
 #line 808 "./uninorm/composition-table.gperf"
-      {"\003\261\003B", 0x1fb6},
+      {"\000\003\261\000\003B", 0x1fb6},
 #line 143 "./uninorm/composition-table.gperf"
-      {"\000N\003\014", 0x0147},
+      {"\000\000N\000\003\014", 0x0147},
 #line 708 "./uninorm/composition-table.gperf"
-      {"\003\277\003\023", 0x1f40},
+      {"\000\003\277\000\003\023", 0x1f40},
 #line 870 "./uninorm/composition-table.gperf"
-      {"\"E\0038", 0x2247},
-#line 894 "./uninorm/composition-table.gperf"
-      {"\"}\0038", 0x22e1},
+      {"\000\"E\000\0038", 0x2247},
+      {""},
 #line 497 "./uninorm/composition-table.gperf"
-      {"\000R\0031", 0x1e5e},
-#line 413 "./uninorm/composition-table.gperf"
-      {"\000D\003\007", 0x1e0a},
+      {"\000\000R\000\0031", 0x1e5e},
+#line 460 "./uninorm/composition-table.gperf"
+      {"\000\0367\000\003\004", 0x1e39},
 #line 347 "./uninorm/composition-table.gperf"
-      {"\004M\003\010", 0x04ed},
+      {"\000\004M\000\003\010", 0x04ed},
 #line 692 "./uninorm/composition-table.gperf"
-      {"\003\271\003\023", 0x1f30},
+      {"\000\003\271\000\003\023", 0x1f30},
 #line 353 "./uninorm/composition-table.gperf"
-      {"\004C\003\013", 0x04f3},
+      {"\000\004C\000\003\013", 0x04f3},
 #line 806 "./uninorm/composition-table.gperf"
-      {"\003\261\003E", 0x1fb3},
+      {"\000\003\261\000\003E", 0x1fb3},
 #line 826 "./uninorm/composition-table.gperf"
-      {"\003\271\003\006", 0x1fd0},
-#line 945 "./uninorm/composition-table.gperf"
-      {"0\3220\231", 0x30d3},
-#line 134 "./uninorm/composition-table.gperf"
-      {"\000l\003\001", 0x013a},
-#line 911 "./uninorm/composition-table.gperf"
-      {"0_0\231", 0x3060},
-#line 519 "./uninorm/composition-table.gperf"
-      {"\000U\0030", 0x1e74},
+      {"\000\003\271\000\003\006", 0x1fd0},
+#line 451 "./uninorm/composition-table.gperf"
+      {"\000\000K\000\003\001", 0x1e30},
+#line 597 "./uninorm/composition-table.gperf"
+      {"\000\036\271\000\003\002", 0x1ec7},
+#line 924 "./uninorm/composition-table.gperf"
+      {"\0000{\0000\231", 0x307c},
+#line 519 "./uninorm/composition-table.gperf"
+      {"\000\000U\000\0030", 0x1e74},
 #line 907 "./uninorm/composition-table.gperf"
-      {"0W0\231", 0x3058},
-#line 910 "./uninorm/composition-table.gperf"
-      {"0]0\231", 0x305e},
+      {"\0000W\0000\231", 0x3058},
+      {""},
 #line 436 "./uninorm/composition-table.gperf"
-      {"\000g\003\004", 0x1e21},
+      {"\000\000g\000\003\004", 0x1e21},
 #line 656 "./uninorm/composition-table.gperf"
-      {"\003\221\003\023", 0x1f08},
-#line 310 "./uninorm/composition-table.gperf"
-      {"\004\032\003\001", 0x040c},
+      {"\000\003\221\000\003\023", 0x1f08},
+#line 192 "./uninorm/composition-table.gperf"
+      {"\000\000O\000\003\033", 0x01a0},
 #line 219 "./uninorm/composition-table.gperf"
-      {"\000g\003\014", 0x01e7},
+      {"\000\000g\000\003\014", 0x01e7},
 #line 810 "./uninorm/composition-table.gperf"
-      {"\003\221\003\006", 0x1fb8},
+      {"\000\003\221\000\003\006", 0x1fb8},
 #line 539 "./uninorm/composition-table.gperf"
-      {"\000W\003#", 0x1e88},
+      {"\000\000W\000\003#", 0x1e88},
 #line 300 "./uninorm/composition-table.gperf"
-      {"\003\305\003\010", 0x03cb},
+      {"\000\003\305\000\003\010", 0x03cb},
 #line 493 "./uninorm/composition-table.gperf"
-      {"\000R\003#", 0x1e5a},
-#line 237 "./uninorm/composition-table.gperf"
-      {"\000\330\003\001", 0x01fe},
+      {"\000\000R\000\003#", 0x1e5a},
+#line 544 "./uninorm/composition-table.gperf"
+      {"\000\000x\000\003\010", 0x1e8d},
 #line 296 "./uninorm/composition-table.gperf"
-      {"\003\267\003\001", 0x03ae},
+      {"\000\003\267\000\003\001", 0x03ae},
 #line 750 "./uninorm/composition-table.gperf"
-      {"\003\267\003\000", 0x1f74},
+      {"\000\003\267\000\003\000", 0x1f74},
 #line 818 "./uninorm/composition-table.gperf"
-      {"\003\267\003B", 0x1fc6},
+      {"\000\003\267\000\003B", 0x1fc6},
 #line 158 "./uninorm/composition-table.gperf"
-      {"\000s\003\001", 0x015b},
-#line 799 "./uninorm/composition-table.gperf"
-      {"\037l\003E", 0x1fac},
+      {"\000\000s\000\003\001", 0x015b},
+#line 309 "./uninorm/composition-table.gperf"
+      {"\000\004\006\000\003\010", 0x0407},
 #line 157 "./uninorm/composition-table.gperf"
-      {"\000S\003\001", 0x015a},
+      {"\000\000S\000\003\001", 0x015a},
 #line 160 "./uninorm/composition-table.gperf"
-      {"\000s\003\002", 0x015d},
+      {"\000\000s\000\003\002", 0x015d},
 #line 500 "./uninorm/composition-table.gperf"
-      {"\000s\003\007", 0x1e61},
+      {"\000\000s\000\003\007", 0x1e61},
 #line 159 "./uninorm/composition-table.gperf"
-      {"\000S\003\002", 0x015c},
+      {"\000\000S\000\003\002", 0x015c},
 #line 499 "./uninorm/composition-table.gperf"
-      {"\000S\003\007", 0x1e60},
+      {"\000\000S\000\003\007", 0x1e60},
 #line 137 "./uninorm/composition-table.gperf"
-      {"\000L\003\014", 0x013d},
+      {"\000\000L\000\003\014", 0x013d},
 #line 475 "./uninorm/composition-table.gperf"
-      {"\000N\0031", 0x1e48},
+      {"\000\000N\000\0031", 0x1e48},
 #line 816 "./uninorm/composition-table.gperf"
-      {"\003\267\003E", 0x1fc3},
-#line 597 "./uninorm/composition-table.gperf"
-      {"\036\271\003\002", 0x1ec7},
-#line 623 "./uninorm/composition-table.gperf"
-      {"\001\241\003\003", 0x1ee1},
-#line 350 "./uninorm/composition-table.gperf"
-      {"\004#\003\010", 0x04f0},
+      {"\000\003\267\000\003E", 0x1fc3},
+#line 464 "./uninorm/composition-table.gperf"
+      {"\000\000l\000\003-", 0x1e3d},
+#line 276 "./uninorm/composition-table.gperf"
+      {"\000\000\365\000\003\004", 0x022d},
+#line 194 "./uninorm/composition-table.gperf"
+      {"\000\000U\000\003\033", 0x01af},
 #line 264 "./uninorm/composition-table.gperf"
-      {"\000s\003&", 0x0219},
+      {"\000\000s\000\003&", 0x0219},
 #line 166 "./uninorm/composition-table.gperf"
-      {"\000t\003'", 0x0163},
+      {"\000\000t\000\003'", 0x0163},
 #line 263 "./uninorm/composition-table.gperf"
-      {"\000S\003&", 0x0218},
-#line 452 "./uninorm/composition-table.gperf"
-      {"\000k\003\001", 0x1e31},
+      {"\000\000S\000\003&", 0x0218},
+#line 98 "./uninorm/composition-table.gperf"
+      {"\000\000D\000\003\014", 0x010e},
 #line 291 "./uninorm/composition-table.gperf"
-      {"\003\312\003\001", 0x0390},
+      {"\000\003\312\000\003\001", 0x0390},
 #line 828 "./uninorm/composition-table.gperf"
-      {"\003\312\003\000", 0x1fd2},
+      {"\000\003\312\000\003\000", 0x1fd2},
 #line 830 "./uninorm/composition-table.gperf"
-      {"\003\312\003B", 0x1fd7},
+      {"\000\003\312\000\003B", 0x1fd7},
 #line 720 "./uninorm/composition-table.gperf"
-      {"\003\305\003\023", 0x1f50},
+      {"\000\003\305\000\003\023", 0x1f50},
 #line 588 "./uninorm/composition-table.gperf"
-      {"\000\312\003\001", 0x1ebe},
+      {"\000\000\312\000\003\001", 0x1ebe},
 #line 590 "./uninorm/composition-table.gperf"
-      {"\000\312\003\000", 0x1ec0},
+      {"\000\000\312\000\003\000", 0x1ec0},
 #line 837 "./uninorm/composition-table.gperf"
-      {"\003\305\003\006", 0x1fe0},
-#line 616 "./uninorm/composition-table.gperf"
-      {"\001\240\003\001", 0x1eda},
-#line 618 "./uninorm/composition-table.gperf"
-      {"\001\240\003\000", 0x1edc},
-#line 840 "./uninorm/composition-table.gperf"
-      {"\003\301\003\023", 0x1fe4},
+      {"\000\003\305\000\003\006", 0x1fe0},
+#line 617 "./uninorm/composition-table.gperf"
+      {"\000\001\241\000\003\001", 0x1edb},
+#line 619 "./uninorm/composition-table.gperf"
+      {"\000\001\241\000\003\000", 0x1edd},
+      {""},
 #line 648 "./uninorm/composition-table.gperf"
-      {"\003\261\003\023", 0x1f00},
+      {"\000\003\261\000\003\023", 0x1f00},
 #line 473 "./uninorm/composition-table.gperf"
-      {"\000N\003#", 0x1e46},
+      {"\000\000N\000\003#", 0x1e46},
 #line 154 "./uninorm/composition-table.gperf"
-      {"\000r\003'", 0x0157},
+      {"\000\000r\000\003'", 0x0157},
 #line 803 "./uninorm/composition-table.gperf"
-      {"\003\261\003\006", 0x1fb0},
+      {"\000\003\261\000\003\006", 0x1fb0},
 #line 503 "./uninorm/composition-table.gperf"
-      {"\001Z\003\007", 0x1e64},
+      {"\000\001Z\000\003\007", 0x1e64},
 #line 167 "./uninorm/composition-table.gperf"
-      {"\000T\003\014", 0x0164},
+      {"\000\000T\000\003\014", 0x0164},
 #line 186 "./uninorm/composition-table.gperf"
-      {"\000Z\003\001", 0x0179},
-#line 798 "./uninorm/composition-table.gperf"
-      {"\037k\003E", 0x1fab},
-#line 527 "./uninorm/composition-table.gperf"
-      {"\000V\003\003", 0x1e7c},
+      {"\000\000Z\000\003\001", 0x0179},
+#line 960 "./uninorm/composition-table.gperf"
+      {"\001\020\233\001\020\272", 0x1109c},
+#line 866 "./uninorm/composition-table.gperf"
+      {"\000\"#\000\0038", 0x2224},
 #line 547 "./uninorm/composition-table.gperf"
-      {"\000Z\003\002", 0x1e90},
+      {"\000\000Z\000\003\002", 0x1e90},
 #line 188 "./uninorm/composition-table.gperf"
-      {"\000Z\003\007", 0x017b},
-#line 944 "./uninorm/composition-table.gperf"
-      {"0\3170\232", 0x30d1},
+      {"\000\000Z\000\003\007", 0x017b},
+#line 332 "./uninorm/composition-table.gperf"
+      {"\000\004\330\000\003\010", 0x04da},
 #line 540 "./uninorm/composition-table.gperf"
-      {"\000w\003#", 0x1e89},
+      {"\000\000w\000\003#", 0x1e89},
 #line 142 "./uninorm/composition-table.gperf"
-      {"\000n\003'", 0x0146},
-#line 312 "./uninorm/composition-table.gperf"
-      {"\004#\003\006", 0x040e},
-#line 933 "./uninorm/composition-table.gperf"
-      {"0\2650\231", 0x30b6},
-#line 526 "./uninorm/composition-table.gperf"
-      {"\001k\003\010", 0x1e7b},
+      {"\000\000n\000\003'", 0x0146},
+#line 616 "./uninorm/composition-table.gperf"
+      {"\000\001\240\000\003\001", 0x1eda},
+#line 618 "./uninorm/composition-table.gperf"
+      {"\000\001\240\000\003\000", 0x1edc},
+#line 187 "./uninorm/composition-table.gperf"
+      {"\000\000z\000\003\001", 0x017a},
 #line 461 "./uninorm/composition-table.gperf"
-      {"\000L\0031", 0x1e3a},
-#line 868 "./uninorm/composition-table.gperf"
-      {"\"<\0038", 0x2241},
-#line 571 "./uninorm/composition-table.gperf"
-      {"\036\241\003\002", 0x1ead},
-#line 786 "./uninorm/composition-table.gperf"
-      {"\037/\003E", 0x1f9f},
+      {"\000\000L\000\0031", 0x1e3a},
+#line 452 "./uninorm/composition-table.gperf"
+      {"\000\000k\000\003\001", 0x1e31},
+#line 548 "./uninorm/composition-table.gperf"
+      {"\000\000z\000\003\002", 0x1e91},
+#line 189 "./uninorm/composition-table.gperf"
+      {"\000\000z\000\003\007", 0x017c},
 #line 420 "./uninorm/composition-table.gperf"
-      {"\000d\003'", 0x1e11},
-#line 336 "./uninorm/composition-table.gperf"
-      {"\004\027\003\010", 0x04de},
+      {"\000\000d\000\003'", 0x1e11},
+#line 917 "./uninorm/composition-table.gperf"
+      {"\0000o\0000\232", 0x3071},
 #line 150 "./uninorm/composition-table.gperf"
-      {"\000o\003\013", 0x0151},
+      {"\000\000o\000\003\013", 0x0151},
 #line 827 "./uninorm/composition-table.gperf"
-      {"\003\271\003\004", 0x1fd1},
+      {"\000\003\271\000\003\004", 0x1fd1},
 #line 257 "./uninorm/composition-table.gperf"
-      {"\000R\003\021", 0x0212},
-#line 704 "./uninorm/composition-table.gperf"
-      {"\0378\003\001", 0x1f3c},
-#line 702 "./uninorm/composition-table.gperf"
-      {"\0378\003\000", 0x1f3a},
-#line 706 "./uninorm/composition-table.gperf"
-      {"\0378\003B", 0x1f3e},
+      {"\000\000R\000\003\021", 0x0212},
+#line 417 "./uninorm/composition-table.gperf"
+      {"\000\000D\000\0031", 0x1e0e},
+#line 295 "./uninorm/composition-table.gperf"
+      {"\000\003\265\000\003\001", 0x03ad},
+#line 749 "./uninorm/composition-table.gperf"
+      {"\000\003\265\000\003\000", 0x1f72},
 #line 676 "./uninorm/composition-table.gperf"
-      {"\003\267\003\023", 0x1f20},
+      {"\000\003\267\000\003\023", 0x1f20},
 #line 879 "./uninorm/composition-table.gperf"
-      {"\"r\0038", 0x2274},
-#line 770 "./uninorm/composition-table.gperf"
-      {"\037\017\003E", 0x1f8f},
+      {"\000\"r\000\0038", 0x2274},
+#line 921 "./uninorm/composition-table.gperf"
+      {"\0000u\0000\232", 0x3077},
 #line 178 "./uninorm/composition-table.gperf"
-      {"\000u\003\013", 0x0171},
-#line 769 "./uninorm/composition-table.gperf"
-      {"\037\016\003E", 0x1f8e},
-#line 318 "./uninorm/composition-table.gperf"
-      {"\004V\003\010", 0x0457},
+      {"\000\000u\000\003\013", 0x0171},
+#line 630 "./uninorm/composition-table.gperf"
+      {"\000\001\257\000\003\001", 0x1ee8},
+#line 632 "./uninorm/composition-table.gperf"
+      {"\000\001\257\000\003\000", 0x1eea},
 #line 811 "./uninorm/composition-table.gperf"
-      {"\003\221\003\004", 0x1fb9},
-#line 776 "./uninorm/composition-table.gperf"
-      {"\037%\003E", 0x1f95},
+      {"\000\003\221\000\003\004", 0x1fb9},
+#line 798 "./uninorm/composition-table.gperf"
+      {"\000\037k\000\003E", 0x1fab},
 #line 457 "./uninorm/composition-table.gperf"
-      {"\000L\003#", 0x1e36},
-#line 290 "./uninorm/composition-table.gperf"
-      {"\003\251\003\001", 0x038f},
-#line 855 "./uninorm/composition-table.gperf"
-      {"\003\251\003\000", 0x1ffa},
+      {"\000\000L\000\003#", 0x1e36},
+      {""},
+#line 357 "./uninorm/composition-table.gperf"
+      {"\000\004K\000\003\010", 0x04f9},
 #line 443 "./uninorm/composition-table.gperf"
-      {"\000H\003'", 0x1e28},
-#line 187 "./uninorm/composition-table.gperf"
-      {"\000z\003\001", 0x017a},
+      {"\000\000H\000\003'", 0x1e28},
+#line 235 "./uninorm/composition-table.gperf"
+      {"\000\000\306\000\003\001", 0x01fc},
 #line 513 "./uninorm/composition-table.gperf"
-      {"\000T\0031", 0x1e6e},
-#line 621 "./uninorm/composition-table.gperf"
-      {"\001\241\003\011", 0x1edf},
-#line 548 "./uninorm/composition-table.gperf"
-      {"\000z\003\002", 0x1e91},
-#line 189 "./uninorm/composition-table.gperf"
-      {"\000z\003\007", 0x017c},
-      {""},
+      {"\000\000T\000\0031", 0x1e6e},
+#line 287 "./uninorm/composition-table.gperf"
+      {"\000\003\231\000\003\001", 0x038a},
+#line 833 "./uninorm/composition-table.gperf"
+      {"\000\003\231\000\003\000", 0x1fda},
+#line 526 "./uninorm/composition-table.gperf"
+      {"\000\001k\000\003\010", 0x1e7b},
+#line 415 "./uninorm/composition-table.gperf"
+      {"\000\000D\000\003#", 0x1e0c},
 #line 865 "./uninorm/composition-table.gperf"
-      {"\"\013\0038", 0x220c},
-#line 917 "./uninorm/composition-table.gperf"
-      {"0o0\232", 0x3071},
+      {"\000\"\013\000\0038", 0x220c},
+#line 946 "./uninorm/composition-table.gperf"
+      {"\0000\322\0000\232", 0x30d4},
 #line 877 "./uninorm/composition-table.gperf"
-      {"\"d\0038", 0x2270},
-#line 856 "./uninorm/composition-table.gperf"
-      {"\003\251\003E", 0x1ffc},
+      {"\000\"d\000\0038", 0x2270},
+      {""},
 #line 902 "./uninorm/composition-table.gperf"
-      {"0M0\231", 0x304e},
+      {"\0000M\0000\231", 0x304e},
 #line 594 "./uninorm/composition-table.gperf"
-      {"\000\312\003\003", 0x1ec4},
-#line 332 "./uninorm/composition-table.gperf"
-      {"\004\330\003\010", 0x04da},
-#line 398 "./uninorm/composition-table.gperf"
-      {"\033:\0335", 0x1b3b},
-#line 622 "./uninorm/composition-table.gperf"
-      {"\001\240\003\003", 0x1ee0},
+      {"\000\000\312\000\003\003", 0x1ec4},
       {""},
-#line 921 "./uninorm/composition-table.gperf"
-      {"0u0\232", 0x3077},
+#line 479 "./uninorm/composition-table.gperf"
+      {"\000\000\325\000\003\001", 0x1e4c},
+#line 623 "./uninorm/composition-table.gperf"
+      {"\000\001\241\000\003\003", 0x1ee1},
+#line 928 "./uninorm/composition-table.gperf"
+      {"\0000\253\0000\231", 0x30ac},
+#line 786 "./uninorm/composition-table.gperf"
+      {"\000\037/\000\003E", 0x1f9f},
 #line 469 "./uninorm/composition-table.gperf"
-      {"\000M\003#", 0x1e42},
-#line 922 "./uninorm/composition-table.gperf"
-      {"0x0\231", 0x3079},
-#line 287 "./uninorm/composition-table.gperf"
-      {"\003\231\003\001", 0x038a},
-#line 833 "./uninorm/composition-table.gperf"
-      {"\003\231\003\000", 0x1fda},
+      {"\000\000M\000\003#", 0x1e42},
+#line 819 "./uninorm/composition-table.gperf"
+      {"\000\037\306\000\003E", 0x1fc7},
+      {""}, {""},
 #line 511 "./uninorm/composition-table.gperf"
-      {"\000T\003#", 0x1e6c},
-#line 541 "./uninorm/composition-table.gperf"
-      {"\000X\003\007", 0x1e8a},
+      {"\000\000T\000\003#", 0x1e6c},
+#line 571 "./uninorm/composition-table.gperf"
+      {"\000\036\241\000\003\002", 0x1ead},
 #line 477 "./uninorm/composition-table.gperf"
-      {"\000N\003-", 0x1e4a},
-#line 131 "./uninorm/composition-table.gperf"
-      {"\000K\003'", 0x0136},
+      {"\000\000N\000\003-", 0x1e4a},
+#line 136 "./uninorm/composition-table.gperf"
+      {"\000\000l\000\003'", 0x013c},
 #line 838 "./uninorm/composition-table.gperf"
-      {"\003\305\003\004", 0x1fe1},
+      {"\000\003\305\000\003\004", 0x1fe1},
 #line 91 "./uninorm/composition-table.gperf"
-      {"\000c\003\001", 0x0107},
+      {"\000\000c\000\003\001", 0x0107},
 #line 871 "./uninorm/composition-table.gperf"
-      {"\"H\0038", 0x2249},
-#line 394 "./uninorm/composition-table.gperf"
-      {"\033\011\0335", 0x1b0a},
+      {"\000\"H\000\0038", 0x2249},
+#line 776 "./uninorm/composition-table.gperf"
+      {"\000\037%\000\003E", 0x1f95},
 #line 93 "./uninorm/composition-table.gperf"
-      {"\000c\003\002", 0x0109},
+      {"\000\000c\000\003\002", 0x0109},
 #line 95 "./uninorm/composition-table.gperf"
-      {"\000c\003\007", 0x010b},
-#line 320 "./uninorm/composition-table.gperf"
-      {"\0048\003\000", 0x045d},
+      {"\000\000c\000\003\007", 0x010b},
+#line 622 "./uninorm/composition-table.gperf"
+      {"\000\001\240\000\003\003", 0x1ee0},
 #line 804 "./uninorm/composition-table.gperf"
-      {"\003\261\003\004", 0x1fb1},
+      {"\000\003\261\000\003\004", 0x1fb1},
 #line 444 "./uninorm/composition-table.gperf"
-      {"\000h\003'", 0x1e29},
+      {"\000\000h\000\003'", 0x1e29},
 #line 938 "./uninorm/composition-table.gperf"
-      {"0\2770\231", 0x30c0},
-#line 630 "./uninorm/composition-table.gperf"
-      {"\001\257\003\001", 0x1ee8},
-#line 632 "./uninorm/composition-table.gperf"
-      {"\001\257\003\000", 0x1eea},
-#line 581 "./uninorm/composition-table.gperf"
-      {"\036\241\003\006", 0x1eb7},
+      {"\0000\277\0000\231", 0x30c0},
+#line 292 "./uninorm/composition-table.gperf"
+      {"\000\003\231\000\003\010", 0x03aa},
+#line 290 "./uninorm/composition-table.gperf"
+      {"\000\003\251\000\003\001", 0x038f},
+#line 855 "./uninorm/composition-table.gperf"
+      {"\000\003\251\000\003\000", 0x1ffa},
 #line 149 "./uninorm/composition-table.gperf"
-      {"\000O\003\013", 0x0150},
-#line 98 "./uninorm/composition-table.gperf"
-      {"\000D\003\014", 0x010e},
+      {"\000\000O\000\003\013", 0x0150},
+#line 570 "./uninorm/composition-table.gperf"
+      {"\000\036\240\000\003\002", 0x1eac},
 #line 935 "./uninorm/composition-table.gperf"
-      {"0\2710\231", 0x30ba},
+      {"\0000\271\0000\231", 0x30ba},
 #line 289 "./uninorm/composition-table.gperf"
-      {"\003\245\003\001", 0x038e},
+      {"\000\003\245\000\003\001", 0x038e},
 #line 846 "./uninorm/composition-table.gperf"
-      {"\003\245\003\000", 0x1fea},
-#line 348 "./uninorm/composition-table.gperf"
-      {"\004#\003\004", 0x04ee},
+      {"\000\003\245\000\003\000", 0x1fea},
+      {""},
 #line 790 "./uninorm/composition-table.gperf"
-      {"\037c\003E", 0x1fa3},
-#line 285 "./uninorm/composition-table.gperf"
-      {"\003\225\003\001", 0x0388},
-#line 820 "./uninorm/composition-table.gperf"
-      {"\003\225\003\000", 0x1fc8},
+      {"\000\037c\000\003E", 0x1fa3},
+#line 664 "./uninorm/composition-table.gperf"
+      {"\000\003\265\000\003\023", 0x1f10},
+#line 481 "./uninorm/composition-table.gperf"
+      {"\000\000\325\000\003\010", 0x1e4e},
 #line 555 "./uninorm/composition-table.gperf"
-      {"\000w\003\012", 0x1e98},
-#line 235 "./uninorm/composition-table.gperf"
-      {"\000\306\003\001", 0x01fc},
-#line 570 "./uninorm/composition-table.gperf"
-      {"\036\240\003\002", 0x1eac},
-#line 138 "./uninorm/composition-table.gperf"
-      {"\000l\003\014", 0x013e},
-#line 543 "./uninorm/composition-table.gperf"
-      {"\000X\003\010", 0x1e8c},
-#line 292 "./uninorm/composition-table.gperf"
-      {"\003\231\003\010", 0x03aa},
+      {"\000\000w\000\003\012", 0x1e98},
+#line 856 "./uninorm/composition-table.gperf"
+      {"\000\003\251\000\003E", 0x1ffc},
+#line 220 "./uninorm/composition-table.gperf"
+      {"\000\000K\000\003\014", 0x01e8},
+#line 636 "./uninorm/composition-table.gperf"
+      {"\000\001\257\000\003\003", 0x1eee},
+#line 704 "./uninorm/composition-table.gperf"
+      {"\000\0378\000\003\001", 0x1f3c},
+#line 702 "./uninorm/composition-table.gperf"
+      {"\000\0378\000\003\000", 0x1f3a},
+#line 706 "./uninorm/composition-table.gperf"
+      {"\000\0378\000\003B", 0x1f3e},
 #line 303 "./uninorm/composition-table.gperf"
-      {"\003\311\003\001", 0x03ce},
+      {"\000\003\311\000\003\001", 0x03ce},
 #line 754 "./uninorm/composition-table.gperf"
-      {"\003\311\003\000", 0x1f7c},
+      {"\000\003\311\000\003\000", 0x1f7c},
 #line 852 "./uninorm/composition-table.gperf"
-      {"\003\311\003B", 0x1ff6},
-#line 740 "./uninorm/composition-table.gperf"
-      {"\003\251\003\023", 0x1f68},
-#line 393 "./uninorm/composition-table.gperf"
-      {"\033\007\0335", 0x1b08},
-      {""},
+      {"\000\003\311\000\003B", 0x1ff6},
+#line 359 "./uninorm/composition-table.gperf"
+      {"\000\006'\000\006T", 0x0623},
+#line 399 "./uninorm/composition-table.gperf"
+      {"\000\033<\000\0335", 0x1b3d},
 #line 463 "./uninorm/composition-table.gperf"
-      {"\000L\003-", 0x1e3c},
+      {"\000\000L\000\003-", 0x1e3c},
 #line 177 "./uninorm/composition-table.gperf"
-      {"\000U\003\013", 0x0170},
-      {""},
+      {"\000\000U\000\003\013", 0x0170},
+#line 700 "./uninorm/composition-table.gperf"
+      {"\000\003\231\000\003\023", 0x1f38},
 #line 226 "./uninorm/composition-table.gperf"
-      {"\001\267\003\014", 0x01ee},
-#line 341 "./uninorm/composition-table.gperf"
-      {"\0048\003\010", 0x04e5},
-#line 466 "./uninorm/composition-table.gperf"
-      {"\000m\003\001", 0x1e3f},
+      {"\000\001\267\000\003\014", 0x01ee},
+#line 364 "./uninorm/composition-table.gperf"
+      {"\000\006\301\000\006T", 0x06c2},
+#line 831 "./uninorm/composition-table.gperf"
+      {"\000\003\231\000\003\006", 0x1fd8},
+#line 881 "./uninorm/composition-table.gperf"
+      {"\000\"v\000\0038", 0x2278},
 #line 850 "./uninorm/composition-table.gperf"
-      {"\003\311\003E", 0x1ff3},
-#line 819 "./uninorm/composition-table.gperf"
-      {"\037\306\003E", 0x1fc7},
+      {"\000\003\311\000\003E", 0x1ff3},
 #line 164 "./uninorm/composition-table.gperf"
-      {"\000s\003\014", 0x0161},
-#line 468 "./uninorm/composition-table.gperf"
-      {"\000m\003\007", 0x1e41},
+      {"\000\000s\000\003\014", 0x0161},
+#line 421 "./uninorm/composition-table.gperf"
+      {"\000\000D\000\003-", 0x1e12},
 #line 163 "./uninorm/composition-table.gperf"
-      {"\000S\003\014", 0x0160},
+      {"\000\000S\000\003\014", 0x0160},
 #line 592 "./uninorm/composition-table.gperf"
-      {"\000\312\003\011", 0x1ec2},
-#line 504 "./uninorm/composition-table.gperf"
-      {"\001[\003\007", 0x1e65},
+      {"\000\000\312\000\003\011", 0x1ec2},
+#line 949 "./uninorm/composition-table.gperf"
+      {"\0000\330\0000\231", 0x30d9},
 #line 153 "./uninorm/composition-table.gperf"
-      {"\000R\003'", 0x0156},
-#line 620 "./uninorm/composition-table.gperf"
-      {"\001\240\003\011", 0x1ede},
+      {"\000\000R\000\003'", 0x0156},
+#line 621 "./uninorm/composition-table.gperf"
+      {"\000\001\241\000\003\011", 0x1edf},
 #line 293 "./uninorm/composition-table.gperf"
-      {"\003\245\003\010", 0x03ab},
-#line 358 "./uninorm/composition-table.gperf"
-      {"\006'\006S", 0x0622},
-#line 417 "./uninorm/composition-table.gperf"
-      {"\000D\0031", 0x1e0e},
-#line 625 "./uninorm/composition-table.gperf"
-      {"\001\241\003#", 0x1ee3},
-#line 700 "./uninorm/composition-table.gperf"
-      {"\003\231\003\023", 0x1f38},
-#line 207 "./uninorm/composition-table.gperf"
-      {"\000\374\003\001", 0x01d8},
-#line 211 "./uninorm/composition-table.gperf"
-      {"\000\374\003\000", 0x01dc},
-#line 831 "./uninorm/composition-table.gperf"
-      {"\003\231\003\006", 0x1fd8},
-#line 800 "./uninorm/composition-table.gperf"
-      {"\037m\003E", 0x1fad},
-#line 221 "./uninorm/composition-table.gperf"
-      {"\000k\003\014", 0x01e9},
+      {"\000\003\245\000\003\010", 0x03ab},
+#line 394 "./uninorm/composition-table.gperf"
+      {"\000\033\011\000\0335", 0x1b0a},
+#line 681 "./uninorm/composition-table.gperf"
+      {"\000\037!\000\003\001", 0x1f25},
+#line 679 "./uninorm/composition-table.gperf"
+      {"\000\037!\000\003\000", 0x1f23},
+#line 683 "./uninorm/composition-table.gperf"
+      {"\000\037!\000\003B", 0x1f27},
+#line 400 "./uninorm/composition-table.gperf"
+      {"\000\033>\000\0335", 0x1b40},
+#line 922 "./uninorm/composition-table.gperf"
+      {"\0000x\0000\231", 0x3079},
+#line 581 "./uninorm/composition-table.gperf"
+      {"\000\036\241\000\003\006", 0x1eb7},
+#line 674 "./uninorm/composition-table.gperf"
+      {"\000\037\030\000\003\001", 0x1f1c},
+#line 672 "./uninorm/composition-table.gperf"
+      {"\000\037\030\000\003\000", 0x1f1a},
 #line 515 "./uninorm/composition-table.gperf"
-      {"\000T\003-", 0x1e70},
+      {"\000\000T\000\003-", 0x1e70},
 #line 116 "./uninorm/composition-table.gperf"
-      {"\000G\003'", 0x0122},
-#line 280 "./uninorm/composition-table.gperf"
-      {"\002/\003\004", 0x0231},
-#line 462 "./uninorm/composition-table.gperf"
-      {"\000l\0031", 0x1e3b},
-#line 939 "./uninorm/composition-table.gperf"
-      {"0\3010\231", 0x30c2},
+      {"\000\000G\000\003'", 0x0122},
+#line 455 "./uninorm/composition-table.gperf"
+      {"\000\000K\000\0031", 0x1e34},
+#line 508 "./uninorm/composition-table.gperf"
+      {"\000\036c\000\003\007", 0x1e69},
+#line 772 "./uninorm/composition-table.gperf"
+      {"\000\037!\000\003E", 0x1f91},
 #line 931 "./uninorm/composition-table.gperf"
-      {"0\2610\231", 0x30b2},
-#line 674 "./uninorm/composition-table.gperf"
-      {"\037\030\003\001", 0x1f1c},
-#line 672 "./uninorm/composition-table.gperf"
-      {"\037\030\003\000", 0x1f1a},
-#line 314 "./uninorm/composition-table.gperf"
-      {"\0048\003\006", 0x0439},
-#line 636 "./uninorm/composition-table.gperf"
-      {"\001\257\003\003", 0x1eee},
-#line 286 "./uninorm/composition-table.gperf"
-      {"\003\227\003\001", 0x0389},
-#line 821 "./uninorm/composition-table.gperf"
-      {"\003\227\003\000", 0x1fca},
-#line 415 "./uninorm/composition-table.gperf"
-      {"\000D\003#", 0x1e0c},
-#line 360 "./uninorm/composition-table.gperf"
-      {"\006H\006T", 0x0624},
+      {"\0000\261\0000\231", 0x30b2},
+#line 620 "./uninorm/composition-table.gperf"
+      {"\000\001\240\000\003\011", 0x1ede},
+#line 541 "./uninorm/composition-table.gperf"
+      {"\000\000X\000\003\007", 0x1e8a},
+      {""},
+#line 589 "./uninorm/composition-table.gperf"
+      {"\000\000\352\000\003\001", 0x1ebf},
+#line 591 "./uninorm/composition-table.gperf"
+      {"\000\000\352\000\003\000", 0x1ec1},
+#line 740 "./uninorm/composition-table.gperf"
+      {"\000\003\251\000\003\023", 0x1f68},
+#line 884 "./uninorm/composition-table.gperf"
+      {"\000\"{\000\0038", 0x2281},
+#line 320 "./uninorm/composition-table.gperf"
+      {"\000\0048\000\003\000", 0x045d},
+#line 580 "./uninorm/composition-table.gperf"
+      {"\000\036\240\000\003\006", 0x1eb6},
+#line 901 "./uninorm/composition-table.gperf"
+      {"\0000K\0000\231", 0x304c},
+#line 190 "./uninorm/composition-table.gperf"
+      {"\000\000Z\000\003\014", 0x017d},
 #line 606 "./uninorm/composition-table.gperf"
-      {"\000\324\003\001", 0x1ed0},
+      {"\000\000\324\000\003\001", 0x1ed0},
 #line 608 "./uninorm/composition-table.gperf"
-      {"\000\324\003\000", 0x1ed2},
-#line 190 "./uninorm/composition-table.gperf"
-      {"\000Z\003\014", 0x017d},
-#line 529 "./uninorm/composition-table.gperf"
-      {"\000V\003#", 0x1e7e},
-      {""},
+      {"\000\000\324\000\003\000", 0x1ed2},
 #line 844 "./uninorm/composition-table.gperf"
-      {"\003\245\003\006", 0x1fe8},
-#line 670 "./uninorm/composition-table.gperf"
-      {"\003\225\003\023", 0x1f18},
+      {"\000\003\245\000\003\006", 0x1fe8},
+#line 393 "./uninorm/composition-table.gperf"
+      {"\000\033\007\000\0335", 0x1b08},
 #line 141 "./uninorm/composition-table.gperf"
-      {"\000N\003'", 0x0145},
-#line 822 "./uninorm/composition-table.gperf"
-      {"\003\227\003E", 0x1fcc},
-#line 458 "./uninorm/composition-table.gperf"
-      {"\000l\003#", 0x1e37},
-#line 580 "./uninorm/composition-table.gperf"
-      {"\036\240\003\006", 0x1eb6},
-      {""},
-#line 518 "./uninorm/composition-table.gperf"
-      {"\000u\003$", 0x1e73},
+      {"\000\000N\000\003'", 0x0145},
+#line 453 "./uninorm/composition-table.gperf"
+      {"\000\000K\000\003#", 0x1e32},
+#line 505 "./uninorm/composition-table.gperf"
+      {"\000\001`\000\003\007", 0x1e66},
+#line 919 "./uninorm/composition-table.gperf"
+      {"\0000r\0000\232", 0x3074},
+#line 634 "./uninorm/composition-table.gperf"
+      {"\000\001\257\000\003\011", 0x1eec},
+#line 191 "./uninorm/composition-table.gperf"
+      {"\000\000z\000\003\014", 0x017e},
       {""},
+#line 221 "./uninorm/composition-table.gperf"
+      {"\000\000k\000\003\014", 0x01e9},
 #line 732 "./uninorm/composition-table.gperf"
-      {"\003\311\003\023", 0x1f60},
-#line 949 "./uninorm/composition-table.gperf"
-      {"0\3300\231", 0x30d9},
-#line 508 "./uninorm/composition-table.gperf"
-      {"\036c\003\007", 0x1e69},
-#line 725 "./uninorm/composition-table.gperf"
-      {"\037Q\003\001", 0x1f55},
-#line 723 "./uninorm/composition-table.gperf"
-      {"\037Q\003\000", 0x1f53},
-#line 727 "./uninorm/composition-table.gperf"
-      {"\037Q\003B", 0x1f57},
+      {"\000\003\311\000\003\023", 0x1f60},
+#line 859 "./uninorm/composition-table.gperf"
+      {"\000!\224\000\0038", 0x21ae},
+#line 736 "./uninorm/composition-table.gperf"
+      {"\000\037`\000\003\001", 0x1f64},
+#line 734 "./uninorm/composition-table.gperf"
+      {"\000\037`\000\003\000", 0x1f62},
+#line 738 "./uninorm/composition-table.gperf"
+      {"\000\037`\000\003B", 0x1f66},
 #line 934 "./uninorm/composition-table.gperf"
-      {"0\2670\231", 0x30b8},
+      {"\0000\267\0000\231", 0x30b8},
 #line 905 "./uninorm/composition-table.gperf"
-      {"0S0\231", 0x3054},
-#line 456 "./uninorm/composition-table.gperf"
-      {"\000k\0031", 0x1e35},
-#line 363 "./uninorm/composition-table.gperf"
-      {"\006\325\006T", 0x06c0},
-#line 665 "./uninorm/composition-table.gperf"
-      {"\003\265\003\024", 0x1f11},
-#line 130 "./uninorm/composition-table.gperf"
-      {"\000j\003\002", 0x0135},
+      {"\0000S\0000\231", 0x3054},
+#line 543 "./uninorm/composition-table.gperf"
+      {"\000\000X\000\003\010", 0x1e8c},
+#line 631 "./uninorm/composition-table.gperf"
+      {"\000\001\260\000\003\001", 0x1ee9},
+#line 633 "./uninorm/composition-table.gperf"
+      {"\000\001\260\000\003\000", 0x1eeb},
+#line 280 "./uninorm/composition-table.gperf"
+      {"\000\002/\000\003\004", 0x0231},
 #line 502 "./uninorm/composition-table.gperf"
-      {"\000s\003#", 0x1e63},
+      {"\000\000s\000\003#", 0x1e63},
 #line 117 "./uninorm/composition-table.gperf"
-      {"\000g\003'", 0x0123},
+      {"\000\000g\000\003'", 0x0123},
 #line 501 "./uninorm/composition-table.gperf"
-      {"\000S\003#", 0x1e62},
-#line 392 "./uninorm/composition-table.gperf"
-      {"\033\005\0335", 0x1b06},
-#line 589 "./uninorm/composition-table.gperf"
-      {"\000\352\003\001", 0x1ebf},
-#line 591 "./uninorm/composition-table.gperf"
-      {"\000\352\003\000", 0x1ec1},
-#line 396 "./uninorm/composition-table.gperf"
-      {"\033\015\0335", 0x1b0e},
-#line 681 "./uninorm/composition-table.gperf"
-      {"\037!\003\001", 0x1f25},
-#line 679 "./uninorm/composition-table.gperf"
-      {"\037!\003\000", 0x1f23},
-#line 683 "./uninorm/composition-table.gperf"
-      {"\037!\003B", 0x1f27},
-#line 919 "./uninorm/composition-table.gperf"
-      {"0r0\232", 0x3074},
-#line 191 "./uninorm/composition-table.gperf"
-      {"\000z\003\014", 0x017e},
+      {"\000\000S\000\003#", 0x1e62},
+#line 787 "./uninorm/composition-table.gperf"
+      {"\000\037`\000\003E", 0x1fa0},
 #line 311 "./uninorm/composition-table.gperf"
-      {"\004\030\003\000", 0x040d},
+      {"\000\004\030\000\003\000", 0x040d},
+#line 341 "./uninorm/composition-table.gperf"
+      {"\000\0048\000\003\010", 0x04e5},
+#line 857 "./uninorm/composition-table.gperf"
+      {"\000!\220\000\0038", 0x219a},
+      {""},
+#line 216 "./uninorm/composition-table.gperf"
+      {"\000\000\306\000\003\004", 0x01e2},
+#line 944 "./uninorm/composition-table.gperf"
+      {"\0000\317\0000\232", 0x30d1},
+#line 832 "./uninorm/composition-table.gperf"
+      {"\000\003\231\000\003\004", 0x1fd9},
+#line 782 "./uninorm/composition-table.gperf"
+      {"\000\037+\000\003E", 0x1f9b},
+#line 860 "./uninorm/composition-table.gperf"
+      {"\000!\320\000\0038", 0x21cd},
 #line 551 "./uninorm/composition-table.gperf"
-      {"\000Z\0031", 0x1e94},
-#line 797 "./uninorm/composition-table.gperf"
-      {"\037j\003E", 0x1faa},
-#line 952 "./uninorm/composition-table.gperf"
-      {"0\3330\232", 0x30dd},
-#line 454 "./uninorm/composition-table.gperf"
-      {"\000k\003#", 0x1e33},
+      {"\000\000Z\000\0031", 0x1e94},
+#line 352 "./uninorm/composition-table.gperf"
+      {"\000\004#\000\003\013", 0x04f2},
+#line 607 "./uninorm/composition-table.gperf"
+      {"\000\000\364\000\003\001", 0x1ed1},
+#line 609 "./uninorm/composition-table.gperf"
+      {"\000\000\364\000\003\000", 0x1ed3},
 #line 135 "./uninorm/composition-table.gperf"
-      {"\000L\003'", 0x013b},
-#line 334 "./uninorm/composition-table.gperf"
-      {"\004\026\003\010", 0x04dc},
-#line 772 "./uninorm/composition-table.gperf"
-      {"\037!\003E", 0x1f91},
+      {"\000\000L\000\003'", 0x013b},
+#line 527 "./uninorm/composition-table.gperf"
+      {"\000\000V\000\003\003", 0x1e7c},
+#line 518 "./uninorm/composition-table.gperf"
+      {"\000\000u\000\003$", 0x1e73},
 #line 882 "./uninorm/composition-table.gperf"
-      {"\"w\0038", 0x2279},
-#line 631 "./uninorm/composition-table.gperf"
-      {"\001\260\003\001", 0x1ee9},
-#line 633 "./uninorm/composition-table.gperf"
-      {"\001\260\003\000", 0x1eeb},
-#line 525 "./uninorm/composition-table.gperf"
-      {"\001j\003\010", 0x1e7a},
-#line 624 "./uninorm/composition-table.gperf"
-      {"\001\240\003#", 0x1ee2},
-#line 669 "./uninorm/composition-table.gperf"
-      {"\037\021\003\001", 0x1f15},
-#line 667 "./uninorm/composition-table.gperf"
-      {"\037\021\003\000", 0x1f13},
-#line 832 "./uninorm/composition-table.gperf"
-      {"\003\231\003\004", 0x1fd9},
-#line 634 "./uninorm/composition-table.gperf"
-      {"\001\257\003\011", 0x1eec},
-#line 684 "./uninorm/composition-table.gperf"
-      {"\003\227\003\023", 0x1f28},
-#line 900 "./uninorm/composition-table.gperf"
-      {"\"\265\0038", 0x22ed},
-#line 361 "./uninorm/composition-table.gperf"
-      {"\006'\006U", 0x0625},
-#line 612 "./uninorm/composition-table.gperf"
-      {"\000\324\003\003", 0x1ed6},
-#line 549 "./uninorm/composition-table.gperf"
-      {"\000Z\003#", 0x1e92},
-#line 386 "./uninorm/composition-table.gperf"
-      {"\015F\015W", 0x0d4c},
-#line 421 "./uninorm/composition-table.gperf"
-      {"\000D\003-", 0x1e12},
+      {"\000\"w\000\0038", 0x2279},
+#line 275 "./uninorm/composition-table.gperf"
+      {"\000\000\325\000\003\004", 0x022c},
+      {""},
+#line 552 "./uninorm/composition-table.gperf"
+      {"\000\000z\000\0031", 0x1e95},
+#line 625 "./uninorm/composition-table.gperf"
+      {"\000\001\241\000\003#", 0x1ee3},
+#line 456 "./uninorm/composition-table.gperf"
+      {"\000\000k\000\0031", 0x1e35},
+#line 419 "./uninorm/composition-table.gperf"
+      {"\000\000D\000\003'", 0x1e10},
+#line 595 "./uninorm/composition-table.gperf"
+      {"\000\000\352\000\003\003", 0x1ec5},
+#line 286 "./uninorm/composition-table.gperf"
+      {"\000\003\227\000\003\001", 0x0389},
+#line 821 "./uninorm/composition-table.gperf"
+      {"\000\003\227\000\003\000", 0x1fca},
+#line 495 "./uninorm/composition-table.gperf"
+      {"\000\036Z\000\003\004", 0x1e5c},
+      {""},
 #line 406 "./uninorm/composition-table.gperf"
-      {"\000b\003\007", 0x1e03},
+      {"\000\000b\000\003\007", 0x1e03},
+#line 549 "./uninorm/composition-table.gperf"
+      {"\000\000Z\000\003#", 0x1e92},
+#line 314 "./uninorm/composition-table.gperf"
+      {"\000\0048\000\003\006", 0x0439},
+#line 612 "./uninorm/composition-table.gperf"
+      {"\000\000\324\000\003\003", 0x1ed6},
+#line 340 "./uninorm/composition-table.gperf"
+      {"\000\004\030\000\003\010", 0x04e4},
 #line 97 "./uninorm/composition-table.gperf"
-      {"\000c\003\014", 0x010d},
-#line 339 "./uninorm/composition-table.gperf"
-      {"\0048\003\004", 0x04e3},
-      {""},
-#line 365 "./uninorm/composition-table.gperf"
-      {"\006\322\006T", 0x06d3},
-#line 488 "./uninorm/composition-table.gperf"
-      {"\000p\003\001", 0x1e55},
+      {"\000\000c\000\003\014", 0x010d},
+#line 563 "./uninorm/composition-table.gperf"
+      {"\000\000\342\000\003\001", 0x1ea5},
+#line 565 "./uninorm/composition-table.gperf"
+      {"\000\000\342\000\003\000", 0x1ea7},
+#line 822 "./uninorm/composition-table.gperf"
+      {"\000\003\227\000\003E", 0x1fcc},
+#line 624 "./uninorm/composition-table.gperf"
+      {"\000\001\240\000\003#", 0x1ee2},
 #line 165 "./uninorm/composition-table.gperf"
-      {"\000T\003'", 0x0162},
-#line 505 "./uninorm/composition-table.gperf"
-      {"\001`\003\007", 0x1e66},
-#line 340 "./uninorm/composition-table.gperf"
-      {"\004\030\003\010", 0x04e4},
-#line 490 "./uninorm/composition-table.gperf"
-      {"\000p\003\007", 0x1e57},
-#line 464 "./uninorm/composition-table.gperf"
-      {"\000l\003-", 0x1e3d},
-#line 324 "./uninorm/composition-table.gperf"
-      {"\004\026\003\006", 0x04c1},
-#line 552 "./uninorm/composition-table.gperf"
-      {"\000z\0031", 0x1e95},
-#line 845 "./uninorm/composition-table.gperf"
-      {"\003\245\003\004", 0x1fe9},
+      {"\000\000T\000\003'", 0x0162},
+#line 550 "./uninorm/composition-table.gperf"
+      {"\000\000z\000\003#", 0x1e93},
+#line 318 "./uninorm/composition-table.gperf"
+      {"\000\004V\000\003\010", 0x0457},
+#line 454 "./uninorm/composition-table.gperf"
+      {"\000\000k\000\003#", 0x1e33},
 #line 789 "./uninorm/composition-table.gperf"
-      {"\037b\003E", 0x1fa2},
-#line 736 "./uninorm/composition-table.gperf"
-      {"\037`\003\001", 0x1f64},
-#line 734 "./uninorm/composition-table.gperf"
-      {"\037`\003\000", 0x1f62},
-#line 738 "./uninorm/composition-table.gperf"
-      {"\037`\003B", 0x1f66},
-#line 859 "./uninorm/composition-table.gperf"
-      {"!\224\0038", 0x21ae},
-#line 517 "./uninorm/composition-table.gperf"
-      {"\000U\003$", 0x1e72},
-#line 216 "./uninorm/composition-table.gperf"
-      {"\000\306\003\004", 0x01e2},
-#line 495 "./uninorm/composition-table.gperf"
-      {"\036Z\003\004", 0x1e5c},
+      {"\000\037b\000\003E", 0x1fa2},
+#line 562 "./uninorm/composition-table.gperf"
+      {"\000\000\302\000\003\001", 0x1ea4},
+#line 564 "./uninorm/composition-table.gperf"
+      {"\000\000\302\000\003\000", 0x1ea6},
+#line 845 "./uninorm/composition-table.gperf"
+      {"\000\003\245\000\003\004", 0x1fe9},
+#line 392 "./uninorm/composition-table.gperf"
+      {"\000\033\005\000\0335", 0x1b06},
+#line 933 "./uninorm/composition-table.gperf"
+      {"\0000\265\0000\231", 0x30b6},
+      {""},
+#line 396 "./uninorm/composition-table.gperf"
+      {"\000\033\015\000\0335", 0x1b0e},
+#line 777 "./uninorm/composition-table.gperf"
+      {"\000\037&\000\003E", 0x1f96},
+#line 637 "./uninorm/composition-table.gperf"
+      {"\000\001\260\000\003\003", 0x1eef},
+#line 285 "./uninorm/composition-table.gperf"
+      {"\000\003\225\000\003\001", 0x0388},
+#line 820 "./uninorm/composition-table.gperf"
+      {"\000\003\225\000\003\000", 0x1fc8},
 #line 709 "./uninorm/composition-table.gperf"
-      {"\003\277\003\024", 0x1f41},
-#line 805 "./uninorm/composition-table.gperf"
-      {"\037p\003E", 0x1fb2},
-#line 607 "./uninorm/composition-table.gperf"
-      {"\000\364\003\001", 0x1ed1},
-#line 609 "./uninorm/composition-table.gperf"
-      {"\000\364\003\000", 0x1ed3},
-#line 595 "./uninorm/composition-table.gperf"
-      {"\000\352\003\003", 0x1ec5},
-#line 787 "./uninorm/composition-table.gperf"
-      {"\037`\003E", 0x1fa0},
+      {"\000\003\277\000\003\024", 0x1f41},
+#line 930 "./uninorm/composition-table.gperf"
+      {"\0000\257\0000\231", 0x30b0},
+#line 638 "./uninorm/composition-table.gperf"
+      {"\000\001\257\000\003#", 0x1ef0},
+#line 941 "./uninorm/composition-table.gperf"
+      {"\0000\306\0000\231", 0x30c7},
+#line 404 "./uninorm/composition-table.gperf"
+      {"\000\000a\000\003%", 0x1e01},
+      {""},
 #line 693 "./uninorm/composition-table.gperf"
-      {"\003\271\003\024", 0x1f31},
-#line 860 "./uninorm/composition-table.gperf"
-      {"!\320\0038", 0x21cd},
+      {"\000\003\271\000\003\024", 0x1f31},
+#line 313 "./uninorm/composition-table.gperf"
+      {"\000\004\030\000\003\006", 0x0419},
 #line 874 "./uninorm/composition-table.gperf"
-      {"\"M\0038", 0x226d},
-#line 857 "./uninorm/composition-table.gperf"
-      {"!\220\0038", 0x219a},
-#line 550 "./uninorm/composition-table.gperf"
-      {"\000z\003#", 0x1e93},
-#line 400 "./uninorm/composition-table.gperf"
-      {"\033>\0335", 0x1b40},
+      {"\000\"M\000\0038", 0x226d},
+#line 298 "./uninorm/composition-table.gperf"
+      {"\000\003\313\000\003\001", 0x03b0},
+#line 839 "./uninorm/composition-table.gperf"
+      {"\000\003\313\000\003\000", 0x1fe2},
+#line 843 "./uninorm/composition-table.gperf"
+      {"\000\003\313\000\003B", 0x1fe7},
+#line 365 "./uninorm/composition-table.gperf"
+      {"\000\006\322\000\006T", 0x06d3},
+#line 892 "./uninorm/composition-table.gperf"
+      {"\000\"\253\000\0038", 0x22af},
 #line 487 "./uninorm/composition-table.gperf"
-      {"\000P\003\001", 0x1e54},
-      {""},
-#line 948 "./uninorm/composition-table.gperf"
-      {"0\3250\232", 0x30d7},
-#line 313 "./uninorm/composition-table.gperf"
-      {"\004\030\003\006", 0x0419},
-#line 489 "./uninorm/composition-table.gperf"
-      {"\000P\003\007", 0x1e56},
+      {"\000\000P\000\003\001", 0x1e54},
+#line 613 "./uninorm/composition-table.gperf"
+      {"\000\000\364\000\003\003", 0x1ed7},
+#line 947 "./uninorm/composition-table.gperf"
+      {"\0000\325\0000\231", 0x30d6},
 #line 657 "./uninorm/composition-table.gperf"
-      {"\003\221\003\024", 0x1f09},
+      {"\000\003\221\000\003\024", 0x1f09},
+#line 489 "./uninorm/composition-table.gperf"
+      {"\000\000P\000\003\007", 0x1e56},
+#line 356 "./uninorm/composition-table.gperf"
+      {"\000\004+\000\003\010", 0x04f8},
 #line 724 "./uninorm/composition-table.gperf"
-      {"\037P\003\001", 0x1f54},
+      {"\000\037P\000\003\001", 0x1f54},
 #line 722 "./uninorm/composition-table.gperf"
-      {"\037P\003\000", 0x1f52},
+      {"\000\037P\000\003\000", 0x1f52},
 #line 726 "./uninorm/composition-table.gperf"
-      {"\037P\003B", 0x1f56},
-#line 637 "./uninorm/composition-table.gperf"
-      {"\001\260\003\003", 0x1eef},
-#line 890 "./uninorm/composition-table.gperf"
-      {"\"\250\0038", 0x22ad},
-#line 362 "./uninorm/composition-table.gperf"
-      {"\006J\006T", 0x0626},
-#line 563 "./uninorm/composition-table.gperf"
-      {"\000\342\003\001", 0x1ea5},
-#line 565 "./uninorm/composition-table.gperf"
-      {"\000\342\003\000", 0x1ea7},
-#line 777 "./uninorm/composition-table.gperf"
-      {"\037&\003E", 0x1f96},
-#line 193 "./uninorm/composition-table.gperf"
-      {"\000o\003\033", 0x01a1},
+      {"\000\037P\000\003B", 0x1f56},
+#line 283 "./uninorm/composition-table.gperf"
+      {"\000\000\250\000\003\001", 0x0385},
+#line 848 "./uninorm/composition-table.gperf"
+      {"\000\000\250\000\003\000", 0x1fed},
+#line 814 "./uninorm/composition-table.gperf"
+      {"\000\000\250\000\003B", 0x1fc1},
       {""},
-#line 205 "./uninorm/composition-table.gperf"
-      {"\000\374\003\004", 0x01d6},
-#line 562 "./uninorm/composition-table.gperf"
-      {"\000\302\003\001", 0x1ea4},
-#line 564 "./uninorm/composition-table.gperf"
-      {"\000\302\003\000", 0x1ea6},
-#line 209 "./uninorm/composition-table.gperf"
-      {"\000\374\003\014", 0x01da},
+#line 130 "./uninorm/composition-table.gperf"
+      {"\000\000j\000\003\002", 0x0135},
+#line 593 "./uninorm/composition-table.gperf"
+      {"\000\000\352\000\003\011", 0x1ec3},
+#line 684 "./uninorm/composition-table.gperf"
+      {"\000\003\227\000\003\023", 0x1f28},
+#line 517 "./uninorm/composition-table.gperf"
+      {"\000\000U\000\003$", 0x1e72},
+#line 507 "./uninorm/composition-table.gperf"
+      {"\000\036b\000\003\007", 0x1e68},
+      {""},
+#line 925 "./uninorm/composition-table.gperf"
+      {"\0000{\0000\232", 0x307d},
+#line 858 "./uninorm/composition-table.gperf"
+      {"\000!\222\000\0038", 0x219b},
+#line 362 "./uninorm/composition-table.gperf"
+      {"\000\006J\000\006T", 0x0626},
 #line 610 "./uninorm/composition-table.gperf"
-      {"\000\324\003\011", 0x1ed4},
-#line 404 "./uninorm/composition-table.gperf"
-      {"\000a\003%", 0x1e01},
+      {"\000\000\324\000\003\011", 0x1ed4},
+#line 224 "./uninorm/composition-table.gperf"
+      {"\000\001\352\000\003\004", 0x01ec},
+#line 569 "./uninorm/composition-table.gperf"
+      {"\000\000\342\000\003\003", 0x1eab},
 #line 369 "./uninorm/composition-table.gperf"
-      {"\011\307\011\276", 0x09cb},
-#line 195 "./uninorm/composition-table.gperf"
-      {"\000u\003\033", 0x01b0},
-#line 315 "./uninorm/composition-table.gperf"
-      {"\0045\003\000", 0x0450},
-#line 680 "./uninorm/composition-table.gperf"
-      {"\037 \003\001", 0x1f24},
-#line 678 "./uninorm/composition-table.gperf"
-      {"\037 \003\000", 0x1f22},
-#line 682 "./uninorm/composition-table.gperf"
-      {"\037 \003B", 0x1f26},
+      {"\000\011\307\000\011\276", 0x09cb},
+#line 466 "./uninorm/composition-table.gperf"
+      {"\000\000m\000\003\001", 0x1e3f},
 #line 378 "./uninorm/composition-table.gperf"
-      {"\014F\014V", 0x0c48},
-#line 847 "./uninorm/composition-table.gperf"
-      {"\003\241\003\024", 0x1fec},
-#line 866 "./uninorm/composition-table.gperf"
-      {"\"#\0038", 0x2224},
-#line 930 "./uninorm/composition-table.gperf"
-      {"0\2570\231", 0x30b0},
-#line 638 "./uninorm/composition-table.gperf"
-      {"\001\257\003#", 0x1ef0},
-      {""}, {""},
+      {"\000\014F\000\014V", 0x0c48},
+#line 797 "./uninorm/composition-table.gperf"
+      {"\000\037j\000\003E", 0x1faa},
+      {""},
+#line 468 "./uninorm/composition-table.gperf"
+      {"\000\000m\000\003\007", 0x1e41},
+#line 386 "./uninorm/composition-table.gperf"
+      {"\000\015F\000\015W", 0x0d4c},
+#line 339 "./uninorm/composition-table.gperf"
+      {"\000\0048\000\003\004", 0x04e3},
+#line 568 "./uninorm/composition-table.gperf"
+      {"\000\000\302\000\003\003", 0x1eaa},
 #line 721 "./uninorm/composition-table.gperf"
-      {"\003\305\003\024", 0x1f51},
+      {"\000\003\305\000\003\024", 0x1f51},
 #line 895 "./uninorm/composition-table.gperf"
-      {"\"\221\0038", 0x22e2},
-#line 771 "./uninorm/composition-table.gperf"
-      {"\037 \003E", 0x1f90},
-#line 941 "./uninorm/composition-table.gperf"
-      {"0\3060\231", 0x30c7},
-#line 399 "./uninorm/composition-table.gperf"
-      {"\033<\0335", 0x1b3d},
+      {"\000\"\221\000\0038", 0x22e2},
       {""},
-#line 841 "./uninorm/composition-table.gperf"
-      {"\003\301\003\024", 0x1fe5},
+#line 525 "./uninorm/composition-table.gperf"
+      {"\000\001j\000\003\010", 0x1e7a},
+#line 725 "./uninorm/composition-table.gperf"
+      {"\000\037Q\000\003\001", 0x1f55},
+#line 723 "./uninorm/composition-table.gperf"
+      {"\000\037Q\000\003\000", 0x1f53},
+#line 727 "./uninorm/composition-table.gperf"
+      {"\000\037Q\000\003B", 0x1f57},
 #line 649 "./uninorm/composition-table.gperf"
-      {"\003\261\003\024", 0x1f01},
-#line 385 "./uninorm/composition-table.gperf"
-      {"\015G\015>", 0x0d4b},
-#line 946 "./uninorm/composition-table.gperf"
-      {"0\3220\232", 0x30d4},
-      {""},
-#line 419 "./uninorm/composition-table.gperf"
-      {"\000D\003'", 0x1e10},
-#line 613 "./uninorm/composition-table.gperf"
-      {"\000\364\003\003", 0x1ed7},
+      {"\000\003\261\000\003\024", 0x1f01},
+#line 635 "./uninorm/composition-table.gperf"
+      {"\000\001\260\000\003\011", 0x1eed},
+#line 670 "./uninorm/composition-table.gperf"
+      {"\000\003\225\000\003\023", 0x1f18},
+#line 800 "./uninorm/composition-table.gperf"
+      {"\000\037m\000\003E", 0x1fad},
+#line 959 "./uninorm/composition-table.gperf"
+      {"\001\020\231\001\020\272", 0x1109a},
       {""},
-#line 507 "./uninorm/composition-table.gperf"
-      {"\036b\003\007", 0x1e68},
-#line 593 "./uninorm/composition-table.gperf"
-      {"\000\352\003\011", 0x1ec3},
-      {""}, {""}, {""}, {""},
-#line 445 "./uninorm/composition-table.gperf"
-      {"\000H\003.", 0x1e2a},
-#line 316 "./uninorm/composition-table.gperf"
-      {"\0045\003\010", 0x0451},
-#line 136 "./uninorm/composition-table.gperf"
-      {"\000l\003'", 0x013c},
+#line 680 "./uninorm/composition-table.gperf"
+      {"\000\037 \000\003\001", 0x1f24},
+#line 678 "./uninorm/composition-table.gperf"
+      {"\000\037 \000\003\000", 0x1f22},
+#line 682 "./uninorm/composition-table.gperf"
+      {"\000\037 \000\003B", 0x1f26},
+#line 835 "./uninorm/composition-table.gperf"
+      {"\000\037\376\000\003\001", 0x1fde},
+#line 834 "./uninorm/composition-table.gperf"
+      {"\000\037\376\000\003\000", 0x1fdd},
+#line 836 "./uninorm/composition-table.gperf"
+      {"\000\037\376\000\003B", 0x1fdf},
+#line 403 "./uninorm/composition-table.gperf"
+      {"\000\000A\000\003%", 0x1e00},
+#line 374 "./uninorm/composition-table.gperf"
+      {"\000\013\222\000\013\327", 0x0b94},
+#line 131 "./uninorm/composition-table.gperf"
+      {"\000\000K\000\003'", 0x0136},
+      {""}, {""},
+#line 385 "./uninorm/composition-table.gperf"
+      {"\000\015G\000\015>", 0x0d4b},
+#line 771 "./uninorm/composition-table.gperf"
+      {"\000\037 \000\003E", 0x1f90},
+#line 611 "./uninorm/composition-table.gperf"
+      {"\000\000\364\000\003\011", 0x1ed5},
+#line 488 "./uninorm/composition-table.gperf"
+      {"\000\000p\000\003\001", 0x1e55},
+#line 370 "./uninorm/composition-table.gperf"
+      {"\000\011\307\000\011\327", 0x09cc},
+#line 338 "./uninorm/composition-table.gperf"
+      {"\000\004\030\000\003\004", 0x04e2},
       {""},
-#line 224 "./uninorm/composition-table.gperf"
-      {"\001\352\003\004", 0x01ec},
-#line 228 "./uninorm/composition-table.gperf"
-      {"\000j\003\014", 0x01f0},
-#line 470 "./uninorm/composition-table.gperf"
-      {"\000m\003#", 0x1e43},
+#line 490 "./uninorm/composition-table.gperf"
+      {"\000\000p\000\003\007", 0x1e57},
       {""},
-#line 909 "./uninorm/composition-table.gperf"
-      {"0[0\231", 0x305c},
-      {""}, {""}, {""},
-#line 635 "./uninorm/composition-table.gperf"
-      {"\001\260\003\011", 0x1eed},
-#line 395 "./uninorm/composition-table.gperf"
-      {"\033\013\0335", 0x1b0c},
-#line 569 "./uninorm/composition-table.gperf"
-      {"\000\342\003\003", 0x1eab},
-#line 192 "./uninorm/composition-table.gperf"
-      {"\000O\003\033", 0x01a0},
+#line 862 "./uninorm/composition-table.gperf"
+      {"\000!\322\000\0038", 0x21cf},
+      {""}, {""},
 #line 677 "./uninorm/composition-table.gperf"
-      {"\003\267\003\024", 0x1f21},
-#line 338 "./uninorm/composition-table.gperf"
-      {"\004\030\003\004", 0x04e2},
-      {""},
+      {"\000\003\267\000\003\024", 0x1f21},
+      {""}, {""},
 #line 162 "./uninorm/composition-table.gperf"
-      {"\000s\003'", 0x015f},
-#line 568 "./uninorm/composition-table.gperf"
-      {"\000\302\003\003", 0x1eaa},
+      {"\000\000s\000\003'", 0x015f},
+#line 398 "./uninorm/composition-table.gperf"
+      {"\000\033:\000\0335", 0x1b3b},
 #line 161 "./uninorm/composition-table.gperf"
-      {"\000S\003'", 0x015e},
-      {""}, {""}, {""}, {""}, {""},
-#line 858 "./uninorm/composition-table.gperf"
-      {"!\222\0038", 0x219b},
-      {""},
-#line 403 "./uninorm/composition-table.gperf"
-      {"\000A\003%", 0x1e00},
-#line 331 "./uninorm/composition-table.gperf"
-      {"\0045\003\006", 0x04d7},
+      {"\000\000S\000\003'", 0x015e},
       {""}, {""}, {""},
-#line 446 "./uninorm/composition-table.gperf"
-      {"\000h\003.", 0x1e2b},
-#line 132 "./uninorm/composition-table.gperf"
-      {"\000k\003'", 0x0137},
-      {""},
-#line 194 "./uninorm/composition-table.gperf"
-      {"\000U\003\033", 0x01af},
-      {""},
-#line 496 "./uninorm/composition-table.gperf"
-      {"\036[\003\004", 0x1e5d},
-      {""}, {""}, {""}, {""},
-#line 904 "./uninorm/composition-table.gperf"
-      {"0Q0\231", 0x3052},
-      {""},
-#line 370 "./uninorm/composition-table.gperf"
-      {"\011\307\011\327", 0x09cc},
-#line 880 "./uninorm/composition-table.gperf"
-      {"\"s\0038", 0x2275},
-#line 374 "./uninorm/composition-table.gperf"
-      {"\013\222\013\327", 0x0b94},
+#line 805 "./uninorm/composition-table.gperf"
+      {"\000\037p\000\003E", 0x1fb2},
+#line 529 "./uninorm/composition-table.gperf"
+      {"\000\000V\000\003#", 0x1e7e},
       {""}, {""},
-#line 611 "./uninorm/composition-table.gperf"
-      {"\000\364\003\011", 0x1ed5},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-#line 214 "./uninorm/composition-table.gperf"
-      {"\002&\003\004", 0x01e0},
-      {""}, {""}, {""},
-#line 402 "./uninorm/composition-table.gperf"
-      {"\033B\0335", 0x1b43},
-      {""}, {""}, {""},
 #line 567 "./uninorm/composition-table.gperf"
-      {"\000\342\003\011", 0x1ea9},
+      {"\000\000\342\000\003\011", 0x1ea9},
+#line 961 "./uninorm/composition-table.gperf"
+      {"\001\020\245\001\020\272", 0x110ab},
       {""}, {""}, {""}, {""},
-#line 410 "./uninorm/composition-table.gperf"
-      {"\000b\0031", 0x1e07},
+#line 214 "./uninorm/composition-table.gperf"
+      {"\000\002&\000\003\004", 0x01e0},
+      {""},
+#line 445 "./uninorm/composition-table.gperf"
+      {"\000\000H\000\003.", 0x1e2a},
 #line 566 "./uninorm/composition-table.gperf"
-      {"\000\302\003\011", 0x1ea8},
-      {""}, {""}, {""}, {""},
-#line 741 "./uninorm/composition-table.gperf"
-      {"\003\251\003\024", 0x1f69},
+      {"\000\000\302\000\003\011", 0x1ea8},
+      {""}, {""}, {""}, {""}, {""}, {""},
+#line 847 "./uninorm/composition-table.gperf"
+      {"\000\003\241\000\003\024", 0x1fec},
+      {""},
+#line 880 "./uninorm/composition-table.gperf"
+      {"\000\"s\000\0038", 0x2275},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 397 "./uninorm/composition-table.gperf"
+      {"\000\033\021\000\0335", 0x1b12},
       {""}, {""},
+#line 395 "./uninorm/composition-table.gperf"
+      {"\000\033\013\000\0335", 0x1b0c},
+#line 358 "./uninorm/composition-table.gperf"
+      {"\000\006'\000\006S", 0x0622},
+      {""},
 #line 639 "./uninorm/composition-table.gperf"
-      {"\001\260\003#", 0x1ef1},
-#line 364 "./uninorm/composition-table.gperf"
-      {"\006\301\006T", 0x06c2},
+      {"\000\001\260\000\003#", 0x1ef1},
+#line 132 "./uninorm/composition-table.gperf"
+      {"\000\000k\000\003'", 0x0137},
+      {""}, {""}, {""}, {""}, {""}, {""},
+#line 446 "./uninorm/composition-table.gperf"
+      {"\000\000h\000\003.", 0x1e2b},
+      {""},
+#line 665 "./uninorm/composition-table.gperf"
+      {"\000\003\265\000\003\024", 0x1f11},
+#line 410 "./uninorm/composition-table.gperf"
+      {"\000\000b\000\0031", 0x1e07},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 360 "./uninorm/composition-table.gperf"
+      {"\000\006H\000\006T", 0x0624},
+      {""}, {""}, {""}, {""}, {""},
+#line 701 "./uninorm/composition-table.gperf"
+      {"\000\003\231\000\003\024", 0x1f39},
+#line 883 "./uninorm/composition-table.gperf"
+      {"\000\"z\000\0038", 0x2280},
+#line 228 "./uninorm/composition-table.gperf"
+      {"\000\000j\000\003\014", 0x01f0},
       {""}, {""},
-#line 379 "./uninorm/composition-table.gperf"
-      {"\014\277\014\325", 0x0cc0},
-#line 867 "./uninorm/composition-table.gperf"
-      {"\"%\0038", 0x2226},
-#line 923 "./uninorm/composition-table.gperf"
-      {"0x0\232", 0x307a},
-      {""}, {""}, {""}, {""},
 #line 408 "./uninorm/composition-table.gperf"
-      {"\000b\003#", 0x1e05},
+      {"\000\000b\000\003#", 0x1e05},
+#line 387 "./uninorm/composition-table.gperf"
+      {"\000\015\331\000\015\312", 0x0dda},
+      {""},
+#line 379 "./uninorm/composition-table.gperf"
+      {"\000\014\277\000\014\325", 0x0cc0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 701 "./uninorm/composition-table.gperf"
-      {"\003\231\003\024", 0x1f39},
-#line 401 "./uninorm/composition-table.gperf"
-      {"\033?\0335", 0x1b41},
-      {""}, {""}, {""}, {""}, {""},
+#line 900 "./uninorm/composition-table.gperf"
+      {"\000\"\265\000\0038", 0x22ed},
+      {""}, {""}, {""}, {""},
+#line 389 "./uninorm/composition-table.gperf"
+      {"\000\015\334\000\015\312", 0x0ddd},
+      {""}, {""},
 #line 63 "./uninorm/composition-table.gperf"
-      {"\000c\003'", 0x00e7},
-      {""},
-#line 883 "./uninorm/composition-table.gperf"
-      {"\"z\0038", 0x2280},
-#line 891 "./uninorm/composition-table.gperf"
-      {"\"\251\0038", 0x22ae},
+      {"\000\000c\000\003'", 0x00e7},
+      {""}, {""},
+#line 402 "./uninorm/composition-table.gperf"
+      {"\000\033B\000\0335", 0x1b43},
       {""}, {""},
 #line 371 "./uninorm/composition-table.gperf"
-      {"\013G\013V", 0x0b48},
+      {"\000\013G\000\013V", 0x0b48},
+#line 950 "./uninorm/composition-table.gperf"
+      {"\0000\330\0000\232", 0x30da},
+      {""}, {""},
+#line 741 "./uninorm/composition-table.gperf"
+      {"\000\003\251\000\003\024", 0x1f69},
       {""},
-#line 372 "./uninorm/composition-table.gperf"
-      {"\013G\013>", 0x0b4b},
-      {""}, {""}, {""}, {""}, {""}, {""},
+#line 867 "./uninorm/composition-table.gperf"
+      {"\000\"%\000\0038", 0x2226},
+      {""}, {""},
 #line 728 "./uninorm/composition-table.gperf"
-      {"\003\245\003\024", 0x1f59},
-      {""}, {""}, {""},
-#line 671 "./uninorm/composition-table.gperf"
-      {"\003\225\003\024", 0x1f19},
+      {"\000\003\245\000\003\024", 0x1f59},
+#line 923 "./uninorm/composition-table.gperf"
+      {"\0000x\0000\232", 0x307a},
       {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 372 "./uninorm/composition-table.gperf"
+      {"\000\013G\000\013>", 0x0b4b},
+      {""}, {""}, {""},
 #line 733 "./uninorm/composition-table.gperf"
-      {"\003\311\003\024", 0x1f61},
+      {"\000\003\311\000\003\024", 0x1f61},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""},
+#line 891 "./uninorm/composition-table.gperf"
+      {"\000\"\251\000\0038", 0x22ae},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 904 "./uninorm/composition-table.gperf"
+      {"\0000Q\0000\231", 0x3052},
+#line 470 "./uninorm/composition-table.gperf"
+      {"\000\000m\000\003#", 0x1e43},
       {""}, {""}, {""}, {""}, {""},
-#line 352 "./uninorm/composition-table.gperf"
-      {"\004#\003\013", 0x04f2},
+#line 401 "./uninorm/composition-table.gperf"
+      {"\000\033?\000\0335", 0x1b41},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 685 "./uninorm/composition-table.gperf"
-      {"\003\227\003\024", 0x1f29},
-      {""}, {""}, {""}, {""}, {""}, {""},
-#line 950 "./uninorm/composition-table.gperf"
-      {"0\3300\232", 0x30da},
-      {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
 #line 383 "./uninorm/composition-table.gperf"
-      {"\014\312\014\325", 0x0ccb},
-      {""}, {""}, {""}, {""}, {""}, {""},
+      {"\000\014\312\000\014\325", 0x0ccb},
+      {""}, {""}, {""}, {""},
 #line 376 "./uninorm/composition-table.gperf"
-      {"\013\307\013\276", 0x0bcb},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"\000\013\307\000\013\276", 0x0bcb},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-#line 862 "./uninorm/composition-table.gperf"
-      {"!\322\0038", 0x21cf},
-      {""},
+      {""}, {""}, {""},
 #line 381 "./uninorm/composition-table.gperf"
-      {"\014\306\014\326", 0x0cc8},
+      {"\000\014\306\000\014\326", 0x0cc8},
 #line 382 "./uninorm/composition-table.gperf"
-      {"\014\306\014\302", 0x0cca},
+      {"\000\014\306\000\014\302", 0x0cca},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""},
+#line 685 "./uninorm/composition-table.gperf"
+      {"\000\003\227\000\003\024", 0x1f29},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 948 "./uninorm/composition-table.gperf"
+      {"\0000\325\0000\232", 0x30d7},
 #line 380 "./uninorm/composition-table.gperf"
-      {"\014\306\014\325", 0x0cc7},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {"\000\014\306\000\014\325", 0x0cc7},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 671 "./uninorm/composition-table.gperf"
+      {"\000\003\225\000\003\024", 0x1f19},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""},
+#line 361 "./uninorm/composition-table.gperf"
+      {"\000\006'\000\006U", 0x0625},
+      {""}, {""}, {""},
+#line 890 "./uninorm/composition-table.gperf"
+      {"\000\"\250\000\0038", 0x22ad},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""},
-#line 373 "./uninorm/composition-table.gperf"
-      {"\013G\013W", 0x0b4c},
-      {""}, {""}, {""}, {""}, {""}, {""},
-#line 391 "./uninorm/composition-table.gperf"
-      {"\020%\020.", 0x1026},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
@@ -2113,33 +2110,38 @@ gl_uninorm_compose_lookup (register const char *str, register unsigned int len)
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+      {""}, {""}, {""}, {""}, {""},
+#line 363 "./uninorm/composition-table.gperf"
+      {"\000\006\325\000\006T", 0x06c0},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""},
-#line 397 "./uninorm/composition-table.gperf"
-      {"\033\021\0335", 0x1b12},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
+      {""}, {""},
+#line 373 "./uninorm/composition-table.gperf"
+      {"\000\013G\000\013W", 0x0b4c},
+      {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 391 "./uninorm/composition-table.gperf"
+      {"\000\020%\000\020.", 0x1026},
+      {""}, {""}, {""}, {""}, {""},
 #line 375 "./uninorm/composition-table.gperf"
-      {"\013\306\013\276", 0x0bca},
+      {"\000\013\306\000\013\276", 0x0bca},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 377 "./uninorm/composition-table.gperf"
+      {"\000\013\306\000\013\327", 0x0bcc},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""}, {""}, {""}, {""}, {""}, {""},
-#line 377 "./uninorm/composition-table.gperf"
-      {"\013\306\013\327", 0x0bcc},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
-      {""},
+      {""}, {""}, {""},
 #line 861 "./uninorm/composition-table.gperf"
-      {"!\324\0038", 0x21ce}
+      {"\000!\324\000\0038", 0x21ce}
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
index c9cddbe..ce35d06 100644 (file)
@@ -1,5 +1,5 @@
 /* Canonical composition of Unicode characters.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009, 2011-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
 
 #include <string.h>
 
-struct composition_rule { char codes[4]; unsigned short combined; };
+struct composition_rule { char codes[6]; unsigned int combined; };
 
 #include "composition-table.h"
 
 ucs4_t
 uc_composition (ucs4_t uc1, ucs4_t uc2)
 {
-  if (uc1 < 0x10000 && uc2 < 0x10000)
+  if (uc1 < 0x12000 && uc2 < 0x12000)
     {
       if (uc2 >= 0x1161 && uc2 < 0x1161 + 21
           && uc1 >= 0x1100 && uc1 < 0x1100 + 19)
@@ -67,15 +67,17 @@ uc_composition (ucs4_t uc1, ucs4_t uc2)
                 }
             }
 #else
-          char codes[4];
+          char codes[6];
           const struct composition_rule *rule;
 
-          codes[0] = (uc1 >> 8) & 0xff;
-          codes[1] = uc1 & 0xff;
-          codes[2] = (uc2 >> 8) & 0xff;
-          codes[3] = uc2 & 0xff;
+          codes[0] = (uc1 >> 16) & 0xff;
+          codes[1] = (uc1 >> 8) & 0xff;
+          codes[2] = uc1 & 0xff;
+          codes[3] = (uc2 >> 16) & 0xff;
+          codes[4] = (uc2 >> 8) & 0xff;
+          codes[5] = uc2 & 0xff;
 
-          rule = gl_uninorm_compose_lookup (codes, 4);
+          rule = gl_uninorm_compose_lookup (codes, 6);
           if (rule != NULL)
             return rule->combined;
 #endif
index f9c2277..db63aba 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposition of Unicode strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index d952e2f..8019d0a 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposition of Unicode strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index a19f6d3..4b1e955 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposing variant of a normalization form.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index b19b47a..b01d15f 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposition of Unicode characters.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 9238ff9..172791c 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposition of Unicode characters.
-   Copyright (C) 2001-2003, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 4ac70f4..ccf1bec 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Decomposition of Unicode characters.  */
-/* Generated automatically by gen-uni-tables.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 
 extern const unsigned char gl_uninorm_decomp_chars_table[];
 
@@ -13,8 +13,8 @@ extern const unsigned char gl_uninorm_decomp_chars_table[];
 typedef struct
   {
     int level1[191];
-    int level2[18 << 5];
-    unsigned short level3[254 << 5];
+    int level2[20 << 5];
+    unsigned short level3[263 << 5];
   }
 decomp_index_table_t;
 extern const decomp_index_table_t gl_uninorm_decomp_index_table;
index f80f434..7cab0c8 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Decomposition of Unicode characters.  */
-/* Generated automatically by gen-uni-tables.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
 
 const unsigned char gl_uninorm_decomp_chars_table[] =
 {
@@ -520,6 +520,8 @@ const unsigned char gl_uninorm_decomp_chars_table[] =
   0x24, 0x00, 0x38, 0x24, 0x00, 0x39, 0x24, 0x00, 0x2B, 0x24, 0x22, 0x12,
   0x24, 0x00, 0x3D, 0x24, 0x00, 0x28, 0x24, 0x00, 0x29, 0x24, 0x00, 0x61,
   0x24, 0x00, 0x65, 0x24, 0x00, 0x6F, 0x24, 0x00, 0x78, 0x24, 0x02, 0x59,
+  0x24, 0x00, 0x68, 0x24, 0x00, 0x6B, 0x24, 0x00, 0x6C, 0x24, 0x00, 0x6D,
+  0x24, 0x00, 0x6E, 0x24, 0x00, 0x70, 0x24, 0x00, 0x73, 0x24, 0x00, 0x74,
   0xC0, 0x00, 0x52, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x61, 0x80, 0x00, 0x2F,
   0x00, 0x00, 0x63, 0xC0, 0x00, 0x61, 0x80, 0x00, 0x2F, 0x00, 0x00, 0x73,
   0x04, 0x00, 0x43, 0xC0, 0x00, 0xB0, 0x00, 0x00, 0x43, 0xC0, 0x00, 0x63,
@@ -539,630 +541,635 @@ const unsigned char gl_uninorm_decomp_chars_table[] =
   0x00, 0x00, 0x58, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xB3, 0x04, 0x03, 0x93,
   0x04, 0x03, 0xA0, 0x04, 0x22, 0x11, 0x04, 0x00, 0x44, 0x04, 0x00, 0x64,
   0x04, 0x00, 0x65, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0xBC, 0x00, 0x31,
-  0x80, 0x20, 0x44, 0x00, 0x00, 0x33, 0xBC, 0x00, 0x32, 0x80, 0x20, 0x44,
-  0x00, 0x00, 0x33, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x00, 0x00, 0x35,
-  0xBC, 0x00, 0x32, 0x80, 0x20, 0x44, 0x00, 0x00, 0x35, 0xBC, 0x00, 0x33,
-  0x80, 0x20, 0x44, 0x00, 0x00, 0x35, 0xBC, 0x00, 0x34, 0x80, 0x20, 0x44,
-  0x00, 0x00, 0x35, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x00, 0x00, 0x36,
-  0xBC, 0x00, 0x35, 0x80, 0x20, 0x44, 0x00, 0x00, 0x36, 0xBC, 0x00, 0x31,
-  0x80, 0x20, 0x44, 0x00, 0x00, 0x38, 0xBC, 0x00, 0x33, 0x80, 0x20, 0x44,
-  0x00, 0x00, 0x38, 0xBC, 0x00, 0x35, 0x80, 0x20, 0x44, 0x00, 0x00, 0x38,
-  0xBC, 0x00, 0x37, 0x80, 0x20, 0x44, 0x00, 0x00, 0x38, 0xBC, 0x00, 0x31,
-  0x00, 0x20, 0x44, 0x40, 0x00, 0x49, 0xC0, 0x00, 0x49, 0x00, 0x00, 0x49,
-  0xC0, 0x00, 0x49, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x49,
-  0x00, 0x00, 0x56, 0x40, 0x00, 0x56, 0xC0, 0x00, 0x56, 0x00, 0x00, 0x49,
-  0xC0, 0x00, 0x56, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x56,
-  0x80, 0x00, 0x49, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x49,
-  0x00, 0x00, 0x58, 0x40, 0x00, 0x58, 0xC0, 0x00, 0x58, 0x00, 0x00, 0x49,
-  0xC0, 0x00, 0x58, 0x80, 0x00, 0x49, 0x00, 0x00, 0x49, 0x40, 0x00, 0x4C,
-  0x40, 0x00, 0x43, 0x40, 0x00, 0x44, 0x40, 0x00, 0x4D, 0x40, 0x00, 0x69,
-  0xC0, 0x00, 0x69, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x69, 0x80, 0x00, 0x69,
-  0x00, 0x00, 0x69, 0xC0, 0x00, 0x69, 0x00, 0x00, 0x76, 0x40, 0x00, 0x76,
-  0xC0, 0x00, 0x76, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x76, 0x80, 0x00, 0x69,
-  0x00, 0x00, 0x69, 0xC0, 0x00, 0x76, 0x80, 0x00, 0x69, 0x80, 0x00, 0x69,
-  0x00, 0x00, 0x69, 0xC0, 0x00, 0x69, 0x00, 0x00, 0x78, 0x40, 0x00, 0x78,
-  0xC0, 0x00, 0x78, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x78, 0x80, 0x00, 0x69,
-  0x00, 0x00, 0x69, 0x40, 0x00, 0x6C, 0x40, 0x00, 0x63, 0x40, 0x00, 0x64,
-  0x40, 0x00, 0x6D, 0x80, 0x21, 0x90, 0x00, 0x03, 0x38, 0x80, 0x21, 0x92,
-  0x00, 0x03, 0x38, 0x80, 0x21, 0x94, 0x00, 0x03, 0x38, 0x80, 0x21, 0xD0,
-  0x00, 0x03, 0x38, 0x80, 0x21, 0xD4, 0x00, 0x03, 0x38, 0x80, 0x21, 0xD2,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x03, 0x00, 0x03, 0x38, 0x80, 0x22, 0x08,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x0B, 0x00, 0x03, 0x38, 0x80, 0x22, 0x23,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x25, 0x00, 0x03, 0x38, 0xC0, 0x22, 0x2B,
-  0x00, 0x22, 0x2B, 0xC0, 0x22, 0x2B, 0x80, 0x22, 0x2B, 0x00, 0x22, 0x2B,
-  0xC0, 0x22, 0x2E, 0x00, 0x22, 0x2E, 0xC0, 0x22, 0x2E, 0x80, 0x22, 0x2E,
-  0x00, 0x22, 0x2E, 0x80, 0x22, 0x3C, 0x00, 0x03, 0x38, 0x80, 0x22, 0x43,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x45, 0x00, 0x03, 0x38, 0x80, 0x22, 0x48,
-  0x00, 0x03, 0x38, 0x80, 0x00, 0x3D, 0x00, 0x03, 0x38, 0x80, 0x22, 0x61,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x4D, 0x00, 0x03, 0x38, 0x80, 0x00, 0x3C,
-  0x00, 0x03, 0x38, 0x80, 0x00, 0x3E, 0x00, 0x03, 0x38, 0x80, 0x22, 0x64,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x65, 0x00, 0x03, 0x38, 0x80, 0x22, 0x72,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x73, 0x00, 0x03, 0x38, 0x80, 0x22, 0x76,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x77, 0x00, 0x03, 0x38, 0x80, 0x22, 0x7A,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x7B, 0x00, 0x03, 0x38, 0x80, 0x22, 0x82,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x83, 0x00, 0x03, 0x38, 0x80, 0x22, 0x86,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x87, 0x00, 0x03, 0x38, 0x80, 0x22, 0xA2,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0xA8, 0x00, 0x03, 0x38, 0x80, 0x22, 0xA9,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0xAB, 0x00, 0x03, 0x38, 0x80, 0x22, 0x7C,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x7D, 0x00, 0x03, 0x38, 0x80, 0x22, 0x91,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0x92, 0x00, 0x03, 0x38, 0x80, 0x22, 0xB2,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0xB3, 0x00, 0x03, 0x38, 0x80, 0x22, 0xB4,
-  0x00, 0x03, 0x38, 0x80, 0x22, 0xB5, 0x00, 0x03, 0x38, 0x00, 0x30, 0x08,
-  0x00, 0x30, 0x09, 0x1C, 0x00, 0x31, 0x1C, 0x00, 0x32, 0x1C, 0x00, 0x33,
-  0x1C, 0x00, 0x34, 0x1C, 0x00, 0x35, 0x1C, 0x00, 0x36, 0x1C, 0x00, 0x37,
-  0x1C, 0x00, 0x38, 0x1C, 0x00, 0x39, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x30,
-  0x9C, 0x00, 0x31, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x32,
-  0x9C, 0x00, 0x31, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x34,
-  0x9C, 0x00, 0x31, 0x00, 0x00, 0x35, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x36,
-  0x9C, 0x00, 0x31, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x38,
-  0x9C, 0x00, 0x31, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x30,
-  0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x32, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x33,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x34, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x00, 0x35, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x36, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x37,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x38, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x00, 0x39, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x31, 0x80, 0x00, 0x32, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x31, 0x80, 0x00, 0x33, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x31, 0x80, 0x00, 0x36, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x31, 0x80, 0x00, 0x37, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x32, 0x80, 0x00, 0x30, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x31,
-  0x00, 0x00, 0x2E, 0xC0, 0x00, 0x32, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x33,
-  0x00, 0x00, 0x2E, 0xC0, 0x00, 0x34, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x35,
-  0x00, 0x00, 0x2E, 0xC0, 0x00, 0x36, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x37,
-  0x00, 0x00, 0x2E, 0xC0, 0x00, 0x38, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x39,
-  0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x00, 0x2E,
-  0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31,
-  0x80, 0x00, 0x32, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33,
-  0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x00, 0x2E,
-  0xC0, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31,
-  0x80, 0x00, 0x36, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37,
-  0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x00, 0x2E,
-  0xC0, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x32,
-  0x80, 0x00, 0x30, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x62, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x00, 0x63, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x64, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x65,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x66, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x00, 0x67, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x68, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x69,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6A, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x00, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x6C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6D,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6E, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x00, 0x6F, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x70, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x71,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x72, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x00, 0x73, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x74, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x75,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x76, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x00, 0x77, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x00, 0x78, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x79,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x7A, 0x00, 0x00, 0x29,
-  0x1C, 0x00, 0x41, 0x1C, 0x00, 0x42, 0x1C, 0x00, 0x43, 0x1C, 0x00, 0x44,
-  0x1C, 0x00, 0x45, 0x1C, 0x00, 0x46, 0x1C, 0x00, 0x47, 0x1C, 0x00, 0x48,
-  0x1C, 0x00, 0x49, 0x1C, 0x00, 0x4A, 0x1C, 0x00, 0x4B, 0x1C, 0x00, 0x4C,
-  0x1C, 0x00, 0x4D, 0x1C, 0x00, 0x4E, 0x1C, 0x00, 0x4F, 0x1C, 0x00, 0x50,
-  0x1C, 0x00, 0x51, 0x1C, 0x00, 0x52, 0x1C, 0x00, 0x53, 0x1C, 0x00, 0x54,
-  0x1C, 0x00, 0x55, 0x1C, 0x00, 0x56, 0x1C, 0x00, 0x57, 0x1C, 0x00, 0x58,
-  0x1C, 0x00, 0x59, 0x1C, 0x00, 0x5A, 0x1C, 0x00, 0x61, 0x1C, 0x00, 0x62,
-  0x1C, 0x00, 0x63, 0x1C, 0x00, 0x64, 0x1C, 0x00, 0x65, 0x1C, 0x00, 0x66,
-  0x1C, 0x00, 0x67, 0x1C, 0x00, 0x68, 0x1C, 0x00, 0x69, 0x1C, 0x00, 0x6A,
-  0x1C, 0x00, 0x6B, 0x1C, 0x00, 0x6C, 0x1C, 0x00, 0x6D, 0x1C, 0x00, 0x6E,
-  0x1C, 0x00, 0x6F, 0x1C, 0x00, 0x70, 0x1C, 0x00, 0x71, 0x1C, 0x00, 0x72,
-  0x1C, 0x00, 0x73, 0x1C, 0x00, 0x74, 0x1C, 0x00, 0x75, 0x1C, 0x00, 0x76,
-  0x1C, 0x00, 0x77, 0x1C, 0x00, 0x78, 0x1C, 0x00, 0x79, 0x1C, 0x00, 0x7A,
-  0x1C, 0x00, 0x30, 0xC0, 0x22, 0x2B, 0x80, 0x22, 0x2B, 0x80, 0x22, 0x2B,
-  0x00, 0x22, 0x2B, 0xC0, 0x00, 0x3A, 0x80, 0x00, 0x3A, 0x00, 0x00, 0x3D,
-  0xC0, 0x00, 0x3D, 0x00, 0x00, 0x3D, 0xC0, 0x00, 0x3D, 0x80, 0x00, 0x3D,
-  0x00, 0x00, 0x3D, 0x80, 0x2A, 0xDD, 0x00, 0x03, 0x38, 0x24, 0x00, 0x6A,
-  0x20, 0x00, 0x56, 0x20, 0x2D, 0x61, 0x40, 0x6B, 0xCD, 0x40, 0x9F, 0x9F,
-  0x40, 0x4E, 0x00, 0x40, 0x4E, 0x28, 0x40, 0x4E, 0x36, 0x40, 0x4E, 0x3F,
-  0x40, 0x4E, 0x59, 0x40, 0x4E, 0x85, 0x40, 0x4E, 0x8C, 0x40, 0x4E, 0xA0,
-  0x40, 0x4E, 0xBA, 0x40, 0x51, 0x3F, 0x40, 0x51, 0x65, 0x40, 0x51, 0x6B,
-  0x40, 0x51, 0x82, 0x40, 0x51, 0x96, 0x40, 0x51, 0xAB, 0x40, 0x51, 0xE0,
-  0x40, 0x51, 0xF5, 0x40, 0x52, 0x00, 0x40, 0x52, 0x9B, 0x40, 0x52, 0xF9,
-  0x40, 0x53, 0x15, 0x40, 0x53, 0x1A, 0x40, 0x53, 0x38, 0x40, 0x53, 0x41,
-  0x40, 0x53, 0x5C, 0x40, 0x53, 0x69, 0x40, 0x53, 0x82, 0x40, 0x53, 0xB6,
-  0x40, 0x53, 0xC8, 0x40, 0x53, 0xE3, 0x40, 0x56, 0xD7, 0x40, 0x57, 0x1F,
-  0x40, 0x58, 0xEB, 0x40, 0x59, 0x02, 0x40, 0x59, 0x0A, 0x40, 0x59, 0x15,
-  0x40, 0x59, 0x27, 0x40, 0x59, 0x73, 0x40, 0x5B, 0x50, 0x40, 0x5B, 0x80,
-  0x40, 0x5B, 0xF8, 0x40, 0x5C, 0x0F, 0x40, 0x5C, 0x22, 0x40, 0x5C, 0x38,
-  0x40, 0x5C, 0x6E, 0x40, 0x5C, 0x71, 0x40, 0x5D, 0xDB, 0x40, 0x5D, 0xE5,
-  0x40, 0x5D, 0xF1, 0x40, 0x5D, 0xFE, 0x40, 0x5E, 0x72, 0x40, 0x5E, 0x7A,
-  0x40, 0x5E, 0x7F, 0x40, 0x5E, 0xF4, 0x40, 0x5E, 0xFE, 0x40, 0x5F, 0x0B,
-  0x40, 0x5F, 0x13, 0x40, 0x5F, 0x50, 0x40, 0x5F, 0x61, 0x40, 0x5F, 0x73,
-  0x40, 0x5F, 0xC3, 0x40, 0x62, 0x08, 0x40, 0x62, 0x36, 0x40, 0x62, 0x4B,
-  0x40, 0x65, 0x2F, 0x40, 0x65, 0x34, 0x40, 0x65, 0x87, 0x40, 0x65, 0x97,
-  0x40, 0x65, 0xA4, 0x40, 0x65, 0xB9, 0x40, 0x65, 0xE0, 0x40, 0x65, 0xE5,
-  0x40, 0x66, 0xF0, 0x40, 0x67, 0x08, 0x40, 0x67, 0x28, 0x40, 0x6B, 0x20,
-  0x40, 0x6B, 0x62, 0x40, 0x6B, 0x79, 0x40, 0x6B, 0xB3, 0x40, 0x6B, 0xCB,
-  0x40, 0x6B, 0xD4, 0x40, 0x6B, 0xDB, 0x40, 0x6C, 0x0F, 0x40, 0x6C, 0x14,
-  0x40, 0x6C, 0x34, 0x40, 0x70, 0x6B, 0x40, 0x72, 0x2A, 0x40, 0x72, 0x36,
-  0x40, 0x72, 0x3B, 0x40, 0x72, 0x3F, 0x40, 0x72, 0x47, 0x40, 0x72, 0x59,
-  0x40, 0x72, 0x5B, 0x40, 0x72, 0xAC, 0x40, 0x73, 0x84, 0x40, 0x73, 0x89,
-  0x40, 0x74, 0xDC, 0x40, 0x74, 0xE6, 0x40, 0x75, 0x18, 0x40, 0x75, 0x1F,
-  0x40, 0x75, 0x28, 0x40, 0x75, 0x30, 0x40, 0x75, 0x8B, 0x40, 0x75, 0x92,
-  0x40, 0x76, 0x76, 0x40, 0x76, 0x7D, 0x40, 0x76, 0xAE, 0x40, 0x76, 0xBF,
-  0x40, 0x76, 0xEE, 0x40, 0x77, 0xDB, 0x40, 0x77, 0xE2, 0x40, 0x77, 0xF3,
-  0x40, 0x79, 0x3A, 0x40, 0x79, 0xB8, 0x40, 0x79, 0xBE, 0x40, 0x7A, 0x74,
-  0x40, 0x7A, 0xCB, 0x40, 0x7A, 0xF9, 0x40, 0x7C, 0x73, 0x40, 0x7C, 0xF8,
-  0x40, 0x7F, 0x36, 0x40, 0x7F, 0x51, 0x40, 0x7F, 0x8A, 0x40, 0x7F, 0xBD,
-  0x40, 0x80, 0x01, 0x40, 0x80, 0x0C, 0x40, 0x80, 0x12, 0x40, 0x80, 0x33,
-  0x40, 0x80, 0x7F, 0x40, 0x80, 0x89, 0x40, 0x81, 0xE3, 0x40, 0x81, 0xEA,
-  0x40, 0x81, 0xF3, 0x40, 0x81, 0xFC, 0x40, 0x82, 0x0C, 0x40, 0x82, 0x1B,
-  0x40, 0x82, 0x1F, 0x40, 0x82, 0x6E, 0x40, 0x82, 0x72, 0x40, 0x82, 0x78,
-  0x40, 0x86, 0x4D, 0x40, 0x86, 0x6B, 0x40, 0x88, 0x40, 0x40, 0x88, 0x4C,
-  0x40, 0x88, 0x63, 0x40, 0x89, 0x7E, 0x40, 0x89, 0x8B, 0x40, 0x89, 0xD2,
-  0x40, 0x8A, 0x00, 0x40, 0x8C, 0x37, 0x40, 0x8C, 0x46, 0x40, 0x8C, 0x55,
-  0x40, 0x8C, 0x78, 0x40, 0x8C, 0x9D, 0x40, 0x8D, 0x64, 0x40, 0x8D, 0x70,
-  0x40, 0x8D, 0xB3, 0x40, 0x8E, 0xAB, 0x40, 0x8E, 0xCA, 0x40, 0x8F, 0x9B,
-  0x40, 0x8F, 0xB0, 0x40, 0x8F, 0xB5, 0x40, 0x90, 0x91, 0x40, 0x91, 0x49,
-  0x40, 0x91, 0xC6, 0x40, 0x91, 0xCC, 0x40, 0x91, 0xD1, 0x40, 0x95, 0x77,
-  0x40, 0x95, 0x80, 0x40, 0x96, 0x1C, 0x40, 0x96, 0xB6, 0x40, 0x96, 0xB9,
-  0x40, 0x96, 0xE8, 0x40, 0x97, 0x51, 0x40, 0x97, 0x5E, 0x40, 0x97, 0x62,
-  0x40, 0x97, 0x69, 0x40, 0x97, 0xCB, 0x40, 0x97, 0xED, 0x40, 0x97, 0xF3,
-  0x40, 0x98, 0x01, 0x40, 0x98, 0xA8, 0x40, 0x98, 0xDB, 0x40, 0x98, 0xDF,
-  0x40, 0x99, 0x96, 0x40, 0x99, 0x99, 0x40, 0x99, 0xAC, 0x40, 0x9A, 0xA8,
-  0x40, 0x9A, 0xD8, 0x40, 0x9A, 0xDF, 0x40, 0x9B, 0x25, 0x40, 0x9B, 0x2F,
-  0x40, 0x9B, 0x32, 0x40, 0x9B, 0x3C, 0x40, 0x9B, 0x5A, 0x40, 0x9C, 0xE5,
-  0x40, 0x9E, 0x75, 0x40, 0x9E, 0x7F, 0x40, 0x9E, 0xA5, 0x40, 0x9E, 0xBB,
-  0x40, 0x9E, 0xC3, 0x40, 0x9E, 0xCD, 0x40, 0x9E, 0xD1, 0x40, 0x9E, 0xF9,
-  0x40, 0x9E, 0xFD, 0x40, 0x9F, 0x0E, 0x40, 0x9F, 0x13, 0x40, 0x9F, 0x20,
-  0x40, 0x9F, 0x3B, 0x40, 0x9F, 0x4A, 0x40, 0x9F, 0x52, 0x40, 0x9F, 0x8D,
-  0x40, 0x9F, 0x9C, 0x40, 0x9F, 0xA0, 0x2C, 0x00, 0x20, 0x40, 0x30, 0x12,
-  0x40, 0x53, 0x41, 0x40, 0x53, 0x44, 0x40, 0x53, 0x45, 0x80, 0x30, 0x4B,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0x4D, 0x00, 0x30, 0x99, 0x80, 0x30, 0x4F,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0x51, 0x00, 0x30, 0x99, 0x80, 0x30, 0x53,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0x55, 0x00, 0x30, 0x99, 0x80, 0x30, 0x57,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0x59, 0x00, 0x30, 0x99, 0x80, 0x30, 0x5B,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0x5D, 0x00, 0x30, 0x99, 0x80, 0x30, 0x5F,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0x61, 0x00, 0x30, 0x99, 0x80, 0x30, 0x64,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0x66, 0x00, 0x30, 0x99, 0x80, 0x30, 0x68,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0x6F, 0x00, 0x30, 0x99, 0x80, 0x30, 0x6F,
-  0x00, 0x30, 0x9A, 0x80, 0x30, 0x72, 0x00, 0x30, 0x99, 0x80, 0x30, 0x72,
-  0x00, 0x30, 0x9A, 0x80, 0x30, 0x75, 0x00, 0x30, 0x99, 0x80, 0x30, 0x75,
-  0x00, 0x30, 0x9A, 0x80, 0x30, 0x78, 0x00, 0x30, 0x99, 0x80, 0x30, 0x78,
-  0x00, 0x30, 0x9A, 0x80, 0x30, 0x7B, 0x00, 0x30, 0x99, 0x80, 0x30, 0x7B,
-  0x00, 0x30, 0x9A, 0x80, 0x30, 0x46, 0x00, 0x30, 0x99, 0xC0, 0x00, 0x20,
-  0x00, 0x30, 0x99, 0xC0, 0x00, 0x20, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x9D,
-  0x00, 0x30, 0x99, 0xA8, 0x30, 0x88, 0x00, 0x30, 0x8A, 0x80, 0x30, 0xAB,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0xAD, 0x00, 0x30, 0x99, 0x80, 0x30, 0xAF,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0xB1, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB3,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0xB5, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB7,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0xB9, 0x00, 0x30, 0x99, 0x80, 0x30, 0xBB,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0xBD, 0x00, 0x30, 0x99, 0x80, 0x30, 0xBF,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0xC1, 0x00, 0x30, 0x99, 0x80, 0x30, 0xC4,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0xC6, 0x00, 0x30, 0x99, 0x80, 0x30, 0xC8,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0xCF, 0x00, 0x30, 0x99, 0x80, 0x30, 0xCF,
-  0x00, 0x30, 0x9A, 0x80, 0x30, 0xD2, 0x00, 0x30, 0x99, 0x80, 0x30, 0xD2,
-  0x00, 0x30, 0x9A, 0x80, 0x30, 0xD5, 0x00, 0x30, 0x99, 0x80, 0x30, 0xD5,
-  0x00, 0x30, 0x9A, 0x80, 0x30, 0xD8, 0x00, 0x30, 0x99, 0x80, 0x30, 0xD8,
-  0x00, 0x30, 0x9A, 0x80, 0x30, 0xDB, 0x00, 0x30, 0x99, 0x80, 0x30, 0xDB,
-  0x00, 0x30, 0x9A, 0x80, 0x30, 0xA6, 0x00, 0x30, 0x99, 0x80, 0x30, 0xEF,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0xF0, 0x00, 0x30, 0x99, 0x80, 0x30, 0xF1,
-  0x00, 0x30, 0x99, 0x80, 0x30, 0xF2, 0x00, 0x30, 0x99, 0x80, 0x30, 0xFD,
-  0x00, 0x30, 0x99, 0xA8, 0x30, 0xB3, 0x00, 0x30, 0xC8, 0x40, 0x11, 0x00,
-  0x40, 0x11, 0x01, 0x40, 0x11, 0xAA, 0x40, 0x11, 0x02, 0x40, 0x11, 0xAC,
-  0x40, 0x11, 0xAD, 0x40, 0x11, 0x03, 0x40, 0x11, 0x04, 0x40, 0x11, 0x05,
-  0x40, 0x11, 0xB0, 0x40, 0x11, 0xB1, 0x40, 0x11, 0xB2, 0x40, 0x11, 0xB3,
-  0x40, 0x11, 0xB4, 0x40, 0x11, 0xB5, 0x40, 0x11, 0x1A, 0x40, 0x11, 0x06,
-  0x40, 0x11, 0x07, 0x40, 0x11, 0x08, 0x40, 0x11, 0x21, 0x40, 0x11, 0x09,
-  0x40, 0x11, 0x0A, 0x40, 0x11, 0x0B, 0x40, 0x11, 0x0C, 0x40, 0x11, 0x0D,
-  0x40, 0x11, 0x0E, 0x40, 0x11, 0x0F, 0x40, 0x11, 0x10, 0x40, 0x11, 0x11,
-  0x40, 0x11, 0x12, 0x40, 0x11, 0x61, 0x40, 0x11, 0x62, 0x40, 0x11, 0x63,
-  0x40, 0x11, 0x64, 0x40, 0x11, 0x65, 0x40, 0x11, 0x66, 0x40, 0x11, 0x67,
-  0x40, 0x11, 0x68, 0x40, 0x11, 0x69, 0x40, 0x11, 0x6A, 0x40, 0x11, 0x6B,
-  0x40, 0x11, 0x6C, 0x40, 0x11, 0x6D, 0x40, 0x11, 0x6E, 0x40, 0x11, 0x6F,
-  0x40, 0x11, 0x70, 0x40, 0x11, 0x71, 0x40, 0x11, 0x72, 0x40, 0x11, 0x73,
-  0x40, 0x11, 0x74, 0x40, 0x11, 0x75, 0x40, 0x11, 0x60, 0x40, 0x11, 0x14,
-  0x40, 0x11, 0x15, 0x40, 0x11, 0xC7, 0x40, 0x11, 0xC8, 0x40, 0x11, 0xCC,
-  0x40, 0x11, 0xCE, 0x40, 0x11, 0xD3, 0x40, 0x11, 0xD7, 0x40, 0x11, 0xD9,
-  0x40, 0x11, 0x1C, 0x40, 0x11, 0xDD, 0x40, 0x11, 0xDF, 0x40, 0x11, 0x1D,
-  0x40, 0x11, 0x1E, 0x40, 0x11, 0x20, 0x40, 0x11, 0x22, 0x40, 0x11, 0x23,
-  0x40, 0x11, 0x27, 0x40, 0x11, 0x29, 0x40, 0x11, 0x2B, 0x40, 0x11, 0x2C,
-  0x40, 0x11, 0x2D, 0x40, 0x11, 0x2E, 0x40, 0x11, 0x2F, 0x40, 0x11, 0x32,
-  0x40, 0x11, 0x36, 0x40, 0x11, 0x40, 0x40, 0x11, 0x47, 0x40, 0x11, 0x4C,
-  0x40, 0x11, 0xF1, 0x40, 0x11, 0xF2, 0x40, 0x11, 0x57, 0x40, 0x11, 0x58,
-  0x40, 0x11, 0x59, 0x40, 0x11, 0x84, 0x40, 0x11, 0x85, 0x40, 0x11, 0x88,
-  0x40, 0x11, 0x91, 0x40, 0x11, 0x92, 0x40, 0x11, 0x94, 0x40, 0x11, 0x9E,
-  0x40, 0x11, 0xA1, 0x20, 0x4E, 0x00, 0x20, 0x4E, 0x8C, 0x20, 0x4E, 0x09,
-  0x20, 0x56, 0xDB, 0x20, 0x4E, 0x0A, 0x20, 0x4E, 0x2D, 0x20, 0x4E, 0x0B,
-  0x20, 0x75, 0x32, 0x20, 0x4E, 0x59, 0x20, 0x4E, 0x19, 0x20, 0x4E, 0x01,
-  0x20, 0x59, 0x29, 0x20, 0x57, 0x30, 0x20, 0x4E, 0xBA, 0xC0, 0x00, 0x28,
-  0x80, 0x11, 0x00, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x02,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x03, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x11, 0x05, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x11, 0x06, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x07,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x09, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x11, 0x0C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0E,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0F, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x11, 0x10, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x11, 0x11, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x12,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x00, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x02, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x03, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x05, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x06, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x07, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x09, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0E, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0F, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x10, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x11, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x12, 0x80, 0x11, 0x61,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C, 0x80, 0x11, 0x6E,
+  0x80, 0x20, 0x44, 0x00, 0x00, 0x37, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44,
+  0x00, 0x00, 0x39, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x80, 0x00, 0x31,
+  0x00, 0x00, 0x30, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x00, 0x00, 0x33,
+  0xBC, 0x00, 0x32, 0x80, 0x20, 0x44, 0x00, 0x00, 0x33, 0xBC, 0x00, 0x31,
+  0x80, 0x20, 0x44, 0x00, 0x00, 0x35, 0xBC, 0x00, 0x32, 0x80, 0x20, 0x44,
+  0x00, 0x00, 0x35, 0xBC, 0x00, 0x33, 0x80, 0x20, 0x44, 0x00, 0x00, 0x35,
+  0xBC, 0x00, 0x34, 0x80, 0x20, 0x44, 0x00, 0x00, 0x35, 0xBC, 0x00, 0x31,
+  0x80, 0x20, 0x44, 0x00, 0x00, 0x36, 0xBC, 0x00, 0x35, 0x80, 0x20, 0x44,
+  0x00, 0x00, 0x36, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x00, 0x00, 0x38,
+  0xBC, 0x00, 0x33, 0x80, 0x20, 0x44, 0x00, 0x00, 0x38, 0xBC, 0x00, 0x35,
+  0x80, 0x20, 0x44, 0x00, 0x00, 0x38, 0xBC, 0x00, 0x37, 0x80, 0x20, 0x44,
+  0x00, 0x00, 0x38, 0xBC, 0x00, 0x31, 0x00, 0x20, 0x44, 0x40, 0x00, 0x49,
+  0xC0, 0x00, 0x49, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x49, 0x80, 0x00, 0x49,
+  0x00, 0x00, 0x49, 0xC0, 0x00, 0x49, 0x00, 0x00, 0x56, 0x40, 0x00, 0x56,
+  0xC0, 0x00, 0x56, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x56, 0x80, 0x00, 0x49,
+  0x00, 0x00, 0x49, 0xC0, 0x00, 0x56, 0x80, 0x00, 0x49, 0x80, 0x00, 0x49,
+  0x00, 0x00, 0x49, 0xC0, 0x00, 0x49, 0x00, 0x00, 0x58, 0x40, 0x00, 0x58,
+  0xC0, 0x00, 0x58, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x58, 0x80, 0x00, 0x49,
+  0x00, 0x00, 0x49, 0x40, 0x00, 0x4C, 0x40, 0x00, 0x43, 0x40, 0x00, 0x44,
+  0x40, 0x00, 0x4D, 0x40, 0x00, 0x69, 0xC0, 0x00, 0x69, 0x00, 0x00, 0x69,
+  0xC0, 0x00, 0x69, 0x80, 0x00, 0x69, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x69,
+  0x00, 0x00, 0x76, 0x40, 0x00, 0x76, 0xC0, 0x00, 0x76, 0x00, 0x00, 0x69,
+  0xC0, 0x00, 0x76, 0x80, 0x00, 0x69, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x76,
+  0x80, 0x00, 0x69, 0x80, 0x00, 0x69, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x69,
+  0x00, 0x00, 0x78, 0x40, 0x00, 0x78, 0xC0, 0x00, 0x78, 0x00, 0x00, 0x69,
+  0xC0, 0x00, 0x78, 0x80, 0x00, 0x69, 0x00, 0x00, 0x69, 0x40, 0x00, 0x6C,
+  0x40, 0x00, 0x63, 0x40, 0x00, 0x64, 0x40, 0x00, 0x6D, 0xBC, 0x00, 0x30,
+  0x80, 0x20, 0x44, 0x00, 0x00, 0x33, 0x80, 0x21, 0x90, 0x00, 0x03, 0x38,
+  0x80, 0x21, 0x92, 0x00, 0x03, 0x38, 0x80, 0x21, 0x94, 0x00, 0x03, 0x38,
+  0x80, 0x21, 0xD0, 0x00, 0x03, 0x38, 0x80, 0x21, 0xD4, 0x00, 0x03, 0x38,
+  0x80, 0x21, 0xD2, 0x00, 0x03, 0x38, 0x80, 0x22, 0x03, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x08, 0x00, 0x03, 0x38, 0x80, 0x22, 0x0B, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x23, 0x00, 0x03, 0x38, 0x80, 0x22, 0x25, 0x00, 0x03, 0x38,
+  0xC0, 0x22, 0x2B, 0x00, 0x22, 0x2B, 0xC0, 0x22, 0x2B, 0x80, 0x22, 0x2B,
+  0x00, 0x22, 0x2B, 0xC0, 0x22, 0x2E, 0x00, 0x22, 0x2E, 0xC0, 0x22, 0x2E,
+  0x80, 0x22, 0x2E, 0x00, 0x22, 0x2E, 0x80, 0x22, 0x3C, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x43, 0x00, 0x03, 0x38, 0x80, 0x22, 0x45, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x48, 0x00, 0x03, 0x38, 0x80, 0x00, 0x3D, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x61, 0x00, 0x03, 0x38, 0x80, 0x22, 0x4D, 0x00, 0x03, 0x38,
+  0x80, 0x00, 0x3C, 0x00, 0x03, 0x38, 0x80, 0x00, 0x3E, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x64, 0x00, 0x03, 0x38, 0x80, 0x22, 0x65, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x72, 0x00, 0x03, 0x38, 0x80, 0x22, 0x73, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x76, 0x00, 0x03, 0x38, 0x80, 0x22, 0x77, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x7A, 0x00, 0x03, 0x38, 0x80, 0x22, 0x7B, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x82, 0x00, 0x03, 0x38, 0x80, 0x22, 0x83, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x86, 0x00, 0x03, 0x38, 0x80, 0x22, 0x87, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0xA2, 0x00, 0x03, 0x38, 0x80, 0x22, 0xA8, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0xA9, 0x00, 0x03, 0x38, 0x80, 0x22, 0xAB, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x7C, 0x00, 0x03, 0x38, 0x80, 0x22, 0x7D, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0x91, 0x00, 0x03, 0x38, 0x80, 0x22, 0x92, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0xB2, 0x00, 0x03, 0x38, 0x80, 0x22, 0xB3, 0x00, 0x03, 0x38,
+  0x80, 0x22, 0xB4, 0x00, 0x03, 0x38, 0x80, 0x22, 0xB5, 0x00, 0x03, 0x38,
+  0x00, 0x30, 0x08, 0x00, 0x30, 0x09, 0x1C, 0x00, 0x31, 0x1C, 0x00, 0x32,
+  0x1C, 0x00, 0x33, 0x1C, 0x00, 0x34, 0x1C, 0x00, 0x35, 0x1C, 0x00, 0x36,
+  0x1C, 0x00, 0x37, 0x1C, 0x00, 0x38, 0x1C, 0x00, 0x39, 0x9C, 0x00, 0x31,
+  0x00, 0x00, 0x30, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x31,
+  0x00, 0x00, 0x32, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x31,
+  0x00, 0x00, 0x34, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x35, 0x9C, 0x00, 0x31,
+  0x00, 0x00, 0x36, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x31,
+  0x00, 0x00, 0x38, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x32,
+  0x00, 0x00, 0x30, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x32, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x33, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x34,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x35, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x36, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x37, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x38,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x39, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x32, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x33, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x36, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x37, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x32, 0x80, 0x00, 0x30, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x31, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x32, 0x00, 0x00, 0x2E,
+  0xC0, 0x00, 0x33, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x34, 0x00, 0x00, 0x2E,
+  0xC0, 0x00, 0x35, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x36, 0x00, 0x00, 0x2E,
+  0xC0, 0x00, 0x37, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x38, 0x00, 0x00, 0x2E,
+  0xC0, 0x00, 0x39, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30,
+  0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x00, 0x2E,
+  0xC0, 0x00, 0x31, 0x80, 0x00, 0x32, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31,
+  0x80, 0x00, 0x33, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34,
+  0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x00, 0x2E,
+  0xC0, 0x00, 0x31, 0x80, 0x00, 0x36, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31,
+  0x80, 0x00, 0x37, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38,
+  0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x00, 0x2E,
+  0xC0, 0x00, 0x32, 0x80, 0x00, 0x30, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x62,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x63, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x64, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x65, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x66,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x67, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x68, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x69, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6A,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6B, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x6C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x6D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6E,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6F, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x70, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x71, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x72,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x73, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x74, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x75, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x76,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x77, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x78, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x79, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x7A,
+  0x00, 0x00, 0x29, 0x1C, 0x00, 0x41, 0x1C, 0x00, 0x42, 0x1C, 0x00, 0x43,
+  0x1C, 0x00, 0x44, 0x1C, 0x00, 0x45, 0x1C, 0x00, 0x46, 0x1C, 0x00, 0x47,
+  0x1C, 0x00, 0x48, 0x1C, 0x00, 0x49, 0x1C, 0x00, 0x4A, 0x1C, 0x00, 0x4B,
+  0x1C, 0x00, 0x4C, 0x1C, 0x00, 0x4D, 0x1C, 0x00, 0x4E, 0x1C, 0x00, 0x4F,
+  0x1C, 0x00, 0x50, 0x1C, 0x00, 0x51, 0x1C, 0x00, 0x52, 0x1C, 0x00, 0x53,
+  0x1C, 0x00, 0x54, 0x1C, 0x00, 0x55, 0x1C, 0x00, 0x56, 0x1C, 0x00, 0x57,
+  0x1C, 0x00, 0x58, 0x1C, 0x00, 0x59, 0x1C, 0x00, 0x5A, 0x1C, 0x00, 0x61,
+  0x1C, 0x00, 0x62, 0x1C, 0x00, 0x63, 0x1C, 0x00, 0x64, 0x1C, 0x00, 0x65,
+  0x1C, 0x00, 0x66, 0x1C, 0x00, 0x67, 0x1C, 0x00, 0x68, 0x1C, 0x00, 0x69,
+  0x1C, 0x00, 0x6A, 0x1C, 0x00, 0x6B, 0x1C, 0x00, 0x6C, 0x1C, 0x00, 0x6D,
+  0x1C, 0x00, 0x6E, 0x1C, 0x00, 0x6F, 0x1C, 0x00, 0x70, 0x1C, 0x00, 0x71,
+  0x1C, 0x00, 0x72, 0x1C, 0x00, 0x73, 0x1C, 0x00, 0x74, 0x1C, 0x00, 0x75,
+  0x1C, 0x00, 0x76, 0x1C, 0x00, 0x77, 0x1C, 0x00, 0x78, 0x1C, 0x00, 0x79,
+  0x1C, 0x00, 0x7A, 0x1C, 0x00, 0x30, 0xC0, 0x22, 0x2B, 0x80, 0x22, 0x2B,
+  0x80, 0x22, 0x2B, 0x00, 0x22, 0x2B, 0xC0, 0x00, 0x3A, 0x80, 0x00, 0x3A,
+  0x00, 0x00, 0x3D, 0xC0, 0x00, 0x3D, 0x00, 0x00, 0x3D, 0xC0, 0x00, 0x3D,
+  0x80, 0x00, 0x3D, 0x00, 0x00, 0x3D, 0x80, 0x2A, 0xDD, 0x00, 0x03, 0x38,
+  0x24, 0x00, 0x6A, 0x20, 0x00, 0x56, 0x20, 0x2D, 0x61, 0x40, 0x6B, 0xCD,
+  0x40, 0x9F, 0x9F, 0x40, 0x4E, 0x00, 0x40, 0x4E, 0x28, 0x40, 0x4E, 0x36,
+  0x40, 0x4E, 0x3F, 0x40, 0x4E, 0x59, 0x40, 0x4E, 0x85, 0x40, 0x4E, 0x8C,
+  0x40, 0x4E, 0xA0, 0x40, 0x4E, 0xBA, 0x40, 0x51, 0x3F, 0x40, 0x51, 0x65,
+  0x40, 0x51, 0x6B, 0x40, 0x51, 0x82, 0x40, 0x51, 0x96, 0x40, 0x51, 0xAB,
+  0x40, 0x51, 0xE0, 0x40, 0x51, 0xF5, 0x40, 0x52, 0x00, 0x40, 0x52, 0x9B,
+  0x40, 0x52, 0xF9, 0x40, 0x53, 0x15, 0x40, 0x53, 0x1A, 0x40, 0x53, 0x38,
+  0x40, 0x53, 0x41, 0x40, 0x53, 0x5C, 0x40, 0x53, 0x69, 0x40, 0x53, 0x82,
+  0x40, 0x53, 0xB6, 0x40, 0x53, 0xC8, 0x40, 0x53, 0xE3, 0x40, 0x56, 0xD7,
+  0x40, 0x57, 0x1F, 0x40, 0x58, 0xEB, 0x40, 0x59, 0x02, 0x40, 0x59, 0x0A,
+  0x40, 0x59, 0x15, 0x40, 0x59, 0x27, 0x40, 0x59, 0x73, 0x40, 0x5B, 0x50,
+  0x40, 0x5B, 0x80, 0x40, 0x5B, 0xF8, 0x40, 0x5C, 0x0F, 0x40, 0x5C, 0x22,
+  0x40, 0x5C, 0x38, 0x40, 0x5C, 0x6E, 0x40, 0x5C, 0x71, 0x40, 0x5D, 0xDB,
+  0x40, 0x5D, 0xE5, 0x40, 0x5D, 0xF1, 0x40, 0x5D, 0xFE, 0x40, 0x5E, 0x72,
+  0x40, 0x5E, 0x7A, 0x40, 0x5E, 0x7F, 0x40, 0x5E, 0xF4, 0x40, 0x5E, 0xFE,
+  0x40, 0x5F, 0x0B, 0x40, 0x5F, 0x13, 0x40, 0x5F, 0x50, 0x40, 0x5F, 0x61,
+  0x40, 0x5F, 0x73, 0x40, 0x5F, 0xC3, 0x40, 0x62, 0x08, 0x40, 0x62, 0x36,
+  0x40, 0x62, 0x4B, 0x40, 0x65, 0x2F, 0x40, 0x65, 0x34, 0x40, 0x65, 0x87,
+  0x40, 0x65, 0x97, 0x40, 0x65, 0xA4, 0x40, 0x65, 0xB9, 0x40, 0x65, 0xE0,
+  0x40, 0x65, 0xE5, 0x40, 0x66, 0xF0, 0x40, 0x67, 0x08, 0x40, 0x67, 0x28,
+  0x40, 0x6B, 0x20, 0x40, 0x6B, 0x62, 0x40, 0x6B, 0x79, 0x40, 0x6B, 0xB3,
+  0x40, 0x6B, 0xCB, 0x40, 0x6B, 0xD4, 0x40, 0x6B, 0xDB, 0x40, 0x6C, 0x0F,
+  0x40, 0x6C, 0x14, 0x40, 0x6C, 0x34, 0x40, 0x70, 0x6B, 0x40, 0x72, 0x2A,
+  0x40, 0x72, 0x36, 0x40, 0x72, 0x3B, 0x40, 0x72, 0x3F, 0x40, 0x72, 0x47,
+  0x40, 0x72, 0x59, 0x40, 0x72, 0x5B, 0x40, 0x72, 0xAC, 0x40, 0x73, 0x84,
+  0x40, 0x73, 0x89, 0x40, 0x74, 0xDC, 0x40, 0x74, 0xE6, 0x40, 0x75, 0x18,
+  0x40, 0x75, 0x1F, 0x40, 0x75, 0x28, 0x40, 0x75, 0x30, 0x40, 0x75, 0x8B,
+  0x40, 0x75, 0x92, 0x40, 0x76, 0x76, 0x40, 0x76, 0x7D, 0x40, 0x76, 0xAE,
+  0x40, 0x76, 0xBF, 0x40, 0x76, 0xEE, 0x40, 0x77, 0xDB, 0x40, 0x77, 0xE2,
+  0x40, 0x77, 0xF3, 0x40, 0x79, 0x3A, 0x40, 0x79, 0xB8, 0x40, 0x79, 0xBE,
+  0x40, 0x7A, 0x74, 0x40, 0x7A, 0xCB, 0x40, 0x7A, 0xF9, 0x40, 0x7C, 0x73,
+  0x40, 0x7C, 0xF8, 0x40, 0x7F, 0x36, 0x40, 0x7F, 0x51, 0x40, 0x7F, 0x8A,
+  0x40, 0x7F, 0xBD, 0x40, 0x80, 0x01, 0x40, 0x80, 0x0C, 0x40, 0x80, 0x12,
+  0x40, 0x80, 0x33, 0x40, 0x80, 0x7F, 0x40, 0x80, 0x89, 0x40, 0x81, 0xE3,
+  0x40, 0x81, 0xEA, 0x40, 0x81, 0xF3, 0x40, 0x81, 0xFC, 0x40, 0x82, 0x0C,
+  0x40, 0x82, 0x1B, 0x40, 0x82, 0x1F, 0x40, 0x82, 0x6E, 0x40, 0x82, 0x72,
+  0x40, 0x82, 0x78, 0x40, 0x86, 0x4D, 0x40, 0x86, 0x6B, 0x40, 0x88, 0x40,
+  0x40, 0x88, 0x4C, 0x40, 0x88, 0x63, 0x40, 0x89, 0x7E, 0x40, 0x89, 0x8B,
+  0x40, 0x89, 0xD2, 0x40, 0x8A, 0x00, 0x40, 0x8C, 0x37, 0x40, 0x8C, 0x46,
+  0x40, 0x8C, 0x55, 0x40, 0x8C, 0x78, 0x40, 0x8C, 0x9D, 0x40, 0x8D, 0x64,
+  0x40, 0x8D, 0x70, 0x40, 0x8D, 0xB3, 0x40, 0x8E, 0xAB, 0x40, 0x8E, 0xCA,
+  0x40, 0x8F, 0x9B, 0x40, 0x8F, 0xB0, 0x40, 0x8F, 0xB5, 0x40, 0x90, 0x91,
+  0x40, 0x91, 0x49, 0x40, 0x91, 0xC6, 0x40, 0x91, 0xCC, 0x40, 0x91, 0xD1,
+  0x40, 0x95, 0x77, 0x40, 0x95, 0x80, 0x40, 0x96, 0x1C, 0x40, 0x96, 0xB6,
+  0x40, 0x96, 0xB9, 0x40, 0x96, 0xE8, 0x40, 0x97, 0x51, 0x40, 0x97, 0x5E,
+  0x40, 0x97, 0x62, 0x40, 0x97, 0x69, 0x40, 0x97, 0xCB, 0x40, 0x97, 0xED,
+  0x40, 0x97, 0xF3, 0x40, 0x98, 0x01, 0x40, 0x98, 0xA8, 0x40, 0x98, 0xDB,
+  0x40, 0x98, 0xDF, 0x40, 0x99, 0x96, 0x40, 0x99, 0x99, 0x40, 0x99, 0xAC,
+  0x40, 0x9A, 0xA8, 0x40, 0x9A, 0xD8, 0x40, 0x9A, 0xDF, 0x40, 0x9B, 0x25,
+  0x40, 0x9B, 0x2F, 0x40, 0x9B, 0x32, 0x40, 0x9B, 0x3C, 0x40, 0x9B, 0x5A,
+  0x40, 0x9C, 0xE5, 0x40, 0x9E, 0x75, 0x40, 0x9E, 0x7F, 0x40, 0x9E, 0xA5,
+  0x40, 0x9E, 0xBB, 0x40, 0x9E, 0xC3, 0x40, 0x9E, 0xCD, 0x40, 0x9E, 0xD1,
+  0x40, 0x9E, 0xF9, 0x40, 0x9E, 0xFD, 0x40, 0x9F, 0x0E, 0x40, 0x9F, 0x13,
+  0x40, 0x9F, 0x20, 0x40, 0x9F, 0x3B, 0x40, 0x9F, 0x4A, 0x40, 0x9F, 0x52,
+  0x40, 0x9F, 0x8D, 0x40, 0x9F, 0x9C, 0x40, 0x9F, 0xA0, 0x2C, 0x00, 0x20,
+  0x40, 0x30, 0x12, 0x40, 0x53, 0x41, 0x40, 0x53, 0x44, 0x40, 0x53, 0x45,
+  0x80, 0x30, 0x4B, 0x00, 0x30, 0x99, 0x80, 0x30, 0x4D, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x4F, 0x00, 0x30, 0x99, 0x80, 0x30, 0x51, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x53, 0x00, 0x30, 0x99, 0x80, 0x30, 0x55, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x57, 0x00, 0x30, 0x99, 0x80, 0x30, 0x59, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x5B, 0x00, 0x30, 0x99, 0x80, 0x30, 0x5D, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x5F, 0x00, 0x30, 0x99, 0x80, 0x30, 0x61, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x64, 0x00, 0x30, 0x99, 0x80, 0x30, 0x66, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x68, 0x00, 0x30, 0x99, 0x80, 0x30, 0x6F, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x6F, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x72, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x72, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x75, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x75, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x78, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x78, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x7B, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0x7B, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x46, 0x00, 0x30, 0x99,
+  0xC0, 0x00, 0x20, 0x00, 0x30, 0x99, 0xC0, 0x00, 0x20, 0x00, 0x30, 0x9A,
+  0x80, 0x30, 0x9D, 0x00, 0x30, 0x99, 0xA8, 0x30, 0x88, 0x00, 0x30, 0x8A,
+  0x80, 0x30, 0xAB, 0x00, 0x30, 0x99, 0x80, 0x30, 0xAD, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xAF, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB1, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xB3, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB5, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xB7, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB9, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xBB, 0x00, 0x30, 0x99, 0x80, 0x30, 0xBD, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xBF, 0x00, 0x30, 0x99, 0x80, 0x30, 0xC1, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xC4, 0x00, 0x30, 0x99, 0x80, 0x30, 0xC6, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xC8, 0x00, 0x30, 0x99, 0x80, 0x30, 0xCF, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xCF, 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD2, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xD2, 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD5, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xD5, 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD8, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xD8, 0x00, 0x30, 0x9A, 0x80, 0x30, 0xDB, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xDB, 0x00, 0x30, 0x9A, 0x80, 0x30, 0xA6, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xEF, 0x00, 0x30, 0x99, 0x80, 0x30, 0xF0, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xF1, 0x00, 0x30, 0x99, 0x80, 0x30, 0xF2, 0x00, 0x30, 0x99,
+  0x80, 0x30, 0xFD, 0x00, 0x30, 0x99, 0xA8, 0x30, 0xB3, 0x00, 0x30, 0xC8,
+  0x40, 0x11, 0x00, 0x40, 0x11, 0x01, 0x40, 0x11, 0xAA, 0x40, 0x11, 0x02,
+  0x40, 0x11, 0xAC, 0x40, 0x11, 0xAD, 0x40, 0x11, 0x03, 0x40, 0x11, 0x04,
+  0x40, 0x11, 0x05, 0x40, 0x11, 0xB0, 0x40, 0x11, 0xB1, 0x40, 0x11, 0xB2,
+  0x40, 0x11, 0xB3, 0x40, 0x11, 0xB4, 0x40, 0x11, 0xB5, 0x40, 0x11, 0x1A,
+  0x40, 0x11, 0x06, 0x40, 0x11, 0x07, 0x40, 0x11, 0x08, 0x40, 0x11, 0x21,
+  0x40, 0x11, 0x09, 0x40, 0x11, 0x0A, 0x40, 0x11, 0x0B, 0x40, 0x11, 0x0C,
+  0x40, 0x11, 0x0D, 0x40, 0x11, 0x0E, 0x40, 0x11, 0x0F, 0x40, 0x11, 0x10,
+  0x40, 0x11, 0x11, 0x40, 0x11, 0x12, 0x40, 0x11, 0x61, 0x40, 0x11, 0x62,
+  0x40, 0x11, 0x63, 0x40, 0x11, 0x64, 0x40, 0x11, 0x65, 0x40, 0x11, 0x66,
+  0x40, 0x11, 0x67, 0x40, 0x11, 0x68, 0x40, 0x11, 0x69, 0x40, 0x11, 0x6A,
+  0x40, 0x11, 0x6B, 0x40, 0x11, 0x6C, 0x40, 0x11, 0x6D, 0x40, 0x11, 0x6E,
+  0x40, 0x11, 0x6F, 0x40, 0x11, 0x70, 0x40, 0x11, 0x71, 0x40, 0x11, 0x72,
+  0x40, 0x11, 0x73, 0x40, 0x11, 0x74, 0x40, 0x11, 0x75, 0x40, 0x11, 0x60,
+  0x40, 0x11, 0x14, 0x40, 0x11, 0x15, 0x40, 0x11, 0xC7, 0x40, 0x11, 0xC8,
+  0x40, 0x11, 0xCC, 0x40, 0x11, 0xCE, 0x40, 0x11, 0xD3, 0x40, 0x11, 0xD7,
+  0x40, 0x11, 0xD9, 0x40, 0x11, 0x1C, 0x40, 0x11, 0xDD, 0x40, 0x11, 0xDF,
+  0x40, 0x11, 0x1D, 0x40, 0x11, 0x1E, 0x40, 0x11, 0x20, 0x40, 0x11, 0x22,
+  0x40, 0x11, 0x23, 0x40, 0x11, 0x27, 0x40, 0x11, 0x29, 0x40, 0x11, 0x2B,
+  0x40, 0x11, 0x2C, 0x40, 0x11, 0x2D, 0x40, 0x11, 0x2E, 0x40, 0x11, 0x2F,
+  0x40, 0x11, 0x32, 0x40, 0x11, 0x36, 0x40, 0x11, 0x40, 0x40, 0x11, 0x47,
+  0x40, 0x11, 0x4C, 0x40, 0x11, 0xF1, 0x40, 0x11, 0xF2, 0x40, 0x11, 0x57,
+  0x40, 0x11, 0x58, 0x40, 0x11, 0x59, 0x40, 0x11, 0x84, 0x40, 0x11, 0x85,
+  0x40, 0x11, 0x88, 0x40, 0x11, 0x91, 0x40, 0x11, 0x92, 0x40, 0x11, 0x94,
+  0x40, 0x11, 0x9E, 0x40, 0x11, 0xA1, 0x20, 0x4E, 0x00, 0x20, 0x4E, 0x8C,
+  0x20, 0x4E, 0x09, 0x20, 0x56, 0xDB, 0x20, 0x4E, 0x0A, 0x20, 0x4E, 0x2D,
+  0x20, 0x4E, 0x0B, 0x20, 0x75, 0x32, 0x20, 0x4E, 0x59, 0x20, 0x4E, 0x19,
+  0x20, 0x4E, 0x01, 0x20, 0x59, 0x29, 0x20, 0x57, 0x30, 0x20, 0x4E, 0xBA,
+  0xC0, 0x00, 0x28, 0x80, 0x11, 0x00, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x11, 0x02, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x03,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x05, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x11, 0x06, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x11, 0x07, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x09,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x11, 0x0E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0F,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x10, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x11, 0x11, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x11, 0x12, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x00,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x02,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x03,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x05,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x06,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x07,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x09,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0E,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0F,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x10,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x11,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x12,
+  0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C,
+  0x80, 0x11, 0x6E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B,
+  0x80, 0x11, 0x69, 0x80, 0x11, 0x0C, 0x80, 0x11, 0x65, 0x80, 0x11, 0xAB,
   0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x80, 0x11, 0x69,
-  0x80, 0x11, 0x0C, 0x80, 0x11, 0x65, 0x80, 0x11, 0xAB, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x80, 0x11, 0x69, 0x80, 0x11, 0x12,
-  0x80, 0x11, 0x6E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x00,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x8C, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x4E, 0x09, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x56, 0xDB, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x94,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x51, 0x6D, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x4E, 0x03, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x51, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x5D,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x53, 0x41, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x67, 0x08, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x70, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x6C, 0x34,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x67, 0x28, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x91, 0xD1, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x57, 0x1F, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x65, 0xE5,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x68, 0x2A, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x67, 0x09, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x79, 0x3E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x54, 0x0D,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x72, 0x79, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x8C, 0xA1, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x79, 0x5D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x52, 0xB4,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0xE3, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x54, 0x7C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x5B, 0x66, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x76, 0xE3,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4F, 0x01, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x8C, 0xC7, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x53, 0x54, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x79, 0x6D,
-  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4F, 0x11, 0x00, 0x00, 0x29,
-  0xC0, 0x00, 0x28, 0x80, 0x81, 0xEA, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
-  0x80, 0x81, 0xF3, 0x00, 0x00, 0x29, 0xB8, 0x00, 0x50, 0x80, 0x00, 0x54,
-  0x00, 0x00, 0x45, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x32,
-  0x00, 0x00, 0x32, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x32,
-  0x00, 0x00, 0x34, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x35, 0x9C, 0x00, 0x32,
-  0x00, 0x00, 0x36, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x32,
-  0x00, 0x00, 0x38, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x33,
-  0x00, 0x00, 0x30, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x33,
-  0x00, 0x00, 0x32, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x33,
-  0x00, 0x00, 0x34, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x35, 0x1C, 0x11, 0x00,
-  0x1C, 0x11, 0x02, 0x1C, 0x11, 0x03, 0x1C, 0x11, 0x05, 0x1C, 0x11, 0x06,
-  0x1C, 0x11, 0x07, 0x1C, 0x11, 0x09, 0x1C, 0x11, 0x0B, 0x1C, 0x11, 0x0C,
-  0x1C, 0x11, 0x0E, 0x1C, 0x11, 0x0F, 0x1C, 0x11, 0x10, 0x1C, 0x11, 0x11,
-  0x1C, 0x11, 0x12, 0x9C, 0x11, 0x00, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x02,
-  0x00, 0x11, 0x61, 0x9C, 0x11, 0x03, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x05,
-  0x00, 0x11, 0x61, 0x9C, 0x11, 0x06, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x07,
-  0x00, 0x11, 0x61, 0x9C, 0x11, 0x09, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0B,
-  0x00, 0x11, 0x61, 0x9C, 0x11, 0x0C, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0E,
-  0x00, 0x11, 0x61, 0x9C, 0x11, 0x0F, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x10,
-  0x00, 0x11, 0x61, 0x9C, 0x11, 0x11, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x12,
-  0x00, 0x11, 0x61, 0x9C, 0x11, 0x0E, 0x80, 0x11, 0x61, 0x80, 0x11, 0xB7,
-  0x80, 0x11, 0x00, 0x00, 0x11, 0x69, 0x9C, 0x11, 0x0C, 0x80, 0x11, 0x6E,
-  0x80, 0x11, 0x0B, 0x00, 0x11, 0x74, 0x9C, 0x11, 0x0B, 0x00, 0x11, 0x6E,
-  0x1C, 0x4E, 0x00, 0x1C, 0x4E, 0x8C, 0x1C, 0x4E, 0x09, 0x1C, 0x56, 0xDB,
-  0x1C, 0x4E, 0x94, 0x1C, 0x51, 0x6D, 0x1C, 0x4E, 0x03, 0x1C, 0x51, 0x6B,
-  0x1C, 0x4E, 0x5D, 0x1C, 0x53, 0x41, 0x1C, 0x67, 0x08, 0x1C, 0x70, 0x6B,
-  0x1C, 0x6C, 0x34, 0x1C, 0x67, 0x28, 0x1C, 0x91, 0xD1, 0x1C, 0x57, 0x1F,
-  0x1C, 0x65, 0xE5, 0x1C, 0x68, 0x2A, 0x1C, 0x67, 0x09, 0x1C, 0x79, 0x3E,
-  0x1C, 0x54, 0x0D, 0x1C, 0x72, 0x79, 0x1C, 0x8C, 0xA1, 0x1C, 0x79, 0x5D,
-  0x1C, 0x52, 0xB4, 0x1C, 0x79, 0xD8, 0x1C, 0x75, 0x37, 0x1C, 0x59, 0x73,
-  0x1C, 0x90, 0x69, 0x1C, 0x51, 0x2A, 0x1C, 0x53, 0x70, 0x1C, 0x6C, 0xE8,
-  0x1C, 0x98, 0x05, 0x1C, 0x4F, 0x11, 0x1C, 0x51, 0x99, 0x1C, 0x6B, 0x63,
-  0x1C, 0x4E, 0x0A, 0x1C, 0x4E, 0x2D, 0x1C, 0x4E, 0x0B, 0x1C, 0x5D, 0xE6,
-  0x1C, 0x53, 0xF3, 0x1C, 0x53, 0x3B, 0x1C, 0x5B, 0x97, 0x1C, 0x5B, 0x66,
-  0x1C, 0x76, 0xE3, 0x1C, 0x4F, 0x01, 0x1C, 0x8C, 0xC7, 0x1C, 0x53, 0x54,
-  0x1C, 0x59, 0x1C, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x36, 0x9C, 0x00, 0x33,
-  0x00, 0x00, 0x37, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x38, 0x9C, 0x00, 0x33,
-  0x00, 0x00, 0x39, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x30, 0x9C, 0x00, 0x34,
-  0x00, 0x00, 0x31, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x32, 0x9C, 0x00, 0x34,
-  0x00, 0x00, 0x33, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x34, 0x9C, 0x00, 0x34,
-  0x00, 0x00, 0x35, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x36, 0x9C, 0x00, 0x34,
-  0x00, 0x00, 0x37, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x38, 0x9C, 0x00, 0x34,
-  0x00, 0x00, 0x39, 0x9C, 0x00, 0x35, 0x00, 0x00, 0x30, 0xC0, 0x00, 0x31,
-  0x00, 0x67, 0x08, 0xC0, 0x00, 0x32, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x33,
-  0x00, 0x67, 0x08, 0xC0, 0x00, 0x34, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x35,
-  0x00, 0x67, 0x08, 0xC0, 0x00, 0x36, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x37,
-  0x00, 0x67, 0x08, 0xC0, 0x00, 0x38, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x39,
-  0x00, 0x67, 0x08, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x67, 0x08,
-  0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x31,
-  0x80, 0x00, 0x32, 0x00, 0x67, 0x08, 0xB8, 0x00, 0x48, 0x00, 0x00, 0x67,
-  0xB8, 0x00, 0x65, 0x80, 0x00, 0x72, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x65,
-  0x00, 0x00, 0x56, 0xB8, 0x00, 0x4C, 0x80, 0x00, 0x54, 0x00, 0x00, 0x44,
-  0x1C, 0x30, 0xA2, 0x1C, 0x30, 0xA4, 0x1C, 0x30, 0xA6, 0x1C, 0x30, 0xA8,
-  0x1C, 0x30, 0xAA, 0x1C, 0x30, 0xAB, 0x1C, 0x30, 0xAD, 0x1C, 0x30, 0xAF,
-  0x1C, 0x30, 0xB1, 0x1C, 0x30, 0xB3, 0x1C, 0x30, 0xB5, 0x1C, 0x30, 0xB7,
-  0x1C, 0x30, 0xB9, 0x1C, 0x30, 0xBB, 0x1C, 0x30, 0xBD, 0x1C, 0x30, 0xBF,
-  0x1C, 0x30, 0xC1, 0x1C, 0x30, 0xC4, 0x1C, 0x30, 0xC6, 0x1C, 0x30, 0xC8,
-  0x1C, 0x30, 0xCA, 0x1C, 0x30, 0xCB, 0x1C, 0x30, 0xCC, 0x1C, 0x30, 0xCD,
-  0x1C, 0x30, 0xCE, 0x1C, 0x30, 0xCF, 0x1C, 0x30, 0xD2, 0x1C, 0x30, 0xD5,
-  0x1C, 0x30, 0xD8, 0x1C, 0x30, 0xDB, 0x1C, 0x30, 0xDE, 0x1C, 0x30, 0xDF,
-  0x1C, 0x30, 0xE0, 0x1C, 0x30, 0xE1, 0x1C, 0x30, 0xE2, 0x1C, 0x30, 0xE4,
-  0x1C, 0x30, 0xE6, 0x1C, 0x30, 0xE8, 0x1C, 0x30, 0xE9, 0x1C, 0x30, 0xEA,
-  0x1C, 0x30, 0xEB, 0x1C, 0x30, 0xEC, 0x1C, 0x30, 0xED, 0x1C, 0x30, 0xEF,
-  0x1C, 0x30, 0xF0, 0x1C, 0x30, 0xF1, 0x1C, 0x30, 0xF2, 0xB8, 0x30, 0xA2,
-  0x80, 0x30, 0xD1, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xA2,
-  0x80, 0x30, 0xEB, 0x80, 0x30, 0xD5, 0x00, 0x30, 0xA1, 0xB8, 0x30, 0xA2,
-  0x80, 0x30, 0xF3, 0x80, 0x30, 0xDA, 0x00, 0x30, 0xA2, 0xB8, 0x30, 0xA2,
-  0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xA4, 0x80, 0x30, 0xCB,
-  0x80, 0x30, 0xF3, 0x00, 0x30, 0xB0, 0xB8, 0x30, 0xA4, 0x80, 0x30, 0xF3,
-  0x00, 0x30, 0xC1, 0xB8, 0x30, 0xA6, 0x80, 0x30, 0xA9, 0x00, 0x30, 0xF3,
-  0xB8, 0x30, 0xA8, 0x80, 0x30, 0xB9, 0x80, 0x30, 0xAF, 0x80, 0x30, 0xFC,
-  0x00, 0x30, 0xC9, 0xB8, 0x30, 0xA8, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xAB,
-  0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAA, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB9,
-  0xB8, 0x30, 0xAA, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xAB,
-  0x80, 0x30, 0xA4, 0x00, 0x30, 0xEA, 0xB8, 0x30, 0xAB, 0x80, 0x30, 0xE9,
-  0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xAB, 0x80, 0x30, 0xED,
-  0x80, 0x30, 0xEA, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAC, 0x80, 0x30, 0xED,
-  0x00, 0x30, 0xF3, 0xB8, 0x30, 0xAC, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xDE,
-  0xB8, 0x30, 0xAE, 0x00, 0x30, 0xAC, 0xB8, 0x30, 0xAE, 0x80, 0x30, 0xCB,
-  0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xE5, 0x80, 0x30, 0xEA,
-  0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAE, 0x80, 0x30, 0xEB, 0x80, 0x30, 0xC0,
-  0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAD, 0x00, 0x30, 0xED, 0xB8, 0x30, 0xAD,
-  0x80, 0x30, 0xED, 0x80, 0x30, 0xB0, 0x80, 0x30, 0xE9, 0x00, 0x30, 0xE0,
-  0xB8, 0x30, 0xAD, 0x80, 0x30, 0xED, 0x80, 0x30, 0xE1, 0x80, 0x30, 0xFC,
-  0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xED,
-  0x80, 0x30, 0xEF, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xB0,
-  0x80, 0x30, 0xE9, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xB0, 0x80, 0x30, 0xE9,
-  0x80, 0x30, 0xE0, 0x80, 0x30, 0xC8, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xAF,
-  0x80, 0x30, 0xEB, 0x80, 0x30, 0xBC, 0x80, 0x30, 0xA4, 0x00, 0x30, 0xED,
-  0xB8, 0x30, 0xAF, 0x80, 0x30, 0xED, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xCD,
-  0xB8, 0x30, 0xB1, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xB3,
-  0x80, 0x30, 0xEB, 0x00, 0x30, 0xCA, 0xB8, 0x30, 0xB3, 0x80, 0x30, 0xFC,
-  0x00, 0x30, 0xDD, 0xB8, 0x30, 0xB5, 0x80, 0x30, 0xA4, 0x80, 0x30, 0xAF,
-  0x00, 0x30, 0xEB, 0xB8, 0x30, 0xB5, 0x80, 0x30, 0xF3, 0x80, 0x30, 0xC1,
-  0x80, 0x30, 0xFC, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xB7, 0x80, 0x30, 0xEA,
-  0x80, 0x30, 0xF3, 0x00, 0x30, 0xB0, 0xB8, 0x30, 0xBB, 0x80, 0x30, 0xF3,
-  0x00, 0x30, 0xC1, 0xB8, 0x30, 0xBB, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8,
-  0xB8, 0x30, 0xC0, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xC7,
-  0x00, 0x30, 0xB7, 0xB8, 0x30, 0xC9, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xC8,
-  0x00, 0x30, 0xF3, 0xB8, 0x30, 0xCA, 0x00, 0x30, 0xCE, 0xB8, 0x30, 0xCE,
-  0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xCF, 0x80, 0x30, 0xA4,
-  0x00, 0x30, 0xC4, 0xB8, 0x30, 0xD1, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xBB,
-  0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xD1, 0x80, 0x30, 0xFC,
-  0x00, 0x30, 0xC4, 0xB8, 0x30, 0xD0, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xEC,
-  0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x80, 0x30, 0xA2, 0x80, 0x30, 0xB9,
-  0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x80, 0x30, 0xAF,
-  0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x00, 0x30, 0xB3, 0xB8, 0x30, 0xD3,
-  0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD5, 0x80, 0x30, 0xA1, 0x80, 0x30, 0xE9,
-  0x80, 0x30, 0xC3, 0x00, 0x30, 0xC9, 0xB8, 0x30, 0xD5, 0x80, 0x30, 0xA3,
-  0x80, 0x30, 0xFC, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xD6, 0x80, 0x30, 0xC3,
-  0x80, 0x30, 0xB7, 0x80, 0x30, 0xA7, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD5,
-  0x80, 0x30, 0xE9, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xD8, 0x80, 0x30, 0xAF,
-  0x80, 0x30, 0xBF, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDA,
-  0x00, 0x30, 0xBD, 0xB8, 0x30, 0xDA, 0x80, 0x30, 0xCB, 0x00, 0x30, 0xD2,
-  0xB8, 0x30, 0xD8, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xC4, 0xB8, 0x30, 0xDA,
-  0x80, 0x30, 0xF3, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xDA, 0x80, 0x30, 0xFC,
-  0x00, 0x30, 0xB8, 0xB8, 0x30, 0xD9, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xBF,
-  0xB8, 0x30, 0xDD, 0x80, 0x30, 0xA4, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8,
-  0xB8, 0x30, 0xDC, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xDB,
-  0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDD, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC9,
-  0xB8, 0x30, 0xDB, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDB,
-  0x80, 0x30, 0xFC, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xA4,
-  0x80, 0x30, 0xAF, 0x00, 0x30, 0xED, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xA4,
-  0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xCF,
-  0xB8, 0x30, 0xDE, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xAF, 0xB8, 0x30, 0xDE,
-  0x80, 0x30, 0xF3, 0x80, 0x30, 0xB7, 0x80, 0x30, 0xE7, 0x00, 0x30, 0xF3,
-  0xB8, 0x30, 0xDF, 0x80, 0x30, 0xAF, 0x80, 0x30, 0xED, 0x00, 0x30, 0xF3,
-  0xB8, 0x30, 0xDF, 0x00, 0x30, 0xEA, 0xB8, 0x30, 0xDF, 0x80, 0x30, 0xEA,
-  0x80, 0x30, 0xD0, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE1,
-  0x00, 0x30, 0xAC, 0xB8, 0x30, 0xE1, 0x80, 0x30, 0xAC, 0x80, 0x30, 0xC8,
-  0x00, 0x30, 0xF3, 0xB8, 0x30, 0xE1, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xC8,
-  0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE4, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC9,
-  0xB8, 0x30, 0xE4, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE6,
-  0x80, 0x30, 0xA2, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xEA, 0x80, 0x30, 0xC3,
-  0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xEA, 0x00, 0x30, 0xE9,
-  0xB8, 0x30, 0xEB, 0x80, 0x30, 0xD4, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xEB,
-  0x80, 0x30, 0xFC, 0x80, 0x30, 0xD6, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xEC,
-  0x00, 0x30, 0xE0, 0xB8, 0x30, 0xEC, 0x80, 0x30, 0xF3, 0x80, 0x30, 0xC8,
-  0x80, 0x30, 0xB2, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xEF, 0x80, 0x30, 0xC3,
-  0x00, 0x30, 0xC8, 0xC0, 0x00, 0x30, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31,
-  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x33,
-  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x34, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x35,
-  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x36, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x37,
-  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x38, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x39,
-  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x70, 0xB9,
-  0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31,
-  0x80, 0x00, 0x32, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33,
-  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x70, 0xB9,
-  0xC0, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31,
-  0x80, 0x00, 0x36, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37,
-  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x70, 0xB9,
-  0xC0, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32,
-  0x80, 0x00, 0x30, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x31,
-  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x32, 0x00, 0x70, 0xB9,
-  0xC0, 0x00, 0x32, 0x80, 0x00, 0x33, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32,
-  0x80, 0x00, 0x34, 0x00, 0x70, 0xB9, 0xB8, 0x00, 0x68, 0x80, 0x00, 0x50,
-  0x00, 0x00, 0x61, 0xB8, 0x00, 0x64, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x41,
-  0x00, 0x00, 0x55, 0xB8, 0x00, 0x62, 0x80, 0x00, 0x61, 0x00, 0x00, 0x72,
-  0xB8, 0x00, 0x6F, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x63,
-  0xB8, 0x00, 0x64, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x64, 0x80, 0x00, 0x6D,
-  0x00, 0x00, 0xB2, 0xB8, 0x00, 0x64, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3,
-  0xB8, 0x00, 0x49, 0x00, 0x00, 0x55, 0xB8, 0x5E, 0x73, 0x00, 0x62, 0x10,
-  0xB8, 0x66, 0x2D, 0x00, 0x54, 0x8C, 0xB8, 0x59, 0x27, 0x00, 0x6B, 0x63,
-  0xB8, 0x66, 0x0E, 0x00, 0x6C, 0xBB, 0xB8, 0x68, 0x2A, 0x80, 0x5F, 0x0F,
-  0x80, 0x4F, 0x1A, 0x00, 0x79, 0x3E, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x41,
-  0xB8, 0x00, 0x6E, 0x00, 0x00, 0x41, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x41,
-  0xB8, 0x00, 0x6D, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x41,
-  0xB8, 0x00, 0x4B, 0x00, 0x00, 0x42, 0xB8, 0x00, 0x4D, 0x00, 0x00, 0x42,
-  0xB8, 0x00, 0x47, 0x00, 0x00, 0x42, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x61,
-  0x00, 0x00, 0x6C, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x63, 0x80, 0x00, 0x61,
-  0x00, 0x00, 0x6C, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x46, 0xB8, 0x00, 0x6E,
-  0x00, 0x00, 0x46, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x46, 0xB8, 0x03, 0xBC,
-  0x00, 0x00, 0x67, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x6B,
-  0x00, 0x00, 0x67, 0xB8, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x6B,
-  0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x4D, 0x80, 0x00, 0x48,
-  0x00, 0x00, 0x7A, 0xB8, 0x00, 0x47, 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A,
-  0xB8, 0x00, 0x54, 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x03, 0xBC,
-  0x00, 0x21, 0x13, 0xB8, 0x00, 0x6D, 0x00, 0x21, 0x13, 0xB8, 0x00, 0x64,
-  0x00, 0x21, 0x13, 0xB8, 0x00, 0x6B, 0x00, 0x21, 0x13, 0xB8, 0x00, 0x66,
-  0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x6D, 0xB8, 0x03, 0xBC,
-  0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x63,
-  0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6D,
-  0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x6D,
-  0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6B,
-  0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x6D,
-  0x00, 0x00, 0xB3, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3,
-  0xB8, 0x00, 0x6D, 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x6D,
-  0x00, 0x00, 0xB3, 0xB8, 0x00, 0x6D, 0x80, 0x22, 0x15, 0x00, 0x00, 0x73,
-  0xB8, 0x00, 0x6D, 0x80, 0x22, 0x15, 0x80, 0x00, 0x73, 0x00, 0x00, 0xB2,
-  0xB8, 0x00, 0x50, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x50,
-  0x00, 0x00, 0x61, 0xB8, 0x00, 0x4D, 0x80, 0x00, 0x50, 0x00, 0x00, 0x61,
-  0xB8, 0x00, 0x47, 0x80, 0x00, 0x50, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x72,
-  0x80, 0x00, 0x61, 0x00, 0x00, 0x64, 0xB8, 0x00, 0x72, 0x80, 0x00, 0x61,
-  0x80, 0x00, 0x64, 0x80, 0x22, 0x15, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x72,
-  0x80, 0x00, 0x61, 0x80, 0x00, 0x64, 0x80, 0x22, 0x15, 0x80, 0x00, 0x73,
-  0x00, 0x00, 0xB2, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x6E,
-  0x00, 0x00, 0x73, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x6D,
-  0x00, 0x00, 0x73, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x6E,
-  0x00, 0x00, 0x56, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x6D,
-  0x00, 0x00, 0x56, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x4D,
-  0x00, 0x00, 0x56, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6E,
-  0x00, 0x00, 0x57, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6D,
-  0x00, 0x00, 0x57, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x4D,
-  0x00, 0x00, 0x57, 0xB8, 0x00, 0x6B, 0x00, 0x03, 0xA9, 0xB8, 0x00, 0x4D,
-  0x00, 0x03, 0xA9, 0xB8, 0x00, 0x61, 0x80, 0x00, 0x2E, 0x80, 0x00, 0x6D,
-  0x00, 0x00, 0x2E, 0xB8, 0x00, 0x42, 0x00, 0x00, 0x71, 0xB8, 0x00, 0x63,
-  0x00, 0x00, 0x63, 0xB8, 0x00, 0x63, 0x00, 0x00, 0x64, 0xB8, 0x00, 0x43,
-  0x80, 0x22, 0x15, 0x80, 0x00, 0x6B, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x43,
-  0x80, 0x00, 0x6F, 0x00, 0x00, 0x2E, 0xB8, 0x00, 0x64, 0x00, 0x00, 0x42,
-  0xB8, 0x00, 0x47, 0x00, 0x00, 0x79, 0xB8, 0x00, 0x68, 0x00, 0x00, 0x61,
-  0xB8, 0x00, 0x48, 0x00, 0x00, 0x50, 0xB8, 0x00, 0x69, 0x00, 0x00, 0x6E,
-  0xB8, 0x00, 0x4B, 0x00, 0x00, 0x4B, 0xB8, 0x00, 0x4B, 0x00, 0x00, 0x4D,
-  0xB8, 0x00, 0x6B, 0x00, 0x00, 0x74, 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x6D,
-  0xB8, 0x00, 0x6C, 0x00, 0x00, 0x6E, 0xB8, 0x00, 0x6C, 0x80, 0x00, 0x6F,
-  0x00, 0x00, 0x67, 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x78, 0xB8, 0x00, 0x6D,
-  0x00, 0x00, 0x62, 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x69, 0x00, 0x00, 0x6C,
-  0xB8, 0x00, 0x6D, 0x80, 0x00, 0x6F, 0x00, 0x00, 0x6C, 0xB8, 0x00, 0x50,
-  0x00, 0x00, 0x48, 0xB8, 0x00, 0x70, 0x80, 0x00, 0x2E, 0x80, 0x00, 0x6D,
-  0x00, 0x00, 0x2E, 0xB8, 0x00, 0x50, 0x80, 0x00, 0x50, 0x00, 0x00, 0x4D,
-  0xB8, 0x00, 0x50, 0x00, 0x00, 0x52, 0xB8, 0x00, 0x73, 0x00, 0x00, 0x72,
-  0xB8, 0x00, 0x53, 0x00, 0x00, 0x76, 0xB8, 0x00, 0x57, 0x00, 0x00, 0x62,
-  0xB8, 0x00, 0x56, 0x80, 0x22, 0x15, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x41,
-  0x80, 0x22, 0x15, 0x00, 0x00, 0x6D, 0xC0, 0x00, 0x31, 0x00, 0x65, 0xE5,
-  0xC0, 0x00, 0x32, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x33, 0x00, 0x65, 0xE5,
-  0xC0, 0x00, 0x34, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x35, 0x00, 0x65, 0xE5,
-  0xC0, 0x00, 0x36, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x37, 0x00, 0x65, 0xE5,
-  0xC0, 0x00, 0x38, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x39, 0x00, 0x65, 0xE5,
-  0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31,
-  0x80, 0x00, 0x31, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x32,
-  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33, 0x00, 0x65, 0xE5,
-  0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31,
-  0x80, 0x00, 0x35, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x36,
-  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37, 0x00, 0x65, 0xE5,
-  0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31,
-  0x80, 0x00, 0x39, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x30,
-  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x31, 0x00, 0x65, 0xE5,
-  0xC0, 0x00, 0x32, 0x80, 0x00, 0x32, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32,
-  0x80, 0x00, 0x33, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x34,
-  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x35, 0x00, 0x65, 0xE5,
-  0xC0, 0x00, 0x32, 0x80, 0x00, 0x36, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32,
-  0x80, 0x00, 0x37, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x38,
-  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x39, 0x00, 0x65, 0xE5,
-  0xC0, 0x00, 0x33, 0x80, 0x00, 0x30, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x33,
-  0x80, 0x00, 0x31, 0x00, 0x65, 0xE5, 0xB8, 0x00, 0x67, 0x80, 0x00, 0x61,
-  0x00, 0x00, 0x6C, 0x20, 0xA7, 0x6F, 0x00, 0x8C, 0x48, 0x00, 0x66, 0xF4,
-  0x00, 0x8E, 0xCA, 0x00, 0x8C, 0xC8, 0x00, 0x6E, 0xD1, 0x00, 0x4E, 0x32,
-  0x00, 0x53, 0xE5, 0x00, 0x9F, 0x9C, 0x00, 0x9F, 0x9C, 0x00, 0x59, 0x51,
-  0x00, 0x91, 0xD1, 0x00, 0x55, 0x87, 0x00, 0x59, 0x48, 0x00, 0x61, 0xF6,
-  0x00, 0x76, 0x69, 0x00, 0x7F, 0x85, 0x00, 0x86, 0x3F, 0x00, 0x87, 0xBA,
-  0x00, 0x88, 0xF8, 0x00, 0x90, 0x8F, 0x00, 0x6A, 0x02, 0x00, 0x6D, 0x1B,
-  0x00, 0x70, 0xD9, 0x00, 0x73, 0xDE, 0x00, 0x84, 0x3D, 0x00, 0x91, 0x6A,
-  0x00, 0x99, 0xF1, 0x00, 0x4E, 0x82, 0x00, 0x53, 0x75, 0x00, 0x6B, 0x04,
-  0x00, 0x72, 0x1B, 0x00, 0x86, 0x2D, 0x00, 0x9E, 0x1E, 0x00, 0x5D, 0x50,
-  0x00, 0x6F, 0xEB, 0x00, 0x85, 0xCD, 0x00, 0x89, 0x64, 0x00, 0x62, 0xC9,
-  0x00, 0x81, 0xD8, 0x00, 0x88, 0x1F, 0x00, 0x5E, 0xCA, 0x00, 0x67, 0x17,
-  0x00, 0x6D, 0x6A, 0x00, 0x72, 0xFC, 0x00, 0x90, 0xCE, 0x00, 0x4F, 0x86,
-  0x00, 0x51, 0xB7, 0x00, 0x52, 0xDE, 0x00, 0x64, 0xC4, 0x00, 0x6A, 0xD3,
-  0x00, 0x72, 0x10, 0x00, 0x76, 0xE7, 0x00, 0x80, 0x01, 0x00, 0x86, 0x06,
-  0x00, 0x86, 0x5C, 0x00, 0x8D, 0xEF, 0x00, 0x97, 0x32, 0x00, 0x9B, 0x6F,
-  0x00, 0x9D, 0xFA, 0x00, 0x78, 0x8C, 0x00, 0x79, 0x7F, 0x00, 0x7D, 0xA0,
-  0x00, 0x83, 0xC9, 0x00, 0x93, 0x04, 0x00, 0x9E, 0x7F, 0x00, 0x8A, 0xD6,
-  0x00, 0x58, 0xDF, 0x00, 0x5F, 0x04, 0x00, 0x7C, 0x60, 0x00, 0x80, 0x7E,
-  0x00, 0x72, 0x62, 0x00, 0x78, 0xCA, 0x00, 0x8C, 0xC2, 0x00, 0x96, 0xF7,
-  0x00, 0x58, 0xD8, 0x00, 0x5C, 0x62, 0x00, 0x6A, 0x13, 0x00, 0x6D, 0xDA,
-  0x00, 0x6F, 0x0F, 0x00, 0x7D, 0x2F, 0x00, 0x7E, 0x37, 0x00, 0x96, 0x4B,
-  0x00, 0x52, 0xD2, 0x00, 0x80, 0x8B, 0x00, 0x51, 0xDC, 0x00, 0x51, 0xCC,
-  0x00, 0x7A, 0x1C, 0x00, 0x7D, 0xBE, 0x00, 0x83, 0xF1, 0x00, 0x96, 0x75,
-  0x00, 0x8B, 0x80, 0x00, 0x62, 0xCF, 0x00, 0x6A, 0x02, 0x00, 0x8A, 0xFE,
-  0x00, 0x4E, 0x39, 0x00, 0x5B, 0xE7, 0x00, 0x60, 0x12, 0x00, 0x73, 0x87,
-  0x00, 0x75, 0x70, 0x00, 0x53, 0x17, 0x00, 0x78, 0xFB, 0x00, 0x4F, 0xBF,
-  0x00, 0x5F, 0xA9, 0x00, 0x4E, 0x0D, 0x00, 0x6C, 0xCC, 0x00, 0x65, 0x78,
-  0x00, 0x7D, 0x22, 0x00, 0x53, 0xC3, 0x00, 0x58, 0x5E, 0x00, 0x77, 0x01,
-  0x00, 0x84, 0x49, 0x00, 0x8A, 0xAA, 0x00, 0x6B, 0xBA, 0x00, 0x8F, 0xB0,
-  0x00, 0x6C, 0x88, 0x00, 0x62, 0xFE, 0x00, 0x82, 0xE5, 0x00, 0x63, 0xA0,
-  0x00, 0x75, 0x65, 0x00, 0x4E, 0xAE, 0x00, 0x51, 0x69, 0x00, 0x51, 0xC9,
-  0x00, 0x68, 0x81, 0x00, 0x7C, 0xE7, 0x00, 0x82, 0x6F, 0x00, 0x8A, 0xD2,
-  0x00, 0x91, 0xCF, 0x00, 0x52, 0xF5, 0x00, 0x54, 0x42, 0x00, 0x59, 0x73,
-  0x00, 0x5E, 0xEC, 0x00, 0x65, 0xC5, 0x00, 0x6F, 0xFE, 0x00, 0x79, 0x2A,
-  0x00, 0x95, 0xAD, 0x00, 0x9A, 0x6A, 0x00, 0x9E, 0x97, 0x00, 0x9E, 0xCE,
-  0x00, 0x52, 0x9B, 0x00, 0x66, 0xC6, 0x00, 0x6B, 0x77, 0x00, 0x8F, 0x62,
-  0x00, 0x5E, 0x74, 0x00, 0x61, 0x90, 0x00, 0x62, 0x00, 0x00, 0x64, 0x9A,
-  0x00, 0x6F, 0x23, 0x00, 0x71, 0x49, 0x00, 0x74, 0x89, 0x00, 0x79, 0xCA,
-  0x00, 0x7D, 0xF4, 0x00, 0x80, 0x6F, 0x00, 0x8F, 0x26, 0x00, 0x84, 0xEE,
-  0x00, 0x90, 0x23, 0x00, 0x93, 0x4A, 0x00, 0x52, 0x17, 0x00, 0x52, 0xA3,
-  0x00, 0x54, 0xBD, 0x00, 0x70, 0xC8, 0x00, 0x88, 0xC2, 0x00, 0x8A, 0xAA,
-  0x00, 0x5E, 0xC9, 0x00, 0x5F, 0xF5, 0x00, 0x63, 0x7B, 0x00, 0x6B, 0xAE,
-  0x00, 0x7C, 0x3E, 0x00, 0x73, 0x75, 0x00, 0x4E, 0xE4, 0x00, 0x56, 0xF9,
-  0x00, 0x5B, 0xE7, 0x00, 0x5D, 0xBA, 0x00, 0x60, 0x1C, 0x00, 0x73, 0xB2,
-  0x00, 0x74, 0x69, 0x00, 0x7F, 0x9A, 0x00, 0x80, 0x46, 0x00, 0x92, 0x34,
-  0x00, 0x96, 0xF6, 0x00, 0x97, 0x48, 0x00, 0x98, 0x18, 0x00, 0x4F, 0x8B,
-  0x00, 0x79, 0xAE, 0x00, 0x91, 0xB4, 0x00, 0x96, 0xB8, 0x00, 0x60, 0xE1,
-  0x00, 0x4E, 0x86, 0x00, 0x50, 0xDA, 0x00, 0x5B, 0xEE, 0x00, 0x5C, 0x3F,
-  0x00, 0x65, 0x99, 0x00, 0x6A, 0x02, 0x00, 0x71, 0xCE, 0x00, 0x76, 0x42,
-  0x00, 0x84, 0xFC, 0x00, 0x90, 0x7C, 0x00, 0x9F, 0x8D, 0x00, 0x66, 0x88,
-  0x00, 0x96, 0x2E, 0x00, 0x52, 0x89, 0x00, 0x67, 0x7B, 0x00, 0x67, 0xF3,
-  0x00, 0x6D, 0x41, 0x00, 0x6E, 0x9C, 0x00, 0x74, 0x09, 0x00, 0x75, 0x59,
-  0x00, 0x78, 0x6B, 0x00, 0x7D, 0x10, 0x00, 0x98, 0x5E, 0x00, 0x51, 0x6D,
-  0x00, 0x62, 0x2E, 0x00, 0x96, 0x78, 0x00, 0x50, 0x2B, 0x00, 0x5D, 0x19,
-  0x00, 0x6D, 0xEA, 0x00, 0x8F, 0x2A, 0x00, 0x5F, 0x8B, 0x00, 0x61, 0x44,
-  0x00, 0x68, 0x17, 0x00, 0x73, 0x87, 0x00, 0x96, 0x86, 0x00, 0x52, 0x29,
-  0x00, 0x54, 0x0F, 0x00, 0x5C, 0x65, 0x00, 0x66, 0x13, 0x00, 0x67, 0x4E,
-  0x00, 0x68, 0xA8, 0x00, 0x6C, 0xE5, 0x00, 0x74, 0x06, 0x00, 0x75, 0xE2,
-  0x00, 0x7F, 0x79, 0x00, 0x88, 0xCF, 0x00, 0x88, 0xE1, 0x00, 0x91, 0xCC,
-  0x00, 0x96, 0xE2, 0x00, 0x53, 0x3F, 0x00, 0x6E, 0xBA, 0x00, 0x54, 0x1D,
-  0x00, 0x71, 0xD0, 0x00, 0x74, 0x98, 0x00, 0x85, 0xFA, 0x00, 0x96, 0xA3,
-  0x00, 0x9C, 0x57, 0x00, 0x9E, 0x9F, 0x00, 0x67, 0x97, 0x00, 0x6D, 0xCB,
-  0x00, 0x81, 0xE8, 0x00, 0x7A, 0xCB, 0x00, 0x7B, 0x20, 0x00, 0x7C, 0x92,
-  0x00, 0x72, 0xC0, 0x00, 0x70, 0x99, 0x00, 0x8B, 0x58, 0x00, 0x4E, 0xC0,
-  0x00, 0x83, 0x36, 0x00, 0x52, 0x3A, 0x00, 0x52, 0x07, 0x00, 0x5E, 0xA6,
-  0x00, 0x62, 0xD3, 0x00, 0x7C, 0xD6, 0x00, 0x5B, 0x85, 0x00, 0x6D, 0x1E,
-  0x00, 0x66, 0xB4, 0x00, 0x8F, 0x3B, 0x00, 0x88, 0x4C, 0x00, 0x96, 0x4D,
-  0x00, 0x89, 0x8B, 0x00, 0x5E, 0xD3, 0x00, 0x51, 0x40, 0x00, 0x55, 0xC0,
-  0x00, 0x58, 0x5A, 0x00, 0x66, 0x74, 0x00, 0x51, 0xDE, 0x00, 0x73, 0x2A,
-  0x00, 0x76, 0xCA, 0x00, 0x79, 0x3C, 0x00, 0x79, 0x5E, 0x00, 0x79, 0x65,
-  0x00, 0x79, 0x8F, 0x00, 0x97, 0x56, 0x00, 0x7C, 0xBE, 0x00, 0x7F, 0xBD,
-  0x00, 0x86, 0x12, 0x00, 0x8A, 0xF8, 0x00, 0x90, 0x38, 0x00, 0x90, 0xFD,
-  0x00, 0x98, 0xEF, 0x00, 0x98, 0xFC, 0x00, 0x99, 0x28, 0x00, 0x9D, 0xB4,
-  0x00, 0x4F, 0xAE, 0x00, 0x50, 0xE7, 0x00, 0x51, 0x4D, 0x00, 0x52, 0xC9,
-  0x00, 0x52, 0xE4, 0x00, 0x53, 0x51, 0x00, 0x55, 0x9D, 0x00, 0x56, 0x06,
-  0x00, 0x56, 0x68, 0x00, 0x58, 0x40, 0x00, 0x58, 0xA8, 0x00, 0x5C, 0x64,
-  0x00, 0x5C, 0x6E, 0x00, 0x60, 0x94, 0x00, 0x61, 0x68, 0x00, 0x61, 0x8E,
-  0x00, 0x61, 0xF2, 0x00, 0x65, 0x4F, 0x00, 0x65, 0xE2, 0x00, 0x66, 0x91,
-  0x00, 0x68, 0x85, 0x00, 0x6D, 0x77, 0x00, 0x6E, 0x1A, 0x00, 0x6F, 0x22,
-  0x00, 0x71, 0x6E, 0x00, 0x72, 0x2B, 0x00, 0x74, 0x22, 0x00, 0x78, 0x91,
-  0x00, 0x79, 0x3E, 0x00, 0x79, 0x49, 0x00, 0x79, 0x48, 0x00, 0x79, 0x50,
-  0x00, 0x79, 0x56, 0x00, 0x79, 0x5D, 0x00, 0x79, 0x8D, 0x00, 0x79, 0x8E,
-  0x00, 0x7A, 0x40, 0x00, 0x7A, 0x81, 0x00, 0x7B, 0xC0, 0x00, 0x7D, 0xF4,
-  0x00, 0x7E, 0x09, 0x00, 0x7E, 0x41, 0x00, 0x7F, 0x72, 0x00, 0x80, 0x05,
-  0x00, 0x81, 0xED, 0x00, 0x82, 0x79, 0x00, 0x82, 0x79, 0x00, 0x84, 0x57,
-  0x00, 0x89, 0x10, 0x00, 0x89, 0x96, 0x00, 0x8B, 0x01, 0x00, 0x8B, 0x39,
-  0x00, 0x8C, 0xD3, 0x00, 0x8D, 0x08, 0x00, 0x8F, 0xB6, 0x00, 0x90, 0x38,
-  0x00, 0x96, 0xE3, 0x00, 0x97, 0xFF, 0x00, 0x98, 0x3B, 0x00, 0x4E, 0x26,
+  0x80, 0x11, 0x12, 0x80, 0x11, 0x6E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x4E, 0x00, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x8C,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x09, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x56, 0xDB, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x4E, 0x94, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x51, 0x6D,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x03, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x51, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x4E, 0x5D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x53, 0x41,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x67, 0x08, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x70, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x6C, 0x34, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x67, 0x28,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x91, 0xD1, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x57, 0x1F, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x65, 0xE5, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x68, 0x2A,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x67, 0x09, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x79, 0x3E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x54, 0x0D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x72, 0x79,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x8C, 0xA1, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x79, 0x5D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x52, 0xB4, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0xE3,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x54, 0x7C, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x5B, 0x66, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x76, 0xE3, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4F, 0x01,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x8C, 0xC7, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x53, 0x54, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x79, 0x6D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4F, 0x11,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x81, 0xEA, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x81, 0xF3, 0x00, 0x00, 0x29, 0x1C, 0x55, 0x4F,
+  0x1C, 0x5E, 0x7C, 0x1C, 0x65, 0x87, 0x1C, 0x7B, 0x8F, 0xB8, 0x00, 0x50,
+  0x80, 0x00, 0x54, 0x00, 0x00, 0x45, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x31,
+  0x9C, 0x00, 0x32, 0x00, 0x00, 0x32, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x33,
+  0x9C, 0x00, 0x32, 0x00, 0x00, 0x34, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x35,
+  0x9C, 0x00, 0x32, 0x00, 0x00, 0x36, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x37,
+  0x9C, 0x00, 0x32, 0x00, 0x00, 0x38, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x39,
+  0x9C, 0x00, 0x33, 0x00, 0x00, 0x30, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x31,
+  0x9C, 0x00, 0x33, 0x00, 0x00, 0x32, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x33,
+  0x9C, 0x00, 0x33, 0x00, 0x00, 0x34, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x35,
+  0x1C, 0x11, 0x00, 0x1C, 0x11, 0x02, 0x1C, 0x11, 0x03, 0x1C, 0x11, 0x05,
+  0x1C, 0x11, 0x06, 0x1C, 0x11, 0x07, 0x1C, 0x11, 0x09, 0x1C, 0x11, 0x0B,
+  0x1C, 0x11, 0x0C, 0x1C, 0x11, 0x0E, 0x1C, 0x11, 0x0F, 0x1C, 0x11, 0x10,
+  0x1C, 0x11, 0x11, 0x1C, 0x11, 0x12, 0x9C, 0x11, 0x00, 0x00, 0x11, 0x61,
+  0x9C, 0x11, 0x02, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x03, 0x00, 0x11, 0x61,
+  0x9C, 0x11, 0x05, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x06, 0x00, 0x11, 0x61,
+  0x9C, 0x11, 0x07, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x09, 0x00, 0x11, 0x61,
+  0x9C, 0x11, 0x0B, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0C, 0x00, 0x11, 0x61,
+  0x9C, 0x11, 0x0E, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0F, 0x00, 0x11, 0x61,
+  0x9C, 0x11, 0x10, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x11, 0x00, 0x11, 0x61,
+  0x9C, 0x11, 0x12, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0E, 0x80, 0x11, 0x61,
+  0x80, 0x11, 0xB7, 0x80, 0x11, 0x00, 0x00, 0x11, 0x69, 0x9C, 0x11, 0x0C,
+  0x80, 0x11, 0x6E, 0x80, 0x11, 0x0B, 0x00, 0x11, 0x74, 0x9C, 0x11, 0x0B,
+  0x00, 0x11, 0x6E, 0x1C, 0x4E, 0x00, 0x1C, 0x4E, 0x8C, 0x1C, 0x4E, 0x09,
+  0x1C, 0x56, 0xDB, 0x1C, 0x4E, 0x94, 0x1C, 0x51, 0x6D, 0x1C, 0x4E, 0x03,
+  0x1C, 0x51, 0x6B, 0x1C, 0x4E, 0x5D, 0x1C, 0x53, 0x41, 0x1C, 0x67, 0x08,
+  0x1C, 0x70, 0x6B, 0x1C, 0x6C, 0x34, 0x1C, 0x67, 0x28, 0x1C, 0x91, 0xD1,
+  0x1C, 0x57, 0x1F, 0x1C, 0x65, 0xE5, 0x1C, 0x68, 0x2A, 0x1C, 0x67, 0x09,
+  0x1C, 0x79, 0x3E, 0x1C, 0x54, 0x0D, 0x1C, 0x72, 0x79, 0x1C, 0x8C, 0xA1,
+  0x1C, 0x79, 0x5D, 0x1C, 0x52, 0xB4, 0x1C, 0x79, 0xD8, 0x1C, 0x75, 0x37,
+  0x1C, 0x59, 0x73, 0x1C, 0x90, 0x69, 0x1C, 0x51, 0x2A, 0x1C, 0x53, 0x70,
+  0x1C, 0x6C, 0xE8, 0x1C, 0x98, 0x05, 0x1C, 0x4F, 0x11, 0x1C, 0x51, 0x99,
+  0x1C, 0x6B, 0x63, 0x1C, 0x4E, 0x0A, 0x1C, 0x4E, 0x2D, 0x1C, 0x4E, 0x0B,
+  0x1C, 0x5D, 0xE6, 0x1C, 0x53, 0xF3, 0x1C, 0x53, 0x3B, 0x1C, 0x5B, 0x97,
+  0x1C, 0x5B, 0x66, 0x1C, 0x76, 0xE3, 0x1C, 0x4F, 0x01, 0x1C, 0x8C, 0xC7,
+  0x1C, 0x53, 0x54, 0x1C, 0x59, 0x1C, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x36,
+  0x9C, 0x00, 0x33, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x38,
+  0x9C, 0x00, 0x33, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x30,
+  0x9C, 0x00, 0x34, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x32,
+  0x9C, 0x00, 0x34, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x34,
+  0x9C, 0x00, 0x34, 0x00, 0x00, 0x35, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x36,
+  0x9C, 0x00, 0x34, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x38,
+  0x9C, 0x00, 0x34, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x35, 0x00, 0x00, 0x30,
+  0xC0, 0x00, 0x31, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x32, 0x00, 0x67, 0x08,
+  0xC0, 0x00, 0x33, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x34, 0x00, 0x67, 0x08,
+  0xC0, 0x00, 0x35, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x36, 0x00, 0x67, 0x08,
+  0xC0, 0x00, 0x37, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x38, 0x00, 0x67, 0x08,
+  0xC0, 0x00, 0x39, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30,
+  0x00, 0x67, 0x08, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x67, 0x08,
+  0xC0, 0x00, 0x31, 0x80, 0x00, 0x32, 0x00, 0x67, 0x08, 0xB8, 0x00, 0x48,
+  0x00, 0x00, 0x67, 0xB8, 0x00, 0x65, 0x80, 0x00, 0x72, 0x00, 0x00, 0x67,
+  0xB8, 0x00, 0x65, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x4C, 0x80, 0x00, 0x54,
+  0x00, 0x00, 0x44, 0x1C, 0x30, 0xA2, 0x1C, 0x30, 0xA4, 0x1C, 0x30, 0xA6,
+  0x1C, 0x30, 0xA8, 0x1C, 0x30, 0xAA, 0x1C, 0x30, 0xAB, 0x1C, 0x30, 0xAD,
+  0x1C, 0x30, 0xAF, 0x1C, 0x30, 0xB1, 0x1C, 0x30, 0xB3, 0x1C, 0x30, 0xB5,
+  0x1C, 0x30, 0xB7, 0x1C, 0x30, 0xB9, 0x1C, 0x30, 0xBB, 0x1C, 0x30, 0xBD,
+  0x1C, 0x30, 0xBF, 0x1C, 0x30, 0xC1, 0x1C, 0x30, 0xC4, 0x1C, 0x30, 0xC6,
+  0x1C, 0x30, 0xC8, 0x1C, 0x30, 0xCA, 0x1C, 0x30, 0xCB, 0x1C, 0x30, 0xCC,
+  0x1C, 0x30, 0xCD, 0x1C, 0x30, 0xCE, 0x1C, 0x30, 0xCF, 0x1C, 0x30, 0xD2,
+  0x1C, 0x30, 0xD5, 0x1C, 0x30, 0xD8, 0x1C, 0x30, 0xDB, 0x1C, 0x30, 0xDE,
+  0x1C, 0x30, 0xDF, 0x1C, 0x30, 0xE0, 0x1C, 0x30, 0xE1, 0x1C, 0x30, 0xE2,
+  0x1C, 0x30, 0xE4, 0x1C, 0x30, 0xE6, 0x1C, 0x30, 0xE8, 0x1C, 0x30, 0xE9,
+  0x1C, 0x30, 0xEA, 0x1C, 0x30, 0xEB, 0x1C, 0x30, 0xEC, 0x1C, 0x30, 0xED,
+  0x1C, 0x30, 0xEF, 0x1C, 0x30, 0xF0, 0x1C, 0x30, 0xF1, 0x1C, 0x30, 0xF2,
+  0xB8, 0x30, 0xA2, 0x80, 0x30, 0xD1, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC8,
+  0xB8, 0x30, 0xA2, 0x80, 0x30, 0xEB, 0x80, 0x30, 0xD5, 0x00, 0x30, 0xA1,
+  0xB8, 0x30, 0xA2, 0x80, 0x30, 0xF3, 0x80, 0x30, 0xDA, 0x00, 0x30, 0xA2,
+  0xB8, 0x30, 0xA2, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xA4,
+  0x80, 0x30, 0xCB, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB0, 0xB8, 0x30, 0xA4,
+  0x80, 0x30, 0xF3, 0x00, 0x30, 0xC1, 0xB8, 0x30, 0xA6, 0x80, 0x30, 0xA9,
+  0x00, 0x30, 0xF3, 0xB8, 0x30, 0xA8, 0x80, 0x30, 0xB9, 0x80, 0x30, 0xAF,
+  0x80, 0x30, 0xFC, 0x00, 0x30, 0xC9, 0xB8, 0x30, 0xA8, 0x80, 0x30, 0xFC,
+  0x80, 0x30, 0xAB, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAA, 0x80, 0x30, 0xF3,
+  0x00, 0x30, 0xB9, 0xB8, 0x30, 0xAA, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xE0,
+  0xB8, 0x30, 0xAB, 0x80, 0x30, 0xA4, 0x00, 0x30, 0xEA, 0xB8, 0x30, 0xAB,
+  0x80, 0x30, 0xE9, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xAB,
+  0x80, 0x30, 0xED, 0x80, 0x30, 0xEA, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAC,
+  0x80, 0x30, 0xED, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xAC, 0x80, 0x30, 0xF3,
+  0x00, 0x30, 0xDE, 0xB8, 0x30, 0xAE, 0x00, 0x30, 0xAC, 0xB8, 0x30, 0xAE,
+  0x80, 0x30, 0xCB, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xE5,
+  0x80, 0x30, 0xEA, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAE, 0x80, 0x30, 0xEB,
+  0x80, 0x30, 0xC0, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAD, 0x00, 0x30, 0xED,
+  0xB8, 0x30, 0xAD, 0x80, 0x30, 0xED, 0x80, 0x30, 0xB0, 0x80, 0x30, 0xE9,
+  0x00, 0x30, 0xE0, 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xED, 0x80, 0x30, 0xE1,
+  0x80, 0x30, 0xFC, 0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xAD,
+  0x80, 0x30, 0xED, 0x80, 0x30, 0xEF, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8,
+  0xB8, 0x30, 0xB0, 0x80, 0x30, 0xE9, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xB0,
+  0x80, 0x30, 0xE9, 0x80, 0x30, 0xE0, 0x80, 0x30, 0xC8, 0x00, 0x30, 0xF3,
+  0xB8, 0x30, 0xAF, 0x80, 0x30, 0xEB, 0x80, 0x30, 0xBC, 0x80, 0x30, 0xA4,
+  0x00, 0x30, 0xED, 0xB8, 0x30, 0xAF, 0x80, 0x30, 0xED, 0x80, 0x30, 0xFC,
+  0x00, 0x30, 0xCD, 0xB8, 0x30, 0xB1, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xB9,
+  0xB8, 0x30, 0xB3, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xCA, 0xB8, 0x30, 0xB3,
+  0x80, 0x30, 0xFC, 0x00, 0x30, 0xDD, 0xB8, 0x30, 0xB5, 0x80, 0x30, 0xA4,
+  0x80, 0x30, 0xAF, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xB5, 0x80, 0x30, 0xF3,
+  0x80, 0x30, 0xC1, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xB7,
+  0x80, 0x30, 0xEA, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB0, 0xB8, 0x30, 0xBB,
+  0x80, 0x30, 0xF3, 0x00, 0x30, 0xC1, 0xB8, 0x30, 0xBB, 0x80, 0x30, 0xF3,
+  0x00, 0x30, 0xC8, 0xB8, 0x30, 0xC0, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xB9,
+  0xB8, 0x30, 0xC7, 0x00, 0x30, 0xB7, 0xB8, 0x30, 0xC9, 0x00, 0x30, 0xEB,
+  0xB8, 0x30, 0xC8, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xCA, 0x00, 0x30, 0xCE,
+  0xB8, 0x30, 0xCE, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xCF,
+  0x80, 0x30, 0xA4, 0x00, 0x30, 0xC4, 0xB8, 0x30, 0xD1, 0x80, 0x30, 0xFC,
+  0x80, 0x30, 0xBB, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xD1,
+  0x80, 0x30, 0xFC, 0x00, 0x30, 0xC4, 0xB8, 0x30, 0xD0, 0x80, 0x30, 0xFC,
+  0x80, 0x30, 0xEC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x80, 0x30, 0xA2,
+  0x80, 0x30, 0xB9, 0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4,
+  0x80, 0x30, 0xAF, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x00, 0x30, 0xB3,
+  0xB8, 0x30, 0xD3, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD5, 0x80, 0x30, 0xA1,
+  0x80, 0x30, 0xE9, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC9, 0xB8, 0x30, 0xD5,
+  0x80, 0x30, 0xA3, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xD6,
+  0x80, 0x30, 0xC3, 0x80, 0x30, 0xB7, 0x80, 0x30, 0xA7, 0x00, 0x30, 0xEB,
+  0xB8, 0x30, 0xD5, 0x80, 0x30, 0xE9, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xD8,
+  0x80, 0x30, 0xAF, 0x80, 0x30, 0xBF, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB,
+  0xB8, 0x30, 0xDA, 0x00, 0x30, 0xBD, 0xB8, 0x30, 0xDA, 0x80, 0x30, 0xCB,
+  0x00, 0x30, 0xD2, 0xB8, 0x30, 0xD8, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xC4,
+  0xB8, 0x30, 0xDA, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xDA,
+  0x80, 0x30, 0xFC, 0x00, 0x30, 0xB8, 0xB8, 0x30, 0xD9, 0x80, 0x30, 0xFC,
+  0x00, 0x30, 0xBF, 0xB8, 0x30, 0xDD, 0x80, 0x30, 0xA4, 0x80, 0x30, 0xF3,
+  0x00, 0x30, 0xC8, 0xB8, 0x30, 0xDC, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xC8,
+  0xB8, 0x30, 0xDB, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDD, 0x80, 0x30, 0xF3,
+  0x00, 0x30, 0xC9, 0xB8, 0x30, 0xDB, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB,
+  0xB8, 0x30, 0xDB, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDE,
+  0x80, 0x30, 0xA4, 0x80, 0x30, 0xAF, 0x00, 0x30, 0xED, 0xB8, 0x30, 0xDE,
+  0x80, 0x30, 0xA4, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xC3,
+  0x00, 0x30, 0xCF, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xEB, 0x00, 0x30, 0xAF,
+  0xB8, 0x30, 0xDE, 0x80, 0x30, 0xF3, 0x80, 0x30, 0xB7, 0x80, 0x30, 0xE7,
+  0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDF, 0x80, 0x30, 0xAF, 0x80, 0x30, 0xED,
+  0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDF, 0x00, 0x30, 0xEA, 0xB8, 0x30, 0xDF,
+  0x80, 0x30, 0xEA, 0x80, 0x30, 0xD0, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB,
+  0xB8, 0x30, 0xE1, 0x00, 0x30, 0xAC, 0xB8, 0x30, 0xE1, 0x80, 0x30, 0xAC,
+  0x80, 0x30, 0xC8, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xE1, 0x80, 0x30, 0xFC,
+  0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE4, 0x80, 0x30, 0xFC,
+  0x00, 0x30, 0xC9, 0xB8, 0x30, 0xE4, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB,
+  0xB8, 0x30, 0xE6, 0x80, 0x30, 0xA2, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xEA,
+  0x80, 0x30, 0xC3, 0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xEA,
+  0x00, 0x30, 0xE9, 0xB8, 0x30, 0xEB, 0x80, 0x30, 0xD4, 0x00, 0x30, 0xFC,
+  0xB8, 0x30, 0xEB, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xD6, 0x00, 0x30, 0xEB,
+  0xB8, 0x30, 0xEC, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xEC, 0x80, 0x30, 0xF3,
+  0x80, 0x30, 0xC8, 0x80, 0x30, 0xB2, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xEF,
+  0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xC0, 0x00, 0x30, 0x00, 0x70, 0xB9,
+  0xC0, 0x00, 0x31, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x00, 0x70, 0xB9,
+  0xC0, 0x00, 0x33, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x34, 0x00, 0x70, 0xB9,
+  0xC0, 0x00, 0x35, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x36, 0x00, 0x70, 0xB9,
+  0xC0, 0x00, 0x37, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x38, 0x00, 0x70, 0xB9,
+  0xC0, 0x00, 0x39, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30,
+  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x70, 0xB9,
+  0xC0, 0x00, 0x31, 0x80, 0x00, 0x32, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31,
+  0x80, 0x00, 0x33, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34,
+  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x70, 0xB9,
+  0xC0, 0x00, 0x31, 0x80, 0x00, 0x36, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31,
+  0x80, 0x00, 0x37, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38,
+  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x70, 0xB9,
+  0xC0, 0x00, 0x32, 0x80, 0x00, 0x30, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32,
+  0x80, 0x00, 0x31, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x32,
+  0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x33, 0x00, 0x70, 0xB9,
+  0xC0, 0x00, 0x32, 0x80, 0x00, 0x34, 0x00, 0x70, 0xB9, 0xB8, 0x00, 0x68,
+  0x80, 0x00, 0x50, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x64, 0x00, 0x00, 0x61,
+  0xB8, 0x00, 0x41, 0x00, 0x00, 0x55, 0xB8, 0x00, 0x62, 0x80, 0x00, 0x61,
+  0x00, 0x00, 0x72, 0xB8, 0x00, 0x6F, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x70,
+  0x00, 0x00, 0x63, 0xB8, 0x00, 0x64, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x64,
+  0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x64, 0x80, 0x00, 0x6D,
+  0x00, 0x00, 0xB3, 0xB8, 0x00, 0x49, 0x00, 0x00, 0x55, 0xB8, 0x5E, 0x73,
+  0x00, 0x62, 0x10, 0xB8, 0x66, 0x2D, 0x00, 0x54, 0x8C, 0xB8, 0x59, 0x27,
+  0x00, 0x6B, 0x63, 0xB8, 0x66, 0x0E, 0x00, 0x6C, 0xBB, 0xB8, 0x68, 0x2A,
+  0x80, 0x5F, 0x0F, 0x80, 0x4F, 0x1A, 0x00, 0x79, 0x3E, 0xB8, 0x00, 0x70,
+  0x00, 0x00, 0x41, 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x41, 0xB8, 0x03, 0xBC,
+  0x00, 0x00, 0x41, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x6B,
+  0x00, 0x00, 0x41, 0xB8, 0x00, 0x4B, 0x00, 0x00, 0x42, 0xB8, 0x00, 0x4D,
+  0x00, 0x00, 0x42, 0xB8, 0x00, 0x47, 0x00, 0x00, 0x42, 0xB8, 0x00, 0x63,
+  0x80, 0x00, 0x61, 0x00, 0x00, 0x6C, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x63,
+  0x80, 0x00, 0x61, 0x00, 0x00, 0x6C, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x46,
+  0xB8, 0x00, 0x6E, 0x00, 0x00, 0x46, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x46,
+  0xB8, 0x03, 0xBC, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x67,
+  0xB8, 0x00, 0x6B, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x48, 0x00, 0x00, 0x7A,
+  0xB8, 0x00, 0x6B, 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x4D,
+  0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x47, 0x80, 0x00, 0x48,
+  0x00, 0x00, 0x7A, 0xB8, 0x00, 0x54, 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A,
+  0xB8, 0x03, 0xBC, 0x00, 0x21, 0x13, 0xB8, 0x00, 0x6D, 0x00, 0x21, 0x13,
+  0xB8, 0x00, 0x64, 0x00, 0x21, 0x13, 0xB8, 0x00, 0x6B, 0x00, 0x21, 0x13,
+  0xB8, 0x00, 0x66, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x6D,
+  0xB8, 0x03, 0xBC, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x6D,
+  0xB8, 0x00, 0x63, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x6D,
+  0xB8, 0x00, 0x6D, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x63,
+  0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0xB2,
+  0xB8, 0x00, 0x6B, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6D,
+  0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x6D,
+  0x00, 0x00, 0xB3, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x6B,
+  0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x6D, 0x80, 0x22, 0x15,
+  0x00, 0x00, 0x73, 0xB8, 0x00, 0x6D, 0x80, 0x22, 0x15, 0x80, 0x00, 0x73,
+  0x00, 0x00, 0xB2, 0xB8, 0x00, 0x50, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x6B,
+  0x80, 0x00, 0x50, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x4D, 0x80, 0x00, 0x50,
+  0x00, 0x00, 0x61, 0xB8, 0x00, 0x47, 0x80, 0x00, 0x50, 0x00, 0x00, 0x61,
+  0xB8, 0x00, 0x72, 0x80, 0x00, 0x61, 0x00, 0x00, 0x64, 0xB8, 0x00, 0x72,
+  0x80, 0x00, 0x61, 0x80, 0x00, 0x64, 0x80, 0x22, 0x15, 0x00, 0x00, 0x73,
+  0xB8, 0x00, 0x72, 0x80, 0x00, 0x61, 0x80, 0x00, 0x64, 0x80, 0x22, 0x15,
+  0x80, 0x00, 0x73, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x73,
+  0xB8, 0x00, 0x6E, 0x00, 0x00, 0x73, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x73,
+  0xB8, 0x00, 0x6D, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x56,
+  0xB8, 0x00, 0x6E, 0x00, 0x00, 0x56, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x56,
+  0xB8, 0x00, 0x6D, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x56,
+  0xB8, 0x00, 0x4D, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x57,
+  0xB8, 0x00, 0x6E, 0x00, 0x00, 0x57, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x57,
+  0xB8, 0x00, 0x6D, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x57,
+  0xB8, 0x00, 0x4D, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6B, 0x00, 0x03, 0xA9,
+  0xB8, 0x00, 0x4D, 0x00, 0x03, 0xA9, 0xB8, 0x00, 0x61, 0x80, 0x00, 0x2E,
+  0x80, 0x00, 0x6D, 0x00, 0x00, 0x2E, 0xB8, 0x00, 0x42, 0x00, 0x00, 0x71,
+  0xB8, 0x00, 0x63, 0x00, 0x00, 0x63, 0xB8, 0x00, 0x63, 0x00, 0x00, 0x64,
+  0xB8, 0x00, 0x43, 0x80, 0x22, 0x15, 0x80, 0x00, 0x6B, 0x00, 0x00, 0x67,
+  0xB8, 0x00, 0x43, 0x80, 0x00, 0x6F, 0x00, 0x00, 0x2E, 0xB8, 0x00, 0x64,
+  0x00, 0x00, 0x42, 0xB8, 0x00, 0x47, 0x00, 0x00, 0x79, 0xB8, 0x00, 0x68,
+  0x00, 0x00, 0x61, 0xB8, 0x00, 0x48, 0x00, 0x00, 0x50, 0xB8, 0x00, 0x69,
+  0x00, 0x00, 0x6E, 0xB8, 0x00, 0x4B, 0x00, 0x00, 0x4B, 0xB8, 0x00, 0x4B,
+  0x00, 0x00, 0x4D, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x74, 0xB8, 0x00, 0x6C,
+  0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x6E, 0xB8, 0x00, 0x6C,
+  0x80, 0x00, 0x6F, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x78,
+  0xB8, 0x00, 0x6D, 0x00, 0x00, 0x62, 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x69,
+  0x00, 0x00, 0x6C, 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x6F, 0x00, 0x00, 0x6C,
+  0xB8, 0x00, 0x50, 0x00, 0x00, 0x48, 0xB8, 0x00, 0x70, 0x80, 0x00, 0x2E,
+  0x80, 0x00, 0x6D, 0x00, 0x00, 0x2E, 0xB8, 0x00, 0x50, 0x80, 0x00, 0x50,
+  0x00, 0x00, 0x4D, 0xB8, 0x00, 0x50, 0x00, 0x00, 0x52, 0xB8, 0x00, 0x73,
+  0x00, 0x00, 0x72, 0xB8, 0x00, 0x53, 0x00, 0x00, 0x76, 0xB8, 0x00, 0x57,
+  0x00, 0x00, 0x62, 0xB8, 0x00, 0x56, 0x80, 0x22, 0x15, 0x00, 0x00, 0x6D,
+  0xB8, 0x00, 0x41, 0x80, 0x22, 0x15, 0x00, 0x00, 0x6D, 0xC0, 0x00, 0x31,
+  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x33,
+  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x34, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x35,
+  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x36, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x37,
+  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x38, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x39,
+  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x65, 0xE5,
+  0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31,
+  0x80, 0x00, 0x32, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33,
+  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x65, 0xE5,
+  0xC0, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31,
+  0x80, 0x00, 0x36, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37,
+  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x65, 0xE5,
+  0xC0, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32,
+  0x80, 0x00, 0x30, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x31,
+  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x32, 0x00, 0x65, 0xE5,
+  0xC0, 0x00, 0x32, 0x80, 0x00, 0x33, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32,
+  0x80, 0x00, 0x34, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x35,
+  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x36, 0x00, 0x65, 0xE5,
+  0xC0, 0x00, 0x32, 0x80, 0x00, 0x37, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32,
+  0x80, 0x00, 0x38, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x39,
+  0x00, 0x65, 0xE5, 0xC0, 0x00, 0x33, 0x80, 0x00, 0x30, 0x00, 0x65, 0xE5,
+  0xC0, 0x00, 0x33, 0x80, 0x00, 0x31, 0x00, 0x65, 0xE5, 0xB8, 0x00, 0x67,
+  0x80, 0x00, 0x61, 0x00, 0x00, 0x6C, 0x20, 0xA7, 0x6F, 0x00, 0x8C, 0x48,
+  0x00, 0x66, 0xF4, 0x00, 0x8E, 0xCA, 0x00, 0x8C, 0xC8, 0x00, 0x6E, 0xD1,
+  0x00, 0x4E, 0x32, 0x00, 0x53, 0xE5, 0x00, 0x9F, 0x9C, 0x00, 0x9F, 0x9C,
+  0x00, 0x59, 0x51, 0x00, 0x91, 0xD1, 0x00, 0x55, 0x87, 0x00, 0x59, 0x48,
+  0x00, 0x61, 0xF6, 0x00, 0x76, 0x69, 0x00, 0x7F, 0x85, 0x00, 0x86, 0x3F,
+  0x00, 0x87, 0xBA, 0x00, 0x88, 0xF8, 0x00, 0x90, 0x8F, 0x00, 0x6A, 0x02,
+  0x00, 0x6D, 0x1B, 0x00, 0x70, 0xD9, 0x00, 0x73, 0xDE, 0x00, 0x84, 0x3D,
+  0x00, 0x91, 0x6A, 0x00, 0x99, 0xF1, 0x00, 0x4E, 0x82, 0x00, 0x53, 0x75,
+  0x00, 0x6B, 0x04, 0x00, 0x72, 0x1B, 0x00, 0x86, 0x2D, 0x00, 0x9E, 0x1E,
+  0x00, 0x5D, 0x50, 0x00, 0x6F, 0xEB, 0x00, 0x85, 0xCD, 0x00, 0x89, 0x64,
+  0x00, 0x62, 0xC9, 0x00, 0x81, 0xD8, 0x00, 0x88, 0x1F, 0x00, 0x5E, 0xCA,
+  0x00, 0x67, 0x17, 0x00, 0x6D, 0x6A, 0x00, 0x72, 0xFC, 0x00, 0x90, 0xCE,
+  0x00, 0x4F, 0x86, 0x00, 0x51, 0xB7, 0x00, 0x52, 0xDE, 0x00, 0x64, 0xC4,
+  0x00, 0x6A, 0xD3, 0x00, 0x72, 0x10, 0x00, 0x76, 0xE7, 0x00, 0x80, 0x01,
+  0x00, 0x86, 0x06, 0x00, 0x86, 0x5C, 0x00, 0x8D, 0xEF, 0x00, 0x97, 0x32,
+  0x00, 0x9B, 0x6F, 0x00, 0x9D, 0xFA, 0x00, 0x78, 0x8C, 0x00, 0x79, 0x7F,
+  0x00, 0x7D, 0xA0, 0x00, 0x83, 0xC9, 0x00, 0x93, 0x04, 0x00, 0x9E, 0x7F,
+  0x00, 0x8A, 0xD6, 0x00, 0x58, 0xDF, 0x00, 0x5F, 0x04, 0x00, 0x7C, 0x60,
+  0x00, 0x80, 0x7E, 0x00, 0x72, 0x62, 0x00, 0x78, 0xCA, 0x00, 0x8C, 0xC2,
+  0x00, 0x96, 0xF7, 0x00, 0x58, 0xD8, 0x00, 0x5C, 0x62, 0x00, 0x6A, 0x13,
+  0x00, 0x6D, 0xDA, 0x00, 0x6F, 0x0F, 0x00, 0x7D, 0x2F, 0x00, 0x7E, 0x37,
+  0x00, 0x96, 0x4B, 0x00, 0x52, 0xD2, 0x00, 0x80, 0x8B, 0x00, 0x51, 0xDC,
+  0x00, 0x51, 0xCC, 0x00, 0x7A, 0x1C, 0x00, 0x7D, 0xBE, 0x00, 0x83, 0xF1,
+  0x00, 0x96, 0x75, 0x00, 0x8B, 0x80, 0x00, 0x62, 0xCF, 0x00, 0x6A, 0x02,
+  0x00, 0x8A, 0xFE, 0x00, 0x4E, 0x39, 0x00, 0x5B, 0xE7, 0x00, 0x60, 0x12,
+  0x00, 0x73, 0x87, 0x00, 0x75, 0x70, 0x00, 0x53, 0x17, 0x00, 0x78, 0xFB,
+  0x00, 0x4F, 0xBF, 0x00, 0x5F, 0xA9, 0x00, 0x4E, 0x0D, 0x00, 0x6C, 0xCC,
+  0x00, 0x65, 0x78, 0x00, 0x7D, 0x22, 0x00, 0x53, 0xC3, 0x00, 0x58, 0x5E,
+  0x00, 0x77, 0x01, 0x00, 0x84, 0x49, 0x00, 0x8A, 0xAA, 0x00, 0x6B, 0xBA,
+  0x00, 0x8F, 0xB0, 0x00, 0x6C, 0x88, 0x00, 0x62, 0xFE, 0x00, 0x82, 0xE5,
+  0x00, 0x63, 0xA0, 0x00, 0x75, 0x65, 0x00, 0x4E, 0xAE, 0x00, 0x51, 0x69,
+  0x00, 0x51, 0xC9, 0x00, 0x68, 0x81, 0x00, 0x7C, 0xE7, 0x00, 0x82, 0x6F,
+  0x00, 0x8A, 0xD2, 0x00, 0x91, 0xCF, 0x00, 0x52, 0xF5, 0x00, 0x54, 0x42,
+  0x00, 0x59, 0x73, 0x00, 0x5E, 0xEC, 0x00, 0x65, 0xC5, 0x00, 0x6F, 0xFE,
+  0x00, 0x79, 0x2A, 0x00, 0x95, 0xAD, 0x00, 0x9A, 0x6A, 0x00, 0x9E, 0x97,
+  0x00, 0x9E, 0xCE, 0x00, 0x52, 0x9B, 0x00, 0x66, 0xC6, 0x00, 0x6B, 0x77,
+  0x00, 0x8F, 0x62, 0x00, 0x5E, 0x74, 0x00, 0x61, 0x90, 0x00, 0x62, 0x00,
+  0x00, 0x64, 0x9A, 0x00, 0x6F, 0x23, 0x00, 0x71, 0x49, 0x00, 0x74, 0x89,
+  0x00, 0x79, 0xCA, 0x00, 0x7D, 0xF4, 0x00, 0x80, 0x6F, 0x00, 0x8F, 0x26,
+  0x00, 0x84, 0xEE, 0x00, 0x90, 0x23, 0x00, 0x93, 0x4A, 0x00, 0x52, 0x17,
+  0x00, 0x52, 0xA3, 0x00, 0x54, 0xBD, 0x00, 0x70, 0xC8, 0x00, 0x88, 0xC2,
+  0x00, 0x8A, 0xAA, 0x00, 0x5E, 0xC9, 0x00, 0x5F, 0xF5, 0x00, 0x63, 0x7B,
+  0x00, 0x6B, 0xAE, 0x00, 0x7C, 0x3E, 0x00, 0x73, 0x75, 0x00, 0x4E, 0xE4,
+  0x00, 0x56, 0xF9, 0x00, 0x5B, 0xE7, 0x00, 0x5D, 0xBA, 0x00, 0x60, 0x1C,
+  0x00, 0x73, 0xB2, 0x00, 0x74, 0x69, 0x00, 0x7F, 0x9A, 0x00, 0x80, 0x46,
+  0x00, 0x92, 0x34, 0x00, 0x96, 0xF6, 0x00, 0x97, 0x48, 0x00, 0x98, 0x18,
+  0x00, 0x4F, 0x8B, 0x00, 0x79, 0xAE, 0x00, 0x91, 0xB4, 0x00, 0x96, 0xB8,
+  0x00, 0x60, 0xE1, 0x00, 0x4E, 0x86, 0x00, 0x50, 0xDA, 0x00, 0x5B, 0xEE,
+  0x00, 0x5C, 0x3F, 0x00, 0x65, 0x99, 0x00, 0x6A, 0x02, 0x00, 0x71, 0xCE,
+  0x00, 0x76, 0x42, 0x00, 0x84, 0xFC, 0x00, 0x90, 0x7C, 0x00, 0x9F, 0x8D,
+  0x00, 0x66, 0x88, 0x00, 0x96, 0x2E, 0x00, 0x52, 0x89, 0x00, 0x67, 0x7B,
+  0x00, 0x67, 0xF3, 0x00, 0x6D, 0x41, 0x00, 0x6E, 0x9C, 0x00, 0x74, 0x09,
+  0x00, 0x75, 0x59, 0x00, 0x78, 0x6B, 0x00, 0x7D, 0x10, 0x00, 0x98, 0x5E,
+  0x00, 0x51, 0x6D, 0x00, 0x62, 0x2E, 0x00, 0x96, 0x78, 0x00, 0x50, 0x2B,
+  0x00, 0x5D, 0x19, 0x00, 0x6D, 0xEA, 0x00, 0x8F, 0x2A, 0x00, 0x5F, 0x8B,
+  0x00, 0x61, 0x44, 0x00, 0x68, 0x17, 0x00, 0x73, 0x87, 0x00, 0x96, 0x86,
+  0x00, 0x52, 0x29, 0x00, 0x54, 0x0F, 0x00, 0x5C, 0x65, 0x00, 0x66, 0x13,
+  0x00, 0x67, 0x4E, 0x00, 0x68, 0xA8, 0x00, 0x6C, 0xE5, 0x00, 0x74, 0x06,
+  0x00, 0x75, 0xE2, 0x00, 0x7F, 0x79, 0x00, 0x88, 0xCF, 0x00, 0x88, 0xE1,
+  0x00, 0x91, 0xCC, 0x00, 0x96, 0xE2, 0x00, 0x53, 0x3F, 0x00, 0x6E, 0xBA,
+  0x00, 0x54, 0x1D, 0x00, 0x71, 0xD0, 0x00, 0x74, 0x98, 0x00, 0x85, 0xFA,
+  0x00, 0x96, 0xA3, 0x00, 0x9C, 0x57, 0x00, 0x9E, 0x9F, 0x00, 0x67, 0x97,
+  0x00, 0x6D, 0xCB, 0x00, 0x81, 0xE8, 0x00, 0x7A, 0xCB, 0x00, 0x7B, 0x20,
+  0x00, 0x7C, 0x92, 0x00, 0x72, 0xC0, 0x00, 0x70, 0x99, 0x00, 0x8B, 0x58,
+  0x00, 0x4E, 0xC0, 0x00, 0x83, 0x36, 0x00, 0x52, 0x3A, 0x00, 0x52, 0x07,
+  0x00, 0x5E, 0xA6, 0x00, 0x62, 0xD3, 0x00, 0x7C, 0xD6, 0x00, 0x5B, 0x85,
+  0x00, 0x6D, 0x1E, 0x00, 0x66, 0xB4, 0x00, 0x8F, 0x3B, 0x00, 0x88, 0x4C,
+  0x00, 0x96, 0x4D, 0x00, 0x89, 0x8B, 0x00, 0x5E, 0xD3, 0x00, 0x51, 0x40,
+  0x00, 0x55, 0xC0, 0x00, 0x58, 0x5A, 0x00, 0x66, 0x74, 0x00, 0x51, 0xDE,
+  0x00, 0x73, 0x2A, 0x00, 0x76, 0xCA, 0x00, 0x79, 0x3C, 0x00, 0x79, 0x5E,
+  0x00, 0x79, 0x65, 0x00, 0x79, 0x8F, 0x00, 0x97, 0x56, 0x00, 0x7C, 0xBE,
+  0x00, 0x7F, 0xBD, 0x00, 0x86, 0x12, 0x00, 0x8A, 0xF8, 0x00, 0x90, 0x38,
+  0x00, 0x90, 0xFD, 0x00, 0x98, 0xEF, 0x00, 0x98, 0xFC, 0x00, 0x99, 0x28,
+  0x00, 0x9D, 0xB4, 0x00, 0x4F, 0xAE, 0x00, 0x50, 0xE7, 0x00, 0x51, 0x4D,
+  0x00, 0x52, 0xC9, 0x00, 0x52, 0xE4, 0x00, 0x53, 0x51, 0x00, 0x55, 0x9D,
+  0x00, 0x56, 0x06, 0x00, 0x56, 0x68, 0x00, 0x58, 0x40, 0x00, 0x58, 0xA8,
+  0x00, 0x5C, 0x64, 0x00, 0x5C, 0x6E, 0x00, 0x60, 0x94, 0x00, 0x61, 0x68,
+  0x00, 0x61, 0x8E, 0x00, 0x61, 0xF2, 0x00, 0x65, 0x4F, 0x00, 0x65, 0xE2,
+  0x00, 0x66, 0x91, 0x00, 0x68, 0x85, 0x00, 0x6D, 0x77, 0x00, 0x6E, 0x1A,
+  0x00, 0x6F, 0x22, 0x00, 0x71, 0x6E, 0x00, 0x72, 0x2B, 0x00, 0x74, 0x22,
+  0x00, 0x78, 0x91, 0x00, 0x79, 0x3E, 0x00, 0x79, 0x49, 0x00, 0x79, 0x48,
+  0x00, 0x79, 0x50, 0x00, 0x79, 0x56, 0x00, 0x79, 0x5D, 0x00, 0x79, 0x8D,
+  0x00, 0x79, 0x8E, 0x00, 0x7A, 0x40, 0x00, 0x7A, 0x81, 0x00, 0x7B, 0xC0,
+  0x00, 0x7D, 0xF4, 0x00, 0x7E, 0x09, 0x00, 0x7E, 0x41, 0x00, 0x7F, 0x72,
+  0x00, 0x80, 0x05, 0x00, 0x81, 0xED, 0x00, 0x82, 0x79, 0x00, 0x82, 0x79,
+  0x00, 0x84, 0x57, 0x00, 0x89, 0x10, 0x00, 0x89, 0x96, 0x00, 0x8B, 0x01,
+  0x00, 0x8B, 0x39, 0x00, 0x8C, 0xD3, 0x00, 0x8D, 0x08, 0x00, 0x8F, 0xB6,
+  0x00, 0x90, 0x38, 0x00, 0x96, 0xE3, 0x00, 0x97, 0xFF, 0x00, 0x98, 0x3B,
+  0x00, 0x60, 0x75, 0x02, 0x42, 0xEE, 0x00, 0x82, 0x18, 0x00, 0x4E, 0x26,
   0x00, 0x51, 0xB5, 0x00, 0x51, 0x68, 0x00, 0x4F, 0x80, 0x00, 0x51, 0x45,
   0x00, 0x51, 0x80, 0x00, 0x52, 0xC7, 0x00, 0x52, 0xFA, 0x00, 0x55, 0x9D,
   0x00, 0x55, 0x55, 0x00, 0x55, 0x99, 0x00, 0x55, 0xE2, 0x00, 0x58, 0x5A,
@@ -1635,191 +1642,178 @@ const unsigned char gl_uninorm_decomp_chars_table[] =
   0x2C, 0x00, 0xA2, 0x2C, 0x00, 0xA3, 0x2C, 0x00, 0xAC, 0x2C, 0x00, 0xAF,
   0x2C, 0x00, 0xA6, 0x2C, 0x00, 0xA5, 0x2C, 0x20, 0xA9, 0x30, 0x25, 0x02,
   0x30, 0x21, 0x90, 0x30, 0x21, 0x91, 0x30, 0x21, 0x92, 0x30, 0x21, 0x93,
-  0x30, 0x25, 0xA0, 0x30, 0x25, 0xCB, 0x81, 0xD1, 0x57, 0x01, 0xD1, 0x65,
-  0x81, 0xD1, 0x58, 0x01, 0xD1, 0x65, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x6E,
-  0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x6F, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x70,
-  0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x71, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x72,
-  0x81, 0xD1, 0xB9, 0x01, 0xD1, 0x65, 0x81, 0xD1, 0xBA, 0x01, 0xD1, 0x65,
-  0x81, 0xD1, 0xBB, 0x01, 0xD1, 0x6E, 0x81, 0xD1, 0xBC, 0x01, 0xD1, 0x6E,
-  0x81, 0xD1, 0xBB, 0x01, 0xD1, 0x6F, 0x81, 0xD1, 0xBC, 0x01, 0xD1, 0x6F,
-  0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
-  0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
-  0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
-  0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
-  0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
-  0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
-  0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
-  0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
-  0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
-  0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
-  0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
-  0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
-  0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
-  0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
-  0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
-  0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
-  0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
-  0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
-  0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
-  0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
-  0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
-  0x04, 0x00, 0x67, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B,
-  0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F,
-  0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73,
-  0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77,
-  0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41,
-  0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45,
-  0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49,
-  0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D,
-  0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51,
-  0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55,
-  0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59,
-  0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63,
-  0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67,
-  0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B,
-  0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F,
-  0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73,
-  0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77,
-  0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41,
-  0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x47, 0x04, 0x00, 0x4A,
-  0x04, 0x00, 0x4B, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
-  0x04, 0x00, 0x51, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55,
-  0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59,
-  0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63,
-  0x04, 0x00, 0x64, 0x04, 0x00, 0x66, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69,
+  0x30, 0x25, 0xA0, 0x30, 0x25, 0xCB, 0x81, 0x10, 0x99, 0x01, 0x10, 0xBA,
+  0x81, 0x10, 0x9B, 0x01, 0x10, 0xBA, 0x81, 0x10, 0xA5, 0x01, 0x10, 0xBA,
+  0x81, 0xD1, 0x57, 0x01, 0xD1, 0x65, 0x81, 0xD1, 0x58, 0x01, 0xD1, 0x65,
+  0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x6E, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x6F,
+  0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x70, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x71,
+  0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x72, 0x81, 0xD1, 0xB9, 0x01, 0xD1, 0x65,
+  0x81, 0xD1, 0xBA, 0x01, 0xD1, 0x65, 0x81, 0xD1, 0xBB, 0x01, 0xD1, 0x6E,
+  0x81, 0xD1, 0xBC, 0x01, 0xD1, 0x6E, 0x81, 0xD1, 0xBB, 0x01, 0xD1, 0x6F,
+  0x81, 0xD1, 0xBC, 0x01, 0xD1, 0x6F, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42,
+  0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46,
+  0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A,
+  0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E,
+  0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52,
+  0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56,
+  0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A,
+  0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64,
+  0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68,
+  0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C,
+  0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70,
+  0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74,
+  0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78,
+  0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42,
+  0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46,
+  0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A,
+  0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E,
+  0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52,
+  0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56,
+  0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A,
+  0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64,
+  0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x69,
   0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D,
-  0x04, 0x00, 0x6E, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
-  0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
-  0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
-  0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
-  0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
-  0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
-  0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
-  0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
-  0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
-  0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
-  0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
-  0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
-  0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
-  0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
-  0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
-  0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
-  0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45,
-  0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B,
+  0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71,
+  0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75,
+  0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79,
+  0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43,
+  0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47,
+  0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B,
   0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F,
-  0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
-  0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
-  0x04, 0x00, 0x59, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63,
-  0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67,
-  0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B,
-  0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F,
-  0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73,
-  0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77,
-  0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41,
-  0x04, 0x00, 0x42, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46,
-  0x04, 0x00, 0x47, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B,
-  0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x53,
+  0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53,
   0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57,
-  0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
-  0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
-  0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
-  0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
-  0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
-  0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
-  0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
-  0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
-  0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
-  0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
-  0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
-  0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
-  0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
-  0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
-  0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
-  0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
-  0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
-  0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
-  0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
-  0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
-  0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
-  0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
-  0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
-  0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
-  0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
-  0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
-  0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
-  0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
-  0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
-  0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
-  0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
-  0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
-  0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
-  0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
-  0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
-  0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
-  0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
-  0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
-  0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
-  0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
-  0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
-  0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
-  0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
-  0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
-  0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
-  0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
-  0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
-  0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
-  0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
-  0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
-  0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
-  0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
-  0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
-  0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
-  0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
-  0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
-  0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
-  0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
-  0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
-  0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
-  0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
-  0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
-  0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
-  0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
-  0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
-  0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
-  0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
-  0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
-  0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
-  0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
-  0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
-  0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
-  0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
-  0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48,
-  0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C,
-  0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50,
-  0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54,
-  0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58,
-  0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, 0x04, 0x00, 0x62,
-  0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, 0x04, 0x00, 0x66,
-  0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A,
-  0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E,
-  0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, 0x04, 0x00, 0x72,
-  0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, 0x04, 0x00, 0x76,
-  0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A,
-  0x04, 0x01, 0x31, 0x04, 0x02, 0x37, 0x04, 0x03, 0x91, 0x04, 0x03, 0x92,
-  0x04, 0x03, 0x93, 0x04, 0x03, 0x94, 0x04, 0x03, 0x95, 0x04, 0x03, 0x96,
-  0x04, 0x03, 0x97, 0x04, 0x03, 0x98, 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A,
-  0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E,
-  0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4,
-  0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6,
-  0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07,
-  0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4,
-  0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8,
-  0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC,
-  0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0,
-  0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4,
-  0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8,
-  0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1,
-  0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6,
+  0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61,
+  0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65,
+  0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69,
+  0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D,
+  0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71,
+  0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75,
+  0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79,
+  0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44,
+  0x04, 0x00, 0x47, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4E,
+  0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x53,
+  0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57,
+  0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61,
+  0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x66,
+  0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B,
+  0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x70,
+  0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74,
+  0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78,
+  0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42,
+  0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46,
+  0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A,
+  0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E,
+  0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52,
+  0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56,
+  0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A,
+  0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64,
+  0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68,
+  0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C,
+  0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70,
+  0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74,
+  0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78,
+  0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42,
+  0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47,
+  0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D,
+  0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51,
+  0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56,
+  0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x61,
+  0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65,
+  0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69,
+  0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D,
+  0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71,
+  0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75,
+  0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79,
+  0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x44,
+  0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x49,
+  0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D,
+  0x04, 0x00, 0x4F, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55,
+  0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59,
+  0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64,
+  0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68,
+  0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C,
+  0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70,
+  0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74,
+  0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78,
+  0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42,
+  0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46,
+  0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A,
+  0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E,
+  0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52,
+  0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56,
+  0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A,
+  0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64,
+  0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68,
+  0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C,
+  0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70,
+  0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74,
+  0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78,
+  0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42,
+  0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46,
+  0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A,
+  0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E,
+  0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52,
+  0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56,
+  0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A,
+  0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64,
+  0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68,
+  0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C,
+  0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70,
+  0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74,
+  0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78,
+  0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42,
+  0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46,
+  0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A,
+  0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E,
+  0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52,
+  0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56,
+  0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A,
+  0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64,
+  0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68,
+  0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C,
+  0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70,
+  0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74,
+  0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78,
+  0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42,
+  0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46,
+  0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A,
+  0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E,
+  0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52,
+  0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56,
+  0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A,
+  0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64,
+  0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68,
+  0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C,
+  0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70,
+  0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74,
+  0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78,
+  0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42,
+  0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46,
+  0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A,
+  0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E,
+  0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52,
+  0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56,
+  0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A,
+  0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64,
+  0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68,
+  0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C,
+  0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70,
+  0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74,
+  0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78,
+  0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42,
+  0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46,
+  0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A,
+  0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E,
+  0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52,
+  0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56,
+  0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A,
+  0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64,
+  0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68,
+  0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C,
+  0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70,
+  0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74,
+  0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78,
+  0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x01, 0x31, 0x04, 0x02, 0x37,
   0x04, 0x03, 0x91, 0x04, 0x03, 0x92, 0x04, 0x03, 0x93, 0x04, 0x03, 0x94,
   0x04, 0x03, 0x95, 0x04, 0x03, 0x96, 0x04, 0x03, 0x97, 0x04, 0x03, 0x98,
   0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C,
@@ -1878,9 +1872,21 @@ const unsigned char gl_uninorm_decomp_chars_table[] =
   0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8,
   0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1,
   0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6,
-  0x04, 0x03, 0xDC, 0x04, 0x03, 0xDD, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31,
-  0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, 0x04, 0x00, 0x35,
-  0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, 0x04, 0x00, 0x39,
+  0x04, 0x03, 0x91, 0x04, 0x03, 0x92, 0x04, 0x03, 0x93, 0x04, 0x03, 0x94,
+  0x04, 0x03, 0x95, 0x04, 0x03, 0x96, 0x04, 0x03, 0x97, 0x04, 0x03, 0x98,
+  0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C,
+  0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0,
+  0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4,
+  0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8,
+  0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2,
+  0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6,
+  0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA,
+  0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE,
+  0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2,
+  0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6,
+  0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02,
+  0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5,
+  0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, 0x04, 0x03, 0xDC, 0x04, 0x03, 0xDD,
   0x04, 0x00, 0x30, 0x04, 0x00, 0x31, 0x04, 0x00, 0x32, 0x04, 0x00, 0x33,
   0x04, 0x00, 0x34, 0x04, 0x00, 0x35, 0x04, 0x00, 0x36, 0x04, 0x00, 0x37,
   0x04, 0x00, 0x38, 0x04, 0x00, 0x39, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31,
@@ -1891,142 +1897,201 @@ const unsigned char gl_uninorm_decomp_chars_table[] =
   0x04, 0x00, 0x38, 0x04, 0x00, 0x39, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31,
   0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, 0x04, 0x00, 0x35,
   0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, 0x04, 0x00, 0x39,
-  0x00, 0x4E, 0x3D, 0x00, 0x4E, 0x38, 0x00, 0x4E, 0x41, 0x02, 0x01, 0x22,
-  0x00, 0x4F, 0x60, 0x00, 0x4F, 0xAE, 0x00, 0x4F, 0xBB, 0x00, 0x50, 0x02,
-  0x00, 0x50, 0x7A, 0x00, 0x50, 0x99, 0x00, 0x50, 0xE7, 0x00, 0x50, 0xCF,
-  0x00, 0x34, 0x9E, 0x02, 0x06, 0x3A, 0x00, 0x51, 0x4D, 0x00, 0x51, 0x54,
-  0x00, 0x51, 0x64, 0x00, 0x51, 0x77, 0x02, 0x05, 0x1C, 0x00, 0x34, 0xB9,
-  0x00, 0x51, 0x67, 0x00, 0x51, 0x8D, 0x02, 0x05, 0x4B, 0x00, 0x51, 0x97,
-  0x00, 0x51, 0xA4, 0x00, 0x4E, 0xCC, 0x00, 0x51, 0xAC, 0x00, 0x51, 0xB5,
-  0x02, 0x91, 0xDF, 0x00, 0x51, 0xF5, 0x00, 0x52, 0x03, 0x00, 0x34, 0xDF,
-  0x00, 0x52, 0x3B, 0x00, 0x52, 0x46, 0x00, 0x52, 0x72, 0x00, 0x52, 0x77,
-  0x00, 0x35, 0x15, 0x00, 0x52, 0xC7, 0x00, 0x52, 0xC9, 0x00, 0x52, 0xE4,
-  0x00, 0x52, 0xFA, 0x00, 0x53, 0x05, 0x00, 0x53, 0x06, 0x00, 0x53, 0x17,
-  0x00, 0x53, 0x49, 0x00, 0x53, 0x51, 0x00, 0x53, 0x5A, 0x00, 0x53, 0x73,
-  0x00, 0x53, 0x7D, 0x00, 0x53, 0x7F, 0x00, 0x53, 0x7F, 0x00, 0x53, 0x7F,
-  0x02, 0x0A, 0x2C, 0x00, 0x70, 0x70, 0x00, 0x53, 0xCA, 0x00, 0x53, 0xDF,
-  0x02, 0x0B, 0x63, 0x00, 0x53, 0xEB, 0x00, 0x53, 0xF1, 0x00, 0x54, 0x06,
-  0x00, 0x54, 0x9E, 0x00, 0x54, 0x38, 0x00, 0x54, 0x48, 0x00, 0x54, 0x68,
-  0x00, 0x54, 0xA2, 0x00, 0x54, 0xF6, 0x00, 0x55, 0x10, 0x00, 0x55, 0x53,
-  0x00, 0x55, 0x63, 0x00, 0x55, 0x84, 0x00, 0x55, 0x84, 0x00, 0x55, 0x99,
-  0x00, 0x55, 0xAB, 0x00, 0x55, 0xB3, 0x00, 0x55, 0xC2, 0x00, 0x57, 0x16,
-  0x00, 0x56, 0x06, 0x00, 0x57, 0x17, 0x00, 0x56, 0x51, 0x00, 0x56, 0x74,
-  0x00, 0x52, 0x07, 0x00, 0x58, 0xEE, 0x00, 0x57, 0xCE, 0x00, 0x57, 0xF4,
-  0x00, 0x58, 0x0D, 0x00, 0x57, 0x8B, 0x00, 0x58, 0x32, 0x00, 0x58, 0x31,
-  0x00, 0x58, 0xAC, 0x02, 0x14, 0xE4, 0x00, 0x58, 0xF2, 0x00, 0x58, 0xF7,
-  0x00, 0x59, 0x06, 0x00, 0x59, 0x1A, 0x00, 0x59, 0x22, 0x00, 0x59, 0x62,
-  0x02, 0x16, 0xA8, 0x02, 0x16, 0xEA, 0x00, 0x59, 0xEC, 0x00, 0x5A, 0x1B,
-  0x00, 0x5A, 0x27, 0x00, 0x59, 0xD8, 0x00, 0x5A, 0x66, 0x00, 0x36, 0xEE,
-  0x00, 0x36, 0xFC, 0x00, 0x5B, 0x08, 0x00, 0x5B, 0x3E, 0x00, 0x5B, 0x3E,
-  0x02, 0x19, 0xC8, 0x00, 0x5B, 0xC3, 0x00, 0x5B, 0xD8, 0x00, 0x5B, 0xE7,
-  0x00, 0x5B, 0xF3, 0x02, 0x1B, 0x18, 0x00, 0x5B, 0xFF, 0x00, 0x5C, 0x06,
-  0x00, 0x5F, 0x53, 0x00, 0x5C, 0x22, 0x00, 0x37, 0x81, 0x00, 0x5C, 0x60,
-  0x00, 0x5C, 0x6E, 0x00, 0x5C, 0xC0, 0x00, 0x5C, 0x8D, 0x02, 0x1D, 0xE4,
-  0x00, 0x5D, 0x43, 0x02, 0x1D, 0xE6, 0x00, 0x5D, 0x6E, 0x00, 0x5D, 0x6B,
-  0x00, 0x5D, 0x7C, 0x00, 0x5D, 0xE1, 0x00, 0x5D, 0xE2, 0x00, 0x38, 0x2F,
-  0x00, 0x5D, 0xFD, 0x00, 0x5E, 0x28, 0x00, 0x5E, 0x3D, 0x00, 0x5E, 0x69,
-  0x00, 0x38, 0x62, 0x02, 0x21, 0x83, 0x00, 0x38, 0x7C, 0x00, 0x5E, 0xB0,
-  0x00, 0x5E, 0xB3, 0x00, 0x5E, 0xB6, 0x00, 0x5E, 0xCA, 0x02, 0xA3, 0x92,
-  0x00, 0x5E, 0xFE, 0x02, 0x23, 0x31, 0x02, 0x23, 0x31, 0x00, 0x82, 0x01,
-  0x00, 0x5F, 0x22, 0x00, 0x5F, 0x22, 0x00, 0x38, 0xC7, 0x02, 0x32, 0xB8,
-  0x02, 0x61, 0xDA, 0x00, 0x5F, 0x62, 0x00, 0x5F, 0x6B, 0x00, 0x38, 0xE3,
-  0x00, 0x5F, 0x9A, 0x00, 0x5F, 0xCD, 0x00, 0x5F, 0xD7, 0x00, 0x5F, 0xF9,
-  0x00, 0x60, 0x81, 0x00, 0x39, 0x3A, 0x00, 0x39, 0x1C, 0x00, 0x60, 0x94,
-  0x02, 0x26, 0xD4, 0x00, 0x60, 0xC7, 0x00, 0x61, 0x48, 0x00, 0x61, 0x4C,
-  0x00, 0x61, 0x4E, 0x00, 0x61, 0x4C, 0x00, 0x61, 0x7A, 0x00, 0x61, 0x8E,
-  0x00, 0x61, 0xB2, 0x00, 0x61, 0xA4, 0x00, 0x61, 0xAF, 0x00, 0x61, 0xDE,
-  0x00, 0x61, 0xF2, 0x00, 0x61, 0xF6, 0x00, 0x62, 0x10, 0x00, 0x62, 0x1B,
-  0x00, 0x62, 0x5D, 0x00, 0x62, 0xB1, 0x00, 0x62, 0xD4, 0x00, 0x63, 0x50,
-  0x02, 0x2B, 0x0C, 0x00, 0x63, 0x3D, 0x00, 0x62, 0xFC, 0x00, 0x63, 0x68,
-  0x00, 0x63, 0x83, 0x00, 0x63, 0xE4, 0x02, 0x2B, 0xF1, 0x00, 0x64, 0x22,
-  0x00, 0x63, 0xC5, 0x00, 0x63, 0xA9, 0x00, 0x3A, 0x2E, 0x00, 0x64, 0x69,
-  0x00, 0x64, 0x7E, 0x00, 0x64, 0x9D, 0x00, 0x64, 0x77, 0x00, 0x3A, 0x6C,
-  0x00, 0x65, 0x4F, 0x00, 0x65, 0x6C, 0x02, 0x30, 0x0A, 0x00, 0x65, 0xE3,
-  0x00, 0x66, 0xF8, 0x00, 0x66, 0x49, 0x00, 0x3B, 0x19, 0x00, 0x66, 0x91,
-  0x00, 0x3B, 0x08, 0x00, 0x3A, 0xE4, 0x00, 0x51, 0x92, 0x00, 0x51, 0x95,
-  0x00, 0x67, 0x00, 0x00, 0x66, 0x9C, 0x00, 0x80, 0xAD, 0x00, 0x43, 0xD9,
-  0x00, 0x67, 0x17, 0x00, 0x67, 0x1B, 0x00, 0x67, 0x21, 0x00, 0x67, 0x5E,
-  0x00, 0x67, 0x53, 0x02, 0x33, 0xC3, 0x00, 0x3B, 0x49, 0x00, 0x67, 0xFA,
-  0x00, 0x67, 0x85, 0x00, 0x68, 0x52, 0x00, 0x68, 0x85, 0x02, 0x34, 0x6D,
-  0x00, 0x68, 0x8E, 0x00, 0x68, 0x1F, 0x00, 0x69, 0x14, 0x00, 0x3B, 0x9D,
-  0x00, 0x69, 0x42, 0x00, 0x69, 0xA3, 0x00, 0x69, 0xEA, 0x00, 0x6A, 0xA8,
-  0x02, 0x36, 0xA3, 0x00, 0x6A, 0xDB, 0x00, 0x3C, 0x18, 0x00, 0x6B, 0x21,
-  0x02, 0x38, 0xA7, 0x00, 0x6B, 0x54, 0x00, 0x3C, 0x4E, 0x00, 0x6B, 0x72,
-  0x00, 0x6B, 0x9F, 0x00, 0x6B, 0xBA, 0x00, 0x6B, 0xBB, 0x02, 0x3A, 0x8D,
-  0x02, 0x1D, 0x0B, 0x02, 0x3A, 0xFA, 0x00, 0x6C, 0x4E, 0x02, 0x3C, 0xBC,
-  0x00, 0x6C, 0xBF, 0x00, 0x6C, 0xCD, 0x00, 0x6C, 0x67, 0x00, 0x6D, 0x16,
-  0x00, 0x6D, 0x3E, 0x00, 0x6D, 0x77, 0x00, 0x6D, 0x41, 0x00, 0x6D, 0x69,
-  0x00, 0x6D, 0x78, 0x00, 0x6D, 0x85, 0x02, 0x3D, 0x1E, 0x00, 0x6D, 0x34,
-  0x00, 0x6E, 0x2F, 0x00, 0x6E, 0x6E, 0x00, 0x3D, 0x33, 0x00, 0x6E, 0xCB,
-  0x00, 0x6E, 0xC7, 0x02, 0x3E, 0xD1, 0x00, 0x6D, 0xF9, 0x00, 0x6F, 0x6E,
-  0x02, 0x3F, 0x5E, 0x02, 0x3F, 0x8E, 0x00, 0x6F, 0xC6, 0x00, 0x70, 0x39,
-  0x00, 0x70, 0x1E, 0x00, 0x70, 0x1B, 0x00, 0x3D, 0x96, 0x00, 0x70, 0x4A,
-  0x00, 0x70, 0x7D, 0x00, 0x70, 0x77, 0x00, 0x70, 0xAD, 0x02, 0x05, 0x25,
-  0x00, 0x71, 0x45, 0x02, 0x42, 0x63, 0x00, 0x71, 0x9C, 0x02, 0x43, 0xAB,
-  0x00, 0x72, 0x28, 0x00, 0x72, 0x35, 0x00, 0x72, 0x50, 0x02, 0x46, 0x08,
-  0x00, 0x72, 0x80, 0x00, 0x72, 0x95, 0x02, 0x47, 0x35, 0x02, 0x48, 0x14,
-  0x00, 0x73, 0x7A, 0x00, 0x73, 0x8B, 0x00, 0x3E, 0xAC, 0x00, 0x73, 0xA5,
-  0x00, 0x3E, 0xB8, 0x00, 0x3E, 0xB8, 0x00, 0x74, 0x47, 0x00, 0x74, 0x5C,
-  0x00, 0x74, 0x71, 0x00, 0x74, 0x85, 0x00, 0x74, 0xCA, 0x00, 0x3F, 0x1B,
-  0x00, 0x75, 0x24, 0x02, 0x4C, 0x36, 0x00, 0x75, 0x3E, 0x02, 0x4C, 0x92,
-  0x00, 0x75, 0x70, 0x02, 0x21, 0x9F, 0x00, 0x76, 0x10, 0x02, 0x4F, 0xA1,
-  0x02, 0x4F, 0xB8, 0x02, 0x50, 0x44, 0x00, 0x3F, 0xFC, 0x00, 0x40, 0x08,
-  0x00, 0x76, 0xF4, 0x02, 0x50, 0xF3, 0x02, 0x50, 0xF2, 0x02, 0x51, 0x19,
-  0x02, 0x51, 0x33, 0x00, 0x77, 0x1E, 0x00, 0x77, 0x1F, 0x00, 0x77, 0x1F,
-  0x00, 0x77, 0x4A, 0x00, 0x40, 0x39, 0x00, 0x77, 0x8B, 0x00, 0x40, 0x46,
-  0x00, 0x40, 0x96, 0x02, 0x54, 0x1D, 0x00, 0x78, 0x4E, 0x00, 0x78, 0x8C,
-  0x00, 0x78, 0xCC, 0x00, 0x40, 0xE3, 0x02, 0x56, 0x26, 0x00, 0x79, 0x56,
-  0x02, 0x56, 0x9A, 0x02, 0x56, 0xC5, 0x00, 0x79, 0x8F, 0x00, 0x79, 0xEB,
-  0x00, 0x41, 0x2F, 0x00, 0x7A, 0x40, 0x00, 0x7A, 0x4A, 0x00, 0x7A, 0x4F,
-  0x02, 0x59, 0x7C, 0x02, 0x5A, 0xA7, 0x02, 0x5A, 0xA7, 0x00, 0x7A, 0xEE,
-  0x00, 0x42, 0x02, 0x02, 0x5B, 0xAB, 0x00, 0x7B, 0xC6, 0x00, 0x7B, 0xC9,
-  0x00, 0x42, 0x27, 0x02, 0x5C, 0x80, 0x00, 0x7C, 0xD2, 0x00, 0x42, 0xA0,
-  0x00, 0x7C, 0xE8, 0x00, 0x7C, 0xE3, 0x00, 0x7D, 0x00, 0x02, 0x5F, 0x86,
-  0x00, 0x7D, 0x63, 0x00, 0x43, 0x01, 0x00, 0x7D, 0xC7, 0x00, 0x7E, 0x02,
-  0x00, 0x7E, 0x45, 0x00, 0x43, 0x34, 0x02, 0x62, 0x28, 0x02, 0x62, 0x47,
-  0x00, 0x43, 0x59, 0x02, 0x62, 0xD9, 0x00, 0x7F, 0x7A, 0x02, 0x63, 0x3E,
-  0x00, 0x7F, 0x95, 0x00, 0x7F, 0xFA, 0x00, 0x80, 0x05, 0x02, 0x64, 0xDA,
-  0x02, 0x65, 0x23, 0x00, 0x80, 0x60, 0x02, 0x65, 0xA8, 0x00, 0x80, 0x70,
-  0x02, 0x33, 0x5F, 0x00, 0x43, 0xD5, 0x00, 0x80, 0xB2, 0x00, 0x81, 0x03,
-  0x00, 0x44, 0x0B, 0x00, 0x81, 0x3E, 0x00, 0x5A, 0xB5, 0x02, 0x67, 0xA7,
-  0x02, 0x67, 0xB5, 0x02, 0x33, 0x93, 0x02, 0x33, 0x9C, 0x00, 0x82, 0x01,
-  0x00, 0x82, 0x04, 0x00, 0x8F, 0x9E, 0x00, 0x44, 0x6B, 0x00, 0x82, 0x91,
-  0x00, 0x82, 0x8B, 0x00, 0x82, 0x9D, 0x00, 0x52, 0xB3, 0x00, 0x82, 0xB1,
-  0x00, 0x82, 0xB3, 0x00, 0x82, 0xBD, 0x00, 0x82, 0xE6, 0x02, 0x6B, 0x3C,
-  0x00, 0x82, 0xE5, 0x00, 0x83, 0x1D, 0x00, 0x83, 0x63, 0x00, 0x83, 0xAD,
-  0x00, 0x83, 0x23, 0x00, 0x83, 0xBD, 0x00, 0x83, 0xE7, 0x00, 0x84, 0x57,
-  0x00, 0x83, 0x53, 0x00, 0x83, 0xCA, 0x00, 0x83, 0xCC, 0x00, 0x83, 0xDC,
-  0x02, 0x6C, 0x36, 0x02, 0x6D, 0x6B, 0x02, 0x6C, 0xD5, 0x00, 0x45, 0x2B,
-  0x00, 0x84, 0xF1, 0x00, 0x84, 0xF3, 0x00, 0x85, 0x16, 0x02, 0x73, 0xCA,
-  0x00, 0x85, 0x64, 0x02, 0x6F, 0x2C, 0x00, 0x45, 0x5D, 0x00, 0x45, 0x61,
-  0x02, 0x6F, 0xB1, 0x02, 0x70, 0xD2, 0x00, 0x45, 0x6B, 0x00, 0x86, 0x50,
-  0x00, 0x86, 0x5C, 0x00, 0x86, 0x67, 0x00, 0x86, 0x69, 0x00, 0x86, 0xA9,
-  0x00, 0x86, 0x88, 0x00, 0x87, 0x0E, 0x00, 0x86, 0xE2, 0x00, 0x87, 0x79,
-  0x00, 0x87, 0x28, 0x00, 0x87, 0x6B, 0x00, 0x87, 0x86, 0x00, 0x45, 0xD7,
-  0x00, 0x87, 0xE1, 0x00, 0x88, 0x01, 0x00, 0x45, 0xF9, 0x00, 0x88, 0x60,
-  0x00, 0x88, 0x63, 0x02, 0x76, 0x67, 0x00, 0x88, 0xD7, 0x00, 0x88, 0xDE,
-  0x00, 0x46, 0x35, 0x00, 0x88, 0xFA, 0x00, 0x34, 0xBB, 0x02, 0x78, 0xAE,
-  0x02, 0x79, 0x66, 0x00, 0x46, 0xBE, 0x00, 0x46, 0xC7, 0x00, 0x8A, 0xA0,
-  0x00, 0x8A, 0xED, 0x00, 0x8B, 0x8A, 0x00, 0x8C, 0x55, 0x02, 0x7C, 0xA8,
-  0x00, 0x8C, 0xAB, 0x00, 0x8C, 0xC1, 0x00, 0x8D, 0x1B, 0x00, 0x8D, 0x77,
-  0x02, 0x7F, 0x2F, 0x02, 0x08, 0x04, 0x00, 0x8D, 0xCB, 0x00, 0x8D, 0xBC,
-  0x00, 0x8D, 0xF0, 0x02, 0x08, 0xDE, 0x00, 0x8E, 0xD4, 0x00, 0x8F, 0x38,
-  0x02, 0x85, 0xD2, 0x02, 0x85, 0xED, 0x00, 0x90, 0x94, 0x00, 0x90, 0xF1,
-  0x00, 0x91, 0x11, 0x02, 0x87, 0x2E, 0x00, 0x91, 0x1B, 0x00, 0x92, 0x38,
-  0x00, 0x92, 0xD7, 0x00, 0x92, 0xD8, 0x00, 0x92, 0x7C, 0x00, 0x93, 0xF9,
-  0x00, 0x94, 0x15, 0x02, 0x8B, 0xFA, 0x00, 0x95, 0x8B, 0x00, 0x49, 0x95,
-  0x00, 0x95, 0xB7, 0x02, 0x8D, 0x77, 0x00, 0x49, 0xE6, 0x00, 0x96, 0xC3,
-  0x00, 0x5D, 0xB2, 0x00, 0x97, 0x23, 0x02, 0x91, 0x45, 0x02, 0x92, 0x1A,
-  0x00, 0x4A, 0x6E, 0x00, 0x4A, 0x76, 0x00, 0x97, 0xE0, 0x02, 0x94, 0x0A,
-  0x00, 0x4A, 0xB2, 0x02, 0x94, 0x96, 0x00, 0x98, 0x0B, 0x00, 0x98, 0x0B,
-  0x00, 0x98, 0x29, 0x02, 0x95, 0xB6, 0x00, 0x98, 0xE2, 0x00, 0x4B, 0x33,
-  0x00, 0x99, 0x29, 0x00, 0x99, 0xA7, 0x00, 0x99, 0xC2, 0x00, 0x99, 0xFE,
-  0x00, 0x4B, 0xCE, 0x02, 0x9B, 0x30, 0x00, 0x9B, 0x12, 0x00, 0x9C, 0x40,
-  0x00, 0x9C, 0xFD, 0x00, 0x4C, 0xCE, 0x00, 0x4C, 0xED, 0x00, 0x9D, 0x67,
-  0x02, 0xA0, 0xCE, 0x00, 0x4C, 0xF8, 0x02, 0xA1, 0x05, 0x02, 0xA2, 0x0E,
-  0x02, 0xA2, 0x91, 0x00, 0x9E, 0xBB, 0x00, 0x4D, 0x56, 0x00, 0x9E, 0xF9,
-  0x00, 0x9E, 0xFE, 0x00, 0x9F, 0x05, 0x00, 0x9F, 0x0F, 0x00, 0x9F, 0x16,
-  0x00, 0x9F, 0x3B, 0x02, 0xA6, 0x00
+  0x04, 0x00, 0x30, 0x04, 0x00, 0x31, 0x04, 0x00, 0x32, 0x04, 0x00, 0x33,
+  0x04, 0x00, 0x34, 0x04, 0x00, 0x35, 0x04, 0x00, 0x36, 0x04, 0x00, 0x37,
+  0x04, 0x00, 0x38, 0x04, 0x00, 0x39, 0xC0, 0x00, 0x30, 0x00, 0x00, 0x2E,
+  0xC0, 0x00, 0x30, 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x31, 0x00, 0x00, 0x2C,
+  0xC0, 0x00, 0x32, 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x33, 0x00, 0x00, 0x2C,
+  0xC0, 0x00, 0x34, 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x35, 0x00, 0x00, 0x2C,
+  0xC0, 0x00, 0x36, 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x37, 0x00, 0x00, 0x2C,
+  0xC0, 0x00, 0x38, 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x39, 0x00, 0x00, 0x2C,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x41, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x42, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x43,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x44, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x45, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x46, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x47,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x48, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x49, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x4A, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x4B,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x4C, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x4D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x4E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x4F,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x50, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x51, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x52, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x53,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x54, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x55, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x56, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x57,
+  0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x58, 0x00, 0x00, 0x29,
+  0xC0, 0x00, 0x28, 0x80, 0x00, 0x59, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28,
+  0x80, 0x00, 0x5A, 0x00, 0x00, 0x29, 0xC0, 0x30, 0x14, 0x80, 0x00, 0x53,
+  0x00, 0x30, 0x15, 0x1C, 0x00, 0x43, 0x1C, 0x00, 0x52, 0x9C, 0x00, 0x43,
+  0x00, 0x00, 0x44, 0x9C, 0x00, 0x57, 0x00, 0x00, 0x5A, 0x38, 0x00, 0x41,
+  0x38, 0x00, 0x42, 0x38, 0x00, 0x43, 0x38, 0x00, 0x44, 0x38, 0x00, 0x45,
+  0x38, 0x00, 0x46, 0x38, 0x00, 0x47, 0x38, 0x00, 0x48, 0x38, 0x00, 0x49,
+  0x38, 0x00, 0x4A, 0x38, 0x00, 0x4B, 0x38, 0x00, 0x4C, 0x38, 0x00, 0x4D,
+  0x38, 0x00, 0x4E, 0x38, 0x00, 0x4F, 0x38, 0x00, 0x50, 0x38, 0x00, 0x51,
+  0x38, 0x00, 0x52, 0x38, 0x00, 0x53, 0x38, 0x00, 0x54, 0x38, 0x00, 0x55,
+  0x38, 0x00, 0x56, 0x38, 0x00, 0x57, 0x38, 0x00, 0x58, 0x38, 0x00, 0x59,
+  0x38, 0x00, 0x5A, 0xB8, 0x00, 0x48, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x4D,
+  0x00, 0x00, 0x56, 0xB8, 0x00, 0x53, 0x00, 0x00, 0x44, 0xB8, 0x00, 0x53,
+  0x00, 0x00, 0x53, 0xB8, 0x00, 0x50, 0x80, 0x00, 0x50, 0x00, 0x00, 0x56,
+  0xB8, 0x00, 0x57, 0x00, 0x00, 0x43, 0xB8, 0x00, 0x44, 0x00, 0x00, 0x4A,
+  0xB8, 0x30, 0x7B, 0x00, 0x30, 0x4B, 0xB8, 0x30, 0xB3, 0x00, 0x30, 0xB3,
+  0x38, 0x30, 0xB5, 0x38, 0x62, 0x4B, 0x38, 0x5B, 0x57, 0x38, 0x53, 0xCC,
+  0x38, 0x30, 0xC7, 0x38, 0x4E, 0x8C, 0x38, 0x59, 0x1A, 0x38, 0x89, 0xE3,
+  0x38, 0x59, 0x29, 0x38, 0x4E, 0xA4, 0x38, 0x66, 0x20, 0x38, 0x71, 0x21,
+  0x38, 0x65, 0x99, 0x38, 0x52, 0x4D, 0x38, 0x5F, 0x8C, 0x38, 0x51, 0x8D,
+  0x38, 0x65, 0xB0, 0x38, 0x52, 0x1D, 0x38, 0x7D, 0x42, 0x38, 0x75, 0x1F,
+  0x38, 0x8C, 0xA9, 0x38, 0x58, 0xF0, 0x38, 0x54, 0x39, 0x38, 0x6F, 0x14,
+  0x38, 0x62, 0x95, 0x38, 0x63, 0x55, 0x38, 0x4E, 0x00, 0x38, 0x4E, 0x09,
+  0x38, 0x90, 0x4A, 0x38, 0x5D, 0xE6, 0x38, 0x4E, 0x2D, 0x38, 0x53, 0xF3,
+  0x38, 0x63, 0x07, 0x38, 0x8D, 0x70, 0x38, 0x62, 0x53, 0x38, 0x79, 0x81,
+  0x38, 0x7A, 0x7A, 0x38, 0x54, 0x08, 0x38, 0x6E, 0x80, 0x38, 0x67, 0x09,
+  0x38, 0x67, 0x08, 0x38, 0x75, 0x33, 0x38, 0x52, 0x72, 0x38, 0x55, 0xB6,
+  0xC0, 0x30, 0x14, 0x80, 0x67, 0x2C, 0x00, 0x30, 0x15, 0xC0, 0x30, 0x14,
+  0x80, 0x4E, 0x09, 0x00, 0x30, 0x15, 0xC0, 0x30, 0x14, 0x80, 0x4E, 0x8C,
+  0x00, 0x30, 0x15, 0xC0, 0x30, 0x14, 0x80, 0x5B, 0x89, 0x00, 0x30, 0x15,
+  0xC0, 0x30, 0x14, 0x80, 0x70, 0xB9, 0x00, 0x30, 0x15, 0xC0, 0x30, 0x14,
+  0x80, 0x62, 0x53, 0x00, 0x30, 0x15, 0xC0, 0x30, 0x14, 0x80, 0x76, 0xD7,
+  0x00, 0x30, 0x15, 0xC0, 0x30, 0x14, 0x80, 0x52, 0xDD, 0x00, 0x30, 0x15,
+  0xC0, 0x30, 0x14, 0x80, 0x65, 0x57, 0x00, 0x30, 0x15, 0x1C, 0x5F, 0x97,
+  0x1C, 0x53, 0xEF, 0x00, 0x4E, 0x3D, 0x00, 0x4E, 0x38, 0x00, 0x4E, 0x41,
+  0x02, 0x01, 0x22, 0x00, 0x4F, 0x60, 0x00, 0x4F, 0xAE, 0x00, 0x4F, 0xBB,
+  0x00, 0x50, 0x02, 0x00, 0x50, 0x7A, 0x00, 0x50, 0x99, 0x00, 0x50, 0xE7,
+  0x00, 0x50, 0xCF, 0x00, 0x34, 0x9E, 0x02, 0x06, 0x3A, 0x00, 0x51, 0x4D,
+  0x00, 0x51, 0x54, 0x00, 0x51, 0x64, 0x00, 0x51, 0x77, 0x02, 0x05, 0x1C,
+  0x00, 0x34, 0xB9, 0x00, 0x51, 0x67, 0x00, 0x51, 0x8D, 0x02, 0x05, 0x4B,
+  0x00, 0x51, 0x97, 0x00, 0x51, 0xA4, 0x00, 0x4E, 0xCC, 0x00, 0x51, 0xAC,
+  0x00, 0x51, 0xB5, 0x02, 0x91, 0xDF, 0x00, 0x51, 0xF5, 0x00, 0x52, 0x03,
+  0x00, 0x34, 0xDF, 0x00, 0x52, 0x3B, 0x00, 0x52, 0x46, 0x00, 0x52, 0x72,
+  0x00, 0x52, 0x77, 0x00, 0x35, 0x15, 0x00, 0x52, 0xC7, 0x00, 0x52, 0xC9,
+  0x00, 0x52, 0xE4, 0x00, 0x52, 0xFA, 0x00, 0x53, 0x05, 0x00, 0x53, 0x06,
+  0x00, 0x53, 0x17, 0x00, 0x53, 0x49, 0x00, 0x53, 0x51, 0x00, 0x53, 0x5A,
+  0x00, 0x53, 0x73, 0x00, 0x53, 0x7D, 0x00, 0x53, 0x7F, 0x00, 0x53, 0x7F,
+  0x00, 0x53, 0x7F, 0x02, 0x0A, 0x2C, 0x00, 0x70, 0x70, 0x00, 0x53, 0xCA,
+  0x00, 0x53, 0xDF, 0x02, 0x0B, 0x63, 0x00, 0x53, 0xEB, 0x00, 0x53, 0xF1,
+  0x00, 0x54, 0x06, 0x00, 0x54, 0x9E, 0x00, 0x54, 0x38, 0x00, 0x54, 0x48,
+  0x00, 0x54, 0x68, 0x00, 0x54, 0xA2, 0x00, 0x54, 0xF6, 0x00, 0x55, 0x10,
+  0x00, 0x55, 0x53, 0x00, 0x55, 0x63, 0x00, 0x55, 0x84, 0x00, 0x55, 0x84,
+  0x00, 0x55, 0x99, 0x00, 0x55, 0xAB, 0x00, 0x55, 0xB3, 0x00, 0x55, 0xC2,
+  0x00, 0x57, 0x16, 0x00, 0x56, 0x06, 0x00, 0x57, 0x17, 0x00, 0x56, 0x51,
+  0x00, 0x56, 0x74, 0x00, 0x52, 0x07, 0x00, 0x58, 0xEE, 0x00, 0x57, 0xCE,
+  0x00, 0x57, 0xF4, 0x00, 0x58, 0x0D, 0x00, 0x57, 0x8B, 0x00, 0x58, 0x32,
+  0x00, 0x58, 0x31, 0x00, 0x58, 0xAC, 0x02, 0x14, 0xE4, 0x00, 0x58, 0xF2,
+  0x00, 0x58, 0xF7, 0x00, 0x59, 0x06, 0x00, 0x59, 0x1A, 0x00, 0x59, 0x22,
+  0x00, 0x59, 0x62, 0x02, 0x16, 0xA8, 0x02, 0x16, 0xEA, 0x00, 0x59, 0xEC,
+  0x00, 0x5A, 0x1B, 0x00, 0x5A, 0x27, 0x00, 0x59, 0xD8, 0x00, 0x5A, 0x66,
+  0x00, 0x36, 0xEE, 0x00, 0x36, 0xFC, 0x00, 0x5B, 0x08, 0x00, 0x5B, 0x3E,
+  0x00, 0x5B, 0x3E, 0x02, 0x19, 0xC8, 0x00, 0x5B, 0xC3, 0x00, 0x5B, 0xD8,
+  0x00, 0x5B, 0xE7, 0x00, 0x5B, 0xF3, 0x02, 0x1B, 0x18, 0x00, 0x5B, 0xFF,
+  0x00, 0x5C, 0x06, 0x00, 0x5F, 0x53, 0x00, 0x5C, 0x22, 0x00, 0x37, 0x81,
+  0x00, 0x5C, 0x60, 0x00, 0x5C, 0x6E, 0x00, 0x5C, 0xC0, 0x00, 0x5C, 0x8D,
+  0x02, 0x1D, 0xE4, 0x00, 0x5D, 0x43, 0x02, 0x1D, 0xE6, 0x00, 0x5D, 0x6E,
+  0x00, 0x5D, 0x6B, 0x00, 0x5D, 0x7C, 0x00, 0x5D, 0xE1, 0x00, 0x5D, 0xE2,
+  0x00, 0x38, 0x2F, 0x00, 0x5D, 0xFD, 0x00, 0x5E, 0x28, 0x00, 0x5E, 0x3D,
+  0x00, 0x5E, 0x69, 0x00, 0x38, 0x62, 0x02, 0x21, 0x83, 0x00, 0x38, 0x7C,
+  0x00, 0x5E, 0xB0, 0x00, 0x5E, 0xB3, 0x00, 0x5E, 0xB6, 0x00, 0x5E, 0xCA,
+  0x02, 0xA3, 0x92, 0x00, 0x5E, 0xFE, 0x02, 0x23, 0x31, 0x02, 0x23, 0x31,
+  0x00, 0x82, 0x01, 0x00, 0x5F, 0x22, 0x00, 0x5F, 0x22, 0x00, 0x38, 0xC7,
+  0x02, 0x32, 0xB8, 0x02, 0x61, 0xDA, 0x00, 0x5F, 0x62, 0x00, 0x5F, 0x6B,
+  0x00, 0x38, 0xE3, 0x00, 0x5F, 0x9A, 0x00, 0x5F, 0xCD, 0x00, 0x5F, 0xD7,
+  0x00, 0x5F, 0xF9, 0x00, 0x60, 0x81, 0x00, 0x39, 0x3A, 0x00, 0x39, 0x1C,
+  0x00, 0x60, 0x94, 0x02, 0x26, 0xD4, 0x00, 0x60, 0xC7, 0x00, 0x61, 0x48,
+  0x00, 0x61, 0x4C, 0x00, 0x61, 0x4E, 0x00, 0x61, 0x4C, 0x00, 0x61, 0x7A,
+  0x00, 0x61, 0x8E, 0x00, 0x61, 0xB2, 0x00, 0x61, 0xA4, 0x00, 0x61, 0xAF,
+  0x00, 0x61, 0xDE, 0x00, 0x61, 0xF2, 0x00, 0x61, 0xF6, 0x00, 0x62, 0x10,
+  0x00, 0x62, 0x1B, 0x00, 0x62, 0x5D, 0x00, 0x62, 0xB1, 0x00, 0x62, 0xD4,
+  0x00, 0x63, 0x50, 0x02, 0x2B, 0x0C, 0x00, 0x63, 0x3D, 0x00, 0x62, 0xFC,
+  0x00, 0x63, 0x68, 0x00, 0x63, 0x83, 0x00, 0x63, 0xE4, 0x02, 0x2B, 0xF1,
+  0x00, 0x64, 0x22, 0x00, 0x63, 0xC5, 0x00, 0x63, 0xA9, 0x00, 0x3A, 0x2E,
+  0x00, 0x64, 0x69, 0x00, 0x64, 0x7E, 0x00, 0x64, 0x9D, 0x00, 0x64, 0x77,
+  0x00, 0x3A, 0x6C, 0x00, 0x65, 0x4F, 0x00, 0x65, 0x6C, 0x02, 0x30, 0x0A,
+  0x00, 0x65, 0xE3, 0x00, 0x66, 0xF8, 0x00, 0x66, 0x49, 0x00, 0x3B, 0x19,
+  0x00, 0x66, 0x91, 0x00, 0x3B, 0x08, 0x00, 0x3A, 0xE4, 0x00, 0x51, 0x92,
+  0x00, 0x51, 0x95, 0x00, 0x67, 0x00, 0x00, 0x66, 0x9C, 0x00, 0x80, 0xAD,
+  0x00, 0x43, 0xD9, 0x00, 0x67, 0x17, 0x00, 0x67, 0x1B, 0x00, 0x67, 0x21,
+  0x00, 0x67, 0x5E, 0x00, 0x67, 0x53, 0x02, 0x33, 0xC3, 0x00, 0x3B, 0x49,
+  0x00, 0x67, 0xFA, 0x00, 0x67, 0x85, 0x00, 0x68, 0x52, 0x00, 0x68, 0x85,
+  0x02, 0x34, 0x6D, 0x00, 0x68, 0x8E, 0x00, 0x68, 0x1F, 0x00, 0x69, 0x14,
+  0x00, 0x3B, 0x9D, 0x00, 0x69, 0x42, 0x00, 0x69, 0xA3, 0x00, 0x69, 0xEA,
+  0x00, 0x6A, 0xA8, 0x02, 0x36, 0xA3, 0x00, 0x6A, 0xDB, 0x00, 0x3C, 0x18,
+  0x00, 0x6B, 0x21, 0x02, 0x38, 0xA7, 0x00, 0x6B, 0x54, 0x00, 0x3C, 0x4E,
+  0x00, 0x6B, 0x72, 0x00, 0x6B, 0x9F, 0x00, 0x6B, 0xBA, 0x00, 0x6B, 0xBB,
+  0x02, 0x3A, 0x8D, 0x02, 0x1D, 0x0B, 0x02, 0x3A, 0xFA, 0x00, 0x6C, 0x4E,
+  0x02, 0x3C, 0xBC, 0x00, 0x6C, 0xBF, 0x00, 0x6C, 0xCD, 0x00, 0x6C, 0x67,
+  0x00, 0x6D, 0x16, 0x00, 0x6D, 0x3E, 0x00, 0x6D, 0x77, 0x00, 0x6D, 0x41,
+  0x00, 0x6D, 0x69, 0x00, 0x6D, 0x78, 0x00, 0x6D, 0x85, 0x02, 0x3D, 0x1E,
+  0x00, 0x6D, 0x34, 0x00, 0x6E, 0x2F, 0x00, 0x6E, 0x6E, 0x00, 0x3D, 0x33,
+  0x00, 0x6E, 0xCB, 0x00, 0x6E, 0xC7, 0x02, 0x3E, 0xD1, 0x00, 0x6D, 0xF9,
+  0x00, 0x6F, 0x6E, 0x02, 0x3F, 0x5E, 0x02, 0x3F, 0x8E, 0x00, 0x6F, 0xC6,
+  0x00, 0x70, 0x39, 0x00, 0x70, 0x1E, 0x00, 0x70, 0x1B, 0x00, 0x3D, 0x96,
+  0x00, 0x70, 0x4A, 0x00, 0x70, 0x7D, 0x00, 0x70, 0x77, 0x00, 0x70, 0xAD,
+  0x02, 0x05, 0x25, 0x00, 0x71, 0x45, 0x02, 0x42, 0x63, 0x00, 0x71, 0x9C,
+  0x02, 0x43, 0xAB, 0x00, 0x72, 0x28, 0x00, 0x72, 0x35, 0x00, 0x72, 0x50,
+  0x02, 0x46, 0x08, 0x00, 0x72, 0x80, 0x00, 0x72, 0x95, 0x02, 0x47, 0x35,
+  0x02, 0x48, 0x14, 0x00, 0x73, 0x7A, 0x00, 0x73, 0x8B, 0x00, 0x3E, 0xAC,
+  0x00, 0x73, 0xA5, 0x00, 0x3E, 0xB8, 0x00, 0x3E, 0xB8, 0x00, 0x74, 0x47,
+  0x00, 0x74, 0x5C, 0x00, 0x74, 0x71, 0x00, 0x74, 0x85, 0x00, 0x74, 0xCA,
+  0x00, 0x3F, 0x1B, 0x00, 0x75, 0x24, 0x02, 0x4C, 0x36, 0x00, 0x75, 0x3E,
+  0x02, 0x4C, 0x92, 0x00, 0x75, 0x70, 0x02, 0x21, 0x9F, 0x00, 0x76, 0x10,
+  0x02, 0x4F, 0xA1, 0x02, 0x4F, 0xB8, 0x02, 0x50, 0x44, 0x00, 0x3F, 0xFC,
+  0x00, 0x40, 0x08, 0x00, 0x76, 0xF4, 0x02, 0x50, 0xF3, 0x02, 0x50, 0xF2,
+  0x02, 0x51, 0x19, 0x02, 0x51, 0x33, 0x00, 0x77, 0x1E, 0x00, 0x77, 0x1F,
+  0x00, 0x77, 0x1F, 0x00, 0x77, 0x4A, 0x00, 0x40, 0x39, 0x00, 0x77, 0x8B,
+  0x00, 0x40, 0x46, 0x00, 0x40, 0x96, 0x02, 0x54, 0x1D, 0x00, 0x78, 0x4E,
+  0x00, 0x78, 0x8C, 0x00, 0x78, 0xCC, 0x00, 0x40, 0xE3, 0x02, 0x56, 0x26,
+  0x00, 0x79, 0x56, 0x02, 0x56, 0x9A, 0x02, 0x56, 0xC5, 0x00, 0x79, 0x8F,
+  0x00, 0x79, 0xEB, 0x00, 0x41, 0x2F, 0x00, 0x7A, 0x40, 0x00, 0x7A, 0x4A,
+  0x00, 0x7A, 0x4F, 0x02, 0x59, 0x7C, 0x02, 0x5A, 0xA7, 0x02, 0x5A, 0xA7,
+  0x00, 0x7A, 0xEE, 0x00, 0x42, 0x02, 0x02, 0x5B, 0xAB, 0x00, 0x7B, 0xC6,
+  0x00, 0x7B, 0xC9, 0x00, 0x42, 0x27, 0x02, 0x5C, 0x80, 0x00, 0x7C, 0xD2,
+  0x00, 0x42, 0xA0, 0x00, 0x7C, 0xE8, 0x00, 0x7C, 0xE3, 0x00, 0x7D, 0x00,
+  0x02, 0x5F, 0x86, 0x00, 0x7D, 0x63, 0x00, 0x43, 0x01, 0x00, 0x7D, 0xC7,
+  0x00, 0x7E, 0x02, 0x00, 0x7E, 0x45, 0x00, 0x43, 0x34, 0x02, 0x62, 0x28,
+  0x02, 0x62, 0x47, 0x00, 0x43, 0x59, 0x02, 0x62, 0xD9, 0x00, 0x7F, 0x7A,
+  0x02, 0x63, 0x3E, 0x00, 0x7F, 0x95, 0x00, 0x7F, 0xFA, 0x00, 0x80, 0x05,
+  0x02, 0x64, 0xDA, 0x02, 0x65, 0x23, 0x00, 0x80, 0x60, 0x02, 0x65, 0xA8,
+  0x00, 0x80, 0x70, 0x02, 0x33, 0x5F, 0x00, 0x43, 0xD5, 0x00, 0x80, 0xB2,
+  0x00, 0x81, 0x03, 0x00, 0x44, 0x0B, 0x00, 0x81, 0x3E, 0x00, 0x5A, 0xB5,
+  0x02, 0x67, 0xA7, 0x02, 0x67, 0xB5, 0x02, 0x33, 0x93, 0x02, 0x33, 0x9C,
+  0x00, 0x82, 0x01, 0x00, 0x82, 0x04, 0x00, 0x8F, 0x9E, 0x00, 0x44, 0x6B,
+  0x00, 0x82, 0x91, 0x00, 0x82, 0x8B, 0x00, 0x82, 0x9D, 0x00, 0x52, 0xB3,
+  0x00, 0x82, 0xB1, 0x00, 0x82, 0xB3, 0x00, 0x82, 0xBD, 0x00, 0x82, 0xE6,
+  0x02, 0x6B, 0x3C, 0x00, 0x82, 0xE5, 0x00, 0x83, 0x1D, 0x00, 0x83, 0x63,
+  0x00, 0x83, 0xAD, 0x00, 0x83, 0x23, 0x00, 0x83, 0xBD, 0x00, 0x83, 0xE7,
+  0x00, 0x84, 0x57, 0x00, 0x83, 0x53, 0x00, 0x83, 0xCA, 0x00, 0x83, 0xCC,
+  0x00, 0x83, 0xDC, 0x02, 0x6C, 0x36, 0x02, 0x6D, 0x6B, 0x02, 0x6C, 0xD5,
+  0x00, 0x45, 0x2B, 0x00, 0x84, 0xF1, 0x00, 0x84, 0xF3, 0x00, 0x85, 0x16,
+  0x02, 0x73, 0xCA, 0x00, 0x85, 0x64, 0x02, 0x6F, 0x2C, 0x00, 0x45, 0x5D,
+  0x00, 0x45, 0x61, 0x02, 0x6F, 0xB1, 0x02, 0x70, 0xD2, 0x00, 0x45, 0x6B,
+  0x00, 0x86, 0x50, 0x00, 0x86, 0x5C, 0x00, 0x86, 0x67, 0x00, 0x86, 0x69,
+  0x00, 0x86, 0xA9, 0x00, 0x86, 0x88, 0x00, 0x87, 0x0E, 0x00, 0x86, 0xE2,
+  0x00, 0x87, 0x79, 0x00, 0x87, 0x28, 0x00, 0x87, 0x6B, 0x00, 0x87, 0x86,
+  0x00, 0x45, 0xD7, 0x00, 0x87, 0xE1, 0x00, 0x88, 0x01, 0x00, 0x45, 0xF9,
+  0x00, 0x88, 0x60, 0x00, 0x88, 0x63, 0x02, 0x76, 0x67, 0x00, 0x88, 0xD7,
+  0x00, 0x88, 0xDE, 0x00, 0x46, 0x35, 0x00, 0x88, 0xFA, 0x00, 0x34, 0xBB,
+  0x02, 0x78, 0xAE, 0x02, 0x79, 0x66, 0x00, 0x46, 0xBE, 0x00, 0x46, 0xC7,
+  0x00, 0x8A, 0xA0, 0x00, 0x8A, 0xED, 0x00, 0x8B, 0x8A, 0x00, 0x8C, 0x55,
+  0x02, 0x7C, 0xA8, 0x00, 0x8C, 0xAB, 0x00, 0x8C, 0xC1, 0x00, 0x8D, 0x1B,
+  0x00, 0x8D, 0x77, 0x02, 0x7F, 0x2F, 0x02, 0x08, 0x04, 0x00, 0x8D, 0xCB,
+  0x00, 0x8D, 0xBC, 0x00, 0x8D, 0xF0, 0x02, 0x08, 0xDE, 0x00, 0x8E, 0xD4,
+  0x00, 0x8F, 0x38, 0x02, 0x85, 0xD2, 0x02, 0x85, 0xED, 0x00, 0x90, 0x94,
+  0x00, 0x90, 0xF1, 0x00, 0x91, 0x11, 0x02, 0x87, 0x2E, 0x00, 0x91, 0x1B,
+  0x00, 0x92, 0x38, 0x00, 0x92, 0xD7, 0x00, 0x92, 0xD8, 0x00, 0x92, 0x7C,
+  0x00, 0x93, 0xF9, 0x00, 0x94, 0x15, 0x02, 0x8B, 0xFA, 0x00, 0x95, 0x8B,
+  0x00, 0x49, 0x95, 0x00, 0x95, 0xB7, 0x02, 0x8D, 0x77, 0x00, 0x49, 0xE6,
+  0x00, 0x96, 0xC3, 0x00, 0x5D, 0xB2, 0x00, 0x97, 0x23, 0x02, 0x91, 0x45,
+  0x02, 0x92, 0x1A, 0x00, 0x4A, 0x6E, 0x00, 0x4A, 0x76, 0x00, 0x97, 0xE0,
+  0x02, 0x94, 0x0A, 0x00, 0x4A, 0xB2, 0x02, 0x94, 0x96, 0x00, 0x98, 0x0B,
+  0x00, 0x98, 0x0B, 0x00, 0x98, 0x29, 0x02, 0x95, 0xB6, 0x00, 0x98, 0xE2,
+  0x00, 0x4B, 0x33, 0x00, 0x99, 0x29, 0x00, 0x99, 0xA7, 0x00, 0x99, 0xC2,
+  0x00, 0x99, 0xFE, 0x00, 0x4B, 0xCE, 0x02, 0x9B, 0x30, 0x00, 0x9B, 0x12,
+  0x00, 0x9C, 0x40, 0x00, 0x9C, 0xFD, 0x00, 0x4C, 0xCE, 0x00, 0x4C, 0xED,
+  0x00, 0x9D, 0x67, 0x02, 0xA0, 0xCE, 0x00, 0x4C, 0xF8, 0x02, 0xA1, 0x05,
+  0x02, 0xA2, 0x0E, 0x02, 0xA2, 0x91, 0x00, 0x9E, 0xBB, 0x00, 0x4D, 0x56,
+  0x00, 0x9E, 0xF9, 0x00, 0x9E, 0xFE, 0x00, 0x9F, 0x05, 0x00, 0x9F, 0x0F,
+  0x00, 0x9F, 0x16, 0x00, 0x9F, 0x3B, 0x02, 0xA6, 0x00
 };
 
 const decomp_index_table_t gl_uninorm_decomp_index_table =
@@ -2040,22 +2105,22 @@ const decomp_index_table_t gl_uninorm_decomp_index_table =
        -1,   384,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,   416,   448,
+       -1,    -1,    -1,    -1,   480,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   512,   544,    -1,    -1,
+       -1,    -1,    -1,    -1,   576,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   480,   512,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   544
+       -1,    -1,    -1,    -1,    -1,    -1,   608
   },
   {
        -1,    -1,    -1,    -1,    -1,     0,    32,    64,
@@ -2118,17 +2183,25 @@ const decomp_index_table_t gl_uninorm_decomp_index_table =
      5664,  5696,  5728,  5760,  5792,  5824,  5856,  5888,
      5920,  5952,  5984,  6016,  6048,  6080,  6112,  6144,
      6176,  6208,  6240,  6272,  6304,  6336,  6368,  6400,
+       -1,    -1,    -1,    -1,  6432,  6464,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,  6432,  6464,    -1,  6496,  6528,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     6560,  6592,  6624,  6656,  6688,  6720,  6752,  6784,
-     6816,  6848,  6880,  6912,  6944,  6976,  7008,  7040,
-     7072,  7104,  7136,  7168,  7200,  7232,  7264,  7296,
-     7328,  7360,  7392,  7424,  7456,  7488,  7520,  7552,
-     7584,  7616,  7648,  7680,  7712,  7744,  7776,  7808,
-     7840,  7872,  7904,  7936,  7968,  8000,  8032,  8064,
-     8096,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,  6496,  6528,    -1,  6560,  6592,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     6624,  6656,  6688,  6720,  6752,  6784,  6816,  6848,
+     6880,  6912,  6944,  6976,  7008,  7040,  7072,  7104,
+     7136,  7168,  7200,  7232,  7264,  7296,  7328,  7360,
+     7392,  7424,  7456,  7488,  7520,  7552,  7584,  7616,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     7648,  7680,  7712,    -1,  7744,    -1,    -1,    -1,
+     7776,  7808,  7840,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     7872,  7904,  7936,  7968,  8000,  8032,  8064,  8096,
+     8128,  8160,  8192,  8224,  8256,  8288,  8320,  8352,
+     8384,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1
   },
   {
@@ -2458,695 +2531,731 @@ const decomp_index_table_t gl_uninorm_decomp_index_table =
     34804, 34805, 34806, 34807, 34808, 34809, 34810, 34811,
     34812, 34813, 34814, 34815, 34816, 34817, 34818, 34819,
     34820, 34821, 34822, 34823, 34824, 34825, 34826,    -1,
-    34827, 34828, 34829, 34830, 34831,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    34832,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    34827, 34828, 34829, 34830, 34831, 34832, 34833, 34834,
+    34835, 34836, 34837, 34838, 34839,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    34840,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    34834, 34837, 34840, 34841,    -1, 34843, 34846, 34849,
-       -1, 34850, 34852, 34853, 34854, 34855, 34856, 34857,
-    34858, 34859, 34860, 34861,    -1, 34862, 34863,    -1,
-       -1, 34865, 34866, 34867, 34868, 34869,    -1,    -1,
-    34870, 34872, 34875,    -1, 34877,    -1,  2110,    -1,
-    34879,    -1,  2112,  2113, 34882, 34883,    -1, 34884,
-    34885, 34886,    -1, 34887, 34888, 34889, 34890, 34891,
-    34892, 34893,    -1, 34894, 34897, 34898, 34899, 34900,
-    34901,    -1,    -1,    -1,    -1, 34902, 34903, 34904,
-    34905, 34906,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1, 34907, 34910, 34913, 34916, 34919,
-    34922, 34925, 34928, 34931, 34934, 34937, 34940, 34943,
-    34945, 34946, 34948, 34951, 34953, 34954, 34956, 34959,
-    34963, 34965, 34966, 34968, 34971, 34972, 34973, 34974,
-    34975, 34976, 34978, 34981, 34983, 34984, 34986, 34989,
-    34993, 34995, 34996, 34998, 35001, 35002, 35003, 35004,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    34842, 34845, 34848, 34849,    -1, 34851, 34854, 34857,
+       -1, 34858, 34860, 34861, 34862, 34863, 34864, 34865,
+    34866, 34867, 34868, 34869,    -1, 34870, 34871,    -1,
+       -1, 34873, 34874, 34875, 34876, 34877,    -1,    -1,
+    34878, 34880, 34883,    -1, 34885,    -1,  2118,    -1,
+    34887,    -1,  2120,  2121, 34890, 34891,    -1, 34892,
+    34893, 34894,    -1, 34895, 34896, 34897, 34898, 34899,
+    34900, 34901,    -1, 34902, 34905, 34906, 34907, 34908,
+    34909,    -1,    -1,    -1,    -1, 34910, 34911, 34912,
+    34913, 34914,    -1,    -1,    -1,    -1,    -1,    -1,
+    34915, 34918, 34921, 34925, 34928, 34931, 34934, 34937,
+    34940, 34943, 34946, 34949, 34952, 34955, 34958, 34961,
+    34963, 34964, 34966, 34969, 34971, 34972, 34974, 34977,
+    34981, 34983, 34984, 34986, 34989, 34990, 34991, 34992,
+    34993, 34994, 34996, 34999, 35001, 35002, 35004, 35007,
+    35011, 35013, 35014, 35016, 35019, 35020, 35021, 35022,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1, 35023,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,  2237,  2239,    -1,    -1,    -1,    -1,
+       -1,    -1,  2258,  2260,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  2241,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  2262,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,  2243,  2245,  2247,
+       -1,    -1,    -1,    -1,    -1,  2264,  2266,  2268,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  2249,    -1,    -1,    -1,
-       -1,  2251,    -1,    -1,  2253,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  2270,    -1,    -1,    -1,
+       -1,  2272,    -1,    -1,  2274,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  2255,    -1,  2257,    -1,
-       -1,    -1,    -1,    -1, 35027, 35029,    -1, 35032,
-    35034,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  2276,    -1,  2278,    -1,
+       -1,    -1,    -1,    -1, 35048, 35050,    -1, 35053,
+    35055,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,  2269,    -1,    -1,  2271,    -1,    -1,  2273,
-       -1,  2275,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,  2290,    -1,    -1,  2292,    -1,    -1,  2294,
+       -1,  2296,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     2277,    -1,  2279,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,  2281,  2283,  2285,
-     2287,  2289,    -1,    -1,  2291,  2293,    -1,    -1,
-     2295,  2297,    -1,    -1,    -1,    -1,    -1,    -1,
-     2299,  2301,    -1,    -1,  2303,  2305,    -1,    -1,
-     2307,  2309,    -1,    -1,    -1,    -1,    -1,    -1,
+     2298,    -1,  2300,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,  2302,  2304,  2306,
+     2308,  2310,    -1,    -1,  2312,  2314,    -1,    -1,
+     2316,  2318,    -1,    -1,    -1,    -1,    -1,    -1,
+     2320,  2322,    -1,    -1,  2324,  2326,    -1,    -1,
+     2328,  2330,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  2311,  2313,  2315,  2317,
+       -1,    -1,    -1,    -1,  2332,  2334,  2336,  2338,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     2319,  2321,  2323,  2325,    -1,    -1,    -1,    -1,
-       -1,    -1,  2327,  2329,  2331,  2333,    -1,    -1,
+     2340,  2342,  2344,  2346,    -1,    -1,    -1,    -1,
+       -1,    -1,  2348,  2350,  2352,  2354,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,  2335,  2336,    -1,    -1,    -1,    -1,    -1,
+       -1,  2356,  2357,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    35105, 35106, 35107, 35108, 35109, 35110, 35111, 35112,
-    35113, 35114, 35116, 35118, 35120, 35122, 35124, 35126,
-    35128, 35130, 35132, 35134, 35136, 35139, 35142, 35145,
-    35148, 35151, 35154, 35157, 35160, 35163, 35167, 35171,
-    35175, 35179, 35183, 35187, 35191, 35195, 35199, 35203,
-    35207, 35209, 35211, 35213, 35215, 35217, 35219, 35221,
-    35223, 35225, 35228, 35231, 35234, 35237, 35240, 35243,
-    35246, 35249, 35252, 35255, 35258, 35261, 35264, 35267,
-    35270, 35273, 35276, 35279, 35282, 35285, 35288, 35291,
-    35294, 35297, 35300, 35303, 35306, 35309, 35312, 35315,
-    35318, 35321, 35324, 35327, 35330, 35333, 35336, 35337,
-    35338, 35339, 35340, 35341, 35342, 35343, 35344, 35345,
-    35346, 35347, 35348, 35349, 35350, 35351, 35352, 35353,
-    35354, 35355, 35356, 35357, 35358, 35359, 35360, 35361,
-    35362, 35363, 35364, 35365, 35366, 35367, 35368, 35369,
-    35370, 35371, 35372, 35373, 35374, 35375, 35376, 35377,
-    35378, 35379, 35380, 35381, 35382, 35383, 35384, 35385,
-    35386, 35387, 35388,    -1,    -1,    -1,    -1,    -1,
+    35126, 35127, 35128, 35129, 35130, 35131, 35132, 35133,
+    35134, 35135, 35137, 35139, 35141, 35143, 35145, 35147,
+    35149, 35151, 35153, 35155, 35157, 35160, 35163, 35166,
+    35169, 35172, 35175, 35178, 35181, 35184, 35188, 35192,
+    35196, 35200, 35204, 35208, 35212, 35216, 35220, 35224,
+    35228, 35230, 35232, 35234, 35236, 35238, 35240, 35242,
+    35244, 35246, 35249, 35252, 35255, 35258, 35261, 35264,
+    35267, 35270, 35273, 35276, 35279, 35282, 35285, 35288,
+    35291, 35294, 35297, 35300, 35303, 35306, 35309, 35312,
+    35315, 35318, 35321, 35324, 35327, 35330, 35333, 35336,
+    35339, 35342, 35345, 35348, 35351, 35354, 35357, 35358,
+    35359, 35360, 35361, 35362, 35363, 35364, 35365, 35366,
+    35367, 35368, 35369, 35370, 35371, 35372, 35373, 35374,
+    35375, 35376, 35377, 35378, 35379, 35380, 35381, 35382,
+    35383, 35384, 35385, 35386, 35387, 35388, 35389, 35390,
+    35391, 35392, 35393, 35394, 35395, 35396, 35397, 35398,
+    35399, 35400, 35401, 35402, 35403, 35404, 35405, 35406,
+    35407, 35408, 35409,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1, 35389,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1, 35410,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1, 35393, 35396, 35398,    -1,
+       -1,    -1,    -1,    -1, 35414, 35417, 35419,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  2633,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,  2654,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1, 35403, 35404,    -1,    -1,
+       -1,    -1,    -1,    -1, 35424, 35425,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1, 35405,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1, 35426,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1, 35406,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1, 35427,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1, 35407,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1, 35428,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    35408, 35409, 35410, 35411, 35412, 35413, 35414, 35415,
-    35416, 35417, 35418, 35419, 35420, 35421, 35422, 35423,
-    35424, 35425, 35426, 35427, 35428, 35429, 35430, 35431,
-    35432, 35433, 35434, 35435, 35436, 35437, 35438, 35439,
-    35440, 35441, 35442, 35443, 35444, 35445, 35446, 35447,
-    35448, 35449, 35450, 35451, 35452, 35453, 35454, 35455,
-    35456, 35457, 35458, 35459, 35460, 35461, 35462, 35463,
-    35464, 35465, 35466, 35467, 35468, 35469, 35470, 35471,
-    35472, 35473, 35474, 35475, 35476, 35477, 35478, 35479,
-    35480, 35481, 35482, 35483, 35484, 35485, 35486, 35487,
-    35488, 35489, 35490, 35491, 35492, 35493, 35494, 35495,
-    35496, 35497, 35498, 35499, 35500, 35501, 35502, 35503,
-    35504, 35505, 35506, 35507, 35508, 35509, 35510, 35511,
-    35512, 35513, 35514, 35515, 35516, 35517, 35518, 35519,
-    35520, 35521, 35522, 35523, 35524, 35525, 35526, 35527,
-    35528, 35529, 35530, 35531, 35532, 35533, 35534, 35535,
-    35536, 35537, 35538, 35539, 35540, 35541, 35542, 35543,
-    35544, 35545, 35546, 35547, 35548, 35549, 35550, 35551,
-    35552, 35553, 35554, 35555, 35556, 35557, 35558, 35559,
-    35560, 35561, 35562, 35563, 35564, 35565, 35566, 35567,
-    35568, 35569, 35570, 35571, 35572, 35573, 35574, 35575,
-    35576, 35577, 35578, 35579, 35580, 35581, 35582, 35583,
-    35584, 35585, 35586, 35587, 35588, 35589, 35590, 35591,
-    35592, 35593, 35594, 35595, 35596, 35597, 35598, 35599,
-    35600, 35601, 35602, 35603, 35604, 35605, 35606, 35607,
-    35608, 35609, 35610, 35611, 35612, 35613, 35614, 35615,
-    35616, 35617, 35618, 35619, 35620, 35621,    -1,    -1,
+    35429, 35430, 35431, 35432, 35433, 35434, 35435, 35436,
+    35437, 35438, 35439, 35440, 35441, 35442, 35443, 35444,
+    35445, 35446, 35447, 35448, 35449, 35450, 35451, 35452,
+    35453, 35454, 35455, 35456, 35457, 35458, 35459, 35460,
+    35461, 35462, 35463, 35464, 35465, 35466, 35467, 35468,
+    35469, 35470, 35471, 35472, 35473, 35474, 35475, 35476,
+    35477, 35478, 35479, 35480, 35481, 35482, 35483, 35484,
+    35485, 35486, 35487, 35488, 35489, 35490, 35491, 35492,
+    35493, 35494, 35495, 35496, 35497, 35498, 35499, 35500,
+    35501, 35502, 35503, 35504, 35505, 35506, 35507, 35508,
+    35509, 35510, 35511, 35512, 35513, 35514, 35515, 35516,
+    35517, 35518, 35519, 35520, 35521, 35522, 35523, 35524,
+    35525, 35526, 35527, 35528, 35529, 35530, 35531, 35532,
+    35533, 35534, 35535, 35536, 35537, 35538, 35539, 35540,
+    35541, 35542, 35543, 35544, 35545, 35546, 35547, 35548,
+    35549, 35550, 35551, 35552, 35553, 35554, 35555, 35556,
+    35557, 35558, 35559, 35560, 35561, 35562, 35563, 35564,
+    35565, 35566, 35567, 35568, 35569, 35570, 35571, 35572,
+    35573, 35574, 35575, 35576, 35577, 35578, 35579, 35580,
+    35581, 35582, 35583, 35584, 35585, 35586, 35587, 35588,
+    35589, 35590, 35591, 35592, 35593, 35594, 35595, 35596,
+    35597, 35598, 35599, 35600, 35601, 35602, 35603, 35604,
+    35605, 35606, 35607, 35608, 35609, 35610, 35611, 35612,
+    35613, 35614, 35615, 35616, 35617, 35618, 35619, 35620,
+    35621, 35622, 35623, 35624, 35625, 35626, 35627, 35628,
+    35629, 35630, 35631, 35632, 35633, 35634, 35635, 35636,
+    35637, 35638, 35639, 35640, 35641, 35642,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    35622,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    35643,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1, 35623,    -1,
-    35624, 35625, 35626,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1, 35644,    -1,
+    35645, 35646, 35647,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  2859,    -1,  2861,    -1,
-     2863,    -1,  2865,    -1,  2867,    -1,  2869,    -1,
-     2871,    -1,  2873,    -1,  2875,    -1,  2877,    -1,
-     2879,    -1,  2881,    -1,    -1,  2883,    -1,  2885,
-       -1,  2887,    -1,    -1,    -1,    -1,    -1,    -1,
-     2889,  2891,    -1,  2893,  2895,    -1,  2897,  2899,
-       -1,  2901,  2903,    -1,  2905,  2907,    -1,    -1,
+       -1,    -1,    -1,    -1,  2880,    -1,  2882,    -1,
+     2884,    -1,  2886,    -1,  2888,    -1,  2890,    -1,
+     2892,    -1,  2894,    -1,  2896,    -1,  2898,    -1,
+     2900,    -1,  2902,    -1,    -1,  2904,    -1,  2906,
+       -1,  2908,    -1,    -1,    -1,    -1,    -1,    -1,
+     2910,  2912,    -1,  2914,  2916,    -1,  2918,  2920,
+       -1,  2922,  2924,    -1,  2926,  2928,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  2909,    -1,    -1,    -1,
-       -1,    -1,    -1, 35679, 35681,    -1,  2915, 35685,
+       -1,    -1,    -1,    -1,  2930,    -1,    -1,    -1,
+       -1,    -1,    -1, 35700, 35702,    -1,  2936, 35706,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  2919,    -1,  2921,    -1,
-     2923,    -1,  2925,    -1,  2927,    -1,  2929,    -1,
-     2931,    -1,  2933,    -1,  2935,    -1,  2937,    -1,
-     2939,    -1,  2941,    -1,    -1,  2943,    -1,  2945,
-       -1,  2947,    -1,    -1,    -1,    -1,    -1,    -1,
-     2949,  2951,    -1,  2953,  2955,    -1,  2957,  2959,
-       -1,  2961,  2963,    -1,  2965,  2967,    -1,    -1,
+       -1,    -1,    -1,    -1,  2940,    -1,  2942,    -1,
+     2944,    -1,  2946,    -1,  2948,    -1,  2950,    -1,
+     2952,    -1,  2954,    -1,  2956,    -1,  2958,    -1,
+     2960,    -1,  2962,    -1,    -1,  2964,    -1,  2966,
+       -1,  2968,    -1,    -1,    -1,    -1,    -1,    -1,
+     2970,  2972,    -1,  2974,  2976,    -1,  2978,  2980,
+       -1,  2982,  2984,    -1,  2986,  2988,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,  2969,    -1,    -1,  2971,
-     2973,  2975,  2977,    -1,    -1,    -1,  2979, 35749,
+       -1,    -1,    -1,    -1,  2990,    -1,    -1,  2992,
+     2994,  2996,  2998,    -1,    -1,    -1,  3000, 35770,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1, 35751, 35752, 35753, 35754, 35755, 35756, 35757,
-    35758, 35759, 35760, 35761, 35762, 35763, 35764, 35765,
-    35766, 35767, 35768, 35769, 35770, 35771, 35772, 35773,
-    35774, 35775, 35776, 35777, 35778, 35779, 35780, 35781,
-    35782, 35783, 35784, 35785, 35786, 35787, 35788, 35789,
-    35790, 35791, 35792, 35793, 35794, 35795, 35796, 35797,
-    35798, 35799, 35800, 35801, 35802, 35803, 35804, 35805,
-    35806, 35807, 35808, 35809, 35810, 35811, 35812, 35813,
-    35814, 35815, 35816, 35817, 35818, 35819, 35820, 35821,
-    35822, 35823, 35824, 35825, 35826, 35827, 35828, 35829,
-    35830, 35831, 35832, 35833, 35834, 35835, 35836, 35837,
-    35838, 35839, 35840, 35841, 35842, 35843, 35844,    -1,
-       -1,    -1, 35845, 35846, 35847, 35848, 35849, 35850,
+       -1, 35772, 35773, 35774, 35775, 35776, 35777, 35778,
+    35779, 35780, 35781, 35782, 35783, 35784, 35785, 35786,
+    35787, 35788, 35789, 35790, 35791, 35792, 35793, 35794,
+    35795, 35796, 35797, 35798, 35799, 35800, 35801, 35802,
+    35803, 35804, 35805, 35806, 35807, 35808, 35809, 35810,
+    35811, 35812, 35813, 35814, 35815, 35816, 35817, 35818,
+    35819, 35820, 35821, 35822, 35823, 35824, 35825, 35826,
+    35827, 35828, 35829, 35830, 35831, 35832, 35833, 35834,
+    35835, 35836, 35837, 35838, 35839, 35840, 35841, 35842,
+    35843, 35844, 35845, 35846, 35847, 35848, 35849, 35850,
     35851, 35852, 35853, 35854, 35855, 35856, 35857, 35858,
-    35859, 35862, 35865, 35868, 35871, 35874, 35877, 35880,
-    35883, 35886, 35889, 35892, 35895, 35898, 35901, 35905,
-    35909, 35913, 35917, 35921, 35925, 35929, 35933, 35937,
-    35941, 35945, 35949, 35953, 35957, 35961, 35968,    -1,
-    35974, 35977, 35980, 35983, 35986, 35989, 35992, 35995,
-    35998, 36001, 36004, 36007, 36010, 36013, 36016, 36019,
-    36022, 36025, 36028, 36031, 36034, 36037, 36040, 36043,
-    36046, 36049, 36052, 36055, 36058, 36061, 36064, 36067,
-    36070, 36073, 36076, 36079,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    36082, 36085, 36087, 36089, 36091, 36093, 36095, 36097,
-    36099, 36101, 36103, 36105, 36107, 36109, 36111, 36113,
-    36115, 36116, 36117, 36118, 36119, 36120, 36121, 36122,
-    36123, 36124, 36125, 36126, 36127, 36128, 36129, 36131,
-    36133, 36135, 36137, 36139, 36141, 36143, 36145, 36147,
-    36149, 36151, 36153, 36155, 36157, 36162, 36166,    -1,
-    36168, 36169, 36170, 36171, 36172, 36173, 36174, 36175,
-    36176, 36177, 36178, 36179, 36180, 36181, 36182, 36183,
-    36184, 36185, 36186, 36187, 36188, 36189, 36190, 36191,
-    36192, 36193, 36194, 36195, 36196, 36197, 36198, 36199,
-    36200, 36201, 36202, 36203, 36204, 36205, 36206, 36207,
-    36208, 36209, 36210, 36211, 36212, 36213, 36214, 36215,
-    36216, 36217, 36219, 36221, 36223, 36225, 36227, 36229,
-    36231, 36233, 36235, 36237, 36239, 36241, 36243, 36245,
-    36247, 36249, 36251, 36253, 36255, 36257, 36259, 36261,
-    36263, 36265, 36268, 36271, 36274, 36276, 36279, 36281,
-    36284, 36285, 36286, 36287, 36288, 36289, 36290, 36291,
-    36292, 36293, 36294, 36295, 36296, 36297, 36298, 36299,
-    36300, 36301, 36302, 36303, 36304, 36305, 36306, 36307,
-    36308, 36309, 36310, 36311, 36312, 36313, 36314, 36315,
-    36316, 36317, 36318, 36319, 36320, 36321, 36322, 36323,
-    36324, 36325, 36326, 36327, 36328, 36329, 36330,    -1,
-    36331, 36335, 36339, 36343, 36346, 36350, 36353, 36356,
-    36361, 36365, 36368, 36371, 36374, 36378, 36382, 36385,
-    36388, 36390, 36393, 36397, 36401, 36403, 36408, 36414,
-    36419, 36422, 36427, 36432, 36436, 36439, 36442, 36445,
-    36449, 36454, 36458, 36461, 36464, 36467, 36469, 36471,
-    36473, 36475, 36478, 36481, 36486, 36489, 36493, 36498,
-    36501, 36503, 36505, 36510, 36514, 36519, 36522, 36527,
-    36529, 36532, 36535, 36538, 36541, 36544, 36548, 36551,
-    36553, 36556, 36559, 36562, 36566, 36569, 36572, 36575,
-    36580, 36584, 36586, 36591, 36593, 36597, 36601, 36604,
-    36607, 36610, 36614, 36616, 36619, 36623, 36625, 36630,
-    36633, 36635, 36637, 36639, 36641, 36643, 36645, 36647,
-    36649, 36651, 36653, 36656, 36659, 36662, 36665, 36668,
-    36671, 36674, 36677, 36680, 36683, 36686, 36689, 36692,
-    36695, 36698, 36701, 36703, 36705, 36708, 36710, 36712,
-    36714, 36717, 36720, 36722, 36724, 36726, 36728, 36730,
-    36734, 36736, 36738, 36740, 36742, 36744, 36746, 36748,
-    36750, 36753, 36757, 36759, 36761, 36763, 36765, 36767,
-    36769, 36771, 36774, 36777, 36780, 36783, 36785, 36787,
-    36789, 36791, 36793, 36795, 36797, 36799, 36801, 36803,
-    36806, 36809, 36811, 36814, 36817, 36820, 36822, 36825,
-    36828, 36832, 36834, 36837, 36840, 36843, 36846, 36851,
-    36857, 36859, 36861, 36863, 36865, 36867, 36869, 36871,
-    36873, 36875, 36877, 36879, 36881, 36883, 36885, 36887,
-    36889, 36891, 36893, 36897, 36899, 36901, 36903, 36907,
-    36910, 36912, 36914, 36916, 36918, 36920, 36922, 36924,
-    36926, 36928, 36930, 36933, 36935, 36937, 36940, 36943,
-    36945, 36949, 36952, 36954, 36956, 36958, 36960, 36963,
-    36966, 36968, 36970, 36972, 36974, 36976, 36978, 36980,
-    36982, 36984, 36987, 36990, 36993, 36996, 36999, 37002,
-    37005, 37008, 37011, 37014, 37017, 37020, 37023, 37026,
-    37029, 37032, 37035, 37038, 37041, 37044, 37047, 37050,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    37053,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     4286,  4287,  4288,  4289,  4290,  4291,  4292,  4293,
-     4294,  4295,  4296,  4297,  4298,  4299,  4300,  4301,
-     4302,  4303,  4304,  4305,  4306,  4307,  4308,  4309,
-     4310,  4311,  4312,  4313,  4314,  4315,  4316,  4317,
-     4318,  4319,  4320,  4321,  4322,  4323,  4324,  4325,
-     4326,  4327,  4328,  4329,  4330,  4331,  4332,  4333,
-     4334,  4335,  4336,  4337,  4338,  4339,  4340,  4341,
-     4342,  4343,  4344,  4345,  4346,  4347,  4348,  4349,
-     4350,  4351,  4352,  4353,  4354,  4355,  4356,  4357,
-     4358,  4359,  4360,  4361,  4362,  4363,  4364,  4365,
-     4366,  4367,  4368,  4369,  4370,  4371,  4372,  4373,
-     4374,  4375,  4376,  4377,  4378,  4379,  4380,  4381,
-     4382,  4383,  4384,  4385,  4386,  4387,  4388,  4389,
-     4390,  4391,  4392,  4393,  4394,  4395,  4396,  4397,
-     4398,  4399,  4400,  4401,  4402,  4403,  4404,  4405,
-     4406,  4407,  4408,  4409,  4410,  4411,  4412,  4413,
-     4414,  4415,  4416,  4417,  4418,  4419,  4420,  4421,
-     4422,  4423,  4424,  4425,  4426,  4427,  4428,  4429,
-     4430,  4431,  4432,  4433,  4434,  4435,  4436,  4437,
-     4438,  4439,  4440,  4441,  4442,  4443,  4444,  4445,
-     4446,  4447,  4448,  4449,  4450,  4451,  4452,  4453,
-     4454,  4455,  4456,  4457,  4458,  4459,  4460,  4461,
-     4462,  4463,  4464,  4465,  4466,  4467,  4468,  4469,
-     4470,  4471,  4472,  4473,  4474,  4475,  4476,  4477,
-     4478,  4479,  4480,  4481,  4482,  4483,  4484,  4485,
-     4486,  4487,  4488,  4489,  4490,  4491,  4492,  4493,
-     4494,  4495,  4496,  4497,  4498,  4499,  4500,  4501,
-     4502,  4503,  4504,  4505,  4506,  4507,  4508,  4509,
-     4510,  4511,  4512,  4513,  4514,  4515,  4516,  4517,
-     4518,  4519,  4520,  4521,  4522,  4523,  4524,  4525,
-     4526,  4527,  4528,  4529,  4530,  4531,  4532,  4533,
-     4534,  4535,  4536,  4537,  4538,  4539,  4540,  4541,
-     4542,  4543,  4544,  4545,  4546,  4547,  4548,  4549,
-     4550,  4551,  4552,  4553,  4554,  4555,    -1,    -1,
-     4556,    -1,  4557,    -1,    -1,  4558,  4559,  4560,
-     4561,  4562,  4563,  4564,  4565,  4566,  4567,    -1,
-     4568,    -1,  4569,    -1,    -1,  4570,  4571,    -1,
-       -1,    -1,  4572,  4573,  4574,  4575,    -1,    -1,
-     4576,  4577,  4578,  4579,  4580,  4581,  4582,  4583,
-     4584,  4585,  4586,  4587,  4588,  4589,  4590,  4591,
-     4592,  4593,  4594,  4595,  4596,  4597,  4598,  4599,
-     4600,  4601,  4602,  4603,  4604,  4605,  4606,  4607,
-     4608,  4609,  4610,  4611,  4612,  4613,  4614,  4615,
-     4616,  4617,  4618,  4619,  4620,  4621,  4622,  4623,
-     4624,  4625,  4626,  4627,  4628,  4629,  4630,  4631,
-     4632,  4633,  4634,    -1,    -1,    -1,    -1,    -1,
-     4635,  4636,  4637,  4638,  4639,  4640,  4641,  4642,
-     4643,  4644,  4645,  4646,  4647,  4648,  4649,  4650,
-     4651,  4652,  4653,  4654,  4655,  4656,  4657,  4658,
-     4659,  4660,  4661,  4662,  4663,  4664,  4665,  4666,
-     4667,  4668,  4669,  4670,  4671,  4672,  4673,  4674,
-     4675,  4676,  4677,  4678,  4679,  4680,  4681,  4682,
-     4683,  4684,  4685,  4686,  4687,  4688,  4689,  4690,
-     4691,  4692,  4693,  4694,  4695,  4696,  4697,  4698,
-     4699,  4700,  4701,  4702,  4703,  4704,  4705,  4706,
-     4707,  4708,  4709,  4710,  4711,  4712,  4713,  4714,
-     4715,  4716,  4717,  4718,  4719,  4720,  4721,  4722,
-     4723,  4724,  4725,  4726,  4727,  4728,  4729,  4730,
-     4731,  4732,  4733,  4734,  4735,  4736,  4737,  4738,
-     4739,  4740,    -1,    -1,    -1,    -1,    -1,    -1,
-    37509, 37511, 37513, 37515, 37518, 37521, 37523,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1, 37525, 37527, 37529, 37531, 37533,
-       -1,    -1,    -1,    -1,    -1,  4767,    -1,  4769,
-    37539, 37540, 37541, 37542, 37543, 37544, 37545, 37546,
-    37547, 37548,  4781,  4783,  4785,  4787,  4789,  4791,
-     4793,  4795,  4797,  4799,  4801,  4803,  4805,    -1,
-     4807,  4809,  4811,  4813,  4815,    -1,  4817,    -1,
-     4819,  4821,    -1,  4823,  4825,    -1,  4827,  4829,
-     4831,  4833,  4835,  4837,  4839,  4841,  4843, 37613,
-    37615, 37616, 37617, 37618, 37619, 37620, 37621, 37622,
-    37623, 37624, 37625, 37626, 37627, 37628, 37629, 37630,
-    37631, 37632, 37633, 37634, 37635, 37636, 37637, 37638,
-    37639, 37640, 37641, 37642, 37643, 37644, 37645, 37646,
-    37647, 37648, 37649, 37650, 37651, 37652, 37653, 37654,
-    37655, 37656, 37657, 37658, 37659, 37660, 37661, 37662,
-    37663, 37664, 37665, 37666, 37667, 37668, 37669, 37670,
-    37671, 37672, 37673, 37674, 37675, 37676, 37677, 37678,
-    37679, 37680, 37681, 37682, 37683, 37684, 37685, 37686,
-    37687, 37688, 37689, 37690, 37691, 37692, 37693, 37694,
-    37695, 37696, 37697, 37698, 37699, 37700, 37701, 37702,
-    37703, 37704, 37705, 37706, 37707, 37708, 37709, 37710,
-    37711, 37712,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1, 37713, 37714, 37715, 37716, 37717,
-    37718, 37719, 37720, 37721, 37722, 37723, 37724, 37725,
-    37726, 37727, 37728, 37729, 37730, 37731, 37732, 37733,
-    37734, 37735, 37736, 37738, 37740, 37742, 37744, 37746,
-    37748, 37750, 37752, 37754, 37756, 37758, 37760, 37762,
-    37764, 37766, 37768, 37770, 37772, 37773, 37774, 37775,
+    35859, 35860, 35861, 35862, 35863, 35864, 35865,    -1,
+       -1,    -1, 35866, 35867, 35868, 35869, 35870, 35871,
+    35872, 35873, 35874, 35875, 35876, 35877, 35878, 35879,
+    35880, 35883, 35886, 35889, 35892, 35895, 35898, 35901,
+    35904, 35907, 35910, 35913, 35916, 35919, 35922, 35926,
+    35930, 35934, 35938, 35942, 35946, 35950, 35954, 35958,
+    35962, 35966, 35970, 35974, 35978, 35982, 35989,    -1,
+    35995, 35998, 36001, 36004, 36007, 36010, 36013, 36016,
+    36019, 36022, 36025, 36028, 36031, 36034, 36037, 36040,
+    36043, 36046, 36049, 36052, 36055, 36058, 36061, 36064,
+    36067, 36070, 36073, 36076, 36079, 36082, 36085, 36088,
+    36091, 36094, 36097, 36100, 36103, 36104, 36105, 36106,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    36107, 36110, 36112, 36114, 36116, 36118, 36120, 36122,
+    36124, 36126, 36128, 36130, 36132, 36134, 36136, 36138,
+    36140, 36141, 36142, 36143, 36144, 36145, 36146, 36147,
+    36148, 36149, 36150, 36151, 36152, 36153, 36154, 36156,
+    36158, 36160, 36162, 36164, 36166, 36168, 36170, 36172,
+    36174, 36176, 36178, 36180, 36182, 36187, 36191,    -1,
+    36193, 36194, 36195, 36196, 36197, 36198, 36199, 36200,
+    36201, 36202, 36203, 36204, 36205, 36206, 36207, 36208,
+    36209, 36210, 36211, 36212, 36213, 36214, 36215, 36216,
+    36217, 36218, 36219, 36220, 36221, 36222, 36223, 36224,
+    36225, 36226, 36227, 36228, 36229, 36230, 36231, 36232,
+    36233, 36234, 36235, 36236, 36237, 36238, 36239, 36240,
+    36241, 36242, 36244, 36246, 36248, 36250, 36252, 36254,
+    36256, 36258, 36260, 36262, 36264, 36266, 36268, 36270,
+    36272, 36274, 36276, 36278, 36280, 36282, 36284, 36286,
+    36288, 36290, 36293, 36296, 36299, 36301, 36304, 36306,
+    36309, 36310, 36311, 36312, 36313, 36314, 36315, 36316,
+    36317, 36318, 36319, 36320, 36321, 36322, 36323, 36324,
+    36325, 36326, 36327, 36328, 36329, 36330, 36331, 36332,
+    36333, 36334, 36335, 36336, 36337, 36338, 36339, 36340,
+    36341, 36342, 36343, 36344, 36345, 36346, 36347, 36348,
+    36349, 36350, 36351, 36352, 36353, 36354, 36355,    -1,
+    36356, 36360, 36364, 36368, 36371, 36375, 36378, 36381,
+    36386, 36390, 36393, 36396, 36399, 36403, 36407, 36410,
+    36413, 36415, 36418, 36422, 36426, 36428, 36433, 36439,
+    36444, 36447, 36452, 36457, 36461, 36464, 36467, 36470,
+    36474, 36479, 36483, 36486, 36489, 36492, 36494, 36496,
+    36498, 36500, 36503, 36506, 36511, 36514, 36518, 36523,
+    36526, 36528, 36530, 36535, 36539, 36544, 36547, 36552,
+    36554, 36557, 36560, 36563, 36566, 36569, 36573, 36576,
+    36578, 36581, 36584, 36587, 36591, 36594, 36597, 36600,
+    36605, 36609, 36611, 36616, 36618, 36622, 36626, 36629,
+    36632, 36635, 36639, 36641, 36644, 36648, 36650, 36655,
+    36658, 36660, 36662, 36664, 36666, 36668, 36670, 36672,
+    36674, 36676, 36678, 36681, 36684, 36687, 36690, 36693,
+    36696, 36699, 36702, 36705, 36708, 36711, 36714, 36717,
+    36720, 36723, 36726, 36728, 36730, 36733, 36735, 36737,
+    36739, 36742, 36745, 36747, 36749, 36751, 36753, 36755,
+    36759, 36761, 36763, 36765, 36767, 36769, 36771, 36773,
+    36775, 36778, 36782, 36784, 36786, 36788, 36790, 36792,
+    36794, 36796, 36799, 36802, 36805, 36808, 36810, 36812,
+    36814, 36816, 36818, 36820, 36822, 36824, 36826, 36828,
+    36831, 36834, 36836, 36839, 36842, 36845, 36847, 36850,
+    36853, 36857, 36859, 36862, 36865, 36868, 36871, 36876,
+    36882, 36884, 36886, 36888, 36890, 36892, 36894, 36896,
+    36898, 36900, 36902, 36904, 36906, 36908, 36910, 36912,
+    36914, 36916, 36918, 36922, 36924, 36926, 36928, 36932,
+    36935, 36937, 36939, 36941, 36943, 36945, 36947, 36949,
+    36951, 36953, 36955, 36958, 36960, 36962, 36965, 36968,
+    36970, 36974, 36977, 36979, 36981, 36983, 36985, 36988,
+    36991, 36993, 36995, 36997, 36999, 37001, 37003, 37005,
+    37007, 37009, 37012, 37015, 37018, 37021, 37024, 37027,
+    37030, 37033, 37036, 37039, 37042, 37045, 37048, 37051,
+    37054, 37057, 37060, 37063, 37066, 37069, 37072, 37075,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    37078,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     4311,  4312,  4313,  4314,  4315,  4316,  4317,  4318,
+     4319,  4320,  4321,  4322,  4323,  4324,  4325,  4326,
+     4327,  4328,  4329,  4330,  4331,  4332,  4333,  4334,
+     4335,  4336,  4337,  4338,  4339,  4340,  4341,  4342,
+     4343,  4344,  4345,  4346,  4347,  4348,  4349,  4350,
+     4351,  4352,  4353,  4354,  4355,  4356,  4357,  4358,
+     4359,  4360,  4361,  4362,  4363,  4364,  4365,  4366,
+     4367,  4368,  4369,  4370,  4371,  4372,  4373,  4374,
+     4375,  4376,  4377,  4378,  4379,  4380,  4381,  4382,
+     4383,  4384,  4385,  4386,  4387,  4388,  4389,  4390,
+     4391,  4392,  4393,  4394,  4395,  4396,  4397,  4398,
+     4399,  4400,  4401,  4402,  4403,  4404,  4405,  4406,
+     4407,  4408,  4409,  4410,  4411,  4412,  4413,  4414,
+     4415,  4416,  4417,  4418,  4419,  4420,  4421,  4422,
+     4423,  4424,  4425,  4426,  4427,  4428,  4429,  4430,
+     4431,  4432,  4433,  4434,  4435,  4436,  4437,  4438,
+     4439,  4440,  4441,  4442,  4443,  4444,  4445,  4446,
+     4447,  4448,  4449,  4450,  4451,  4452,  4453,  4454,
+     4455,  4456,  4457,  4458,  4459,  4460,  4461,  4462,
+     4463,  4464,  4465,  4466,  4467,  4468,  4469,  4470,
+     4471,  4472,  4473,  4474,  4475,  4476,  4477,  4478,
+     4479,  4480,  4481,  4482,  4483,  4484,  4485,  4486,
+     4487,  4488,  4489,  4490,  4491,  4492,  4493,  4494,
+     4495,  4496,  4497,  4498,  4499,  4500,  4501,  4502,
+     4503,  4504,  4505,  4506,  4507,  4508,  4509,  4510,
+     4511,  4512,  4513,  4514,  4515,  4516,  4517,  4518,
+     4519,  4520,  4521,  4522,  4523,  4524,  4525,  4526,
+     4527,  4528,  4529,  4530,  4531,  4532,  4533,  4534,
+     4535,  4536,  4537,  4538,  4539,  4540,  4541,  4542,
+     4543,  4544,  4545,  4546,  4547,  4548,  4549,  4550,
+     4551,  4552,  4553,  4554,  4555,  4556,  4557,  4558,
+     4559,  4560,  4561,  4562,  4563,  4564,  4565,  4566,
+     4567,  4568,  4569,  4570,  4571,  4572,  4573,  4574,
+     4575,  4576,  4577,  4578,  4579,  4580,    -1,    -1,
+     4581,    -1,  4582,    -1,    -1,  4583,  4584,  4585,
+     4586,  4587,  4588,  4589,  4590,  4591,  4592,    -1,
+     4593,    -1,  4594,    -1,    -1,  4595,  4596,    -1,
+       -1,    -1,  4597,  4598,  4599,  4600,    -1,    -1,
+     4601,  4602,  4603,  4604,  4605,  4606,  4607,  4608,
+     4609,  4610,  4611,  4612,  4613,  4614,  4615,  4616,
+     4617,  4618,  4619,  4620,  4621,  4622,  4623,  4624,
+     4625,  4626,  4627,  4628,  4629,  4630,  4631,  4632,
+     4633,  4634,  4635,  4636,  4637,  4638,  4639,  4640,
+     4641,  4642,  4643,  4644,  4645,  4646,  4647,  4648,
+     4649,  4650,  4651,  4652,  4653,  4654,  4655,  4656,
+     4657,  4658,  4659,  4660,  4661,  4662,    -1,    -1,
+     4663,  4664,  4665,  4666,  4667,  4668,  4669,  4670,
+     4671,  4672,  4673,  4674,  4675,  4676,  4677,  4678,
+     4679,  4680,  4681,  4682,  4683,  4684,  4685,  4686,
+     4687,  4688,  4689,  4690,  4691,  4692,  4693,  4694,
+     4695,  4696,  4697,  4698,  4699,  4700,  4701,  4702,
+     4703,  4704,  4705,  4706,  4707,  4708,  4709,  4710,
+     4711,  4712,  4713,  4714,  4715,  4716,  4717,  4718,
+     4719,  4720,  4721,  4722,  4723,  4724,  4725,  4726,
+     4727,  4728,  4729,  4730,  4731,  4732,  4733,  4734,
+     4735,  4736,  4737,  4738,  4739,  4740,  4741,  4742,
+     4743,  4744,  4745,  4746,  4747,  4748,  4749,  4750,
+     4751,  4752,  4753,  4754,  4755,  4756,  4757,  4758,
+     4759,  4760,  4761,  4762,  4763,  4764,  4765,  4766,
+     4767,  4768,    -1,    -1,    -1,    -1,    -1,    -1,
+    37537, 37539, 37541, 37543, 37546, 37549, 37551,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1, 37553, 37555, 37557, 37559, 37561,
+       -1,    -1,    -1,    -1,    -1,  4795,    -1,  4797,
+    37567, 37568, 37569, 37570, 37571, 37572, 37573, 37574,
+    37575, 37576,  4809,  4811,  4813,  4815,  4817,  4819,
+     4821,  4823,  4825,  4827,  4829,  4831,  4833,    -1,
+     4835,  4837,  4839,  4841,  4843,    -1,  4845,    -1,
+     4847,  4849,    -1,  4851,  4853,    -1,  4855,  4857,
+     4859,  4861,  4863,  4865,  4867,  4869,  4871, 37641,
+    37643, 37644, 37645, 37646, 37647, 37648, 37649, 37650,
+    37651, 37652, 37653, 37654, 37655, 37656, 37657, 37658,
+    37659, 37660, 37661, 37662, 37663, 37664, 37665, 37666,
+    37667, 37668, 37669, 37670, 37671, 37672, 37673, 37674,
+    37675, 37676, 37677, 37678, 37679, 37680, 37681, 37682,
+    37683, 37684, 37685, 37686, 37687, 37688, 37689, 37690,
+    37691, 37692, 37693, 37694, 37695, 37696, 37697, 37698,
+    37699, 37700, 37701, 37702, 37703, 37704, 37705, 37706,
+    37707, 37708, 37709, 37710, 37711, 37712, 37713, 37714,
+    37715, 37716, 37717, 37718, 37719, 37720, 37721, 37722,
+    37723, 37724, 37725, 37726, 37727, 37728, 37729, 37730,
+    37731, 37732, 37733, 37734, 37735, 37736, 37737, 37738,
+    37739, 37740,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1, 37741, 37742, 37743, 37744, 37745,
+    37746, 37747, 37748, 37749, 37750, 37751, 37752, 37753,
+    37754, 37755, 37756, 37757, 37758, 37759, 37760, 37761,
+    37762, 37763, 37764, 37766, 37768, 37770, 37772, 37774,
     37776, 37778, 37780, 37782, 37784, 37786, 37788, 37790,
-    37792, 37794, 37796, 37798, 37800, 37802, 37804, 37806,
-    37808, 37810, 37812, 37814, 37816, 37818, 37820, 37822,
-    37824, 37826, 37828, 37830, 37832, 37834, 37836, 37838,
-    37840, 37842, 37844, 37846, 37848, 37850, 37852, 37854,
-    37856, 37858, 37860, 37862, 37864, 37866, 37868, 37870,
-    37872, 37874, 37876, 37878, 37880, 37882, 37884, 37886,
-    37888, 37890, 37892, 37894, 37896, 37898, 37900, 37902,
-    37904, 37906, 37908, 37910, 37912, 37914, 37916, 37918,
-    37920, 37922, 37924, 37926, 37928, 37930, 37932, 37934,
-    37936, 37938, 37940, 37942, 37944, 37946, 37948, 37950,
-    37952, 37954, 37956, 37958, 37960, 37962, 37964, 37967,
-    37970, 37973, 37976, 37979, 37982, 37984, 37986, 37988,
-    37990, 37992, 37994, 37996, 37998, 38000, 38002, 38004,
-    38006, 38008, 38010, 38012, 38014, 38016, 38018, 38020,
-    38022, 38024, 38026, 38028, 38030, 38032, 38034, 38036,
-    38038, 38040, 38042, 38044, 38046, 38048, 38050, 38052,
-    38054, 38056, 38058, 38060, 38062, 38064, 38066, 38068,
-    38070, 38072, 38074, 38076, 38078, 38080, 38082, 38084,
-    38086, 38088, 38090, 38092, 38094, 38096, 38098, 38100,
-    38102, 38104, 38106, 38108, 38110, 38112, 38114, 38116,
-    38118, 38120, 38122, 38124, 38126, 38128, 38130, 38132,
-    38134, 38136, 38138, 38140, 38142, 38144, 38146, 38148,
-    38150, 38152, 38154, 38156, 38158, 38160, 38162, 38164,
-    38166, 38168, 38170, 38172, 38174, 38176, 38178, 38180,
-    38182, 38184, 38186, 38188, 38190, 38192, 38194, 38196,
-    38198, 38200, 38202, 38204, 38206, 38208, 38210, 38212,
-    38214, 38216, 38218, 38220, 38222, 38224, 38226, 38228,
-    38230, 38232, 38234, 38236, 38238, 38240, 38242, 38244,
-    38246, 38248, 38250, 38252, 38254, 38256, 38258, 38260,
-    38262, 38264, 38266, 38269, 38272, 38275, 38277, 38279,
-    38281, 38283, 38285, 38287, 38289, 38291, 38293, 38295,
-    38297, 38299, 38301, 38303, 38305, 38307, 38309, 38311,
-    38313, 38315, 38317, 38319, 38321, 38323, 38325, 38327,
-    38329, 38331, 38333, 38335, 38337, 38339, 38341, 38343,
-    38345, 38347, 38349, 38351, 38353, 38355, 38357, 38359,
-    38361, 38363, 38365, 38367, 38369, 38371, 38373, 38375,
-    38377, 38379, 38381, 38383, 38385, 38387, 38389, 38391,
-    38393, 38395, 38397, 38399, 38401, 38403, 38405, 38407,
-    38409, 38411, 38413, 38415, 38417, 38419,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    38421, 38424, 38427, 38430, 38433, 38436, 38439, 38442,
-    38445, 38448, 38451, 38454, 38457, 38460, 38463, 38466,
-    38469, 38472, 38475, 38478, 38481, 38484, 38487, 38490,
-    38493, 38496, 38499, 38502, 38505, 38508, 38511, 38514,
-    38517, 38520, 38523, 38526, 38529, 38532, 38535, 38538,
-    38541, 38544, 38547, 38550, 38553, 38556, 38559, 38562,
-    38565, 38568, 38571, 38574, 38577, 38580, 38583, 38586,
-    38589, 38592, 38595, 38598, 38601, 38604, 38607, 38610,
-       -1,    -1, 38613, 38616, 38619, 38622, 38625, 38628,
-    38631, 38634, 38637, 38640, 38643, 38646, 38649, 38652,
-    38655, 38658, 38661, 38664, 38667, 38670, 38673, 38676,
-    38679, 38682, 38685, 38688, 38691, 38694, 38697, 38700,
-    38703, 38706, 38709, 38712, 38715, 38718, 38721, 38724,
-    38727, 38730, 38733, 38736, 38739, 38742, 38745, 38748,
-    38751, 38754, 38757, 38760, 38763, 38766, 38769, 38772,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    38775, 38778, 38781, 38785, 38789, 38793, 38797, 38801,
-    38805, 38809, 38812, 38830, 38838,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    38842, 38843, 38844, 38845, 38846, 38847, 38848, 38849,
-    38850, 38851,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    38852, 38853, 38854, 38855, 38856, 38857, 38858, 38859,
-    38860, 38861, 38862, 38863, 38864, 38865, 38866, 38867,
-    38868, 38869, 38870, 38871, 38872,    -1,    -1, 38873,
-    38874, 38875, 38876, 38877, 38878, 38879, 38880, 38881,
-    38882, 38883, 38884,    -1, 38885, 38886, 38887, 38888,
-    38889, 38890, 38891, 38892, 38893, 38894, 38895, 38896,
-    38897, 38898, 38899, 38900, 38901, 38902, 38903,    -1,
-    38904, 38905, 38906, 38907,    -1,    -1,    -1,    -1,
-    38908, 38910, 38912,    -1, 38914,    -1, 38916, 38918,
-    38920, 38922, 38924, 38926, 38928, 38930, 38932, 38934,
-    38936, 38937, 38938, 38939, 38940, 38941, 38942, 38943,
-    38944, 38945, 38946, 38947, 38948, 38949, 38950, 38951,
-    38952, 38953, 38954, 38955, 38956, 38957, 38958, 38959,
-    38960, 38961, 38962, 38963, 38964, 38965, 38966, 38967,
-    38968, 38969, 38970, 38971, 38972, 38973, 38974, 38975,
-    38976, 38977, 38978, 38979, 38980, 38981, 38982, 38983,
-    38984, 38985, 38986, 38987, 38988, 38989, 38990, 38991,
-    38992, 38993, 38994, 38995, 38996, 38997, 38998, 38999,
-    39000, 39001, 39002, 39003, 39004, 39005, 39006, 39007,
-    39008, 39009, 39010, 39011, 39012, 39013, 39014, 39015,
-    39016, 39017, 39018, 39019, 39020, 39021, 39022, 39023,
-    39024, 39025, 39026, 39027, 39028, 39029, 39030, 39031,
-    39032, 39033, 39034, 39035, 39036, 39037, 39038, 39039,
-    39040, 39041, 39042, 39043, 39044, 39045, 39046, 39047,
-    39048, 39049, 39050, 39051, 39052, 39053, 39055, 39057,
-    39059, 39061, 39063, 39065, 39067,    -1,    -1,    -1,
-       -1, 39069, 39070, 39071, 39072, 39073, 39074, 39075,
-    39076, 39077, 39078, 39079, 39080, 39081, 39082, 39083,
-    39084, 39085, 39086, 39087, 39088, 39089, 39090, 39091,
-    39092, 39093, 39094, 39095, 39096, 39097, 39098, 39099,
-    39100, 39101, 39102, 39103, 39104, 39105, 39106, 39107,
-    39108, 39109, 39110, 39111, 39112, 39113, 39114, 39115,
-    39116, 39117, 39118, 39119, 39120, 39121, 39122, 39123,
-    39124, 39125, 39126, 39127, 39128, 39129, 39130, 39131,
-    39132, 39133, 39134, 39135, 39136, 39137, 39138, 39139,
-    39140, 39141, 39142, 39143, 39144, 39145, 39146, 39147,
-    39148, 39149, 39150, 39151, 39152, 39153, 39154, 39155,
-    39156, 39157, 39158, 39159, 39160, 39161, 39162, 39163,
-    39164, 39165, 39166, 39167, 39168, 39169, 39170, 39171,
-    39172, 39173, 39174, 39175, 39176, 39177, 39178, 39179,
-    39180, 39181, 39182, 39183, 39184, 39185, 39186, 39187,
-    39188, 39189, 39190, 39191, 39192, 39193, 39194, 39195,
-    39196, 39197, 39198, 39199, 39200, 39201, 39202, 39203,
-    39204, 39205, 39206, 39207, 39208, 39209, 39210, 39211,
-    39212, 39213, 39214, 39215, 39216, 39217, 39218, 39219,
-    39220, 39221, 39222, 39223, 39224, 39225, 39226, 39227,
-    39228, 39229, 39230, 39231, 39232, 39233, 39234, 39235,
-    39236, 39237, 39238, 39239, 39240, 39241, 39242, 39243,
-    39244, 39245, 39246, 39247, 39248, 39249, 39250, 39251,
-    39252, 39253, 39254, 39255, 39256, 39257, 39258,    -1,
-       -1,    -1, 39259, 39260, 39261, 39262, 39263, 39264,
-       -1,    -1, 39265, 39266, 39267, 39268, 39269, 39270,
-       -1,    -1, 39271, 39272, 39273, 39274, 39275, 39276,
-       -1,    -1, 39277, 39278, 39279,    -1,    -1,    -1,
+    37792, 37794, 37796, 37798, 37800, 37801, 37802, 37803,
+    37804, 37806, 37808, 37810, 37812, 37814, 37816, 37818,
+    37820, 37822, 37824, 37826, 37828, 37830, 37832, 37834,
+    37836, 37838, 37840, 37842, 37844, 37846, 37848, 37850,
+    37852, 37854, 37856, 37858, 37860, 37862, 37864, 37866,
+    37868, 37870, 37872, 37874, 37876, 37878, 37880, 37882,
+    37884, 37886, 37888, 37890, 37892, 37894, 37896, 37898,
+    37900, 37902, 37904, 37906, 37908, 37910, 37912, 37914,
+    37916, 37918, 37920, 37922, 37924, 37926, 37928, 37930,
+    37932, 37934, 37936, 37938, 37940, 37942, 37944, 37946,
+    37948, 37950, 37952, 37954, 37956, 37958, 37960, 37962,
+    37964, 37966, 37968, 37970, 37972, 37974, 37976, 37978,
+    37980, 37982, 37984, 37986, 37988, 37990, 37992, 37995,
+    37998, 38001, 38004, 38007, 38010, 38012, 38014, 38016,
+    38018, 38020, 38022, 38024, 38026, 38028, 38030, 38032,
+    38034, 38036, 38038, 38040, 38042, 38044, 38046, 38048,
+    38050, 38052, 38054, 38056, 38058, 38060, 38062, 38064,
+    38066, 38068, 38070, 38072, 38074, 38076, 38078, 38080,
+    38082, 38084, 38086, 38088, 38090, 38092, 38094, 38096,
+    38098, 38100, 38102, 38104, 38106, 38108, 38110, 38112,
+    38114, 38116, 38118, 38120, 38122, 38124, 38126, 38128,
+    38130, 38132, 38134, 38136, 38138, 38140, 38142, 38144,
+    38146, 38148, 38150, 38152, 38154, 38156, 38158, 38160,
+    38162, 38164, 38166, 38168, 38170, 38172, 38174, 38176,
+    38178, 38180, 38182, 38184, 38186, 38188, 38190, 38192,
+    38194, 38196, 38198, 38200, 38202, 38204, 38206, 38208,
+    38210, 38212, 38214, 38216, 38218, 38220, 38222, 38224,
+    38226, 38228, 38230, 38232, 38234, 38236, 38238, 38240,
+    38242, 38244, 38246, 38248, 38250, 38252, 38254, 38256,
+    38258, 38260, 38262, 38264, 38266, 38268, 38270, 38272,
+    38274, 38276, 38278, 38280, 38282, 38284, 38286, 38288,
+    38290, 38292, 38294, 38297, 38300, 38303, 38305, 38307,
+    38309, 38311, 38313, 38315, 38317, 38319, 38321, 38323,
+    38325, 38327, 38329, 38331, 38333, 38335, 38337, 38339,
+    38341, 38343, 38345, 38347, 38349, 38351, 38353, 38355,
+    38357, 38359, 38361, 38363, 38365, 38367, 38369, 38371,
+    38373, 38375, 38377, 38379, 38381, 38383, 38385, 38387,
+    38389, 38391, 38393, 38395, 38397, 38399, 38401, 38403,
+    38405, 38407, 38409, 38411, 38413, 38415, 38417, 38419,
+    38421, 38423, 38425, 38427, 38429, 38431, 38433, 38435,
+    38437, 38439, 38441, 38443, 38445, 38447,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    38449, 38452, 38455, 38458, 38461, 38464, 38467, 38470,
+    38473, 38476, 38479, 38482, 38485, 38488, 38491, 38494,
+    38497, 38500, 38503, 38506, 38509, 38512, 38515, 38518,
+    38521, 38524, 38527, 38530, 38533, 38536, 38539, 38542,
+    38545, 38548, 38551, 38554, 38557, 38560, 38563, 38566,
+    38569, 38572, 38575, 38578, 38581, 38584, 38587, 38590,
+    38593, 38596, 38599, 38602, 38605, 38608, 38611, 38614,
+    38617, 38620, 38623, 38626, 38629, 38632, 38635, 38638,
+       -1,    -1, 38641, 38644, 38647, 38650, 38653, 38656,
+    38659, 38662, 38665, 38668, 38671, 38674, 38677, 38680,
+    38683, 38686, 38689, 38692, 38695, 38698, 38701, 38704,
+    38707, 38710, 38713, 38716, 38719, 38722, 38725, 38728,
+    38731, 38734, 38737, 38740, 38743, 38746, 38749, 38752,
+    38755, 38758, 38761, 38764, 38767, 38770, 38773, 38776,
+    38779, 38782, 38785, 38788, 38791, 38794, 38797, 38800,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    38803, 38806, 38809, 38813, 38817, 38821, 38825, 38829,
+    38833, 38837, 38840, 38858, 38866,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    38870, 38871, 38872, 38873, 38874, 38875, 38876, 38877,
+    38878, 38879,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    38880, 38881, 38882, 38883, 38884, 38885, 38886, 38887,
+    38888, 38889, 38890, 38891, 38892, 38893, 38894, 38895,
+    38896, 38897, 38898, 38899, 38900,    -1,    -1, 38901,
+    38902, 38903, 38904, 38905, 38906, 38907, 38908, 38909,
+    38910, 38911, 38912,    -1, 38913, 38914, 38915, 38916,
+    38917, 38918, 38919, 38920, 38921, 38922, 38923, 38924,
+    38925, 38926, 38927, 38928, 38929, 38930, 38931,    -1,
+    38932, 38933, 38934, 38935,    -1,    -1,    -1,    -1,
+    38936, 38938, 38940,    -1, 38942,    -1, 38944, 38946,
+    38948, 38950, 38952, 38954, 38956, 38958, 38960, 38962,
+    38964, 38965, 38966, 38967, 38968, 38969, 38970, 38971,
+    38972, 38973, 38974, 38975, 38976, 38977, 38978, 38979,
+    38980, 38981, 38982, 38983, 38984, 38985, 38986, 38987,
+    38988, 38989, 38990, 38991, 38992, 38993, 38994, 38995,
+    38996, 38997, 38998, 38999, 39000, 39001, 39002, 39003,
+    39004, 39005, 39006, 39007, 39008, 39009, 39010, 39011,
+    39012, 39013, 39014, 39015, 39016, 39017, 39018, 39019,
+    39020, 39021, 39022, 39023, 39024, 39025, 39026, 39027,
+    39028, 39029, 39030, 39031, 39032, 39033, 39034, 39035,
+    39036, 39037, 39038, 39039, 39040, 39041, 39042, 39043,
+    39044, 39045, 39046, 39047, 39048, 39049, 39050, 39051,
+    39052, 39053, 39054, 39055, 39056, 39057, 39058, 39059,
+    39060, 39061, 39062, 39063, 39064, 39065, 39066, 39067,
+    39068, 39069, 39070, 39071, 39072, 39073, 39074, 39075,
+    39076, 39077, 39078, 39079, 39080, 39081, 39083, 39085,
+    39087, 39089, 39091, 39093, 39095,    -1,    -1,    -1,
+       -1, 39097, 39098, 39099, 39100, 39101, 39102, 39103,
+    39104, 39105, 39106, 39107, 39108, 39109, 39110, 39111,
+    39112, 39113, 39114, 39115, 39116, 39117, 39118, 39119,
+    39120, 39121, 39122, 39123, 39124, 39125, 39126, 39127,
+    39128, 39129, 39130, 39131, 39132, 39133, 39134, 39135,
+    39136, 39137, 39138, 39139, 39140, 39141, 39142, 39143,
+    39144, 39145, 39146, 39147, 39148, 39149, 39150, 39151,
+    39152, 39153, 39154, 39155, 39156, 39157, 39158, 39159,
+    39160, 39161, 39162, 39163, 39164, 39165, 39166, 39167,
+    39168, 39169, 39170, 39171, 39172, 39173, 39174, 39175,
+    39176, 39177, 39178, 39179, 39180, 39181, 39182, 39183,
+    39184, 39185, 39186, 39187, 39188, 39189, 39190, 39191,
+    39192, 39193, 39194, 39195, 39196, 39197, 39198, 39199,
+    39200, 39201, 39202, 39203, 39204, 39205, 39206, 39207,
+    39208, 39209, 39210, 39211, 39212, 39213, 39214, 39215,
+    39216, 39217, 39218, 39219, 39220, 39221, 39222, 39223,
+    39224, 39225, 39226, 39227, 39228, 39229, 39230, 39231,
+    39232, 39233, 39234, 39235, 39236, 39237, 39238, 39239,
+    39240, 39241, 39242, 39243, 39244, 39245, 39246, 39247,
+    39248, 39249, 39250, 39251, 39252, 39253, 39254, 39255,
+    39256, 39257, 39258, 39259, 39260, 39261, 39262, 39263,
+    39264, 39265, 39266, 39267, 39268, 39269, 39270, 39271,
+    39272, 39273, 39274, 39275, 39276, 39277, 39278, 39279,
     39280, 39281, 39282, 39283, 39284, 39285, 39286,    -1,
-    39287, 39288, 39289, 39290, 39291, 39292, 39293,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  6526,  6528,
-     6530,  6532,  6534,  6536,  6538,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,  6540,  6542,  6544,  6546,  6548,
-     6550,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    39320, 39321, 39322, 39323, 39324, 39325, 39326, 39327,
-    39328, 39329, 39330, 39331, 39332, 39333, 39334, 39335,
-    39336, 39337, 39338, 39339, 39340, 39341, 39342, 39343,
-    39344, 39345, 39346, 39347, 39348, 39349, 39350, 39351,
-    39352, 39353, 39354, 39355, 39356, 39357, 39358, 39359,
-    39360, 39361, 39362, 39363, 39364, 39365, 39366, 39367,
-    39368, 39369, 39370, 39371, 39372, 39373, 39374, 39375,
-    39376, 39377, 39378, 39379, 39380, 39381, 39382, 39383,
-    39384, 39385, 39386, 39387, 39388, 39389, 39390, 39391,
-    39392, 39393, 39394, 39395, 39396, 39397, 39398, 39399,
-    39400, 39401, 39402, 39403, 39404,    -1, 39405, 39406,
-    39407, 39408, 39409, 39410, 39411, 39412, 39413, 39414,
-    39415, 39416, 39417, 39418, 39419, 39420, 39421, 39422,
-    39423, 39424, 39425, 39426, 39427, 39428, 39429, 39430,
-    39431, 39432, 39433, 39434, 39435, 39436, 39437, 39438,
-    39439, 39440, 39441, 39442, 39443, 39444, 39445, 39446,
-    39447, 39448, 39449, 39450, 39451, 39452, 39453, 39454,
-    39455, 39456, 39457, 39458, 39459, 39460, 39461, 39462,
-    39463, 39464, 39465, 39466, 39467, 39468, 39469, 39470,
-    39471, 39472, 39473, 39474, 39475,    -1, 39476, 39477,
-       -1,    -1, 39478,    -1,    -1, 39479, 39480,    -1,
-       -1, 39481, 39482, 39483, 39484,    -1, 39485, 39486,
-    39487, 39488, 39489, 39490, 39491, 39492, 39493, 39494,
-    39495, 39496,    -1, 39497,    -1, 39498, 39499, 39500,
-    39501, 39502, 39503, 39504,    -1, 39505, 39506, 39507,
-    39508, 39509, 39510, 39511, 39512, 39513, 39514, 39515,
-    39516, 39517, 39518, 39519, 39520, 39521, 39522, 39523,
-    39524, 39525, 39526, 39527, 39528, 39529, 39530, 39531,
-    39532, 39533, 39534, 39535, 39536, 39537, 39538, 39539,
-    39540, 39541, 39542, 39543, 39544, 39545, 39546, 39547,
-    39548, 39549, 39550, 39551, 39552, 39553, 39554, 39555,
-    39556, 39557, 39558, 39559, 39560, 39561, 39562, 39563,
-    39564, 39565, 39566, 39567, 39568, 39569,    -1, 39570,
-    39571, 39572, 39573,    -1,    -1, 39574, 39575, 39576,
-    39577, 39578, 39579, 39580, 39581,    -1, 39582, 39583,
-    39584, 39585, 39586, 39587, 39588,    -1, 39589, 39590,
-    39591, 39592, 39593, 39594, 39595, 39596, 39597, 39598,
-    39599, 39600, 39601, 39602, 39603, 39604, 39605, 39606,
-    39607, 39608, 39609, 39610, 39611, 39612, 39613, 39614,
-    39615, 39616,    -1, 39617, 39618, 39619, 39620,    -1,
-    39621, 39622, 39623, 39624, 39625,    -1, 39626,    -1,
-       -1,    -1, 39627, 39628, 39629, 39630, 39631, 39632,
-    39633,    -1, 39634, 39635, 39636, 39637, 39638, 39639,
-    39640, 39641, 39642, 39643, 39644, 39645, 39646, 39647,
-    39648, 39649, 39650, 39651, 39652, 39653, 39654, 39655,
-    39656, 39657, 39658, 39659, 39660, 39661, 39662, 39663,
-    39664, 39665, 39666, 39667, 39668, 39669, 39670, 39671,
-    39672, 39673, 39674, 39675, 39676, 39677, 39678, 39679,
-    39680, 39681, 39682, 39683, 39684, 39685, 39686, 39687,
-    39688, 39689, 39690, 39691, 39692, 39693, 39694, 39695,
-    39696, 39697, 39698, 39699, 39700, 39701, 39702, 39703,
-    39704, 39705, 39706, 39707, 39708, 39709, 39710, 39711,
-    39712, 39713, 39714, 39715, 39716, 39717, 39718, 39719,
-    39720, 39721, 39722, 39723, 39724, 39725, 39726, 39727,
-    39728, 39729, 39730, 39731, 39732, 39733, 39734, 39735,
-    39736, 39737, 39738, 39739, 39740, 39741, 39742, 39743,
-    39744, 39745, 39746, 39747, 39748, 39749, 39750, 39751,
-    39752, 39753, 39754, 39755, 39756, 39757, 39758, 39759,
-    39760, 39761, 39762, 39763, 39764, 39765, 39766, 39767,
-    39768, 39769, 39770, 39771, 39772, 39773, 39774, 39775,
-    39776, 39777, 39778, 39779, 39780, 39781, 39782, 39783,
-    39784, 39785, 39786, 39787, 39788, 39789, 39790, 39791,
-    39792, 39793, 39794, 39795, 39796, 39797, 39798, 39799,
-    39800, 39801, 39802, 39803, 39804, 39805, 39806, 39807,
-    39808, 39809, 39810, 39811, 39812, 39813, 39814, 39815,
-    39816, 39817, 39818, 39819, 39820, 39821, 39822, 39823,
-    39824, 39825, 39826, 39827, 39828, 39829, 39830, 39831,
-    39832, 39833, 39834, 39835, 39836, 39837, 39838, 39839,
-    39840, 39841, 39842, 39843, 39844, 39845, 39846, 39847,
-    39848, 39849, 39850, 39851, 39852, 39853, 39854, 39855,
-    39856, 39857, 39858, 39859, 39860, 39861, 39862, 39863,
-    39864, 39865, 39866, 39867, 39868, 39869, 39870, 39871,
-    39872, 39873, 39874, 39875, 39876, 39877, 39878, 39879,
-    39880, 39881, 39882, 39883, 39884, 39885, 39886, 39887,
-    39888, 39889, 39890, 39891, 39892, 39893, 39894, 39895,
-    39896, 39897, 39898, 39899, 39900, 39901, 39902, 39903,
-    39904, 39905, 39906, 39907, 39908, 39909, 39910, 39911,
-    39912, 39913, 39914, 39915, 39916, 39917, 39918, 39919,
-    39920, 39921, 39922, 39923, 39924, 39925, 39926, 39927,
-    39928, 39929, 39930, 39931, 39932, 39933, 39934, 39935,
-    39936, 39937, 39938, 39939, 39940, 39941, 39942, 39943,
-    39944, 39945, 39946, 39947, 39948, 39949, 39950, 39951,
-    39952, 39953, 39954, 39955, 39956, 39957, 39958, 39959,
-    39960, 39961, 39962, 39963, 39964, 39965, 39966, 39967,
-    39968, 39969, 39970, 39971, 39972, 39973,    -1,    -1,
-    39974, 39975, 39976, 39977, 39978, 39979, 39980, 39981,
-    39982, 39983, 39984, 39985, 39986, 39987, 39988, 39989,
-    39990, 39991, 39992, 39993, 39994, 39995, 39996, 39997,
-    39998, 39999, 40000, 40001, 40002, 40003, 40004, 40005,
-    40006, 40007, 40008, 40009, 40010, 40011, 40012, 40013,
-    40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021,
-    40022, 40023, 40024, 40025, 40026, 40027, 40028, 40029,
-    40030, 40031, 40032, 40033, 40034, 40035, 40036, 40037,
-    40038, 40039, 40040, 40041, 40042, 40043, 40044, 40045,
-    40046, 40047, 40048, 40049, 40050, 40051, 40052, 40053,
-    40054, 40055, 40056, 40057, 40058, 40059, 40060, 40061,
-    40062, 40063, 40064, 40065, 40066, 40067, 40068, 40069,
-    40070, 40071, 40072, 40073, 40074, 40075, 40076, 40077,
-    40078, 40079, 40080, 40081, 40082, 40083, 40084, 40085,
-    40086, 40087, 40088, 40089, 40090, 40091, 40092, 40093,
-    40094, 40095, 40096, 40097, 40098, 40099, 40100, 40101,
-    40102, 40103, 40104, 40105, 40106, 40107, 40108, 40109,
-    40110, 40111, 40112, 40113, 40114, 40115, 40116, 40117,
-    40118, 40119, 40120, 40121, 40122, 40123, 40124, 40125,
-    40126, 40127, 40128, 40129, 40130, 40131, 40132, 40133,
-    40134, 40135, 40136, 40137, 40138, 40139, 40140, 40141,
-    40142, 40143, 40144, 40145, 40146, 40147, 40148, 40149,
-    40150, 40151, 40152, 40153, 40154, 40155, 40156, 40157,
-    40158, 40159, 40160, 40161, 40162, 40163, 40164, 40165,
-    40166, 40167, 40168, 40169, 40170, 40171, 40172, 40173,
-    40174, 40175, 40176, 40177, 40178, 40179, 40180, 40181,
-    40182, 40183, 40184, 40185, 40186, 40187, 40188, 40189,
-    40190, 40191, 40192, 40193, 40194, 40195, 40196, 40197,
-    40198, 40199, 40200, 40201, 40202, 40203, 40204, 40205,
-    40206, 40207, 40208, 40209, 40210, 40211, 40212, 40213,
-    40214, 40215, 40216, 40217, 40218, 40219, 40220, 40221,
-    40222, 40223, 40224, 40225, 40226, 40227, 40228, 40229,
-    40230, 40231, 40232, 40233, 40234, 40235, 40236, 40237,
-    40238, 40239, 40240, 40241, 40242, 40243, 40244, 40245,
-    40246, 40247, 40248, 40249, 40250, 40251, 40252, 40253,
-    40254, 40255, 40256, 40257, 40258, 40259, 40260, 40261,
-    40262, 40263, 40264, 40265,    -1,    -1, 40266, 40267,
-    40268, 40269, 40270, 40271, 40272, 40273, 40274, 40275,
-    40276, 40277, 40278, 40279, 40280, 40281, 40282, 40283,
-    40284, 40285, 40286, 40287, 40288, 40289, 40290, 40291,
-    40292, 40293, 40294, 40295, 40296, 40297, 40298, 40299,
-    40300, 40301, 40302, 40303, 40304, 40305, 40306, 40307,
-    40308, 40309, 40310, 40311, 40312, 40313, 40314, 40315,
-     7548,  7549,  7550,  7551,  7552,  7553,  7554,  7555,
-     7556,  7557,  7558,  7559,  7560,  7561,  7562,  7563,
-     7564,  7565,  7566,  7567,  7568,  7569,  7570,  7571,
-     7572,  7573,  7574,  7575,  7576,  7577,  7578,  7579,
-     7580,  7581,  7582,  7583,  7584,  7585,  7586,  7587,
-     7588,  7589,  7590,  7591,  7592,  7593,  7594,  7595,
-     7596,  7597,  7598,  7599,  7600,  7601,  7602,  7603,
-     7604,  7605,  7606,  7607,  7608,  7609,  7610,  7611,
-     7612,  7613,  7614,  7615,  7616,  7617,  7618,  7619,
-     7620,  7621,  7622,  7623,  7624,  7625,  7626,  7627,
-     7628,  7629,  7630,  7631,  7632,  7633,  7634,  7635,
-     7636,  7637,  7638,  7639,  7640,  7641,  7642,  7643,
-     7644,  7645,  7646,  7647,  7648,  7649,  7650,  7651,
-     7652,  7653,  7654,  7655,  7656,  7657,  7658,  7659,
-     7660,  7661,  7662,  7663,  7664,  7665,  7666,  7667,
-     7668,  7669,  7670,  7671,  7672,  7673,  7674,  7675,
-     7676,  7677,  7678,  7679,  7680,  7681,  7682,  7683,
-     7684,  7685,  7686,  7687,  7688,  7689,  7690,  7691,
-     7692,  7693,  7694,  7695,  7696,  7697,  7698,  7699,
-     7700,  7701,  7702,  7703,  7704,  7705,  7706,  7707,
-     7708,  7709,  7710,  7711,  7712,  7713,  7714,  7715,
-     7716,  7717,  7718,  7719,  7720,  7721,  7722,  7723,
-     7724,  7725,  7726,  7727,  7728,  7729,  7730,  7731,
-     7732,  7733,  7734,  7735,  7736,  7737,  7738,  7739,
-     7740,  7741,  7742,  7743,  7744,  7745,  7746,  7747,
-     7748,  7749,  7750,  7751,  7752,  7753,  7754,  7755,
-     7756,  7757,  7758,  7759,  7760,  7761,  7762,  7763,
-     7764,  7765,  7766,  7767,  7768,  7769,  7770,  7771,
-     7772,  7773,  7774,  7775,  7776,  7777,  7778,  7779,
-     7780,  7781,  7782,  7783,  7784,  7785,  7786,  7787,
-     7788,  7789,  7790,  7791,  7792,  7793,  7794,  7795,
-     7796,  7797,  7798,  7799,  7800,  7801,  7802,  7803,
-     7804,  7805,  7806,  7807,  7808,  7809,  7810,  7811,
-     7812,  7813,  7814,  7815,  7816,  7817,  7818,  7819,
-     7820,  7821,  7822,  7823,  7824,  7825,  7826,  7827,
-     7828,  7829,  7830,  7831,  7832,  7833,  7834,  7835,
-     7836,  7837,  7838,  7839,  7840,  7841,  7842,  7843,
-     7844,  7845,  7846,  7847,  7848,  7849,  7850,  7851,
-     7852,  7853,  7854,  7855,  7856,  7857,  7858,  7859,
-     7860,  7861,  7862,  7863,  7864,  7865,  7866,  7867,
-     7868,  7869,  7870,  7871,  7872,  7873,  7874,  7875,
-     7876,  7877,  7878,  7879,  7880,  7881,  7882,  7883,
-     7884,  7885,  7886,  7887,  7888,  7889,  7890,  7891,
-     7892,  7893,  7894,  7895,  7896,  7897,  7898,  7899,
-     7900,  7901,  7902,  7903,  7904,  7905,  7906,  7907,
-     7908,  7909,  7910,  7911,  7912,  7913,  7914,  7915,
-     7916,  7917,  7918,  7919,  7920,  7921,  7922,  7923,
-     7924,  7925,  7926,  7927,  7928,  7929,  7930,  7931,
-     7932,  7933,  7934,  7935,  7936,  7937,  7938,  7939,
-     7940,  7941,  7942,  7943,  7944,  7945,  7946,  7947,
-     7948,  7949,  7950,  7951,  7952,  7953,  7954,  7955,
-     7956,  7957,  7958,  7959,  7960,  7961,  7962,  7963,
-     7964,  7965,  7966,  7967,  7968,  7969,  7970,  7971,
-     7972,  7973,  7974,  7975,  7976,  7977,  7978,  7979,
-     7980,  7981,  7982,  7983,  7984,  7985,  7986,  7987,
-     7988,  7989,  7990,  7991,  7992,  7993,  7994,  7995,
-     7996,  7997,  7998,  7999,  8000,  8001,  8002,  8003,
-     8004,  8005,  8006,  8007,  8008,  8009,  8010,  8011,
-     8012,  8013,  8014,  8015,  8016,  8017,  8018,  8019,
-     8020,  8021,  8022,  8023,  8024,  8025,  8026,  8027,
-     8028,  8029,  8030,  8031,  8032,  8033,  8034,  8035,
-     8036,  8037,  8038,  8039,  8040,  8041,  8042,  8043,
-     8044,  8045,  8046,  8047,  8048,  8049,  8050,  8051,
-     8052,  8053,  8054,  8055,  8056,  8057,  8058,  8059,
-     8060,  8061,  8062,  8063,  8064,  8065,  8066,  8067,
-     8068,  8069,  8070,  8071,  8072,  8073,  8074,  8075,
-     8076,  8077,  8078,  8079,  8080,  8081,  8082,  8083,
-     8084,  8085,  8086,  8087,  8088,  8089,    -1,    -1
+       -1,    -1, 39287, 39288, 39289, 39290, 39291, 39292,
+       -1,    -1, 39293, 39294, 39295, 39296, 39297, 39298,
+       -1,    -1, 39299, 39300, 39301, 39302, 39303, 39304,
+       -1,    -1, 39305, 39306, 39307,    -1,    -1,    -1,
+    39308, 39309, 39310, 39311, 39312, 39313, 39314,    -1,
+    39315, 39316, 39317, 39318, 39319, 39320, 39321,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,  6554,    -1,  6556,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,  6558,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  6560,  6562,
+     6564,  6566,  6568,  6570,  6572,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,  6574,  6576,  6578,  6580,  6582,
+     6584,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    39354, 39355, 39356, 39357, 39358, 39359, 39360, 39361,
+    39362, 39363, 39364, 39365, 39366, 39367, 39368, 39369,
+    39370, 39371, 39372, 39373, 39374, 39375, 39376, 39377,
+    39378, 39379, 39380, 39381, 39382, 39383, 39384, 39385,
+    39386, 39387, 39388, 39389, 39390, 39391, 39392, 39393,
+    39394, 39395, 39396, 39397, 39398, 39399, 39400, 39401,
+    39402, 39403, 39404, 39405, 39406, 39407, 39408, 39409,
+    39410, 39411, 39412, 39413, 39414, 39415, 39416, 39417,
+    39418, 39419, 39420, 39421, 39422, 39423, 39424, 39425,
+    39426, 39427, 39428, 39429, 39430, 39431, 39432, 39433,
+    39434, 39435, 39436, 39437, 39438,    -1, 39439, 39440,
+    39441, 39442, 39443, 39444, 39445, 39446, 39447, 39448,
+    39449, 39450, 39451, 39452, 39453, 39454, 39455, 39456,
+    39457, 39458, 39459, 39460, 39461, 39462, 39463, 39464,
+    39465, 39466, 39467, 39468, 39469, 39470, 39471, 39472,
+    39473, 39474, 39475, 39476, 39477, 39478, 39479, 39480,
+    39481, 39482, 39483, 39484, 39485, 39486, 39487, 39488,
+    39489, 39490, 39491, 39492, 39493, 39494, 39495, 39496,
+    39497, 39498, 39499, 39500, 39501, 39502, 39503, 39504,
+    39505, 39506, 39507, 39508, 39509,    -1, 39510, 39511,
+       -1,    -1, 39512,    -1,    -1, 39513, 39514,    -1,
+       -1, 39515, 39516, 39517, 39518,    -1, 39519, 39520,
+    39521, 39522, 39523, 39524, 39525, 39526, 39527, 39528,
+    39529, 39530,    -1, 39531,    -1, 39532, 39533, 39534,
+    39535, 39536, 39537, 39538,    -1, 39539, 39540, 39541,
+    39542, 39543, 39544, 39545, 39546, 39547, 39548, 39549,
+    39550, 39551, 39552, 39553, 39554, 39555, 39556, 39557,
+    39558, 39559, 39560, 39561, 39562, 39563, 39564, 39565,
+    39566, 39567, 39568, 39569, 39570, 39571, 39572, 39573,
+    39574, 39575, 39576, 39577, 39578, 39579, 39580, 39581,
+    39582, 39583, 39584, 39585, 39586, 39587, 39588, 39589,
+    39590, 39591, 39592, 39593, 39594, 39595, 39596, 39597,
+    39598, 39599, 39600, 39601, 39602, 39603,    -1, 39604,
+    39605, 39606, 39607,    -1,    -1, 39608, 39609, 39610,
+    39611, 39612, 39613, 39614, 39615,    -1, 39616, 39617,
+    39618, 39619, 39620, 39621, 39622,    -1, 39623, 39624,
+    39625, 39626, 39627, 39628, 39629, 39630, 39631, 39632,
+    39633, 39634, 39635, 39636, 39637, 39638, 39639, 39640,
+    39641, 39642, 39643, 39644, 39645, 39646, 39647, 39648,
+    39649, 39650,    -1, 39651, 39652, 39653, 39654,    -1,
+    39655, 39656, 39657, 39658, 39659,    -1, 39660,    -1,
+       -1,    -1, 39661, 39662, 39663, 39664, 39665, 39666,
+    39667,    -1, 39668, 39669, 39670, 39671, 39672, 39673,
+    39674, 39675, 39676, 39677, 39678, 39679, 39680, 39681,
+    39682, 39683, 39684, 39685, 39686, 39687, 39688, 39689,
+    39690, 39691, 39692, 39693, 39694, 39695, 39696, 39697,
+    39698, 39699, 39700, 39701, 39702, 39703, 39704, 39705,
+    39706, 39707, 39708, 39709, 39710, 39711, 39712, 39713,
+    39714, 39715, 39716, 39717, 39718, 39719, 39720, 39721,
+    39722, 39723, 39724, 39725, 39726, 39727, 39728, 39729,
+    39730, 39731, 39732, 39733, 39734, 39735, 39736, 39737,
+    39738, 39739, 39740, 39741, 39742, 39743, 39744, 39745,
+    39746, 39747, 39748, 39749, 39750, 39751, 39752, 39753,
+    39754, 39755, 39756, 39757, 39758, 39759, 39760, 39761,
+    39762, 39763, 39764, 39765, 39766, 39767, 39768, 39769,
+    39770, 39771, 39772, 39773, 39774, 39775, 39776, 39777,
+    39778, 39779, 39780, 39781, 39782, 39783, 39784, 39785,
+    39786, 39787, 39788, 39789, 39790, 39791, 39792, 39793,
+    39794, 39795, 39796, 39797, 39798, 39799, 39800, 39801,
+    39802, 39803, 39804, 39805, 39806, 39807, 39808, 39809,
+    39810, 39811, 39812, 39813, 39814, 39815, 39816, 39817,
+    39818, 39819, 39820, 39821, 39822, 39823, 39824, 39825,
+    39826, 39827, 39828, 39829, 39830, 39831, 39832, 39833,
+    39834, 39835, 39836, 39837, 39838, 39839, 39840, 39841,
+    39842, 39843, 39844, 39845, 39846, 39847, 39848, 39849,
+    39850, 39851, 39852, 39853, 39854, 39855, 39856, 39857,
+    39858, 39859, 39860, 39861, 39862, 39863, 39864, 39865,
+    39866, 39867, 39868, 39869, 39870, 39871, 39872, 39873,
+    39874, 39875, 39876, 39877, 39878, 39879, 39880, 39881,
+    39882, 39883, 39884, 39885, 39886, 39887, 39888, 39889,
+    39890, 39891, 39892, 39893, 39894, 39895, 39896, 39897,
+    39898, 39899, 39900, 39901, 39902, 39903, 39904, 39905,
+    39906, 39907, 39908, 39909, 39910, 39911, 39912, 39913,
+    39914, 39915, 39916, 39917, 39918, 39919, 39920, 39921,
+    39922, 39923, 39924, 39925, 39926, 39927, 39928, 39929,
+    39930, 39931, 39932, 39933, 39934, 39935, 39936, 39937,
+    39938, 39939, 39940, 39941, 39942, 39943, 39944, 39945,
+    39946, 39947, 39948, 39949, 39950, 39951, 39952, 39953,
+    39954, 39955, 39956, 39957, 39958, 39959, 39960, 39961,
+    39962, 39963, 39964, 39965, 39966, 39967, 39968, 39969,
+    39970, 39971, 39972, 39973, 39974, 39975, 39976, 39977,
+    39978, 39979, 39980, 39981, 39982, 39983, 39984, 39985,
+    39986, 39987, 39988, 39989, 39990, 39991, 39992, 39993,
+    39994, 39995, 39996, 39997, 39998, 39999, 40000, 40001,
+    40002, 40003, 40004, 40005, 40006, 40007,    -1,    -1,
+    40008, 40009, 40010, 40011, 40012, 40013, 40014, 40015,
+    40016, 40017, 40018, 40019, 40020, 40021, 40022, 40023,
+    40024, 40025, 40026, 40027, 40028, 40029, 40030, 40031,
+    40032, 40033, 40034, 40035, 40036, 40037, 40038, 40039,
+    40040, 40041, 40042, 40043, 40044, 40045, 40046, 40047,
+    40048, 40049, 40050, 40051, 40052, 40053, 40054, 40055,
+    40056, 40057, 40058, 40059, 40060, 40061, 40062, 40063,
+    40064, 40065, 40066, 40067, 40068, 40069, 40070, 40071,
+    40072, 40073, 40074, 40075, 40076, 40077, 40078, 40079,
+    40080, 40081, 40082, 40083, 40084, 40085, 40086, 40087,
+    40088, 40089, 40090, 40091, 40092, 40093, 40094, 40095,
+    40096, 40097, 40098, 40099, 40100, 40101, 40102, 40103,
+    40104, 40105, 40106, 40107, 40108, 40109, 40110, 40111,
+    40112, 40113, 40114, 40115, 40116, 40117, 40118, 40119,
+    40120, 40121, 40122, 40123, 40124, 40125, 40126, 40127,
+    40128, 40129, 40130, 40131, 40132, 40133, 40134, 40135,
+    40136, 40137, 40138, 40139, 40140, 40141, 40142, 40143,
+    40144, 40145, 40146, 40147, 40148, 40149, 40150, 40151,
+    40152, 40153, 40154, 40155, 40156, 40157, 40158, 40159,
+    40160, 40161, 40162, 40163, 40164, 40165, 40166, 40167,
+    40168, 40169, 40170, 40171, 40172, 40173, 40174, 40175,
+    40176, 40177, 40178, 40179, 40180, 40181, 40182, 40183,
+    40184, 40185, 40186, 40187, 40188, 40189, 40190, 40191,
+    40192, 40193, 40194, 40195, 40196, 40197, 40198, 40199,
+    40200, 40201, 40202, 40203, 40204, 40205, 40206, 40207,
+    40208, 40209, 40210, 40211, 40212, 40213, 40214, 40215,
+    40216, 40217, 40218, 40219, 40220, 40221, 40222, 40223,
+    40224, 40225, 40226, 40227, 40228, 40229, 40230, 40231,
+    40232, 40233, 40234, 40235, 40236, 40237, 40238, 40239,
+    40240, 40241, 40242, 40243, 40244, 40245, 40246, 40247,
+    40248, 40249, 40250, 40251, 40252, 40253, 40254, 40255,
+    40256, 40257, 40258, 40259, 40260, 40261, 40262, 40263,
+    40264, 40265, 40266, 40267, 40268, 40269, 40270, 40271,
+    40272, 40273, 40274, 40275, 40276, 40277, 40278, 40279,
+    40280, 40281, 40282, 40283, 40284, 40285, 40286, 40287,
+    40288, 40289, 40290, 40291, 40292, 40293, 40294, 40295,
+    40296, 40297, 40298, 40299,    -1,    -1, 40300, 40301,
+    40302, 40303, 40304, 40305, 40306, 40307, 40308, 40309,
+    40310, 40311, 40312, 40313, 40314, 40315, 40316, 40317,
+    40318, 40319, 40320, 40321, 40322, 40323, 40324, 40325,
+    40326, 40327, 40328, 40329, 40330, 40331, 40332, 40333,
+    40334, 40335, 40336, 40337, 40338, 40339, 40340, 40341,
+    40342, 40343, 40344, 40345, 40346, 40347, 40348, 40349,
+    40350, 40352, 40354, 40356, 40358, 40360, 40362, 40364,
+    40366, 40368, 40370,    -1,    -1,    -1,    -1,    -1,
+    40372, 40375, 40378, 40381, 40384, 40387, 40390, 40393,
+    40396, 40399, 40402, 40405, 40408, 40411, 40414, 40417,
+    40420, 40423, 40426, 40429, 40432, 40435, 40438, 40441,
+    40444, 40447, 40450, 40453, 40454, 40455, 40457,    -1,
+    40459, 40460, 40461, 40462, 40463, 40464, 40465, 40466,
+    40467, 40468, 40469, 40470, 40471, 40472, 40473, 40474,
+    40475, 40476, 40477, 40478, 40479, 40480, 40481, 40482,
+    40483, 40484, 40485, 40487, 40489, 40491, 40493, 40496,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    40498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    40500, 40502, 40504,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    40505, 40506, 40507, 40508, 40509, 40510, 40511, 40512,
+    40513, 40514, 40515, 40516, 40517, 40518, 40519, 40520,
+    40521, 40522, 40523, 40524, 40525, 40526, 40527, 40528,
+    40529, 40530, 40531, 40532, 40533, 40534, 40535, 40536,
+    40537, 40538, 40539, 40540, 40541, 40542, 40543, 40544,
+    40545, 40546, 40547,    -1,    -1,    -1,    -1,    -1,
+    40548, 40551, 40554, 40557, 40560, 40563, 40566, 40569,
+    40572,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    40575, 40576,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     7809,  7810,  7811,  7812,  7813,  7814,  7815,  7816,
+     7817,  7818,  7819,  7820,  7821,  7822,  7823,  7824,
+     7825,  7826,  7827,  7828,  7829,  7830,  7831,  7832,
+     7833,  7834,  7835,  7836,  7837,  7838,  7839,  7840,
+     7841,  7842,  7843,  7844,  7845,  7846,  7847,  7848,
+     7849,  7850,  7851,  7852,  7853,  7854,  7855,  7856,
+     7857,  7858,  7859,  7860,  7861,  7862,  7863,  7864,
+     7865,  7866,  7867,  7868,  7869,  7870,  7871,  7872,
+     7873,  7874,  7875,  7876,  7877,  7878,  7879,  7880,
+     7881,  7882,  7883,  7884,  7885,  7886,  7887,  7888,
+     7889,  7890,  7891,  7892,  7893,  7894,  7895,  7896,
+     7897,  7898,  7899,  7900,  7901,  7902,  7903,  7904,
+     7905,  7906,  7907,  7908,  7909,  7910,  7911,  7912,
+     7913,  7914,  7915,  7916,  7917,  7918,  7919,  7920,
+     7921,  7922,  7923,  7924,  7925,  7926,  7927,  7928,
+     7929,  7930,  7931,  7932,  7933,  7934,  7935,  7936,
+     7937,  7938,  7939,  7940,  7941,  7942,  7943,  7944,
+     7945,  7946,  7947,  7948,  7949,  7950,  7951,  7952,
+     7953,  7954,  7955,  7956,  7957,  7958,  7959,  7960,
+     7961,  7962,  7963,  7964,  7965,  7966,  7967,  7968,
+     7969,  7970,  7971,  7972,  7973,  7974,  7975,  7976,
+     7977,  7978,  7979,  7980,  7981,  7982,  7983,  7984,
+     7985,  7986,  7987,  7988,  7989,  7990,  7991,  7992,
+     7993,  7994,  7995,  7996,  7997,  7998,  7999,  8000,
+     8001,  8002,  8003,  8004,  8005,  8006,  8007,  8008,
+     8009,  8010,  8011,  8012,  8013,  8014,  8015,  8016,
+     8017,  8018,  8019,  8020,  8021,  8022,  8023,  8024,
+     8025,  8026,  8027,  8028,  8029,  8030,  8031,  8032,
+     8033,  8034,  8035,  8036,  8037,  8038,  8039,  8040,
+     8041,  8042,  8043,  8044,  8045,  8046,  8047,  8048,
+     8049,  8050,  8051,  8052,  8053,  8054,  8055,  8056,
+     8057,  8058,  8059,  8060,  8061,  8062,  8063,  8064,
+     8065,  8066,  8067,  8068,  8069,  8070,  8071,  8072,
+     8073,  8074,  8075,  8076,  8077,  8078,  8079,  8080,
+     8081,  8082,  8083,  8084,  8085,  8086,  8087,  8088,
+     8089,  8090,  8091,  8092,  8093,  8094,  8095,  8096,
+     8097,  8098,  8099,  8100,  8101,  8102,  8103,  8104,
+     8105,  8106,  8107,  8108,  8109,  8110,  8111,  8112,
+     8113,  8114,  8115,  8116,  8117,  8118,  8119,  8120,
+     8121,  8122,  8123,  8124,  8125,  8126,  8127,  8128,
+     8129,  8130,  8131,  8132,  8133,  8134,  8135,  8136,
+     8137,  8138,  8139,  8140,  8141,  8142,  8143,  8144,
+     8145,  8146,  8147,  8148,  8149,  8150,  8151,  8152,
+     8153,  8154,  8155,  8156,  8157,  8158,  8159,  8160,
+     8161,  8162,  8163,  8164,  8165,  8166,  8167,  8168,
+     8169,  8170,  8171,  8172,  8173,  8174,  8175,  8176,
+     8177,  8178,  8179,  8180,  8181,  8182,  8183,  8184,
+     8185,  8186,  8187,  8188,  8189,  8190,  8191,  8192,
+     8193,  8194,  8195,  8196,  8197,  8198,  8199,  8200,
+     8201,  8202,  8203,  8204,  8205,  8206,  8207,  8208,
+     8209,  8210,  8211,  8212,  8213,  8214,  8215,  8216,
+     8217,  8218,  8219,  8220,  8221,  8222,  8223,  8224,
+     8225,  8226,  8227,  8228,  8229,  8230,  8231,  8232,
+     8233,  8234,  8235,  8236,  8237,  8238,  8239,  8240,
+     8241,  8242,  8243,  8244,  8245,  8246,  8247,  8248,
+     8249,  8250,  8251,  8252,  8253,  8254,  8255,  8256,
+     8257,  8258,  8259,  8260,  8261,  8262,  8263,  8264,
+     8265,  8266,  8267,  8268,  8269,  8270,  8271,  8272,
+     8273,  8274,  8275,  8276,  8277,  8278,  8279,  8280,
+     8281,  8282,  8283,  8284,  8285,  8286,  8287,  8288,
+     8289,  8290,  8291,  8292,  8293,  8294,  8295,  8296,
+     8297,  8298,  8299,  8300,  8301,  8302,  8303,  8304,
+     8305,  8306,  8307,  8308,  8309,  8310,  8311,  8312,
+     8313,  8314,  8315,  8316,  8317,  8318,  8319,  8320,
+     8321,  8322,  8323,  8324,  8325,  8326,  8327,  8328,
+     8329,  8330,  8331,  8332,  8333,  8334,  8335,  8336,
+     8337,  8338,  8339,  8340,  8341,  8342,  8343,  8344,
+     8345,  8346,  8347,  8348,  8349,  8350,    -1,    -1
   }
 };
index a29e105..477ff40 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposition of Unicode characters.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index ecc1aba..c7b8c8d 100644 (file)
@@ -1,5 +1,5 @@
 /* Unicode Normalization Form C.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 1e7194d..355040b 100644 (file)
@@ -1,5 +1,5 @@
 /* Unicode Normalization Form D.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index fdd05ac..496982b 100644 (file)
@@ -1,5 +1,5 @@
 /* Unicode Normalization Form KC.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index cff0df2..26f8411 100644 (file)
@@ -1,5 +1,5 @@
 /* Unicode Normalization Form KD.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index f4c8c8e..42c8081 100644 (file)
@@ -1,5 +1,5 @@
 /* Normalization of Unicode strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -15,8 +15,6 @@
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include <stddef.h>
-
 #include "unitypes.h"
 
 /* Complete definition of normalization form descriptor.  */
index 43b7ec3..dfab6cc 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposition and composition of Unicode strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -310,6 +310,11 @@ FUNC (uninorm_t nf, const UNIT *s, size_t n,
                   abort ();
                 new_sortbuf =
                   (struct ucs4_with_ccc *) malloc (2 * sortbuf_allocated * sizeof (struct ucs4_with_ccc));
+                if (new_sortbuf == NULL)
+                  {
+                    errno = ENOMEM;
+                    goto fail;
+                  }
                 memcpy (new_sortbuf, sortbuf,
                         sortbuf_count * sizeof (struct ucs4_with_ccc));
                 if (sortbuf != sortbuf_preallocated)
index 5cda5db..cfb97cc 100644 (file)
@@ -1,5 +1,5 @@
 /* Normalization insensitive comparison of Unicode strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index d76e725..299d6fa 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent, normalization insensitive comparison of Unicode strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index ce84ff6..07a10ea 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent transformation for comparison of Unicode strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -69,7 +69,7 @@ FUNC (const UNIT *s, size_t n, uninorm_t nf,
     }
 
   /* Apply locale dependent transformations for comparison.  */
-  result = memxfrm (convs, convs_length, resultbuf, lengthp);
+  result = amemxfrm (convs, convs_length, resultbuf, lengthp);
   if (result == NULL)
     {
       if (convs != convsbuf)
index df50e8d..fcdb966 100644 (file)
@@ -1,5 +1,5 @@
 /* Normalization of UTF-16 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index e246a26..144c0ba 100644 (file)
@@ -1,5 +1,5 @@
 /* Normalization insensitive comparison of UTF-16 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index b851472..0646e1f 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent, normalization insensitive comparison of UTF-16 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 41d274a..9146915 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent transformation for comparison of UTF-16 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
 
 #include "localcharset.h"
 #include "uniconv.h"
-#include "memxfrm.h"
+#include "amemxfrm.h"
 
 #define FUNC u16_normxfrm
 #define UNIT uint16_t
index 9ab8e5d..c907082 100644 (file)
@@ -1,5 +1,5 @@
 /* Normalization of UTF-32 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 705c345..970b55e 100644 (file)
@@ -1,5 +1,5 @@
 /* Normalization insensitive comparison of UTF-32 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 3770803..cfba407 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent, normalization insensitive comparison of UTF-32 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 7e953f9..52de779 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent transformation for comparison of UTF-32 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
 
 #include "localcharset.h"
 #include "uniconv.h"
-#include "memxfrm.h"
+#include "amemxfrm.h"
 
 #define FUNC u32_normxfrm
 #define UNIT uint32_t
index 6367994..8e9211c 100644 (file)
@@ -1,5 +1,5 @@
 /* Normalization of UTF-8 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 02a4d5e..d30d530 100644 (file)
@@ -1,5 +1,5 @@
 /* Normalization insensitive comparison of UTF-8 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 5c392d9..ca4552f 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent, normalization insensitive comparison of UTF-8 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 47d4fdc..39b2d49 100644 (file)
@@ -1,5 +1,5 @@
 /* Locale dependent transformation for comparison of UTF-8 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
 
 #include "localcharset.h"
 #include "uniconv.h"
-#include "memxfrm.h"
+#include "amemxfrm.h"
 
 #define FUNC u8_normxfrm
 #define UNIT uint8_t
index dbc5e10..31b5843 100644 (file)
@@ -1,5 +1,5 @@
 /* Stream-based normalization of Unicode strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -241,6 +241,12 @@ uninorm_filter_write (struct uninorm_filter *filter, ucs4_t uc_arg)
             new_sortbuf =
               (struct ucs4_with_ccc *)
               malloc (2 * filter->sortbuf_allocated * sizeof (struct ucs4_with_ccc));
+            if (new_sortbuf == NULL)
+              {
+                /* errno is ENOMEM. */
+                filter->sortbuf_count = sortbuf_count;
+                return -1;
+              }
             memcpy (new_sortbuf, filter->sortbuf,
                     sortbuf_count * sizeof (struct ucs4_with_ccc));
             if (filter->sortbuf != filter->sortbuf_preallocated)
diff --git a/lib/unistd.c b/lib/unistd.c
new file mode 100644 (file)
index 0000000..6c6a8e2
--- /dev/null
@@ -0,0 +1,3 @@
+#include <config.h>
+#define _GL_UNISTD_INLINE _GL_EXTERN_INLINE
+#include "unistd.h"
index fa82bbf..8420250 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <unistd.h>.
-   Copyright (C) 2003-2010 Free Software Foundation, Inc.
+   Copyright (C) 2003-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _@GUARD_PREFIX@_UNISTD_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
 
+#ifdef _GL_INCLUDING_UNISTD_H
 /* Special invocation convention:
-   - On mingw, several headers, including <winsock2.h>, include <unistd.h>,
-     but we need to ensure that both the system <unistd.h> and <winsock2.h>
-     are completely included before we replace gethostname.  */
-#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \
-  && !defined _GL_WINSOCK2_H_WITNESS && defined _WINSOCK2_H
-/* <unistd.h> is being indirectly included for the first time from
-   <winsock2.h>; avoid declaring any overrides.  */
-# if @HAVE_UNISTD_H@
-#  @INCLUDE_NEXT@ @NEXT_UNISTD_H@
-# else
-#  error unexpected; report this to bug-gnulib@gnu.org
-# endif
-# define _GL_WINSOCK2_H_WITNESS
+   - On Mac OS X 10.3.9 we have a sequence of nested includes
+     <unistd.h> -> <signal.h> -> <pthread.h> -> <unistd.h>
+     In this situation, the functions are not yet declared, therefore we cannot
+     provide the C++ aliases.  */
 
-/* Normal invocation.  */
-#elif !defined _GL_UNISTD_H
+#@INCLUDE_NEXT@ @NEXT_UNISTD_H@
+
+#else
+/* Normal invocation convention.  */
 
 /* The include_next requires a split double-inclusion guard.  */
 #if @HAVE_UNISTD_H@
+# define _GL_INCLUDING_UNISTD_H
 # @INCLUDE_NEXT@ @NEXT_UNISTD_H@
+# undef _GL_INCLUDING_UNISTD_H
 #endif
 
 /* Get all possible declarations of gethostname().  */
@@ -50,8 +48,8 @@
 # undef _GL_INCLUDING_WINSOCK2_H
 #endif
 
-#if !defined _GL_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
-#define _GL_UNISTD_H
+#if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
+#define _@GUARD_PREFIX@_UNISTD_H
 
 /* NetBSD 5.0 mis-defines NULL.  Also get size_t.  */
 #include <stddef.h>
 /* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>.  */
 /* But avoid namespace pollution on glibc systems.  */
 #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \
-     || (@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK)) \
+     || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \
+         && defined __CYGWIN__)) \
     && ! defined __GLIBC__
 # include <stdio.h>
 #endif
 
 /* Cygwin 1.7.1 declares unlinkat in <fcntl.h>, not in <unistd.h>.  */
 /* But avoid namespace pollution on glibc systems.  */
-#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__
+#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \
+    && ! defined __GLIBC__
 # include <fcntl.h>
 #endif
 
 /* mingw fails to declare _exit in <unistd.h>.  */
-/* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>.  */
+/* mingw, MSVC, BeOS, Haiku declare environ in <stdlib.h>, not in
+   <unistd.h>.  */
 /* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>.  */
+/* OSF Tru64 Unix cannot see gnulib rpl_strtod when system <stdlib.h> is
+   included here.  */
 /* But avoid namespace pollution on glibc systems.  */
-#ifndef __GLIBC__
+#if !defined __GLIBC__ && !defined __osf__
+# define __need_system_stdlib_h
 # include <stdlib.h>
+# undef __need_system_stdlib_h
 #endif
 
-/* mingw declares getcwd in <io.h>, not in <unistd.h>.  */
-#if ((@GNULIB_GETCWD@ || defined GNULIB_POSIXCHECK) \
+/* Native Windows platforms declare chdir, getcwd, rmdir in
+   <io.h> and/or <direct.h>, not in <unistd.h>.
+   They also declare access(), chmod(), close(), dup(), dup2(), isatty(),
+   lseek(), read(), unlink(), write() in <io.h>.  */
+#if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \
+      || defined GNULIB_POSIXCHECK) \
      && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+# include <io.h>     /* mingw32, mingw64 */
+# include <direct.h> /* mingw64, MSVC 9 */
+#elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \
+       || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \
+       || defined GNULIB_POSIXCHECK) \
+      && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
 # include <io.h>
 #endif
 
-#if (@GNULIB_WRITE@ || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \
-     || @GNULIB_PREAD@ || defined GNULIB_POSIXCHECK)
+/* AIX and OSF/1 5.1 declare getdomainname in <netdb.h>, not in <unistd.h>.
+   NonStop Kernel declares gethostname in <netdb.h>, not in <unistd.h>.  */
+/* But avoid namespace pollution on glibc systems.  */
+#if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \
+     || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \
+    && !defined __GLIBC__
+# include <netdb.h>
+#endif
+
+/* MSVC defines off_t in <sys/types.h>.
+   May also define off_t to a 64-bit type on native Windows.  */
+#if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@
+/* Get off_t.  */
+# include <sys/types.h>
+#endif
+
+#if (@GNULIB_READ@ || @GNULIB_WRITE@ \
+     || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \
+     || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK)
 /* Get ssize_t.  */
 # include <sys/types.h>
 #endif
 /* Get getopt(), optarg, optind, opterr, optopt.
    But avoid namespace pollution on glibc systems.  */
 #if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT
+# define __need_getopt
 # include <getopt.h>
 #endif
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_UNISTD_INLINE
+# define _GL_UNISTD_INLINE _GL_INLINE
+#endif
+
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_ARG_NONNULL is copied here.  */
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
 
-#if @GNULIB_GETHOSTNAME@
-/* Get all possible declarations of gethostname().  */
-# if @UNISTD_H_HAVE_WINSOCK2_H@
-#  if !defined _GL_SYS_SOCKET_H
-#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#    undef socket
-#    define socket              socket_used_without_including_sys_socket_h
-#    undef connect
-#    define connect             connect_used_without_including_sys_socket_h
-#    undef accept
-#    define accept              accept_used_without_including_sys_socket_h
-#    undef bind
-#    define bind                bind_used_without_including_sys_socket_h
-#    undef getpeername
-#    define getpeername         getpeername_used_without_including_sys_socket_h
-#    undef getsockname
-#    define getsockname         getsockname_used_without_including_sys_socket_h
-#    undef getsockopt
-#    define getsockopt          getsockopt_used_without_including_sys_socket_h
-#    undef listen
-#    define listen              listen_used_without_including_sys_socket_h
-#    undef recv
-#    define recv                recv_used_without_including_sys_socket_h
-#    undef send
-#    define send                send_used_without_including_sys_socket_h
-#    undef recvfrom
-#    define recvfrom            recvfrom_used_without_including_sys_socket_h
-#    undef sendto
-#    define sendto              sendto_used_without_including_sys_socket_h
-#    undef setsockopt
-#    define setsockopt          setsockopt_used_without_including_sys_socket_h
-#    undef shutdown
-#    define shutdown            shutdown_used_without_including_sys_socket_h
-#   else
-     _GL_WARN_ON_USE (socket,
-                      "socket() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (connect,
-                      "connect() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (accept,
-                      "accept() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (bind,
-                      "bind() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (getpeername,
-                      "getpeername() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (getsockname,
-                      "getsockname() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (getsockopt,
-                      "getsockopt() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (listen,
-                      "listen() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (recv,
-                      "recv() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (send,
-                      "send() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (recvfrom,
-                      "recvfrom() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (sendto,
-                      "sendto() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (setsockopt,
-                      "setsockopt() used without including <sys/socket.h>");
-     _GL_WARN_ON_USE (shutdown,
-                      "shutdown() used without including <sys/socket.h>");
-#   endif
+/* Hide some function declarations from <winsock2.h>.  */
+
+#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@
+# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef socket
+#   define socket              socket_used_without_including_sys_socket_h
+#   undef connect
+#   define connect             connect_used_without_including_sys_socket_h
+#   undef accept
+#   define accept              accept_used_without_including_sys_socket_h
+#   undef bind
+#   define bind                bind_used_without_including_sys_socket_h
+#   undef getpeername
+#   define getpeername         getpeername_used_without_including_sys_socket_h
+#   undef getsockname
+#   define getsockname         getsockname_used_without_including_sys_socket_h
+#   undef getsockopt
+#   define getsockopt          getsockopt_used_without_including_sys_socket_h
+#   undef listen
+#   define listen              listen_used_without_including_sys_socket_h
+#   undef recv
+#   define recv                recv_used_without_including_sys_socket_h
+#   undef send
+#   define send                send_used_without_including_sys_socket_h
+#   undef recvfrom
+#   define recvfrom            recvfrom_used_without_including_sys_socket_h
+#   undef sendto
+#   define sendto              sendto_used_without_including_sys_socket_h
+#   undef setsockopt
+#   define setsockopt          setsockopt_used_without_including_sys_socket_h
+#   undef shutdown
+#   define shutdown            shutdown_used_without_including_sys_socket_h
+#  else
+    _GL_WARN_ON_USE (socket,
+                     "socket() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (connect,
+                     "connect() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (accept,
+                     "accept() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (bind,
+                     "bind() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (getpeername,
+                     "getpeername() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (getsockname,
+                     "getsockname() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (getsockopt,
+                     "getsockopt() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (listen,
+                     "listen() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (recv,
+                     "recv() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (send,
+                     "send() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (recvfrom,
+                     "recvfrom() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (sendto,
+                     "sendto() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (setsockopt,
+                     "setsockopt() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (shutdown,
+                     "shutdown() used without including <sys/socket.h>");
 #  endif
-#  if !defined _GL_SYS_SELECT_H
-#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#    undef select
-#    define select              select_used_without_including_sys_select_h
-#   else
-     _GL_WARN_ON_USE (select,
-                      "select() used without including <sys/select.h>");
-#   endif
+# endif
+# if !defined _@GUARD_PREFIX@_SYS_SELECT_H
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef select
+#   define select              select_used_without_including_sys_select_h
+#  else
+    _GL_WARN_ON_USE (select,
+                     "select() used without including <sys/select.h>");
 #  endif
 # endif
 #endif
@@ -211,12 +251,24 @@ _GL_WARN_ON_USE (access, "the access function is a security risk - "
 #endif
 
 
+#if @GNULIB_CHDIR@
+_GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIASWARN (chdir);
+#elif defined GNULIB_POSIXCHECK
+# undef chdir
+# if HAVE_RAW_DECL_CHDIR
+_GL_WARN_ON_USE (chown, "chdir is not always in <unistd.h> - "
+                 "use gnulib module chdir for portability");
+# endif
+#endif
+
+
 #if @GNULIB_CHOWN@
 /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
    to GID (if GID is not -1).  Follow symbolic links.
    Return 0 if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/chown.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/chown.html.  */
 # if @REPLACE_CHOWN@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef chown
@@ -267,24 +319,32 @@ _GL_WARN_ON_USE (close, "close does not portably work on sockets - "
 #endif
 
 
-#if @REPLACE_DUP@
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define dup rpl_dup
-# endif
+#if @GNULIB_DUP@
+# if @REPLACE_DUP@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define dup rpl_dup
+#  endif
 _GL_FUNCDECL_RPL (dup, int, (int oldfd));
 _GL_CXXALIAS_RPL (dup, int, (int oldfd));
-#else
+# else
 _GL_CXXALIAS_SYS (dup, int, (int oldfd));
-#endif
+# endif
 _GL_CXXALIASWARN (dup);
+#elif defined GNULIB_POSIXCHECK
+# undef dup
+# if HAVE_RAW_DECL_DUP
+_GL_WARN_ON_USE (dup, "dup is unportable - "
+                 "use gnulib module dup for portability");
+# endif
+#endif
 
 
 #if @GNULIB_DUP2@
 /* Copy the file descriptor OLDFD into file descriptor NEWFD.  Do nothing if
    NEWFD = OLDFD, otherwise close NEWFD first if it is open.
    Return newfd if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/dup2.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/dup2.html>.  */
 # if @REPLACE_DUP2@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define dup2 rpl_dup2
@@ -355,7 +415,7 @@ extern char **environ;
 # endif
 #elif defined GNULIB_POSIXCHECK
 # if HAVE_RAW_DECL_ENVIRON
-static inline char ***
+_GL_UNISTD_INLINE char ***
 rpl_environ (void)
 {
   return &environ;
@@ -413,8 +473,8 @@ _GL_WARN_ON_USE (faccessat, "faccessat is not portable - "
 /* Change the process' current working directory to the directory on which
    the given file descriptor is open.
    Return 0 if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/fchdir.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fchdir.html>.  */
 # if ! @HAVE_FCHDIR@
 _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
 
@@ -425,6 +485,10 @@ _GL_EXTERN_C void _gl_unregister_fd (int fd);
 _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd);
 _GL_EXTERN_C const char *_gl_directory_name (int fd);
 
+# else
+#  if !@HAVE_DECL_FCHDIR@
+_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
+#  endif
 # endif
 _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/));
 _GL_CXXALIASWARN (fchdir);
@@ -467,11 +531,30 @@ _GL_WARN_ON_USE (fchownat, "fchownat is not portable - "
 #endif
 
 
-#if @GNULIB_FSYNC@
+#if @GNULIB_FDATASYNC@
 /* Synchronize changes to a file.
    Return 0 if successful, otherwise -1 and errno set.
-   See POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/fsync.html>.  */
+   See POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>.  */
+# if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@
+_GL_FUNCDECL_SYS (fdatasync, int, (int fd));
+# endif
+_GL_CXXALIAS_SYS (fdatasync, int, (int fd));
+_GL_CXXALIASWARN (fdatasync);
+#elif defined GNULIB_POSIXCHECK
+# undef fdatasync
+# if HAVE_RAW_DECL_FDATASYNC
+_GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - "
+                 "use gnulib module fdatasync for portability");
+# endif
+#endif
+
+
+#if @GNULIB_FSYNC@
+/* Synchronize changes, including metadata, to a file.
+   Return 0 if successful, otherwise -1 and errno set.
+   See POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html>.  */
 # if !@HAVE_FSYNC@
 _GL_FUNCDECL_SYS (fsync, int, (int fd));
 # endif
@@ -489,12 +572,21 @@ _GL_WARN_ON_USE (fsync, "fsync is unportable - "
 #if @GNULIB_FTRUNCATE@
 /* Change the size of the file to which FD is opened to become equal to LENGTH.
    Return 0 if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/ftruncate.html>.  */
-# if !@HAVE_FTRUNCATE@
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/ftruncate.html>.  */
+# if @REPLACE_FTRUNCATE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ftruncate
+#   define ftruncate rpl_ftruncate
+#  endif
+_GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length));
+_GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length));
+# else
+#  if !@HAVE_FTRUNCATE@
 _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length));
+# endif
 _GL_CXXALIASWARN (ftruncate);
 #elif defined GNULIB_POSIXCHECK
 # undef ftruncate
@@ -510,8 +602,8 @@ _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - "
    of BUF.
    Return BUF if successful, or NULL if the directory couldn't be determined
    or SIZE was too small.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/getcwd.html>.
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html>.
    Additionally, the gnulib module 'getcwd' guarantees the following GNU
    extension: If BUF is NULL, an array is allocated with 'malloc'; the array
    is SIZE bytes long, unless SIZE == 0, in which case it is as big as
@@ -548,13 +640,21 @@ _GL_WARN_ON_USE (getcwd, "getcwd is unportable - "
    Null terminate it if the name is shorter than LEN.
    If the NIS domain name is longer than LEN, set errno = EINVAL and return -1.
    Return 0 if successful, otherwise set errno and return -1.  */
-# if !@HAVE_GETDOMAINNAME@
+# if @REPLACE_GETDOMAINNAME@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getdomainname
+#   define getdomainname rpl_getdomainname
+#  endif
+_GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len)
+                                      _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len));
+# else
+#  if !@HAVE_DECL_GETDOMAINNAME@
 _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len)
                                       _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len));
 # endif
-/* Need to cast, because on MacOS X 10.5 systems, the second parameter is
-                                                        int len.  */
-_GL_CXXALIAS_SYS_CAST (getdomainname, int, (char *name, size_t len));
 _GL_CXXALIASWARN (getdomainname);
 #elif defined GNULIB_POSIXCHECK
 # undef getdomainname
@@ -568,10 +668,19 @@ _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - "
 #if @GNULIB_GETDTABLESIZE@
 /* Return the maximum number of file descriptors in the current process.
    In POSIX, this is same as sysconf (_SC_OPEN_MAX).  */
-# if !@HAVE_GETDTABLESIZE@
+# if @REPLACE_GETDTABLESIZE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getdtablesize
+#   define getdtablesize rpl_getdtablesize
+#  endif
+_GL_FUNCDECL_RPL (getdtablesize, int, (void));
+_GL_CXXALIAS_RPL (getdtablesize, int, (void));
+# else
+#  if !@HAVE_GETDTABLESIZE@
 _GL_FUNCDECL_SYS (getdtablesize, int, (void));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (getdtablesize, int, (void));
+# endif
 _GL_CXXALIASWARN (getdtablesize);
 #elif defined GNULIB_POSIXCHECK
 # undef getdtablesize
@@ -632,7 +741,8 @@ _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len));
 _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len)
                                     _GL_ARG_NONNULL ((1)));
 #  endif
-/* Need to cast, because on Solaris 10 systems, the second parameter is
+/* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second
+   parameter is
                                                       int len.  */
 _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len));
 # endif
@@ -689,13 +799,22 @@ _GL_WARN_ON_USE (getlogin, "getlogin is unportable - "
      ${LOGNAME-$USER}        on Unix platforms,
      $USERNAME               on native Windows platforms.
  */
-# if !@HAVE_DECL_GETLOGIN_R@
+# if @REPLACE_GETLOGIN_R@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define getlogin_r rpl_getlogin_r
+#  endif
+_GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size)
+                                   _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size));
+# else
+#  if !@HAVE_DECL_GETLOGIN_R@
 _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size)
                                    _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 /* Need to cast, because on Solaris 10 systems, the second argument is
                                                      int size.  */
 _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size));
+# endif
 _GL_CXXALIASWARN (getlogin_r);
 #elif defined GNULIB_POSIXCHECK
 # undef getlogin_r
@@ -762,11 +881,14 @@ _GL_CXXALIAS_RPL (getpagesize, int, (void));
 #    if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #     define getpagesize() _gl_getpagesize ()
 #    else
-static inline int
+#     if !GNULIB_defined_getpagesize_function
+_GL_UNISTD_INLINE int
 getpagesize ()
 {
   return _gl_getpagesize ();
 }
+#      define GNULIB_defined_getpagesize_function 1
+#     endif
 #    endif
 #   endif
 #  endif
@@ -833,12 +955,49 @@ _GL_WARN_ON_USE (endusershell, "endusershell is unportable - "
 #endif
 
 
+#if @GNULIB_GROUP_MEMBER@
+/* Determine whether group id is in calling user's group list.  */
+# if !@HAVE_GROUP_MEMBER@
+_GL_FUNCDECL_SYS (group_member, int, (gid_t gid));
+# endif
+_GL_CXXALIAS_SYS (group_member, int, (gid_t gid));
+_GL_CXXALIASWARN (group_member);
+#elif defined GNULIB_POSIXCHECK
+# undef group_member
+# if HAVE_RAW_DECL_GROUP_MEMBER
+_GL_WARN_ON_USE (group_member, "group_member is unportable - "
+                 "use gnulib module group-member for portability");
+# endif
+#endif
+
+
+#if @GNULIB_ISATTY@
+# if @REPLACE_ISATTY@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef isatty
+#   define isatty rpl_isatty
+#  endif
+_GL_FUNCDECL_RPL (isatty, int, (int fd));
+_GL_CXXALIAS_RPL (isatty, int, (int fd));
+# else
+_GL_CXXALIAS_SYS (isatty, int, (int fd));
+# endif
+_GL_CXXALIASWARN (isatty);
+#elif defined GNULIB_POSIXCHECK
+# undef isatty
+# if HAVE_RAW_DECL_ISATTY
+_GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - "
+                 "use gnulib module isatty for portability");
+# endif
+#endif
+
+
 #if @GNULIB_LCHOWN@
 /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
    to GID (if GID is not -1).  Do not follow symbolic links.
    Return 0 if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/lchown.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/lchown.html>.  */
 # if @REPLACE_LCHOWN@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef lchown
@@ -867,8 +1026,8 @@ _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - "
 #if @GNULIB_LINK@
 /* Create a new hard link for an existing file.
    Return 0 if successful, otherwise -1 and errno set.
-   See POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/link.html>.  */
+   See POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html>.  */
 # if @REPLACE_LINK@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define link rpl_link
@@ -933,8 +1092,8 @@ _GL_WARN_ON_USE (linkat, "linkat is unportable - "
 #if @GNULIB_LSEEK@
 /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END.
    Return the new offset if successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/lseek.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/lseek.html>.  */
 # if @REPLACE_LSEEK@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define lseek rpl_lseek
@@ -954,6 +1113,24 @@ _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some "
 #endif
 
 
+#if @GNULIB_PIPE@
+/* Create a pipe, defaulting to O_BINARY mode.
+   Store the read-end as fd[0] and the write-end as fd[1].
+   Return 0 upon success, or -1 with errno set upon failure.  */
+# if !@HAVE_PIPE@
+_GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (pipe, int, (int fd[2]));
+_GL_CXXALIASWARN (pipe);
+#elif defined GNULIB_POSIXCHECK
+# undef pipe
+# if HAVE_RAW_DECL_PIPE
+_GL_WARN_ON_USE (pipe, "pipe is unportable - "
+                 "use gnulib module pipe-posix for portability");
+# endif
+#endif
+
+
 #if @GNULIB_PIPE2@
 /* Create a pipe, applying the given flags when opening the read-end of the
    pipe and the write-end of the pipe.
@@ -986,10 +1163,12 @@ _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - "
 #if @GNULIB_PREAD@
 /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET.
    Return the number of bytes placed into BUF if successful, otherwise
-   set errno and return -1.  0 indicates EOF.  See the POSIX:2001
-   specification <http://www.opengroup.org/susv3xsh/pread.html>.  */
+   set errno and return -1.  0 indicates EOF.
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pread.html>.  */
 # if @REPLACE_PREAD@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef pread
 #   define pread rpl_pread
 #  endif
 _GL_FUNCDECL_RPL (pread, ssize_t,
@@ -1016,12 +1195,69 @@ _GL_WARN_ON_USE (pread, "pread is unportable - "
 #endif
 
 
+#if @GNULIB_PWRITE@
+/* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET.
+   Return the number of bytes written if successful, otherwise
+   set errno and return -1.  0 indicates nothing written.  See the
+   POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pwrite.html>.  */
+# if @REPLACE_PWRITE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef pwrite
+#   define pwrite rpl_pwrite
+#  endif
+_GL_FUNCDECL_RPL (pwrite, ssize_t,
+                  (int fd, const void *buf, size_t bufsize, off_t offset)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (pwrite, ssize_t,
+                  (int fd, const void *buf, size_t bufsize, off_t offset));
+# else
+#  if !@HAVE_PWRITE@
+_GL_FUNCDECL_SYS (pwrite, ssize_t,
+                  (int fd, const void *buf, size_t bufsize, off_t offset)
+                  _GL_ARG_NONNULL ((2)));
+#  endif
+_GL_CXXALIAS_SYS (pwrite, ssize_t,
+                  (int fd, const void *buf, size_t bufsize, off_t offset));
+# endif
+_GL_CXXALIASWARN (pwrite);
+#elif defined GNULIB_POSIXCHECK
+# undef pwrite
+# if HAVE_RAW_DECL_PWRITE
+_GL_WARN_ON_USE (pwrite, "pwrite is unportable - "
+                 "use gnulib module pwrite for portability");
+# endif
+#endif
+
+
+#if @GNULIB_READ@
+/* Read up to COUNT bytes from file descriptor FD into the buffer starting
+   at BUF.  See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html>.  */
+# if @REPLACE_READ@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef read
+#   define read rpl_read
+#  endif
+_GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count)
+                                 _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count));
+# else
+/* Need to cast, because on mingw, the third parameter is
+                                                          unsigned int count
+   and the return type is 'int'.  */
+_GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count));
+# endif
+_GL_CXXALIASWARN (read);
+#endif
+
+
 #if @GNULIB_READLINK@
 /* Read the contents of the symbolic link FILE and place the first BUFSIZE
    bytes of it into BUF.  Return the number of bytes placed into BUF if
    successful, otherwise -1 and errno set.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/readlink.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>.  */
 # if @REPLACE_READLINK@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define readlink rpl_readlink
@@ -1063,7 +1299,7 @@ _GL_CXXALIASWARN (readlinkat);
 # undef readlinkat
 # if HAVE_RAW_DECL_READLINKAT
 _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - "
-                 "use gnulib module symlinkat for portability");
+                 "use gnulib module readlinkat for portability");
 # endif
 #endif
 
@@ -1089,11 +1325,38 @@ _GL_WARN_ON_USE (rmdir, "rmdir is unportable - "
 #endif
 
 
+#if @GNULIB_SETHOSTNAME@
+/* Set the host name of the machine.
+   The host name may or may not be fully qualified.
+
+   Put LEN bytes of NAME into the host name.
+   Return 0 if successful, otherwise, set errno and return -1.
+
+   Platforms with no ability to set the hostname return -1 and set
+   errno = ENOSYS.  */
+# if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@
+_GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len)
+                                    _GL_ARG_NONNULL ((1)));
+# endif
+/* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5
+   and FreeBSD 6.4 the second parameter is int.  On Solaris 11
+   2011-10, the first parameter is not const.  */
+_GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len));
+_GL_CXXALIASWARN (sethostname);
+#elif defined GNULIB_POSIXCHECK
+# undef sethostname
+# if HAVE_RAW_DECL_SETHOSTNAME
+_GL_WARN_ON_USE (sethostname, "sethostname is unportable - "
+                 "use gnulib module sethostname for portability");
+# endif
+#endif
+
+
 #if @GNULIB_SLEEP@
 /* Pause the execution of the current thread for N seconds.
    Returns the number of seconds left to sleep.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/sleep.html>.  */
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/sleep.html>.  */
 # if @REPLACE_SLEEP@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef sleep
@@ -1174,7 +1437,7 @@ _GL_FUNCDECL_RPL (ttyname_r, int,
 _GL_CXXALIAS_RPL (ttyname_r, int,
                   (int fd, char *buf, size_t buflen));
 # else
-#  if !@HAVE_TTYNAME_R@
+#  if !@HAVE_DECL_TTYNAME_R@
 _GL_FUNCDECL_SYS (ttyname_r, int,
                   (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2)));
 #  endif
@@ -1242,7 +1505,7 @@ _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - "
 /* Pause the execution of the current thread for N microseconds.
    Returns 0 on completion, or -1 on range error.
    See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/sleep.html>.  */
+   <http://www.opengroup.org/susv3xsh/usleep.html>.  */
 # if @REPLACE_USLEEP@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef usleep
@@ -1268,9 +1531,9 @@ _GL_WARN_ON_USE (usleep, "usleep is unportable - "
 
 #if @GNULIB_WRITE@
 /* Write up to COUNT bytes starting at BUF to file descriptor FD.
-   See the POSIX:2001 specification
-   <http://www.opengroup.org/susv3xsh/write.html>.  */
-# if @REPLACE_WRITE@ && @GNULIB_UNISTD_H_SIGPIPE@
+   See the POSIX:2008 specification
+   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html>.  */
+# if @REPLACE_WRITE@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef write
 #   define write rpl_write
@@ -1287,6 +1550,8 @@ _GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count));
 _GL_CXXALIASWARN (write);
 #endif
 
+_GL_INLINE_HEADER_END
 
-#endif /* _GL_UNISTD_H */
-#endif /* _GL_UNISTD_H */
+#endif /* _@GUARD_PREFIX@_UNISTD_H */
+#endif /* _GL_INCLUDING_UNISTD_H */
+#endif /* _@GUARD_PREFIX@_UNISTD_H */
index 8eb6922..898b162 100644 (file)
@@ -1,5 +1,6 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Elementary Unicode string functions.
-   Copyright (C) 2002, 2005-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005-2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
diff --git a/lib/unistdio.in.h b/lib/unistdio.in.h
new file mode 100644 (file)
index 0000000..fbccc8c
--- /dev/null
@@ -0,0 +1,256 @@
+/* Elementary Unicode string functions.
+   Copyright (C) 2002, 2005-2007, 2009-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNISTDIO_H
+#define _UNISTDIO_H
+
+#include "unitypes.h"
+
+/* Get size_t.  */
+#include <stddef.h>
+
+/* Get FILE.  */
+#include <stdio.h>
+
+/* Get va_list.  */
+#include <stdarg.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* These work like the printf function family.
+   In the format string:
+   The format directive 'U' takes an UTF-8 string (const uint8_t *).
+   The format directive 'lU' takes an UTF-16 string (const uint16_t *).
+   The format directive 'llU' takes an UTF-32 string (const uint32_t *).
+
+   The prefix (ulc_, u8_, u16_, u16_) indicates the type of the resulting
+   string.  The prefix 'ulc' stands for "locale encoded".
+
+   An infix 'v' indicates that a va_list is passed instead of multiple
+   arguments.
+
+   The functions *sprintf have a 'buf' argument that is assumed to be large
+   enough.  (DANGEROUS!  Overflowing the buffer will crash the program.)
+   The functions *snprintf have a 'buf' argument that is assumed to be 'size'
+   units large.  (DANGEROUS!  The resulting string might be truncated in the
+   middle of a multibyte character.)
+   The functions *asprintf have a 'resultp' argument.  The result will be
+   freshly allocated and stored in *resultp.
+   The functions *asnprintf have a (resultbuf, lengthp) argument pair.  If
+   resultbuf is not NULL and the result fits into *lengthp units, it is put
+   in resultbuf, and resultbuf is returned.  Otherwise, a freshly allocated
+   string is returned.  In both cases, *lengthp is set to the length (number
+   of units) of the returned string.  In case of error, NULL is returned and
+   errno is set.
+ */
+
+/* ASCII format string, result in locale dependent encoded 'char *'.  */
+extern int
+       ulc_sprintf (char *buf,
+                    const char *format, ...);
+extern int
+       ulc_snprintf (char *buf, size_t size,
+                     const char *format, ...);
+extern int
+       ulc_asprintf (char **resultp,
+                     const char *format, ...);
+extern char *
+       ulc_asnprintf (char *resultbuf, size_t *lengthp,
+                      const char *format, ...);
+extern int
+       ulc_vsprintf (char *buf,
+                     const char *format, va_list ap);
+extern int
+       ulc_vsnprintf (char *buf, size_t size,
+                      const char *format, va_list ap);
+extern int
+       ulc_vasprintf (char **resultp,
+                      const char *format, va_list ap);
+extern char *
+       ulc_vasnprintf (char *resultbuf, size_t *lengthp,
+                       const char *format, va_list ap);
+
+/* ASCII format string, result in UTF-8 format.  */
+extern int
+       u8_sprintf (uint8_t *buf,
+                   const char *format, ...);
+extern int
+       u8_snprintf (uint8_t *buf, size_t size,
+                    const char *format, ...);
+extern int
+       u8_asprintf (uint8_t **resultp,
+                    const char *format, ...);
+extern uint8_t *
+       u8_asnprintf (uint8_t *resultbuf, size_t *lengthp,
+                     const char *format, ...);
+extern int
+       u8_vsprintf (uint8_t *buf,
+                    const char *format, va_list ap);
+extern int
+       u8_vsnprintf (uint8_t *buf, size_t size,
+                     const char *format, va_list ap);
+extern int
+       u8_vasprintf (uint8_t **resultp,
+                     const char *format, va_list ap);
+extern uint8_t *
+       u8_vasnprintf (uint8_t *resultbuf, size_t *lengthp,
+                      const char *format, va_list ap);
+
+/* UTF-8 format string, result in UTF-8 format.  */
+extern int
+       u8_u8_sprintf (uint8_t *buf,
+                      const uint8_t *format, ...);
+extern int
+       u8_u8_snprintf (uint8_t *buf, size_t size,
+                       const uint8_t *format, ...);
+extern int
+       u8_u8_asprintf (uint8_t **resultp,
+                       const uint8_t *format, ...);
+extern uint8_t *
+       u8_u8_asnprintf (uint8_t *resultbuf, size_t *lengthp,
+                        const uint8_t *format, ...);
+extern int
+       u8_u8_vsprintf (uint8_t *buf,
+                       const uint8_t *format, va_list ap);
+extern int
+       u8_u8_vsnprintf (uint8_t *buf, size_t size,
+                        const uint8_t *format, va_list ap);
+extern int
+       u8_u8_vasprintf (uint8_t **resultp,
+                        const uint8_t *format, va_list ap);
+extern uint8_t *
+       u8_u8_vasnprintf (uint8_t *resultbuf, size_t *lengthp,
+                         const uint8_t *format, va_list ap);
+
+/* ASCII format string, result in UTF-16 format.  */
+extern int
+       u16_sprintf (uint16_t *buf,
+                    const char *format, ...);
+extern int
+       u16_snprintf (uint16_t *buf, size_t size,
+                     const char *format, ...);
+extern int
+       u16_asprintf (uint16_t **resultp,
+                     const char *format, ...);
+extern uint16_t *
+       u16_asnprintf (uint16_t *resultbuf, size_t *lengthp,
+                      const char *format, ...);
+extern int
+       u16_vsprintf (uint16_t *buf,
+                     const char *format, va_list ap);
+extern int
+       u16_vsnprintf (uint16_t *buf, size_t size,
+                      const char *format, va_list ap);
+extern int
+       u16_vasprintf (uint16_t **resultp,
+                      const char *format, va_list ap);
+extern uint16_t *
+       u16_vasnprintf (uint16_t *resultbuf, size_t *lengthp,
+                       const char *format, va_list ap);
+
+/* UTF-16 format string, result in UTF-16 format.  */
+extern int
+       u16_u16_sprintf (uint16_t *buf,
+                        const uint16_t *format, ...);
+extern int
+       u16_u16_snprintf (uint16_t *buf, size_t size,
+                         const uint16_t *format, ...);
+extern int
+       u16_u16_asprintf (uint16_t **resultp,
+                         const uint16_t *format, ...);
+extern uint16_t *
+       u16_u16_asnprintf (uint16_t *resultbuf, size_t *lengthp,
+                          const uint16_t *format, ...);
+extern int
+       u16_u16_vsprintf (uint16_t *buf,
+                         const uint16_t *format, va_list ap);
+extern int
+       u16_u16_vsnprintf (uint16_t *buf, size_t size,
+                          const uint16_t *format, va_list ap);
+extern int
+       u16_u16_vasprintf (uint16_t **resultp,
+                          const uint16_t *format, va_list ap);
+extern uint16_t *
+       u16_u16_vasnprintf (uint16_t *resultbuf, size_t *lengthp,
+                           const uint16_t *format, va_list ap);
+
+/* ASCII format string, result in UTF-32 format.  */
+extern int
+       u32_sprintf (uint32_t *buf,
+                    const char *format, ...);
+extern int
+       u32_snprintf (uint32_t *buf, size_t size,
+                     const char *format, ...);
+extern int
+       u32_asprintf (uint32_t **resultp,
+                     const char *format, ...);
+extern uint32_t *
+       u32_asnprintf (uint32_t *resultbuf, size_t *lengthp,
+                      const char *format, ...);
+extern int
+       u32_vsprintf (uint32_t *buf,
+                     const char *format, va_list ap);
+extern int
+       u32_vsnprintf (uint32_t *buf, size_t size,
+                      const char *format, va_list ap);
+extern int
+       u32_vasprintf (uint32_t **resultp,
+                      const char *format, va_list ap);
+extern uint32_t *
+       u32_vasnprintf (uint32_t *resultbuf, size_t *lengthp,
+                       const char *format, va_list ap);
+
+/* UTF-32 format string, result in UTF-32 format.  */
+extern int
+       u32_u32_sprintf (uint32_t *buf,
+                        const uint32_t *format, ...);
+extern int
+       u32_u32_snprintf (uint32_t *buf, size_t size,
+                         const uint32_t *format, ...);
+extern int
+       u32_u32_asprintf (uint32_t **resultp,
+                         const uint32_t *format, ...);
+extern uint32_t *
+       u32_u32_asnprintf (uint32_t *resultbuf, size_t *lengthp,
+                          const uint32_t *format, ...);
+extern int
+       u32_u32_vsprintf (uint32_t *buf,
+                         const uint32_t *format, va_list ap);
+extern int
+       u32_u32_vsnprintf (uint32_t *buf, size_t size,
+                          const uint32_t *format, va_list ap);
+extern int
+       u32_u32_vasprintf (uint32_t **resultp,
+                          const uint32_t *format, va_list ap);
+extern uint32_t *
+       u32_u32_vasnprintf (uint32_t *resultbuf, size_t *lengthp,
+                           const uint32_t *format, va_list ap);
+
+/* ASCII format string, output to FILE in locale dependent encoding.  */
+extern int
+       ulc_fprintf (FILE *stream,
+                    const char *format, ...);
+extern int
+       ulc_vfprintf (FILE *stream,
+                     const char *format, va_list ap);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNISTDIO_H */
index 693e35e..e3bf48e 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index b7f5cb2..4eb2f26 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index b357f3c..7a61c48 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 4e099fc..06cff47 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 0f593f8..209d7c5 100644 (file)
@@ -1,5 +1,5 @@
 /* Parse printf format string.
-   Copyright (C) 1999, 2002, 2005, 2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005, 2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 391709b..6188684 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 94f3c82..ca5029b 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index e67c4cb..0538de0 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index 2b2e0d5..aa40be6 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index 0caf073..3b4af88 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
index 0705dd9..357331e 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index f7710bb..f66a933 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index fbc1083..09550a0 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2010 Free Software
+   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2014 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
index c2b99a0..5ac0343 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index b0e0799..7506e48 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index bfb184a..68c2fbe 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 84f1d66..6c86aef 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index d1642e9..9a1bd5c 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 5804367..18fc167 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 5c356bf..c19c110 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to UTF-16 strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 6202a8b..40cd080 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 2bf5c0e..e16a3d8 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index b87f17e..9e35707 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 05d0adf..a149011 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to UTF-16 strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
@@ -36,7 +36,7 @@
 #define FCHAR_T char
 #define DIRECTIVE char_directive
 #define DIRECTIVES char_directives
-#define ASCII_ONLY 1
+#define FCHAR_T_ONLY_ASCII 1
 #define PRINTF_PARSE ulc_printf_parse
 #define DCHAR_T uint16_t
 #define DCHAR_T_IS_UINT16_T 1
index f917f68..3b3c711 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 0b8bfce..4f1c918 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 7026a68..a1532be 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index c4eefd6..e11e46b 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 6773032..ef98b3f 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index bc3c7f2..a5f2619 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2010 Free Software
+   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2014 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 0636eef..2977da6 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 207078b..13bdb6a 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index bd37c80..364de73 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index edc16e7..e68634d 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index a36c123..d121903 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index eb322fc..50189c6 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 17ae282..355f5c2 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to UTF-32 strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 678e2fd..86d5fcf 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index c42678b..d352488 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 6a18598..648601b 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 86a3564..5428921 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to UTF-32 strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
@@ -36,7 +36,7 @@
 #define FCHAR_T char
 #define DIRECTIVE char_directive
 #define DIRECTIVES char_directives
-#define ASCII_ONLY 1
+#define FCHAR_T_ONLY_ASCII 1
 #define PRINTF_PARSE ulc_printf_parse
 #define DCHAR_T uint32_t
 #define DCHAR_T_IS_UINT32_T 1
index ef4ed97..ecb8f45 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index ba47a3c..7784e55 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 26b1e95..98173cc 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 839e6e2..eefaec6 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 8004b96..5a9225b 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 6b87299..4d04058 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2010 Free Software
+   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2014 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
index ce0f7de..ce115af 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 2467fbb..8abe95b 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index cdcd6c8..2f6e181 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 8e34f3d..74f5498 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 615c5cb..89e14ae 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 57c5642..5a922bf 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 588947d..2259c5a 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to UTF-8 strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 6a3732d..25584fe 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 2ebb19a..fed722c 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index ca4c656..cadfbb9 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 304c54c..0ea9032 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to UTF-8 strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
@@ -36,7 +36,7 @@
 #define FCHAR_T char
 #define DIRECTIVE char_directive
 #define DIRECTIVES char_directives
-#define ASCII_ONLY 1
+#define FCHAR_T_ONLY_ASCII 1
 #define PRINTF_PARSE ulc_printf_parse
 #define DCHAR_T uint8_t
 #define DCHAR_T_IS_UINT8_T 1
index 5b7f719..458c140 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 4f6f1fa..e60a94c 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 7397d28..fecc5d1 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 5a79c8c..9cccb39 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index a97a3fe..6aefef9 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index fb2b9e2..26b6bbf 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to a stream.
-   Copyright (C) 2004, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
index a2e22b2..7731742 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2010 Free Software
+   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2014 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 9b57ada..2b7f3bb 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index a9f3c4e..e2f9faa 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2005-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2005-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index ef652b9..962d3c3 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 24c7723..76cac0e 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index d714010..55dab7f 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to a stream.
-   Copyright (C) 2004, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
index 7a43eb2..086274c 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 9b19a33..80ab7a6 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 4d3c325..24385be 100644 (file)
@@ -1,5 +1,6 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Elementary Unicode string functions.
-   Copyright (C) 2001-2002, 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2005-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -69,17 +70,20 @@ extern "C" {
 /* Check whether an UTF-8 string is well-formed.
    Return NULL if valid, or a pointer to the first invalid unit otherwise.  */
 extern const uint8_t *
-       u8_check (const uint8_t *s, size_t n);
+       u8_check (const uint8_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
 
 /* Check whether an UTF-16 string is well-formed.
    Return NULL if valid, or a pointer to the first invalid unit otherwise.  */
 extern const uint16_t *
-       u16_check (const uint16_t *s, size_t n);
+       u16_check (const uint16_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
 
 /* Check whether an UCS-4 string is well-formed.
    Return NULL if valid, or a pointer to the first invalid unit otherwise.  */
 extern const uint32_t *
-       u32_check (const uint32_t *s, size_t n);
+       u32_check (const uint32_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
 
 
 /* Elementary string conversions.  */
@@ -122,11 +126,14 @@ extern uint16_t *
    failure.  */
 /* Similar to mblen(), except that s must not be NULL.  */
 extern int
-       u8_mblen (const uint8_t *s, size_t n);
+       u8_mblen (const uint8_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u16_mblen (const uint16_t *s, size_t n);
+       u16_mblen (const uint16_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u32_mblen (const uint32_t *s, size_t n);
+       u32_mblen (const uint32_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
 
 /* Return the length (number of units) of the first character in S, putting
    its 'ucs4_t' representation in *PUC.  Upon failure, *PUC is set to 0xfffd,
@@ -403,38 +410,50 @@ extern uint32_t *
 /* Compare S1 and S2, each of length N.  */
 /* Similar to memcmp().  */
 extern int
-       u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n);
+       u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n);
+       u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n);
+       u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
 
 /* Compare S1 and S2.  */
 /* Similar to the gnulib function memcmp2().  */
 extern int
-       u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2);
+       u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2);
+       u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2);
+       u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2)
+       _UC_ATTRIBUTE_PURE;
 
 /* Search the string at S for UC.  */
 /* Similar to memchr().  */
 extern uint8_t *
-       u8_chr (const uint8_t *s, size_t n, ucs4_t uc);
+       u8_chr (const uint8_t *s, size_t n, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
 extern uint16_t *
-       u16_chr (const uint16_t *s, size_t n, ucs4_t uc);
+       u16_chr (const uint16_t *s, size_t n, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
 extern uint32_t *
-       u32_chr (const uint32_t *s, size_t n, ucs4_t uc);
+       u32_chr (const uint32_t *s, size_t n, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
 
 /* Count the number of Unicode characters in the N units from S.  */
 /* Similar to mbsnlen().  */
 extern size_t
-       u8_mbsnlen (const uint8_t *s, size_t n);
+       u8_mbsnlen (const uint8_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
 extern size_t
-       u16_mbsnlen (const uint16_t *s, size_t n);
+       u16_mbsnlen (const uint16_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
 extern size_t
-       u32_mbsnlen (const uint32_t *s, size_t n);
+       u32_mbsnlen (const uint32_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
 
 /* Elementary string functions with memory allocation.  */
 
@@ -451,11 +470,14 @@ extern uint32_t *
 /* Return the length (number of units) of the first character in S.
    Return 0 if it is the NUL character.  Return -1 upon failure.  */
 extern int
-       u8_strmblen (const uint8_t *s);
+       u8_strmblen (const uint8_t *s)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u16_strmblen (const uint16_t *s);
+       u16_strmblen (const uint16_t *s)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u32_strmblen (const uint32_t *s);
+       u32_strmblen (const uint32_t *s)
+       _UC_ATTRIBUTE_PURE;
 
 /* Return the length (number of units) of the first character in S, putting
    its 'ucs4_t' representation in *PUC.  Return 0 if it is the NUL
@@ -490,20 +512,26 @@ extern const uint32_t *
 /* Return the number of units in S.  */
 /* Similar to strlen(), wcslen().  */
 extern size_t
-       u8_strlen (const uint8_t *s);
+       u8_strlen (const uint8_t *s)
+       _UC_ATTRIBUTE_PURE;
 extern size_t
-       u16_strlen (const uint16_t *s);
+       u16_strlen (const uint16_t *s)
+       _UC_ATTRIBUTE_PURE;
 extern size_t
-       u32_strlen (const uint32_t *s);
+       u32_strlen (const uint32_t *s)
+       _UC_ATTRIBUTE_PURE;
 
 /* Return the number of units in S, but at most MAXLEN.  */
 /* Similar to strnlen(), wcsnlen().  */
 extern size_t
-       u8_strnlen (const uint8_t *s, size_t maxlen);
+       u8_strnlen (const uint8_t *s, size_t maxlen)
+       _UC_ATTRIBUTE_PURE;
 extern size_t
-       u16_strnlen (const uint16_t *s, size_t maxlen);
+       u16_strnlen (const uint16_t *s, size_t maxlen)
+       _UC_ATTRIBUTE_PURE;
 extern size_t
-       u32_strnlen (const uint32_t *s, size_t maxlen);
+       u32_strnlen (const uint32_t *s, size_t maxlen)
+       _UC_ATTRIBUTE_PURE;
 
 /* Copy SRC to DEST.  */
 /* Similar to strcpy(), wcscpy().  */
@@ -562,12 +590,23 @@ extern uint32_t *
 
 /* Compare S1 and S2.  */
 /* Similar to strcmp(), wcscmp().  */
+#ifdef __sun
+/* Avoid a collision with the u8_strcmp() function in Solaris 11 libc.  */
 extern int
-       u8_strcmp (const uint8_t *s1, const uint8_t *s2);
+       u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2)
+       _UC_ATTRIBUTE_PURE;
+# define u8_strcmp u8_strcmp_gnu
+#else
 extern int
-       u16_strcmp (const uint16_t *s1, const uint16_t *s2);
+       u8_strcmp (const uint8_t *s1, const uint8_t *s2)
+       _UC_ATTRIBUTE_PURE;
+#endif
+extern int
+       u16_strcmp (const uint16_t *s1, const uint16_t *s2)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u32_strcmp (const uint32_t *s1, const uint32_t *s2);
+       u32_strcmp (const uint32_t *s1, const uint32_t *s2)
+       _UC_ATTRIBUTE_PURE;
 
 /* Compare S1 and S2 using the collation rules of the current locale.
    Return -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2.
@@ -583,11 +622,14 @@ extern int
 /* Compare no more than N units of S1 and S2.  */
 /* Similar to strncmp(), wcsncmp().  */
 extern int
-       u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n);
+       u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n);
+       u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n);
+       u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
 
 /* Duplicate S, returning an identical malloc'd string.  */
 /* Similar to strdup(), wcsdup().  */
@@ -601,74 +643,98 @@ extern uint32_t *
 /* Find the first occurrence of UC in STR.  */
 /* Similar to strchr(), wcschr().  */
 extern uint8_t *
-       u8_strchr (const uint8_t *str, ucs4_t uc);
+       u8_strchr (const uint8_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
 extern uint16_t *
-       u16_strchr (const uint16_t *str, ucs4_t uc);
+       u16_strchr (const uint16_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
 extern uint32_t *
-       u32_strchr (const uint32_t *str, ucs4_t uc);
+       u32_strchr (const uint32_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
 
 /* Find the last occurrence of UC in STR.  */
 /* Similar to strrchr(), wcsrchr().  */
 extern uint8_t *
-       u8_strrchr (const uint8_t *str, ucs4_t uc);
+       u8_strrchr (const uint8_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
 extern uint16_t *
-       u16_strrchr (const uint16_t *str, ucs4_t uc);
+       u16_strrchr (const uint16_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
 extern uint32_t *
-       u32_strrchr (const uint32_t *str, ucs4_t uc);
+       u32_strrchr (const uint32_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
 
 /* Return the length of the initial segment of STR which consists entirely
    of Unicode characters not in REJECT.  */
 /* Similar to strcspn(), wcscspn().  */
 extern size_t
-       u8_strcspn (const uint8_t *str, const uint8_t *reject);
+       u8_strcspn (const uint8_t *str, const uint8_t *reject)
+       _UC_ATTRIBUTE_PURE;
 extern size_t
-       u16_strcspn (const uint16_t *str, const uint16_t *reject);
+       u16_strcspn (const uint16_t *str, const uint16_t *reject)
+       _UC_ATTRIBUTE_PURE;
 extern size_t
-       u32_strcspn (const uint32_t *str, const uint32_t *reject);
+       u32_strcspn (const uint32_t *str, const uint32_t *reject)
+       _UC_ATTRIBUTE_PURE;
 
 /* Return the length of the initial segment of STR which consists entirely
    of Unicode characters in ACCEPT.  */
 /* Similar to strspn(), wcsspn().  */
 extern size_t
-       u8_strspn (const uint8_t *str, const uint8_t *accept);
+       u8_strspn (const uint8_t *str, const uint8_t *accept)
+       _UC_ATTRIBUTE_PURE;
 extern size_t
-       u16_strspn (const uint16_t *str, const uint16_t *accept);
+       u16_strspn (const uint16_t *str, const uint16_t *accept)
+       _UC_ATTRIBUTE_PURE;
 extern size_t
-       u32_strspn (const uint32_t *str, const uint32_t *accept);
+       u32_strspn (const uint32_t *str, const uint32_t *accept)
+       _UC_ATTRIBUTE_PURE;
 
 /* Find the first occurrence in STR of any character in ACCEPT.  */
 /* Similar to strpbrk(), wcspbrk().  */
 extern uint8_t *
-       u8_strpbrk (const uint8_t *str, const uint8_t *accept);
+       u8_strpbrk (const uint8_t *str, const uint8_t *accept)
+       _UC_ATTRIBUTE_PURE;
 extern uint16_t *
-       u16_strpbrk (const uint16_t *str, const uint16_t *accept);
+       u16_strpbrk (const uint16_t *str, const uint16_t *accept)
+       _UC_ATTRIBUTE_PURE;
 extern uint32_t *
-       u32_strpbrk (const uint32_t *str, const uint32_t *accept);
+       u32_strpbrk (const uint32_t *str, const uint32_t *accept)
+       _UC_ATTRIBUTE_PURE;
 
 /* Find the first occurrence of NEEDLE in HAYSTACK.  */
 /* Similar to strstr(), wcsstr().  */
 extern uint8_t *
-       u8_strstr (const uint8_t *haystack, const uint8_t *needle);
+       u8_strstr (const uint8_t *haystack, const uint8_t *needle)
+       _UC_ATTRIBUTE_PURE;
 extern uint16_t *
-       u16_strstr (const uint16_t *haystack, const uint16_t *needle);
+       u16_strstr (const uint16_t *haystack, const uint16_t *needle)
+       _UC_ATTRIBUTE_PURE;
 extern uint32_t *
-       u32_strstr (const uint32_t *haystack, const uint32_t *needle);
+       u32_strstr (const uint32_t *haystack, const uint32_t *needle)
+       _UC_ATTRIBUTE_PURE;
 
 /* Test whether STR starts with PREFIX.  */
 extern bool
-       u8_startswith (const uint8_t *str, const uint8_t *prefix);
+       u8_startswith (const uint8_t *str, const uint8_t *prefix)
+       _UC_ATTRIBUTE_PURE;
 extern bool
-       u16_startswith (const uint16_t *str, const uint16_t *prefix);
+       u16_startswith (const uint16_t *str, const uint16_t *prefix)
+       _UC_ATTRIBUTE_PURE;
 extern bool
-       u32_startswith (const uint32_t *str, const uint32_t *prefix);
+       u32_startswith (const uint32_t *str, const uint32_t *prefix)
+       _UC_ATTRIBUTE_PURE;
 
 /* Test whether STR ends with SUFFIX.  */
 extern bool
-       u8_endswith (const uint8_t *str, const uint8_t *suffix);
+       u8_endswith (const uint8_t *str, const uint8_t *suffix)
+       _UC_ATTRIBUTE_PURE;
 extern bool
-       u16_endswith (const uint16_t *str, const uint16_t *suffix);
+       u16_endswith (const uint16_t *str, const uint16_t *suffix)
+       _UC_ATTRIBUTE_PURE;
 extern bool
-       u32_endswith (const uint32_t *str, const uint32_t *suffix);
+       u32_endswith (const uint32_t *str, const uint32_t *suffix)
+       _UC_ATTRIBUTE_PURE;
 
 /* Divide STR into tokens separated by characters in DELIM.
    This interface is actually more similar to wcstok than to strtok.  */
diff --git a/lib/unistr.in.h b/lib/unistr.in.h
new file mode 100644 (file)
index 0000000..65ea4f3
--- /dev/null
@@ -0,0 +1,753 @@
+/* Elementary Unicode string functions.
+   Copyright (C) 2001-2002, 2005-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNISTR_H
+#define _UNISTR_H
+
+#include "unitypes.h"
+
+/* Get common macros for C.  */
+#include <unistring/cdefs.h>
+
+/* Get inline if available.  */
+#include <unistring/inline.h>
+
+/* Get bool.  */
+#include <unistring/stdbool.h>
+
+/* Get size_t.  */
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Conventions:
+
+   All functions prefixed with u8_ operate on UTF-8 encoded strings.
+   Their unit is an uint8_t (1 byte).
+
+   All functions prefixed with u16_ operate on UTF-16 encoded strings.
+   Their unit is an uint16_t (a 2-byte word).
+
+   All functions prefixed with u32_ operate on UCS-4 encoded strings.
+   Their unit is an uint32_t (a 4-byte word).
+
+   All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly
+   n units.
+
+   All arguments starting with "str" and the arguments of functions starting
+   with u8_str/u16_str/u32_str denote a NUL terminated string, i.e. a string
+   which terminates at the first NUL unit.  This termination unit is
+   considered part of the string for all memory allocation purposes, but
+   is not considered part of the string for all other logical purposes.
+
+   Functions returning a string result take a (resultbuf, lengthp) argument
+   pair.  If resultbuf is not NULL and the result fits into *lengthp units,
+   it is put in resultbuf, and resultbuf is returned.  Otherwise, a freshly
+   allocated string is returned.  In both cases, *lengthp is set to the
+   length (number of units) of the returned string.  In case of error,
+   NULL is returned and errno is set.  */
+
+
+/* Elementary string checks.  */
+
+/* Check whether an UTF-8 string is well-formed.
+   Return NULL if valid, or a pointer to the first invalid unit otherwise.  */
+extern const uint8_t *
+       u8_check (const uint8_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
+
+/* Check whether an UTF-16 string is well-formed.
+   Return NULL if valid, or a pointer to the first invalid unit otherwise.  */
+extern const uint16_t *
+       u16_check (const uint16_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
+
+/* Check whether an UCS-4 string is well-formed.
+   Return NULL if valid, or a pointer to the first invalid unit otherwise.  */
+extern const uint32_t *
+       u32_check (const uint32_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
+
+
+/* Elementary string conversions.  */
+
+/* Convert an UTF-8 string to an UTF-16 string.  */
+extern uint16_t *
+       u8_to_u16 (const uint8_t *s, size_t n, uint16_t *resultbuf,
+                  size_t *lengthp);
+
+/* Convert an UTF-8 string to an UCS-4 string.  */
+extern uint32_t *
+       u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf,
+                  size_t *lengthp);
+
+/* Convert an UTF-16 string to an UTF-8 string.  */
+extern uint8_t *
+       u16_to_u8 (const uint16_t *s, size_t n, uint8_t *resultbuf,
+                  size_t *lengthp);
+
+/* Convert an UTF-16 string to an UCS-4 string.  */
+extern uint32_t *
+       u16_to_u32 (const uint16_t *s, size_t n, uint32_t *resultbuf,
+                   size_t *lengthp);
+
+/* Convert an UCS-4 string to an UTF-8 string.  */
+extern uint8_t *
+       u32_to_u8 (const uint32_t *s, size_t n, uint8_t *resultbuf,
+                  size_t *lengthp);
+
+/* Convert an UCS-4 string to an UTF-16 string.  */
+extern uint16_t *
+       u32_to_u16 (const uint32_t *s, size_t n, uint16_t *resultbuf,
+                   size_t *lengthp);
+
+
+/* Elementary string functions.  */
+
+/* Return the length (number of units) of the first character in S, which is
+   no longer than N.  Return 0 if it is the NUL character.  Return -1 upon
+   failure.  */
+/* Similar to mblen(), except that s must not be NULL.  */
+extern int
+       u8_mblen (const uint8_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u16_mblen (const uint16_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u32_mblen (const uint32_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the length (number of units) of the first character in S, putting
+   its 'ucs4_t' representation in *PUC.  Upon failure, *PUC is set to 0xfffd,
+   and an appropriate number of units is returned.
+   The number of available units, N, must be > 0.  */
+/* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0,
+   and the NUL character is not treated specially.  */
+/* The variants with _safe suffix are safe, even if the library is compiled
+   without --enable-safety.  */
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+       u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n);
+# else
+extern int
+       u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n);
+static inline int
+u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+  uint8_t c = *s;
+
+  if (c < 0x80)
+    {
+      *puc = c;
+      return 1;
+    }
+  else
+    return u8_mbtouc_unsafe_aux (puc, s, n);
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+       u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n);
+# else
+extern int
+       u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n);
+static inline int
+u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+  uint16_t c = *s;
+
+  if (c < 0xd800 || c >= 0xe000)
+    {
+      *puc = c;
+      return 1;
+    }
+  else
+    return u16_mbtouc_unsafe_aux (puc, s, n);
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+       u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n);
+# else
+static inline int
+u32_mbtouc_unsafe (ucs4_t *puc,
+                   const uint32_t *s, size_t n _GL_UNUSED_PARAMETER)
+{
+  uint32_t c = *s;
+
+#  if CONFIG_UNICODE_SAFETY
+  if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+#  endif
+    *puc = c;
+#  if CONFIG_UNICODE_SAFETY
+  else
+    /* invalid multibyte character */
+    *puc = 0xfffd;
+#  endif
+  return 1;
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+       u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n);
+# else
+extern int
+       u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n);
+static inline int
+u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+  uint8_t c = *s;
+
+  if (c < 0x80)
+    {
+      *puc = c;
+      return 1;
+    }
+  else
+    return u8_mbtouc_aux (puc, s, n);
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+       u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n);
+# else
+extern int
+       u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n);
+static inline int
+u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+  uint16_t c = *s;
+
+  if (c < 0xd800 || c >= 0xe000)
+    {
+      *puc = c;
+      return 1;
+    }
+  else
+    return u16_mbtouc_aux (puc, s, n);
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+       u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n);
+# else
+static inline int
+u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n _GL_UNUSED_PARAMETER)
+{
+  uint32_t c = *s;
+
+  if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+    *puc = c;
+  else
+    /* invalid multibyte character */
+    *puc = 0xfffd;
+  return 1;
+}
+# endif
+#endif
+
+/* Return the length (number of units) of the first character in S, putting
+   its 'ucs4_t' representation in *PUC.  Upon failure, *PUC is set to 0xfffd,
+   and -1 is returned for an invalid sequence of units, -2 is returned for an
+   incomplete sequence of units.
+   The number of available units, N, must be > 0.  */
+/* Similar to u*_mbtouc(), except that the return value gives more details
+   about the failure, similar to mbrtowc().  */
+
+#if 1
+extern int
+       u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n);
+#endif
+
+#if 1
+extern int
+       u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n);
+#endif
+
+#if 1
+extern int
+       u32_mbtoucr (ucs4_t *puc, const uint32_t *s, size_t n);
+#endif
+
+/* Put the multibyte character represented by UC in S, returning its
+   length.  Return -1 upon failure, -2 if the number of available units, N,
+   is too small.  The latter case cannot occur if N >= 6/2/1, respectively.  */
+/* Similar to wctomb(), except that s must not be NULL, and the argument n
+   must be specified.  */
+
+#if 1
+/* Auxiliary function, also used by u8_chr, u8_strchr, u8_strrchr.  */
+extern int
+       u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n);
+# if !UNISTRING_HAVE_INLINE
+extern int
+       u8_uctomb (uint8_t *s, ucs4_t uc, int n);
+# else
+static inline int
+u8_uctomb (uint8_t *s, ucs4_t uc, int n)
+{
+  if (uc < 0x80 && n > 0)
+    {
+      s[0] = uc;
+      return 1;
+    }
+  else
+    return u8_uctomb_aux (s, uc, n);
+}
+# endif
+#endif
+
+#if 1
+/* Auxiliary function, also used by u16_chr, u16_strchr, u16_strrchr.  */
+extern int
+       u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n);
+# if !UNISTRING_HAVE_INLINE
+extern int
+       u16_uctomb (uint16_t *s, ucs4_t uc, int n);
+# else
+static inline int
+u16_uctomb (uint16_t *s, ucs4_t uc, int n)
+{
+  if (uc < 0xd800 && n > 0)
+    {
+      s[0] = uc;
+      return 1;
+    }
+  else
+    return u16_uctomb_aux (s, uc, n);
+}
+# endif
+#endif
+
+#if 1
+# if !UNISTRING_HAVE_INLINE
+extern int
+       u32_uctomb (uint32_t *s, ucs4_t uc, int n);
+# else
+static inline int
+u32_uctomb (uint32_t *s, ucs4_t uc, int n)
+{
+  if (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000))
+    {
+      if (n > 0)
+        {
+          *s = uc;
+          return 1;
+        }
+      else
+        return -2;
+    }
+  else
+    return -1;
+}
+# endif
+#endif
+
+/* Copy N units from SRC to DEST.  */
+/* Similar to memcpy().  */
+extern uint8_t *
+       u8_cpy (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+       u16_cpy (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+       u32_cpy (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Copy N units from SRC to DEST, guaranteeing correct behavior for
+   overlapping memory areas.  */
+/* Similar to memmove().  */
+extern uint8_t *
+       u8_move (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+       u16_move (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+       u32_move (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Set the first N characters of S to UC.  UC should be a character that
+   occupies only 1 unit.  */
+/* Similar to memset().  */
+extern uint8_t *
+       u8_set (uint8_t *s, ucs4_t uc, size_t n);
+extern uint16_t *
+       u16_set (uint16_t *s, ucs4_t uc, size_t n);
+extern uint32_t *
+       u32_set (uint32_t *s, ucs4_t uc, size_t n);
+
+/* Compare S1 and S2, each of length N.  */
+/* Similar to memcmp().  */
+extern int
+       u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
+
+/* Compare S1 and S2.  */
+/* Similar to the gnulib function memcmp2().  */
+extern int
+       u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2)
+       _UC_ATTRIBUTE_PURE;
+
+/* Search the string at S for UC.  */
+/* Similar to memchr().  */
+extern uint8_t *
+       u8_chr (const uint8_t *s, size_t n, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
+extern uint16_t *
+       u16_chr (const uint16_t *s, size_t n, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
+extern uint32_t *
+       u32_chr (const uint32_t *s, size_t n, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
+
+/* Count the number of Unicode characters in the N units from S.  */
+/* Similar to mbsnlen().  */
+extern size_t
+       u8_mbsnlen (const uint8_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
+extern size_t
+       u16_mbsnlen (const uint16_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
+extern size_t
+       u32_mbsnlen (const uint32_t *s, size_t n)
+       _UC_ATTRIBUTE_PURE;
+
+/* Elementary string functions with memory allocation.  */
+
+/* Make a freshly allocated copy of S, of length N.  */
+extern uint8_t *
+       u8_cpy_alloc (const uint8_t *s, size_t n);
+extern uint16_t *
+       u16_cpy_alloc (const uint16_t *s, size_t n);
+extern uint32_t *
+       u32_cpy_alloc (const uint32_t *s, size_t n);
+
+/* Elementary string functions on NUL terminated strings.  */
+
+/* Return the length (number of units) of the first character in S.
+   Return 0 if it is the NUL character.  Return -1 upon failure.  */
+extern int
+       u8_strmblen (const uint8_t *s)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u16_strmblen (const uint16_t *s)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u32_strmblen (const uint32_t *s)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the length (number of units) of the first character in S, putting
+   its 'ucs4_t' representation in *PUC.  Return 0 if it is the NUL
+   character.  Return -1 upon failure.  */
+extern int
+       u8_strmbtouc (ucs4_t *puc, const uint8_t *s);
+extern int
+       u16_strmbtouc (ucs4_t *puc, const uint16_t *s);
+extern int
+       u32_strmbtouc (ucs4_t *puc, const uint32_t *s);
+
+/* Forward iteration step.  Advances the pointer past the next character,
+   or returns NULL if the end of the string has been reached.  Puts the
+   character's 'ucs4_t' representation in *PUC.  */
+extern const uint8_t *
+       u8_next (ucs4_t *puc, const uint8_t *s);
+extern const uint16_t *
+       u16_next (ucs4_t *puc, const uint16_t *s);
+extern const uint32_t *
+       u32_next (ucs4_t *puc, const uint32_t *s);
+
+/* Backward iteration step.  Advances the pointer to point to the previous
+   character, or returns NULL if the beginning of the string had been reached.
+   Puts the character's 'ucs4_t' representation in *PUC.  */
+extern const uint8_t *
+       u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start);
+extern const uint16_t *
+       u16_prev (ucs4_t *puc, const uint16_t *s, const uint16_t *start);
+extern const uint32_t *
+       u32_prev (ucs4_t *puc, const uint32_t *s, const uint32_t *start);
+
+/* Return the number of units in S.  */
+/* Similar to strlen(), wcslen().  */
+extern size_t
+       u8_strlen (const uint8_t *s)
+       _UC_ATTRIBUTE_PURE;
+extern size_t
+       u16_strlen (const uint16_t *s)
+       _UC_ATTRIBUTE_PURE;
+extern size_t
+       u32_strlen (const uint32_t *s)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the number of units in S, but at most MAXLEN.  */
+/* Similar to strnlen(), wcsnlen().  */
+extern size_t
+       u8_strnlen (const uint8_t *s, size_t maxlen)
+       _UC_ATTRIBUTE_PURE;
+extern size_t
+       u16_strnlen (const uint16_t *s, size_t maxlen)
+       _UC_ATTRIBUTE_PURE;
+extern size_t
+       u32_strnlen (const uint32_t *s, size_t maxlen)
+       _UC_ATTRIBUTE_PURE;
+
+/* Copy SRC to DEST.  */
+/* Similar to strcpy(), wcscpy().  */
+extern uint8_t *
+       u8_strcpy (uint8_t *dest, const uint8_t *src);
+extern uint16_t *
+       u16_strcpy (uint16_t *dest, const uint16_t *src);
+extern uint32_t *
+       u32_strcpy (uint32_t *dest, const uint32_t *src);
+
+/* Copy SRC to DEST, returning the address of the terminating NUL in DEST.  */
+/* Similar to stpcpy().  */
+extern uint8_t *
+       u8_stpcpy (uint8_t *dest, const uint8_t *src);
+extern uint16_t *
+       u16_stpcpy (uint16_t *dest, const uint16_t *src);
+extern uint32_t *
+       u32_stpcpy (uint32_t *dest, const uint32_t *src);
+
+/* Copy no more than N units of SRC to DEST.  */
+/* Similar to strncpy(), wcsncpy().  */
+extern uint8_t *
+       u8_strncpy (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+       u16_strncpy (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+       u32_strncpy (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Copy no more than N units of SRC to DEST.  Return a pointer past the last
+   non-NUL unit written into DEST.  */
+/* Similar to stpncpy().  */
+extern uint8_t *
+       u8_stpncpy (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+       u16_stpncpy (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+       u32_stpncpy (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Append SRC onto DEST.  */
+/* Similar to strcat(), wcscat().  */
+extern uint8_t *
+       u8_strcat (uint8_t *dest, const uint8_t *src);
+extern uint16_t *
+       u16_strcat (uint16_t *dest, const uint16_t *src);
+extern uint32_t *
+       u32_strcat (uint32_t *dest, const uint32_t *src);
+
+/* Append no more than N units of SRC onto DEST.  */
+/* Similar to strncat(), wcsncat().  */
+extern uint8_t *
+       u8_strncat (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+       u16_strncat (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+       u32_strncat (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Compare S1 and S2.  */
+/* Similar to strcmp(), wcscmp().  */
+#ifdef __sun
+/* Avoid a collision with the u8_strcmp() function in Solaris 11 libc.  */
+extern int
+       u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2)
+       _UC_ATTRIBUTE_PURE;
+# define u8_strcmp u8_strcmp_gnu
+#else
+extern int
+       u8_strcmp (const uint8_t *s1, const uint8_t *s2)
+       _UC_ATTRIBUTE_PURE;
+#endif
+extern int
+       u16_strcmp (const uint16_t *s1, const uint16_t *s2)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u32_strcmp (const uint32_t *s1, const uint32_t *s2)
+       _UC_ATTRIBUTE_PURE;
+
+/* Compare S1 and S2 using the collation rules of the current locale.
+   Return -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2.
+   Upon failure, set errno and return any value.  */
+/* Similar to strcoll(), wcscoll().  */
+extern int
+       u8_strcoll (const uint8_t *s1, const uint8_t *s2);
+extern int
+       u16_strcoll (const uint16_t *s1, const uint16_t *s2);
+extern int
+       u32_strcoll (const uint32_t *s1, const uint32_t *s2);
+
+/* Compare no more than N units of S1 and S2.  */
+/* Similar to strncmp(), wcsncmp().  */
+extern int
+       u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n)
+       _UC_ATTRIBUTE_PURE;
+
+/* Duplicate S, returning an identical malloc'd string.  */
+/* Similar to strdup(), wcsdup().  */
+extern uint8_t *
+       u8_strdup (const uint8_t *s);
+extern uint16_t *
+       u16_strdup (const uint16_t *s);
+extern uint32_t *
+       u32_strdup (const uint32_t *s);
+
+/* Find the first occurrence of UC in STR.  */
+/* Similar to strchr(), wcschr().  */
+extern uint8_t *
+       u8_strchr (const uint8_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
+extern uint16_t *
+       u16_strchr (const uint16_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
+extern uint32_t *
+       u32_strchr (const uint32_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
+
+/* Find the last occurrence of UC in STR.  */
+/* Similar to strrchr(), wcsrchr().  */
+extern uint8_t *
+       u8_strrchr (const uint8_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
+extern uint16_t *
+       u16_strrchr (const uint16_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
+extern uint32_t *
+       u32_strrchr (const uint32_t *str, ucs4_t uc)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the length of the initial segment of STR which consists entirely
+   of Unicode characters not in REJECT.  */
+/* Similar to strcspn(), wcscspn().  */
+extern size_t
+       u8_strcspn (const uint8_t *str, const uint8_t *reject)
+       _UC_ATTRIBUTE_PURE;
+extern size_t
+       u16_strcspn (const uint16_t *str, const uint16_t *reject)
+       _UC_ATTRIBUTE_PURE;
+extern size_t
+       u32_strcspn (const uint32_t *str, const uint32_t *reject)
+       _UC_ATTRIBUTE_PURE;
+
+/* Return the length of the initial segment of STR which consists entirely
+   of Unicode characters in ACCEPT.  */
+/* Similar to strspn(), wcsspn().  */
+extern size_t
+       u8_strspn (const uint8_t *str, const uint8_t *accept)
+       _UC_ATTRIBUTE_PURE;
+extern size_t
+       u16_strspn (const uint16_t *str, const uint16_t *accept)
+       _UC_ATTRIBUTE_PURE;
+extern size_t
+       u32_strspn (const uint32_t *str, const uint32_t *accept)
+       _UC_ATTRIBUTE_PURE;
+
+/* Find the first occurrence in STR of any character in ACCEPT.  */
+/* Similar to strpbrk(), wcspbrk().  */
+extern uint8_t *
+       u8_strpbrk (const uint8_t *str, const uint8_t *accept)
+       _UC_ATTRIBUTE_PURE;
+extern uint16_t *
+       u16_strpbrk (const uint16_t *str, const uint16_t *accept)
+       _UC_ATTRIBUTE_PURE;
+extern uint32_t *
+       u32_strpbrk (const uint32_t *str, const uint32_t *accept)
+       _UC_ATTRIBUTE_PURE;
+
+/* Find the first occurrence of NEEDLE in HAYSTACK.  */
+/* Similar to strstr(), wcsstr().  */
+extern uint8_t *
+       u8_strstr (const uint8_t *haystack, const uint8_t *needle)
+       _UC_ATTRIBUTE_PURE;
+extern uint16_t *
+       u16_strstr (const uint16_t *haystack, const uint16_t *needle)
+       _UC_ATTRIBUTE_PURE;
+extern uint32_t *
+       u32_strstr (const uint32_t *haystack, const uint32_t *needle)
+       _UC_ATTRIBUTE_PURE;
+
+/* Test whether STR starts with PREFIX.  */
+extern bool
+       u8_startswith (const uint8_t *str, const uint8_t *prefix)
+       _UC_ATTRIBUTE_PURE;
+extern bool
+       u16_startswith (const uint16_t *str, const uint16_t *prefix)
+       _UC_ATTRIBUTE_PURE;
+extern bool
+       u32_startswith (const uint32_t *str, const uint32_t *prefix)
+       _UC_ATTRIBUTE_PURE;
+
+/* Test whether STR ends with SUFFIX.  */
+extern bool
+       u8_endswith (const uint8_t *str, const uint8_t *suffix)
+       _UC_ATTRIBUTE_PURE;
+extern bool
+       u16_endswith (const uint16_t *str, const uint16_t *suffix)
+       _UC_ATTRIBUTE_PURE;
+extern bool
+       u32_endswith (const uint32_t *str, const uint32_t *suffix)
+       _UC_ATTRIBUTE_PURE;
+
+/* Divide STR into tokens separated by characters in DELIM.
+   This interface is actually more similar to wcstok than to strtok.  */
+/* Similar to strtok_r(), wcstok().  */
+extern uint8_t *
+       u8_strtok (uint8_t *str, const uint8_t *delim, uint8_t **ptr);
+extern uint16_t *
+       u16_strtok (uint16_t *str, const uint16_t *delim, uint16_t **ptr);
+extern uint32_t *
+       u32_strtok (uint32_t *str, const uint32_t *delim, uint32_t **ptr);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNISTR_H */
index 6058c4a..aa16ccb 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare pieces of UTF-8/UTF-16/UTF-32 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index f36a8d0..4f66b27 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
index 6dad952..fd0bb87 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 094a87f..cd4afcf 100644 (file)
@@ -1,5 +1,5 @@
 /* Substring test for UTF-8/UTF-16/UTF-32 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index d8d58b0..cf44fd9 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index de78a8e..f6d9336 100644 (file)
@@ -1,5 +1,5 @@
 /* Fill UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 1696651..9112940 100644 (file)
@@ -1,5 +1,5 @@
 /* Substring test for UTF-8/UTF-16/UTF-32 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 483f3c2..10a6bd1 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4d6dd3c..8ff0862 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 84430fc..847f1d9 100644 (file)
@@ -1,5 +1,5 @@
 /* Concatenate UTF-8/UTF-16/UTF-32 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 9ec5c60..04c8a14 100644 (file)
@@ -1,6 +1,6 @@
 /* Compare UTF-8/UTF-16/UTF-32 strings using the collation rules of the current
    locale.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -23,14 +23,19 @@ FUNC (const UNIT *s1, const UNIT *s2)
      When it fails, it sets errno, but also returns a meaningful return value,
      for the sake of callers which ignore errno.  */
   int final_errno = errno;
+  const char *encoding = locale_charset ();
   char *sl1;
   char *sl2;
   int result;
 
-  sl1 = U_STRCONV_TO_LOCALE (s1);
+  /* Pass iconveh_error here, not iconveh_question_mark.  Otherwise the
+     conversion to locale encoding can do transliteration or map some
+     characters to question marks, leading to results that depend on the
+     iconv() implementation and are not obvious.  */
+  sl1 = U_STRCONV_TO_ENCODING (s1, encoding, iconveh_error);
   if (sl1 != NULL)
     {
-      sl2 = U_STRCONV_TO_LOCALE (s2);
+      sl2 = U_STRCONV_TO_ENCODING (s2, encoding, iconveh_error);
       if (sl2 != NULL)
         {
           /* Compare sl1 and sl2.  */
@@ -41,10 +46,10 @@ FUNC (const UNIT *s1, const UNIT *s2)
               /* strcoll succeeded.  */
               free (sl1);
               free (sl2);
-              /* The conversion to locale encoding can do transliteration or
-                 map some characters to question marks.  Therefore sl1 and sl2
-                 may be equal when s1 and s2 were in fact different.  Return a
-                 nonzero result in this case.  */
+              /* The conversion to locale encoding can drop Unicode TAG
+                 characters.  Therefore sl1 and sl2 may be equal when s1
+                 and s2 were in fact different.  Return a nonzero result
+                 in this case.  */
               if (result == 0)
                 result = U_STRCMP (s1, s2);
             }
@@ -68,7 +73,7 @@ FUNC (const UNIT *s1, const UNIT *s2)
   else
     {
       final_errno = errno;
-      sl2 = U_STRCONV_TO_LOCALE (s2);
+      sl2 = U_STRCONV_TO_ENCODING (s2, encoding, iconveh_error);
       if (sl2 != NULL)
         {
           /* s2 could be converted to locale encoding, s1 not.  */
index b059aea..ef6303d 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 77b9550..e03721c 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index a92e1ef..c980d76 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
index a54d614..f7fc775 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine length of UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e5c9a04..083a519 100644 (file)
@@ -1,5 +1,5 @@
 /* Concatenate UTF-8/UTF-16/UTF-32 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 55a4f67..b597a85 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 9bcc3da..428710d 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine bounded length of UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 34aabc5..6feefe9 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index d6669af..c0015d1 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index df32be8..69ef4ec 100644 (file)
@@ -1,6 +1,6 @@
 /* Substring test for UTF-8/UTF-16/UTF-32 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
-   Written by Bruno Haible <bruno@clisp.org>, 2002.
+   Copyright (C) 1999, 2002, 2006, 2010-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2002, 2005.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
@@ -24,26 +24,108 @@ FUNC (const UNIT *haystack, const UNIT *needle)
   if (first == 0)
     return (UNIT *) haystack;
 
-  /* Is needle nearly empty?  */
+  /* Is needle nearly empty (only one unit)?  */
   if (needle[1] == 0)
     return U_STRCHR (haystack, first);
 
-  /* Search for needle's first unit.  */
-  for (; *haystack != 0; haystack++)
-    if (*haystack == first)
+#ifdef U_STRMBTOUC
+  /* Is needle nearly empty (only one character)?  */
+  {
+    ucs4_t first_uc;
+    int count = U_STRMBTOUC (&first_uc, needle);
+    if (count > 0 && needle[count] == 0)
+      return U_STRCHR (haystack, first_uc);
+  }
+#endif
+
+#if UNIT_IS_UINT8_T
+  return (uint8_t *) strstr ((const char *) haystack, (const char *) needle);
+#else
+  {
+    /* Minimizing the worst-case complexity:
+       Let n = U_STRLEN(haystack), m = U_STRLEN(needle).
+       The naïve algorithm is O(n*m) worst-case.
+       The Knuth-Morris-Pratt algorithm is O(n) worst-case but it needs a
+       memory allocation.
+       To achieve linear complexity and yet amortize the cost of the
+       memory allocation, we activate the Knuth-Morris-Pratt algorithm
+       only once the naïve algorithm has already run for some time; more
+       precisely, when
+         - the outer loop count is >= 10,
+         - the average number of comparisons per outer loop is >= 5,
+         - the total number of comparisons is >= m.
+       But we try it only once.  If the memory allocation attempt failed,
+       we don't retry it.  */
+    bool try_kmp = true;
+    size_t outer_loop_count = 0;
+    size_t comparison_count = 0;
+    size_t last_ccount = 0;                  /* last comparison count */
+    const UNIT *needle_last_ccount = needle; /* = needle + last_ccount */
+
+    /* Speed up the following searches of needle by caching its first
+       character.  */
+    UNIT b = *needle++;
+
+    for (;; haystack++)
       {
-        /* Compare with needle's remaining units.  */
-        const UNIT *hptr = haystack + 1;
-        const UNIT *nptr = needle + 1;
-        for (;;)
+        if (*haystack == 0)
+          /* No match.  */
+          return NULL;
+
+        /* See whether it's advisable to use an asymptotically faster
+           algorithm.  */
+        if (try_kmp
+            && outer_loop_count >= 10
+            && comparison_count >= 5 * outer_loop_count)
           {
-            if (*hptr != *nptr)
-              break;
-            hptr++; nptr++;
-            if (*nptr == 0)
-              return (UNIT *) haystack;
+            /* See if needle + comparison_count now reaches the end of
+               needle.  */
+            if (needle_last_ccount != NULL)
+              {
+                needle_last_ccount +=
+                  U_STRNLEN (needle_last_ccount,
+                             comparison_count - last_ccount);
+                if (*needle_last_ccount == 0)
+                  needle_last_ccount = NULL;
+                last_ccount = comparison_count;
+              }
+            if (needle_last_ccount == NULL)
+              {
+                /* Try the Knuth-Morris-Pratt algorithm.  */
+                const UNIT *result;
+                bool success =
+                  knuth_morris_pratt (haystack,
+                                      needle - 1, U_STRLEN (needle - 1),
+                                      &result);
+                if (success)
+                  return (UNIT *) result;
+                try_kmp = false;
+              }
           }
-      }
 
-  return NULL;
+        outer_loop_count++;
+        comparison_count++;
+        if (*haystack == b)
+          /* The first character matches.  */
+          {
+            const UNIT *rhaystack = haystack + 1;
+            const UNIT *rneedle = needle;
+
+            for (;; rhaystack++, rneedle++)
+              {
+                if (*rneedle == 0)
+                  /* Found a match.  */
+                  return (UNIT *) haystack;
+                if (*rhaystack == 0)
+                  /* No match.  */
+                  return NULL;
+                comparison_count++;
+                if (*rhaystack != *rneedle)
+                  /* Nothing in this round.  */
+                  break;
+              }
+          }
+      }
+  }
+#endif
 }
index 7fdef57..074a483 100644 (file)
@@ -1,5 +1,5 @@
 /* Tokenize UTF-8/UTF-16/UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4f18383..419d3a2 100644 (file)
@@ -1,5 +1,5 @@
 /* Check UTF-16 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 13deef4..d9d44d1 100644 (file)
@@ -1,5 +1,5 @@
 /* Search character in piece of UTF-16 string.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
index b71c1c3..e9205de 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare pieces of UTF-16 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 8c2a8d6..8115a48 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare pieces of UTF-16 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 33984f9..5d26883 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 614d24c..f38f463 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 27dcd5a..a2db6f8 100644 (file)
@@ -1,5 +1,5 @@
 /* Substring test for UTF-16 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 9e7a93a..c85b083 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-16 string.
-   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2010 Free Software
+   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2014 Free Software
    Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
index 601d81d..1a2fa06 100644 (file)
@@ -1,5 +1,5 @@
 /* Count characters in UTF-16 string.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
index bee77fc..c166b75 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion UTF-16 to UCS-4.
-   Copyright (C) 2001-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index f2d7225..0104d72 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion UTF-16 to UCS-4.
-   Copyright (C) 2001-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index a5a3638..f28b23d 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-16 string.
-   Copyright (C) 1999-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index 26b6089..119d990 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-16 string.
-   Copyright (C) 1999-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index 00b7b70..4c01d57 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-16 string, returning an error code.
-   Copyright (C) 1999-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index f6efb88..f6c1f23 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 8245f11..fe9409b 100644 (file)
@@ -1,5 +1,5 @@
 /* Iterate over next character in UTF-16 string.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4c902ad..a699f7b 100644 (file)
@@ -1,5 +1,5 @@
 /* Iterate over previous character in UTF-16 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 7bad3d6..2d193b8 100644 (file)
@@ -1,5 +1,5 @@
 /* Fill UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 22a5d5f..4cfab90 100644 (file)
@@ -1,5 +1,5 @@
 /* Substring test for UTF-16 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 59467f7..555f0a0 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-16 string.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
index 49c616e..a7d09a0 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 8b35868..3047ef8 100644 (file)
@@ -1,5 +1,5 @@
 /* Concatenate UTF-16 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 1f8719f..fd0328b 100644 (file)
@@ -1,5 +1,5 @@
 /* Search character in UTF-16 string.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
index b781211..c3b34c9 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare UTF-16 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 5a504bf..06ef0fe 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare UTF-16 strings using the collation rules of the current locale.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -29,5 +29,5 @@
 #define FUNC u16_strcoll
 #define UNIT uint16_t
 #define U_STRCMP u16_strcmp
-#define U_STRCONV_TO_LOCALE u16_strconv_to_locale
+#define U_STRCONV_TO_ENCODING u16_strconv_to_encoding
 #include "u-strcoll.h"
index ecde75d..7f11024 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index b18bb37..b370e26 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4a94451..0f8a85e 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index da613c2..4128c04 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine length of UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index f07ca0b..30bc353 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-16 string.
-   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2010 Free Software
+   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2014 Free Software
    Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
index 9aa5d43..1277277 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-16 string.
-   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2010 Free Software
+   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2014 Free Software
    Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
index 7082716..97039d1 100644 (file)
@@ -1,5 +1,5 @@
 /* Concatenate UTF-16 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 3ed59c3..eed55ba 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare UTF-16 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index bd2eb6f..a1ab7c6 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 49e6d58..86a13ec 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine bounded length of UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 45353fa..18519b7 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 3cf3de2..c56b685 100644 (file)
@@ -1,5 +1,5 @@
 /* Search character in UTF-16 string.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
index ab812eb..c08752f 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 54a74d6..f573a5a 100644 (file)
@@ -1,5 +1,5 @@
 /* Substring test for UTF-16 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2010-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
 /* Specification.  */
 #include "unistr.h"
 
+#include "malloca.h"
+
 /* FIXME: Maybe walking the string via u16_mblen is a win?  */
 
-#define FUNC u16_strstr
 #define UNIT uint16_t
+
+#define CANON_ELEMENT(c) c
+#include "str-kmp.h"
+
+#define FUNC u16_strstr
 #define U_STRCHR u16_strchr
+#define U_STRMBTOUC u16_strmbtouc
+#define U_STRLEN u16_strlen
+#define U_STRNLEN u16_strnlen
 #include "u-strstr.h"
index f84c465..9b0152d 100644 (file)
@@ -1,5 +1,5 @@
 /* Tokenize UTF-16 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 3544cde..2a45562 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert UTF-16 string to UTF-32 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index f92cc93..c73f6cb 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert UTF-16 string to UTF-8 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e2acc9e..9878246 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion UCS-4 to UTF-16.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index cbc1abc..301a5cb 100644 (file)
@@ -1,5 +1,5 @@
 /* Store a character in UTF-16 string.
-   Copyright (C) 2002, 2005-2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005-2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 8c5f518..d2de52f 100644 (file)
@@ -1,5 +1,5 @@
 /* Check UTF-32 string.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 1900288..11362d8 100644 (file)
@@ -1,5 +1,5 @@
 /* Search character in piece of UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 36496f7..1344f3d 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare pieces of UTF-32 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 3247602..49e02c3 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare pieces of UTF-32 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index b9ebefe..910ed65 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 747430b..f2454ba 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index cee0d93..8d9a561 100644 (file)
@@ -1,5 +1,5 @@
 /* Substring test for UTF-32 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4530fe4..023dc6d 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-32 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 0a71293..095acf0 100644 (file)
@@ -1,5 +1,5 @@
 /* Count characters in UTF-32 string.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
index 8dbbfe4..02efca0 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-32 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 05f7c77..0a73ea2 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-32 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 83f7782..3579b28 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-32 string, returning an error code.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 6362d85..1bf9ff7 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 987fb02..d140880 100644 (file)
@@ -1,5 +1,5 @@
 /* Iterate over next character in UTF-32 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index f20b1b7..591f4be 100644 (file)
@@ -1,5 +1,5 @@
 /* Iterate over previous character in UTF-32 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 5c517cd..eaf265f 100644 (file)
@@ -1,5 +1,5 @@
 /* Fill UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 7fcb597..e803439 100644 (file)
@@ -1,5 +1,5 @@
 /* Substring test for UTF-32 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 3cbfa92..888c6bb 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e55891e..e665b70 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4e26bb4..b703401 100644 (file)
@@ -1,5 +1,5 @@
 /* Concatenate UTF-32 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index b5df7b7..2e2bc48 100644 (file)
@@ -1,5 +1,5 @@
 /* Search character in UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 5f336ce..44f4f72 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare UTF-32 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 9748855..7d75677 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare UTF-32 strings using the collation rules of the current locale.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -29,5 +29,5 @@
 #define FUNC u32_strcoll
 #define UNIT uint32_t
 #define U_STRCMP u32_strcmp
-#define U_STRCONV_TO_LOCALE u32_strconv_to_locale
+#define U_STRCONV_TO_ENCODING u32_strconv_to_encoding
 #include "u-strcoll.h"
index f3c70e6..da2ac1a 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 595d32e..a893584 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index da4cc5a..404cc20 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 95d32ab..f62e8b3 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine length of UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 54b78d7..f350224 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-32 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4c067b9..ded8ad1 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-32 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index c9260b0..5e975b0 100644 (file)
@@ -1,5 +1,5 @@
 /* Concatenate UTF-32 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index dcbb935..c7a36ac 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare UTF-32 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 9a54f97..9678162 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 8102ac7..2c58657 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine bounded length of UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 2c4b6bc..dd0762d 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index f0030e5..9554e10 100644 (file)
@@ -1,5 +1,5 @@
 /* Search character in UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e2571d5..78657e6 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index cad06fc..0e3eae4 100644 (file)
@@ -1,5 +1,5 @@
 /* Substring test for UTF-32 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
 /* Specification.  */
 #include "unistr.h"
 
-#define FUNC u32_strstr
+#include "malloca.h"
+
 #define UNIT uint32_t
+
+#define CANON_ELEMENT(c) c
+#include "str-kmp.h"
+
+#define FUNC u32_strstr
 #define U_STRCHR u32_strchr
+#define U_STRLEN u32_strlen
+#define U_STRNLEN u32_strnlen
 #include "u-strstr.h"
index 067122f..cabb22e 100644 (file)
@@ -1,5 +1,5 @@
 /* Tokenize UTF-32 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index be32770..5bb4991 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert UTF-32 string to UTF-16 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 36710d3..eeb389e 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert UTF-32 string to UTF-8 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 3ac58b4..4e61bad 100644 (file)
@@ -1,5 +1,5 @@
 /* Store a character in UTF-32 string.
-   Copyright (C) 2002, 2005-2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005-2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 368042b..a418e47 100644 (file)
@@ -1,5 +1,5 @@
 /* Check UTF-8 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
@@ -27,7 +27,7 @@ u8_check (const uint8_t *s, size_t n)
 
   while (s < s_end)
     {
-      /* Keep in sync with unistr.h and utf8-ucs4.c.  */
+      /* Keep in sync with unistr.h and u8-mbtouc-aux.c.  */
       uint8_t c = *s;
 
       if (c < 0x80)
index 435d1be..8b88538 100644 (file)
@@ -1,5 +1,5 @@
 /* Search character in piece of UTF-8 string.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
 /* Specification.  */
 #include "unistr.h"
 
+#include <string.h>
+
 uint8_t *
 u8_chr (const uint8_t *s, size_t n, ucs4_t uc)
 {
-  uint8_t c[6];
-
   if (uc < 0x80)
     {
       uint8_t c0 = uc;
 
-      for (; n > 0; s++, n--)
-        {
-          if (*s == c0)
-            return (uint8_t *) s;
-        }
+      return (uint8_t *) memchr ((const char *) s, c0, n);
     }
-  else
-    switch (u8_uctomb_aux (c, uc, 6))
+
+  {
+    uint8_t c[6];
+    size_t uc_size;
+    uc_size = u8_uctomb_aux (c, uc, 6);
+
+    if (n < uc_size)
+      return NULL;
+
+    /* For multibyte character matching we use a Boyer-Moore like
+       algorithm that searches for the last byte, skipping multi-byte
+       jumps, and matches back from there.
+
+       Instead of using a table as is usual for Boyer-Moore, we compare
+       the candidate last byte s[UC_SIZE-1] with each of the possible
+       bytes in the UTF-8 representation of UC.  If the final byte does
+       not match, we will perform up to UC_SIZE comparisons per memory
+       load---but each comparison lets us skip one byte in the input!
+
+       If the final byte matches, the "real" Boyer-Moore algorithm
+       is approximated.  Instead, u8_chr just looks for other cN that
+       are equal to the final byte and uses those to try realigning to
+       another possible match.  For example, when searching for 0xF0
+       0xAA 0xBB 0xAA it will always skip forward by two bytes, even if
+       the character in the string was for example 0xF1 0xAA 0xBB 0xAA.
+       The advantage of this scheme is that the skip count after a failed
+       match can be computed outside the loop, and that it keeps the
+       complexity low for a pretty rare case.  In particular, since c[0]
+       is never between 0x80 and 0xBF, c[0] is never equal to c[UC_SIZE-1]
+       and this is optimal for two-byte UTF-8 characters.  */
+    switch (uc_size)
       {
       case 2:
-        if (n > 1)
-          {
-            uint8_t c0 = c[0];
-            uint8_t c1 = c[1];
-
-            for (n--; n > 0; s++, n--)
-              {
-                if (*s == c0 && s[1] == c1)
-                  return (uint8_t *) s;
-              }
-          }
-        break;
+        {
+          uint8_t c0 = c[0];
+          uint8_t c1 = c[1];
+          const uint8_t *end = s + n - 1;
+
+          do
+            {
+              /* Here s < end.
+                 Test whether s[0..1] == { c0, c1 }.  */
+              uint8_t s1 = s[1];
+              if (s1 == c1)
+                {
+                  if (*s == c0)
+                    return (uint8_t *) s;
+                  else
+                    /* Skip the search at s + 1, because s[1] = c1 < c0.  */
+                    s += 2;
+                }
+              else
+                {
+                  if (s1 == c0)
+                    s++;
+                  else
+                    /* Skip the search at s + 1, because s[1] != c0.  */
+                    s += 2;
+                }
+            }
+          while (s < end);
+          break;
+        }
 
       case 3:
-        if (n > 2)
-          {
-            uint8_t c0 = c[0];
-            uint8_t c1 = c[1];
-            uint8_t c2 = c[2];
-
-            for (n -= 2; n > 0; s++, n--)
-              {
-                if (*s == c0 && s[1] == c1 && s[2] == c2)
-                  return (uint8_t *) s;
-              }
-          }
-        break;
+        {
+          uint8_t c0 = c[0];
+          uint8_t c1 = c[1];
+          uint8_t c2 = c[2];
+          const uint8_t *end = s + n - 2;
+          size_t skip;
+
+          if (c2 == c1)
+            skip = 1;
+          else
+            skip = 3;
+
+          do
+            {
+              /* Here s < end.
+                 Test whether s[0..2] == { c0, c1, c2 }.  */
+              uint8_t s2 = s[2];
+              if (s2 == c2)
+                {
+                  if (s[1] == c1 && *s == c0)
+                    return (uint8_t *) s;
+                  else
+                    /* If c2 != c1:
+                         Skip the search at s + 1, because s[2] == c2 != c1.
+                       Skip the search at s + 2, because s[2] == c2 < c0.  */
+                    s += skip;
+                }
+              else
+                {
+                  if (s2 == c1)
+                    s++;
+                  else if (s2 == c0)
+                    /* Skip the search at s + 1, because s[2] != c1.  */
+                    s += 2;
+                  else
+                    /* Skip the search at s + 1, because s[2] != c1.
+                       Skip the search at s + 2, because s[2] != c0.  */
+                    s += 3;
+                }
+            }
+          while (s < end);
+          break;
+        }
 
       case 4:
-        if (n > 3)
-          {
-            uint8_t c0 = c[0];
-            uint8_t c1 = c[1];
-            uint8_t c2 = c[2];
-            uint8_t c3 = c[3];
-
-            for (n -= 3; n > 0; s++, n--)
-              {
-                if (*s == c0 && s[1] == c1 && s[2] == c2 && s[3] == c3)
-                  return (uint8_t *) s;
-              }
-          }
-        break;
+        {
+          uint8_t c0 = c[0];
+          uint8_t c1 = c[1];
+          uint8_t c2 = c[2];
+          uint8_t c3 = c[3];
+          const uint8_t *end = s + n - 3;
+          size_t skip;
+
+          if (c3 == c2)
+            skip = 1;
+          else if (c3 == c1)
+            skip = 2;
+          else
+            skip = 4;
+
+          do
+            {
+              /* Here s < end.
+                 Test whether s[0..3] == { c0, c1, c2, c3 }.  */
+              uint8_t s3 = s[3];
+              if (s3 == c3)
+                {
+                  if (s[2] == c2 && s[1] == c1 && *s == c0)
+                    return (uint8_t *) s;
+                  else
+                    /* If c3 != c2:
+                         Skip the search at s + 1, because s[3] == c3 != c2.
+                       If c3 != c1:
+                         Skip the search at s + 2, because s[3] == c3 != c1.
+                       Skip the search at s + 3, because s[3] == c3 < c0.  */
+                    s += skip;
+                }
+              else
+                {
+                  if (s3 == c2)
+                    s++;
+                  else if (s3 == c1)
+                    /* Skip the search at s + 1, because s[3] != c2.  */
+                    s += 2;
+                  else if (s3 == c0)
+                    /* Skip the search at s + 1, because s[3] != c2.
+                       Skip the search at s + 2, because s[3] != c1.  */
+                    s += 3;
+                  else
+                    /* Skip the search at s + 1, because s[3] != c2.
+                       Skip the search at s + 2, because s[3] != c1.
+                       Skip the search at s + 3, because s[3] != c0.  */
+                    s += 4;
+                }
+            }
+          while (s < end);
+          break;
+        }
       }
-  return NULL;
+    return NULL;
+  }
 }
index d021b1a..d591d01 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare pieces of UTF-8 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 8a97db4..8df93d9 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare pieces of UTF-8 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 1884516..8c70b06 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-8 string.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 2f29200..a649083 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-8 string.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 833b3e1..fae140a 100644 (file)
@@ -1,5 +1,5 @@
 /* Substring test for UTF-8 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index f6a2027..5f8005b 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-8 string.
-   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2010 Free Software
+   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2014 Free Software
    Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
@@ -26,7 +26,7 @@ u8_mblen (const uint8_t *s, size_t n)
 {
   if (n > 0)
     {
-      /* Keep in sync with unistr.h and utf8-ucs4.c.  */
+      /* Keep in sync with unistr.h and u8-mbtouc-aux.c.  */
       uint8_t c = *s;
 
       if (c < 0x80)
index 9ddc42e..e21ae32 100644 (file)
@@ -1,5 +1,5 @@
 /* Count characters in UTF-8 string.
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify it
@@ -33,7 +33,9 @@ u8_mbsnlen (const uint8_t *s, size_t n)
       characters++;
       if (count == -2)
         break;
-      if (count <= 0)
+      if (count < 0)
+        count = u8_mbtouc (&uc, s, n);
+      else if (count == 0)
         count = 1;
       s += count;
       n -= count;
index c997589..02cdacd 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion UTF-8 to UCS-4.
-   Copyright (C) 2001-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
@@ -45,21 +45,32 @@ u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n)
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              return 1;
             }
         }
       else if (c < 0xf0)
         {
           if (n >= 3)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (c >= 0xe1 || s[1] >= 0xa0)
-                  && (c != 0xed || s[1] < 0xa0))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x0f) << 12)
-                         | ((unsigned int) (s[1] ^ 0x80) << 6)
-                         | (unsigned int) (s[2] ^ 0x80);
-                  return 3;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((c >= 0xe1 || s[1] >= 0xa0)
+                          && (c != 0xed || s[1] < 0xa0))
+                        {
+                          *puc = ((unsigned int) (c & 0x0f) << 12)
+                                 | ((unsigned int) (s[1] ^ 0x80) << 6)
+                                 | (unsigned int) (s[2] ^ 0x80);
+                          return 3;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -67,26 +78,45 @@ u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n)
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else
+                return 2;
             }
         }
       else if (c < 0xf8)
         {
           if (n >= 4)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40
-                  && (c >= 0xf1 || s[1] >= 0x90)
+              if ((s[1] ^ 0x80) < 0x40)
+                {
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((c >= 0xf1 || s[1] >= 0x90)
 #if 1
-                  && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+                              && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
 #endif
-                 )
-                {
-                  *puc = ((unsigned int) (c & 0x07) << 18)
-                         | ((unsigned int) (s[1] ^ 0x80) << 12)
-                         | ((unsigned int) (s[2] ^ 0x80) << 6)
-                         | (unsigned int) (s[3] ^ 0x80);
-                  return 4;
+                             )
+                            {
+                              *puc = ((unsigned int) (c & 0x07) << 18)
+                                     | ((unsigned int) (s[1] ^ 0x80) << 12)
+                                     | ((unsigned int) (s[2] ^ 0x80) << 6)
+                                     | (unsigned int) (s[3] ^ 0x80);
+                              return 4;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -94,7 +124,12 @@ u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n)
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
+                return 2;
+              else
+                return 3;
             }
         }
 #if 0
@@ -102,16 +137,37 @@ u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n)
         {
           if (n >= 5)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (c >= 0xf9 || s[1] >= 0x88))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x03) << 24)
-                         | ((unsigned int) (s[1] ^ 0x80) << 18)
-                         | ((unsigned int) (s[2] ^ 0x80) << 12)
-                         | ((unsigned int) (s[3] ^ 0x80) << 6)
-                         | (unsigned int) (s[4] ^ 0x80);
-                  return 5;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if (c >= 0xf9 || s[1] >= 0x88)
+                                {
+                                  *puc = ((unsigned int) (c & 0x03) << 24)
+                                         | ((unsigned int) (s[1] ^ 0x80) << 18)
+                                         | ((unsigned int) (s[2] ^ 0x80) << 12)
+                                         | ((unsigned int) (s[3] ^ 0x80) << 6)
+                                         | (unsigned int) (s[4] ^ 0x80);
+                                  return 5;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -126,18 +182,44 @@ u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n)
         {
           if (n >= 6)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (s[5] ^ 0x80) < 0x40
-                  && (c >= 0xfd || s[1] >= 0x84))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x01) << 30)
-                         | ((unsigned int) (s[1] ^ 0x80) << 24)
-                         | ((unsigned int) (s[2] ^ 0x80) << 18)
-                         | ((unsigned int) (s[3] ^ 0x80) << 12)
-                         | ((unsigned int) (s[4] ^ 0x80) << 6)
-                         | (unsigned int) (s[5] ^ 0x80);
-                  return 6;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if ((s[5] ^ 0x80) < 0x40)
+                                {
+                                  if (c >= 0xfd || s[1] >= 0x84)
+                                    {
+                                      *puc = ((unsigned int) (c & 0x01) << 30)
+                                             | ((unsigned int) (s[1] ^ 0x80) << 24)
+                                             | ((unsigned int) (s[2] ^ 0x80) << 18)
+                                             | ((unsigned int) (s[3] ^ 0x80) << 12)
+                                             | ((unsigned int) (s[4] ^ 0x80) << 6)
+                                             | (unsigned int) (s[5] ^ 0x80);
+                                      return 6;
+                                    }
+                                  /* invalid multibyte character */
+                                  *puc = 0xfffd;
+                                  return 6;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
             }
index 47590e3..bfa96f4 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion UTF-8 to UCS-4.
-   Copyright (C) 2001-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
@@ -41,13 +41,15 @@ u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n)
                          | (unsigned int) (s[1] ^ 0x80);
                   return 2;
                 }
+#if CONFIG_UNICODE_SAFETY
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              return 1;
             }
         }
       else if (c < 0xf0)
@@ -55,23 +57,39 @@ u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n)
           if (n >= 3)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (c >= 0xe1 || s[1] >= 0xa0)
-                  && (c != 0xed || s[1] < 0xa0))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x0f) << 12)
-                         | ((unsigned int) (s[1] ^ 0x80) << 6)
-                         | (unsigned int) (s[2] ^ 0x80);
-                  return 3;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((c >= 0xe1 || s[1] >= 0xa0)
+                          && (c != 0xed || s[1] < 0xa0))
+#endif
+                        {
+                          *puc = ((unsigned int) (c & 0x0f) << 12)
+                                 | ((unsigned int) (s[1] ^ 0x80) << 6)
+                                 | (unsigned int) (s[2] ^ 0x80);
+                          return 3;
+                        }
+#if CONFIG_UNICODE_SAFETY
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else
+                return 2;
             }
         }
       else if (c < 0xf8)
@@ -79,28 +97,51 @@ u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n)
           if (n >= 4)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40
-                  && (c >= 0xf1 || s[1] >= 0x90)
+              if ((s[1] ^ 0x80) < 0x40)
+                {
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((c >= 0xf1 || s[1] >= 0x90)
 #if 1
-                  && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+                              && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
 #endif
-                 )
+                             )
 #endif
-                {
-                  *puc = ((unsigned int) (c & 0x07) << 18)
-                         | ((unsigned int) (s[1] ^ 0x80) << 12)
-                         | ((unsigned int) (s[2] ^ 0x80) << 6)
-                         | (unsigned int) (s[3] ^ 0x80);
-                  return 4;
+                            {
+                              *puc = ((unsigned int) (c & 0x07) << 18)
+                                     | ((unsigned int) (s[1] ^ 0x80) << 12)
+                                     | ((unsigned int) (s[2] ^ 0x80) << 6)
+                                     | (unsigned int) (s[3] ^ 0x80);
+                              return 4;
+                            }
+#if CONFIG_UNICODE_SAFETY
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
+                return 2;
+              else
+                return 3;
             }
         }
 #if 0
@@ -109,19 +150,42 @@ u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n)
           if (n >= 5)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (c >= 0xf9 || s[1] >= 0x88))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x03) << 24)
-                         | ((unsigned int) (s[1] ^ 0x80) << 18)
-                         | ((unsigned int) (s[2] ^ 0x80) << 12)
-                         | ((unsigned int) (s[3] ^ 0x80) << 6)
-                         | (unsigned int) (s[4] ^ 0x80);
-                  return 5;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if (c >= 0xf9 || s[1] >= 0x88)
+#endif
+                                {
+                                  *puc = ((unsigned int) (c & 0x03) << 24)
+                                         | ((unsigned int) (s[1] ^ 0x80) << 18)
+                                         | ((unsigned int) (s[2] ^ 0x80) << 12)
+                                         | ((unsigned int) (s[3] ^ 0x80) << 6)
+                                         | (unsigned int) (s[4] ^ 0x80);
+                                  return 5;
+                                }
+#if CONFIG_UNICODE_SAFETY
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
@@ -135,21 +199,49 @@ u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n)
           if (n >= 6)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (s[5] ^ 0x80) < 0x40
-                  && (c >= 0xfd || s[1] >= 0x84))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x01) << 30)
-                         | ((unsigned int) (s[1] ^ 0x80) << 24)
-                         | ((unsigned int) (s[2] ^ 0x80) << 18)
-                         | ((unsigned int) (s[3] ^ 0x80) << 12)
-                         | ((unsigned int) (s[4] ^ 0x80) << 6)
-                         | (unsigned int) (s[5] ^ 0x80);
-                  return 6;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if ((s[5] ^ 0x80) < 0x40)
+                                {
+                                  if (c >= 0xfd || s[1] >= 0x84)
+#endif
+                                    {
+                                      *puc = ((unsigned int) (c & 0x01) << 30)
+                                             | ((unsigned int) (s[1] ^ 0x80) << 24)
+                                             | ((unsigned int) (s[2] ^ 0x80) << 18)
+                                             | ((unsigned int) (s[3] ^ 0x80) << 12)
+                                             | ((unsigned int) (s[4] ^ 0x80) << 6)
+                                             | (unsigned int) (s[5] ^ 0x80);
+                                      return 6;
+                                    }
+#if CONFIG_UNICODE_SAFETY
+                                  /* invalid multibyte character */
+                                  *puc = 0xfffd;
+                                  return 6;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
index 41583f9..9c2095b 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-8 string.
-   Copyright (C) 1999-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
@@ -52,13 +52,15 @@ u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
                          | (unsigned int) (s[1] ^ 0x80);
                   return 2;
                 }
+#if CONFIG_UNICODE_SAFETY
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              return 1;
             }
         }
       else if (c < 0xf0)
@@ -66,23 +68,39 @@ u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
           if (n >= 3)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (c >= 0xe1 || s[1] >= 0xa0)
-                  && (c != 0xed || s[1] < 0xa0))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x0f) << 12)
-                         | ((unsigned int) (s[1] ^ 0x80) << 6)
-                         | (unsigned int) (s[2] ^ 0x80);
-                  return 3;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((c >= 0xe1 || s[1] >= 0xa0)
+                          && (c != 0xed || s[1] < 0xa0))
+#endif
+                        {
+                          *puc = ((unsigned int) (c & 0x0f) << 12)
+                                 | ((unsigned int) (s[1] ^ 0x80) << 6)
+                                 | (unsigned int) (s[2] ^ 0x80);
+                          return 3;
+                        }
+#if CONFIG_UNICODE_SAFETY
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else
+                return 2;
             }
         }
       else if (c < 0xf8)
@@ -90,28 +108,51 @@ u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
           if (n >= 4)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40
-                  && (c >= 0xf1 || s[1] >= 0x90)
+              if ((s[1] ^ 0x80) < 0x40)
+                {
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((c >= 0xf1 || s[1] >= 0x90)
 #if 1
-                  && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+                              && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
 #endif
-                 )
+                             )
 #endif
-                {
-                  *puc = ((unsigned int) (c & 0x07) << 18)
-                         | ((unsigned int) (s[1] ^ 0x80) << 12)
-                         | ((unsigned int) (s[2] ^ 0x80) << 6)
-                         | (unsigned int) (s[3] ^ 0x80);
-                  return 4;
+                            {
+                              *puc = ((unsigned int) (c & 0x07) << 18)
+                                     | ((unsigned int) (s[1] ^ 0x80) << 12)
+                                     | ((unsigned int) (s[2] ^ 0x80) << 6)
+                                     | (unsigned int) (s[3] ^ 0x80);
+                              return 4;
+                            }
+#if CONFIG_UNICODE_SAFETY
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
+                return 2;
+              else
+                return 3;
             }
         }
 #if 0
@@ -120,19 +161,42 @@ u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
           if (n >= 5)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (c >= 0xf9 || s[1] >= 0x88))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x03) << 24)
-                         | ((unsigned int) (s[1] ^ 0x80) << 18)
-                         | ((unsigned int) (s[2] ^ 0x80) << 12)
-                         | ((unsigned int) (s[3] ^ 0x80) << 6)
-                         | (unsigned int) (s[4] ^ 0x80);
-                  return 5;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if (c >= 0xf9 || s[1] >= 0x88)
+#endif
+                                {
+                                  *puc = ((unsigned int) (c & 0x03) << 24)
+                                         | ((unsigned int) (s[1] ^ 0x80) << 18)
+                                         | ((unsigned int) (s[2] ^ 0x80) << 12)
+                                         | ((unsigned int) (s[3] ^ 0x80) << 6)
+                                         | (unsigned int) (s[4] ^ 0x80);
+                                  return 5;
+                                }
+#if CONFIG_UNICODE_SAFETY
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
@@ -146,21 +210,49 @@ u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
           if (n >= 6)
             {
 #if CONFIG_UNICODE_SAFETY
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (s[5] ^ 0x80) < 0x40
-                  && (c >= 0xfd || s[1] >= 0x84))
-#endif
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x01) << 30)
-                         | ((unsigned int) (s[1] ^ 0x80) << 24)
-                         | ((unsigned int) (s[2] ^ 0x80) << 18)
-                         | ((unsigned int) (s[3] ^ 0x80) << 12)
-                         | ((unsigned int) (s[4] ^ 0x80) << 6)
-                         | (unsigned int) (s[5] ^ 0x80);
-                  return 6;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if ((s[5] ^ 0x80) < 0x40)
+                                {
+                                  if (c >= 0xfd || s[1] >= 0x84)
+#endif
+                                    {
+                                      *puc = ((unsigned int) (c & 0x01) << 30)
+                                             | ((unsigned int) (s[1] ^ 0x80) << 24)
+                                             | ((unsigned int) (s[2] ^ 0x80) << 18)
+                                             | ((unsigned int) (s[3] ^ 0x80) << 12)
+                                             | ((unsigned int) (s[4] ^ 0x80) << 6)
+                                             | (unsigned int) (s[5] ^ 0x80);
+                                      return 6;
+                                    }
+#if CONFIG_UNICODE_SAFETY
+                                  /* invalid multibyte character */
+                                  *puc = 0xfffd;
+                                  return 6;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
+#endif
             }
           else
             {
index 96cd5b7..2b389de 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-8 string.
-   Copyright (C) 1999-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
@@ -55,21 +55,32 @@ u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              return 1;
             }
         }
       else if (c < 0xf0)
         {
           if (n >= 3)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (c >= 0xe1 || s[1] >= 0xa0)
-                  && (c != 0xed || s[1] < 0xa0))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x0f) << 12)
-                         | ((unsigned int) (s[1] ^ 0x80) << 6)
-                         | (unsigned int) (s[2] ^ 0x80);
-                  return 3;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((c >= 0xe1 || s[1] >= 0xa0)
+                          && (c != 0xed || s[1] < 0xa0))
+                        {
+                          *puc = ((unsigned int) (c & 0x0f) << 12)
+                                 | ((unsigned int) (s[1] ^ 0x80) << 6)
+                                 | (unsigned int) (s[2] ^ 0x80);
+                          return 3;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -77,26 +88,45 @@ u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else
+                return 2;
             }
         }
       else if (c < 0xf8)
         {
           if (n >= 4)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40
-                  && (c >= 0xf1 || s[1] >= 0x90)
+              if ((s[1] ^ 0x80) < 0x40)
+                {
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((c >= 0xf1 || s[1] >= 0x90)
 #if 1
-                  && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+                              && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
 #endif
-                 )
-                {
-                  *puc = ((unsigned int) (c & 0x07) << 18)
-                         | ((unsigned int) (s[1] ^ 0x80) << 12)
-                         | ((unsigned int) (s[2] ^ 0x80) << 6)
-                         | (unsigned int) (s[3] ^ 0x80);
-                  return 4;
+                             )
+                            {
+                              *puc = ((unsigned int) (c & 0x07) << 18)
+                                     | ((unsigned int) (s[1] ^ 0x80) << 12)
+                                     | ((unsigned int) (s[2] ^ 0x80) << 6)
+                                     | (unsigned int) (s[3] ^ 0x80);
+                              return 4;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  *puc = 0xfffd;
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -104,7 +134,12 @@ u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
             {
               /* incomplete multibyte character */
               *puc = 0xfffd;
-              return n;
+              if (n == 1 || (s[1] ^ 0x80) >= 0x40)
+                return 1;
+              else if (n == 2 || (s[2] ^ 0x80) >= 0x40)
+                return 2;
+              else
+                return 3;
             }
         }
 #if 0
@@ -112,16 +147,37 @@ u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
         {
           if (n >= 5)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (c >= 0xf9 || s[1] >= 0x88))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x03) << 24)
-                         | ((unsigned int) (s[1] ^ 0x80) << 18)
-                         | ((unsigned int) (s[2] ^ 0x80) << 12)
-                         | ((unsigned int) (s[3] ^ 0x80) << 6)
-                         | (unsigned int) (s[4] ^ 0x80);
-                  return 5;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if (c >= 0xf9 || s[1] >= 0x88)
+                                {
+                                  *puc = ((unsigned int) (c & 0x03) << 24)
+                                         | ((unsigned int) (s[1] ^ 0x80) << 18)
+                                         | ((unsigned int) (s[2] ^ 0x80) << 12)
+                                         | ((unsigned int) (s[3] ^ 0x80) << 6)
+                                         | (unsigned int) (s[4] ^ 0x80);
+                                  return 5;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
             }
@@ -136,18 +192,44 @@ u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
         {
           if (n >= 6)
             {
-              if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
-                  && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
-                  && (s[5] ^ 0x80) < 0x40
-                  && (c >= 0xfd || s[1] >= 0x84))
+              if ((s[1] ^ 0x80) < 0x40)
                 {
-                  *puc = ((unsigned int) (c & 0x01) << 30)
-                         | ((unsigned int) (s[1] ^ 0x80) << 24)
-                         | ((unsigned int) (s[2] ^ 0x80) << 18)
-                         | ((unsigned int) (s[3] ^ 0x80) << 12)
-                         | ((unsigned int) (s[4] ^ 0x80) << 6)
-                         | (unsigned int) (s[5] ^ 0x80);
-                  return 6;
+                  if ((s[2] ^ 0x80) < 0x40)
+                    {
+                      if ((s[3] ^ 0x80) < 0x40)
+                        {
+                          if ((s[4] ^ 0x80) < 0x40)
+                            {
+                              if ((s[5] ^ 0x80) < 0x40)
+                                {
+                                  if (c >= 0xfd || s[1] >= 0x84)
+                                    {
+                                      *puc = ((unsigned int) (c & 0x01) << 30)
+                                             | ((unsigned int) (s[1] ^ 0x80) << 24)
+                                             | ((unsigned int) (s[2] ^ 0x80) << 18)
+                                             | ((unsigned int) (s[3] ^ 0x80) << 12)
+                                             | ((unsigned int) (s[4] ^ 0x80) << 6)
+                                             | (unsigned int) (s[5] ^ 0x80);
+                                      return 6;
+                                    }
+                                  /* invalid multibyte character */
+                                  *puc = 0xfffd;
+                                  return 6;
+                                }
+                              /* invalid multibyte character */
+                              *puc = 0xfffd;
+                              return 5;
+                            }
+                          /* invalid multibyte character */
+                          *puc = 0xfffd;
+                          return 4;
+                        }
+                      /* invalid multibyte character */
+                      *puc = 0xfffd;
+                      return 3;
+                    }
+                  /* invalid multibyte character */
+                  return 2;
                 }
               /* invalid multibyte character */
             }
index a749c48..3a75a41 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-8 string, returning an error code.
-   Copyright (C) 1999-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index 5c48411..a419089 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy piece of UTF-8 string.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 34249aa..d114ffe 100644 (file)
@@ -1,5 +1,5 @@
 /* Iterate over next character in UTF-8 string.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 97a27f5..b2c2b9b 100644 (file)
@@ -1,5 +1,5 @@
 /* Iterate over previous character in UTF-8 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 const uint8_t *
 u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start)
 {
-  /* Keep in sync with unistr.h and utf8-ucs4.c.  */
+  /* Keep in sync with unistr.h and u8-mbtouc-aux.c.  */
   if (s != start)
     {
       uint8_t c_1 = s[-1];
index 3cca23b..b781479 100644 (file)
@@ -1,5 +1,5 @@
 /* Fill UTF-8 string.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4cc436a..cc73780 100644 (file)
@@ -1,5 +1,5 @@
 /* Substring test for UTF-8 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 0faba41..673a84e 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-8 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index a456bea..1d5e888 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-8 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
 /* Specification.  */
 #include "unistr.h"
 
-#if __GLIBC__ >= 2
+#if __GLIBC__ >= 2 && !defined __UCLIBC__
 
 # include <string.h>
 
index 2b54bad..f1611b5 100644 (file)
@@ -1,5 +1,5 @@
 /* Concatenate UTF-8 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 3be14c7..8e19c5f 100644 (file)
@@ -1,5 +1,5 @@
 /* Search character in UTF-8 string.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
@@ -21,6 +21,8 @@
 /* Specification.  */
 #include "unistr.h"
 
+#include <string.h>
+
 uint8_t *
 u8_strchr (const uint8_t *s, ucs4_t uc)
 {
@@ -30,72 +32,209 @@ u8_strchr (const uint8_t *s, ucs4_t uc)
     {
       uint8_t c0 = uc;
 
-      for (;; s++)
+      if (false)
+        {
+          /* Unoptimized code.  */
+          for (;;)
+            {
+              uint8_t s0 = *s;
+              if (s0 == c0)
+                return (uint8_t *) s;
+              s++;
+              if (s0 == 0)
+                break;
+            }
+        }
+      else
         {
-          if (*s == c0)
-            break;
-          if (*s == 0)
-            goto notfound;
+          /* Optimized code.
+             strchr() is often so well optimized, that it's worth the
+             added function call.  */
+          return (uint8_t *) strchr ((const char *) s, c0);
         }
-      return (uint8_t *) s;
     }
   else
+      /* Loops equivalent to strstr, optimized for a specific length (2, 3, 4)
+         of the needle.  We use an algorithm similar to Boyer-Moore which
+         is documented in lib/unistr/u8-chr.c.  There is additional
+         complication because we need to check after every byte for
+         a NUL byte, but the idea is the same. */
     switch (u8_uctomb_aux (c, uc, 6))
       {
       case 2:
-        if (*s == 0)
-          goto notfound;
+        if (*s == 0 || s[1] == 0)
+          break;
         {
           uint8_t c0 = c[0];
           uint8_t c1 = c[1];
+          /* Search for { c0, c1 }.  */
+          uint8_t s1 = s[1];
 
-          for (;; s++)
+          for (;;)
             {
+              /* Here s[0] != 0, s[1] != 0.
+                 Test whether s[0..1] == { c0, c1 }.  */
+              if (s1 == c1)
+                {
+                  if (*s == c0)
+                    return (uint8_t *) s;
+                  else
+                    /* Skip the search at s + 1, because s[1] = c1 < c0.  */
+                    goto case2_skip2;
+                }
+              else
+                {
+                  if (s1 == c0)
+                    goto case2_skip1;
+                  else
+                    /* Skip the search at s + 1, because s[1] != c0.  */
+                    goto case2_skip2;
+                }
+             case2_skip2:
+              s++;
+              s1 = s[1];
+              if (s[1] == 0)
+                break;
+             case2_skip1:
+              s++;
+              s1 = s[1];
               if (s[1] == 0)
-                goto notfound;
-              if (*s == c0 && s[1] == c1)
                 break;
             }
-          return (uint8_t *) s;
         }
+        break;
 
       case 3:
-        if (*s == 0 || s[1] == 0)
-          goto notfound;
+        if (*s == 0 || s[1] == 0 || s[2] == 0)
+          break;
         {
           uint8_t c0 = c[0];
           uint8_t c1 = c[1];
           uint8_t c2 = c[2];
+          /* Search for { c0, c1, c2 }.  */
+          uint8_t s2 = s[2];
 
-          for (;; s++)
+          for (;;)
             {
+              /* Here s[0] != 0, s[1] != 0, s[2] != 0.
+                 Test whether s[0..2] == { c0, c1, c2 }.  */
+              if (s2 == c2)
+                {
+                  if (s[1] == c1 && *s == c0)
+                    return (uint8_t *) s;
+                  else
+                    /* If c2 != c1:
+                         Skip the search at s + 1, because s[2] == c2 != c1.
+                       Skip the search at s + 2, because s[2] == c2 < c0.  */
+                    if (c2 == c1)
+                      goto case3_skip1;
+                    else
+                      goto case3_skip3;
+                }
+              else
+                {
+                  if (s2 == c1)
+                    goto case3_skip1;
+                  else if (s2 == c0)
+                    /* Skip the search at s + 1, because s[2] != c1.  */
+                    goto case3_skip2;
+                  else
+                    /* Skip the search at s + 1, because s[2] != c1.
+                       Skip the search at s + 2, because s[2] != c0.  */
+                    goto case3_skip3;
+                }
+             case3_skip3:
+              s++;
+              s2 = s[2];
+              if (s[2] == 0)
+                break;
+             case3_skip2:
+              s++;
+              s2 = s[2];
+              if (s[2] == 0)
+                break;
+             case3_skip1:
+              s++;
+              s2 = s[2];
               if (s[2] == 0)
-                goto notfound;
-              if (*s == c0 && s[1] == c1 && s[2] == c2)
                 break;
             }
-          return (uint8_t *) s;
         }
+        break;
 
       case 4:
-        if (*s == 0 || s[1] == 0 || s[2] == 0)
-          goto notfound;
+        if (*s == 0 || s[1] == 0 || s[2] == 0 || s[3] == 0)
+          break;
         {
           uint8_t c0 = c[0];
           uint8_t c1 = c[1];
           uint8_t c2 = c[2];
           uint8_t c3 = c[3];
+          /* Search for { c0, c1, c2, c3 }.  */
+          uint8_t s3 = s[3];
 
-          for (;; s++)
+          for (;;)
             {
+              /* Here s[0] != 0, s[1] != 0, s[2] != 0, s[3] != 0.
+                 Test whether s[0..3] == { c0, c1, c2, c3 }.  */
+              if (s3 == c3)
+                {
+                  if (s[2] == c2 && s[1] == c1 && *s == c0)
+                    return (uint8_t *) s;
+                  else
+                    /* If c3 != c2:
+                         Skip the search at s + 1, because s[3] == c3 != c2.
+                       If c3 != c1:
+                         Skip the search at s + 2, because s[3] == c3 != c1.
+                       Skip the search at s + 3, because s[3] == c3 < c0.  */
+                    if (c3 == c2)
+                      goto case4_skip1;
+                    else if (c3 == c1)
+                      goto case4_skip2;
+                    else
+                      goto case4_skip4;
+                }
+              else
+                {
+                  if (s3 == c2)
+                    goto case4_skip1;
+                  else if (s3 == c1)
+                    /* Skip the search at s + 1, because s[3] != c2.  */
+                    goto case4_skip2;
+                  else if (s3 == c0)
+                    /* Skip the search at s + 1, because s[3] != c2.
+                       Skip the search at s + 2, because s[3] != c1.  */
+                    goto case4_skip3;
+                  else
+                    /* Skip the search at s + 1, because s[3] != c2.
+                       Skip the search at s + 2, because s[3] != c1.
+                       Skip the search at s + 3, because s[3] != c0.  */
+                    goto case4_skip4;
+                }
+             case4_skip4:
+              s++;
+              s3 = s[3];
+              if (s[3] == 0)
+                break;
+             case4_skip3:
+              s++;
+              s3 = s[3];
+              if (s[3] == 0)
+                break;
+             case4_skip2:
+              s++;
+              s3 = s[3];
+              if (s[3] == 0)
+                break;
+             case4_skip1:
+              s++;
+              s3 = s[3];
               if (s[3] == 0)
-                goto notfound;
-              if (*s == c0 && s[1] == c1 && s[2] == c2 && s[3] == c3)
                 break;
             }
-          return (uint8_t *) s;
         }
+        break;
       }
-notfound:
+
   return NULL;
 }
index 82a4414..9c44372 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare UTF-8 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 9ffa135..add1a96 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare UTF-8 strings using the collation rules of the current locale.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -29,5 +29,5 @@
 #define FUNC u8_strcoll
 #define UNIT uint8_t
 #define U_STRCMP u8_strcmp
-#define U_STRCONV_TO_LOCALE u8_strconv_to_locale
+#define U_STRCONV_TO_ENCODING u8_strconv_to_encoding
 #include "u-strcoll.h"
index 9662de5..5906121 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-8 string.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 4b5b8e0..9442749 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-8 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 58a3077..6dbdae1 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-8 string.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index b8bebf0..ad6c21f 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine length of UTF-8 string.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 52242c5..9eeb375 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-8 string.
-   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2010 Free Software
+   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2014 Free Software
    Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
@@ -24,7 +24,7 @@
 int
 u8_strmblen (const uint8_t *s)
 {
-  /* Keep in sync with unistr.h and utf8-ucs4.c.  */
+  /* Keep in sync with unistr.h and u8-mbtouc-aux.c.  */
   uint8_t c = *s;
 
   if (c < 0x80)
index 67016c6..2561ab4 100644 (file)
@@ -1,5 +1,5 @@
 /* Look at first character in UTF-8 string.
-   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2010 Free Software
+   Copyright (C) 1999-2000, 2002, 2006-2007, 2009-2014 Free Software
    Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
@@ -24,7 +24,7 @@
 int
 u8_strmbtouc (ucs4_t *puc, const uint8_t *s)
 {
-  /* Keep in sync with unistr.h and utf8-ucs4.c.  */
+  /* Keep in sync with unistr.h and u8-mbtouc-aux.c.  */
   uint8_t c = *s;
 
   if (c < 0x80)
index 4780350..46d3f0a 100644 (file)
@@ -1,5 +1,5 @@
 /* Concatenate UTF-8 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 286450b..e760199 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare UTF-8 strings.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 5ef757b..08da087 100644 (file)
@@ -1,5 +1,5 @@
 /* Copy UTF-8 string.
-   Copyright (C) 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index e732ea2..9342aba 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine bounded length of UTF-8 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
 /* Specification.  */
 #include "unistr.h"
 
-#if __GLIBC__ >= 2
+#if __GLIBC__ >= 2 || defined __UCLIBC__
 
 # include <string.h>
 
index ec6dc27..9d4b9b5 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-8 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 6d8e297..246aa4d 100644 (file)
@@ -1,5 +1,5 @@
 /* Search character in UTF-8 string.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2014 Free Software Foundation,
    Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
index 7747815..3871a15 100644 (file)
@@ -1,5 +1,5 @@
 /* Search for some characters in UTF-8 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index cce37ad..c16e930 100644 (file)
@@ -1,5 +1,5 @@
 /* Substring test for UTF-8 strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2010-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
 /* Specification.  */
 #include "unistr.h"
 
+#include <string.h>
+
 /* FIXME: Maybe walking the string via u8_mblen is a win?  */
 
 #define FUNC u8_strstr
 #define UNIT uint8_t
 #define U_STRCHR u8_strchr
+#define U_STRMBTOUC u8_strmbtouc
+#define UNIT_IS_UINT8_T 1
 #include "u-strstr.h"
index e5c7203..7c5b8c2 100644 (file)
@@ -1,5 +1,5 @@
 /* Tokenize UTF-8 string.
-   Copyright (C) 1999, 2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 3745c2b..02e7c8b 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert UTF-8 string to UTF-16 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index de2a35e..a65e5f9 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert UTF-8 string to UTF-32 string.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 695921d..8d94bf5 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion UCS-4 to UTF-8.
-   Copyright (C) 2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index fd33c05..1ce271f 100644 (file)
@@ -1,5 +1,5 @@
 /* Store a character in UTF-8 string.
-   Copyright (C) 2002, 2005-2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005-2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 47b736a..7b572fd 100644 (file)
@@ -1,5 +1,5 @@
 /* Meta information about GNU libunistring.
-   Copyright (C) 2009 Free Software Foundation, Inc.
+   Copyright (C) 2009-2010 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -27,7 +27,9 @@ extern "C" {
 #endif
 
 
-#define _LIBUNISTRING_VERSION @HEXVERSION@    /* version number: (major<<8) + minor */
+/* Version number: (major<<16) + (minor<<8) + subminor
+   except that for versions <= 0.9.3 the value was 0x000009. */
+#define _LIBUNISTRING_VERSION @HEXVERSION@
 extern LIBUNISTRING_DLL_VARIABLE const int _libunistring_version; /* Likewise */
 
 
index 376ffc2..de23a0d 100644 (file)
@@ -1,5 +1,6 @@
-/* Elementary types for the GNU UniString library.
-   Copyright (C) 2002, 2005-2006, 2009-2010 Free Software Foundation, Inc.
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Elementary types and macros for the GNU UniString library.
+   Copyright (C) 2002, 2005-2006, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
 /* Type representing a Unicode character.  */
 typedef uint32_t ucs4_t;
 
+/* Attribute of a function whose result depends only on the arguments
+   (not pointers!) and which has no side effects.  */
+#ifndef _UC_ATTRIBUTE_CONST
+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+#  define _UC_ATTRIBUTE_CONST __attribute__ ((__const__))
+# else
+#  define _UC_ATTRIBUTE_CONST
+# endif
+#endif
+
+/* Attribute of a function whose result depends only on the arguments
+   (possibly pointers) and global memory, and which has no side effects.  */
+#ifndef _UC_ATTRIBUTE_PURE
+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+#  define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+#  define _UC_ATTRIBUTE_PURE
+# endif
+#endif
+
 #endif /* _UNITYPES_H */
diff --git a/lib/unitypes.in.h b/lib/unitypes.in.h
new file mode 100644 (file)
index 0000000..92d9cd9
--- /dev/null
@@ -0,0 +1,46 @@
+/* Elementary types and macros for the GNU UniString library.
+   Copyright (C) 2002, 2005-2006, 2009-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNITYPES_H
+#define _UNITYPES_H
+
+/* Get uint8_t, uint16_t, uint32_t.  */
+#include <unistring/stdint.h>
+
+/* Type representing a Unicode character.  */
+typedef uint32_t ucs4_t;
+
+/* Attribute of a function whose result depends only on the arguments
+   (not pointers!) and which has no side effects.  */
+#ifndef _UC_ATTRIBUTE_CONST
+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+#  define _UC_ATTRIBUTE_CONST __attribute__ ((__const__))
+# else
+#  define _UC_ATTRIBUTE_CONST
+# endif
+#endif
+
+/* Attribute of a function whose result depends only on the arguments
+   (possibly pointers) and global memory, and which has no side effects.  */
+#ifndef _UC_ATTRIBUTE_PURE
+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+#  define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__))
+# else
+#  define _UC_ATTRIBUTE_PURE
+# endif
+#endif
+
+#endif /* _UNITYPES_H */
index 25cf33a..ad2596d 100644 (file)
@@ -1,5 +1,6 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Word breaks in Unicode strings.
-   Copyright (C) 2001-2003, 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
@@ -54,7 +55,8 @@ enum
 
 /* Return the Word_Break property of a Unicode character.  */
 extern int
-       uc_wordbreak_property (ucs4_t uc);
+       uc_wordbreak_property (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
 
 /* ========================================================================= */
 
diff --git a/lib/uniwbrk.in.h b/lib/uniwbrk.in.h
new file mode 100644 (file)
index 0000000..ab4b532
--- /dev/null
@@ -0,0 +1,84 @@
+/* Word breaks in Unicode strings.
+   Copyright (C) 2001-2003, 2005-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNIWBRK_H
+#define _UNIWBRK_H
+
+/* Get size_t.  */
+#include <stddef.h>
+
+#include "unitypes.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ========================================================================= */
+
+/* Property defined in Unicode Standard Annex #29, section "Word Boundaries"
+   <http://www.unicode.org/reports/tr29/#Word_Boundaries>  */
+
+/* Possible values of the Word_Break property.
+   This enumeration may be extended in the future.  */
+enum
+{
+  WBP_OTHER        = 0,
+  WBP_CR           = 11,
+  WBP_LF           = 12,
+  WBP_NEWLINE      = 10,
+  WBP_EXTEND       = 8,
+  WBP_FORMAT       = 9,
+  WBP_KATAKANA     = 1,
+  WBP_ALETTER      = 2,
+  WBP_MIDNUMLET    = 3,
+  WBP_MIDLETTER    = 4,
+  WBP_MIDNUM       = 5,
+  WBP_NUMERIC      = 6,
+  WBP_EXTENDNUMLET = 7
+};
+
+/* Return the Word_Break property of a Unicode character.  */
+extern int
+       uc_wordbreak_property (ucs4_t uc)
+       _UC_ATTRIBUTE_CONST;
+
+/* ========================================================================= */
+
+/* Word breaks.  */
+
+/* Determine the word break points in S, and store the result at p[0..n-1].
+   p[i] = 1 means that there is a word boundary between s[i-1] and s[i].
+   p[i] = 0 means that s[i-1] and s[i] must not be separated.
+ */
+extern void
+       u8_wordbreaks (const uint8_t *s, size_t n, char *p);
+extern void
+       u16_wordbreaks (const uint16_t *s, size_t n, char *p);
+extern void
+       u32_wordbreaks (const uint32_t *s, size_t n, char *p);
+extern void
+       ulc_wordbreaks (const char *s, size_t n, char *p);
+
+/* ========================================================================= */
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _UNIWBRK_H */
index b0fd301..2d88015 100644 (file)
@@ -1,5 +1,5 @@
 /* Word breaks in UTF-8/UTF-16/UTF-32 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index ea2a53d..74d553d 100644 (file)
@@ -1,5 +1,5 @@
 /* Word breaks in UTF-16 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 86a2616..e145e81 100644 (file)
@@ -1,5 +1,5 @@
 /* Word breaks in UTF-32 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index c7edfe9..08c94c0 100644 (file)
@@ -1,5 +1,5 @@
 /* Word breaks in UTF-8 strings.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 6e17026..c3f0393 100644 (file)
@@ -1,5 +1,5 @@
 /* Word breaks in strings.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 77fd61d..c94e80f 100644 (file)
@@ -1,8 +1,8 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Line breaking properties of Unicode characters.  */
-/* Generated automatically by gen-uni-tables for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables for Unicode 6.0.0.  */
 
-/* Copyright (C) 2000-2002, 2004, 2007-2010 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2002, 2004, 2007-2009 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -27,7 +27,7 @@ typedef struct
   {
     int level1[15];
     int level2[3 << 9];
-    unsigned char level3[110 << 7];
+    unsigned char level3[122 << 7];
   }
 wbrkprop_t;
 static const wbrkprop_t uniwbrkprop =
@@ -39,17 +39,17 @@ static const wbrkprop_t uniwbrkprop =
   {
         0,   128,   256,   256,   256,   384,   512,   640,
       256,   768,   896,  1024,  1152,  1280,  1408,  1536,
-       -1,    -1,  1664,  1792,  1920,  2048,  2176,  2304,
-     2432,  2560,  2688,  2816,  2944,  3072,  3200,  3328,
-     3456,  3584,  3712,  3840,  3968,  4096,  4224,  4352,
-     4480,   256,   256,   256,  4608,  4736,  4864,  4992,
-     5120,  5248,  5376,  5504,  5632,    -1,  5760,  5888,
-     6016,    -1,   256,  6144,   256,   256,  6272,  6400,
-     6528,  6656,  6784,  6912,    -1,    -1,    -1,    -1,
-       -1,  7040,    -1,    -1,    -1,    -1,    -1,    -1,
+     1664,    -1,  1792,  1920,  2048,  2176,  2304,  2432,
+     2560,  2688,  2816,  2944,  3072,  3200,  3328,  3456,
+     3584,  3712,   256,   256,  3840,  3968,  4096,  4224,
+     4352,   256,   256,   256,  4480,  4608,  4736,  4864,
+     4992,  5120,  5248,  5376,  5504,  5632,  5760,  5888,
+     6016,  6144,   256,  6272,   256,   256,  6400,  6528,
+     6656,  6784,  6912,  7040,    -1,    -1,    -1,    -1,
+       -1,  7168,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     7168,  7296,  7424,  7552,  7680,    -1,    -1,    -1,
-     7808,  7936,  8064,  8192,    -1,  8320,  8448,    -1,
+     7296,  7424,  7552,  7680,  7808,    -1,    -1,    -1,
+     7936,  8064,  8192,  8320,    -1,  8448,  8576,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -78,8 +78,8 @@ static const wbrkprop_t uniwbrkprop =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,  8576,   256,   256,  8704,  8832,  8960,  9088,
-     9216,  9344,  9472,    -1,  9600,    -1,    -1,    -1,
+      256,  8704,   256,   256,  8832,  8960,  9088,  9216,
+     9344,  9472,  9600,  9728,  9856,  9984, 10112, 10240,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
@@ -90,7 +90,7 @@ static const wbrkprop_t uniwbrkprop =
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
       256,   256,   256,   256,   256,   256,   256,   256,
-      256,   256,   256,   256,   256,   256,   256,  9728,
+      256,   256,   256,   256,   256,   256,   256, 10368,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -99,24 +99,22 @@ static const wbrkprop_t uniwbrkprop =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,  9856,  9984,
-      256,   256, 10112, 10240, 10368, 10496, 10624, 10752,
-    10880, 11008, 11136, 11264,    -1, 11392, 11520, 11648,
-      256, 11776,    -1,    -1,    -1,    -1,    -1,    -1,
-    11904,    -1, 12032,    -1, 12160,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      256,   256,   256,   256,   256,   256, 12288,    -1,
-    12416,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1, 10496, 10624,
+      256,   256, 10752, 10880, 11008, 11136, 11264, 11392,
+    11520, 11648, 11776, 11904,    -1, 12032, 12160, 12288,
+      256, 12416,    -1,    -1,    -1,    -1,    -1,    -1,
+    12544,    -1, 12672,    -1, 12800,    -1, 12928,    -1,
+    13056,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    13184, 13312,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256,   256,   256,   256,   256,   256, 13440,    -1,
+    13568,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256,   256,   256,   256,   256,   256,   256,   256,
+    13696,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -129,6 +127,7 @@ static const wbrkprop_t uniwbrkprop =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      256,   256,   256,   256, 13824,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -146,6 +145,7 @@ static const wbrkprop_t uniwbrkprop =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    13952,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -153,8 +153,8 @@ static const wbrkprop_t uniwbrkprop =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1, 12544, 12672, 12800,    -1,    -1,    -1,
-    12928, 13056, 13184,   256,   256, 13312, 13440, 13568,
+       -1,    -1, 14080, 14208, 14336,    -1,    -1,    -1,
+    14464, 14592, 14720,   256,   256, 14848, 14976, 15104,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -165,7 +165,7 @@ static const wbrkprop_t uniwbrkprop =
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    13696,    -1, 13824, 13952,    -1,    -1,    -1,    -1,
+    15232,    -1, 15360, 15488,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -464,7 +464,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -527,7 +527,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -542,7 +542,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
-    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
     WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_NUMERIC,
@@ -574,7 +574,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_OTHER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
-    WBP_EXTEND, WBP_FORMAT, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_FORMAT, WBP_OTHER, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
     WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
@@ -647,12 +647,41 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
     WBP_MIDNUM, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -661,23 +690,26 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
-    WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
-    WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
     WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
-    WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+    WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -899,7 +931,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -913,16 +945,16 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
     WBP_OTHER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
-    WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -1066,7 +1098,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
@@ -1133,8 +1165,8 @@ static const wbrkprop_t uniwbrkprop =
     WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND,
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
-    WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -1177,70 +1209,6 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -1310,7 +1278,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+    WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -1412,9 +1380,9 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -1555,24 +1523,24 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_EXTEND, WBP_ALETTER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -1660,6 +1628,38 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -1719,19 +1719,19 @@ static const wbrkprop_t uniwbrkprop =
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
     WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -1767,25 +1767,57 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
-    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
-    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
@@ -1798,7 +1830,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -1865,7 +1897,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_FORMAT,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_EXTEND, WBP_EXTEND, WBP_FORMAT, WBP_FORMAT,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -1900,6 +1932,8 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -1913,8 +1947,6 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
     WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
@@ -2051,10 +2083,10 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -2081,9 +2113,9 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -2118,7 +2150,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -2293,7 +2325,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -2395,18 +2427,18 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -2431,7 +2463,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
@@ -2447,27 +2479,27 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -2506,14 +2538,14 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
-    WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -2533,7 +2565,7 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+    WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_ALETTER,
@@ -2591,13 +2623,13 @@ static const wbrkprop_t uniwbrkprop =
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
     WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
     WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
@@ -2623,6 +2655,38 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -2661,17 +2725,9 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -2683,6 +2739,11 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND,
+    WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND,
+    WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -2695,46 +2756,145 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_ALETTER, WBP_EXTEND, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+    WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+    WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_ALETTER, WBP_EXTEND, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
+    WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER,
-    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
-    WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
-    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
     WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
@@ -3223,12 +3383,12 @@ static const wbrkprop_t uniwbrkprop =
     WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER,
     WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
-    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -3295,6 +3455,134 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+    WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND,
+    WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER,
+    WBP_OTHER, WBP_FORMAT, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
@@ -3367,6 +3655,102 @@ static const wbrkprop_t uniwbrkprop =
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER,
+    WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_KATAKANA, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
+    WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
     WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER,
index ff25fb3..7cbe4d6 100644 (file)
@@ -1,5 +1,5 @@
 /* Word break auxiliary table.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 8a13378..1b48adf 100644 (file)
@@ -1,5 +1,5 @@
 /* Word break auxiliary table.
-   Copyright (C) 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 9d98b0b..2e05642 100644 (file)
@@ -1,5 +1,5 @@
 /* Word break property.
-   Copyright (C) 2001-2003, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index 4e18162..75d6a5a 100644 (file)
@@ -1,5 +1,6 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Display width functions.
-   Copyright (C) 2001-2002, 2005, 2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 2001-2002, 2005, 2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
@@ -38,24 +39,31 @@ extern "C" {
 
 /* Determine number of column positions required for UC.  */
 extern int
-       uc_width (ucs4_t uc, const char *encoding);
+       uc_width (ucs4_t uc, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 
 /* Determine number of column positions required for first N units
    (or fewer if S ends before this) in S.  */
 extern int
-       u8_width (const uint8_t *s, size_t n, const char *encoding);
+       u8_width (const uint8_t *s, size_t n, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u16_width (const uint16_t *s, size_t n, const char *encoding);
+       u16_width (const uint16_t *s, size_t n, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u32_width (const uint32_t *s, size_t n, const char *encoding);
+       u32_width (const uint32_t *s, size_t n, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 
 /* Determine number of column positions required for S.  */
 extern int
-       u8_strwidth (const uint8_t *s, const char *encoding);
+       u8_strwidth (const uint8_t *s, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u16_strwidth (const uint16_t *s, const char *encoding);
+       u16_strwidth (const uint16_t *s, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 extern int
-       u32_strwidth (const uint32_t *s, const char *encoding);
+       u32_strwidth (const uint32_t *s, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
 
 
 #ifdef __cplusplus
diff --git a/lib/uniwidth.in.h b/lib/uniwidth.in.h
new file mode 100644 (file)
index 0000000..3ca5737
--- /dev/null
@@ -0,0 +1,72 @@
+/* Display width functions.
+   Copyright (C) 2001-2002, 2005, 2007, 2009-2014 Free Software Foundation,
+   Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _UNIWIDTH_H
+#define _UNIWIDTH_H
+
+#include "unitypes.h"
+
+/* Get size_t.  */
+#include <stddef.h>
+
+/* Get locale_charset() declaration.  */
+#include <unistring/localcharset.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Display width.  */
+
+/* These functions are locale dependent.  The encoding argument identifies
+   the encoding (e.g. "ISO-8859-2" for Polish).  */
+
+/* Determine number of column positions required for UC.  */
+extern int
+       uc_width (ucs4_t uc, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
+
+/* Determine number of column positions required for first N units
+   (or fewer if S ends before this) in S.  */
+extern int
+       u8_width (const uint8_t *s, size_t n, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u16_width (const uint16_t *s, size_t n, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u32_width (const uint32_t *s, size_t n, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
+
+/* Determine number of column positions required for S.  */
+extern int
+       u8_strwidth (const uint8_t *s, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u16_strwidth (const uint16_t *s, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
+extern int
+       u32_strwidth (const uint32_t *s, const char *encoding)
+       _UC_ATTRIBUTE_PURE;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNIWIDTH_H */
index 5d8ef12..1ecd655 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for CJK encoding.
-   Copyright (C) 2001-2002, 2005-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2005-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
@@ -22,16 +22,16 @@ is_cjk_encoding (const char *encoding)
 {
   if (0
       /* Legacy Japanese encodings */
-      || STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)
+      || STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)
       /* Legacy Chinese encodings */
-      || STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
-      || STREQ (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0)
-      || STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)
-      || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)
+      || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+      || STREQ_OPT (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0)
+      || STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)
+      || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)
       /* Legacy Korean encodings */
-      || STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
-      || STREQ (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0)
-      || STREQ (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0))
+      || STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+      || STREQ_OPT (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0)
+      || STREQ_OPT (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0))
     return 1;
   return 0;
 }
index 01dc33b..d242b7e 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine display width of UTF-16 string.
-   Copyright (C) 2001-2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 49a1204..af0a460 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine display width of UTF-16 string.
-   Copyright (C) 2001-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index c21e6aa..91cbb01 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine display width of UTF-32 string.
-   Copyright (C) 2001-2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 32c4133..fe42ade 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine display width of UTF-32 string.
-   Copyright (C) 2001-2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index d3404b3..cc7ca1a 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine display width of UTF-8 string.
-   Copyright (C) 2001-2002, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index fd27cab..d9a7475 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine display width of UTF-8 string.
-   Copyright (C) 2001-2002, 2006-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006-2007, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index c88fdb6..3ed398e 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine display width of Unicode character.
-   Copyright (C) 2001-2002, 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
@@ -32,7 +32,7 @@
  * - Zero width characters; generated from
  *   "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt"
  */
-static const unsigned char nonspacing_table_data[26*64] = {
+static const unsigned char nonspacing_table_data[27*64] = {
   /* 0x0000-0x01ff */
   0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */
@@ -62,20 +62,20 @@ static const unsigned char nonspacing_table_data[26*64] = {
   0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */
   /* 0x0600-0x07ff */
   0x0f, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */
-  0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */
+  0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */
-  0x00, 0x00, 0xc0, 0xff, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */
+  0x00, 0x00, 0xc0, 0xbf, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */
   0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */
   0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */
   0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */
   0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x07c0-0x07ff */
   /* 0x0800-0x09ff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0800-0x083f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */
+  0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */
+  0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08c0-0x08ff */
-  0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0900-0x093f */
-  0xfe, 0x21, 0x1e, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */
+  0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */
+  0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */
   0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */
   0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x09c0-0x09ff */
   /* 0x0a00-0x0bff */
@@ -103,12 +103,12 @@ static const unsigned char nonspacing_table_data[26*64] = {
   0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */
   0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */
-  0xdf, 0x00, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */
+  0xdf, 0xe0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */
   0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */
   /* 0x1000-0x11ff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */
   0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */
-  0x64, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */
+  0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1140-0x117f */
@@ -120,7 +120,7 @@ static const unsigned char nonspacing_table_data[26*64] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */
-  0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */
+  0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */
   /* 0x1600-0x17ff */
@@ -143,22 +143,22 @@ static const unsigned char nonspacing_table_data[26*64] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */
   /* 0x1a00-0x1bff */
   0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1a40-0x1a7f */
+  0x00, 0x00, 0x40, 0x7f, 0xe5, 0x1f, 0xf8, 0x9f, /* 0x1a40-0x1a7f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1a80-0x1abf */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */
   0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */
   0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */
   0x03, 0x00, 0x00, 0x00, 0x3c, 0x03, 0x00, 0x00, /* 0x1b80-0x1bbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc0-0x1bff */
+  0x00, 0x00, 0x00, 0x00, 0x40, 0xa3, 0x03, 0x00, /* 0x1bc0-0x1bff */
   /* 0x1c00-0x1dff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cc0-0x1cff */
+  0x00, 0x00, 0xf7, 0xff, 0xfd, 0x21, 0x00, 0x00, /* 0x1cc0-0x1cff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */
-  0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xc0, /* 0x1dc0-0x1dff */
+  0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xf0, /* 0x1dc0-0x1dff */
   /* 0x2000-0x21ff */
   0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */
   0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, /* 0x2040-0x207f */
@@ -172,9 +172,9 @@ static const unsigned char nonspacing_table_data[26*64] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2cc0-0x2cff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, /* 0x2cc0-0x2cff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d40-0x2d7f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x2d40-0x2d7f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */
   0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */
   /* 0x3000-0x31ff */
@@ -190,7 +190,7 @@ static const unsigned char nonspacing_table_data[26*64] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x30, /* 0xa640-0xa67f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa6c0-0xa6ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0xa6c0-0xa6ff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */
@@ -199,20 +199,20 @@ static const unsigned char nonspacing_table_data[26*64] = {
   0x44, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0xa800-0xa83f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */
-  0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8c0-0xa8ff */
+  0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, /* 0xa8c0-0xa8ff */
   0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */
   0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa980-0xa9bf */
+  0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x13, /* 0xa980-0xa9bf */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */
   /* 0xaa00-0xabff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */
   0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xaa40-0xaa7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xaa80-0xaabf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xaac0-0xaaff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc1, /* 0xaa80-0xaabf */
+  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xaac0-0xaaff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xabc0-0xabff */
+  0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, /* 0xabc0-0xabff */
   /* 0xfa00-0xfbff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */
@@ -249,13 +249,22 @@ static const unsigned char nonspacing_table_data[26*64] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */
+  /* 0x11000-0x111ff */
+  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11000-0x1103f */
+  0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11040-0x1107f */
+  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x26, /* 0x11080-0x110bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x110c0-0x110ff */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11100-0x1113f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11140-0x1117f */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11180-0x111bf */
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */
   /* 0x1d000-0x1d1ff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */
-  0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xf8, /* 0x1d140-0x1d17f */
+  0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, /* 0x1d140-0x1d17f */
   0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */
   /* 0x1d200-0x1d3ff */
@@ -286,7 +295,7 @@ static const signed char nonspacing_table_ind[240] = {
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */
   -1, -1, -1, -1, -1, 20, -1, 21, /* 0xf000-0xffff */
   22, -1, -1, -1, -1, 23, -1, -1, /* 0x10000-0x10fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x11000-0x11fff */
+  24, -1, -1, -1, -1, -1, -1, -1, /* 0x11000-0x11fff */
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */
@@ -298,7 +307,7 @@ static const signed char nonspacing_table_ind[240] = {
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1b000-0x1bfff */
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */
-  24, 25, -1, -1, -1, -1, -1, -1  /* 0x1d000-0x1dfff */
+  25, 26, -1, -1, -1, -1, -1, -1  /* 0x1d000-0x1dfff */
 };
 
 /* Determine number of column positions required for UC.  */
@@ -332,8 +341,8 @@ uc_width (ucs4_t uc, const char *encoding)
         }
     }
   /* Test for double-width character.
-   * Generated from "grep '^....;[WF]' EastAsianWidth.txt"
-   * and            "grep '^....;[^WF]' EastAsianWidth.txt"
+   * Generated from "grep '^[^;]\{4,5\};[WF]' EastAsianWidth.txt"
+   * and            "grep '^[^;]\{4,5\};[^WF]' EastAsianWidth.txt"
    */
   if (uc >= 0x1100
       && ((uc < 0x1160) /* Hangul Jamo */
@@ -346,8 +355,8 @@ uc_width (ucs4_t uc, const char *encoding)
           || (uc >= 0xfe30 && uc < 0xfe70) /* CJK Compatibility Forms */
           || (uc >= 0xff00 && uc < 0xff61) /* Fullwidth Forms */
           || (uc >= 0xffe0 && uc < 0xffe7) /* Fullwidth Signs */
-          || (uc >= 0x20000 && uc <= 0x2a6d6) /* CJK */
-          || (uc >= 0x2f800 && uc <= 0x2fa1d) /* CJK Compatibility Ideographs */
+          || (uc >= 0x20000 && uc <= 0x2ffff) /* Supplementary Ideographic Plane */
+          || (uc >= 0x30000 && uc <= 0x3ffff) /* Tertiary Ideographic Plane */
      )   )
     return 2;
   /* In ancient CJK encodings, Cyrillic and most other characters are
index daaec6a..7282b05 100644 (file)
@@ -1,5 +1,5 @@
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 1999, 2002-2010 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -12,8 +12,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* This file can be parametrized with the following macros:
      VASNPRINTF         The name of the function being defined.
@@ -88,6 +87,8 @@
 /* Checked size_t computations.  */
 #include "xsize.h"
 
+#include "verify.h"
+
 #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
 # include <math.h>
 # include "float+.h"
@@ -274,10 +275,10 @@ decimal_point_char (void)
 {
   const char *point;
   /* Determine it in a multithread-safe way.  We know nl_langinfo is
-     multithread-safe on glibc systems and MacOS X systems, but is not required
+     multithread-safe on glibc systems and Mac OS X systems, but is not required
      to be multithread-safe by POSIX.  sprintf(), however, is multithread-safe.
      localeconv() is rarely multithread-safe.  */
-#  if HAVE_NL_LANGINFO && (__GLIBC__ || (defined __APPLE__ && defined __MACH__))
+#  if HAVE_NL_LANGINFO && (__GLIBC__ || defined __UCLIBC__ || (defined __APPLE__ && defined __MACH__))
   point = nl_langinfo (RADIXCHAR);
 #  elif 1
   char pointbuf[5];
@@ -322,11 +323,11 @@ is_infinite_or_zerol (long double x)
 
 typedef unsigned int mp_limb_t;
 # define GMP_LIMB_BITS 32
-typedef int mp_limb_verify[2 * (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS) - 1];
+verify (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS);
 
 typedef unsigned long long mp_twolimb_t;
 # define GMP_TWOLIMB_BITS 64
-typedef int mp_twolimb_verify[2 * (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS) - 1];
+verify (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS);
 
 /* Representation of a bignum >= 0.  */
 typedef struct
@@ -551,32 +552,61 @@ divide (mpn_t a, mpn_t b, mpn_t *q)
       size_t s;
       {
         mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */
-        s = 31;
-        if (msd >= 0x10000)
-          {
-            msd = msd >> 16;
-            s -= 16;
-          }
-        if (msd >= 0x100)
-          {
-            msd = msd >> 8;
-            s -= 8;
-          }
-        if (msd >= 0x10)
-          {
-            msd = msd >> 4;
-            s -= 4;
-          }
-        if (msd >= 0x4)
+        /* Determine s = GMP_LIMB_BITS - integer_length (msd).
+           Code copied from gnulib's integer_length.c.  */
+# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+        s = __builtin_clz (msd);
+# else
+#  if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
+        if (GMP_LIMB_BITS <= DBL_MANT_BIT)
           {
-            msd = msd >> 2;
-            s -= 2;
+            /* Use 'double' operations.
+               Assumes an IEEE 754 'double' implementation.  */
+#   define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7)
+#   define DBL_EXP_BIAS (DBL_EXP_MASK / 2 - 1)
+#   define NWORDS \
+     ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+            union { double value; unsigned int word[NWORDS]; } m;
+
+            /* Use a single integer to floating-point conversion.  */
+            m.value = msd;
+
+            s = GMP_LIMB_BITS
+                - (((m.word[DBL_EXPBIT0_WORD] >> DBL_EXPBIT0_BIT) & DBL_EXP_MASK)
+                   - DBL_EXP_BIAS);
           }
-        if (msd >= 0x2)
+        else
+#   undef NWORDS
+#  endif
           {
-            msd = msd >> 1;
-            s -= 1;
+            s = 31;
+            if (msd >= 0x10000)
+              {
+                msd = msd >> 16;
+                s -= 16;
+              }
+            if (msd >= 0x100)
+              {
+                msd = msd >> 8;
+                s -= 8;
+              }
+            if (msd >= 0x10)
+              {
+                msd = msd >> 4;
+                s -= 4;
+              }
+            if (msd >= 0x4)
+              {
+                msd = msd >> 2;
+                s -= 2;
+              }
+            if (msd >= 0x2)
+              {
+                msd = msd >> 1;
+                s -= 1;
+              }
           }
+# endif
       }
       /* 0 <= s < GMP_LIMB_BITS.
          Copy b, shifting it left by s bits.  */
@@ -883,9 +913,9 @@ decode_long_double (long double x, int *ep, mpn_t *mp)
   y = frexpl (x, &exp);
   if (!(y >= 0.0L && y < 1.0L))
     abort ();
-  /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * LDBL_MANT_BIT), and the
+  /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * 2^LDBL_MANT_BIT), and the
      latter is an integer.  */
-  /* Convert the mantissa (y * LDBL_MANT_BIT) to a sequence of limbs.
+  /* Convert the mantissa (y * 2^LDBL_MANT_BIT) to a sequence of limbs.
      I'm not sure whether it's safe to cast a 'long double' value between
      2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
      'long double' values between 0 and 2^16 (to 'unsigned int' or 'int',
@@ -933,11 +963,11 @@ decode_long_double (long double x, int *ep, mpn_t *mp)
         abort ();
       m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo;
     }
-#if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess
-         precision.  */
+#  if 0 /* On FreeBSD 6.1/x86, 'long double' numbers sometimes have excess
+           precision.  */
   if (!(y == 0.0L))
     abort ();
-#endif
+#  endif
   /* Normalise.  */
   while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0)
     m.nlimbs--;
@@ -971,9 +1001,9 @@ decode_double (double x, int *ep, mpn_t *mp)
   y = frexp (x, &exp);
   if (!(y >= 0.0 && y < 1.0))
     abort ();
-  /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * DBL_MANT_BIT), and the
+  /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * 2^DBL_MANT_BIT), and the
      latter is an integer.  */
-  /* Convert the mantissa (y * DBL_MANT_BIT) to a sequence of limbs.
+  /* Convert the mantissa (y * 2^DBL_MANT_BIT) to a sequence of limbs.
      I'm not sure whether it's safe to cast a 'double' value between
      2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
      'double' values between 0 and 2^16 (to 'unsigned int' or 'int',
@@ -1500,7 +1530,7 @@ is_borderline (const char *digits, size_t precision)
 
 /* Returns the number of TCHAR_T units needed as temporary space for the result
    of sprintf or SNPRINTF of a single conversion directive.  */
-static inline size_t
+static size_t
 MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion,
                  arg_type type, int flags, size_t width, int has_precision,
                  size_t precision, int pad_ourselves)
@@ -1751,8 +1781,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
     return NULL;
 
 #define CLEANUP() \
-  free (d.dir);                                                         \
-  if (a.arg)                                                            \
+  if (d.dir != d.direct_alloc_dir)                                      \
+    free (d.dir);                                                       \
+  if (a.arg != a.direct_alloc_arg)                                      \
     free (a.arg);
 
   if (PRINTF_FETCHARGS (args, &a) < 0)
@@ -2621,7 +2652,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   size_t characters;
 #  if !DCHAR_IS_TCHAR
                   /* This code assumes that TCHAR_T is 'char'.  */
-                  typedef int TCHAR_T_verify[2 * (sizeof (TCHAR_T) == 1) - 1];
+                  verify (sizeof (TCHAR_T) == 1);
                   TCHAR_T *tmpsrc;
                   DCHAR_T *tmpdst;
                   size_t tmpdst_len;
@@ -2782,7 +2813,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   if (has_width)
                     {
 #  if ENABLE_UNISTDIO
-                      /* Outside POSIX, it's preferrable to compare the width
+                      /* Outside POSIX, it's preferable to compare the width
                          against the number of _characters_ of the converted
                          value.  */
                       w = DCHAR_MBSNLEN (result + length, characters);
@@ -2889,8 +2920,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                       length += n;
                     }
                 }
-              }
 # endif
+              }
 #endif
 #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
             else if ((dp->conversion == 'a' || dp->conversion == 'A')
@@ -4597,6 +4628,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                 TCHAR_T *fbp;
                 unsigned int prefix_count;
                 int prefixes[2] IF_LINT (= { 0 });
+                int orig_errno;
 #if !USE_SNPRINTF
                 size_t tmp_length;
                 TCHAR_T tmpbuf[700];
@@ -4751,6 +4783,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   *fbp++ = ' ';
                 if (flags & FLAG_ALT)
                   *fbp++ = '#';
+#if __GLIBC__ >= 2 && !defined __UCLIBC__
+                if (flags & FLAG_LOCALIZED)
+                  *fbp++ = 'I';
+#endif
                 if (!pad_ourselves)
                   {
                     if (flags & FLAG_ZERO)
@@ -4834,20 +4870,21 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 #endif
                   *fbp = dp->conversion;
 #if USE_SNPRINTF
-# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
                 fbp[1] = '%';
                 fbp[2] = 'n';
                 fbp[3] = '\0';
 # else
                 /* On glibc2 systems from glibc >= 2.3 - probably also older
-                   ones - we know that snprintf's returns value conforms to
-                   ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes.
+                   ones - we know that snprintf's return value conforms to
+                   ISO C 99: the tests gl_SNPRINTF_RETVAL_C99 and
+                   gl_SNPRINTF_TRUNCATION_C99 pass.
                    Therefore we can avoid using %n in this situation.
                    On glibc2 systems from 2004-10-18 or newer, the use of %n
                    in format strings in writable memory may crash the program
                    (if compiled with _FORTIFY_SOURCE=2), so we should avoid it
                    in this situation.  */
-                /* On native Win32 systems (such as mingw), we can avoid using
+                /* On native Windows systems (such as mingw), we can avoid using
                    %n because:
                      - Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
                        snprintf does not write more than the specified number
@@ -4856,7 +4893,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                      - Although the gl_SNPRINTF_RETVAL_C99 test fails, snprintf
                        allows us to recognize the case of an insufficient
                        buffer size: it returns -1 in this case.
-                   On native Win32 systems (such as mingw) where the OS is
+                   On native Windows systems (such as mingw) where the OS is
                    Windows Vista, the use of %n in format strings by default
                    crashes the program. See
                      <http://gcc.gnu.org/ml/gcc/2007-06/msg00122.html> and
@@ -4900,6 +4937,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                 *(TCHAR_T *) (result + length) = '\0';
 #endif
 
+                orig_errno = errno;
+
                 for (;;)
                   {
                     int count = -1;
@@ -5114,7 +5153,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                 size_t tmp_length =
                                   MAX_ROOM_NEEDED (&a, dp->arg_index,
                                                    dp->conversion, type, flags,
-                                                   width, has_precision,
+                                                   has_width ? width : 0,
+                                                   has_precision,
                                                    precision, pad_ourselves);
 
                                 if (maxlen < tmp_length)
@@ -5284,8 +5324,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                         DCHAR_T *tmpdst;
                         size_t tmpdst_len;
                         /* This code assumes that TCHAR_T is 'char'.  */
-                        typedef int TCHAR_T_verify
-                                    [2 * (sizeof (TCHAR_T) == 1) - 1];
+                        verify (sizeof (TCHAR_T) == 1);
 # if USE_SNPRINTF
                         tmpsrc = (TCHAR_T *) (result + length);
 # else
@@ -5378,7 +5417,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                       {
                         size_t w;
 # if ENABLE_UNISTDIO
-                        /* Outside POSIX, it's preferrable to compare the width
+                        /* Outside POSIX, it's preferable to compare the width
                            against the number of _characters_ of the converted
                            value.  */
                         w = DCHAR_MBSNLEN (result + length, count);
@@ -5498,6 +5537,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     length += count;
                     break;
                   }
+                errno = orig_errno;
+#undef pad_ourselves
+#undef prec_ourselves
               }
           }
       }
index 7773c79..78d543f 100644 (file)
@@ -1,6 +1,6 @@
 /* Compile-time assert-like macros.
 
-   Copyright (C) 2005-2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
 
 /* Written by Paul Eggert, Bruno Haible, and Jim Meyering.  */
 
-#ifndef VERIFY_H
-# define VERIFY_H 1
+#ifndef _GL_VERIFY_H
+#define _GL_VERIFY_H
+
+
+/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11.
+   This is supported by GCC 4.6.0 and later, in C mode, and its use
+   here generates easier-to-read diagnostics when verify (R) fails.
+
+   Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11.
+   This will likely be supported by future GCC versions, in C++ mode.
+
+   Use this only with GCC.  If we were willing to slow 'configure'
+   down we could also use it with other compilers, but since this
+   affects only the quality of diagnostics, why bother?  */
+#if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \
+     && (201112L <= __STDC_VERSION__  || !defined __STRICT_ANSI__) \
+     && !defined __cplusplus)
+# define _GL_HAVE__STATIC_ASSERT 1
+#endif
+/* The condition (99 < __GNUC__) is temporary, until we know about the
+   first G++ release that supports static_assert.  */
+#if (99 < __GNUC__) && defined __cplusplus
+# define _GL_HAVE_STATIC_ASSERT 1
+#endif
+
+/* FreeBSD 9.1 <sys/cdefs.h>, included by <stddef.h> and lots of other
+   system headers, defines a conflicting _Static_assert that is no
+   better than ours; override it.  */
+#ifndef _GL_HAVE_STATIC_ASSERT
+# include <stddef.h>
+# undef _Static_assert
+#endif
 
 /* Each of these macros verifies that its argument R is nonzero.  To
    be portable, R should be an integer constant expression.  Unlike
    assert (R), there is no run-time overhead.
 
-   There are two macros, since no single macro can be used in all
-   contexts in C.  verify_true (R) is for scalar contexts, including
-   integer constant expression contexts.  verify (R) is for declaration
-   contexts, e.g., the top level.
-
-   Symbols ending in "__" are private to this header.
+   If _Static_assert works, verify (R) uses it directly.  Similarly,
+   _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct
+   that is an operand of sizeof.
 
-   The code below uses several ideas.
+   The code below uses several ideas for C++ compilers, and for C
+   compilers that do not support _Static_assert:
 
    * The first step is ((R) ? 1 : -1).  Given an expression R, of
      integral or boolean or floating-point type, this yields an
@@ -39,7 +67,9 @@
      constant and nonnegative.
 
    * Next this expression W is wrapped in a type
-     struct verify_type__ { unsigned int verify_error_if_negative_size__: W; }.
+     struct _gl_verify_type {
+       unsigned int _gl_verify_error_if_negative: W;
+     }.
      If W is negative, this yields a compile-time error.  No compiler can
      deal with a bit-field of negative size.
 
@@ -53,7 +83,7 @@
 
        void function (int n) { verify (n < 0); }
 
-   * For the verify macro, the struct verify_type__ will need to
+   * For the verify macro, the struct _gl_verify_type will need to
      somehow be embedded into a declaration.  To be portable, this
      declaration must declare an object, a constant, a function, or a
      typedef name.  If the declared entity uses the type directly,
      if the entity names are not disambiguated.  A workaround is to
      attach the current line number to the entity name:
 
-       #define GL_CONCAT0(x, y) x##y
-       #define GL_CONCAT(x, y) GL_CONCAT0 (x, y)
-       extern struct {...} * GL_CONCAT(dummy,__LINE__);
+       #define _GL_CONCAT0(x, y) x##y
+       #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y)
+       extern struct {...} * _GL_CONCAT (dummy, __LINE__);
 
      But this has the problem that two invocations of verify from
      within the same macro would collide, since the __LINE__ value
-     would be the same for both invocations.
+     would be the same for both invocations.  (The GCC __COUNTER__
+     macro solves this problem, but is not portable.)
 
      A solution is to use the sizeof operator.  It yields a number,
      getting rid of the identity of the type.  Declarations like
      Which of the following alternatives can be used?
 
        extern int dummy [sizeof (struct {...})];
-       extern int dummy [sizeof (struct verify_type__ {...})];
+       extern int dummy [sizeof (struct _gl_verify_type {...})];
        extern void dummy (int [sizeof (struct {...})]);
-       extern void dummy (int [sizeof (struct verify_type__ {...})]);
+       extern void dummy (int [sizeof (struct _gl_verify_type {...})]);
        extern int (*dummy (void)) [sizeof (struct {...})];
-       extern int (*dummy (void)) [sizeof (struct verify_type__ {...})];
+       extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})];
 
      In the second and sixth case, the struct type is exported to the
      outer scope; two such declarations therefore collide.  GCC warns
 
        extern int (*dummy (void)) [sizeof (struct {...})];
 
-   * This implementation exploits the fact that GCC does not warn about
-     the last declaration mentioned above.  If a future version of GCC
-     introduces a warning for this, the problem could be worked around
-     by using code specialized to GCC, e.g.,:
+   * GCC warns about duplicate declarations of the dummy function if
+     -Wredundant-decls is used.  GCC 4.3 and later have a builtin
+     __COUNTER__ macro that can let us generate unique identifiers for
+     each dummy function, to suppress this warning.
 
-       #if 4 <= __GNUC__
-       # define verify(R) \
-           extern int (* verify_function__ (void)) \
-                      [__builtin_constant_p (R) && (R) ? 1 : -1]
-       #endif
+   * This implementation exploits the fact that older versions of GCC,
+     which do not support _Static_assert, also do not warn about the
+     last declaration mentioned above.
+
+   * GCC warns if -Wnested-externs is enabled and verify() is used
+     within a function body; but inside a function, you can always
+     arrange to use verify_expr() instead.
 
    * In C++, any struct definition inside sizeof is invalid.
      Use a template type to work around the problem.  */
 
+/* Concatenate two preprocessor tokens.  */
+#define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y)
+#define _GL_CONCAT0(x, y) x##y
+
+/* _GL_COUNTER is an integer, preferably one that changes each time we
+   use it.  Use __COUNTER__ if it works, falling back on __LINE__
+   otherwise.  __LINE__ isn't perfect, but it's better than a
+   constant.  */
+#if defined __COUNTER__ && __COUNTER__ != __COUNTER__
+# define _GL_COUNTER __COUNTER__
+#else
+# define _GL_COUNTER __LINE__
+#endif
 
-/* Verify requirement R at compile-time, as an integer constant expression.
-   Return 1.  */
+/* Generate a symbol with the given prefix, making it unique if
+   possible.  */
+#define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER)
 
-# ifdef __cplusplus
+/* Verify requirement R at compile-time, as an integer constant expression
+   that returns 1.  If R is false, fail at compile-time, preferably
+   with a diagnostic that includes the string-literal DIAGNOSTIC.  */
+
+#define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \
+   (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC)))
+
+#ifdef __cplusplus
+# if !GNULIB_defined_struct__gl_verify_type
 template <int w>
-  struct verify_type__ { unsigned int verify_error_if_negative_size__: w; };
-#  define verify_true(R) \
-     (!!sizeof (verify_type__<(R) ? 1 : -1>))
-# else
-#  define verify_true(R) \
-     (!!sizeof \
-      (struct { unsigned int verify_error_if_negative_size__: (R) ? 1 : -1; }))
+  struct _gl_verify_type {
+    unsigned int _gl_verify_error_if_negative: w;
+  };
+#  define GNULIB_defined_struct__gl_verify_type 1
 # endif
+# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
+    _gl_verify_type<(R) ? 1 : -1>
+#elif defined _GL_HAVE__STATIC_ASSERT
+# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
+    struct {                                   \
+      _Static_assert (R, DIAGNOSTIC);          \
+      int _gl_dummy;                          \
+    }
+#else
+# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
+    struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; }
+#endif
+
+/* Verify requirement R at compile-time, as a declaration without a
+   trailing ';'.  If R is false, fail at compile-time, preferably
+   with a diagnostic that includes the string-literal DIAGNOSTIC.
+
+   Unfortunately, unlike C11, this implementation must appear as an
+   ordinary declaration, and cannot appear inside struct { ... }.  */
+
+#ifdef _GL_HAVE__STATIC_ASSERT
+# define _GL_VERIFY _Static_assert
+#else
+# define _GL_VERIFY(R, DIAGNOSTIC)                                    \
+    extern int (*_GL_GENSYM (_gl_verify_function) (void))             \
+      [_GL_VERIFY_TRUE (R, DIAGNOSTIC)]
+#endif
+
+/* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h.  */
+#ifdef _GL_STATIC_ASSERT_H
+# if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert
+#  define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC)
+# endif
+# if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert
+#  define static_assert _Static_assert /* C11 requires this #define.  */
+# endif
+#endif
+
+/* @assert.h omit start@  */
+
+/* Each of these macros verifies that its argument R is nonzero.  To
+   be portable, R should be an integer constant expression.  Unlike
+   assert (R), there is no run-time overhead.
+
+   There are two macros, since no single macro can be used in all
+   contexts in C.  verify_true (R) is for scalar contexts, including
+   integer constant expression contexts.  verify (R) is for declaration
+   contexts, e.g., the top level.  */
+
+/* Verify requirement R at compile-time, as an integer constant expression.
+   Return 1.  This is equivalent to verify_expr (R, 1).
+
+   verify_true is obsolescent; please use verify_expr instead.  */
+
+#define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")")
+
+/* Verify requirement R at compile-time.  Return the value of the
+   expression E.  */
+
+#define verify_expr(R, E) \
+   (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E))
 
 /* Verify requirement R at compile-time, as a declaration without a
    trailing ';'.  */
 
-# define verify(R) extern int (* verify_function__ (void)) [verify_true (R)]
+#define verify(R) _GL_VERIFY (R, "verify (" #R ")")
+
+#ifndef __has_builtin
+# define __has_builtin(x) 0
+#endif
+
+/* Assume that R always holds.  This lets the compiler optimize
+   accordingly.  R should not have side-effects; it may or may not be
+   evaluated.  Behavior is undefined if R is false.  */
+
+#if (__has_builtin (__builtin_unreachable) \
+     || 4 < __GNUC__ + (5 <= __GNUC_MINOR__))
+# define assume(R) ((R) ? (void) 0 : __builtin_unreachable ())
+#elif 1200 <= _MSC_VER
+# define assume(R) __assume (R)
+#elif (defined lint \
+       && (__has_builtin (__builtin_trap) \
+           || 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__))))
+  /* Doing it this way helps various packages when configured with
+     --enable-gcc-warnings, which compiles with -Dlint.  It's nicer
+     when 'assume' silences warnings even with older GCCs.  */
+# define assume(R) ((R) ? (void) 0 : __builtin_trap ())
+#else
+# define assume(R) ((void) (0 && (R)))
+#endif
+
+/* @assert.h omit end@  */
 
 #endif
index 3e3a0c3..1874b4d 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
 
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Eric Blake.  */
 
@@ -29,6 +28,7 @@
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
 
 #if defined __need_mbstate_t || defined __need_wint_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H
 /* Special invocation convention:
 #else
 /* Normal invocation convention.  */
 
-#ifndef _GL_WCHAR_H
+#ifndef _@GUARD_PREFIX@_WCHAR_H
 
 #define _GL_ALREADY_INCLUDING_WCHAR_H
 
+#if @HAVE_FEATURES_H@
+# include <features.h> /* for __GLIBC__ */
+#endif
+
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
    included before <wchar.h>.
+   In some builds of uClibc, <wchar.h> is nonexistent and wchar_t is defined
+   by <stddef.h>.
    But avoid namespace pollution on glibc systems.  */
-#ifndef __GLIBC__
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
 # include <stddef.h>
+#endif
+#ifndef __GLIBC__
 # include <stdio.h>
 # include <time.h>
 #endif
 
 #undef _GL_ALREADY_INCLUDING_WCHAR_H
 
-#ifndef _GL_WCHAR_H
-#define _GL_WCHAR_H
+#ifndef _@GUARD_PREFIX@_WCHAR_H
+#define _@GUARD_PREFIX@_WCHAR_H
+
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+   The attribute __pure__ was added in gcc 2.96.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 #  define WEOF -1
 # endif
 #else
+/* MSVC defines wint_t as 'unsigned short' in <crtdefs.h>.
+   This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be
+   "unchanged by default argument promotions".  Override it.  */
+# if defined _MSC_VER
+#  if !GNULIB_defined_wint_t
+#   include <crtdefs.h>
+typedef unsigned int rpl_wint_t;
+#   undef wint_t
+#   define wint_t rpl_wint_t
+#   define GNULIB_defined_wint_t 1
+#  endif
+# endif
 # ifndef WEOF
 #  define WEOF ((wint_t) -1)
 # endif
    On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for
    implementing mbrtowc for encodings like UTF-8.  */
 #if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@
+# if !GNULIB_defined_mbstate_t
 typedef int rpl_mbstate_t;
-# undef mbstate_t
-# define mbstate_t rpl_mbstate_t
-# define GNULIB_defined_mbstate_t 1
+#  undef mbstate_t
+#  define mbstate_t rpl_mbstate_t
+#  define GNULIB_defined_mbstate_t 1
+# endif
 #endif
 
 
@@ -113,11 +143,11 @@ typedef int rpl_mbstate_t;
 #   undef btowc
 #   define btowc rpl_btowc
 #  endif
-_GL_FUNCDECL_RPL (btowc, wint_t, (int c));
+_GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE);
 _GL_CXXALIAS_RPL (btowc, wint_t, (int c));
 # else
 #  if !@HAVE_BTOWC@
-_GL_FUNCDECL_SYS (btowc, wint_t, (int c));
+_GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE);
 #  endif
 _GL_CXXALIAS_SYS (btowc, wint_t, (int c));
 # endif
@@ -138,12 +168,12 @@ _GL_WARN_ON_USE (btowc, "btowc is unportable - "
 #   undef wctob
 #   define wctob rpl_wctob
 #  endif
-_GL_FUNCDECL_RPL (wctob, int, (wint_t wc));
+_GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE);
 _GL_CXXALIAS_RPL (wctob, int, (wint_t wc));
 # else
 #  if !defined wctob && !@HAVE_DECL_WCTOB@
 /* wctob is provided by gnulib, or wctob exists but is not declared.  */
-_GL_FUNCDECL_SYS (wctob, int, (wint_t wc));
+_GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE);
 #  endif
 _GL_CXXALIAS_SYS (wctob, int, (wint_t wc));
 # endif
@@ -404,12 +434,12 @@ _GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - "
 #   undef wcwidth
 #   define wcwidth rpl_wcwidth
 #  endif
-_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t));
+_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE);
 _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t));
 # else
 #  if !@HAVE_DECL_WCWIDTH@
 /* wcwidth exists but is not declared.  */
-_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t));
+_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE);
 #  endif
 _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t));
 # endif
@@ -423,6 +453,576 @@ _GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - "
 #endif
 
 
-#endif /* _GL_WCHAR_H */
-#endif /* _GL_WCHAR_H */
+/* Search N wide characters of S for C.  */
+#if @GNULIB_WMEMCHR@
+# if !@HAVE_WMEMCHR@
+_GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n)
+                                      _GL_ATTRIBUTE_PURE);
+# endif
+  /* On some systems, this function is defined as an overloaded function:
+       extern "C++" {
+         const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t);
+         wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t);
+       }  */
+_GL_CXXALIAS_SYS_CAST2 (wmemchr,
+                        wchar_t *, (const wchar_t *, wchar_t, size_t),
+                        const wchar_t *, (const wchar_t *, wchar_t, size_t));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
+_GL_CXXALIASWARN1 (wmemchr, const wchar_t *,
+                   (const wchar_t *s, wchar_t c, size_t n));
+# else
+_GL_CXXALIASWARN (wmemchr);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wmemchr
+# if HAVE_RAW_DECL_WMEMCHR
+_GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - "
+                 "use gnulib module wmemchr for portability");
+# endif
+#endif
+
+
+/* Compare N wide characters of S1 and S2.  */
+#if @GNULIB_WMEMCMP@
+# if !@HAVE_WMEMCMP@
+_GL_FUNCDECL_SYS (wmemcmp, int,
+                  (const wchar_t *s1, const wchar_t *s2, size_t n)
+                  _GL_ATTRIBUTE_PURE);
+# endif
+_GL_CXXALIAS_SYS (wmemcmp, int,
+                  (const wchar_t *s1, const wchar_t *s2, size_t n));
+_GL_CXXALIASWARN (wmemcmp);
+#elif defined GNULIB_POSIXCHECK
+# undef wmemcmp
+# if HAVE_RAW_DECL_WMEMCMP
+_GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - "
+                 "use gnulib module wmemcmp for portability");
+# endif
+#endif
+
+
+/* Copy N wide characters of SRC to DEST.  */
+#if @GNULIB_WMEMCPY@
+# if !@HAVE_WMEMCPY@
+_GL_FUNCDECL_SYS (wmemcpy, wchar_t *,
+                  (wchar_t *dest, const wchar_t *src, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wmemcpy, wchar_t *,
+                  (wchar_t *dest, const wchar_t *src, size_t n));
+_GL_CXXALIASWARN (wmemcpy);
+#elif defined GNULIB_POSIXCHECK
+# undef wmemcpy
+# if HAVE_RAW_DECL_WMEMCPY
+_GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - "
+                 "use gnulib module wmemcpy for portability");
+# endif
+#endif
+
+
+/* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for
+   overlapping memory areas.  */
+#if @GNULIB_WMEMMOVE@
+# if !@HAVE_WMEMMOVE@
+_GL_FUNCDECL_SYS (wmemmove, wchar_t *,
+                  (wchar_t *dest, const wchar_t *src, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wmemmove, wchar_t *,
+                  (wchar_t *dest, const wchar_t *src, size_t n));
+_GL_CXXALIASWARN (wmemmove);
+#elif defined GNULIB_POSIXCHECK
+# undef wmemmove
+# if HAVE_RAW_DECL_WMEMMOVE
+_GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - "
+                 "use gnulib module wmemmove for portability");
+# endif
+#endif
+
+
+/* Set N wide characters of S to C.  */
+#if @GNULIB_WMEMSET@
+# if !@HAVE_WMEMSET@
+_GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
+_GL_CXXALIASWARN (wmemset);
+#elif defined GNULIB_POSIXCHECK
+# undef wmemset
+# if HAVE_RAW_DECL_WMEMSET
+_GL_WARN_ON_USE (wmemset, "wmemset is unportable - "
+                 "use gnulib module wmemset for portability");
+# endif
+#endif
+
+
+/* Return the number of wide characters in S.  */
+#if @GNULIB_WCSLEN@
+# if !@HAVE_WCSLEN@
+_GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE);
+# endif
+_GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s));
+_GL_CXXALIASWARN (wcslen);
+#elif defined GNULIB_POSIXCHECK
+# undef wcslen
+# if HAVE_RAW_DECL_WCSLEN
+_GL_WARN_ON_USE (wcslen, "wcslen is unportable - "
+                 "use gnulib module wcslen for portability");
+# endif
+#endif
+
+
+/* Return the number of wide characters in S, but at most MAXLEN.  */
+#if @GNULIB_WCSNLEN@
+# if !@HAVE_WCSNLEN@
+_GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)
+                                   _GL_ATTRIBUTE_PURE);
+# endif
+_GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen));
+_GL_CXXALIASWARN (wcsnlen);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsnlen
+# if HAVE_RAW_DECL_WCSNLEN
+_GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - "
+                 "use gnulib module wcsnlen for portability");
+# endif
+#endif
+
+
+/* Copy SRC to DEST.  */
+#if @GNULIB_WCSCPY@
+# if !@HAVE_WCSCPY@
+_GL_FUNCDECL_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
+# endif
+_GL_CXXALIAS_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
+_GL_CXXALIASWARN (wcscpy);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscpy
+# if HAVE_RAW_DECL_WCSCPY
+_GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - "
+                 "use gnulib module wcscpy for portability");
+# endif
+#endif
+
+
+/* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST.  */
+#if @GNULIB_WCPCPY@
+# if !@HAVE_WCPCPY@
+_GL_FUNCDECL_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
+# endif
+_GL_CXXALIAS_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
+_GL_CXXALIASWARN (wcpcpy);
+#elif defined GNULIB_POSIXCHECK
+# undef wcpcpy
+# if HAVE_RAW_DECL_WCPCPY
+_GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - "
+                 "use gnulib module wcpcpy for portability");
+# endif
+#endif
+
+
+/* Copy no more than N wide characters of SRC to DEST.  */
+#if @GNULIB_WCSNCPY@
+# if !@HAVE_WCSNCPY@
+_GL_FUNCDECL_SYS (wcsncpy, wchar_t *,
+                  (wchar_t *dest, const wchar_t *src, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wcsncpy, wchar_t *,
+                  (wchar_t *dest, const wchar_t *src, size_t n));
+_GL_CXXALIASWARN (wcsncpy);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsncpy
+# if HAVE_RAW_DECL_WCSNCPY
+_GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - "
+                 "use gnulib module wcsncpy for portability");
+# endif
+#endif
+
+
+/* Copy no more than N characters of SRC to DEST, returning the address of
+   the last character written into DEST.  */
+#if @GNULIB_WCPNCPY@
+# if !@HAVE_WCPNCPY@
+_GL_FUNCDECL_SYS (wcpncpy, wchar_t *,
+                  (wchar_t *dest, const wchar_t *src, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wcpncpy, wchar_t *,
+                  (wchar_t *dest, const wchar_t *src, size_t n));
+_GL_CXXALIASWARN (wcpncpy);
+#elif defined GNULIB_POSIXCHECK
+# undef wcpncpy
+# if HAVE_RAW_DECL_WCPNCPY
+_GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - "
+                 "use gnulib module wcpncpy for portability");
+# endif
+#endif
+
+
+/* Append SRC onto DEST.  */
+#if @GNULIB_WCSCAT@
+# if !@HAVE_WCSCAT@
+_GL_FUNCDECL_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src));
+# endif
+_GL_CXXALIAS_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src));
+_GL_CXXALIASWARN (wcscat);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscat
+# if HAVE_RAW_DECL_WCSCAT
+_GL_WARN_ON_USE (wcscat, "wcscat is unportable - "
+                 "use gnulib module wcscat for portability");
+# endif
+#endif
+
+
+/* Append no more than N wide characters of SRC onto DEST.  */
+#if @GNULIB_WCSNCAT@
+# if !@HAVE_WCSNCAT@
+_GL_FUNCDECL_SYS (wcsncat, wchar_t *,
+                  (wchar_t *dest, const wchar_t *src, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wcsncat, wchar_t *,
+                  (wchar_t *dest, const wchar_t *src, size_t n));
+_GL_CXXALIASWARN (wcsncat);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsncat
+# if HAVE_RAW_DECL_WCSNCAT
+_GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - "
+                 "use gnulib module wcsncat for portability");
+# endif
+#endif
+
+
+/* Compare S1 and S2.  */
+#if @GNULIB_WCSCMP@
+# if !@HAVE_WCSCMP@
+_GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)
+                               _GL_ATTRIBUTE_PURE);
+# endif
+_GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
+_GL_CXXALIASWARN (wcscmp);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscmp
+# if HAVE_RAW_DECL_WCSCMP
+_GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - "
+                 "use gnulib module wcscmp for portability");
+# endif
+#endif
+
+
+/* Compare no more than N wide characters of S1 and S2.  */
+#if @GNULIB_WCSNCMP@
+# if !@HAVE_WCSNCMP@
+_GL_FUNCDECL_SYS (wcsncmp, int,
+                  (const wchar_t *s1, const wchar_t *s2, size_t n)
+                  _GL_ATTRIBUTE_PURE);
+# endif
+_GL_CXXALIAS_SYS (wcsncmp, int,
+                  (const wchar_t *s1, const wchar_t *s2, size_t n));
+_GL_CXXALIASWARN (wcsncmp);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsncmp
+# if HAVE_RAW_DECL_WCSNCMP
+_GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - "
+                 "use gnulib module wcsncmp for portability");
+# endif
+#endif
+
+
+/* Compare S1 and S2, ignoring case.  */
+#if @GNULIB_WCSCASECMP@
+# if !@HAVE_WCSCASECMP@
+_GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)
+                                   _GL_ATTRIBUTE_PURE);
+# endif
+_GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2));
+_GL_CXXALIASWARN (wcscasecmp);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscasecmp
+# if HAVE_RAW_DECL_WCSCASECMP
+_GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - "
+                 "use gnulib module wcscasecmp for portability");
+# endif
+#endif
+
+
+/* Compare no more than N chars of S1 and S2, ignoring case.  */
+#if @GNULIB_WCSNCASECMP@
+# if !@HAVE_WCSNCASECMP@
+_GL_FUNCDECL_SYS (wcsncasecmp, int,
+                  (const wchar_t *s1, const wchar_t *s2, size_t n)
+                  _GL_ATTRIBUTE_PURE);
+# endif
+_GL_CXXALIAS_SYS (wcsncasecmp, int,
+                  (const wchar_t *s1, const wchar_t *s2, size_t n));
+_GL_CXXALIASWARN (wcsncasecmp);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsncasecmp
+# if HAVE_RAW_DECL_WCSNCASECMP
+_GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - "
+                 "use gnulib module wcsncasecmp for portability");
+# endif
+#endif
+
+
+/* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE
+   category of the current locale.  */
+#if @GNULIB_WCSCOLL@
+# if !@HAVE_WCSCOLL@
+_GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2));
+# endif
+_GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2));
+_GL_CXXALIASWARN (wcscoll);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscoll
+# if HAVE_RAW_DECL_WCSCOLL
+_GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - "
+                 "use gnulib module wcscoll for portability");
+# endif
+#endif
+
+
+/* Transform S2 into array pointed to by S1 such that if wcscmp is applied
+   to two transformed strings the result is the as applying 'wcscoll' to the
+   original strings.  */
+#if @GNULIB_WCSXFRM@
+# if !@HAVE_WCSXFRM@
+_GL_FUNCDECL_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n));
+_GL_CXXALIASWARN (wcsxfrm);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsxfrm
+# if HAVE_RAW_DECL_WCSXFRM
+_GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - "
+                 "use gnulib module wcsxfrm for portability");
+# endif
+#endif
+
+
+/* Duplicate S, returning an identical malloc'd string.  */
+#if @GNULIB_WCSDUP@
+# if !@HAVE_WCSDUP@
+_GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s));
+# endif
+_GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s));
+_GL_CXXALIASWARN (wcsdup);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsdup
+# if HAVE_RAW_DECL_WCSDUP
+_GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - "
+                 "use gnulib module wcsdup for portability");
+# endif
+#endif
+
+
+/* Find the first occurrence of WC in WCS.  */
+#if @GNULIB_WCSCHR@
+# if !@HAVE_WCSCHR@
+_GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc)
+                                     _GL_ATTRIBUTE_PURE);
+# endif
+  /* On some systems, this function is defined as an overloaded function:
+       extern "C++" {
+         const wchar_t * std::wcschr (const wchar_t *, wchar_t);
+         wchar_t * std::wcschr (wchar_t *, wchar_t);
+       }  */
+_GL_CXXALIAS_SYS_CAST2 (wcschr,
+                        wchar_t *, (const wchar_t *, wchar_t),
+                        const wchar_t *, (const wchar_t *, wchar_t));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc));
+_GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
+# else
+_GL_CXXALIASWARN (wcschr);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcschr
+# if HAVE_RAW_DECL_WCSCHR
+_GL_WARN_ON_USE (wcschr, "wcschr is unportable - "
+                 "use gnulib module wcschr for portability");
+# endif
+#endif
+
+
+/* Find the last occurrence of WC in WCS.  */
+#if @GNULIB_WCSRCHR@
+# if !@HAVE_WCSRCHR@
+_GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc)
+                                      _GL_ATTRIBUTE_PURE);
+# endif
+  /* On some systems, this function is defined as an overloaded function:
+       extern "C++" {
+         const wchar_t * std::wcsrchr (const wchar_t *, wchar_t);
+         wchar_t * std::wcsrchr (wchar_t *, wchar_t);
+       }  */
+_GL_CXXALIAS_SYS_CAST2 (wcsrchr,
+                        wchar_t *, (const wchar_t *, wchar_t),
+                        const wchar_t *, (const wchar_t *, wchar_t));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc));
+_GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
+# else
+_GL_CXXALIASWARN (wcsrchr);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcsrchr
+# if HAVE_RAW_DECL_WCSRCHR
+_GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - "
+                 "use gnulib module wcsrchr for portability");
+# endif
+#endif
+
+
+/* Return the length of the initial segmet of WCS which consists entirely
+   of wide characters not in REJECT.  */
+#if @GNULIB_WCSCSPN@
+# if !@HAVE_WCSCSPN@
+_GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)
+                                   _GL_ATTRIBUTE_PURE);
+# endif
+_GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject));
+_GL_CXXALIASWARN (wcscspn);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscspn
+# if HAVE_RAW_DECL_WCSCSPN
+_GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - "
+                 "use gnulib module wcscspn for portability");
+# endif
+#endif
+
+
+/* Return the length of the initial segmet of WCS which consists entirely
+   of wide characters in ACCEPT.  */
+#if @GNULIB_WCSSPN@
+# if !@HAVE_WCSSPN@
+_GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)
+                                  _GL_ATTRIBUTE_PURE);
+# endif
+_GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept));
+_GL_CXXALIASWARN (wcsspn);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsspn
+# if HAVE_RAW_DECL_WCSSPN
+_GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - "
+                 "use gnulib module wcsspn for portability");
+# endif
+#endif
+
+
+/* Find the first occurrence in WCS of any character in ACCEPT.  */
+#if @GNULIB_WCSPBRK@
+# if !@HAVE_WCSPBRK@
+_GL_FUNCDECL_SYS (wcspbrk, wchar_t *,
+                  (const wchar_t *wcs, const wchar_t *accept)
+                  _GL_ATTRIBUTE_PURE);
+# endif
+  /* On some systems, this function is defined as an overloaded function:
+       extern "C++" {
+         const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *);
+         wchar_t * std::wcspbrk (wchar_t *, const wchar_t *);
+       }  */
+_GL_CXXALIAS_SYS_CAST2 (wcspbrk,
+                        wchar_t *, (const wchar_t *, const wchar_t *),
+                        const wchar_t *, (const wchar_t *, const wchar_t *));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcspbrk, wchar_t *,
+                   (wchar_t *wcs, const wchar_t *accept));
+_GL_CXXALIASWARN1 (wcspbrk, const wchar_t *,
+                   (const wchar_t *wcs, const wchar_t *accept));
+# else
+_GL_CXXALIASWARN (wcspbrk);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcspbrk
+# if HAVE_RAW_DECL_WCSPBRK
+_GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - "
+                 "use gnulib module wcspbrk for portability");
+# endif
+#endif
+
+
+/* Find the first occurrence of NEEDLE in HAYSTACK.  */
+#if @GNULIB_WCSSTR@
+# if !@HAVE_WCSSTR@
+_GL_FUNCDECL_SYS (wcsstr, wchar_t *,
+                  (const wchar_t *haystack, const wchar_t *needle)
+                  _GL_ATTRIBUTE_PURE);
+# endif
+  /* On some systems, this function is defined as an overloaded function:
+       extern "C++" {
+         const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *);
+         wchar_t * std::wcsstr (wchar_t *, const wchar_t *);
+       }  */
+_GL_CXXALIAS_SYS_CAST2 (wcsstr,
+                        wchar_t *, (const wchar_t *, const wchar_t *),
+                        const wchar_t *, (const wchar_t *, const wchar_t *));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+     && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcsstr, wchar_t *,
+                   (wchar_t *haystack, const wchar_t *needle));
+_GL_CXXALIASWARN1 (wcsstr, const wchar_t *,
+                   (const wchar_t *haystack, const wchar_t *needle));
+# else
+_GL_CXXALIASWARN (wcsstr);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcsstr
+# if HAVE_RAW_DECL_WCSSTR
+_GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - "
+                 "use gnulib module wcsstr for portability");
+# endif
+#endif
+
+
+/* Divide WCS into tokens separated by characters in DELIM.  */
+#if @GNULIB_WCSTOK@
+# if !@HAVE_WCSTOK@
+_GL_FUNCDECL_SYS (wcstok, wchar_t *,
+                  (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr));
+# endif
+_GL_CXXALIAS_SYS (wcstok, wchar_t *,
+                  (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr));
+_GL_CXXALIASWARN (wcstok);
+#elif defined GNULIB_POSIXCHECK
+# undef wcstok
+# if HAVE_RAW_DECL_WCSTOK
+_GL_WARN_ON_USE (wcstok, "wcstok is unportable - "
+                 "use gnulib module wcstok for portability");
+# endif
+#endif
+
+
+/* Determine number of column positions required for first N wide
+   characters (or fewer if S ends before this) in S.  */
+#if @GNULIB_WCSWIDTH@
+# if @REPLACE_WCSWIDTH@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef wcswidth
+#   define wcswidth rpl_wcswidth
+#  endif
+_GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n)
+                                 _GL_ATTRIBUTE_PURE);
+_GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n));
+# else
+#  if !@HAVE_WCSWIDTH@
+_GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n)
+                                 _GL_ATTRIBUTE_PURE);
+#  endif
+_GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n));
+# endif
+_GL_CXXALIASWARN (wcswidth);
+#elif defined GNULIB_POSIXCHECK
+# undef wcswidth
+# if HAVE_RAW_DECL_WCSWIDTH
+_GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - "
+                 "use gnulib module wcswidth for portability");
+# endif
+#endif
+
+
+#endif /* _@GUARD_PREFIX@_WCHAR_H */
+#endif /* _@GUARD_PREFIX@_WCHAR_H */
 #endif
diff --git a/lib/wctype-h.c b/lib/wctype-h.c
new file mode 100644 (file)
index 0000000..bb5f847
--- /dev/null
@@ -0,0 +1,4 @@
+/* Normally this would be wctype.c, but that name's already taken.  */
+#include <config.h>
+#define _GL_WCTYPE_INLINE _GL_EXTERN_INLINE
+#include "wctype.h"
index 8cfdfb0..b5b6093 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
 
-   Copyright (C) 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2006-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Bruno Haible and Paul Eggert.  */
 
  * wctrans_t, and wctype_t are not yet implemented.
  */
 
-#ifndef _GL_WCTYPE_H
+#ifndef _@GUARD_PREFIX@_WCTYPE_H
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
 
 #if @HAVE_WINT_T@
 /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.
 # include <wchar.h>
 #endif
 
+/* mingw has declarations of towupper and towlower in <ctype.h> as
+   well <wctype.h>.  Include <ctype.h> in advance to avoid rpl_ prefix
+   being added to the declarations.  */
+#ifdef __MINGW32__
+# include <ctype.h>
+#endif
+
 /* Include the original <wctype.h> if it exists.
    BeOS 5 has the functions but no <wctype.h>.  */
 /* The include_next requires a split double-inclusion guard.  */
 # @INCLUDE_NEXT@ @NEXT_WCTYPE_H@
 #endif
 
-#ifndef _GL_WCTYPE_H
-#define _GL_WCTYPE_H
+#ifndef _@GUARD_PREFIX@_WCTYPE_H
+#define _@GUARD_PREFIX@_WCTYPE_H
+
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_WCTYPE_INLINE
+# define _GL_WCTYPE_INLINE _GL_INLINE
+#endif
 
 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 
 /* The definition of _GL_WARN_ON_USE is copied here.  */
 
+/* Solaris 2.6 <wctype.h> includes <widec.h> which includes <euc.h> which
+   #defines a number of identifiers in the application namespace.  Revert
+   these #defines.  */
+#ifdef __sun
+# undef multibyte
+# undef eucw1
+# undef eucw2
+# undef eucw3
+# undef scrw1
+# undef scrw2
+# undef scrw3
+#endif
+
 /* Define wint_t and WEOF.  (Also done in wchar.in.h.)  */
 #if !@HAVE_WINT_T@ && !defined wint_t
 # define wint_t int
 #  define WEOF -1
 # endif
 #else
+/* MSVC defines wint_t as 'unsigned short' in <crtdefs.h>.
+   This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be
+   "unchanged by default argument promotions".  Override it.  */
+# if defined _MSC_VER
+#  if !GNULIB_defined_wint_t
+#   include <crtdefs.h>
+typedef unsigned int rpl_wint_t;
+#   undef wint_t
+#   define wint_t rpl_wint_t
+#   define GNULIB_defined_wint_t 1
+#  endif
+# endif
 # ifndef WEOF
 #  define WEOF ((wint_t) -1)
 # endif
 #endif
 
 
+#if !GNULIB_defined_wctype_functions
+
 /* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
    Linux libc5 has <wctype.h> and the functions but they are broken.
    Assume all 11 functions (all isw* except iswblank) are implemented the
    same way, or not at all.  */
-#if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@
+# if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@
 
 /* IRIX 5.3 has macros but no functions, its isw* macros refer to an
    undefined variable _ctmp_ and to <ctype.h> macros like _P, and they
    refer to system functions like _iswctype that are not in the
    standard C library.  Rather than try to get ancient buggy
    implementations like this to work, just disable them.  */
-# undef iswalnum
-# undef iswalpha
-# undef iswblank
-# undef iswcntrl
-# undef iswdigit
-# undef iswgraph
-# undef iswlower
-# undef iswprint
-# undef iswpunct
-# undef iswspace
-# undef iswupper
-# undef iswxdigit
-# undef towlower
-# undef towupper
+#  undef iswalnum
+#  undef iswalpha
+#  undef iswblank
+#  undef iswcntrl
+#  undef iswdigit
+#  undef iswgraph
+#  undef iswlower
+#  undef iswprint
+#  undef iswpunct
+#  undef iswspace
+#  undef iswupper
+#  undef iswxdigit
+#  undef towlower
+#  undef towupper
 
 /* Linux libc5 has <wctype.h> and the functions but they are broken.  */
-# if @REPLACE_ISWCNTRL@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   define iswalnum rpl_iswalnum
-#   define iswalpha rpl_iswalpha
-#   define iswblank rpl_iswblank
-#   define iswcntrl rpl_iswcntrl
-#   define iswdigit rpl_iswdigit
-#   define iswgraph rpl_iswgraph
-#   define iswlower rpl_iswlower
-#   define iswprint rpl_iswprint
-#   define iswpunct rpl_iswpunct
-#   define iswspace rpl_iswspace
-#   define iswupper rpl_iswupper
-#   define iswxdigit rpl_iswxdigit
-#   define towlower rpl_towlower
-#   define towupper rpl_towupper
+#  if @REPLACE_ISWCNTRL@
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    define iswalnum rpl_iswalnum
+#    define iswalpha rpl_iswalpha
+#    define iswblank rpl_iswblank
+#    define iswcntrl rpl_iswcntrl
+#    define iswdigit rpl_iswdigit
+#    define iswgraph rpl_iswgraph
+#    define iswlower rpl_iswlower
+#    define iswprint rpl_iswprint
+#    define iswpunct rpl_iswpunct
+#    define iswspace rpl_iswspace
+#    define iswupper rpl_iswupper
+#    define iswxdigit rpl_iswxdigit
+#   endif
+#  endif
+#  if @REPLACE_TOWLOWER@
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    define towlower rpl_towlower
+#    define towupper rpl_towupper
+#   endif
 #  endif
-# endif
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswalnum
-# else
+#  else
 iswalnum
-# endif
+#  endif
          (wint_t wc)
 {
   return ((wc >= '0' && wc <= '9')
           || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
 }
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswalpha
-# else
+#  else
 iswalpha
-# endif
+#  endif
          (wint_t wc)
 {
   return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
 }
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswblank
-# else
+#  else
 iswblank
-# endif
+#  endif
          (wint_t wc)
 {
   return wc == ' ' || wc == '\t';
 }
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswcntrl
-# else
+#  else
 iswcntrl
-# endif
+#  endif
         (wint_t wc)
 {
   return (wc & ~0x1f) == 0 || wc == 0x7f;
 }
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswdigit
-# else
+#  else
 iswdigit
-# endif
+#  endif
          (wint_t wc)
 {
   return wc >= '0' && wc <= '9';
 }
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswgraph
-# else
+#  else
 iswgraph
-# endif
+#  endif
          (wint_t wc)
 {
   return wc >= '!' && wc <= '~';
 }
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswlower
-# else
+#  else
 iswlower
-# endif
+#  endif
          (wint_t wc)
 {
   return wc >= 'a' && wc <= 'z';
 }
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswprint
-# else
+#  else
 iswprint
-# endif
+#  endif
          (wint_t wc)
 {
   return wc >= ' ' && wc <= '~';
 }
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswpunct
-# else
+#  else
 iswpunct
-# endif
+#  endif
          (wint_t wc)
 {
   return (wc >= '!' && wc <= '~'
@@ -219,75 +265,78 @@ iswpunct
                || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')));
 }
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswspace
-# else
+#  else
 iswspace
-# endif
+#  endif
          (wint_t wc)
 {
   return (wc == ' ' || wc == '\t'
           || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
 }
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswupper
-# else
+#  else
 iswupper
-# endif
+#  endif
          (wint_t wc)
 {
   return wc >= 'A' && wc <= 'Z';
 }
 
-static inline int
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE int
+#  if @REPLACE_ISWCNTRL@
 rpl_iswxdigit
-# else
+#  else
 iswxdigit
-# endif
+#  endif
           (wint_t wc)
 {
   return ((wc >= '0' && wc <= '9')
           || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
 }
 
-static inline wint_t
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE wint_t
+#  if @REPLACE_TOWLOWER@
 rpl_towlower
-# else
+#  else
 towlower
-# endif
+#  endif
          (wint_t wc)
 {
   return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc);
 }
 
-static inline wint_t
-# if @REPLACE_ISWCNTRL@
+_GL_WCTYPE_INLINE wint_t
+#  if @REPLACE_TOWLOWER@
 rpl_towupper
-# else
+#  else
 towupper
-# endif
+#  endif
          (wint_t wc)
 {
   return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc);
 }
 
-#elif ! @HAVE_ISWBLANK@
+# elif @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@)
 /* Only the iswblank function is missing.  */
 
-static inline int
-iswblank (wint_t wc)
-{
-  return wc == ' ' || wc == '\t';
-}
+#  if @REPLACE_ISWBLANK@
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    define iswblank rpl_iswblank
+#   endif
+_GL_FUNCDECL_RPL (iswblank, int, (wint_t wc));
+#  else
+_GL_FUNCDECL_SYS (iswblank, int, (wint_t wc));
+#  endif
 
-#endif
+# endif
 
-#if defined __MINGW32__
+# if defined __MINGW32__
 
 /* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t.
    The functions towlower and towupper are implemented in the MSVCRT library
@@ -302,30 +351,32 @@ iswblank (wint_t wc)
       result register.  We need to fix this by adding a zero-extend from
       wchar_t to wint_t after the call.  */
 
-static inline wint_t
+_GL_WCTYPE_INLINE wint_t
 rpl_towlower (wint_t wc)
 {
   return (wint_t) (wchar_t) towlower (wc);
 }
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define towlower rpl_towlower
-# endif
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define towlower rpl_towlower
+#  endif
 
-static inline wint_t
+_GL_WCTYPE_INLINE wint_t
 rpl_towupper (wint_t wc)
 {
   return (wint_t) (wchar_t) towupper (wc);
 }
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#  define towupper rpl_towupper
-# endif
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define towupper rpl_towupper
+#  endif
+
+# endif /* __MINGW32__ */
 
-#endif /* __MINGW32__ */
+# define GNULIB_defined_wctype_functions 1
+#endif
 
 #if @REPLACE_ISWCNTRL@
 _GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc));
 _GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc));
-_GL_CXXALIAS_RPL (iswblank, int, (wint_t wc));
 _GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc));
 _GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc));
 _GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc));
@@ -338,7 +389,6 @@ _GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc));
 #else
 _GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc));
 _GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc));
-_GL_CXXALIAS_SYS (iswblank, int, (wint_t wc));
 _GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc));
 _GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc));
 _GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc));
@@ -351,7 +401,6 @@ _GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc));
 #endif
 _GL_CXXALIASWARN (iswalnum);
 _GL_CXXALIASWARN (iswalpha);
-_GL_CXXALIASWARN (iswblank);
 _GL_CXXALIASWARN (iswcntrl);
 _GL_CXXALIASWARN (iswdigit);
 _GL_CXXALIASWARN (iswgraph);
@@ -362,7 +411,55 @@ _GL_CXXALIASWARN (iswspace);
 _GL_CXXALIASWARN (iswupper);
 _GL_CXXALIASWARN (iswxdigit);
 
-#if @REPLACE_ISWCNTRL@ || defined __MINGW32__
+#if @GNULIB_ISWBLANK@
+# if @REPLACE_ISWCNTRL@ || @REPLACE_ISWBLANK@
+_GL_CXXALIAS_RPL (iswblank, int, (wint_t wc));
+# else
+_GL_CXXALIAS_SYS (iswblank, int, (wint_t wc));
+# endif
+_GL_CXXALIASWARN (iswblank);
+#endif
+
+#if !@HAVE_WCTYPE_T@
+# if !GNULIB_defined_wctype_t
+typedef void * wctype_t;
+#  define GNULIB_defined_wctype_t 1
+# endif
+#endif
+
+/* Get a descriptor for a wide character property.  */
+#if @GNULIB_WCTYPE@
+# if !@HAVE_WCTYPE_T@
+_GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name));
+# endif
+_GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name));
+_GL_CXXALIASWARN (wctype);
+#elif defined GNULIB_POSIXCHECK
+# undef wctype
+# if HAVE_RAW_DECL_WCTYPE
+_GL_WARN_ON_USE (wctype, "wctype is unportable - "
+                 "use gnulib module wctype for portability");
+# endif
+#endif
+
+/* Test whether a wide character has a given property.
+   The argument WC must be either a wchar_t value or WEOF.
+   The argument DESC must have been returned by the wctype() function.  */
+#if @GNULIB_ISWCTYPE@
+# if !@HAVE_WCTYPE_T@
+_GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc));
+# endif
+_GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc));
+_GL_CXXALIASWARN (iswctype);
+#elif defined GNULIB_POSIXCHECK
+# undef iswctype
+# if HAVE_RAW_DECL_ISWCTYPE
+_GL_WARN_ON_USE (iswctype, "iswctype is unportable - "
+                 "use gnulib module iswctype for portability");
+# endif
+#endif
+
+#if @REPLACE_TOWLOWER@ || defined __MINGW32__
 _GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc));
 _GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc));
 #else
@@ -372,6 +469,46 @@ _GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc));
 _GL_CXXALIASWARN (towlower);
 _GL_CXXALIASWARN (towupper);
 
+#if !@HAVE_WCTRANS_T@
+# if !GNULIB_defined_wctrans_t
+typedef void * wctrans_t;
+#  define GNULIB_defined_wctrans_t 1
+# endif
+#endif
+
+/* Get a descriptor for a wide character case conversion.  */
+#if @GNULIB_WCTRANS@
+# if !@HAVE_WCTRANS_T@
+_GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name));
+# endif
+_GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name));
+_GL_CXXALIASWARN (wctrans);
+#elif defined GNULIB_POSIXCHECK
+# undef wctrans
+# if HAVE_RAW_DECL_WCTRANS
+_GL_WARN_ON_USE (wctrans, "wctrans is unportable - "
+                 "use gnulib module wctrans for portability");
+# endif
+#endif
+
+/* Perform a given case conversion on a wide character.
+   The argument WC must be either a wchar_t value or WEOF.
+   The argument DESC must have been returned by the wctrans() function.  */
+#if @GNULIB_TOWCTRANS@
+# if !@HAVE_WCTRANS_T@
+_GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
+# endif
+_GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
+_GL_CXXALIASWARN (towctrans);
+#elif defined GNULIB_POSIXCHECK
+# undef towctrans
+# if HAVE_RAW_DECL_TOWCTRANS
+_GL_WARN_ON_USE (towctrans, "towctrans is unportable - "
+                 "use gnulib module towctrans for portability");
+# endif
+#endif
+
+_GL_INLINE_HEADER_END
 
-#endif /* _GL_WCTYPE_H */
-#endif /* _GL_WCTYPE_H */
+#endif /* _@GUARD_PREFIX@_WCTYPE_H */
+#endif /* _@GUARD_PREFIX@_WCTYPE_H */
index e5c27f5..abe0756 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine the number of screen columns needed for a character.
-   Copyright (C) 2006-2007, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2006-2007, 2010-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -32,7 +32,7 @@ wcwidth (wchar_t wc)
 {
   /* In UTF-8 locales, use a Unicode aware width function.  */
   const char *encoding = locale_charset ();
-  if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0))
+  if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0))
     {
       /* We assume that in a UTF-8 locale, a wide character is the same as a
          Unicode character.  */
diff --git a/lib/xsize.c b/lib/xsize.c
new file mode 100644 (file)
index 0000000..4b4914c
--- /dev/null
@@ -0,0 +1,3 @@
+#include <config.h>
+#define XSIZE_INLINE _GL_EXTERN_INLINE
+#include "xsize.h"
index 3382280..83cb960 100644 (file)
@@ -1,6 +1,6 @@
 /* xsize.h -- Checked size_t computations.
 
-   Copyright (C) 2003, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2008-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
@@ -13,8 +13,7 @@
    GNU Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _XSIZE_H
 #define _XSIZE_H
 # include <stdint.h>
 #endif
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef XSIZE_INLINE
+# define XSIZE_INLINE _GL_INLINE
+#endif
+
 /* The size of memory objects is often computed through expressions of
    type size_t. Example:
       void* p = malloc (header_size + n * element_size).
@@ -49,7 +56,7 @@
   ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX)
 
 /* Sum of two sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -60,7 +67,7 @@ xsum (size_t size1, size_t size2)
 }
 
 /* Sum of three sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -70,7 +77,7 @@ xsum3 (size_t size1, size_t size2, size_t size3)
 }
 
 /* Sum of four sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -80,7 +87,7 @@ xsum4 (size_t size1, size_t size2, size_t size3, size_t size4)
 }
 
 /* Maximum of two sizes, with overflow check.  */
-static inline size_t
+XSIZE_INLINE size_t
 #if __GNUC__ >= 3
 __attribute__ ((__pure__))
 #endif
@@ -93,7 +100,7 @@ xmax (size_t size1, size_t size2)
 
 /* Multiplication of a count with an element size, with overflow check.
    The count must be >= 0 and the element size must be > 0.
-   This is a macro, not an inline function, so that it works correctly even
+   This is a macro, not a function, so that it works correctly even
    when N is of a wider type and N > SIZE_MAX.  */
 #define xtimes(N, ELSIZE) \
   ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX)
@@ -105,4 +112,6 @@ xmax (size_t size1, size_t size2)
 #define size_in_bounds_p(SIZE) \
   ((SIZE) != SIZE_MAX)
 
+_GL_INLINE_HEADER_END
+
 #endif /* _XSIZE_H */
index 53ef95a..1946e73 100644 (file)
@@ -1,7 +1,8 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -10,7 +11,8 @@
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 ])
 
-# serial 56 LT_INIT
+# serial 57 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -66,6 +68,7 @@ esac
 # ------------------
 AC_DEFUN([LT_INIT],
 [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
 AC_BEFORE([$0], [LTDL_INIT])dnl
@@ -82,6 +85,8 @@ AC_REQUIRE([LTVERSION_VERSION])dnl
 AC_REQUIRE([LTOBSOLETE_VERSION])dnl
 m4_require([_LT_PROG_LTMAIN])dnl
 
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
 dnl Parse OPTIONS
 _LT_SET_OPTIONS([$0], [$1])
 
@@ -118,7 +123,7 @@ m4_defun([_LT_CC_BASENAME],
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 ])
 
 
@@ -138,6 +143,11 @@ m4_defun([_LT_FILEUTILS_DEFAULTS],
 m4_defun([_LT_SETUP],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
@@ -160,10 +170,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
 dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_CMD_RELOAD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
 # See if we are running on zsh, and set the options which allow our
@@ -179,7 +192,6 @@ fi
 _LT_CHECK_OBJDIR
 
 m4_require([_LT_TAG_COMPILER])dnl
-_LT_PROG_ECHO_BACKSLASH
 
 case $host_os in
 aix3*)
@@ -193,23 +205,6 @@ aix3*)
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
@@ -250,6 +245,28 @@ _LT_CONFIG_COMMANDS
 ])# _LT_SETUP
 
 
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
 # _LT_PROG_LTMAIN
 # ---------------
 # Note that this code is called both from `configure', and `config.status'
@@ -408,7 +425,7 @@ m4_define([_lt_decl_all_varnames],
 # declaration there will have the same value as in `configure'.  VARNAME
 # must have a single quote delimited value for this to work.
 m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
 
 
 # _LT_CONFIG_STATUS_DECLARATIONS
@@ -418,7 +435,7 @@ m4_define([_LT_CONFIG_STATUS_DECLARE],
 # embedded single quotes properly.  In configure, this macro expands
 # each variable declared with _LT_DECL (and _LT_TAGDECL) into:
 #
-#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
 m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
 [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
     [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
@@ -517,12 +534,20 @@ LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -533,9 +558,9 @@ done
 # Double-quote double-evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -543,16 +568,38 @@ for var in lt_decl_all_varnames([[ \
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\[$]0 --fallback-echo"')dnl "
-  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
-  ;;
-esac
-
 _LT_OUTPUT_LIBTOOL_INIT
 ])
 
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test $lt_write_fail = 0 && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
 
 # LT_OUTPUT
 # ---------
@@ -562,20 +609,11 @@ _LT_OUTPUT_LIBTOOL_INIT
 AC_DEFUN([LT_OUTPUT],
 [: ${CONFIG_LT=./config.lt}
 AC_MSG_NOTICE([creating $CONFIG_LT])
-cat >"$CONFIG_LT" <<_LTEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate a libtool stub with the current configuration.
-
-lt_cl_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_LTEOF
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
 
 cat >>"$CONFIG_LT" <<\_LTEOF
-AS_SHELL_SANITIZE
-_AS_PREPARE
-
-exec AS_MESSAGE_FD>&1
+lt_cl_silent=false
 exec AS_MESSAGE_LOG_FD>>config.log
 {
   echo
@@ -601,7 +639,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
 configured by $[0], generated by m4_PACKAGE_STRING.
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2011 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
@@ -646,15 +684,13 @@ chmod +x "$CONFIG_LT"
 # appending to config.log, which fails on DOS, as config.log is still kept
 # open by configure.  Here we exec the FD to /dev/null, effectively closing
 # config.log, so it can be properly (re)opened and appended to by config.lt.
-if test "$no_create" != yes; then
-  lt_cl_success=:
-  test "$silent" = yes &&
-    lt_config_lt_args="$lt_config_lt_args --quiet"
-  exec AS_MESSAGE_LOG_FD>/dev/null
-  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-  exec AS_MESSAGE_LOG_FD>>config.log
-  $lt_cl_success || AS_EXIT(1)
-fi
+lt_cl_success=:
+test "$silent" = yes &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
 ])# LT_OUTPUT
 
 
@@ -717,15 +753,12 @@ _LT_EOF
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  _LT_PROG_XSI_SHELLFNS
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
 
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
+  _LT_PROG_REPLACE_SHELLFNS
 
-  mv -f "$cfgfile" "$ofile" ||
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 ],
@@ -770,6 +803,7 @@ AC_DEFUN([LT_LANG],
 m4_case([$1],
   [C],                 [_LT_LANG(C)],
   [C++],               [_LT_LANG(CXX)],
+  [Go],                        [_LT_LANG(GO)],
   [Java],              [_LT_LANG(GCJ)],
   [Fortran 77],                [_LT_LANG(F77)],
   [Fortran],           [_LT_LANG(FC)],
@@ -791,6 +825,31 @@ m4_defun([_LT_LANG],
 ])# _LT_LANG
 
 
+m4_ifndef([AC_PROG_GO], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
 # _LT_LANG_DEFAULT_CONFIG
 # -----------------------
 m4_defun([_LT_LANG_DEFAULT_CONFIG],
@@ -821,6 +880,10 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
        m4_ifdef([LT_PROG_GCJ],
        [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
 
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
 AC_PROVIDE_IFELSE([LT_PROG_RC],
   [LT_LANG(RC)],
   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
@@ -831,11 +894,13 @@ AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
 AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
 AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
 AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
 dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
 dnl AC_DEFUN([AC_LIBTOOL_F77], [])
 dnl AC_DEFUN([AC_LIBTOOL_FC], [])
 dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
 
 
 # _LT_TAG_COMPILER
@@ -921,7 +986,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
          -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-       if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+       # If there is a non-empty error log, and "single_module"
+       # appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+         cat conftest.err >&AS_MESSAGE_LOG_FD
+       # Otherwise, if the output was created with a 0 exit code from
+       # the compiler, it worked.
+       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -929,6 +1000,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        rm -rf libconftest.dylib*
        rm -f conftest.*
       fi])
+
     AC_CACHE_CHECK([for -exported_symbols_list linker flag],
       [lt_cv_ld_exported_symbols_list],
       [lt_cv_ld_exported_symbols_list=no
@@ -940,6 +1012,34 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        [lt_cv_ld_exported_symbols_list=no])
        LDFLAGS="$save_LDFLAGS"
     ])
+
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+       lt_cv_ld_force_load=yes
+      else
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
     case $host_os in
     rhapsody* | darwin1.[[012]])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -967,7 +1067,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -977,8 +1077,8 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 ])
 
 
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
 # Checks for linker and compiler features on darwin
 m4_defun([_LT_DARWIN_LINKER_FEATURES],
 [
@@ -987,7 +1087,13 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_automatic, $1)=yes
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
   _LT_TAGVAR(link_all_deplibs, $1)=yes
   _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -995,7 +1101,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -1011,203 +1117,142 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   fi
 ])
 
-# _LT_SYS_MODULE_PATH_AIX
-# -----------------------
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
 # Links a minimal program and checks the executable
 # for the system default hardcoded library path. In most cases,
 # this is /usr/lib:/lib, but when the MPI compilers are used
 # the location of the communication and MPI libs are included too.
 # If we don't find anything, use the default library path according
 # to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
 ])# _LT_SYS_MODULE_PATH_AIX
 
 
 # _LT_SHELL_INIT(ARG)
 # -------------------
 m4_define([_LT_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-            [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-        [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_SHELL_INIT
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
 
 
 # _LT_PROG_ECHO_BACKSLASH
 # -----------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
 m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[_LT_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
 else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-[$]*
-_LT_EOF
-  exit 0
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
 fi
 
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-        { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-          test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-          echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-         # Cool, printf works
-         :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-         export CONFIG_SHELL
-         SHELL="$CONFIG_SHELL"
-         export SHELL
-         ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        else
-         # maybe with a smaller string...
-         prev=:
-
-         for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-           if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-           then
-             break
-           fi
-           prev="$cmd"
-         done
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*" 
+}
 
-         if test "$prev" != 'sed 50q "[$]0"'; then
-           echo_test_string=`eval $prev`
-           export echo_test_string
-           exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-         else
-           # Oops.  We lost completely, so just stick with echo.
-           ECHO=echo
-         fi
-        fi
-      fi
-    fi
-  fi
-fi
+case "$ECHO" in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
+esac
 
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
 
-AC_SUBST(lt_ECHO)
-])
 _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1],
-    [An echo program that does not interpret backslashes])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 ])# _LT_PROG_ECHO_BACKSLASH
 
 
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[  --with-sysroot[=DIR] Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and in which our libraries should be installed.])])
+
 # _LT_ENABLE_LOCK
 # ---------------
 m4_defun([_LT_ENABLE_LOCK],
@@ -1236,7 +1281,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     if test "$lt_cv_prog_gnu_ld" = yes; then
       case `/usr/bin/file conftest.$ac_objext` in
@@ -1329,14 +1374,27 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
          LD="${LD-ld} -64"
@@ -1354,14 +1412,47 @@ need_locks="$enable_libtool_lock"
 ])# _LT_ENABLE_LOCK
 
 
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       AC_TRY_EVAL([lt_ar_try])
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
 # _LT_CMD_OLD_ARCHIVE
 # -------------------
 m4_defun([_LT_CMD_OLD_ARCHIVE],
-[AC_CHECK_TOOL(AR, ar, false)
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1])
+[_LT_PROG_AR
 
 AC_CHECK_TOOL(STRIP, strip, :)
 test -z "$STRIP" && STRIP=:
@@ -1380,18 +1471,27 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
 _LT_DECL([], [old_postinstall_cmds], [2])
 _LT_DECL([], [old_postuninstall_cmds], [2])
 _LT_TAGDECL([], [old_archive_cmds], [2],
     [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
 ])# _LT_CMD_OLD_ARCHIVE
 
 
@@ -1416,15 +1516,15 @@ AC_CACHE_CHECK([$1], [$2],
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        $2=yes
@@ -1464,7 +1564,7 @@ AC_CACHE_CHECK([$1], [$2],
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          $2=yes
@@ -1527,6 +1627,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -1552,6 +1657,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -1591,8 +1701,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-                = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
              test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
@@ -1643,7 +1753,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-[#line __oline__ "configure"
+[#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -1684,7 +1794,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
 int main ()
 {
   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
@@ -1693,7 +1809,11 @@ int main ()
   if (self)
     {
       if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
       /* dlclose (self); */
     }
   else
@@ -1869,16 +1989,16 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
        _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
@@ -2037,6 +2157,7 @@ m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_OBJDUMP])dnl
 m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
 AC_MSG_CHECKING([dynamic linker characteristics])
 m4_if([$1],
        [], [
@@ -2045,16 +2166,23 @@ if test "$GCC" = yes; then
     darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
     *) lt_awk_arg="/^libraries:/" ;;
   esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
     # if the path contains ";" then we assume it to be the separator
     # otherwise default to the standard path separator (i.e. ":") - it is
     # assumed that no part of a normal pathname contains ";" but that should
     # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
   # Ok, now we have the path, separated by spaces, we can step through it
   # and add multilib dir if necessary.
   lt_tmp_lt_search_path_spec=
@@ -2067,7 +2195,7 @@ if test "$GCC" = yes; then
        lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
     fi
   done
-  lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
 BEGIN {RS=" "; FS="/|\n";} {
   lt_foo="";
   lt_count=0;
@@ -2087,7 +2215,13 @@ BEGIN {RS=" "; FS="/|\n";} {
   if (lt_foo != "") { lt_freq[[lt_foo]]++; }
   if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
 }'`
-  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
 else
   sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
 fi])
@@ -2113,7 +2247,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -2122,7 +2256,7 @@ aix3*)
   ;;
 
 aix[[4-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -2175,7 +2309,7 @@ amigaos*)
   m68k)
     library_names_spec='$libname.ixlibrary $libname.a'
     # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
     ;;
   esac
   ;;
@@ -2187,7 +2321,7 @@ beos*)
   ;;
 
 bsdi[[45]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -2206,8 +2340,9 @@ cygwin* | mingw* | pw32* | cegcc*)
   need_version=no
   need_lib_prefix=no
 
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -2228,36 +2363,83 @@ cygwin* | mingw* | pw32* | cegcc*)
     cygwin*)
       # Cygwin DLLs use 'cyg' prefix rather than 'lib'
       soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+m4_if([$1], [],[
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
       ;;
     mingw* | cegcc*)
       # MinGW DLLs use traditional 'lib' prefix
       soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
       ;;
     pw32*)
       # pw32 DLLs use 'pw' prefix rather than 'lib'
       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
       ;;
     esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
     ;;
 
   *)
+    # Assume MSVC wrapper
     library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
     ;;
   esac
-  dynamic_linker='Win32 ld.exe'
   # FIXME: first we should search . and the directory the executable is in
   shlibpath_var=PATH
   ;;
@@ -2278,7 +2460,7 @@ m4_if([$1], [],[
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -2286,10 +2468,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -2297,7 +2475,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[[123]]*) objformat=aout ;;
+    freebsd[[23]].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -2315,7 +2493,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[[01]]* | freebsdelf3.[[01]]*)
@@ -2335,12 +2513,26 @@ freebsd* | dragonfly*)
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
   hardcode_into_libs=yes
   ;;
 
@@ -2386,12 +2578,14 @@ hpux9* | hpux10* | hpux11*)
     soname_spec='${libname}${release}${shared_ext}$major'
     ;;
   esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
   postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
   ;;
 
 interix[[3-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -2407,7 +2601,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
        if test "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
+               version_type=linux # correct to gnu/linux during the next big refactor
        else
                version_type=irix
        fi ;;
@@ -2444,9 +2638,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu)
-  version_type=linux
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2454,16 +2648,21 @@ linux* | k*bsd*-gnu)
   finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=no
+
   # Some binutils ld are patched to set DT_RUNPATH
-  save_LDFLAGS=$LDFLAGS
-  save_libdir=$libdir
-  eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-       LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-    [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-       [shlibpath_overrides_runpath=yes])])
-  LDFLAGS=$save_LDFLAGS
-  libdir=$save_libdir
+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+    [lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+        LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+        [lt_cv_shlibpath_overrides_runpath=yes])])
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+    ])
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
 
   # This implies no fast_install, which is unacceptable.
   # Some rework will be needed to allow for fast_install
@@ -2472,7 +2671,7 @@ linux* | k*bsd*-gnu)
 
   # Append ld.so.conf contents to the search path
   if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[  ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[  ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
     sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
 
@@ -2504,7 +2703,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -2573,7 +2772,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2598,7 +2797,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -2622,7 +2821,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -2653,7 +2852,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2663,7 +2862,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -2705,6 +2904,8 @@ _LT_DECL([], [library_names_spec], [1],
     The last name is the one that the linker finds with -lNAME]])
 _LT_DECL([], [soname_spec], [1],
     [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+    [Permission mode override for installation of shared libraries])
 _LT_DECL([], [postinstall_cmds], [2],
     [Command to use after installation of a shared archive])
 _LT_DECL([], [postuninstall_cmds], [2],
@@ -2817,6 +3018,7 @@ AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
 m4_require([_LT_DECL_SED])dnl
 m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
 
 AC_ARG_WITH([gnu-ld],
     [AS_HELP_STRING([--with-gnu-ld],
@@ -2938,6 +3140,11 @@ case $reload_flag in
 esac
 reload_cmds='$LD$reload_flag -o $output$reload_objs'
 case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
   darwin*)
     if test "$GCC" = yes; then
       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
@@ -2946,8 +3153,8 @@ case $host_os in
     fi
     ;;
 esac
-_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_DECL([], [reload_cmds], [2])dnl
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
 ])# _LT_CMD_RELOAD
 
 
@@ -2999,16 +3206,18 @@ mingw* | pw32*)
   # Base MSYS/MinGW do not provide the 'file' command needed by
   # func_win32_libid shell function, so use a weaker test based on 'objdump',
   # unless we find 'file', for example because we are cross-compiling.
-  if ( file / ) >/dev/null 2>&1; then
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
     lt_cv_file_magic_cmd='func_win32_libid'
   else
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
     lt_cv_file_magic_cmd='$OBJDUMP -f'
   fi
   ;;
 
-cegcc)
+cegcc*)
   # use the weaker test based on 'objdump'. See mingw*.
   lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
   lt_cv_file_magic_cmd='$OBJDUMP -f'
@@ -3038,6 +3247,10 @@ gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 hpux10.20* | hpux11*)
   lt_cv_file_magic_cmd=/usr/bin/file
   case $host_cpu in
@@ -3046,11 +3259,11 @@ hpux10.20* | hpux11*)
     lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
     ;;
   hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
     lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
     ;;
   *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
     lt_cv_file_magic_test_file=/usr/lib/libc.sl
     ;;
   esac
@@ -3071,8 +3284,8 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu)
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -3150,6 +3363,21 @@ tpf*)
   ;;
 esac
 ])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -3157,7 +3385,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 _LT_DECL([], [deplibs_check_method], [1],
     [Method to check whether dependent libraries are shared objects])
 _LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method == "file_magic"])
+    [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+    [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
 ])# _LT_CHECK_MAGIC_METHOD
 
 
@@ -3242,13 +3474,13 @@ _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
 AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
   [lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
   cat conftest.out >&AS_MESSAGE_LOG_FD
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -3263,18 +3495,79 @@ dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AM_PROG_NM], [])
 dnl AC_DEFUN([AC_PROG_NM], [])
 
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
 
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+    [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+  [lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*])
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
   AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
   AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
   ;;
@@ -3299,7 +3592,12 @@ m4_defun([_LT_COMPILER_NO_RTTI],
 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
 
 if test "$GCC" = yes; then
-  _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+  case $cc_basename in
+  nvcc*)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+  esac
 
   _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
     lt_cv_prog_compiler_rtti_exceptions,
@@ -3316,6 +3614,7 @@ _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
 m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
 AC_REQUIRE([LT_PATH_LD])dnl
 m4_require([_LT_DECL_SED])dnl
@@ -3383,8 +3682,8 @@ esac
 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
 
 # Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -3408,6 +3707,7 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -3420,6 +3720,7 @@ for ac_symprfx in "" "_"; do
   else
     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[    ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
   fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
 
   # Check to see that the pipe works correctly.
   pipe_works=no
@@ -3441,7 +3742,7 @@ _LT_EOF
   if AC_TRY_EVAL(ac_compile); then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
        mv -f "$nlist"T "$nlist"
@@ -3453,6 +3754,18 @@ _LT_EOF
       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
        if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
          cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT@&t@_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -3464,7 +3777,7 @@ _LT_EOF
          cat <<_LT_EOF >> conftest.$ac_ext
 
 /* The mapping between symbol names and symbols.  */
-const struct {
+LT@&t@_DLSYM_CONST struct {
   const char *name;
   void       *address;
 }
@@ -3490,15 +3803,15 @@ static const void *lt_preloaded_setup() {
 _LT_EOF
          # Now try linking the two files.
          mv conftest.$ac_objext conftstm.$ac_objext
-         lt_save_LIBS="$LIBS"
-         lt_save_CFLAGS="$CFLAGS"
+         lt_globsym_save_LIBS=$LIBS
+         lt_globsym_save_CFLAGS=$CFLAGS
          LIBS="conftstm.$ac_objext"
          CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
          if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
            pipe_works=yes
          fi
-         LIBS="$lt_save_LIBS"
-         CFLAGS="$lt_save_CFLAGS"
+         LIBS=$lt_globsym_save_LIBS
+         CFLAGS=$lt_globsym_save_CFLAGS
        else
          echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
        fi
@@ -3531,6 +3844,13 @@ else
   AC_MSG_RESULT(ok)
 fi
 
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
     [Take the output of nm and produce a listing of raw symbols and C names])
 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
@@ -3541,6 +3861,8 @@ _LT_DECL([global_symbol_to_c_name_address],
 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
     [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
     [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
 ]) # _LT_CMD_GLOBAL_SYMBOLS
 
 
@@ -3552,7 +3874,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)=
 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
 _LT_TAGVAR(lt_prog_compiler_static, $1)=
 
-AC_MSG_CHECKING([for $compiler option to produce PIC])
 m4_if([$1], [CXX], [
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
@@ -3603,6 +3924,11 @@ m4_if([$1], [CXX], [
       # DJGPP does not support shared libraries at all
       _LT_TAGVAR(lt_prog_compiler_pic, $1)=
       ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
     interix[[3-9]]*)
       # Interix 3.x gcc -fpic/-fPIC options generate broken code.
       # Instead, we relocate shared libraries at runtime.
@@ -3652,6 +3978,12 @@ m4_if([$1], [CXX], [
          ;;
        esac
        ;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
+       m4_if([$1], [GCJ], [],
+         [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+       ;;
       dgux*)
        case $cc_basename in
          ec++*)
@@ -3708,7 +4040,7 @@ m4_if([$1], [CXX], [
            ;;
        esac
        ;;
-      linux* | k*bsd*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
        case $cc_basename in
          KCC*)
            # KAI C++ Compiler
@@ -3741,8 +4073,8 @@ m4_if([$1], [CXX], [
            _LT_TAGVAR(lt_prog_compiler_pic, $1)=
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
            ;;
-         xlc* | xlC*)
-           # IBM XL 8.0 on PPC
+         xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+           # IBM XL 8.0, 9.0 on PPC and BlueGene
            _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
@@ -3804,7 +4136,7 @@ m4_if([$1], [CXX], [
        ;;
       solaris*)
        case $cc_basename in
-         CC*)
+         CC* | sunCC*)
            # Sun C++ 4.2, 5.x and Centerline C++
            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
            _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
@@ -3908,6 +4240,12 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
       ;;
 
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+
     hpux*)
       # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
       # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
@@ -3950,6 +4288,15 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
       ;;
     esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+      fi
+      ;;
+    esac
   else
     # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
@@ -3992,7 +4339,7 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -4013,7 +4360,13 @@ m4_if([$1], [CXX], [
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
        ;;
-      pgcc* | pgf77* | pgf90* | pgf95*)
+      nagfor*)
+       # NAG Fortran compiler
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+       ;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
         # Portland Group compilers (*not* the Pentium gcc compiler,
        # which looks to be a dead project)
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
@@ -4025,25 +4378,40 @@ m4_if([$1], [CXX], [
         # All Alpha code is PIC.
         _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
         ;;
-      xl*)
-       # IBM XL C 8.0/Fortran 10.1 on PPC
+      xl* | bgxl* | bgf* | mpixl*)
+       # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
        ;;
       *)
        case `$CC -V 2>&1 | sed 5q` in
+       *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+         # Sun Fortran 8.3 passes all unrecognized flags to the linker
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+         ;;
+       *Sun\ F* | *Sun*Fortran*)
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+         ;;
        *Sun\ C*)
          # Sun C 5.9
          _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
          _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
          ;;
-       *Sun\ F*)
-         # Sun Fortran 8.3 passes all unrecognized flags to the linker
-         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+        *Intel*\ [[CF]]*Compiler*)
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+         ;;
+       *Portland\ Group*)
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
          _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-         _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
          ;;
        esac
        ;;
@@ -4075,7 +4443,7 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       case $cc_basename in
-      f77* | f90* | f95*)
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
       *)
        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
@@ -4132,9 +4500,11 @@ case $host_os in
     _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
     ;;
 esac
-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-       [How to pass a linker flag through the compiler])
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
 
 #
 # Check to make sure the PIC flag actually works.
@@ -4153,6 +4523,8 @@ fi
 _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
        [Additional compiler flags for building library objects])
 
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+       [How to pass a linker flag through the compiler])
 #
 # Check to make sure the static flag actually works.
 #
@@ -4173,6 +4545,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
 m4_defun([_LT_LINKER_SHLIBS],
 [AC_REQUIRE([LT_PATH_LD])dnl
 AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
 m4_require([_LT_DECL_SED])dnl
@@ -4181,27 +4554,37 @@ m4_require([_LT_TAG_COMPILER])dnl
 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
 m4_if([$1], [CXX], [
   _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
   case $host_os in
   aix[[4-9]]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    # Also, AIX nm treats weak defined symbols like other global defined
+    # symbols, whereas GNU nm marks them as "W".
     if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     else
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
     fi
     ;;
   pw32*)
     _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
+    ;;
   cygwin* | mingw* | cegcc*)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    case $cc_basename in
+    cl*)
+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+      ;;
+    esac
+    ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
+    ;;
   esac
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
 ], [
   runpath_var=
   _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -4216,7 +4599,6 @@ m4_if([$1], [CXX], [
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_direct_absolute, $1)=no
   _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
   _LT_TAGVAR(hardcode_libdir_separator, $1)=
   _LT_TAGVAR(hardcode_minus_L, $1)=no
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -4264,7 +4646,33 @@ dnl Note also adjust exclude_expsyms for C++ above.
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
   if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+       # The AIX port of GNU ld has always aspired to compatibility
+       # with the native linker.  However, as the warning in the GNU ld
+       # block says, versions before 2.19.5* couldn't really create working
+       # shared libraries, regardless of the interface used.
+       case `$LD -v 2>&1` in
+         *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+         *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+         *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+         *)
+           lt_use_gnu_ld_interface=yes
+           ;;
+       esac
+       ;;
+      *)
+       lt_use_gnu_ld_interface=yes
+       ;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
     # If archive_cmds runs LD, not CC, wlarc should be empty
     wlarc='${wl}'
 
@@ -4282,6 +4690,7 @@ dnl Note also adjust exclude_expsyms for C++ above.
     fi
     supports_anon_versioning=no
     case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
       *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
       *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
       *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
@@ -4297,11 +4706,12 @@ dnl Note also adjust exclude_expsyms for C++ above.
        _LT_TAGVAR(ld_shlibs, $1)=no
        cat <<_LT_EOF 1>&2
 
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** Warning: the GNU linker, at least up to release 2.19, is reported
 *** to be unable to reliably create shared libraries on AIX.
 *** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
 
 _LT_EOF
       fi
@@ -4337,10 +4747,12 @@ _LT_EOF
       # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
       _LT_TAGVAR(always_export_symbols, $1)=no
       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
 
       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
@@ -4358,6 +4770,11 @@ _LT_EOF
       fi
       ;;
 
+    haiku*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
     interix[[3-9]]*)
       _LT_TAGVAR(hardcode_direct, $1)=no
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -4373,7 +4790,7 @@ _LT_EOF
       _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
       ;;
 
-    gnu* | linux* | tpf* | k*bsd*-gnu)
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
       if test "$host_os" = linux-dietlibc; then
        case $cc_basename in
@@ -4383,15 +4800,16 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
         && test "$tmp_diet" = no
       then
-       tmp_addflag=
+       tmp_addflag=' $pic_flag'
        tmp_sharedflag='-shared'
        case $cc_basename,$host_cpu in
         pgcc*)                         # Portland Group C compiler
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag'
          ;;
-       pgf77* | pgf90* | pgf95*)       # Portland Group f77 and f90 compilers
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+       pgf77* | pgf90* | pgf95* | pgfortran*)
+                                       # Portland Group f77 and f90 compilers
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          tmp_addflag=' $pic_flag -Mnomain' ;;
        ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
          tmp_addflag=' -i_dynamic' ;;
@@ -4402,13 +4820,17 @@ _LT_EOF
        lf95*)                          # Lahey Fortran 8.1
          _LT_TAGVAR(whole_archive_flag_spec, $1)=
          tmp_sharedflag='--shared' ;;
-       xl[[cC]]*)                      # IBM XL C 8.0 on PPC (deal with xlf below)
+       xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
          tmp_sharedflag='-qmkshrobj'
          tmp_addflag= ;;
+       nvcc*)  # Cuda Compiler Driver 2.2
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(compiler_needs_object, $1)=yes
+         ;;
        esac
        case `$CC -V 2>&1 | sed 5q` in
        *Sun\ C*)                       # Sun C 5.9
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
          _LT_TAGVAR(compiler_needs_object, $1)=yes
          tmp_sharedflag='-G' ;;
        *Sun\ F*)                       # Sun Fortran 8.3
@@ -4424,17 +4846,16 @@ _LT_EOF
         fi
 
        case $cc_basename in
-       xlf*)
+       xlf* | bgf* | bgxlf* | mpixlf*)
          # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
          _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-         _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-         _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+         _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
          if test "x$supports_anon_versioning" = xyes; then
            _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
              echo "local: *; };" >> $output_objdir/$libname.ver~
-             $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
          fi
          ;;
        esac
@@ -4448,8 +4869,8 @@ _LT_EOF
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       fi
       ;;
 
@@ -4467,8 +4888,8 @@ _LT_EOF
 
 _LT_EOF
       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4514,8 +4935,8 @@ _LT_EOF
 
     *)
       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
       else
        _LT_TAGVAR(ld_shlibs, $1)=no
       fi
@@ -4555,8 +4976,10 @@ _LT_EOF
       else
        # If we're using GNU nm, then we don't want the "-C" option.
        # -C means demangle to AIX nm, but means don't demangle with GNU nm
+       # Also, AIX nm treats weak defined symbols like other global
+       # defined symbols, whereas GNU nm marks them as "W".
        if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        else
          _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
        fi
@@ -4643,9 +5066,9 @@ _LT_EOF
        _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
+        _LT_SYS_MODULE_PATH_AIX([$1])
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
       else
        if test "$host_cpu" = ia64; then
          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
@@ -4654,14 +5077,19 @@ _LT_EOF
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        _LT_SYS_MODULE_PATH_AIX
+        _LT_SYS_MODULE_PATH_AIX([$1])
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
          # Warning - without using the other run time loading flags,
          # -berok will link without error, but may produce a broken library.
          _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
          _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-         # Exported symbols can be pulled into shared objects from archives
-         _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+         if test "$with_gnu_ld" = yes; then
+           # We only use this code for GNU lds that support --whole-archive.
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+         else
+           # Exported symbols can be pulled into shared objects from archives
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+         fi
          _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
          # This is similar to how AIX traditionally builds its shared libraries.
          _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
@@ -4693,20 +5121,64 @@ _LT_EOF
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      case $cc_basename in
+      cl*)
+       # Native MSVC
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       _LT_TAGVAR(always_export_symbols, $1)=yes
+       _LT_TAGVAR(file_list_spec, $1)='@'
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+         else
+           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+         fi~
+         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+         linknames='
+       # The linker will not automatically build a static lib if we build a DLL.
+       # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+       _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+       # Don't use ranlib
+       _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+       _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+         lt_tool_outputfile="@TOOL_OUTPUT@"~
+         case $lt_outputfile in
+           *.exe|*.EXE) ;;
+           *)
+             lt_outputfile="$lt_outputfile.exe"
+             lt_tool_outputfile="$lt_tool_outputfile.exe"
+             ;;
+         esac~
+         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+           $RM "$lt_outputfile.manifest";
+         fi'
+       ;;
+      *)
+       # Assume MSVC wrapper
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+       # The linker will automatically build a .lib file if we build a DLL.
+       _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       # FIXME: Should let the user specify the lib program.
+       _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       ;;
+      esac
       ;;
 
     darwin* | rhapsody*)
@@ -4719,10 +5191,6 @@ _LT_EOF
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
-    freebsd1*)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -4735,7 +5203,7 @@ _LT_EOF
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
@@ -4744,7 +5212,7 @@ _LT_EOF
 
     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
     freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -4752,7 +5220,7 @@ _LT_EOF
 
     hpux9*)
       if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
        _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
@@ -4767,14 +5235,13 @@ _LT_EOF
       ;;
 
     hpux10*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
       else
        _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
       fi
       if test "$with_gnu_ld" = no; then
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-       _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
        _LT_TAGVAR(hardcode_direct, $1)=yes
        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
@@ -4786,16 +5253,16 @@ _LT_EOF
       ;;
 
     hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
        case $host_cpu in
        hppa*64*)
          _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        ia64*)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        esac
       else
@@ -4807,7 +5274,14 @@ _LT_EOF
          _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
          ;;
        *)
-         _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+       m4_if($1, [], [
+         # Older versions of the 11.00 compiler do not understand -b yet
+         # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+         _LT_LINKER_OPTION([if $CC understands -b],
+           _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+           [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+           [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+         [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
          ;;
        esac
       fi
@@ -4835,19 +5309,34 @@ _LT_EOF
 
     irix5* | irix6* | nonstopux*)
       if test "$GCC" = yes; then
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        # Try to use the -exported_symbol ld option, if it does not
        # work, assume that -exports_file does not work either and
        # implicitly export all symbols.
-        save_LDFLAGS="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        AC_LINK_IFELSE(int foo(void) {},
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-        )
-        LDFLAGS="$save_LDFLAGS"
+       # This should be the same for all languages, so no per-tag cache variable.
+       AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+         [lt_cv_irix_exported_symbol],
+         [save_LDFLAGS="$LDFLAGS"
+          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+          AC_LINK_IFELSE(
+            [AC_LANG_SOURCE(
+               [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+                             [C++], [[int foo (void) { return 0; }]],
+                             [Fortran 77], [[
+      subroutine foo
+      end]],
+                             [Fortran], [[
+      subroutine foo
+      end]])])],
+             [lt_cv_irix_exported_symbol=yes],
+             [lt_cv_irix_exported_symbol=no])
+           LDFLAGS="$save_LDFLAGS"])
+       if test "$lt_cv_irix_exported_symbol" = yes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       fi
       else
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
-       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
@@ -4909,17 +5398,17 @@ _LT_EOF
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
       _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
       ;;
 
     osf3*)
       if test "$GCC" = yes; then
        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
       else
        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
       fi
       _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
@@ -4929,13 +5418,13 @@ _LT_EOF
     osf4* | osf5*)     # as osf3* with the addition of -msym flag
       if test "$GCC" = yes; then
        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
       else
        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
 
        # Both c and cxx compiler support -rpath directly
        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -4948,9 +5437,9 @@ _LT_EOF
       _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
       if test "$GCC" = yes; then
        wlarc='${wl}'
-       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-         $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
       else
        case `$CC -V 2>&1` in
        *"Compilers 5.0"*)
@@ -5126,36 +5615,38 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $RM conftest*
-      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-       pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-        _LT_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-        then
-         _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-         _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $RM conftest*
-      AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
+      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+       [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+       [$RM conftest*
+       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+       if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+         soname=conftest
+         lib=conftest
+         libobjs=conftest.$ac_objext
+         deplibs=
+         wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+         pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+         compiler_flags=-v
+         linker_flags=-v
+         verstring=
+         output_objdir=.
+         libname=conftest
+         lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+         _LT_TAGVAR(allow_undefined_flag, $1)=
+         if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+         then
+           lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+         else
+           lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+         fi
+         _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+       else
+         cat conftest.err 1>&5
+       fi
+       $RM conftest*
+       ])
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
       ;;
     esac
   fi
@@ -5192,9 +5683,6 @@ _LT_TAGDECL([], [no_undefined_flag], [1],
 _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
     [Flag to hardcode $libdir into a binary during linking.
     This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
-    [[If ld is used when linking, flag to hardcode $libdir into a binary
-    during linking.  This must work even if $libdir does not exist]])
 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
     [Whether we need a single "-rpath" flag with a separated argument])
 _LT_TAGDECL([], [hardcode_direct], [0],
@@ -5220,8 +5708,6 @@ _LT_TAGDECL([], [inherit_rpath], [0],
     to runtime path list])
 _LT_TAGDECL([], [link_all_deplibs], [0],
     [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [fix_srcfile_path], [1],
-    [Fix the shell variable $srcfile for the compiler])
 _LT_TAGDECL([], [always_export_symbols], [0],
     [Set to "yes" if exported symbols are required])
 _LT_TAGDECL([], [export_symbols_cmds], [2],
@@ -5232,6 +5718,8 @@ _LT_TAGDECL([], [include_expsyms], [1],
     [Symbols that must always be exported])
 _LT_TAGDECL([], [prelink_cmds], [2],
     [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+    [Commands necessary for finishing linking programs])
 _LT_TAGDECL([], [file_list_spec], [1],
     [Specify filename containing input files])
 dnl FIXME: Not yet implemented
@@ -5325,37 +5813,22 @@ CC="$lt_save_CC"
 ])# _LT_LANG_C_CONFIG
 
 
-# _LT_PROG_CXX
-# ------------
-# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
-# compiler, we have our own version here.
-m4_defun([_LT_PROG_CXX],
-[
-pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
-AC_PROG_CXX
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  AC_PROG_CXXCPP
-else
-  _lt_caught_CXX_error=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_CXX
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_CXX], [])
-
-
 # _LT_LANG_CXX_CONFIG([TAG])
 # --------------------------
 # Ensure that the configuration variables for a C++ compiler are suitably
 # defined.  These variables are subsequently used by _LT_CONFIG to write
 # the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_CXX_CONFIG],
-[AC_REQUIRE([_LT_PROG_CXX])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
 
 AC_LANG_PUSH(C++)
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
@@ -5367,7 +5840,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -5377,6 +5849,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -5408,6 +5882,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
   # Allow CC to be a program name with arguments.
   lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
   lt_save_LD=$LD
   lt_save_GCC=$GCC
   GCC=$GXX
@@ -5425,6 +5900,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   fi
   test -z "${LDCXX+set}" || LD=$LDCXX
   CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -5446,8 +5922,8 @@ if test "$_lt_caught_CXX_error" != yes; then
       # Check if GNU C++ uses GNU ld as the underlying linker, since the
       # archiving commands below assume that GNU ld is being used.
       if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5479,7 +5955,7 @@ if test "$_lt_caught_CXX_error" != yes; then
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
     else
       GXX=no
@@ -5588,10 +6064,10 @@ if test "$_lt_caught_CXX_error" != yes; then
           _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
-          _LT_SYS_MODULE_PATH_AIX
+          _LT_SYS_MODULE_PATH_AIX([$1])
           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
 
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
         else
           if test "$host_cpu" = ia64; then
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
@@ -5600,14 +6076,19 @@ if test "$_lt_caught_CXX_error" != yes; then
           else
            # Determine the default libpath from the value encoded in an
            # empty executable.
-           _LT_SYS_MODULE_PATH_AIX
+           _LT_SYS_MODULE_PATH_AIX([$1])
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
            # Warning - without using the other run time loading flags,
            # -berok will link without error, but may produce a broken library.
            _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
            _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-           # Exported symbols can be pulled into shared objects from archives
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+           if test "$with_gnu_ld" = yes; then
+             # We only use this code for GNU lds that support --whole-archive.
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           else
+             # Exported symbols can be pulled into shared objects from archives
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+           fi
            _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
            # This is similar to how AIX traditionally builds its shared
            # libraries.
@@ -5637,28 +6118,75 @@ if test "$_lt_caught_CXX_error" != yes; then
         ;;
 
       cygwin* | mingw* | pw32* | cegcc*)
-        # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-        # as there is no search path for DLLs.
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-        _LT_TAGVAR(always_export_symbols, $1)=no
-        _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-          # If the export-symbols file already is a .def file (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-           cp $export_symbols $output_objdir/$soname.def;
-          else
-           echo EXPORTS > $output_objdir/$soname.def;
-           cat $export_symbols >> $output_objdir/$soname.def;
-          fi~
-          $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-        else
-          _LT_TAGVAR(ld_shlibs, $1)=no
-        fi
-        ;;
+       case $GXX,$cc_basename in
+       ,cl* | no,cl*)
+         # Native MSVC
+         # hardcode_libdir_flag_spec is actually meaningless, as there is
+         # no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=yes
+         _LT_TAGVAR(file_list_spec, $1)='@'
+         # Tell ltmain to make .lib files, not .a files.
+         libext=lib
+         # Tell ltmain to make .dll files, not .so files.
+         shrext_cmds=".dll"
+         # FIXME: Setting linknames here is a bad hack.
+         _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+         _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+           else
+             $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+           fi~
+           $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+           linknames='
+         # The linker will not automatically build a static lib if we build a DLL.
+         # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+         # Don't use ranlib
+         _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+         _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+           lt_tool_outputfile="@TOOL_OUTPUT@"~
+           case $lt_outputfile in
+             *.exe|*.EXE) ;;
+             *)
+               lt_outputfile="$lt_outputfile.exe"
+               lt_tool_outputfile="$lt_tool_outputfile.exe"
+               ;;
+           esac~
+           func_to_tool_file "$lt_outputfile"~
+           if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+             $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+             $RM "$lt_outputfile.manifest";
+           fi'
+         ;;
+       *)
+         # g++
+         # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+         # as there is no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=no
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+         if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+           # If the export-symbols file already is a .def file (1st line
+           # is EXPORTS), use it as is; otherwise, prepend...
+           _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             cp $export_symbols $output_objdir/$soname.def;
+           else
+             echo EXPORTS > $output_objdir/$soname.def;
+             cat $export_symbols >> $output_objdir/$soname.def;
+           fi~
+           $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+         else
+           _LT_TAGVAR(ld_shlibs, $1)=no
+         fi
+         ;;
+       esac
+       ;;
       darwin* | rhapsody*)
         _LT_DARWIN_LINKER_FEATURES($1)
        ;;
@@ -5681,7 +6209,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         esac
         ;;
 
-      freebsd[[12]]*)
+      freebsd2.*)
         # C++ shared libraries reported to be fairly broken before
        # switch to ELF
         _LT_TAGVAR(ld_shlibs, $1)=no
@@ -5700,6 +6228,11 @@ if test "$_lt_caught_CXX_error" != yes; then
       gnu*)
         ;;
 
+      haiku*)
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        ;;
+
       hpux9*)
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
@@ -5724,11 +6257,11 @@ if test "$_lt_caught_CXX_error" != yes; then
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
             ;;
           *)
             if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
             else
               # FIXME: insert proper C++ library support
               _LT_TAGVAR(ld_shlibs, $1)=no
@@ -5789,7 +6322,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
           *)
            if test "$GXX" = yes; then
@@ -5799,10 +6332,10 @@ if test "$_lt_caught_CXX_error" != yes; then
                    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  ia64*)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                  *)
-                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
                    ;;
                esac
              fi
@@ -5832,7 +6365,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         case $cc_basename in
           CC*)
            # SGI C++
-           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
 
            # Archives containing C++ object files must be created using
            # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
@@ -5843,9 +6376,9 @@ if test "$_lt_caught_CXX_error" != yes; then
           *)
            if test "$GXX" = yes; then
              if test "$with_gnu_ld" = no; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
              else
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
              fi
            fi
            _LT_TAGVAR(link_all_deplibs, $1)=yes
@@ -5856,7 +6389,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         _LT_TAGVAR(inherit_rpath, $1)=yes
         ;;
 
-      linux* | k*bsd*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
         case $cc_basename in
           KCC*)
            # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -5874,7 +6407,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
 
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5911,26 +6444,26 @@ if test "$_lt_caught_CXX_error" != yes; then
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
            case `$CC -V` in
-           *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+           *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
              _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-               compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
              _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
                $RANLIB $oldlib'
              _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
              _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
              ;;
-           *) # Version 6 will use weak symbols
+           *) # Version 6 and above use weak symbols
              _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
              _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
              ;;
@@ -5938,7 +6471,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
             ;;
          cxx*)
            # Compaq C++
@@ -5957,9 +6490,9 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
            ;;
-         xl*)
+         xl* | mpixl* | bgxl*)
            # IBM XL 8.0 on PPC, with GNU ld
            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
@@ -5979,13 +6512,13 @@ if test "$_lt_caught_CXX_error" != yes; then
              _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
              _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
              _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
              _LT_TAGVAR(compiler_needs_object, $1)=yes
 
              # Not sure whether something based on
              # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
              # would be better.
-             output_verbose_link_cmd='echo'
+             output_verbose_link_cmd='func_echo_all'
 
              # Archives containing C++ object files must be created using
              # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -6054,7 +6587,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
            _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
          fi
-         output_verbose_link_cmd=echo
+         output_verbose_link_cmd=func_echo_all
        else
          _LT_TAGVAR(ld_shlibs, $1)=no
        fi
@@ -6089,15 +6622,15 @@ if test "$_lt_caught_CXX_error" != yes; then
            case $host in
              osf3*)
                _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
                _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
                ;;
              *)
                _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
                  echo "-hidden">> $lib.exp~
-                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
                  $RM $lib.exp'
                _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
                ;;
@@ -6113,17 +6646,17 @@ if test "$_lt_caught_CXX_error" != yes; then
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
            ;;
          *)
            if test "$GXX" = yes && test "$with_gnu_ld" = no; then
              _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
              case $host in
                osf3*)
-                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
                  ;;
                *)
-                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
                  ;;
              esac
 
@@ -6133,7 +6666,7 @@ if test "$_lt_caught_CXX_error" != yes; then
              # Commands to make compiler produce verbose output that lists
              # what "hidden" libraries, object files and flags are used when
              # linking a shared library.
-             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
 
            else
              # FIXME: insert proper C++ library support
@@ -6169,7 +6702,7 @@ if test "$_lt_caught_CXX_error" != yes; then
 
       solaris*)
         case $cc_basename in
-          CC*)
+          CC* | sunCC*)
            # Sun C++ 4.2, 5.x and Centerline C++
             _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
            _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
@@ -6190,7 +6723,7 @@ if test "$_lt_caught_CXX_error" != yes; then
            esac
            _LT_TAGVAR(link_all_deplibs, $1)=yes
 
-           output_verbose_link_cmd='echo'
+           output_verbose_link_cmd='func_echo_all'
 
            # Archives containing C++ object files must be created using
            # "CC -xar", where "CC" is the Sun C++ compiler.  This is
@@ -6210,14 +6743,14 @@ if test "$_lt_caught_CXX_error" != yes; then
            if test "$GXX" = yes && test "$with_gnu_ld" = no; then
              _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
              if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
                _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                 $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+                 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
 
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+               output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              else
                # g++ 2.7 appears to require `-G' NOT `-shared' on this
                # platform.
@@ -6228,7 +6761,7 @@ if test "$_lt_caught_CXX_error" != yes; then
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
              fi
 
              _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
@@ -6282,6 +6815,10 @@ if test "$_lt_caught_CXX_error" != yes; then
           CC*)
            _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
            _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+             '"$_LT_TAGVAR(old_archive_cmds, $1)"
+           _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+             '"$_LT_TAGVAR(reload_cmds, $1)"
            ;;
          *)
            _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
@@ -6337,6 +6874,7 @@ if test "$_lt_caught_CXX_error" != yes; then
   fi # test -n "$compiler"
 
   CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
   LDCXX=$LD
   LD=$lt_save_LD
   GCC=$lt_save_GCC
@@ -6351,6 +6889,29 @@ AC_LANG_POP
 ])# _LT_LANG_CXX_CONFIG
 
 
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+  case ${2} in
+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
 # ---------------------------------
 # Figure out "hidden" library dependencies from verbose
@@ -6359,6 +6920,7 @@ AC_LANG_POP
 # objects, libraries and library flags.
 m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
 # Dependencies to place before and after the object being linked:
 _LT_TAGVAR(predep_objects, $1)=
 _LT_TAGVAR(postdep_objects, $1)=
@@ -6408,7 +6970,20 @@ public class foo {
   }
 };
 _LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
 ])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
 dnl Parse the compiler output and extract the necessary
 dnl objects, libraries and library flags.
 if AC_TRY_EVAL(ac_compile); then
@@ -6420,7 +6995,7 @@ if AC_TRY_EVAL(ac_compile); then
   pre_test_object_deps_done=no
 
   for p in `eval "$output_verbose_link_cmd"`; do
-    case $p in
+    case ${prev}${p} in
 
     -L* | -R* | -l*)
        # Some compilers place space between "-{L,R}" and the path.
@@ -6429,13 +7004,22 @@ if AC_TRY_EVAL(ac_compile); then
           test $p = "-R"; then
         prev=$p
         continue
-       else
-        prev=
        fi
 
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
        if test "$pre_test_object_deps_done" = no; then
-        case $p in
-        -L* | -R*)
+        case ${prev} in
+        -L | -R)
           # Internal compiler library paths should come after those
           # provided the user.  The postdeps already come after the
           # user supplied libs so there is no need to process them.
@@ -6455,8 +7039,10 @@ if AC_TRY_EVAL(ac_compile); then
           _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
         fi
        fi
+       prev=
        ;;
 
+    *.lto.$objext) ;; # Ignore GCC LTO objects
     *.$objext)
        # This assumes that the test object file only shows up
        # once in the compiler output.
@@ -6492,6 +7078,7 @@ else
 fi
 
 $RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
 
 # PORTME: override above test on systems where it is broken
 m4_if([$1], [CXX],
@@ -6528,7 +7115,7 @@ linux*)
 
 solaris*)
   case $cc_basename in
-  CC*)
+  CC* | sunCC*)
     # The more standards-conforming stlport4 library is
     # incompatible with the Cstd library. Avoid specifying
     # it if it's in CXXFLAGS. Ignore libCrun as
@@ -6572,32 +7159,16 @@ _LT_TAGDECL([], [compiler_lib_search_path], [1],
 ])# _LT_SYS_HIDDEN_LIBDEPS
 
 
-# _LT_PROG_F77
-# ------------
-# Since AC_PROG_F77 is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_F77],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
-AC_PROG_F77
-if test -z "$F77" || test "X$F77" = "Xno"; then
-  _lt_disable_F77=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_F77
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_F77], [])
-
-
 # _LT_LANG_F77_CONFIG([TAG])
 # --------------------------
 # Ensure that the configuration variables for a Fortran 77 compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_F77_CONFIG],
-[AC_REQUIRE([_LT_PROG_F77])dnl
-AC_LANG_PUSH(Fortran 77)
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
 
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -6607,7 +7178,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -6616,6 +7186,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6655,7 +7227,9 @@ if test "$_lt_disable_F77" != yes; then
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${F77-"f77"}
+  CFLAGS=$FFLAGS
   compiler=$CC
   _LT_TAGVAR(compiler, $1)=$CC
   _LT_CC_BASENAME([$compiler])
@@ -6709,38 +7283,24 @@ if test "$_lt_disable_F77" != yes; then
 
   GCC=$lt_save_GCC
   CC="$lt_save_CC"
+  CFLAGS="$lt_save_CFLAGS"
 fi # test "$_lt_disable_F77" != yes
 
 AC_LANG_POP
 ])# _LT_LANG_F77_CONFIG
 
 
-# _LT_PROG_FC
-# -----------
-# Since AC_PROG_FC is broken, in that it returns the empty string
-# if there is no fortran compiler, we have our own version here.
-m4_defun([_LT_PROG_FC],
-[
-pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
-AC_PROG_FC
-if test -z "$FC" || test "X$FC" = "Xno"; then
-  _lt_disable_FC=yes
-fi
-popdef([AC_MSG_ERROR])
-])# _LT_PROG_FC
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([_LT_PROG_FC], [])
-
-
 # _LT_LANG_FC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for a Fortran compiler are
 # suitably defined.  These variables are subsequently used by _LT_CONFIG
 # to write the compiler configuration to `libtool'.
 m4_defun([_LT_LANG_FC_CONFIG],
-[AC_REQUIRE([_LT_PROG_FC])dnl
-AC_LANG_PUSH(Fortran)
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
 
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 _LT_TAGVAR(allow_undefined_flag, $1)=
@@ -6750,7 +7310,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -6759,6 +7318,8 @@ _LT_TAGVAR(module_cmds, $1)=
 _LT_TAGVAR(module_expsym_cmds, $1)=
 _LT_TAGVAR(link_all_deplibs, $1)=unknown
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 _LT_TAGVAR(no_undefined_flag, $1)=
 _LT_TAGVAR(whole_archive_flag_spec, $1)=
 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
@@ -6798,7 +7359,9 @@ if test "$_lt_disable_FC" != yes; then
   # Allow CC to be a program name with arguments.
   lt_save_CC="$CC"
   lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
   CC=${FC-"f95"}
+  CFLAGS=$FCFLAGS
   compiler=$CC
   GCC=$ac_cv_fc_compiler_gnu
 
@@ -6854,7 +7417,8 @@ if test "$_lt_disable_FC" != yes; then
   fi # test -n "$compiler"
 
   GCC=$lt_save_GCC
-  CC="$lt_save_CC"
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
 fi # test "$_lt_disable_FC" != yes
 
 AC_LANG_POP
@@ -6891,10 +7455,12 @@ _LT_COMPILER_BOILERPLATE
 _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=yes
 CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_TAGVAR(LD, $1)="$LD"
@@ -6904,6 +7470,8 @@ _LT_CC_BASENAME([$compiler])
 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
 
 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
 
 ## CAVEAT EMPTOR:
 ## There is no encapsulation within the following macros, do not change
@@ -6923,10 +7491,82 @@ fi
 AC_LANG_RESTORE
 
 GCC=$lt_save_GCC
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_GCJ_CONFIG
 
 
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
 # _LT_LANG_RC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for the Windows resource compiler
@@ -6958,9 +7598,11 @@ _LT_LINKER_BOILERPLATE
 
 # Allow CC to be a program name with arguments.
 lt_save_CC="$CC"
+lt_save_CFLAGS=$CFLAGS
 lt_save_GCC=$GCC
 GCC=
 CC=${RC-"windres"}
+CFLAGS=
 compiler=$CC
 _LT_TAGVAR(compiler, $1)=$CC
 _LT_CC_BASENAME([$compiler])
@@ -6973,7 +7615,8 @@ fi
 
 GCC=$lt_save_GCC
 AC_LANG_RESTORE
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_RC_CONFIG
 
 
@@ -6993,6 +7636,13 @@ dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
 
 
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
 # LT_PROG_RC
 # ----------
 AC_DEFUN([LT_PROG_RC],
@@ -7032,6 +7682,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
 AC_SUBST([OBJDUMP])
 ])
 
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
 
 # _LT_DECL_SED
 # ------------
@@ -7125,8 +7784,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES],
 # Try some XSI features
 xsi_shell=no
 ( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
@@ -7165,208 +7824,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
 ])# _LT_CHECK_SHELL_FEATURES
 
 
-# _LT_PROG_XSI_SHELLFNS
-# ---------------------
-# Bourne and XSI compatible variants of some useful shell functions.
-m4_defun([_LT_PROG_XSI_SHELLFNS],
-[case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $[*] ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
+# ------------------------------------------------------
+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
+m4_defun([_LT_PROG_FUNCTION_REPLACE],
+[dnl {
+sed -e '/^$1 ()$/,/^} # $1 /c\
+$1 ()\
+{\
+m4_bpatsubsts([$2], [$], [\\], [^\([    ]\)], [\\\1])
+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+])
 
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
 
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
+# _LT_PROG_REPLACE_SHELLFNS
+# -------------------------
+# Replace existing portable implementations of several shell functions with
+# equivalent extended shell implementations where those features are available..
+m4_defun([_LT_PROG_REPLACE_SHELLFNS],
+[if test x"$xsi_shell" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac])
+
+  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
+    func_basename_result="${1##*/}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac
+    func_basename_result="${1##*/}"])
 
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary parameter first.
+    func_stripname_result=${3}
+    func_stripname_result=${func_stripname_result#"${1}"}
+    func_stripname_result=${func_stripname_result%"${2}"}])
 
-dnl func_dirname_and_basename
-dnl A portable version of this function is already defined in general.m4sh
-dnl so there is no need for it here.
+  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
+    func_split_long_opt_name=${1%%=*}
+    func_split_long_opt_arg=${1#*=}])
 
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "X${3}" \
-           | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
-  esac
-}
+  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
+    func_split_short_opt_arg=${1#??}
+    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
 
-# sed scripts:
-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[[^=]]*=//'
+  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
+    case ${1} in
+      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+      *)    func_lo2o_result=${1} ;;
+    esac])
 
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
 
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
 
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
+fi
 
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$[@]"`
-}
+if test x"$lt_shell_append" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
+  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
+    func_quote_for_eval "${2}"
+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
+    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
 
-_LT_EOF
-esac
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
 
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
+if test x"$_lt_function_replace_fail" = x":"; then
+  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
+fi
+])
 
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]+=\$[2]"
-}
-_LT_EOF
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine which file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
     ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$[1]=\$$[1]\$[2]"
-}
-
-_LT_EOF
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
     ;;
-  esac
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+         [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
 ])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+         [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
index 34151a3..5d9acd8 100644 (file)
@@ -1,13 +1,14 @@
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
-#   Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+#   Inc.
 #   Written by Gary V. Vaughan, 2004
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 6 ltoptions.m4
+# serial 7 ltoptions.m4
 
 # This is to help aclocal find these macros, as it can't see m4_define.
 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@@ -125,7 +126,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
 [enable_win32_dll=yes
 
 case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
   AC_CHECK_TOOL(AS, as, false)
   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
   AC_CHECK_TOOL(OBJDUMP, objdump, false)
@@ -133,13 +134,13 @@ case $host in
 esac
 
 test -z "$AS" && AS=as
-_LT_DECL([], [AS],      [0], [Assembler program])dnl
+_LT_DECL([], [AS],      [1], [Assembler program])dnl
 
 test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
 
 test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
 ])# win32-dll
 
 AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
@@ -325,9 +326,24 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
 # MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
 m4_define([_LT_WITH_PIC],
 [AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic],
+    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
        [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
+    [lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+       IFS="$lt_save_ifs"
+       if test "X$lt_pkg" = "X$lt_p"; then
+         pic_mode=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
     [pic_mode=default])
 
 test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
index b8e154f..07a8602 100644 (file)
@@ -7,17 +7,17 @@
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# Generated from ltversion.in.
+# @configure_input@
 
-# serial 3012 ltversion.m4
+# serial 3337 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.2.6])
-m4_define([LT_PACKAGE_REVISION], [1.3012])
+m4_define([LT_PACKAGE_VERSION], [2.4.2])
+m4_define([LT_PACKAGE_REVISION], [1.3337])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.6'
-macro_revision='1.3012'
+[macro_version='2.4.2'
+macro_revision='1.3337'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
index 637bb20..c573da9 100644 (file)
@@ -1,13 +1,13 @@
 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
 #
-#   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
 #   Written by Scott James Remnant, 2004.
 #
 # This file is free software; the Free Software Foundation gives
 # unlimited permission to copy and/or distribute it, with or without
 # modifications, as long as this notice is preserved.
 
-# serial 4 lt~obsolete.m4
+# serial 5 lt~obsolete.m4
 
 # These exist entirely to fool aclocal when bootstrapping libtool.
 #
@@ -77,7 +77,6 @@ m4_ifndef([AC_DISABLE_FAST_INSTALL],  [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
 m4_ifndef([_LT_AC_LANG_CXX],           [AC_DEFUN([_LT_AC_LANG_CXX])])
 m4_ifndef([_LT_AC_LANG_F77],           [AC_DEFUN([_LT_AC_LANG_F77])])
 m4_ifndef([_LT_AC_LANG_GCJ],           [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_RC],             [AC_DEFUN([AC_LIBTOOL_RC])])
 m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],  [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
 m4_ifndef([_LT_AC_LANG_C_CONFIG],      [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
 m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
@@ -90,3 +89,10 @@ m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],       [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
 m4_ifndef([_LT_AC_LANG_RC_CONFIG],     [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
 m4_ifndef([AC_LIBTOOL_CONFIG],         [AC_DEFUN([AC_LIBTOOL_CONFIG])])
 m4_ifndef([_LT_AC_FILE_LTDLL_C],       [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],        [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP],                [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],        [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH],   [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77],              [AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC],               [AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX],              [AC_DEFUN([_LT_PROG_CXX])])
index a59d9d4..30929ab 100644 (file)
@@ -1,16 +1,28 @@
 ## DO NOT EDIT! GENERATED AUTOMATICALLY!
 ## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2010 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 #
-# This file is free software, distributed under the terms of the GNU
-# General Public License.  As a special exception to the GNU General
-# Public License, this file may be distributed as part of a program
-# that contains a configuration script generated by Autoconf, under
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file.  If not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License,
+# this file may be distributed as part of a program that
+# contains a configuration script generated by Autoconf, under
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
 
-AUTOMAKE_OPTIONS = 1.5 foreign subdir-objects
+AUTOMAKE_OPTIONS = 1.9.6 foreign subdir-objects
 
 SUBDIRS = .
 TESTS =
@@ -55,30 +67,6 @@ EXTRA_DIST += test-alloca-opt.c
 
 ## end   gnulib module alloca-opt-tests
 
-## begin gnulib module arg-nonnull
-
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
-
-BUILT_SOURCES += arg-nonnull.h
-# The arg-nonnull.h that gets inserted into generated .h files is the same as
-# build-aux/arg-nonnull.h, except that it has the copyright header cut off.
-arg-nonnull.h: $(top_srcdir)/build-aux/arg-nonnull.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/GL_ARG_NONNULL/,$$p' \
-         < $(top_srcdir)/build-aux/arg-nonnull.h \
-         > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t
-
-ARG_NONNULL_H=arg-nonnull.h
-
-EXTRA_DIST += $(top_srcdir)/build-aux/arg-nonnull.h
-
-## end   gnulib module arg-nonnull
-
 ## begin gnulib module array-mergesort-tests
 
 TESTS += test-array-mergesort
@@ -87,29 +75,24 @@ EXTRA_DIST += test-array-mergesort.c macros.h
 
 ## end   gnulib module array-mergesort-tests
 
-## begin gnulib module c++defs
+## begin gnulib module btowc
 
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
 
-BUILT_SOURCES += c++defs.h
-# The c++defs.h that gets inserted into generated .h files is the same as
-# build-aux/c++defs.h, except that it has the copyright header cut off.
-c++defs.h: $(top_srcdir)/build-aux/c++defs.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/_GL_CXXDEFS/,$$p' \
-         < $(top_srcdir)/build-aux/c++defs.h \
-         > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += c++defs.h c++defs.h-t
+EXTRA_DIST += btowc.c
 
-CXXDEFS_H=c++defs.h
+EXTRA_libtests_a_SOURCES += btowc.c
 
-EXTRA_DIST += $(top_srcdir)/build-aux/c++defs.h
+## end   gnulib module btowc
+
+## begin gnulib module btowc-tests
+
+TESTS += test-btowc1.sh test-btowc2.sh
+TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
+check_PROGRAMS += test-btowc
 
-## end   gnulib module c++defs
+EXTRA_DIST += test-btowc1.sh test-btowc2.sh test-btowc.c signature.h macros.h
+
+## end   gnulib module btowc-tests
 
 ## begin gnulib module c-ctype-tests
 
@@ -164,12 +147,70 @@ EXTRA_DIST += exitfail.h
 
 ## end   gnulib module exitfail
 
+## begin gnulib module fdopen
+
+
+EXTRA_DIST += fdopen.c
+
+EXTRA_libtests_a_SOURCES += fdopen.c
+
+## end   gnulib module fdopen
+
+## begin gnulib module fdopen-tests
+
+TESTS += test-fdopen
+check_PROGRAMS += test-fdopen
+EXTRA_DIST += test-fdopen.c signature.h macros.h
+
+## end   gnulib module fdopen-tests
+
+## begin gnulib module fgetc-tests
+
+TESTS += test-fgetc
+check_PROGRAMS += test-fgetc
+EXTRA_DIST += test-fgetc.c signature.h macros.h
+
+## end   gnulib module fgetc-tests
+
+## begin gnulib module float-tests
+
+TESTS += test-float
+check_PROGRAMS += test-float
+EXTRA_DIST += test-float.c macros.h
+
+## end   gnulib module float-tests
+
+## begin gnulib module fputc-tests
+
+TESTS += test-fputc
+check_PROGRAMS += test-fputc
+EXTRA_DIST += test-fputc.c signature.h macros.h
+
+## end   gnulib module fputc-tests
+
+## begin gnulib module fread-tests
+
+TESTS += test-fread
+check_PROGRAMS += test-fread
+EXTRA_DIST += test-fread.c signature.h macros.h
+
+## end   gnulib module fread-tests
+
+## begin gnulib module frexp-nolibm-tests
+
+TESTS += test-frexp-nolibm
+check_PROGRAMS += test-frexp-nolibm
+test_frexp_nolibm_SOURCES = test-frexp.c randomd.c
+EXTRA_DIST += test-frexp.c test-frexp.h minus-zero.h infinity.h nan.h signature.h macros.h randomd.c
+
+## end   gnulib module frexp-nolibm-tests
+
 ## begin gnulib module frexpl-nolibm-tests
 
 TESTS += test-frexpl-nolibm
 check_PROGRAMS += test-frexpl-nolibm
-test_frexpl_nolibm_SOURCES = test-frexpl.c
-EXTRA_DIST += test-frexpl.c signature.h macros.h
+test_frexpl_nolibm_SOURCES = test-frexpl.c randoml.c
+EXTRA_DIST += test-frexpl.c test-frexp.h minus-zero.h infinity.h nan.h signature.h macros.h randoml.c
 
 ## end   gnulib module frexpl-nolibm-tests
 
@@ -182,6 +223,14 @@ EXTRA_DIST += test-fseterr.c
 
 ## end   gnulib module fseterr-tests
 
+## begin gnulib module fwrite-tests
+
+TESTS += test-fwrite
+check_PROGRAMS += test-fwrite
+EXTRA_DIST += test-fwrite.c signature.h macros.h
+
+## end   gnulib module fwrite-tests
+
 ## begin gnulib module getpagesize
 
 
@@ -222,12 +271,73 @@ EXTRA_DIST += intprops.h
 
 ## end   gnulib module intprops
 
+## begin gnulib module intprops-tests
+
+TESTS += test-intprops
+check_PROGRAMS += test-intprops
+EXTRA_DIST += test-intprops.c macros.h
+
+## end   gnulib module intprops-tests
+
+## begin gnulib module inttypes-incomplete
+
+BUILT_SOURCES += inttypes.h
+
+# We need the following in order to create <inttypes.h> when the system
+# doesn't have one that works with the given compiler.
+inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \
+             -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \
+             -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+             -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+             -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+             -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
+             -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
+             -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
+             -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
+             -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
+             -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
+             -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
+             -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
+             -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
+             -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
+             -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \
+             -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
+             -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \
+             -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \
+             -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             < $(srcdir)/inttypes.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += inttypes.h inttypes.h-t
+
+EXTRA_DIST += inttypes.in.h
+
+## end   gnulib module inttypes-incomplete
+
+## begin gnulib module inttypes-tests
+
+TESTS += test-inttypes
+check_PROGRAMS += test-inttypes
+EXTRA_DIST += test-inttypes.c
+
+## end   gnulib module inttypes-tests
+
 ## begin gnulib module isnand-nolibm-tests
 
 TESTS += test-isnand-nolibm
 check_PROGRAMS += test-isnand-nolibm
 
-EXTRA_DIST += test-isnand-nolibm.c test-isnand.h nan.h macros.h
+EXTRA_DIST += test-isnand-nolibm.c test-isnand.h minus-zero.h infinity.h nan.h macros.h
 
 ## end   gnulib module isnand-nolibm-tests
 
@@ -236,7 +346,7 @@ EXTRA_DIST += test-isnand-nolibm.c test-isnand.h nan.h macros.h
 TESTS += test-isnanf-nolibm
 check_PROGRAMS += test-isnanf-nolibm
 
-EXTRA_DIST += test-isnanf-nolibm.c test-isnanf.h nan.h macros.h
+EXTRA_DIST += test-isnanf-nolibm.c test-isnanf.h minus-zero.h infinity.h nan.h macros.h
 
 ## end   gnulib module isnanf-nolibm-tests
 
@@ -245,26 +355,41 @@ EXTRA_DIST += test-isnanf-nolibm.c test-isnanf.h nan.h macros.h
 TESTS += test-isnanl-nolibm
 check_PROGRAMS += test-isnanl-nolibm
 
-EXTRA_DIST += test-isnanl-nolibm.c test-isnanl.h nan.h macros.h
+EXTRA_DIST += test-isnanl-nolibm.c test-isnanl.h minus-zero.h infinity.h nan.h macros.h
 
 ## end   gnulib module isnanl-nolibm-tests
 
+## begin gnulib module iswblank-tests
+
+TESTS += test-iswblank
+check_PROGRAMS += test-iswblank
+EXTRA_DIST += test-iswblank.c macros.h
+
+## end   gnulib module iswblank-tests
+
 ## begin gnulib module locale
 
 BUILT_SOURCES += locale.h
 
 # We need the following in order to create <locale.h> when the system
 # doesn't have one that provides all definitions.
-locale.h: locale.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
-             -e 's|@''GNULIB_DUPLOCALE''@|$(GNULIB_DUPLOCALE)|g' \
+             -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \
+             -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
+             -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
              -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
              -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
+             -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \
+             -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
              -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
+             -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
@@ -289,7 +414,7 @@ EXTRA_DIST += test-locale.c
 
 TESTS += test-localename
 check_PROGRAMS += test-localename
-test_localename_LDADD = $(LDADD) @INTL_MACOSX_LIBS@
+test_localename_LDADD = $(LDADD) @INTL_MACOSX_LIBS@ $(LIBTHREAD)
 
 EXTRA_DIST += test-localename.c macros.h
 
@@ -317,21 +442,24 @@ EXTRA_DIST += test-malloca.c
 
 TESTS += test-math
 check_PROGRAMS += test-math
-EXTRA_DIST += test-math.c
+EXTRA_DIST += test-math.c macros.h
 
 ## end   gnulib module math-tests
 
 ## begin gnulib module mbrtowc-tests
 
-TESTS += test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh
+TESTS += \
+  test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh \
+  test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh test-mbrtowc-w32-3.sh \
+  test-mbrtowc-w32-4.sh test-mbrtowc-w32-5.sh
 TESTS_ENVIRONMENT += \
   LOCALE_FR='@LOCALE_FR@' \
   LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
   LOCALE_JA='@LOCALE_JA@' \
   LOCALE_ZH_CN='@LOCALE_ZH_CN@'
-check_PROGRAMS += test-mbrtowc
+check_PROGRAMS += test-mbrtowc test-mbrtowc-w32
 
-EXTRA_DIST += test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh test-mbrtowc.c signature.h macros.h
+EXTRA_DIST += test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh test-mbrtowc.c test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh test-mbrtowc-w32-3.sh test-mbrtowc-w32-4.sh test-mbrtowc-w32-5.sh test-mbrtowc-w32.c signature.h macros.h
 
 ## end   gnulib module mbrtowc-tests
 
@@ -345,6 +473,15 @@ EXTRA_DIST += test-mbsinit.sh test-mbsinit.c signature.h macros.h
 
 ## end   gnulib module mbsinit-tests
 
+## begin gnulib module mbtowc
+
+
+EXTRA_DIST += mbtowc-impl.h mbtowc.c
+
+EXTRA_libtests_a_SOURCES += mbtowc.c
+
+## end   gnulib module mbtowc
+
 ## begin gnulib module memchr-tests
 
 TESTS += test-memchr
@@ -353,6 +490,24 @@ EXTRA_DIST += test-memchr.c zerosize-ptr.h signature.h macros.h
 
 ## end   gnulib module memchr-tests
 
+## begin gnulib module msvc-inval
+
+
+EXTRA_DIST += msvc-inval.c msvc-inval.h
+
+EXTRA_libtests_a_SOURCES += msvc-inval.c
+
+## end   gnulib module msvc-inval
+
+## begin gnulib module msvc-nothrow
+
+
+EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h
+
+EXTRA_libtests_a_SOURCES += msvc-nothrow.c
+
+## end   gnulib module msvc-nothrow
+
 ## begin gnulib module printf-frexp-tests
 
 TESTS += test-printf-frexp
@@ -401,15 +556,143 @@ EXTRA_DIST += test-setenv.c signature.h macros.h
 
 ## end   gnulib module setenv-tests
 
+## begin gnulib module setlocale
+
+
+EXTRA_DIST += setlocale.c
+
+EXTRA_libtests_a_SOURCES += setlocale.c
+
+## end   gnulib module setlocale
+
+## begin gnulib module setlocale-tests
+
+TESTS += test-setlocale1.sh test-setlocale2.sh
+TESTS_ENVIRONMENT += \
+  LOCALE_FR='@LOCALE_FR@' \
+  LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+  LOCALE_JA='@LOCALE_JA@' \
+  LOCALE_ZH_CN='@LOCALE_ZH_CN@'
+check_PROGRAMS += test-setlocale1 test-setlocale2
+EXTRA_DIST += test-setlocale1.sh test-setlocale1.c test-setlocale2.sh test-setlocale2.c signature.h macros.h
+
+## end   gnulib module setlocale-tests
+
 ## begin gnulib module signbit-tests
 
 TESTS += test-signbit
 check_PROGRAMS += test-signbit
 
-EXTRA_DIST += test-signbit.c macros.h
+EXTRA_DIST += test-signbit.c minus-zero.h infinity.h macros.h
 
 ## end   gnulib module signbit-tests
 
+## begin gnulib module snippet/_Noreturn
+
+# Because this Makefile snippet defines a variable used by other
+# gnulib Makefile snippets, it must be present in all Makefile.am that
+# need it. This is ensured by the applicability 'all' defined above.
+
+_NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/_Noreturn.h
+
+## end   gnulib module snippet/_Noreturn
+
+## begin gnulib module snippet/arg-nonnull
+
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# statements but through direct file reference. Therefore this snippet must be
+# present in all Makefile.am that need it. This is ensured by the applicability
+# 'all' defined above.
+
+BUILT_SOURCES += arg-nonnull.h
+# The arg-nonnull.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut
+# off.
+arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/GL_ARG_NONNULL/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t
+
+ARG_NONNULL_H=arg-nonnull.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+
+## end   gnulib module snippet/arg-nonnull
+
+## begin gnulib module snippet/c++defs
+
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# statements but through direct file reference. Therefore this snippet must be
+# present in all Makefile.am that need it. This is ensured by the applicability
+# 'all' defined above.
+
+BUILT_SOURCES += c++defs.h
+# The c++defs.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/c++defs.h, except that it has the copyright header cut off.
+c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/_GL_CXXDEFS/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/c++defs.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += c++defs.h c++defs.h-t
+
+CXXDEFS_H=c++defs.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h
+
+## end   gnulib module snippet/c++defs
+
+## begin gnulib module snippet/unused-parameter
+
+# The BUILT_SOURCES created by this Makefile snippet are not used via #include
+# statements but through direct file reference. Therefore this snippet must be
+# present in all Makefile.am that need it. This is ensured by the applicability
+# 'all' defined above.
+
+BUILT_SOURCES += unused-parameter.h
+# The unused-parameter.h that gets inserted into generated .h files is the same
+# as build-aux/snippet/unused-parameter.h, except that it has the copyright
+# header cut off.
+unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/unused-parameter.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t
+
+UNUSED_PARAMETER_H=unused-parameter.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/unused-parameter.h
+
+## end   gnulib module snippet/unused-parameter
+
+## begin gnulib module snippet/warn-on-use
+
+BUILT_SOURCES += warn-on-use.h
+# The warn-on-use.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut
+# off.
+warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/^.ifndef/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/warn-on-use.h \
+         > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t
+
+WARN_ON_USE_H=warn-on-use.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h
+
+## end   gnulib module snippet/warn-on-use
+
 ## begin gnulib module stdbool-tests
 
 TESTS += test-stdbool
@@ -434,11 +717,147 @@ EXTRA_DIST += test-stdint.c
 
 ## end   gnulib module stdint-tests
 
+## begin gnulib module stdio
+
+BUILT_SOURCES += stdio.h
+
+# We need the following in order to create <stdio.h> when the system
+# doesn't have one that works with the given compiler.
+stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \
+             -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \
+             -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \
+             -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \
+             -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \
+             -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \
+             -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \
+             -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \
+             -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \
+             -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \
+             -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \
+             -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \
+             -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \
+             -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \
+             -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \
+             -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \
+             -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \
+             -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \
+             -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \
+             -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \
+             -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \
+             -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \
+             -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \
+             -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \
+             -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \
+             -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \
+             -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \
+             -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \
+             -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \
+             -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \
+             -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \
+             -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \
+             -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \
+             -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \
+             -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \
+             -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \
+             -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \
+             -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \
+             -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \
+             -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \
+             -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \
+             -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \
+             -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \
+             -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \
+             -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \
+             -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \
+             -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \
+             -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \
+             < $(srcdir)/stdio.in.h | \
+         sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \
+             -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \
+             -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \
+             -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
+             -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
+             -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \
+             -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
+             -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
+             -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \
+             -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \
+             -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \
+             -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \
+             -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \
+             -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \
+             -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \
+             -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \
+             -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \
+             -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \
+             -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \
+             -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
+             -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \
+             -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
+             -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \
+             -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \
+             -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \
+             -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \
+             -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
+             -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
+             -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \
+             -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \
+             -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \
+             -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \
+             -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \
+             -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \
+             -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \
+             -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \
+             -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \
+             -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
+             -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
+             -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \
+             -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \
+             -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \
+             -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \
+             -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \
+             -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \
+             -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \
+             -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \
+             -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \
+             -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += stdio.h stdio.h-t
+
+EXTRA_DIST += stdio.in.h
+
+## end   gnulib module stdio
+
+## begin gnulib module stdio-tests
+
+TESTS += test-stdio
+check_PROGRAMS += test-stdio
+EXTRA_DIST += test-stdio.c
+
+## end   gnulib module stdio-tests
+
 ## begin gnulib module stdlib-tests
 
 TESTS += test-stdlib
 check_PROGRAMS += test-stdlib
-EXTRA_DIST += test-stdlib.c
+EXTRA_DIST += test-stdlib.c test-sys_wait.h
 
 ## end   gnulib module stdlib-tests
 
@@ -451,6 +870,15 @@ EXTRA_libtests_a_SOURCES += strerror.c
 
 ## end   gnulib module strerror
 
+## begin gnulib module strerror-override
+
+
+EXTRA_DIST += strerror-override.c strerror-override.h
+
+EXTRA_libtests_a_SOURCES += strerror-override.c
+
+## end   gnulib module strerror-override
+
 ## begin gnulib module strerror-tests
 
 TESTS += test-strerror
@@ -463,7 +891,7 @@ EXTRA_DIST += test-strerror.c signature.h macros.h
 
 TESTS += test-striconveh
 check_PROGRAMS += test-striconveh
-test_striconveh_LDADD = $(LDADD) @LIBICONV@
+test_striconveh_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += test-striconveh.c macros.h
 
@@ -473,7 +901,7 @@ EXTRA_DIST += test-striconveh.c macros.h
 
 TESTS += test-striconveha
 check_PROGRAMS += test-striconveha
-test_striconveha_LDADD = $(LDADD) @LIBICONV@
+test_striconveha_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += test-striconveha.c macros.h
 
@@ -495,18 +923,52 @@ EXTRA_DIST += test-strncat.c unistr/test-strncat.h zerosize-ptr.h signature.h ma
 
 ## end   gnulib module strncat-tests
 
+## begin gnulib module strstr-tests
+
+TESTS += test-strstr
+check_PROGRAMS += test-strstr
+EXTRA_DIST += test-strstr.c zerosize-ptr.h signature.h macros.h
+
+## end   gnulib module strstr-tests
+
+## begin gnulib module sys_types-tests
+
+TESTS += test-sys_types
+check_PROGRAMS += test-sys_types
+EXTRA_DIST += test-sys_types.c
+
+## end   gnulib module sys_types-tests
+
+## begin gnulib module test-framework-sh-tests
+
+TESTS += test-init.sh
+EXTRA_DIST += init.sh
+EXTRA_DIST += test-init.sh
+
+## end   gnulib module test-framework-sh-tests
+
 ## begin gnulib module thread
 
 libtests_a_SOURCES += glthread/thread.h glthread/thread.c
 
 ## end   gnulib module thread
 
+## begin gnulib module thread-tests
+
+TESTS += test-thread_self test-thread_create
+check_PROGRAMS += test-thread_self test-thread_create
+test_thread_self_LDADD = $(LDADD) @LIBTHREAD@
+test_thread_create_LDADD = $(LDADD) @LIBMULTITHREAD@
+EXTRA_DIST += test-thread_self.c test-thread_create.c macros.h
+
+## end   gnulib module thread-tests
+
 ## begin gnulib module unicase/cased-tests
 
 TESTS += test-cased
 check_PROGRAMS += test-cased
 test_cased_SOURCES = unicase/test-cased.c
-
+test_cased_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-cased.c unicase/test-predicate-part1.h unicase/test-predicate-part2.h macros.h
 
 ## end   gnulib module unicase/cased-tests
@@ -516,7 +978,7 @@ EXTRA_DIST += unicase/test-cased.c unicase/test-predicate-part1.h unicase/test-p
 TESTS += test-ignorable
 check_PROGRAMS += test-ignorable
 test_ignorable_SOURCES = unicase/test-ignorable.c
-
+test_ignorable_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-ignorable.c unicase/test-predicate-part1.h unicase/test-predicate-part2.h macros.h
 
 ## end   gnulib module unicase/ignorable-tests
@@ -527,7 +989,7 @@ TESTS += unicase/test-locale-language.sh
 TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_JA='@LOCALE_JA@' LOCALE_TR_UTF8='@LOCALE_TR_UTF8@' LOCALE_ZH_CN='@LOCALE_ZH_CN@'
 check_PROGRAMS += test-locale-language
 test_locale_language_SOURCES = unicase/test-locale-language.c
-test_locale_language_LDADD = $(LDADD) @INTL_MACOSX_LIBS@
+test_locale_language_LDADD = $(LDADD) $(LIBUNISTRING) @INTL_MACOSX_LIBS@
 EXTRA_DIST += unicase/test-locale-language.sh unicase/test-locale-language.c macros.h
 
 ## end   gnulib module unicase/locale-language-tests
@@ -537,7 +999,7 @@ EXTRA_DIST += unicase/test-locale-language.sh unicase/test-locale-language.c mac
 TESTS += test-uc_tolower
 check_PROGRAMS += test-uc_tolower
 test_uc_tolower_SOURCES = unicase/test-uc_tolower.c
-
+test_uc_tolower_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-uc_tolower.c unicase/test-mapping-part1.h unicase/test-mapping-part2.h macros.h
 
 ## end   gnulib module unicase/tolower-tests
@@ -547,7 +1009,7 @@ EXTRA_DIST += unicase/test-uc_tolower.c unicase/test-mapping-part1.h unicase/tes
 TESTS += test-uc_totitle
 check_PROGRAMS += test-uc_totitle
 test_uc_totitle_SOURCES = unicase/test-uc_totitle.c
-
+test_uc_totitle_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-uc_totitle.c unicase/test-mapping-part1.h unicase/test-mapping-part2.h macros.h
 
 ## end   gnulib module unicase/totitle-tests
@@ -557,7 +1019,7 @@ EXTRA_DIST += unicase/test-uc_totitle.c unicase/test-mapping-part1.h unicase/tes
 TESTS += test-uc_toupper
 check_PROGRAMS += test-uc_toupper
 test_uc_toupper_SOURCES = unicase/test-uc_toupper.c
-
+test_uc_toupper_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-uc_toupper.c unicase/test-mapping-part1.h unicase/test-mapping-part2.h macros.h
 
 ## end   gnulib module unicase/toupper-tests
@@ -567,7 +1029,7 @@ EXTRA_DIST += unicase/test-uc_toupper.c unicase/test-mapping-part1.h unicase/tes
 TESTS += test-u16-casecmp
 check_PROGRAMS += test-u16-casecmp
 test_u16_casecmp_SOURCES = unicase/test-u16-casecmp.c
-
+test_u16_casecmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u16-casecmp.c unicase/test-casecmp.h macros.h
 
 ## end   gnulib module unicase/u16-casecmp-tests
@@ -577,7 +1039,7 @@ EXTRA_DIST += unicase/test-u16-casecmp.c unicase/test-casecmp.h macros.h
 TESTS += test-u16-casecoll
 check_PROGRAMS += test-u16-casecoll
 test_u16_casecoll_SOURCES = unicase/test-u16-casecoll.c
-test_u16_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_u16_casecoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += unicase/test-u16-casecoll.c unicase/test-casecmp.h macros.h
 
@@ -588,7 +1050,7 @@ EXTRA_DIST += unicase/test-u16-casecoll.c unicase/test-casecmp.h macros.h
 TESTS += test-u16-casefold
 check_PROGRAMS += test-u16-casefold
 test_u16_casefold_SOURCES = unicase/test-u16-casefold.c
-
+test_u16_casefold_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u16-casefold.c macros.h
 
 ## end   gnulib module unicase/u16-casefold-tests
@@ -598,7 +1060,7 @@ EXTRA_DIST += unicase/test-u16-casefold.c macros.h
 TESTS += test-u16-is-cased
 check_PROGRAMS += test-u16-is-cased
 test_u16_is_cased_SOURCES = unicase/test-u16-is-cased.c
-
+test_u16_is_cased_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u16-is-cased.c unicase/test-is-cased.h macros.h
 
 ## end   gnulib module unicase/u16-is-cased-tests
@@ -608,7 +1070,7 @@ EXTRA_DIST += unicase/test-u16-is-cased.c unicase/test-is-cased.h macros.h
 TESTS += test-u16-is-casefolded
 check_PROGRAMS += test-u16-is-casefolded
 test_u16_is_casefolded_SOURCES = unicase/test-u16-is-casefolded.c
-
+test_u16_is_casefolded_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u16-is-casefolded.c unicase/test-is-casefolded.h macros.h
 
 ## end   gnulib module unicase/u16-is-casefolded-tests
@@ -618,7 +1080,7 @@ EXTRA_DIST += unicase/test-u16-is-casefolded.c unicase/test-is-casefolded.h macr
 TESTS += test-u16-is-lowercase
 check_PROGRAMS += test-u16-is-lowercase
 test_u16_is_lowercase_SOURCES = unicase/test-u16-is-lowercase.c
-
+test_u16_is_lowercase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u16-is-lowercase.c unicase/test-is-lowercase.h macros.h
 
 ## end   gnulib module unicase/u16-is-lowercase-tests
@@ -628,7 +1090,7 @@ EXTRA_DIST += unicase/test-u16-is-lowercase.c unicase/test-is-lowercase.h macros
 TESTS += test-u16-is-titlecase
 check_PROGRAMS += test-u16-is-titlecase
 test_u16_is_titlecase_SOURCES = unicase/test-u16-is-titlecase.c
-
+test_u16_is_titlecase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u16-is-titlecase.c unicase/test-is-titlecase.h macros.h
 
 ## end   gnulib module unicase/u16-is-titlecase-tests
@@ -638,7 +1100,7 @@ EXTRA_DIST += unicase/test-u16-is-titlecase.c unicase/test-is-titlecase.h macros
 TESTS += test-u16-is-uppercase
 check_PROGRAMS += test-u16-is-uppercase
 test_u16_is_uppercase_SOURCES = unicase/test-u16-is-uppercase.c
-
+test_u16_is_uppercase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u16-is-uppercase.c unicase/test-is-uppercase.h macros.h
 
 ## end   gnulib module unicase/u16-is-uppercase-tests
@@ -648,7 +1110,7 @@ EXTRA_DIST += unicase/test-u16-is-uppercase.c unicase/test-is-uppercase.h macros
 TESTS += test-u16-tolower
 check_PROGRAMS += test-u16-tolower
 test_u16_tolower_SOURCES = unicase/test-u16-tolower.c
-
+test_u16_tolower_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u16-tolower.c macros.h
 
 ## end   gnulib module unicase/u16-tolower-tests
@@ -658,7 +1120,7 @@ EXTRA_DIST += unicase/test-u16-tolower.c macros.h
 TESTS += test-u16-totitle
 check_PROGRAMS += test-u16-totitle
 test_u16_totitle_SOURCES = unicase/test-u16-totitle.c
-
+test_u16_totitle_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u16-totitle.c macros.h
 
 ## end   gnulib module unicase/u16-totitle-tests
@@ -668,7 +1130,7 @@ EXTRA_DIST += unicase/test-u16-totitle.c macros.h
 TESTS += test-u16-toupper
 check_PROGRAMS += test-u16-toupper
 test_u16_toupper_SOURCES = unicase/test-u16-toupper.c
-
+test_u16_toupper_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u16-toupper.c macros.h
 
 ## end   gnulib module unicase/u16-toupper-tests
@@ -678,7 +1140,7 @@ EXTRA_DIST += unicase/test-u16-toupper.c macros.h
 TESTS += test-u32-casecmp
 check_PROGRAMS += test-u32-casecmp
 test_u32_casecmp_SOURCES = unicase/test-u32-casecmp.c
-
+test_u32_casecmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u32-casecmp.c unicase/test-casecmp.h macros.h
 
 ## end   gnulib module unicase/u32-casecmp-tests
@@ -688,7 +1150,7 @@ EXTRA_DIST += unicase/test-u32-casecmp.c unicase/test-casecmp.h macros.h
 TESTS += test-u32-casecoll
 check_PROGRAMS += test-u32-casecoll
 test_u32_casecoll_SOURCES = unicase/test-u32-casecoll.c
-test_u32_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_u32_casecoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += unicase/test-u32-casecoll.c unicase/test-casecmp.h macros.h
 
@@ -699,7 +1161,7 @@ EXTRA_DIST += unicase/test-u32-casecoll.c unicase/test-casecmp.h macros.h
 TESTS += test-u32-casefold
 check_PROGRAMS += test-u32-casefold
 test_u32_casefold_SOURCES = unicase/test-u32-casefold.c
-
+test_u32_casefold_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u32-casefold.c macros.h
 
 ## end   gnulib module unicase/u32-casefold-tests
@@ -709,7 +1171,7 @@ EXTRA_DIST += unicase/test-u32-casefold.c macros.h
 TESTS += test-u32-is-cased
 check_PROGRAMS += test-u32-is-cased
 test_u32_is_cased_SOURCES = unicase/test-u32-is-cased.c
-
+test_u32_is_cased_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u32-is-cased.c unicase/test-is-cased.h macros.h
 
 ## end   gnulib module unicase/u32-is-cased-tests
@@ -719,7 +1181,7 @@ EXTRA_DIST += unicase/test-u32-is-cased.c unicase/test-is-cased.h macros.h
 TESTS += test-u32-is-casefolded
 check_PROGRAMS += test-u32-is-casefolded
 test_u32_is_casefolded_SOURCES = unicase/test-u32-is-casefolded.c
-
+test_u32_is_casefolded_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u32-is-casefolded.c unicase/test-is-casefolded.h macros.h
 
 ## end   gnulib module unicase/u32-is-casefolded-tests
@@ -729,7 +1191,7 @@ EXTRA_DIST += unicase/test-u32-is-casefolded.c unicase/test-is-casefolded.h macr
 TESTS += test-u32-is-lowercase
 check_PROGRAMS += test-u32-is-lowercase
 test_u32_is_lowercase_SOURCES = unicase/test-u32-is-lowercase.c
-
+test_u32_is_lowercase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u32-is-lowercase.c unicase/test-is-lowercase.h macros.h
 
 ## end   gnulib module unicase/u32-is-lowercase-tests
@@ -739,7 +1201,7 @@ EXTRA_DIST += unicase/test-u32-is-lowercase.c unicase/test-is-lowercase.h macros
 TESTS += test-u32-is-titlecase
 check_PROGRAMS += test-u32-is-titlecase
 test_u32_is_titlecase_SOURCES = unicase/test-u32-is-titlecase.c
-
+test_u32_is_titlecase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u32-is-titlecase.c unicase/test-is-titlecase.h macros.h
 
 ## end   gnulib module unicase/u32-is-titlecase-tests
@@ -749,7 +1211,7 @@ EXTRA_DIST += unicase/test-u32-is-titlecase.c unicase/test-is-titlecase.h macros
 TESTS += test-u32-is-uppercase
 check_PROGRAMS += test-u32-is-uppercase
 test_u32_is_uppercase_SOURCES = unicase/test-u32-is-uppercase.c
-
+test_u32_is_uppercase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u32-is-uppercase.c unicase/test-is-uppercase.h macros.h
 
 ## end   gnulib module unicase/u32-is-uppercase-tests
@@ -759,7 +1221,7 @@ EXTRA_DIST += unicase/test-u32-is-uppercase.c unicase/test-is-uppercase.h macros
 TESTS += test-u32-tolower
 check_PROGRAMS += test-u32-tolower
 test_u32_tolower_SOURCES = unicase/test-u32-tolower.c
-
+test_u32_tolower_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u32-tolower.c macros.h
 
 ## end   gnulib module unicase/u32-tolower-tests
@@ -769,7 +1231,7 @@ EXTRA_DIST += unicase/test-u32-tolower.c macros.h
 TESTS += test-u32-totitle
 check_PROGRAMS += test-u32-totitle
 test_u32_totitle_SOURCES = unicase/test-u32-totitle.c
-
+test_u32_totitle_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u32-totitle.c macros.h
 
 ## end   gnulib module unicase/u32-totitle-tests
@@ -779,7 +1241,7 @@ EXTRA_DIST += unicase/test-u32-totitle.c macros.h
 TESTS += test-u32-toupper
 check_PROGRAMS += test-u32-toupper
 test_u32_toupper_SOURCES = unicase/test-u32-toupper.c
-
+test_u32_toupper_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u32-toupper.c macros.h
 
 ## end   gnulib module unicase/u32-toupper-tests
@@ -789,7 +1251,7 @@ EXTRA_DIST += unicase/test-u32-toupper.c macros.h
 TESTS += test-u8-casecmp
 check_PROGRAMS += test-u8-casecmp
 test_u8_casecmp_SOURCES = unicase/test-u8-casecmp.c
-
+test_u8_casecmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u8-casecmp.c unicase/test-casecmp.h macros.h
 
 ## end   gnulib module unicase/u8-casecmp-tests
@@ -799,7 +1261,7 @@ EXTRA_DIST += unicase/test-u8-casecmp.c unicase/test-casecmp.h macros.h
 TESTS += test-u8-casecoll
 check_PROGRAMS += test-u8-casecoll
 test_u8_casecoll_SOURCES = unicase/test-u8-casecoll.c
-test_u8_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_u8_casecoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += unicase/test-u8-casecoll.c unicase/test-casecmp.h macros.h
 
@@ -810,7 +1272,7 @@ EXTRA_DIST += unicase/test-u8-casecoll.c unicase/test-casecmp.h macros.h
 TESTS += test-u8-casefold
 check_PROGRAMS += test-u8-casefold
 test_u8_casefold_SOURCES = unicase/test-u8-casefold.c
-
+test_u8_casefold_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u8-casefold.c macros.h
 
 ## end   gnulib module unicase/u8-casefold-tests
@@ -820,7 +1282,7 @@ EXTRA_DIST += unicase/test-u8-casefold.c macros.h
 TESTS += test-u8-is-cased
 check_PROGRAMS += test-u8-is-cased
 test_u8_is_cased_SOURCES = unicase/test-u8-is-cased.c
-
+test_u8_is_cased_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u8-is-cased.c unicase/test-is-cased.h macros.h
 
 ## end   gnulib module unicase/u8-is-cased-tests
@@ -830,7 +1292,7 @@ EXTRA_DIST += unicase/test-u8-is-cased.c unicase/test-is-cased.h macros.h
 TESTS += test-u8-is-casefolded
 check_PROGRAMS += test-u8-is-casefolded
 test_u8_is_casefolded_SOURCES = unicase/test-u8-is-casefolded.c
-
+test_u8_is_casefolded_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u8-is-casefolded.c unicase/test-is-casefolded.h macros.h
 
 ## end   gnulib module unicase/u8-is-casefolded-tests
@@ -840,7 +1302,7 @@ EXTRA_DIST += unicase/test-u8-is-casefolded.c unicase/test-is-casefolded.h macro
 TESTS += test-u8-is-lowercase
 check_PROGRAMS += test-u8-is-lowercase
 test_u8_is_lowercase_SOURCES = unicase/test-u8-is-lowercase.c
-
+test_u8_is_lowercase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u8-is-lowercase.c unicase/test-is-lowercase.h macros.h
 
 ## end   gnulib module unicase/u8-is-lowercase-tests
@@ -850,7 +1312,7 @@ EXTRA_DIST += unicase/test-u8-is-lowercase.c unicase/test-is-lowercase.h macros.
 TESTS += test-u8-is-titlecase
 check_PROGRAMS += test-u8-is-titlecase
 test_u8_is_titlecase_SOURCES = unicase/test-u8-is-titlecase.c
-
+test_u8_is_titlecase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u8-is-titlecase.c unicase/test-is-titlecase.h macros.h
 
 ## end   gnulib module unicase/u8-is-titlecase-tests
@@ -860,7 +1322,7 @@ EXTRA_DIST += unicase/test-u8-is-titlecase.c unicase/test-is-titlecase.h macros.
 TESTS += test-u8-is-uppercase
 check_PROGRAMS += test-u8-is-uppercase
 test_u8_is_uppercase_SOURCES = unicase/test-u8-is-uppercase.c
-
+test_u8_is_uppercase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u8-is-uppercase.c unicase/test-is-uppercase.h macros.h
 
 ## end   gnulib module unicase/u8-is-uppercase-tests
@@ -870,7 +1332,7 @@ EXTRA_DIST += unicase/test-u8-is-uppercase.c unicase/test-is-uppercase.h macros.
 TESTS += test-u8-tolower
 check_PROGRAMS += test-u8-tolower
 test_u8_tolower_SOURCES = unicase/test-u8-tolower.c
-
+test_u8_tolower_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u8-tolower.c macros.h
 
 ## end   gnulib module unicase/u8-tolower-tests
@@ -880,7 +1342,7 @@ EXTRA_DIST += unicase/test-u8-tolower.c macros.h
 TESTS += test-u8-totitle
 check_PROGRAMS += test-u8-totitle
 test_u8_totitle_SOURCES = unicase/test-u8-totitle.c
-
+test_u8_totitle_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u8-totitle.c macros.h
 
 ## end   gnulib module unicase/u8-totitle-tests
@@ -890,7 +1352,7 @@ EXTRA_DIST += unicase/test-u8-totitle.c macros.h
 TESTS += test-u8-toupper
 check_PROGRAMS += test-u8-toupper
 test_u8_toupper_SOURCES = unicase/test-u8-toupper.c
-
+test_u8_toupper_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unicase/test-u8-toupper.c macros.h
 
 ## end   gnulib module unicase/u8-toupper-tests
@@ -903,7 +1365,7 @@ TESTS_ENVIRONMENT += \
   LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
 check_PROGRAMS += test-ulc-casecmp
 test_ulc_casecmp_SOURCES = unicase/test-ulc-casecmp.c
-test_ulc_casecmp_LDADD = $(LDADD) @LIBICONV@
+test_ulc_casecmp_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += unicase/test-ulc-casecmp1.sh unicase/test-ulc-casecmp2.sh unicase/test-ulc-casecmp.c unicase/test-casecmp.h macros.h
 
@@ -917,7 +1379,7 @@ TESTS_ENVIRONMENT += \
   LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
 check_PROGRAMS += test-ulc-casecoll
 test_ulc_casecoll_SOURCES = unicase/test-ulc-casecoll.c
-test_ulc_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_ulc_casecoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += unicase/test-ulc-casecoll1.sh unicase/test-ulc-casecoll2.sh unicase/test-ulc-casecoll.c unicase/test-casecmp.h macros.h
 
@@ -928,7 +1390,7 @@ EXTRA_DIST += unicase/test-ulc-casecoll1.sh unicase/test-ulc-casecoll2.sh unicas
 TESTS += test-u16-conv-from-enc
 check_PROGRAMS += test-u16-conv-from-enc
 test_u16_conv_from_enc_SOURCES = uniconv/test-u16-conv-from-enc.c
-test_u16_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u16_conv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u16-conv-from-enc.c macros.h
 
@@ -939,7 +1401,7 @@ EXTRA_DIST += uniconv/test-u16-conv-from-enc.c macros.h
 TESTS += test-u16-conv-to-enc
 check_PROGRAMS += test-u16-conv-to-enc
 test_u16_conv_to_enc_SOURCES = uniconv/test-u16-conv-to-enc.c
-test_u16_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u16_conv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u16-conv-to-enc.c macros.h
 
@@ -950,7 +1412,7 @@ EXTRA_DIST += uniconv/test-u16-conv-to-enc.c macros.h
 TESTS += test-u16-strconv-from-enc
 check_PROGRAMS += test-u16-strconv-from-enc
 test_u16_strconv_from_enc_SOURCES = uniconv/test-u16-strconv-from-enc.c
-test_u16_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u16_strconv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u16-strconv-from-enc.c macros.h
 
@@ -961,7 +1423,7 @@ EXTRA_DIST += uniconv/test-u16-strconv-from-enc.c macros.h
 TESTS += test-u16-strconv-to-enc
 check_PROGRAMS += test-u16-strconv-to-enc
 test_u16_strconv_to_enc_SOURCES = uniconv/test-u16-strconv-to-enc.c
-test_u16_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u16_strconv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u16-strconv-to-enc.c macros.h
 
@@ -972,7 +1434,7 @@ EXTRA_DIST += uniconv/test-u16-strconv-to-enc.c macros.h
 TESTS += test-u32-conv-from-enc
 check_PROGRAMS += test-u32-conv-from-enc
 test_u32_conv_from_enc_SOURCES = uniconv/test-u32-conv-from-enc.c
-test_u32_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_conv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u32-conv-from-enc.c macros.h
 
@@ -983,7 +1445,7 @@ EXTRA_DIST += uniconv/test-u32-conv-from-enc.c macros.h
 TESTS += test-u32-conv-to-enc
 check_PROGRAMS += test-u32-conv-to-enc
 test_u32_conv_to_enc_SOURCES = uniconv/test-u32-conv-to-enc.c
-test_u32_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_conv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u32-conv-to-enc.c macros.h
 
@@ -994,7 +1456,7 @@ EXTRA_DIST += uniconv/test-u32-conv-to-enc.c macros.h
 TESTS += test-u32-strconv-from-enc
 check_PROGRAMS += test-u32-strconv-from-enc
 test_u32_strconv_from_enc_SOURCES = uniconv/test-u32-strconv-from-enc.c
-test_u32_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_strconv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u32-strconv-from-enc.c macros.h
 
@@ -1005,7 +1467,7 @@ EXTRA_DIST += uniconv/test-u32-strconv-from-enc.c macros.h
 TESTS += test-u32-strconv-to-enc
 check_PROGRAMS += test-u32-strconv-to-enc
 test_u32_strconv_to_enc_SOURCES = uniconv/test-u32-strconv-to-enc.c
-test_u32_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_strconv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u32-strconv-to-enc.c macros.h
 
@@ -1016,7 +1478,7 @@ EXTRA_DIST += uniconv/test-u32-strconv-to-enc.c macros.h
 TESTS += test-u8-conv-from-enc
 check_PROGRAMS += test-u8-conv-from-enc
 test_u8_conv_from_enc_SOURCES = uniconv/test-u8-conv-from-enc.c
-test_u8_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_conv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u8-conv-from-enc.c macros.h
 
@@ -1027,7 +1489,7 @@ EXTRA_DIST += uniconv/test-u8-conv-from-enc.c macros.h
 TESTS += test-u8-conv-to-enc
 check_PROGRAMS += test-u8-conv-to-enc
 test_u8_conv_to_enc_SOURCES = uniconv/test-u8-conv-to-enc.c
-test_u8_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_conv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u8-conv-to-enc.c macros.h
 
@@ -1038,7 +1500,7 @@ EXTRA_DIST += uniconv/test-u8-conv-to-enc.c macros.h
 TESTS += test-u8-strconv-from-enc
 check_PROGRAMS += test-u8-strconv-from-enc
 test_u8_strconv_from_enc_SOURCES = uniconv/test-u8-strconv-from-enc.c
-test_u8_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_strconv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u8-strconv-from-enc.c macros.h
 
@@ -1049,58 +1511,68 @@ EXTRA_DIST += uniconv/test-u8-strconv-from-enc.c macros.h
 TESTS += test-u8-strconv-to-enc
 check_PROGRAMS += test-u8-strconv-to-enc
 test_u8_strconv_to_enc_SOURCES = uniconv/test-u8-strconv-to-enc.c
-test_u8_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_strconv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniconv/test-u8-strconv-to-enc.c macros.h
 
 ## end   gnulib module uniconv/u8-strconv-to-enc-tests
 
-## begin gnulib module unictype/bidicategory-byname-tests
+## begin gnulib module unictype/bidiclass-byname-tests
 
 TESTS += test-bidi_byname
 check_PROGRAMS += test-bidi_byname
 test_bidi_byname_SOURCES = unictype/test-bidi_byname.c
-
+test_bidi_byname_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-bidi_byname.c macros.h
 
-## end   gnulib module unictype/bidicategory-byname-tests
+## end   gnulib module unictype/bidiclass-byname-tests
+
+## begin gnulib module unictype/bidiclass-longname-tests
 
-## begin gnulib module unictype/bidicategory-name-tests
+TESTS += test-bidi_longname
+check_PROGRAMS += test-bidi_longname
+test_bidi_longname_SOURCES = unictype/test-bidi_longname.c
+test_bidi_longname_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-bidi_longname.c macros.h
+
+## end   gnulib module unictype/bidiclass-longname-tests
+
+## begin gnulib module unictype/bidiclass-name-tests
 
 TESTS += test-bidi_name
 check_PROGRAMS += test-bidi_name
 test_bidi_name_SOURCES = unictype/test-bidi_name.c
-
+test_bidi_name_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-bidi_name.c macros.h
 
-## end   gnulib module unictype/bidicategory-name-tests
+## end   gnulib module unictype/bidiclass-name-tests
 
-## begin gnulib module unictype/bidicategory-of-tests
+## begin gnulib module unictype/bidiclass-of-tests
 
 TESTS += test-bidi_of
 check_PROGRAMS += test-bidi_of
 test_bidi_of_SOURCES = unictype/test-bidi_of.c
-
+test_bidi_of_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-bidi_of.c macros.h
 
-## end   gnulib module unictype/bidicategory-of-tests
+## end   gnulib module unictype/bidiclass-of-tests
 
-## begin gnulib module unictype/bidicategory-test-tests
+## begin gnulib module unictype/bidiclass-test-tests
 
 TESTS += test-bidi_test
 check_PROGRAMS += test-bidi_test
 test_bidi_test_SOURCES = unictype/test-bidi_test.c
-
+test_bidi_test_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-bidi_test.c macros.h
 
-## end   gnulib module unictype/bidicategory-test-tests
+## end   gnulib module unictype/bidiclass-test-tests
 
 ## begin gnulib module unictype/block-list-tests
 
 TESTS += test-block_list
 check_PROGRAMS += test-block_list
 test_block_list_SOURCES = unictype/test-block_list.c
-
+test_block_list_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-block_list.c macros.h
 
 ## end   gnulib module unictype/block-list-tests
@@ -1110,7 +1582,7 @@ EXTRA_DIST += unictype/test-block_list.c macros.h
 TESTS += test-block_of
 check_PROGRAMS += test-block_of
 test_block_of_SOURCES = unictype/test-block_of.c
-
+test_block_of_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-block_of.c macros.h
 
 ## end   gnulib module unictype/block-of-tests
@@ -1120,7 +1592,7 @@ EXTRA_DIST += unictype/test-block_of.c macros.h
 TESTS += test-block_test
 check_PROGRAMS += test-block_test
 test_block_test_SOURCES = unictype/test-block_test.c
-
+test_block_test_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-block_test.c macros.h
 
 ## end   gnulib module unictype/block-test-tests
@@ -1130,7 +1602,7 @@ EXTRA_DIST += unictype/test-block_test.c macros.h
 TESTS += test-categ_C
 check_PROGRAMS += test-categ_C
 test_categ_C_SOURCES = unictype/test-categ_C.c
-
+test_categ_C_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_C.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-C-tests
@@ -1140,7 +1612,7 @@ EXTRA_DIST += unictype/test-categ_C.c unictype/test-predicate-part1.h unictype/t
 TESTS += test-categ_Cc
 check_PROGRAMS += test-categ_Cc
 test_categ_Cc_SOURCES = unictype/test-categ_Cc.c
-
+test_categ_Cc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Cc.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Cc-tests
@@ -1150,7 +1622,7 @@ EXTRA_DIST += unictype/test-categ_Cc.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Cf
 check_PROGRAMS += test-categ_Cf
 test_categ_Cf_SOURCES = unictype/test-categ_Cf.c
-
+test_categ_Cf_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Cf.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Cf-tests
@@ -1160,7 +1632,7 @@ EXTRA_DIST += unictype/test-categ_Cf.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Cn
 check_PROGRAMS += test-categ_Cn
 test_categ_Cn_SOURCES = unictype/test-categ_Cn.c
-
+test_categ_Cn_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Cn.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Cn-tests
@@ -1170,7 +1642,7 @@ EXTRA_DIST += unictype/test-categ_Cn.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Co
 check_PROGRAMS += test-categ_Co
 test_categ_Co_SOURCES = unictype/test-categ_Co.c
-
+test_categ_Co_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Co.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Co-tests
@@ -1180,7 +1652,7 @@ EXTRA_DIST += unictype/test-categ_Co.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Cs
 check_PROGRAMS += test-categ_Cs
 test_categ_Cs_SOURCES = unictype/test-categ_Cs.c
-
+test_categ_Cs_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Cs.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Cs-tests
@@ -1190,17 +1662,27 @@ EXTRA_DIST += unictype/test-categ_Cs.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_L
 check_PROGRAMS += test-categ_L
 test_categ_L_SOURCES = unictype/test-categ_L.c
-
+test_categ_L_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_L.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-L-tests
 
+## begin gnulib module unictype/category-LC-tests
+
+TESTS += test-categ_LC
+check_PROGRAMS += test-categ_LC
+test_categ_LC_SOURCES = unictype/test-categ_LC.c
+test_categ_LC_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-categ_LC.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+
+## end   gnulib module unictype/category-LC-tests
+
 ## begin gnulib module unictype/category-Ll-tests
 
 TESTS += test-categ_Ll
 check_PROGRAMS += test-categ_Ll
 test_categ_Ll_SOURCES = unictype/test-categ_Ll.c
-
+test_categ_Ll_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Ll.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Ll-tests
@@ -1210,7 +1692,7 @@ EXTRA_DIST += unictype/test-categ_Ll.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Lm
 check_PROGRAMS += test-categ_Lm
 test_categ_Lm_SOURCES = unictype/test-categ_Lm.c
-
+test_categ_Lm_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Lm.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Lm-tests
@@ -1220,7 +1702,7 @@ EXTRA_DIST += unictype/test-categ_Lm.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Lo
 check_PROGRAMS += test-categ_Lo
 test_categ_Lo_SOURCES = unictype/test-categ_Lo.c
-
+test_categ_Lo_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Lo.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Lo-tests
@@ -1230,7 +1712,7 @@ EXTRA_DIST += unictype/test-categ_Lo.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Lt
 check_PROGRAMS += test-categ_Lt
 test_categ_Lt_SOURCES = unictype/test-categ_Lt.c
-
+test_categ_Lt_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Lt.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Lt-tests
@@ -1240,7 +1722,7 @@ EXTRA_DIST += unictype/test-categ_Lt.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Lu
 check_PROGRAMS += test-categ_Lu
 test_categ_Lu_SOURCES = unictype/test-categ_Lu.c
-
+test_categ_Lu_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Lu.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Lu-tests
@@ -1250,7 +1732,7 @@ EXTRA_DIST += unictype/test-categ_Lu.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_M
 check_PROGRAMS += test-categ_M
 test_categ_M_SOURCES = unictype/test-categ_M.c
-
+test_categ_M_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_M.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-M-tests
@@ -1260,7 +1742,7 @@ EXTRA_DIST += unictype/test-categ_M.c unictype/test-predicate-part1.h unictype/t
 TESTS += test-categ_Mc
 check_PROGRAMS += test-categ_Mc
 test_categ_Mc_SOURCES = unictype/test-categ_Mc.c
-
+test_categ_Mc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Mc.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Mc-tests
@@ -1270,7 +1752,7 @@ EXTRA_DIST += unictype/test-categ_Mc.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Me
 check_PROGRAMS += test-categ_Me
 test_categ_Me_SOURCES = unictype/test-categ_Me.c
-
+test_categ_Me_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Me.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Me-tests
@@ -1280,7 +1762,7 @@ EXTRA_DIST += unictype/test-categ_Me.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Mn
 check_PROGRAMS += test-categ_Mn
 test_categ_Mn_SOURCES = unictype/test-categ_Mn.c
-
+test_categ_Mn_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Mn.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Mn-tests
@@ -1290,7 +1772,7 @@ EXTRA_DIST += unictype/test-categ_Mn.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_N
 check_PROGRAMS += test-categ_N
 test_categ_N_SOURCES = unictype/test-categ_N.c
-
+test_categ_N_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_N.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-N-tests
@@ -1300,7 +1782,7 @@ EXTRA_DIST += unictype/test-categ_N.c unictype/test-predicate-part1.h unictype/t
 TESTS += test-categ_Nd
 check_PROGRAMS += test-categ_Nd
 test_categ_Nd_SOURCES = unictype/test-categ_Nd.c
-
+test_categ_Nd_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Nd.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Nd-tests
@@ -1310,7 +1792,7 @@ EXTRA_DIST += unictype/test-categ_Nd.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Nl
 check_PROGRAMS += test-categ_Nl
 test_categ_Nl_SOURCES = unictype/test-categ_Nl.c
-
+test_categ_Nl_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Nl.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Nl-tests
@@ -1320,7 +1802,7 @@ EXTRA_DIST += unictype/test-categ_Nl.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_No
 check_PROGRAMS += test-categ_No
 test_categ_No_SOURCES = unictype/test-categ_No.c
-
+test_categ_No_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_No.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-No-tests
@@ -1330,7 +1812,7 @@ EXTRA_DIST += unictype/test-categ_No.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_P
 check_PROGRAMS += test-categ_P
 test_categ_P_SOURCES = unictype/test-categ_P.c
-
+test_categ_P_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_P.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-P-tests
@@ -1340,7 +1822,7 @@ EXTRA_DIST += unictype/test-categ_P.c unictype/test-predicate-part1.h unictype/t
 TESTS += test-categ_Pc
 check_PROGRAMS += test-categ_Pc
 test_categ_Pc_SOURCES = unictype/test-categ_Pc.c
-
+test_categ_Pc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Pc.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Pc-tests
@@ -1350,7 +1832,7 @@ EXTRA_DIST += unictype/test-categ_Pc.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Pd
 check_PROGRAMS += test-categ_Pd
 test_categ_Pd_SOURCES = unictype/test-categ_Pd.c
-
+test_categ_Pd_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Pd.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Pd-tests
@@ -1360,7 +1842,7 @@ EXTRA_DIST += unictype/test-categ_Pd.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Pe
 check_PROGRAMS += test-categ_Pe
 test_categ_Pe_SOURCES = unictype/test-categ_Pe.c
-
+test_categ_Pe_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Pe.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Pe-tests
@@ -1370,7 +1852,7 @@ EXTRA_DIST += unictype/test-categ_Pe.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Pf
 check_PROGRAMS += test-categ_Pf
 test_categ_Pf_SOURCES = unictype/test-categ_Pf.c
-
+test_categ_Pf_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Pf.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Pf-tests
@@ -1380,7 +1862,7 @@ EXTRA_DIST += unictype/test-categ_Pf.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Pi
 check_PROGRAMS += test-categ_Pi
 test_categ_Pi_SOURCES = unictype/test-categ_Pi.c
-
+test_categ_Pi_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Pi.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Pi-tests
@@ -1390,7 +1872,7 @@ EXTRA_DIST += unictype/test-categ_Pi.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Po
 check_PROGRAMS += test-categ_Po
 test_categ_Po_SOURCES = unictype/test-categ_Po.c
-
+test_categ_Po_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Po.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Po-tests
@@ -1400,7 +1882,7 @@ EXTRA_DIST += unictype/test-categ_Po.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Ps
 check_PROGRAMS += test-categ_Ps
 test_categ_Ps_SOURCES = unictype/test-categ_Ps.c
-
+test_categ_Ps_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Ps.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Ps-tests
@@ -1410,7 +1892,7 @@ EXTRA_DIST += unictype/test-categ_Ps.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_S
 check_PROGRAMS += test-categ_S
 test_categ_S_SOURCES = unictype/test-categ_S.c
-
+test_categ_S_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_S.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-S-tests
@@ -1420,7 +1902,7 @@ EXTRA_DIST += unictype/test-categ_S.c unictype/test-predicate-part1.h unictype/t
 TESTS += test-categ_Sc
 check_PROGRAMS += test-categ_Sc
 test_categ_Sc_SOURCES = unictype/test-categ_Sc.c
-
+test_categ_Sc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Sc.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Sc-tests
@@ -1430,7 +1912,7 @@ EXTRA_DIST += unictype/test-categ_Sc.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Sk
 check_PROGRAMS += test-categ_Sk
 test_categ_Sk_SOURCES = unictype/test-categ_Sk.c
-
+test_categ_Sk_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Sk.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Sk-tests
@@ -1440,7 +1922,7 @@ EXTRA_DIST += unictype/test-categ_Sk.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Sm
 check_PROGRAMS += test-categ_Sm
 test_categ_Sm_SOURCES = unictype/test-categ_Sm.c
-
+test_categ_Sm_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Sm.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Sm-tests
@@ -1450,7 +1932,7 @@ EXTRA_DIST += unictype/test-categ_Sm.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_So
 check_PROGRAMS += test-categ_So
 test_categ_So_SOURCES = unictype/test-categ_So.c
-
+test_categ_So_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_So.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-So-tests
@@ -1460,7 +1942,7 @@ EXTRA_DIST += unictype/test-categ_So.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Z
 check_PROGRAMS += test-categ_Z
 test_categ_Z_SOURCES = unictype/test-categ_Z.c
-
+test_categ_Z_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Z.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Z-tests
@@ -1470,7 +1952,7 @@ EXTRA_DIST += unictype/test-categ_Z.c unictype/test-predicate-part1.h unictype/t
 TESTS += test-categ_Zl
 check_PROGRAMS += test-categ_Zl
 test_categ_Zl_SOURCES = unictype/test-categ_Zl.c
-
+test_categ_Zl_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Zl.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Zl-tests
@@ -1480,7 +1962,7 @@ EXTRA_DIST += unictype/test-categ_Zl.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Zp
 check_PROGRAMS += test-categ_Zp
 test_categ_Zp_SOURCES = unictype/test-categ_Zp.c
-
+test_categ_Zp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Zp.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Zp-tests
@@ -1490,7 +1972,7 @@ EXTRA_DIST += unictype/test-categ_Zp.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_Zs
 check_PROGRAMS += test-categ_Zs
 test_categ_Zs_SOURCES = unictype/test-categ_Zs.c
-
+test_categ_Zs_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_Zs.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/category-Zs-tests
@@ -1500,7 +1982,7 @@ EXTRA_DIST += unictype/test-categ_Zs.c unictype/test-predicate-part1.h unictype/
 TESTS += test-categ_and_not
 check_PROGRAMS += test-categ_and_not
 test_categ_and_not_SOURCES = unictype/test-categ_and_not.c
-
+test_categ_and_not_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_and_not.c macros.h
 
 ## end   gnulib module unictype/category-and-not-tests
@@ -1510,7 +1992,7 @@ EXTRA_DIST += unictype/test-categ_and_not.c macros.h
 TESTS += test-categ_and
 check_PROGRAMS += test-categ_and
 test_categ_and_SOURCES = unictype/test-categ_and.c
-
+test_categ_and_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_and.c macros.h
 
 ## end   gnulib module unictype/category-and-tests
@@ -1520,17 +2002,27 @@ EXTRA_DIST += unictype/test-categ_and.c macros.h
 TESTS += test-categ_byname
 check_PROGRAMS += test-categ_byname
 test_categ_byname_SOURCES = unictype/test-categ_byname.c
-
+test_categ_byname_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_byname.c macros.h
 
 ## end   gnulib module unictype/category-byname-tests
 
+## begin gnulib module unictype/category-longname-tests
+
+TESTS += test-categ_longname
+check_PROGRAMS += test-categ_longname
+test_categ_longname_SOURCES = unictype/test-categ_longname.c
+test_categ_longname_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-categ_longname.c macros.h
+
+## end   gnulib module unictype/category-longname-tests
+
 ## begin gnulib module unictype/category-name-tests
 
 TESTS += test-categ_name
 check_PROGRAMS += test-categ_name
 test_categ_name_SOURCES = unictype/test-categ_name.c
-
+test_categ_name_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_name.c macros.h
 
 ## end   gnulib module unictype/category-name-tests
@@ -1541,8 +2033,8 @@ if !WOE32DLL
 TESTS += test-categ_none
 check_PROGRAMS += test-categ_none
 test_categ_none_SOURCES = unictype/test-categ_none.c
+test_categ_none_LDADD = $(LDADD) $(LIBUNISTRING)
 endif
-
 EXTRA_DIST += unictype/test-categ_none.c macros.h
 
 ## end   gnulib module unictype/category-none-tests
@@ -1552,7 +2044,7 @@ EXTRA_DIST += unictype/test-categ_none.c macros.h
 TESTS += test-categ_of
 check_PROGRAMS += test-categ_of
 test_categ_of_SOURCES = unictype/test-categ_of.c
-
+test_categ_of_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_of.c macros.h
 
 ## end   gnulib module unictype/category-of-tests
@@ -1562,7 +2054,7 @@ EXTRA_DIST += unictype/test-categ_of.c macros.h
 TESTS += test-categ_or
 check_PROGRAMS += test-categ_or
 test_categ_or_SOURCES = unictype/test-categ_or.c
-
+test_categ_or_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_or.c macros.h
 
 ## end   gnulib module unictype/category-or-tests
@@ -1572,18 +2064,48 @@ EXTRA_DIST += unictype/test-categ_or.c macros.h
 TESTS += test-categ_test_withtable
 check_PROGRAMS += test-categ_test_withtable
 test_categ_test_withtable_SOURCES = unictype/test-categ_test_withtable.c
-
+test_categ_test_withtable_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-categ_test_withtable.c macros.h
 
 ## end   gnulib module unictype/category-test-withtable-tests
 
-## begin gnulib module unictype/combining-class-tests
+## begin gnulib module unictype/combining-class-byname-tests
+
+TESTS += test-combiningclass_byname
+check_PROGRAMS += test-combiningclass_byname
+test_combiningclass_byname_SOURCES = unictype/test-combiningclass_byname.c
+test_combiningclass_byname_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-combiningclass_byname.c macros.h
+
+## end   gnulib module unictype/combining-class-byname-tests
+
+## begin gnulib module unictype/combining-class-longname-tests
+
+TESTS += test-combiningclass_longname
+check_PROGRAMS += test-combiningclass_longname
+test_combiningclass_longname_SOURCES = unictype/test-combiningclass_longname.c
+test_combiningclass_longname_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-combiningclass_longname.c macros.h
 
-TESTS += test-combining
-check_PROGRAMS += test-combining
-test_combining_SOURCES = unictype/test-combining.c
+## end   gnulib module unictype/combining-class-longname-tests
+
+## begin gnulib module unictype/combining-class-name-tests
+
+TESTS += test-combiningclass_name
+check_PROGRAMS += test-combiningclass_name
+test_combiningclass_name_SOURCES = unictype/test-combiningclass_name.c
+test_combiningclass_name_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-combiningclass_name.c macros.h
+
+## end   gnulib module unictype/combining-class-name-tests
+
+## begin gnulib module unictype/combining-class-tests
 
-EXTRA_DIST += unictype/test-combining.c macros.h
+TESTS += test-combiningclass
+check_PROGRAMS += test-combiningclass
+test_combiningclass_SOURCES = unictype/test-combiningclass.c
+test_combiningclass_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-combiningclass.c macros.h
 
 ## end   gnulib module unictype/combining-class-tests
 
@@ -1592,7 +2114,7 @@ EXTRA_DIST += unictype/test-combining.c macros.h
 TESTS += test-ctype_alnum
 check_PROGRAMS += test-ctype_alnum
 test_ctype_alnum_SOURCES = unictype/test-ctype_alnum.c
-
+test_ctype_alnum_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-ctype_alnum.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/ctype-alnum-tests
@@ -1602,7 +2124,7 @@ EXTRA_DIST += unictype/test-ctype_alnum.c unictype/test-predicate-part1.h unicty
 TESTS += test-ctype_alpha
 check_PROGRAMS += test-ctype_alpha
 test_ctype_alpha_SOURCES = unictype/test-ctype_alpha.c
-
+test_ctype_alpha_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-ctype_alpha.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/ctype-alpha-tests
@@ -1612,7 +2134,7 @@ EXTRA_DIST += unictype/test-ctype_alpha.c unictype/test-predicate-part1.h unicty
 TESTS += test-ctype_blank
 check_PROGRAMS += test-ctype_blank
 test_ctype_blank_SOURCES = unictype/test-ctype_blank.c
-
+test_ctype_blank_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-ctype_blank.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/ctype-blank-tests
@@ -1622,7 +2144,7 @@ EXTRA_DIST += unictype/test-ctype_blank.c unictype/test-predicate-part1.h unicty
 TESTS += test-ctype_cntrl
 check_PROGRAMS += test-ctype_cntrl
 test_ctype_cntrl_SOURCES = unictype/test-ctype_cntrl.c
-
+test_ctype_cntrl_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-ctype_cntrl.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/ctype-cntrl-tests
@@ -1632,7 +2154,7 @@ EXTRA_DIST += unictype/test-ctype_cntrl.c unictype/test-predicate-part1.h unicty
 TESTS += test-ctype_digit
 check_PROGRAMS += test-ctype_digit
 test_ctype_digit_SOURCES = unictype/test-ctype_digit.c
-
+test_ctype_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-ctype_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/ctype-digit-tests
@@ -1642,7 +2164,7 @@ EXTRA_DIST += unictype/test-ctype_digit.c unictype/test-predicate-part1.h unicty
 TESTS += test-ctype_graph
 check_PROGRAMS += test-ctype_graph
 test_ctype_graph_SOURCES = unictype/test-ctype_graph.c
-
+test_ctype_graph_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-ctype_graph.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/ctype-graph-tests
@@ -1652,7 +2174,7 @@ EXTRA_DIST += unictype/test-ctype_graph.c unictype/test-predicate-part1.h unicty
 TESTS += test-ctype_lower
 check_PROGRAMS += test-ctype_lower
 test_ctype_lower_SOURCES = unictype/test-ctype_lower.c
-
+test_ctype_lower_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-ctype_lower.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/ctype-lower-tests
@@ -1662,7 +2184,7 @@ EXTRA_DIST += unictype/test-ctype_lower.c unictype/test-predicate-part1.h unicty
 TESTS += test-ctype_print
 check_PROGRAMS += test-ctype_print
 test_ctype_print_SOURCES = unictype/test-ctype_print.c
-
+test_ctype_print_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-ctype_print.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/ctype-print-tests
@@ -1672,7 +2194,7 @@ EXTRA_DIST += unictype/test-ctype_print.c unictype/test-predicate-part1.h unicty
 TESTS += test-ctype_punct
 check_PROGRAMS += test-ctype_punct
 test_ctype_punct_SOURCES = unictype/test-ctype_punct.c
-
+test_ctype_punct_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-ctype_punct.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/ctype-punct-tests
@@ -1682,7 +2204,7 @@ EXTRA_DIST += unictype/test-ctype_punct.c unictype/test-predicate-part1.h unicty
 TESTS += test-ctype_space
 check_PROGRAMS += test-ctype_space
 test_ctype_space_SOURCES = unictype/test-ctype_space.c
-
+test_ctype_space_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-ctype_space.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/ctype-space-tests
@@ -1692,47 +2214,117 @@ EXTRA_DIST += unictype/test-ctype_space.c unictype/test-predicate-part1.h unicty
 TESTS += test-ctype_upper
 check_PROGRAMS += test-ctype_upper
 test_ctype_upper_SOURCES = unictype/test-ctype_upper.c
+test_ctype_upper_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-ctype_upper.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+
+## end   gnulib module unictype/ctype-upper-tests
+
+## begin gnulib module unictype/ctype-xdigit-tests
+
+TESTS += test-ctype_xdigit
+check_PROGRAMS += test-ctype_xdigit
+test_ctype_xdigit_SOURCES = unictype/test-ctype_xdigit.c
+test_ctype_xdigit_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-ctype_xdigit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+
+## end   gnulib module unictype/ctype-xdigit-tests
+
+## begin gnulib module unictype/decimal-digit-tests
+
+TESTS += test-decdigit
+check_PROGRAMS += test-decdigit
+test_decdigit_SOURCES = unictype/test-decdigit.c
+test_decdigit_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-decdigit.c unictype/test-decdigit.h macros.h
+
+## end   gnulib module unictype/decimal-digit-tests
+
+## begin gnulib module unictype/digit-tests
+
+TESTS += test-digit
+check_PROGRAMS += test-digit
+test_digit_SOURCES = unictype/test-digit.c
+test_digit_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-digit.c unictype/test-digit.h macros.h
+
+## end   gnulib module unictype/digit-tests
+
+## begin gnulib module unictype/joininggroup-byname-tests
+
+TESTS += test-joininggroup_byname
+check_PROGRAMS += test-joininggroup_byname
+test_joininggroup_byname_SOURCES = unictype/test-joininggroup_byname.c
+test_joininggroup_byname_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-joininggroup_byname.c macros.h
+
+## end   gnulib module unictype/joininggroup-byname-tests
+
+## begin gnulib module unictype/joininggroup-name-tests
+
+TESTS += test-joininggroup_name
+check_PROGRAMS += test-joininggroup_name
+test_joininggroup_name_SOURCES = unictype/test-joininggroup_name.c
+test_joininggroup_name_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-joininggroup_name.c macros.h
+
+## end   gnulib module unictype/joininggroup-name-tests
 
-EXTRA_DIST += unictype/test-ctype_upper.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+## begin gnulib module unictype/joininggroup-of-tests
 
-## end   gnulib module unictype/ctype-upper-tests
+TESTS += test-joininggroup_of
+check_PROGRAMS += test-joininggroup_of
+test_joininggroup_of_SOURCES = unictype/test-joininggroup_of.c
+test_joininggroup_of_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-joininggroup_of.c unictype/test-joininggroup_of.h macros.h
 
-## begin gnulib module unictype/ctype-xdigit-tests
+## end   gnulib module unictype/joininggroup-of-tests
 
-TESTS += test-ctype_xdigit
-check_PROGRAMS += test-ctype_xdigit
-test_ctype_xdigit_SOURCES = unictype/test-ctype_xdigit.c
+## begin gnulib module unictype/joiningtype-byname-tests
 
-EXTRA_DIST += unictype/test-ctype_xdigit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+TESTS += test-joiningtype_byname
+check_PROGRAMS += test-joiningtype_byname
+test_joiningtype_byname_SOURCES = unictype/test-joiningtype_byname.c
+test_joiningtype_byname_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-joiningtype_byname.c macros.h
 
-## end   gnulib module unictype/ctype-xdigit-tests
+## end   gnulib module unictype/joiningtype-byname-tests
 
-## begin gnulib module unictype/decimal-digit-tests
+## begin gnulib module unictype/joiningtype-longname-tests
 
-TESTS += test-decdigit
-check_PROGRAMS += test-decdigit
-test_decdigit_SOURCES = unictype/test-decdigit.c
+TESTS += test-joiningtype_longname
+check_PROGRAMS += test-joiningtype_longname
+test_joiningtype_longname_SOURCES = unictype/test-joiningtype_longname.c
+test_joiningtype_longname_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-joiningtype_longname.c macros.h
 
-EXTRA_DIST += unictype/test-decdigit.c unictype/test-decdigit.h macros.h
+## end   gnulib module unictype/joiningtype-longname-tests
 
-## end   gnulib module unictype/decimal-digit-tests
+## begin gnulib module unictype/joiningtype-name-tests
 
-## begin gnulib module unictype/digit-tests
+TESTS += test-joiningtype_name
+check_PROGRAMS += test-joiningtype_name
+test_joiningtype_name_SOURCES = unictype/test-joiningtype_name.c
+test_joiningtype_name_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-joiningtype_name.c macros.h
 
-TESTS += test-digit
-check_PROGRAMS += test-digit
-test_digit_SOURCES = unictype/test-digit.c
+## end   gnulib module unictype/joiningtype-name-tests
 
-EXTRA_DIST += unictype/test-digit.c unictype/test-digit.h macros.h
+## begin gnulib module unictype/joiningtype-of-tests
 
-## end   gnulib module unictype/digit-tests
+TESTS += test-joiningtype_of
+check_PROGRAMS += test-joiningtype_of
+test_joiningtype_of_SOURCES = unictype/test-joiningtype_of.c
+test_joiningtype_of_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-joiningtype_of.c unictype/test-joiningtype_of.h macros.h
+
+## end   gnulib module unictype/joiningtype-of-tests
 
 ## begin gnulib module unictype/mirror-tests
 
 TESTS += test-mirror
 check_PROGRAMS += test-mirror
 test_mirror_SOURCES = unictype/test-mirror.c
-
+test_mirror_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-mirror.c macros.h
 
 ## end   gnulib module unictype/mirror-tests
@@ -1742,7 +2334,7 @@ EXTRA_DIST += unictype/test-mirror.c macros.h
 TESTS += test-numeric
 check_PROGRAMS += test-numeric
 test_numeric_SOURCES = unictype/test-numeric.c
-
+test_numeric_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-numeric.c unictype/test-numeric.h macros.h
 
 ## end   gnulib module unictype/numeric-tests
@@ -1752,7 +2344,7 @@ EXTRA_DIST += unictype/test-numeric.c unictype/test-numeric.h macros.h
 TESTS += test-pr_alphabetic
 check_PROGRAMS += test-pr_alphabetic
 test_pr_alphabetic_SOURCES = unictype/test-pr_alphabetic.c
-
+test_pr_alphabetic_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_alphabetic.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-alphabetic-tests
@@ -1762,7 +2354,7 @@ EXTRA_DIST += unictype/test-pr_alphabetic.c unictype/test-predicate-part1.h unic
 TESTS += test-pr_ascii_hex_digit
 check_PROGRAMS += test-pr_ascii_hex_digit
 test_pr_ascii_hex_digit_SOURCES = unictype/test-pr_ascii_hex_digit.c
-
+test_pr_ascii_hex_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_ascii_hex_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-ascii-hex-digit-tests
@@ -1772,7 +2364,7 @@ EXTRA_DIST += unictype/test-pr_ascii_hex_digit.c unictype/test-predicate-part1.h
 TESTS += test-pr_bidi_arabic_digit
 check_PROGRAMS += test-pr_bidi_arabic_digit
 test_pr_bidi_arabic_digit_SOURCES = unictype/test-pr_bidi_arabic_digit.c
-
+test_pr_bidi_arabic_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_arabic_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-arabic-digit-tests
@@ -1782,7 +2374,7 @@ EXTRA_DIST += unictype/test-pr_bidi_arabic_digit.c unictype/test-predicate-part1
 TESTS += test-pr_bidi_arabic_right_to_left
 check_PROGRAMS += test-pr_bidi_arabic_right_to_left
 test_pr_bidi_arabic_right_to_left_SOURCES = unictype/test-pr_bidi_arabic_right_to_left.c
-
+test_pr_bidi_arabic_right_to_left_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_arabic_right_to_left.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-arabic-right-to-left-tests
@@ -1792,7 +2384,7 @@ EXTRA_DIST += unictype/test-pr_bidi_arabic_right_to_left.c unictype/test-predica
 TESTS += test-pr_bidi_block_separator
 check_PROGRAMS += test-pr_bidi_block_separator
 test_pr_bidi_block_separator_SOURCES = unictype/test-pr_bidi_block_separator.c
-
+test_pr_bidi_block_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_block_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-block-separator-tests
@@ -1802,7 +2394,7 @@ EXTRA_DIST += unictype/test-pr_bidi_block_separator.c unictype/test-predicate-pa
 TESTS += test-pr_bidi_boundary_neutral
 check_PROGRAMS += test-pr_bidi_boundary_neutral
 test_pr_bidi_boundary_neutral_SOURCES = unictype/test-pr_bidi_boundary_neutral.c
-
+test_pr_bidi_boundary_neutral_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_boundary_neutral.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-boundary-neutral-tests
@@ -1812,7 +2404,7 @@ EXTRA_DIST += unictype/test-pr_bidi_boundary_neutral.c unictype/test-predicate-p
 TESTS += test-pr_bidi_common_separator
 check_PROGRAMS += test-pr_bidi_common_separator
 test_pr_bidi_common_separator_SOURCES = unictype/test-pr_bidi_common_separator.c
-
+test_pr_bidi_common_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_common_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-common-separator-tests
@@ -1822,7 +2414,7 @@ EXTRA_DIST += unictype/test-pr_bidi_common_separator.c unictype/test-predicate-p
 TESTS += test-pr_bidi_control
 check_PROGRAMS += test-pr_bidi_control
 test_pr_bidi_control_SOURCES = unictype/test-pr_bidi_control.c
-
+test_pr_bidi_control_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_control.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-control-tests
@@ -1832,7 +2424,7 @@ EXTRA_DIST += unictype/test-pr_bidi_control.c unictype/test-predicate-part1.h un
 TESTS += test-pr_bidi_embedding_or_override
 check_PROGRAMS += test-pr_bidi_embedding_or_override
 test_pr_bidi_embedding_or_override_SOURCES = unictype/test-pr_bidi_embedding_or_override.c
-
+test_pr_bidi_embedding_or_override_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_embedding_or_override.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-embedding-or-override-tests
@@ -1842,7 +2434,7 @@ EXTRA_DIST += unictype/test-pr_bidi_embedding_or_override.c unictype/test-predic
 TESTS += test-pr_bidi_eur_num_separator
 check_PROGRAMS += test-pr_bidi_eur_num_separator
 test_pr_bidi_eur_num_separator_SOURCES = unictype/test-pr_bidi_eur_num_separator.c
-
+test_pr_bidi_eur_num_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_eur_num_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-eur-num-separator-tests
@@ -1852,7 +2444,7 @@ EXTRA_DIST += unictype/test-pr_bidi_eur_num_separator.c unictype/test-predicate-
 TESTS += test-pr_bidi_eur_num_terminator
 check_PROGRAMS += test-pr_bidi_eur_num_terminator
 test_pr_bidi_eur_num_terminator_SOURCES = unictype/test-pr_bidi_eur_num_terminator.c
-
+test_pr_bidi_eur_num_terminator_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_eur_num_terminator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-eur-num-terminator-tests
@@ -1862,7 +2454,7 @@ EXTRA_DIST += unictype/test-pr_bidi_eur_num_terminator.c unictype/test-predicate
 TESTS += test-pr_bidi_european_digit
 check_PROGRAMS += test-pr_bidi_european_digit
 test_pr_bidi_european_digit_SOURCES = unictype/test-pr_bidi_european_digit.c
-
+test_pr_bidi_european_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_european_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-european-digit-tests
@@ -1872,7 +2464,7 @@ EXTRA_DIST += unictype/test-pr_bidi_european_digit.c unictype/test-predicate-par
 TESTS += test-pr_bidi_hebrew_right_to_left
 check_PROGRAMS += test-pr_bidi_hebrew_right_to_left
 test_pr_bidi_hebrew_right_to_left_SOURCES = unictype/test-pr_bidi_hebrew_right_to_left.c
-
+test_pr_bidi_hebrew_right_to_left_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_hebrew_right_to_left.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-hebrew-right-to-left-tests
@@ -1882,7 +2474,7 @@ EXTRA_DIST += unictype/test-pr_bidi_hebrew_right_to_left.c unictype/test-predica
 TESTS += test-pr_bidi_left_to_right
 check_PROGRAMS += test-pr_bidi_left_to_right
 test_pr_bidi_left_to_right_SOURCES = unictype/test-pr_bidi_left_to_right.c
-
+test_pr_bidi_left_to_right_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_left_to_right.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-left-to-right-tests
@@ -1892,7 +2484,7 @@ EXTRA_DIST += unictype/test-pr_bidi_left_to_right.c unictype/test-predicate-part
 TESTS += test-pr_bidi_non_spacing_mark
 check_PROGRAMS += test-pr_bidi_non_spacing_mark
 test_pr_bidi_non_spacing_mark_SOURCES = unictype/test-pr_bidi_non_spacing_mark.c
-
+test_pr_bidi_non_spacing_mark_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_non_spacing_mark.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-non-spacing-mark-tests
@@ -1902,7 +2494,7 @@ EXTRA_DIST += unictype/test-pr_bidi_non_spacing_mark.c unictype/test-predicate-p
 TESTS += test-pr_bidi_other_neutral
 check_PROGRAMS += test-pr_bidi_other_neutral
 test_pr_bidi_other_neutral_SOURCES = unictype/test-pr_bidi_other_neutral.c
-
+test_pr_bidi_other_neutral_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_other_neutral.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-other-neutral-tests
@@ -1912,7 +2504,7 @@ EXTRA_DIST += unictype/test-pr_bidi_other_neutral.c unictype/test-predicate-part
 TESTS += test-pr_bidi_pdf
 check_PROGRAMS += test-pr_bidi_pdf
 test_pr_bidi_pdf_SOURCES = unictype/test-pr_bidi_pdf.c
-
+test_pr_bidi_pdf_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_pdf.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-pdf-tests
@@ -1922,7 +2514,7 @@ EXTRA_DIST += unictype/test-pr_bidi_pdf.c unictype/test-predicate-part1.h unicty
 TESTS += test-pr_bidi_segment_separator
 check_PROGRAMS += test-pr_bidi_segment_separator
 test_pr_bidi_segment_separator_SOURCES = unictype/test-pr_bidi_segment_separator.c
-
+test_pr_bidi_segment_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_segment_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-segment-separator-tests
@@ -1932,7 +2524,7 @@ EXTRA_DIST += unictype/test-pr_bidi_segment_separator.c unictype/test-predicate-
 TESTS += test-pr_bidi_whitespace
 check_PROGRAMS += test-pr_bidi_whitespace
 test_pr_bidi_whitespace_SOURCES = unictype/test-pr_bidi_whitespace.c
-
+test_pr_bidi_whitespace_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_bidi_whitespace.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-bidi-whitespace-tests
@@ -1942,17 +2534,87 @@ EXTRA_DIST += unictype/test-pr_bidi_whitespace.c unictype/test-predicate-part1.h
 TESTS += test-pr_byname
 check_PROGRAMS += test-pr_byname
 test_pr_byname_SOURCES = unictype/test-pr_byname.c
-
+test_pr_byname_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_byname.c macros.h
 
 ## end   gnulib module unictype/property-byname-tests
 
+## begin gnulib module unictype/property-case-ignorable-tests
+
+TESTS += test-pr_case_ignorable
+check_PROGRAMS += test-pr_case_ignorable
+test_pr_case_ignorable_SOURCES = unictype/test-pr_case_ignorable.c
+test_pr_case_ignorable_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-pr_case_ignorable.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+
+## end   gnulib module unictype/property-case-ignorable-tests
+
+## begin gnulib module unictype/property-cased-tests
+
+TESTS += test-pr_cased
+check_PROGRAMS += test-pr_cased
+test_pr_cased_SOURCES = unictype/test-pr_cased.c
+test_pr_cased_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-pr_cased.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+
+## end   gnulib module unictype/property-cased-tests
+
+## begin gnulib module unictype/property-changes-when-casefolded-tests
+
+TESTS += test-pr_changes_when_casefolded
+check_PROGRAMS += test-pr_changes_when_casefolded
+test_pr_changes_when_casefolded_SOURCES = unictype/test-pr_changes_when_casefolded.c
+test_pr_changes_when_casefolded_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-pr_changes_when_casefolded.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+
+## end   gnulib module unictype/property-changes-when-casefolded-tests
+
+## begin gnulib module unictype/property-changes-when-casemapped-tests
+
+TESTS += test-pr_changes_when_casemapped
+check_PROGRAMS += test-pr_changes_when_casemapped
+test_pr_changes_when_casemapped_SOURCES = unictype/test-pr_changes_when_casemapped.c
+test_pr_changes_when_casemapped_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-pr_changes_when_casemapped.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+
+## end   gnulib module unictype/property-changes-when-casemapped-tests
+
+## begin gnulib module unictype/property-changes-when-lowercased-tests
+
+TESTS += test-pr_changes_when_lowercased
+check_PROGRAMS += test-pr_changes_when_lowercased
+test_pr_changes_when_lowercased_SOURCES = unictype/test-pr_changes_when_lowercased.c
+test_pr_changes_when_lowercased_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-pr_changes_when_lowercased.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+
+## end   gnulib module unictype/property-changes-when-lowercased-tests
+
+## begin gnulib module unictype/property-changes-when-titlecased-tests
+
+TESTS += test-pr_changes_when_titlecased
+check_PROGRAMS += test-pr_changes_when_titlecased
+test_pr_changes_when_titlecased_SOURCES = unictype/test-pr_changes_when_titlecased.c
+test_pr_changes_when_titlecased_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-pr_changes_when_titlecased.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+
+## end   gnulib module unictype/property-changes-when-titlecased-tests
+
+## begin gnulib module unictype/property-changes-when-uppercased-tests
+
+TESTS += test-pr_changes_when_uppercased
+check_PROGRAMS += test-pr_changes_when_uppercased
+test_pr_changes_when_uppercased_SOURCES = unictype/test-pr_changes_when_uppercased.c
+test_pr_changes_when_uppercased_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unictype/test-pr_changes_when_uppercased.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
+
+## end   gnulib module unictype/property-changes-when-uppercased-tests
+
 ## begin gnulib module unictype/property-combining-tests
 
 TESTS += test-pr_combining
 check_PROGRAMS += test-pr_combining
 test_pr_combining_SOURCES = unictype/test-pr_combining.c
-
+test_pr_combining_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_combining.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-combining-tests
@@ -1962,7 +2624,7 @@ EXTRA_DIST += unictype/test-pr_combining.c unictype/test-predicate-part1.h unict
 TESTS += test-pr_composite
 check_PROGRAMS += test-pr_composite
 test_pr_composite_SOURCES = unictype/test-pr_composite.c
-
+test_pr_composite_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_composite.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-composite-tests
@@ -1972,7 +2634,7 @@ EXTRA_DIST += unictype/test-pr_composite.c unictype/test-predicate-part1.h unict
 TESTS += test-pr_currency_symbol
 check_PROGRAMS += test-pr_currency_symbol
 test_pr_currency_symbol_SOURCES = unictype/test-pr_currency_symbol.c
-
+test_pr_currency_symbol_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_currency_symbol.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-currency-symbol-tests
@@ -1982,7 +2644,7 @@ EXTRA_DIST += unictype/test-pr_currency_symbol.c unictype/test-predicate-part1.h
 TESTS += test-pr_dash
 check_PROGRAMS += test-pr_dash
 test_pr_dash_SOURCES = unictype/test-pr_dash.c
-
+test_pr_dash_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_dash.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-dash-tests
@@ -1992,7 +2654,7 @@ EXTRA_DIST += unictype/test-pr_dash.c unictype/test-predicate-part1.h unictype/t
 TESTS += test-pr_decimal_digit
 check_PROGRAMS += test-pr_decimal_digit
 test_pr_decimal_digit_SOURCES = unictype/test-pr_decimal_digit.c
-
+test_pr_decimal_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_decimal_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-decimal-digit-tests
@@ -2002,7 +2664,7 @@ EXTRA_DIST += unictype/test-pr_decimal_digit.c unictype/test-predicate-part1.h u
 TESTS += test-pr_default_ignorable_code_point
 check_PROGRAMS += test-pr_default_ignorable_code_point
 test_pr_default_ignorable_code_point_SOURCES = unictype/test-pr_default_ignorable_code_point.c
-
+test_pr_default_ignorable_code_point_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_default_ignorable_code_point.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-default-ignorable-code-point-tests
@@ -2012,7 +2674,7 @@ EXTRA_DIST += unictype/test-pr_default_ignorable_code_point.c unictype/test-pred
 TESTS += test-pr_deprecated
 check_PROGRAMS += test-pr_deprecated
 test_pr_deprecated_SOURCES = unictype/test-pr_deprecated.c
-
+test_pr_deprecated_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_deprecated.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-deprecated-tests
@@ -2022,7 +2684,7 @@ EXTRA_DIST += unictype/test-pr_deprecated.c unictype/test-predicate-part1.h unic
 TESTS += test-pr_diacritic
 check_PROGRAMS += test-pr_diacritic
 test_pr_diacritic_SOURCES = unictype/test-pr_diacritic.c
-
+test_pr_diacritic_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_diacritic.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-diacritic-tests
@@ -2032,7 +2694,7 @@ EXTRA_DIST += unictype/test-pr_diacritic.c unictype/test-predicate-part1.h unict
 TESTS += test-pr_extender
 check_PROGRAMS += test-pr_extender
 test_pr_extender_SOURCES = unictype/test-pr_extender.c
-
+test_pr_extender_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_extender.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-extender-tests
@@ -2042,7 +2704,7 @@ EXTRA_DIST += unictype/test-pr_extender.c unictype/test-predicate-part1.h unicty
 TESTS += test-pr_format_control
 check_PROGRAMS += test-pr_format_control
 test_pr_format_control_SOURCES = unictype/test-pr_format_control.c
-
+test_pr_format_control_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_format_control.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-format-control-tests
@@ -2052,7 +2714,7 @@ EXTRA_DIST += unictype/test-pr_format_control.c unictype/test-predicate-part1.h
 TESTS += test-pr_grapheme_base
 check_PROGRAMS += test-pr_grapheme_base
 test_pr_grapheme_base_SOURCES = unictype/test-pr_grapheme_base.c
-
+test_pr_grapheme_base_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_grapheme_base.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-grapheme-base-tests
@@ -2062,7 +2724,7 @@ EXTRA_DIST += unictype/test-pr_grapheme_base.c unictype/test-predicate-part1.h u
 TESTS += test-pr_grapheme_extend
 check_PROGRAMS += test-pr_grapheme_extend
 test_pr_grapheme_extend_SOURCES = unictype/test-pr_grapheme_extend.c
-
+test_pr_grapheme_extend_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_grapheme_extend.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-grapheme-extend-tests
@@ -2072,7 +2734,7 @@ EXTRA_DIST += unictype/test-pr_grapheme_extend.c unictype/test-predicate-part1.h
 TESTS += test-pr_grapheme_link
 check_PROGRAMS += test-pr_grapheme_link
 test_pr_grapheme_link_SOURCES = unictype/test-pr_grapheme_link.c
-
+test_pr_grapheme_link_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_grapheme_link.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-grapheme-link-tests
@@ -2082,7 +2744,7 @@ EXTRA_DIST += unictype/test-pr_grapheme_link.c unictype/test-predicate-part1.h u
 TESTS += test-pr_hex_digit
 check_PROGRAMS += test-pr_hex_digit
 test_pr_hex_digit_SOURCES = unictype/test-pr_hex_digit.c
-
+test_pr_hex_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_hex_digit.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-hex-digit-tests
@@ -2092,7 +2754,7 @@ EXTRA_DIST += unictype/test-pr_hex_digit.c unictype/test-predicate-part1.h unict
 TESTS += test-pr_hyphen
 check_PROGRAMS += test-pr_hyphen
 test_pr_hyphen_SOURCES = unictype/test-pr_hyphen.c
-
+test_pr_hyphen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_hyphen.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-hyphen-tests
@@ -2102,7 +2764,7 @@ EXTRA_DIST += unictype/test-pr_hyphen.c unictype/test-predicate-part1.h unictype
 TESTS += test-pr_id_continue
 check_PROGRAMS += test-pr_id_continue
 test_pr_id_continue_SOURCES = unictype/test-pr_id_continue.c
-
+test_pr_id_continue_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_id_continue.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-id-continue-tests
@@ -2112,7 +2774,7 @@ EXTRA_DIST += unictype/test-pr_id_continue.c unictype/test-predicate-part1.h uni
 TESTS += test-pr_id_start
 check_PROGRAMS += test-pr_id_start
 test_pr_id_start_SOURCES = unictype/test-pr_id_start.c
-
+test_pr_id_start_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_id_start.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-id-start-tests
@@ -2122,7 +2784,7 @@ EXTRA_DIST += unictype/test-pr_id_start.c unictype/test-predicate-part1.h unicty
 TESTS += test-pr_ideographic
 check_PROGRAMS += test-pr_ideographic
 test_pr_ideographic_SOURCES = unictype/test-pr_ideographic.c
-
+test_pr_ideographic_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_ideographic.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-ideographic-tests
@@ -2132,7 +2794,7 @@ EXTRA_DIST += unictype/test-pr_ideographic.c unictype/test-predicate-part1.h uni
 TESTS += test-pr_ids_binary_operator
 check_PROGRAMS += test-pr_ids_binary_operator
 test_pr_ids_binary_operator_SOURCES = unictype/test-pr_ids_binary_operator.c
-
+test_pr_ids_binary_operator_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_ids_binary_operator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-ids-binary-operator-tests
@@ -2142,7 +2804,7 @@ EXTRA_DIST += unictype/test-pr_ids_binary_operator.c unictype/test-predicate-par
 TESTS += test-pr_ids_trinary_operator
 check_PROGRAMS += test-pr_ids_trinary_operator
 test_pr_ids_trinary_operator_SOURCES = unictype/test-pr_ids_trinary_operator.c
-
+test_pr_ids_trinary_operator_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_ids_trinary_operator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-ids-trinary-operator-tests
@@ -2152,7 +2814,7 @@ EXTRA_DIST += unictype/test-pr_ids_trinary_operator.c unictype/test-predicate-pa
 TESTS += test-pr_ignorable_control
 check_PROGRAMS += test-pr_ignorable_control
 test_pr_ignorable_control_SOURCES = unictype/test-pr_ignorable_control.c
-
+test_pr_ignorable_control_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_ignorable_control.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-ignorable-control-tests
@@ -2162,7 +2824,7 @@ EXTRA_DIST += unictype/test-pr_ignorable_control.c unictype/test-predicate-part1
 TESTS += test-pr_iso_control
 check_PROGRAMS += test-pr_iso_control
 test_pr_iso_control_SOURCES = unictype/test-pr_iso_control.c
-
+test_pr_iso_control_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_iso_control.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-iso-control-tests
@@ -2172,7 +2834,7 @@ EXTRA_DIST += unictype/test-pr_iso_control.c unictype/test-predicate-part1.h uni
 TESTS += test-pr_join_control
 check_PROGRAMS += test-pr_join_control
 test_pr_join_control_SOURCES = unictype/test-pr_join_control.c
-
+test_pr_join_control_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_join_control.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-join-control-tests
@@ -2182,7 +2844,7 @@ EXTRA_DIST += unictype/test-pr_join_control.c unictype/test-predicate-part1.h un
 TESTS += test-pr_left_of_pair
 check_PROGRAMS += test-pr_left_of_pair
 test_pr_left_of_pair_SOURCES = unictype/test-pr_left_of_pair.c
-
+test_pr_left_of_pair_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_left_of_pair.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-left-of-pair-tests
@@ -2192,7 +2854,7 @@ EXTRA_DIST += unictype/test-pr_left_of_pair.c unictype/test-predicate-part1.h un
 TESTS += test-pr_line_separator
 check_PROGRAMS += test-pr_line_separator
 test_pr_line_separator_SOURCES = unictype/test-pr_line_separator.c
-
+test_pr_line_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_line_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-line-separator-tests
@@ -2202,7 +2864,7 @@ EXTRA_DIST += unictype/test-pr_line_separator.c unictype/test-predicate-part1.h
 TESTS += test-pr_logical_order_exception
 check_PROGRAMS += test-pr_logical_order_exception
 test_pr_logical_order_exception_SOURCES = unictype/test-pr_logical_order_exception.c
-
+test_pr_logical_order_exception_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_logical_order_exception.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-logical-order-exception-tests
@@ -2212,7 +2874,7 @@ EXTRA_DIST += unictype/test-pr_logical_order_exception.c unictype/test-predicate
 TESTS += test-pr_lowercase
 check_PROGRAMS += test-pr_lowercase
 test_pr_lowercase_SOURCES = unictype/test-pr_lowercase.c
-
+test_pr_lowercase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_lowercase.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-lowercase-tests
@@ -2222,7 +2884,7 @@ EXTRA_DIST += unictype/test-pr_lowercase.c unictype/test-predicate-part1.h unict
 TESTS += test-pr_math
 check_PROGRAMS += test-pr_math
 test_pr_math_SOURCES = unictype/test-pr_math.c
-
+test_pr_math_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_math.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-math-tests
@@ -2232,7 +2894,7 @@ EXTRA_DIST += unictype/test-pr_math.c unictype/test-predicate-part1.h unictype/t
 TESTS += test-pr_non_break
 check_PROGRAMS += test-pr_non_break
 test_pr_non_break_SOURCES = unictype/test-pr_non_break.c
-
+test_pr_non_break_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_non_break.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-non-break-tests
@@ -2242,7 +2904,7 @@ EXTRA_DIST += unictype/test-pr_non_break.c unictype/test-predicate-part1.h unict
 TESTS += test-pr_not_a_character
 check_PROGRAMS += test-pr_not_a_character
 test_pr_not_a_character_SOURCES = unictype/test-pr_not_a_character.c
-
+test_pr_not_a_character_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_not_a_character.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-not-a-character-tests
@@ -2252,7 +2914,7 @@ EXTRA_DIST += unictype/test-pr_not_a_character.c unictype/test-predicate-part1.h
 TESTS += test-pr_numeric
 check_PROGRAMS += test-pr_numeric
 test_pr_numeric_SOURCES = unictype/test-pr_numeric.c
-
+test_pr_numeric_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_numeric.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-numeric-tests
@@ -2262,7 +2924,7 @@ EXTRA_DIST += unictype/test-pr_numeric.c unictype/test-predicate-part1.h unictyp
 TESTS += test-pr_other_alphabetic
 check_PROGRAMS += test-pr_other_alphabetic
 test_pr_other_alphabetic_SOURCES = unictype/test-pr_other_alphabetic.c
-
+test_pr_other_alphabetic_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_other_alphabetic.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-other-alphabetic-tests
@@ -2272,7 +2934,7 @@ EXTRA_DIST += unictype/test-pr_other_alphabetic.c unictype/test-predicate-part1.
 TESTS += test-pr_other_default_ignorable_code_point
 check_PROGRAMS += test-pr_other_default_ignorable_code_point
 test_pr_other_default_ignorable_code_point_SOURCES = unictype/test-pr_other_default_ignorable_code_point.c
-
+test_pr_other_default_ignorable_code_point_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_other_default_ignorable_code_point.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-other-default-ignorable-code-point-tests
@@ -2282,7 +2944,7 @@ EXTRA_DIST += unictype/test-pr_other_default_ignorable_code_point.c unictype/tes
 TESTS += test-pr_other_grapheme_extend
 check_PROGRAMS += test-pr_other_grapheme_extend
 test_pr_other_grapheme_extend_SOURCES = unictype/test-pr_other_grapheme_extend.c
-
+test_pr_other_grapheme_extend_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_other_grapheme_extend.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-other-grapheme-extend-tests
@@ -2292,7 +2954,7 @@ EXTRA_DIST += unictype/test-pr_other_grapheme_extend.c unictype/test-predicate-p
 TESTS += test-pr_other_id_continue
 check_PROGRAMS += test-pr_other_id_continue
 test_pr_other_id_continue_SOURCES = unictype/test-pr_other_id_continue.c
-
+test_pr_other_id_continue_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_other_id_continue.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-other-id-continue-tests
@@ -2302,7 +2964,7 @@ EXTRA_DIST += unictype/test-pr_other_id_continue.c unictype/test-predicate-part1
 TESTS += test-pr_other_id_start
 check_PROGRAMS += test-pr_other_id_start
 test_pr_other_id_start_SOURCES = unictype/test-pr_other_id_start.c
-
+test_pr_other_id_start_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_other_id_start.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-other-id-start-tests
@@ -2312,7 +2974,7 @@ EXTRA_DIST += unictype/test-pr_other_id_start.c unictype/test-predicate-part1.h
 TESTS += test-pr_other_lowercase
 check_PROGRAMS += test-pr_other_lowercase
 test_pr_other_lowercase_SOURCES = unictype/test-pr_other_lowercase.c
-
+test_pr_other_lowercase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_other_lowercase.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-other-lowercase-tests
@@ -2322,7 +2984,7 @@ EXTRA_DIST += unictype/test-pr_other_lowercase.c unictype/test-predicate-part1.h
 TESTS += test-pr_other_math
 check_PROGRAMS += test-pr_other_math
 test_pr_other_math_SOURCES = unictype/test-pr_other_math.c
-
+test_pr_other_math_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_other_math.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-other-math-tests
@@ -2332,7 +2994,7 @@ EXTRA_DIST += unictype/test-pr_other_math.c unictype/test-predicate-part1.h unic
 TESTS += test-pr_other_uppercase
 check_PROGRAMS += test-pr_other_uppercase
 test_pr_other_uppercase_SOURCES = unictype/test-pr_other_uppercase.c
-
+test_pr_other_uppercase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_other_uppercase.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-other-uppercase-tests
@@ -2342,7 +3004,7 @@ EXTRA_DIST += unictype/test-pr_other_uppercase.c unictype/test-predicate-part1.h
 TESTS += test-pr_paired_punctuation
 check_PROGRAMS += test-pr_paired_punctuation
 test_pr_paired_punctuation_SOURCES = unictype/test-pr_paired_punctuation.c
-
+test_pr_paired_punctuation_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_paired_punctuation.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-paired-punctuation-tests
@@ -2352,7 +3014,7 @@ EXTRA_DIST += unictype/test-pr_paired_punctuation.c unictype/test-predicate-part
 TESTS += test-pr_paragraph_separator
 check_PROGRAMS += test-pr_paragraph_separator
 test_pr_paragraph_separator_SOURCES = unictype/test-pr_paragraph_separator.c
-
+test_pr_paragraph_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_paragraph_separator.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-paragraph-separator-tests
@@ -2362,7 +3024,7 @@ EXTRA_DIST += unictype/test-pr_paragraph_separator.c unictype/test-predicate-par
 TESTS += test-pr_pattern_syntax
 check_PROGRAMS += test-pr_pattern_syntax
 test_pr_pattern_syntax_SOURCES = unictype/test-pr_pattern_syntax.c
-
+test_pr_pattern_syntax_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_pattern_syntax.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-pattern-syntax-tests
@@ -2372,7 +3034,7 @@ EXTRA_DIST += unictype/test-pr_pattern_syntax.c unictype/test-predicate-part1.h
 TESTS += test-pr_pattern_white_space
 check_PROGRAMS += test-pr_pattern_white_space
 test_pr_pattern_white_space_SOURCES = unictype/test-pr_pattern_white_space.c
-
+test_pr_pattern_white_space_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_pattern_white_space.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-pattern-white-space-tests
@@ -2382,7 +3044,7 @@ EXTRA_DIST += unictype/test-pr_pattern_white_space.c unictype/test-predicate-par
 TESTS += test-pr_private_use
 check_PROGRAMS += test-pr_private_use
 test_pr_private_use_SOURCES = unictype/test-pr_private_use.c
-
+test_pr_private_use_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_private_use.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-private-use-tests
@@ -2392,7 +3054,7 @@ EXTRA_DIST += unictype/test-pr_private_use.c unictype/test-predicate-part1.h uni
 TESTS += test-pr_punctuation
 check_PROGRAMS += test-pr_punctuation
 test_pr_punctuation_SOURCES = unictype/test-pr_punctuation.c
-
+test_pr_punctuation_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_punctuation.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-punctuation-tests
@@ -2402,7 +3064,7 @@ EXTRA_DIST += unictype/test-pr_punctuation.c unictype/test-predicate-part1.h uni
 TESTS += test-pr_quotation_mark
 check_PROGRAMS += test-pr_quotation_mark
 test_pr_quotation_mark_SOURCES = unictype/test-pr_quotation_mark.c
-
+test_pr_quotation_mark_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_quotation_mark.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-quotation-mark-tests
@@ -2412,7 +3074,7 @@ EXTRA_DIST += unictype/test-pr_quotation_mark.c unictype/test-predicate-part1.h
 TESTS += test-pr_radical
 check_PROGRAMS += test-pr_radical
 test_pr_radical_SOURCES = unictype/test-pr_radical.c
-
+test_pr_radical_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_radical.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-radical-tests
@@ -2422,7 +3084,7 @@ EXTRA_DIST += unictype/test-pr_radical.c unictype/test-predicate-part1.h unictyp
 TESTS += test-pr_sentence_terminal
 check_PROGRAMS += test-pr_sentence_terminal
 test_pr_sentence_terminal_SOURCES = unictype/test-pr_sentence_terminal.c
-
+test_pr_sentence_terminal_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_sentence_terminal.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-sentence-terminal-tests
@@ -2432,7 +3094,7 @@ EXTRA_DIST += unictype/test-pr_sentence_terminal.c unictype/test-predicate-part1
 TESTS += test-pr_soft_dotted
 check_PROGRAMS += test-pr_soft_dotted
 test_pr_soft_dotted_SOURCES = unictype/test-pr_soft_dotted.c
-
+test_pr_soft_dotted_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_soft_dotted.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-soft-dotted-tests
@@ -2442,7 +3104,7 @@ EXTRA_DIST += unictype/test-pr_soft_dotted.c unictype/test-predicate-part1.h uni
 TESTS += test-pr_space
 check_PROGRAMS += test-pr_space
 test_pr_space_SOURCES = unictype/test-pr_space.c
-
+test_pr_space_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_space.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-space-tests
@@ -2452,7 +3114,7 @@ EXTRA_DIST += unictype/test-pr_space.c unictype/test-predicate-part1.h unictype/
 TESTS += test-pr_terminal_punctuation
 check_PROGRAMS += test-pr_terminal_punctuation
 test_pr_terminal_punctuation_SOURCES = unictype/test-pr_terminal_punctuation.c
-
+test_pr_terminal_punctuation_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_terminal_punctuation.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-terminal-punctuation-tests
@@ -2462,7 +3124,7 @@ EXTRA_DIST += unictype/test-pr_terminal_punctuation.c unictype/test-predicate-pa
 TESTS += test-pr_test
 check_PROGRAMS += test-pr_test
 test_pr_test_SOURCES = unictype/test-pr_test.c
-
+test_pr_test_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_test.c macros.h
 
 ## end   gnulib module unictype/property-test-tests
@@ -2472,7 +3134,7 @@ EXTRA_DIST += unictype/test-pr_test.c macros.h
 TESTS += test-pr_titlecase
 check_PROGRAMS += test-pr_titlecase
 test_pr_titlecase_SOURCES = unictype/test-pr_titlecase.c
-
+test_pr_titlecase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_titlecase.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-titlecase-tests
@@ -2482,7 +3144,7 @@ EXTRA_DIST += unictype/test-pr_titlecase.c unictype/test-predicate-part1.h unict
 TESTS += test-pr_unassigned_code_value
 check_PROGRAMS += test-pr_unassigned_code_value
 test_pr_unassigned_code_value_SOURCES = unictype/test-pr_unassigned_code_value.c
-
+test_pr_unassigned_code_value_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_unassigned_code_value.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-unassigned-code-value-tests
@@ -2492,7 +3154,7 @@ EXTRA_DIST += unictype/test-pr_unassigned_code_value.c unictype/test-predicate-p
 TESTS += test-pr_unified_ideograph
 check_PROGRAMS += test-pr_unified_ideograph
 test_pr_unified_ideograph_SOURCES = unictype/test-pr_unified_ideograph.c
-
+test_pr_unified_ideograph_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_unified_ideograph.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-unified-ideograph-tests
@@ -2502,7 +3164,7 @@ EXTRA_DIST += unictype/test-pr_unified_ideograph.c unictype/test-predicate-part1
 TESTS += test-pr_uppercase
 check_PROGRAMS += test-pr_uppercase
 test_pr_uppercase_SOURCES = unictype/test-pr_uppercase.c
-
+test_pr_uppercase_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_uppercase.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-uppercase-tests
@@ -2512,7 +3174,7 @@ EXTRA_DIST += unictype/test-pr_uppercase.c unictype/test-predicate-part1.h unict
 TESTS += test-pr_variation_selector
 check_PROGRAMS += test-pr_variation_selector
 test_pr_variation_selector_SOURCES = unictype/test-pr_variation_selector.c
-
+test_pr_variation_selector_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_variation_selector.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-variation-selector-tests
@@ -2522,7 +3184,7 @@ EXTRA_DIST += unictype/test-pr_variation_selector.c unictype/test-predicate-part
 TESTS += test-pr_white_space
 check_PROGRAMS += test-pr_white_space
 test_pr_white_space_SOURCES = unictype/test-pr_white_space.c
-
+test_pr_white_space_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_white_space.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-white-space-tests
@@ -2532,7 +3194,7 @@ EXTRA_DIST += unictype/test-pr_white_space.c unictype/test-predicate-part1.h uni
 TESTS += test-pr_xid_continue
 check_PROGRAMS += test-pr_xid_continue
 test_pr_xid_continue_SOURCES = unictype/test-pr_xid_continue.c
-
+test_pr_xid_continue_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_xid_continue.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-xid-continue-tests
@@ -2542,7 +3204,7 @@ EXTRA_DIST += unictype/test-pr_xid_continue.c unictype/test-predicate-part1.h un
 TESTS += test-pr_xid_start
 check_PROGRAMS += test-pr_xid_start
 test_pr_xid_start_SOURCES = unictype/test-pr_xid_start.c
-
+test_pr_xid_start_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_xid_start.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-xid-start-tests
@@ -2552,7 +3214,7 @@ EXTRA_DIST += unictype/test-pr_xid_start.c unictype/test-predicate-part1.h unict
 TESTS += test-pr_zero_width
 check_PROGRAMS += test-pr_zero_width
 test_pr_zero_width_SOURCES = unictype/test-pr_zero_width.c
-
+test_pr_zero_width_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-pr_zero_width.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/property-zero-width-tests
@@ -2562,7 +3224,7 @@ EXTRA_DIST += unictype/test-pr_zero_width.c unictype/test-predicate-part1.h unic
 TESTS += test-scripts
 check_PROGRAMS += test-scripts
 test_scripts_SOURCES = unictype/test-scripts.c
-
+test_scripts_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-scripts.c macros.h
 
 ## end   gnulib module unictype/scripts-tests
@@ -2572,7 +3234,7 @@ EXTRA_DIST += unictype/test-scripts.c macros.h
 TESTS += test-sy_c_ident
 check_PROGRAMS += test-sy_c_ident
 test_sy_c_ident_SOURCES = unictype/test-sy_c_ident.c
-
+test_sy_c_ident_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-sy_c_ident.c macros.h
 
 ## end   gnulib module unictype/syntax-c-ident-tests
@@ -2582,7 +3244,7 @@ EXTRA_DIST += unictype/test-sy_c_ident.c macros.h
 TESTS += test-sy_c_whitespace
 check_PROGRAMS += test-sy_c_whitespace
 test_sy_c_whitespace_SOURCES = unictype/test-sy_c_whitespace.c
-
+test_sy_c_whitespace_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-sy_c_whitespace.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/syntax-c-whitespace-tests
@@ -2592,7 +3254,7 @@ EXTRA_DIST += unictype/test-sy_c_whitespace.c unictype/test-predicate-part1.h un
 TESTS += test-sy_java_ident
 check_PROGRAMS += test-sy_java_ident
 test_sy_java_ident_SOURCES = unictype/test-sy_java_ident.c
-
+test_sy_java_ident_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-sy_java_ident.c macros.h
 
 ## end   gnulib module unictype/syntax-java-ident-tests
@@ -2602,17 +3264,138 @@ EXTRA_DIST += unictype/test-sy_java_ident.c macros.h
 TESTS += test-sy_java_whitespace
 check_PROGRAMS += test-sy_java_whitespace
 test_sy_java_whitespace_SOURCES = unictype/test-sy_java_whitespace.c
-
+test_sy_java_whitespace_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unictype/test-sy_java_whitespace.c unictype/test-predicate-part1.h unictype/test-predicate-part2.h macros.h
 
 ## end   gnulib module unictype/syntax-java-whitespace-tests
 
+## begin gnulib module unigbrk/u16-grapheme-breaks-tests
+
+TESTS += test-u16-grapheme-breaks
+check_PROGRAMS += test-u16-grapheme-breaks
+test_u16_grapheme_breaks_SOURCES = unigbrk/test-u16-grapheme-breaks.c
+test_u16_grapheme_breaks_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unigbrk/test-u16-grapheme-breaks.c
+
+## end   gnulib module unigbrk/u16-grapheme-breaks-tests
+
+## begin gnulib module unigbrk/u16-grapheme-next-tests
+
+TESTS += test-u16-grapheme-next
+check_PROGRAMS += test-u16-grapheme-next
+test_u16_grapheme_next_SOURCES = unigbrk/test-u16-grapheme-next.c
+test_u16_grapheme_next_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unigbrk/test-u16-grapheme-next.c
+
+## end   gnulib module unigbrk/u16-grapheme-next-tests
+
+## begin gnulib module unigbrk/u16-grapheme-prev-tests
+
+TESTS += test-u16-grapheme-prev
+check_PROGRAMS += test-u16-grapheme-prev
+test_u16_grapheme_prev_SOURCES = unigbrk/test-u16-grapheme-prev.c
+test_u16_grapheme_prev_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unigbrk/test-u16-grapheme-prev.c
+
+## end   gnulib module unigbrk/u16-grapheme-prev-tests
+
+## begin gnulib module unigbrk/u32-grapheme-breaks-tests
+
+TESTS += test-u32-grapheme-breaks
+check_PROGRAMS += test-u32-grapheme-breaks
+test_u32_grapheme_breaks_SOURCES = unigbrk/test-u32-grapheme-breaks.c
+test_u32_grapheme_breaks_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unigbrk/test-u32-grapheme-breaks.c
+
+## end   gnulib module unigbrk/u32-grapheme-breaks-tests
+
+## begin gnulib module unigbrk/u32-grapheme-next-tests
+
+TESTS += test-u32-grapheme-next
+check_PROGRAMS += test-u32-grapheme-next
+test_u32_grapheme_next_SOURCES = unigbrk/test-u32-grapheme-next.c
+test_u32_grapheme_next_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unigbrk/test-u32-grapheme-next.c
+
+## end   gnulib module unigbrk/u32-grapheme-next-tests
+
+## begin gnulib module unigbrk/u32-grapheme-prev-tests
+
+TESTS += test-u32-grapheme-prev
+check_PROGRAMS += test-u32-grapheme-prev
+test_u32_grapheme_prev_SOURCES = unigbrk/test-u32-grapheme-prev.c
+test_u32_grapheme_prev_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unigbrk/test-u32-grapheme-prev.c
+
+## end   gnulib module unigbrk/u32-grapheme-prev-tests
+
+## begin gnulib module unigbrk/u8-grapheme-breaks-tests
+
+TESTS += test-u8-grapheme-breaks
+check_PROGRAMS += test-u8-grapheme-breaks
+test_u8_grapheme_breaks_SOURCES = unigbrk/test-u8-grapheme-breaks.c
+test_u8_grapheme_breaks_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unigbrk/test-u8-grapheme-breaks.c
+
+## end   gnulib module unigbrk/u8-grapheme-breaks-tests
+
+## begin gnulib module unigbrk/u8-grapheme-next-tests
+
+TESTS += test-u8-grapheme-next
+check_PROGRAMS += test-u8-grapheme-next
+test_u8_grapheme_next_SOURCES = unigbrk/test-u8-grapheme-next.c
+test_u8_grapheme_next_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unigbrk/test-u8-grapheme-next.c
+
+## end   gnulib module unigbrk/u8-grapheme-next-tests
+
+## begin gnulib module unigbrk/u8-grapheme-prev-tests
+
+TESTS += test-u8-grapheme-prev
+check_PROGRAMS += test-u8-grapheme-prev
+test_u8_grapheme_prev_SOURCES = unigbrk/test-u8-grapheme-prev.c
+test_u8_grapheme_prev_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unigbrk/test-u8-grapheme-prev.c
+
+## end   gnulib module unigbrk/u8-grapheme-prev-tests
+
+## begin gnulib module unigbrk/uc-gbrk-prop-tests
+
+TESTS += test-uc-gbrk-prop
+check_PROGRAMS += test-uc-gbrk-prop
+test_uc_gbrk_prop_SOURCES = unigbrk/test-uc-gbrk-prop.c
+test_uc_gbrk_prop_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unigbrk/test-uc-gbrk-prop.c unigbrk/test-uc-gbrk-prop.h macros.h
+
+## end   gnulib module unigbrk/uc-gbrk-prop-tests
+
+## begin gnulib module unigbrk/uc-is-grapheme-break-tests
+
+TESTS += unigbrk/test-uc-is-grapheme-break.sh
+check_PROGRAMS += test-uc-is-grapheme-break
+test_uc_is_grapheme_break_SOURCES = unigbrk/test-uc-is-grapheme-break.c
+test_uc_is_grapheme_break_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unigbrk/test-uc-is-grapheme-break.c unigbrk/test-uc-is-grapheme-break.sh unigbrk/GraphemeBreakTest.txt
+
+## end   gnulib module unigbrk/uc-is-grapheme-break-tests
+
+## begin gnulib module unigbrk/ulc-grapheme-breaks-tests
+
+TESTS += unigbrk/test-ulc-grapheme-breaks.sh
+TESTS_ENVIRONMENT += LOCALE_AR='@LOCALE_AR@'
+check_PROGRAMS += test-ulc-grapheme-breaks
+test_ulc_grapheme_breaks_SOURCES = unigbrk/test-ulc-grapheme-breaks.c
+test_ulc_grapheme_breaks_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
+EXTRA_DIST += unigbrk/test-ulc-grapheme-breaks.sh unigbrk/test-ulc-grapheme-breaks.c macros.h
+
+## end   gnulib module unigbrk/ulc-grapheme-breaks-tests
+
 ## begin gnulib module unilbrk/u16-possible-linebreaks-tests
 
 TESTS += test-u16-possible-linebreaks
 check_PROGRAMS += test-u16-possible-linebreaks
 test_u16_possible_linebreaks_SOURCES = unilbrk/test-u16-possible-linebreaks.c
-
+test_u16_possible_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unilbrk/test-u16-possible-linebreaks.c macros.h
 
 ## end   gnulib module unilbrk/u16-possible-linebreaks-tests
@@ -2622,7 +3405,7 @@ EXTRA_DIST += unilbrk/test-u16-possible-linebreaks.c macros.h
 TESTS += test-u16-width-linebreaks
 check_PROGRAMS += test-u16-width-linebreaks
 test_u16_width_linebreaks_SOURCES = unilbrk/test-u16-width-linebreaks.c
-
+test_u16_width_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unilbrk/test-u16-width-linebreaks.c macros.h
 
 ## end   gnulib module unilbrk/u16-width-linebreaks-tests
@@ -2632,7 +3415,7 @@ EXTRA_DIST += unilbrk/test-u16-width-linebreaks.c macros.h
 TESTS += test-u32-possible-linebreaks
 check_PROGRAMS += test-u32-possible-linebreaks
 test_u32_possible_linebreaks_SOURCES = unilbrk/test-u32-possible-linebreaks.c
-
+test_u32_possible_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unilbrk/test-u32-possible-linebreaks.c macros.h
 
 ## end   gnulib module unilbrk/u32-possible-linebreaks-tests
@@ -2642,7 +3425,7 @@ EXTRA_DIST += unilbrk/test-u32-possible-linebreaks.c macros.h
 TESTS += test-u32-width-linebreaks
 check_PROGRAMS += test-u32-width-linebreaks
 test_u32_width_linebreaks_SOURCES = unilbrk/test-u32-width-linebreaks.c
-
+test_u32_width_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unilbrk/test-u32-width-linebreaks.c macros.h
 
 ## end   gnulib module unilbrk/u32-width-linebreaks-tests
@@ -2652,7 +3435,7 @@ EXTRA_DIST += unilbrk/test-u32-width-linebreaks.c macros.h
 TESTS += test-u8-possible-linebreaks
 check_PROGRAMS += test-u8-possible-linebreaks
 test_u8_possible_linebreaks_SOURCES = unilbrk/test-u8-possible-linebreaks.c
-
+test_u8_possible_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unilbrk/test-u8-possible-linebreaks.c macros.h
 
 ## end   gnulib module unilbrk/u8-possible-linebreaks-tests
@@ -2662,7 +3445,7 @@ EXTRA_DIST += unilbrk/test-u8-possible-linebreaks.c macros.h
 TESTS += test-u8-width-linebreaks
 check_PROGRAMS += test-u8-width-linebreaks
 test_u8_width_linebreaks_SOURCES = unilbrk/test-u8-width-linebreaks.c
-
+test_u8_width_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unilbrk/test-u8-width-linebreaks.c macros.h
 
 ## end   gnulib module unilbrk/u8-width-linebreaks-tests
@@ -2672,7 +3455,7 @@ EXTRA_DIST += unilbrk/test-u8-width-linebreaks.c macros.h
 TESTS += test-ulc-possible-linebreaks
 check_PROGRAMS += test-ulc-possible-linebreaks
 test_ulc_possible_linebreaks_SOURCES = unilbrk/test-ulc-possible-linebreaks.c
-test_ulc_possible_linebreaks_LDADD = $(LDADD) @LIBICONV@
+test_ulc_possible_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += unilbrk/test-ulc-possible-linebreaks.c macros.h
 
@@ -2683,7 +3466,7 @@ EXTRA_DIST += unilbrk/test-ulc-possible-linebreaks.c macros.h
 TESTS += test-ulc-width-linebreaks
 check_PROGRAMS += test-ulc-width-linebreaks
 test_ulc_width_linebreaks_SOURCES = unilbrk/test-ulc-width-linebreaks.c
-test_ulc_width_linebreaks_LDADD = $(LDADD) @LIBICONV@
+test_ulc_width_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += unilbrk/test-ulc-width-linebreaks.c macros.h
 
@@ -2694,7 +3477,7 @@ EXTRA_DIST += unilbrk/test-ulc-width-linebreaks.c macros.h
 TESTS += uniname/test-uninames.sh
 check_PROGRAMS += test-uninames
 test_uninames_SOURCES = uniname/test-uninames.c
-test_uninames_LDADD = $(LDADD) @LIBINTL@
+test_uninames_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@
 
 EXTRA_DIST += uniname/test-uninames.sh uniname/test-uninames.c uniname/UnicodeDataNames.txt
 
@@ -2705,7 +3488,7 @@ EXTRA_DIST += uniname/test-uninames.sh uniname/test-uninames.c uniname/UnicodeDa
 TESTS += test-canonical-decomposition
 check_PROGRAMS += test-canonical-decomposition
 test_canonical_decomposition_SOURCES = uninorm/test-canonical-decomposition.c
-
+test_canonical_decomposition_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uninorm/test-canonical-decomposition.c macros.h
 
 ## end   gnulib module uninorm/canonical-decomposition-tests
@@ -2715,7 +3498,7 @@ EXTRA_DIST += uninorm/test-canonical-decomposition.c macros.h
 TESTS += test-compat-decomposition
 check_PROGRAMS += test-compat-decomposition
 test_compat_decomposition_SOURCES = uninorm/test-compat-decomposition.c
-
+test_compat_decomposition_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uninorm/test-compat-decomposition.c macros.h
 
 ## end   gnulib module uninorm/compat-decomposition-tests
@@ -2725,7 +3508,7 @@ EXTRA_DIST += uninorm/test-compat-decomposition.c macros.h
 TESTS += test-composition
 check_PROGRAMS += test-composition
 test_composition_SOURCES = uninorm/test-composition.c
-
+test_composition_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uninorm/test-composition.c macros.h
 
 ## end   gnulib module uninorm/composition-tests
@@ -2735,7 +3518,7 @@ EXTRA_DIST += uninorm/test-composition.c macros.h
 TESTS += test-decomposing-form
 check_PROGRAMS += test-decomposing-form
 test_decomposing_form_SOURCES = uninorm/test-decomposing-form.c
-
+test_decomposing_form_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uninorm/test-decomposing-form.c macros.h
 
 ## end   gnulib module uninorm/decomposing-form-tests
@@ -2745,7 +3528,7 @@ EXTRA_DIST += uninorm/test-decomposing-form.c macros.h
 TESTS += test-decomposition
 check_PROGRAMS += test-decomposition
 test_decomposition_SOURCES = uninorm/test-decomposition.c
-
+test_decomposition_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uninorm/test-decomposition.c macros.h
 
 ## end   gnulib module uninorm/decomposition-tests
@@ -2755,7 +3538,7 @@ EXTRA_DIST += uninorm/test-decomposition.c macros.h
 TESTS += test-uninorm-filter-nfc
 check_PROGRAMS += test-uninorm-filter-nfc
 test_uninorm_filter_nfc_SOURCES = uninorm/test-uninorm-filter-nfc.c
-
+test_uninorm_filter_nfc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uninorm/test-uninorm-filter-nfc.c macros.h
 
 ## end   gnulib module uninorm/filter-tests
@@ -2769,10 +3552,11 @@ test_nfc_SOURCES = \
   uninorm/test-u8-nfc.c \
   uninorm/test-u16-nfc.c \
   uninorm/test-u32-nfc.c
+test_nfc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_nfc_big_SOURCES = \
   uninorm/test-u32-nfc-big.c \
   uninorm/test-u32-normalize-big.c
-test_u32_nfc_big_LDADD = $(LDADD) @LIBINTL@
+test_u32_nfc_big_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@
 EXTRA_DIST += uninorm/test-nfc.c uninorm/test-u8-nfc.c uninorm/test-u16-nfc.c uninorm/test-u32-nfc.c uninorm/test-u32-nfc-big.sh uninorm/test-u32-nfc-big.c uninorm/test-u32-normalize-big.h uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt macros.h
 
 ## end   gnulib module uninorm/nfc-tests
@@ -2786,10 +3570,11 @@ test_nfd_SOURCES = \
   uninorm/test-u8-nfd.c \
   uninorm/test-u16-nfd.c \
   uninorm/test-u32-nfd.c
+test_nfd_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_nfd_big_SOURCES = \
   uninorm/test-u32-nfd-big.c \
   uninorm/test-u32-normalize-big.c
-test_u32_nfd_big_LDADD = $(LDADD) @LIBINTL@
+test_u32_nfd_big_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@
 
 EXTRA_DIST += uninorm/test-nfd.c uninorm/test-u8-nfd.c uninorm/test-u16-nfd.c uninorm/test-u32-nfd.c uninorm/test-u32-nfd-big.sh uninorm/test-u32-nfd-big.c uninorm/test-u32-normalize-big.h uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt macros.h
 
@@ -2804,10 +3589,11 @@ test_nfkc_SOURCES = \
   uninorm/test-u8-nfkc.c \
   uninorm/test-u16-nfkc.c \
   uninorm/test-u32-nfkc.c
+test_nfkc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_nfkc_big_SOURCES = \
   uninorm/test-u32-nfkc-big.c \
   uninorm/test-u32-normalize-big.c
-test_u32_nfkc_big_LDADD = $(LDADD) @LIBINTL@
+test_u32_nfkc_big_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@
 
 EXTRA_DIST += uninorm/test-nfkc.c uninorm/test-u8-nfkc.c uninorm/test-u16-nfkc.c uninorm/test-u32-nfkc.c uninorm/test-u32-nfkc-big.sh uninorm/test-u32-nfkc-big.c uninorm/test-u32-normalize-big.h uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt macros.h
 
@@ -2822,10 +3608,11 @@ test_nfkd_SOURCES = \
   uninorm/test-u8-nfkd.c \
   uninorm/test-u16-nfkd.c \
   uninorm/test-u32-nfkd.c
+test_nfkd_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_nfkd_big_SOURCES = \
   uninorm/test-u32-nfkd-big.c \
   uninorm/test-u32-normalize-big.c
-test_u32_nfkd_big_LDADD = $(LDADD) @LIBINTL@
+test_u32_nfkd_big_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@
 
 EXTRA_DIST += uninorm/test-nfkd.c uninorm/test-u8-nfkd.c uninorm/test-u16-nfkd.c uninorm/test-u32-nfkd.c uninorm/test-u32-nfkd-big.sh uninorm/test-u32-nfkd-big.c uninorm/test-u32-normalize-big.h uninorm/test-u32-normalize-big.c uninorm/NormalizationTest.txt macros.h
 
@@ -2836,7 +3623,7 @@ EXTRA_DIST += uninorm/test-nfkd.c uninorm/test-u8-nfkd.c uninorm/test-u16-nfkd.c
 TESTS += test-u16-normcmp
 check_PROGRAMS += test-u16-normcmp
 test_u16_normcmp_SOURCES = uninorm/test-u16-normcmp.c
-
+test_u16_normcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uninorm/test-u16-normcmp.c uninorm/test-u16-normcmp.h macros.h
 
 ## end   gnulib module uninorm/u16-normcmp-tests
@@ -2846,7 +3633,7 @@ EXTRA_DIST += uninorm/test-u16-normcmp.c uninorm/test-u16-normcmp.h macros.h
 TESTS += test-u16-normcoll
 check_PROGRAMS += test-u16-normcoll
 test_u16_normcoll_SOURCES = uninorm/test-u16-normcoll.c
-test_u16_normcoll_LDADD = $(LDADD) @LIBICONV@
+test_u16_normcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uninorm/test-u16-normcoll.c uninorm/test-u16-normcmp.h macros.h
 
@@ -2857,7 +3644,7 @@ EXTRA_DIST += uninorm/test-u16-normcoll.c uninorm/test-u16-normcmp.h macros.h
 TESTS += test-u32-normcmp
 check_PROGRAMS += test-u32-normcmp
 test_u32_normcmp_SOURCES = uninorm/test-u32-normcmp.c
-
+test_u32_normcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uninorm/test-u32-normcmp.c uninorm/test-u32-normcmp.h macros.h
 
 ## end   gnulib module uninorm/u32-normcmp-tests
@@ -2867,7 +3654,7 @@ EXTRA_DIST += uninorm/test-u32-normcmp.c uninorm/test-u32-normcmp.h macros.h
 TESTS += test-u32-normcoll
 check_PROGRAMS += test-u32-normcoll
 test_u32_normcoll_SOURCES = uninorm/test-u32-normcoll.c
-test_u32_normcoll_LDADD = $(LDADD) @LIBICONV@
+test_u32_normcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uninorm/test-u32-normcoll.c uninorm/test-u32-normcmp.h macros.h
 
@@ -2878,7 +3665,7 @@ EXTRA_DIST += uninorm/test-u32-normcoll.c uninorm/test-u32-normcmp.h macros.h
 TESTS += test-u8-normcmp
 check_PROGRAMS += test-u8-normcmp
 test_u8_normcmp_SOURCES = uninorm/test-u8-normcmp.c
-
+test_u8_normcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uninorm/test-u8-normcmp.c uninorm/test-u8-normcmp.h macros.h
 
 ## end   gnulib module uninorm/u8-normcmp-tests
@@ -2888,7 +3675,7 @@ EXTRA_DIST += uninorm/test-u8-normcmp.c uninorm/test-u8-normcmp.h macros.h
 TESTS += test-u8-normcoll
 check_PROGRAMS += test-u8-normcoll
 test_u8_normcoll_SOURCES = uninorm/test-u8-normcoll.c
-test_u8_normcoll_LDADD = $(LDADD) @LIBICONV@
+test_u8_normcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uninorm/test-u8-normcoll.c uninorm/test-u8-normcmp.h macros.h
 
@@ -2907,7 +3694,7 @@ EXTRA_DIST += test-unistd.c
 TESTS += test-u16-asnprintf1
 check_PROGRAMS += test-u16-asnprintf1
 test_u16_asnprintf1_SOURCES = unistdio/test-u16-asnprintf1.c
-test_u16_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u16_asnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-u16-asnprintf1.c unistdio/test-u16-asnprintf1.h unistdio/test-u16-printf1.h macros.h
 
 ## end   gnulib module unistdio/u16-asnprintf-tests
@@ -2918,11 +3705,11 @@ TESTS += test-u16-vasnprintf1 unistdio/test-u16-vasnprintf2.sh unistdio/test-u16
 TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
 check_PROGRAMS += test-u16-vasnprintf1 test-u16-vasnprintf2 test-u16-vasnprintf3
 test_u16_vasnprintf1_SOURCES = unistdio/test-u16-vasnprintf1.c
-test_u16_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_vasnprintf2_SOURCES = unistdio/test-u16-vasnprintf2.c
-test_u16_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasnprintf2_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_vasnprintf3_SOURCES = unistdio/test-u16-vasnprintf3.c
-test_u16_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasnprintf3_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-u16-vasnprintf1.c unistdio/test-u16-asnprintf1.h unistdio/test-u16-printf1.h unistdio/test-u16-vasnprintf2.sh unistdio/test-u16-vasnprintf2.c unistdio/test-u16-vasnprintf3.sh unistdio/test-u16-vasnprintf3.c macros.h
 
 ## end   gnulib module unistdio/u16-vasnprintf-tests
@@ -2932,7 +3719,7 @@ EXTRA_DIST += unistdio/test-u16-vasnprintf1.c unistdio/test-u16-asnprintf1.h uni
 TESTS += test-u16-vasprintf1
 check_PROGRAMS += test-u16-vasprintf1
 test_u16_vasprintf1_SOURCES = unistdio/test-u16-vasprintf1.c
-test_u16_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-u16-vasprintf1.c unistdio/test-u16-printf1.h macros.h
 
 ## end   gnulib module unistdio/u16-vasprintf-tests
@@ -2942,7 +3729,7 @@ EXTRA_DIST += unistdio/test-u16-vasprintf1.c unistdio/test-u16-printf1.h macros.
 TESTS += test-u16-vsnprintf1
 check_PROGRAMS += test-u16-vsnprintf1
 test_u16_vsnprintf1_SOURCES = unistdio/test-u16-vsnprintf1.c
-test_u16_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u16_vsnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 EXTRA_DIST += unistdio/test-u16-vsnprintf1.c unistdio/test-u16-printf1.h macros.h
 
 ## end   gnulib module unistdio/u16-vsnprintf-tests
@@ -2952,7 +3739,7 @@ EXTRA_DIST += unistdio/test-u16-vsnprintf1.c unistdio/test-u16-printf1.h macros.
 TESTS += test-u16-vsprintf1
 check_PROGRAMS += test-u16-vsprintf1
 test_u16_vsprintf1_SOURCES = unistdio/test-u16-vsprintf1.c
-test_u16_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u16_vsprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 EXTRA_DIST += unistdio/test-u16-vsprintf1.c unistdio/test-u16-printf1.h macros.h
 
 ## end   gnulib module unistdio/u16-vsprintf-tests
@@ -2962,7 +3749,7 @@ EXTRA_DIST += unistdio/test-u16-vsprintf1.c unistdio/test-u16-printf1.h macros.h
 TESTS += test-u32-asnprintf1
 check_PROGRAMS += test-u32-asnprintf1
 test_u32_asnprintf1_SOURCES = unistdio/test-u32-asnprintf1.c
-test_u32_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u32_asnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-u32-asnprintf1.c unistdio/test-u32-asnprintf1.h unistdio/test-u32-printf1.h macros.h
 
 ## end   gnulib module unistdio/u32-asnprintf-tests
@@ -2973,11 +3760,11 @@ TESTS += test-u32-vasnprintf1 unistdio/test-u32-vasnprintf2.sh unistdio/test-u32
 TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
 check_PROGRAMS += test-u32-vasnprintf1 test-u32-vasnprintf2 test-u32-vasnprintf3
 test_u32_vasnprintf1_SOURCES = unistdio/test-u32-vasnprintf1.c
-test_u32_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_vasnprintf2_SOURCES = unistdio/test-u32-vasnprintf2.c
-test_u32_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasnprintf2_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_vasnprintf3_SOURCES = unistdio/test-u32-vasnprintf3.c
-test_u32_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasnprintf3_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-u32-vasnprintf1.c unistdio/test-u32-asnprintf1.h unistdio/test-u32-printf1.h unistdio/test-u32-vasnprintf2.sh unistdio/test-u32-vasnprintf2.c unistdio/test-u32-vasnprintf3.sh unistdio/test-u32-vasnprintf3.c macros.h
 
 ## end   gnulib module unistdio/u32-vasnprintf-tests
@@ -2987,7 +3774,7 @@ EXTRA_DIST += unistdio/test-u32-vasnprintf1.c unistdio/test-u32-asnprintf1.h uni
 TESTS += test-u32-vasprintf1
 check_PROGRAMS += test-u32-vasprintf1
 test_u32_vasprintf1_SOURCES = unistdio/test-u32-vasprintf1.c
-test_u32_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-u32-vasprintf1.c unistdio/test-u32-printf1.h macros.h
 
 ## end   gnulib module unistdio/u32-vasprintf-tests
@@ -2997,7 +3784,7 @@ EXTRA_DIST += unistdio/test-u32-vasprintf1.c unistdio/test-u32-printf1.h macros.
 TESTS += test-u32-vsnprintf1
 check_PROGRAMS += test-u32-vsnprintf1
 test_u32_vsnprintf1_SOURCES = unistdio/test-u32-vsnprintf1.c
-test_u32_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u32_vsnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 EXTRA_DIST += unistdio/test-u32-vsnprintf1.c unistdio/test-u32-printf1.h macros.h
 
 ## end   gnulib module unistdio/u32-vsnprintf-tests
@@ -3007,7 +3794,7 @@ EXTRA_DIST += unistdio/test-u32-vsnprintf1.c unistdio/test-u32-printf1.h macros.
 TESTS += test-u32-vsprintf1
 check_PROGRAMS += test-u32-vsprintf1
 test_u32_vsprintf1_SOURCES = unistdio/test-u32-vsprintf1.c
-test_u32_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u32_vsprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 EXTRA_DIST += unistdio/test-u32-vsprintf1.c unistdio/test-u32-printf1.h macros.h
 
 ## end   gnulib module unistdio/u32-vsprintf-tests
@@ -3017,7 +3804,7 @@ EXTRA_DIST += unistdio/test-u32-vsprintf1.c unistdio/test-u32-printf1.h macros.h
 TESTS += test-u8-asnprintf1
 check_PROGRAMS += test-u8-asnprintf1
 test_u8_asnprintf1_SOURCES = unistdio/test-u8-asnprintf1.c
-test_u8_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u8_asnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-u8-asnprintf1.c unistdio/test-u8-asnprintf1.h unistdio/test-u8-printf1.h macros.h
 
 ## end   gnulib module unistdio/u8-asnprintf-tests
@@ -3028,11 +3815,11 @@ TESTS += test-u8-vasnprintf1 unistdio/test-u8-vasnprintf2.sh unistdio/test-u8-va
 TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
 check_PROGRAMS += test-u8-vasnprintf1 test-u8-vasnprintf2 test-u8-vasnprintf3
 test_u8_vasnprintf1_SOURCES = unistdio/test-u8-vasnprintf1.c
-test_u8_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_vasnprintf2_SOURCES = unistdio/test-u8-vasnprintf2.c
-test_u8_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasnprintf2_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_vasnprintf3_SOURCES = unistdio/test-u8-vasnprintf3.c
-test_u8_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasnprintf3_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-u8-vasnprintf1.c unistdio/test-u8-asnprintf1.h unistdio/test-u8-printf1.h unistdio/test-u8-vasnprintf2.sh unistdio/test-u8-vasnprintf2.c unistdio/test-u8-vasnprintf3.sh unistdio/test-u8-vasnprintf3.c macros.h
 
 ## end   gnulib module unistdio/u8-vasnprintf-tests
@@ -3042,7 +3829,7 @@ EXTRA_DIST += unistdio/test-u8-vasnprintf1.c unistdio/test-u8-asnprintf1.h unist
 TESTS += test-u8-vasprintf1
 check_PROGRAMS += test-u8-vasprintf1
 test_u8_vasprintf1_SOURCES = unistdio/test-u8-vasprintf1.c
-test_u8_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-u8-vasprintf1.c unistdio/test-u8-printf1.h macros.h
 
 ## end   gnulib module unistdio/u8-vasprintf-tests
@@ -3052,7 +3839,7 @@ EXTRA_DIST += unistdio/test-u8-vasprintf1.c unistdio/test-u8-printf1.h macros.h
 TESTS += test-u8-vsnprintf1
 check_PROGRAMS += test-u8-vsnprintf1
 test_u8_vsnprintf1_SOURCES = unistdio/test-u8-vsnprintf1.c
-test_u8_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u8_vsnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 EXTRA_DIST += unistdio/test-u8-vsnprintf1.c unistdio/test-u8-printf1.h macros.h
 
 ## end   gnulib module unistdio/u8-vsnprintf-tests
@@ -3062,7 +3849,7 @@ EXTRA_DIST += unistdio/test-u8-vsnprintf1.c unistdio/test-u8-printf1.h macros.h
 TESTS += test-u8-vsprintf1
 check_PROGRAMS += test-u8-vsprintf1
 test_u8_vsprintf1_SOURCES = unistdio/test-u8-vsprintf1.c
-test_u8_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u8_vsprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 EXTRA_DIST += unistdio/test-u8-vsprintf1.c unistdio/test-u8-printf1.h macros.h
 
 ## end   gnulib module unistdio/u8-vsprintf-tests
@@ -3072,7 +3859,7 @@ EXTRA_DIST += unistdio/test-u8-vsprintf1.c unistdio/test-u8-printf1.h macros.h
 TESTS += test-ulc-asnprintf1
 check_PROGRAMS += test-ulc-asnprintf1
 test_ulc_asnprintf1_SOURCES = unistdio/test-ulc-asnprintf1.c
-test_ulc_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_ulc_asnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-ulc-asnprintf1.c unistdio/test-ulc-asnprintf1.h unistdio/test-ulc-printf1.h macros.h
 
 ## end   gnulib module unistdio/ulc-asnprintf-tests
@@ -3083,11 +3870,11 @@ TESTS += test-ulc-vasnprintf1 unistdio/test-ulc-vasnprintf2.sh unistdio/test-ulc
 TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@'
 check_PROGRAMS += test-ulc-vasnprintf1 test-ulc-vasnprintf2 test-ulc-vasnprintf3
 test_ulc_vasnprintf1_SOURCES = unistdio/test-ulc-vasnprintf1.c
-test_ulc_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_ulc_vasnprintf2_SOURCES = unistdio/test-ulc-vasnprintf2.c
-test_ulc_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasnprintf2_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_ulc_vasnprintf3_SOURCES = unistdio/test-ulc-vasnprintf3.c
-test_ulc_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasnprintf3_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-ulc-vasnprintf1.c unistdio/test-ulc-asnprintf1.h unistdio/test-ulc-printf1.h unistdio/test-ulc-vasnprintf2.sh unistdio/test-ulc-vasnprintf2.c unistdio/test-ulc-vasnprintf3.sh unistdio/test-ulc-vasnprintf3.c macros.h
 
 ## end   gnulib module unistdio/ulc-vasnprintf-tests
@@ -3097,7 +3884,7 @@ EXTRA_DIST += unistdio/test-ulc-vasnprintf1.c unistdio/test-ulc-asnprintf1.h uni
 TESTS += test-ulc-vasprintf1
 check_PROGRAMS += test-ulc-vasprintf1
 test_ulc_vasprintf1_SOURCES = unistdio/test-ulc-vasprintf1.c
-test_ulc_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistdio/test-ulc-vasprintf1.c unistdio/test-ulc-printf1.h macros.h
 
 ## end   gnulib module unistdio/ulc-vasprintf-tests
@@ -3107,7 +3894,7 @@ EXTRA_DIST += unistdio/test-ulc-vasprintf1.c unistdio/test-ulc-printf1.h macros.
 TESTS += test-ulc-vsnprintf1
 check_PROGRAMS += test-ulc-vsnprintf1
 test_ulc_vsnprintf1_SOURCES = unistdio/test-ulc-vsnprintf1.c
-test_ulc_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_ulc_vsnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 EXTRA_DIST += unistdio/test-ulc-vsnprintf1.c unistdio/test-ulc-printf1.h macros.h
 
 ## end   gnulib module unistdio/ulc-vsnprintf-tests
@@ -3117,7 +3904,7 @@ EXTRA_DIST += unistdio/test-ulc-vsnprintf1.c unistdio/test-ulc-printf1.h macros.
 TESTS += test-ulc-vsprintf1
 check_PROGRAMS += test-ulc-vsprintf1
 test_ulc_vsprintf1_SOURCES = unistdio/test-ulc-vsprintf1.c
-test_ulc_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_ulc_vsprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 EXTRA_DIST += unistdio/test-ulc-vsprintf1.c unistdio/test-ulc-printf1.h macros.h
 
 ## end   gnulib module unistdio/ulc-vsprintf-tests
@@ -3127,6 +3914,7 @@ EXTRA_DIST += unistdio/test-ulc-vsprintf1.c unistdio/test-ulc-printf1.h macros.h
 TESTS += test-u16-check
 check_PROGRAMS += test-u16-check
 test_u16_check_SOURCES = unistr/test-u16-check.c
+test_u16_check_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-check.c macros.h
 
 ## end   gnulib module unistr/u16-check-tests
@@ -3136,6 +3924,7 @@ EXTRA_DIST += unistr/test-u16-check.c macros.h
 TESTS += test-u16-chr
 check_PROGRAMS += test-u16-chr
 test_u16_chr_SOURCES = unistr/test-u16-chr.c
+test_u16_chr_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-chr.c unistr/test-chr.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u16-chr-tests
@@ -3145,6 +3934,7 @@ EXTRA_DIST += unistr/test-u16-chr.c unistr/test-chr.h zerosize-ptr.h macros.h
 TESTS += test-u16-cmp
 check_PROGRAMS += test-u16-cmp
 test_u16_cmp_SOURCES = unistr/test-u16-cmp.c
+test_u16_cmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-cmp.c unistr/test-cmp.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u16-cmp-tests
@@ -3154,6 +3944,7 @@ EXTRA_DIST += unistr/test-u16-cmp.c unistr/test-cmp.h zerosize-ptr.h macros.h
 TESTS += test-u16-cmp2
 check_PROGRAMS += test-u16-cmp2
 test_u16_cmp2_SOURCES = unistr/test-u16-cmp2.c
+test_u16_cmp2_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-cmp2.c unistr/test-cmp2.h macros.h
 
 ## end   gnulib module unistr/u16-cmp2-tests
@@ -3163,6 +3954,7 @@ EXTRA_DIST += unistr/test-u16-cmp2.c unistr/test-cmp2.h macros.h
 TESTS += test-u16-cpy-alloc
 check_PROGRAMS += test-u16-cpy-alloc
 test_u16_cpy_alloc_SOURCES = unistr/test-u16-cpy-alloc.c
+test_u16_cpy_alloc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-cpy-alloc.c unistr/test-cpy-alloc.h macros.h
 
 ## end   gnulib module unistr/u16-cpy-alloc-tests
@@ -3172,6 +3964,7 @@ EXTRA_DIST += unistr/test-u16-cpy-alloc.c unistr/test-cpy-alloc.h macros.h
 TESTS += test-u16-cpy
 check_PROGRAMS += test-u16-cpy
 test_u16_cpy_SOURCES = unistr/test-u16-cpy.c
+test_u16_cpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-cpy.c unistr/test-cpy.h macros.h
 
 ## end   gnulib module unistr/u16-cpy-tests
@@ -3181,6 +3974,7 @@ EXTRA_DIST += unistr/test-u16-cpy.c unistr/test-cpy.h macros.h
 TESTS += test-u16-mblen
 check_PROGRAMS += test-u16-mblen
 test_u16_mblen_SOURCES = unistr/test-u16-mblen.c
+test_u16_mblen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-mblen.c macros.h
 
 ## end   gnulib module unistr/u16-mblen-tests
@@ -3190,6 +3984,7 @@ EXTRA_DIST += unistr/test-u16-mblen.c macros.h
 TESTS += test-u16-mbsnlen
 check_PROGRAMS += test-u16-mbsnlen
 test_u16_mbsnlen_SOURCES = unistr/test-u16-mbsnlen.c
+test_u16_mbsnlen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-mbsnlen.c macros.h
 
 ## end   gnulib module unistr/u16-mbsnlen-tests
@@ -3199,6 +3994,7 @@ EXTRA_DIST += unistr/test-u16-mbsnlen.c macros.h
 TESTS += test-u16-mbtouc
 check_PROGRAMS += test-u16-mbtouc
 test_u16_mbtouc_SOURCES = unistr/test-u16-mbtouc.c
+test_u16_mbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-mbtouc.c unistr/test-u16-mbtouc.h macros.h
 
 ## end   gnulib module unistr/u16-mbtouc-tests
@@ -3208,6 +4004,7 @@ EXTRA_DIST += unistr/test-u16-mbtouc.c unistr/test-u16-mbtouc.h macros.h
 TESTS += test-u16-mbtouc-unsafe
 check_PROGRAMS += test-u16-mbtouc-unsafe
 test_u16_mbtouc_unsafe_SOURCES = unistr/test-u16-mbtouc-unsafe.c
+test_u16_mbtouc_unsafe_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-mbtouc-unsafe.c unistr/test-u16-mbtouc.h macros.h
 
 ## end   gnulib module unistr/u16-mbtouc-unsafe-tests
@@ -3217,6 +4014,7 @@ EXTRA_DIST += unistr/test-u16-mbtouc-unsafe.c unistr/test-u16-mbtouc.h macros.h
 TESTS += test-u16-mbtoucr
 check_PROGRAMS += test-u16-mbtoucr
 test_u16_mbtoucr_SOURCES = unistr/test-u16-mbtoucr.c
+test_u16_mbtoucr_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-mbtoucr.c macros.h
 
 ## end   gnulib module unistr/u16-mbtoucr-tests
@@ -3226,6 +4024,7 @@ EXTRA_DIST += unistr/test-u16-mbtoucr.c macros.h
 TESTS += test-u16-move
 check_PROGRAMS += test-u16-move
 test_u16_move_SOURCES = unistr/test-u16-move.c
+test_u16_move_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-move.c unistr/test-move.h macros.h
 
 ## end   gnulib module unistr/u16-move-tests
@@ -3235,6 +4034,7 @@ EXTRA_DIST += unistr/test-u16-move.c unistr/test-move.h macros.h
 TESTS += test-u16-next
 check_PROGRAMS += test-u16-next
 test_u16_next_SOURCES = unistr/test-u16-next.c
+test_u16_next_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-next.c macros.h
 
 ## end   gnulib module unistr/u16-next-tests
@@ -3244,6 +4044,7 @@ EXTRA_DIST += unistr/test-u16-next.c macros.h
 TESTS += test-u16-prev
 check_PROGRAMS += test-u16-prev
 test_u16_prev_SOURCES = unistr/test-u16-prev.c
+test_u16_prev_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-prev.c macros.h
 
 ## end   gnulib module unistr/u16-prev-tests
@@ -3253,6 +4054,7 @@ EXTRA_DIST += unistr/test-u16-prev.c macros.h
 TESTS += test-u16-set
 check_PROGRAMS += test-u16-set
 test_u16_set_SOURCES = unistr/test-u16-set.c
+test_u16_set_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-set.c unistr/test-set.h macros.h
 
 ## end   gnulib module unistr/u16-set-tests
@@ -3262,6 +4064,7 @@ EXTRA_DIST += unistr/test-u16-set.c unistr/test-set.h macros.h
 TESTS += test-u16-stpcpy
 check_PROGRAMS += test-u16-stpcpy
 test_u16_stpcpy_SOURCES = unistr/test-u16-stpcpy.c
+test_u16_stpcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-stpcpy.c unistr/test-stpcpy.h macros.h
 
 ## end   gnulib module unistr/u16-stpcpy-tests
@@ -3271,6 +4074,7 @@ EXTRA_DIST += unistr/test-u16-stpcpy.c unistr/test-stpcpy.h macros.h
 TESTS += test-u16-stpncpy
 check_PROGRAMS += test-u16-stpncpy
 test_u16_stpncpy_SOURCES = unistr/test-u16-stpncpy.c
+test_u16_stpncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-stpncpy.c unistr/test-stpncpy.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u16-stpncpy-tests
@@ -3280,15 +4084,27 @@ EXTRA_DIST += unistr/test-u16-stpncpy.c unistr/test-stpncpy.h zerosize-ptr.h mac
 TESTS += test-u16-strcat
 check_PROGRAMS += test-u16-strcat
 test_u16_strcat_SOURCES = unistr/test-u16-strcat.c
+test_u16_strcat_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-strcat.c unistr/test-strcat.h macros.h
 
 ## end   gnulib module unistr/u16-strcat-tests
 
+## begin gnulib module unistr/u16-strchr-tests
+
+TESTS += test-u16-strchr
+check_PROGRAMS += test-u16-strchr
+test_u16_strchr_SOURCES = unistr/test-u16-strchr.c
+test_u16_strchr_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unistr/test-u16-strchr.c unistr/test-strchr.h zerosize-ptr.h macros.h
+
+## end   gnulib module unistr/u16-strchr-tests
+
 ## begin gnulib module unistr/u16-strcmp-tests
 
 TESTS += test-u16-strcmp
 check_PROGRAMS += test-u16-strcmp
 test_u16_strcmp_SOURCES = unistr/test-u16-strcmp.c
+test_u16_strcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-strcmp.c unistr/test-u16-strcmp.h unistr/test-strcmp.h macros.h
 
 ## end   gnulib module unistr/u16-strcmp-tests
@@ -3298,7 +4114,7 @@ EXTRA_DIST += unistr/test-u16-strcmp.c unistr/test-u16-strcmp.h unistr/test-strc
 TESTS += test-u16-strcoll
 check_PROGRAMS += test-u16-strcoll
 test_u16_strcoll_SOURCES = unistr/test-u16-strcoll.c
-test_u16_strcoll_LDADD = $(LDADD) @LIBICONV@
+test_u16_strcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistr/test-u16-strcoll.c unistr/test-u16-strcmp.h unistr/test-strcmp.h macros.h
 
 ## end   gnulib module unistr/u16-strcoll-tests
@@ -3308,6 +4124,7 @@ EXTRA_DIST += unistr/test-u16-strcoll.c unistr/test-u16-strcmp.h unistr/test-str
 TESTS += test-u16-strcpy
 check_PROGRAMS += test-u16-strcpy
 test_u16_strcpy_SOURCES = unistr/test-u16-strcpy.c
+test_u16_strcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-strcpy.c unistr/test-strcpy.h macros.h
 
 ## end   gnulib module unistr/u16-strcpy-tests
@@ -3317,6 +4134,7 @@ EXTRA_DIST += unistr/test-u16-strcpy.c unistr/test-strcpy.h macros.h
 TESTS += test-u16-strdup
 check_PROGRAMS += test-u16-strdup
 test_u16_strdup_SOURCES = unistr/test-u16-strdup.c
+test_u16_strdup_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-strdup.c unistr/test-strdup.h macros.h
 
 ## end   gnulib module unistr/u16-strdup-tests
@@ -3326,6 +4144,7 @@ EXTRA_DIST += unistr/test-u16-strdup.c unistr/test-strdup.h macros.h
 TESTS += test-u16-strlen
 check_PROGRAMS += test-u16-strlen
 test_u16_strlen_SOURCES = unistr/test-u16-strlen.c
+test_u16_strlen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-strlen.c macros.h
 
 ## end   gnulib module unistr/u16-strlen-tests
@@ -3335,6 +4154,7 @@ EXTRA_DIST += unistr/test-u16-strlen.c macros.h
 TESTS += test-u16-strmblen
 check_PROGRAMS += test-u16-strmblen
 test_u16_strmblen_SOURCES = unistr/test-u16-strmblen.c
+test_u16_strmblen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-strmblen.c macros.h
 
 ## end   gnulib module unistr/u16-strmblen-tests
@@ -3344,6 +4164,7 @@ EXTRA_DIST += unistr/test-u16-strmblen.c macros.h
 TESTS += test-u16-strmbtouc
 check_PROGRAMS += test-u16-strmbtouc
 test_u16_strmbtouc_SOURCES = unistr/test-u16-strmbtouc.c
+test_u16_strmbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-strmbtouc.c macros.h
 
 ## end   gnulib module unistr/u16-strmbtouc-tests
@@ -3353,6 +4174,7 @@ EXTRA_DIST += unistr/test-u16-strmbtouc.c macros.h
 TESTS += test-u16-strncat
 check_PROGRAMS += test-u16-strncat
 test_u16_strncat_SOURCES = unistr/test-u16-strncat.c
+test_u16_strncat_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-strncat.c unistr/test-strncat.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u16-strncat-tests
@@ -3362,6 +4184,7 @@ EXTRA_DIST += unistr/test-u16-strncat.c unistr/test-strncat.h zerosize-ptr.h mac
 TESTS += test-u16-strncmp
 check_PROGRAMS += test-u16-strncmp
 test_u16_strncmp_SOURCES = unistr/test-u16-strncmp.c
+test_u16_strncmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-strncmp.c unistr/test-strncmp.h macros.h
 
 ## end   gnulib module unistr/u16-strncmp-tests
@@ -3371,6 +4194,7 @@ EXTRA_DIST += unistr/test-u16-strncmp.c unistr/test-strncmp.h macros.h
 TESTS += test-u16-strncpy
 check_PROGRAMS += test-u16-strncpy
 test_u16_strncpy_SOURCES = unistr/test-u16-strncpy.c
+test_u16_strncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-strncpy.c unistr/test-strncpy.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u16-strncpy-tests
@@ -3380,15 +4204,27 @@ EXTRA_DIST += unistr/test-u16-strncpy.c unistr/test-strncpy.h zerosize-ptr.h mac
 TESTS += test-u16-strnlen
 check_PROGRAMS += test-u16-strnlen
 test_u16_strnlen_SOURCES = unistr/test-u16-strnlen.c
+test_u16_strnlen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-strnlen.c unistr/test-strnlen.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u16-strnlen-tests
 
+## begin gnulib module unistr/u16-strstr-tests
+
+TESTS += test-u16-strstr
+check_PROGRAMS += test-u16-strstr
+test_u16_strstr_SOURCES = unistr/test-u16-strstr.c
+test_u16_strstr_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unistr/test-u16-strstr.c unistr/test-u-strstr.h macros.h
+
+## end   gnulib module unistr/u16-strstr-tests
+
 ## begin gnulib module unistr/u16-to-u32-tests
 
 TESTS += test-u16-to-u32
 check_PROGRAMS += test-u16-to-u32
 test_u16_to_u32_SOURCES = unistr/test-u16-to-u32.c
+test_u16_to_u32_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-to-u32.c macros.h
 
 ## end   gnulib module unistr/u16-to-u32-tests
@@ -3398,6 +4234,7 @@ EXTRA_DIST += unistr/test-u16-to-u32.c macros.h
 TESTS += test-u16-to-u8
 check_PROGRAMS += test-u16-to-u8
 test_u16_to_u8_SOURCES = unistr/test-u16-to-u8.c
+test_u16_to_u8_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-to-u8.c macros.h
 
 ## end   gnulib module unistr/u16-to-u8-tests
@@ -3407,6 +4244,7 @@ EXTRA_DIST += unistr/test-u16-to-u8.c macros.h
 TESTS += test-u16-uctomb
 check_PROGRAMS += test-u16-uctomb
 test_u16_uctomb_SOURCES = unistr/test-u16-uctomb.c
+test_u16_uctomb_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u16-uctomb.c macros.h
 
 ## end   gnulib module unistr/u16-uctomb-tests
@@ -3416,6 +4254,7 @@ EXTRA_DIST += unistr/test-u16-uctomb.c macros.h
 TESTS += test-u32-check
 check_PROGRAMS += test-u32-check
 test_u32_check_SOURCES = unistr/test-u32-check.c
+test_u32_check_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-check.c macros.h
 
 ## end   gnulib module unistr/u32-check-tests
@@ -3425,6 +4264,7 @@ EXTRA_DIST += unistr/test-u32-check.c macros.h
 TESTS += test-u32-chr
 check_PROGRAMS += test-u32-chr
 test_u32_chr_SOURCES = unistr/test-u32-chr.c
+test_u32_chr_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-chr.c unistr/test-chr.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u32-chr-tests
@@ -3434,6 +4274,7 @@ EXTRA_DIST += unistr/test-u32-chr.c unistr/test-chr.h zerosize-ptr.h macros.h
 TESTS += test-u32-cmp
 check_PROGRAMS += test-u32-cmp
 test_u32_cmp_SOURCES = unistr/test-u32-cmp.c
+test_u32_cmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-cmp.c unistr/test-cmp.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u32-cmp-tests
@@ -3443,6 +4284,7 @@ EXTRA_DIST += unistr/test-u32-cmp.c unistr/test-cmp.h zerosize-ptr.h macros.h
 TESTS += test-u32-cmp2
 check_PROGRAMS += test-u32-cmp2
 test_u32_cmp2_SOURCES = unistr/test-u32-cmp2.c
+test_u32_cmp2_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-cmp2.c unistr/test-cmp2.h macros.h
 
 ## end   gnulib module unistr/u32-cmp2-tests
@@ -3452,6 +4294,7 @@ EXTRA_DIST += unistr/test-u32-cmp2.c unistr/test-cmp2.h macros.h
 TESTS += test-u32-cpy-alloc
 check_PROGRAMS += test-u32-cpy-alloc
 test_u32_cpy_alloc_SOURCES = unistr/test-u32-cpy-alloc.c
+test_u32_cpy_alloc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-cpy-alloc.c unistr/test-cpy-alloc.h macros.h
 
 ## end   gnulib module unistr/u32-cpy-alloc-tests
@@ -3461,6 +4304,7 @@ EXTRA_DIST += unistr/test-u32-cpy-alloc.c unistr/test-cpy-alloc.h macros.h
 TESTS += test-u32-cpy
 check_PROGRAMS += test-u32-cpy
 test_u32_cpy_SOURCES = unistr/test-u32-cpy.c
+test_u32_cpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-cpy.c unistr/test-cpy.h macros.h
 
 ## end   gnulib module unistr/u32-cpy-tests
@@ -3470,6 +4314,7 @@ EXTRA_DIST += unistr/test-u32-cpy.c unistr/test-cpy.h macros.h
 TESTS += test-u32-mblen
 check_PROGRAMS += test-u32-mblen
 test_u32_mblen_SOURCES = unistr/test-u32-mblen.c
+test_u32_mblen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-mblen.c macros.h
 
 ## end   gnulib module unistr/u32-mblen-tests
@@ -3479,6 +4324,7 @@ EXTRA_DIST += unistr/test-u32-mblen.c macros.h
 TESTS += test-u32-mbsnlen
 check_PROGRAMS += test-u32-mbsnlen
 test_u32_mbsnlen_SOURCES = unistr/test-u32-mbsnlen.c
+test_u32_mbsnlen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-mbsnlen.c macros.h
 
 ## end   gnulib module unistr/u32-mbsnlen-tests
@@ -3488,6 +4334,7 @@ EXTRA_DIST += unistr/test-u32-mbsnlen.c macros.h
 TESTS += test-u32-mbtouc
 check_PROGRAMS += test-u32-mbtouc
 test_u32_mbtouc_SOURCES = unistr/test-u32-mbtouc.c
+test_u32_mbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-mbtouc.c unistr/test-u32-mbtouc.h macros.h
 
 ## end   gnulib module unistr/u32-mbtouc-tests
@@ -3497,6 +4344,7 @@ EXTRA_DIST += unistr/test-u32-mbtouc.c unistr/test-u32-mbtouc.h macros.h
 TESTS += test-u32-mbtouc-unsafe
 check_PROGRAMS += test-u32-mbtouc-unsafe
 test_u32_mbtouc_unsafe_SOURCES = unistr/test-u32-mbtouc-unsafe.c
+test_u32_mbtouc_unsafe_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-mbtouc-unsafe.c unistr/test-u32-mbtouc.h macros.h
 
 ## end   gnulib module unistr/u32-mbtouc-unsafe-tests
@@ -3506,6 +4354,7 @@ EXTRA_DIST += unistr/test-u32-mbtouc-unsafe.c unistr/test-u32-mbtouc.h macros.h
 TESTS += test-u32-mbtoucr
 check_PROGRAMS += test-u32-mbtoucr
 test_u32_mbtoucr_SOURCES = unistr/test-u32-mbtoucr.c
+test_u32_mbtoucr_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-mbtoucr.c macros.h
 
 ## end   gnulib module unistr/u32-mbtoucr-tests
@@ -3515,6 +4364,7 @@ EXTRA_DIST += unistr/test-u32-mbtoucr.c macros.h
 TESTS += test-u32-move
 check_PROGRAMS += test-u32-move
 test_u32_move_SOURCES = unistr/test-u32-move.c
+test_u32_move_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-move.c unistr/test-move.h macros.h
 
 ## end   gnulib module unistr/u32-move-tests
@@ -3524,6 +4374,7 @@ EXTRA_DIST += unistr/test-u32-move.c unistr/test-move.h macros.h
 TESTS += test-u32-next
 check_PROGRAMS += test-u32-next
 test_u32_next_SOURCES = unistr/test-u32-next.c
+test_u32_next_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-next.c macros.h
 
 ## end   gnulib module unistr/u32-next-tests
@@ -3533,6 +4384,7 @@ EXTRA_DIST += unistr/test-u32-next.c macros.h
 TESTS += test-u32-prev
 check_PROGRAMS += test-u32-prev
 test_u32_prev_SOURCES = unistr/test-u32-prev.c
+test_u32_prev_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-prev.c macros.h
 
 ## end   gnulib module unistr/u32-prev-tests
@@ -3542,6 +4394,7 @@ EXTRA_DIST += unistr/test-u32-prev.c macros.h
 TESTS += test-u32-set
 check_PROGRAMS += test-u32-set
 test_u32_set_SOURCES = unistr/test-u32-set.c
+test_u32_set_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-set.c unistr/test-set.h macros.h
 
 ## end   gnulib module unistr/u32-set-tests
@@ -3551,6 +4404,7 @@ EXTRA_DIST += unistr/test-u32-set.c unistr/test-set.h macros.h
 TESTS += test-u32-stpcpy
 check_PROGRAMS += test-u32-stpcpy
 test_u32_stpcpy_SOURCES = unistr/test-u32-stpcpy.c
+test_u32_stpcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-stpcpy.c unistr/test-stpcpy.h macros.h
 
 ## end   gnulib module unistr/u32-stpcpy-tests
@@ -3560,6 +4414,7 @@ EXTRA_DIST += unistr/test-u32-stpcpy.c unistr/test-stpcpy.h macros.h
 TESTS += test-u32-stpncpy
 check_PROGRAMS += test-u32-stpncpy
 test_u32_stpncpy_SOURCES = unistr/test-u32-stpncpy.c
+test_u32_stpncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-stpncpy.c unistr/test-stpncpy.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u32-stpncpy-tests
@@ -3569,15 +4424,27 @@ EXTRA_DIST += unistr/test-u32-stpncpy.c unistr/test-stpncpy.h zerosize-ptr.h mac
 TESTS += test-u32-strcat
 check_PROGRAMS += test-u32-strcat
 test_u32_strcat_SOURCES = unistr/test-u32-strcat.c
+test_u32_strcat_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-strcat.c unistr/test-strcat.h macros.h
 
 ## end   gnulib module unistr/u32-strcat-tests
 
+## begin gnulib module unistr/u32-strchr-tests
+
+TESTS += test-u32-strchr
+check_PROGRAMS += test-u32-strchr
+test_u32_strchr_SOURCES = unistr/test-u32-strchr.c
+test_u32_strchr_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unistr/test-u32-strchr.c unistr/test-strchr.h zerosize-ptr.h macros.h
+
+## end   gnulib module unistr/u32-strchr-tests
+
 ## begin gnulib module unistr/u32-strcmp-tests
 
 TESTS += test-u32-strcmp
 check_PROGRAMS += test-u32-strcmp
 test_u32_strcmp_SOURCES = unistr/test-u32-strcmp.c
+test_u32_strcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-strcmp.c unistr/test-u32-strcmp.h unistr/test-strcmp.h macros.h
 
 ## end   gnulib module unistr/u32-strcmp-tests
@@ -3587,7 +4454,7 @@ EXTRA_DIST += unistr/test-u32-strcmp.c unistr/test-u32-strcmp.h unistr/test-strc
 TESTS += test-u32-strcoll
 check_PROGRAMS += test-u32-strcoll
 test_u32_strcoll_SOURCES = unistr/test-u32-strcoll.c
-test_u32_strcoll_LDADD = $(LDADD) @LIBICONV@
+test_u32_strcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistr/test-u32-strcoll.c unistr/test-u32-strcmp.h unistr/test-strcmp.h macros.h
 
 ## end   gnulib module unistr/u32-strcoll-tests
@@ -3597,6 +4464,7 @@ EXTRA_DIST += unistr/test-u32-strcoll.c unistr/test-u32-strcmp.h unistr/test-str
 TESTS += test-u32-strcpy
 check_PROGRAMS += test-u32-strcpy
 test_u32_strcpy_SOURCES = unistr/test-u32-strcpy.c
+test_u32_strcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-strcpy.c unistr/test-strcpy.h macros.h
 
 ## end   gnulib module unistr/u32-strcpy-tests
@@ -3606,6 +4474,7 @@ EXTRA_DIST += unistr/test-u32-strcpy.c unistr/test-strcpy.h macros.h
 TESTS += test-u32-strdup
 check_PROGRAMS += test-u32-strdup
 test_u32_strdup_SOURCES = unistr/test-u32-strdup.c
+test_u32_strdup_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-strdup.c unistr/test-strdup.h macros.h
 
 ## end   gnulib module unistr/u32-strdup-tests
@@ -3615,6 +4484,7 @@ EXTRA_DIST += unistr/test-u32-strdup.c unistr/test-strdup.h macros.h
 TESTS += test-u32-strlen
 check_PROGRAMS += test-u32-strlen
 test_u32_strlen_SOURCES = unistr/test-u32-strlen.c
+test_u32_strlen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-strlen.c macros.h
 
 ## end   gnulib module unistr/u32-strlen-tests
@@ -3624,6 +4494,7 @@ EXTRA_DIST += unistr/test-u32-strlen.c macros.h
 TESTS += test-u32-strmblen
 check_PROGRAMS += test-u32-strmblen
 test_u32_strmblen_SOURCES = unistr/test-u32-strmblen.c
+test_u32_strmblen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-strmblen.c macros.h
 
 ## end   gnulib module unistr/u32-strmblen-tests
@@ -3633,6 +4504,7 @@ EXTRA_DIST += unistr/test-u32-strmblen.c macros.h
 TESTS += test-u32-strmbtouc
 check_PROGRAMS += test-u32-strmbtouc
 test_u32_strmbtouc_SOURCES = unistr/test-u32-strmbtouc.c
+test_u32_strmbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-strmbtouc.c macros.h
 
 ## end   gnulib module unistr/u32-strmbtouc-tests
@@ -3642,6 +4514,7 @@ EXTRA_DIST += unistr/test-u32-strmbtouc.c macros.h
 TESTS += test-u32-strncat
 check_PROGRAMS += test-u32-strncat
 test_u32_strncat_SOURCES = unistr/test-u32-strncat.c
+test_u32_strncat_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-strncat.c unistr/test-strncat.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u32-strncat-tests
@@ -3651,6 +4524,7 @@ EXTRA_DIST += unistr/test-u32-strncat.c unistr/test-strncat.h zerosize-ptr.h mac
 TESTS += test-u32-strncmp
 check_PROGRAMS += test-u32-strncmp
 test_u32_strncmp_SOURCES = unistr/test-u32-strncmp.c
+test_u32_strncmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-strncmp.c unistr/test-strncmp.h macros.h
 
 ## end   gnulib module unistr/u32-strncmp-tests
@@ -3660,6 +4534,7 @@ EXTRA_DIST += unistr/test-u32-strncmp.c unistr/test-strncmp.h macros.h
 TESTS += test-u32-strncpy
 check_PROGRAMS += test-u32-strncpy
 test_u32_strncpy_SOURCES = unistr/test-u32-strncpy.c
+test_u32_strncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-strncpy.c unistr/test-strncpy.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u32-strncpy-tests
@@ -3669,15 +4544,27 @@ EXTRA_DIST += unistr/test-u32-strncpy.c unistr/test-strncpy.h zerosize-ptr.h mac
 TESTS += test-u32-strnlen
 check_PROGRAMS += test-u32-strnlen
 test_u32_strnlen_SOURCES = unistr/test-u32-strnlen.c
+test_u32_strnlen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-strnlen.c unistr/test-strnlen.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u32-strnlen-tests
 
+## begin gnulib module unistr/u32-strstr-tests
+
+TESTS += test-u32-strstr
+check_PROGRAMS += test-u32-strstr
+test_u32_strstr_SOURCES = unistr/test-u32-strstr.c
+test_u32_strstr_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unistr/test-u32-strstr.c unistr/test-u-strstr.h macros.h
+
+## end   gnulib module unistr/u32-strstr-tests
+
 ## begin gnulib module unistr/u32-to-u16-tests
 
 TESTS += test-u32-to-u16
 check_PROGRAMS += test-u32-to-u16
 test_u32_to_u16_SOURCES = unistr/test-u32-to-u16.c
+test_u32_to_u16_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-to-u16.c macros.h
 
 ## end   gnulib module unistr/u32-to-u16-tests
@@ -3687,6 +4574,7 @@ EXTRA_DIST += unistr/test-u32-to-u16.c macros.h
 TESTS += test-u32-to-u8
 check_PROGRAMS += test-u32-to-u8
 test_u32_to_u8_SOURCES = unistr/test-u32-to-u8.c
+test_u32_to_u8_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-to-u8.c macros.h
 
 ## end   gnulib module unistr/u32-to-u8-tests
@@ -3696,6 +4584,7 @@ EXTRA_DIST += unistr/test-u32-to-u8.c macros.h
 TESTS += test-u32-uctomb
 check_PROGRAMS += test-u32-uctomb
 test_u32_uctomb_SOURCES = unistr/test-u32-uctomb.c
+test_u32_uctomb_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u32-uctomb.c macros.h
 
 ## end   gnulib module unistr/u32-uctomb-tests
@@ -3705,6 +4594,7 @@ EXTRA_DIST += unistr/test-u32-uctomb.c macros.h
 TESTS += test-u8-check
 check_PROGRAMS += test-u8-check
 test_u8_check_SOURCES = unistr/test-u8-check.c
+test_u8_check_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-check.c macros.h
 
 ## end   gnulib module unistr/u8-check-tests
@@ -3714,6 +4604,7 @@ EXTRA_DIST += unistr/test-u8-check.c macros.h
 TESTS += test-u8-chr
 check_PROGRAMS += test-u8-chr
 test_u8_chr_SOURCES = unistr/test-u8-chr.c
+test_u8_chr_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-chr.c unistr/test-chr.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u8-chr-tests
@@ -3723,6 +4614,7 @@ EXTRA_DIST += unistr/test-u8-chr.c unistr/test-chr.h zerosize-ptr.h macros.h
 TESTS += test-u8-cmp
 check_PROGRAMS += test-u8-cmp
 test_u8_cmp_SOURCES = unistr/test-u8-cmp.c
+test_u8_cmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-cmp.c unistr/test-cmp.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u8-cmp-tests
@@ -3732,6 +4624,7 @@ EXTRA_DIST += unistr/test-u8-cmp.c unistr/test-cmp.h zerosize-ptr.h macros.h
 TESTS += test-u8-cmp2
 check_PROGRAMS += test-u8-cmp2
 test_u8_cmp2_SOURCES = unistr/test-u8-cmp2.c
+test_u8_cmp2_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-cmp2.c unistr/test-cmp2.h macros.h
 
 ## end   gnulib module unistr/u8-cmp2-tests
@@ -3741,6 +4634,7 @@ EXTRA_DIST += unistr/test-u8-cmp2.c unistr/test-cmp2.h macros.h
 TESTS += test-u8-cpy-alloc
 check_PROGRAMS += test-u8-cpy-alloc
 test_u8_cpy_alloc_SOURCES = unistr/test-u8-cpy-alloc.c
+test_u8_cpy_alloc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-cpy-alloc.c unistr/test-cpy-alloc.h macros.h
 
 ## end   gnulib module unistr/u8-cpy-alloc-tests
@@ -3750,6 +4644,7 @@ EXTRA_DIST += unistr/test-u8-cpy-alloc.c unistr/test-cpy-alloc.h macros.h
 TESTS += test-u8-cpy
 check_PROGRAMS += test-u8-cpy
 test_u8_cpy_SOURCES = unistr/test-u8-cpy.c
+test_u8_cpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-cpy.c unistr/test-cpy.h macros.h
 
 ## end   gnulib module unistr/u8-cpy-tests
@@ -3759,6 +4654,7 @@ EXTRA_DIST += unistr/test-u8-cpy.c unistr/test-cpy.h macros.h
 TESTS += test-u8-mblen
 check_PROGRAMS += test-u8-mblen
 test_u8_mblen_SOURCES = unistr/test-u8-mblen.c
+test_u8_mblen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-mblen.c macros.h
 
 ## end   gnulib module unistr/u8-mblen-tests
@@ -3768,6 +4664,7 @@ EXTRA_DIST += unistr/test-u8-mblen.c macros.h
 TESTS += test-u8-mbsnlen
 check_PROGRAMS += test-u8-mbsnlen
 test_u8_mbsnlen_SOURCES = unistr/test-u8-mbsnlen.c
+test_u8_mbsnlen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-mbsnlen.c macros.h
 
 ## end   gnulib module unistr/u8-mbsnlen-tests
@@ -3777,6 +4674,7 @@ EXTRA_DIST += unistr/test-u8-mbsnlen.c macros.h
 TESTS += test-u8-mbtouc
 check_PROGRAMS += test-u8-mbtouc
 test_u8_mbtouc_SOURCES = unistr/test-u8-mbtouc.c
+test_u8_mbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-mbtouc.c unistr/test-u8-mbtouc.h macros.h
 
 ## end   gnulib module unistr/u8-mbtouc-tests
@@ -3786,6 +4684,7 @@ EXTRA_DIST += unistr/test-u8-mbtouc.c unistr/test-u8-mbtouc.h macros.h
 TESTS += test-u8-mbtouc-unsafe
 check_PROGRAMS += test-u8-mbtouc-unsafe
 test_u8_mbtouc_unsafe_SOURCES = unistr/test-u8-mbtouc-unsafe.c
+test_u8_mbtouc_unsafe_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-mbtouc-unsafe.c unistr/test-u8-mbtouc.h macros.h
 
 ## end   gnulib module unistr/u8-mbtouc-unsafe-tests
@@ -3795,6 +4694,7 @@ EXTRA_DIST += unistr/test-u8-mbtouc-unsafe.c unistr/test-u8-mbtouc.h macros.h
 TESTS += test-u8-mbtoucr
 check_PROGRAMS += test-u8-mbtoucr
 test_u8_mbtoucr_SOURCES = unistr/test-u8-mbtoucr.c
+test_u8_mbtoucr_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-mbtoucr.c macros.h
 
 ## end   gnulib module unistr/u8-mbtoucr-tests
@@ -3804,6 +4704,7 @@ EXTRA_DIST += unistr/test-u8-mbtoucr.c macros.h
 TESTS += test-u8-move
 check_PROGRAMS += test-u8-move
 test_u8_move_SOURCES = unistr/test-u8-move.c
+test_u8_move_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-move.c unistr/test-move.h macros.h
 
 ## end   gnulib module unistr/u8-move-tests
@@ -3813,6 +4714,7 @@ EXTRA_DIST += unistr/test-u8-move.c unistr/test-move.h macros.h
 TESTS += test-u8-next
 check_PROGRAMS += test-u8-next
 test_u8_next_SOURCES = unistr/test-u8-next.c
+test_u8_next_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-next.c macros.h
 
 ## end   gnulib module unistr/u8-next-tests
@@ -3822,6 +4724,7 @@ EXTRA_DIST += unistr/test-u8-next.c macros.h
 TESTS += test-u8-prev
 check_PROGRAMS += test-u8-prev
 test_u8_prev_SOURCES = unistr/test-u8-prev.c
+test_u8_prev_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-prev.c macros.h
 
 ## end   gnulib module unistr/u8-prev-tests
@@ -3831,6 +4734,7 @@ EXTRA_DIST += unistr/test-u8-prev.c macros.h
 TESTS += test-u8-set
 check_PROGRAMS += test-u8-set
 test_u8_set_SOURCES = unistr/test-u8-set.c
+test_u8_set_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-set.c unistr/test-set.h macros.h
 
 ## end   gnulib module unistr/u8-set-tests
@@ -3840,6 +4744,7 @@ EXTRA_DIST += unistr/test-u8-set.c unistr/test-set.h macros.h
 TESTS += test-u8-stpcpy
 check_PROGRAMS += test-u8-stpcpy
 test_u8_stpcpy_SOURCES = unistr/test-u8-stpcpy.c
+test_u8_stpcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-stpcpy.c unistr/test-stpcpy.h macros.h
 
 ## end   gnulib module unistr/u8-stpcpy-tests
@@ -3849,6 +4754,7 @@ EXTRA_DIST += unistr/test-u8-stpcpy.c unistr/test-stpcpy.h macros.h
 TESTS += test-u8-stpncpy
 check_PROGRAMS += test-u8-stpncpy
 test_u8_stpncpy_SOURCES = unistr/test-u8-stpncpy.c
+test_u8_stpncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-stpncpy.c unistr/test-stpncpy.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u8-stpncpy-tests
@@ -3858,15 +4764,27 @@ EXTRA_DIST += unistr/test-u8-stpncpy.c unistr/test-stpncpy.h zerosize-ptr.h macr
 TESTS += test-u8-strcat
 check_PROGRAMS += test-u8-strcat
 test_u8_strcat_SOURCES = unistr/test-u8-strcat.c
+test_u8_strcat_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-strcat.c unistr/test-strcat.h macros.h
 
 ## end   gnulib module unistr/u8-strcat-tests
 
+## begin gnulib module unistr/u8-strchr-tests
+
+TESTS += test-u8-strchr
+check_PROGRAMS += test-u8-strchr
+test_u8_strchr_SOURCES = unistr/test-u8-strchr.c
+test_u8_strchr_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unistr/test-u8-strchr.c unistr/test-strchr.h zerosize-ptr.h macros.h
+
+## end   gnulib module unistr/u8-strchr-tests
+
 ## begin gnulib module unistr/u8-strcmp-tests
 
 TESTS += test-u8-strcmp
 check_PROGRAMS += test-u8-strcmp
 test_u8_strcmp_SOURCES = unistr/test-u8-strcmp.c
+test_u8_strcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-strcmp.c unistr/test-u8-strcmp.h unistr/test-strcmp.h macros.h
 
 ## end   gnulib module unistr/u8-strcmp-tests
@@ -3876,7 +4794,7 @@ EXTRA_DIST += unistr/test-u8-strcmp.c unistr/test-u8-strcmp.h unistr/test-strcmp
 TESTS += test-u8-strcoll
 check_PROGRAMS += test-u8-strcoll
 test_u8_strcoll_SOURCES = unistr/test-u8-strcoll.c
-test_u8_strcoll_LDADD = $(LDADD) @LIBICONV@
+test_u8_strcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 EXTRA_DIST += unistr/test-u8-strcoll.c unistr/test-u8-strcmp.h unistr/test-strcmp.h macros.h
 
 ## end   gnulib module unistr/u8-strcoll-tests
@@ -3886,6 +4804,7 @@ EXTRA_DIST += unistr/test-u8-strcoll.c unistr/test-u8-strcmp.h unistr/test-strcm
 TESTS += test-u8-strcpy
 check_PROGRAMS += test-u8-strcpy
 test_u8_strcpy_SOURCES = unistr/test-u8-strcpy.c
+test_u8_strcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-strcpy.c unistr/test-strcpy.h macros.h
 
 ## end   gnulib module unistr/u8-strcpy-tests
@@ -3895,6 +4814,7 @@ EXTRA_DIST += unistr/test-u8-strcpy.c unistr/test-strcpy.h macros.h
 TESTS += test-u8-strdup
 check_PROGRAMS += test-u8-strdup
 test_u8_strdup_SOURCES = unistr/test-u8-strdup.c
+test_u8_strdup_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-strdup.c unistr/test-strdup.h macros.h
 
 ## end   gnulib module unistr/u8-strdup-tests
@@ -3904,6 +4824,7 @@ EXTRA_DIST += unistr/test-u8-strdup.c unistr/test-strdup.h macros.h
 TESTS += test-u8-strlen
 check_PROGRAMS += test-u8-strlen
 test_u8_strlen_SOURCES = unistr/test-u8-strlen.c
+test_u8_strlen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-strlen.c macros.h
 
 ## end   gnulib module unistr/u8-strlen-tests
@@ -3913,6 +4834,7 @@ EXTRA_DIST += unistr/test-u8-strlen.c macros.h
 TESTS += test-u8-strmblen
 check_PROGRAMS += test-u8-strmblen
 test_u8_strmblen_SOURCES = unistr/test-u8-strmblen.c
+test_u8_strmblen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-strmblen.c macros.h
 
 ## end   gnulib module unistr/u8-strmblen-tests
@@ -3922,6 +4844,7 @@ EXTRA_DIST += unistr/test-u8-strmblen.c macros.h
 TESTS += test-u8-strmbtouc
 check_PROGRAMS += test-u8-strmbtouc
 test_u8_strmbtouc_SOURCES = unistr/test-u8-strmbtouc.c
+test_u8_strmbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-strmbtouc.c macros.h
 
 ## end   gnulib module unistr/u8-strmbtouc-tests
@@ -3931,6 +4854,7 @@ EXTRA_DIST += unistr/test-u8-strmbtouc.c macros.h
 TESTS += test-u8-strncat
 check_PROGRAMS += test-u8-strncat
 test_u8_strncat_SOURCES = unistr/test-u8-strncat.c
+test_u8_strncat_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-strncat.c unistr/test-strncat.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u8-strncat-tests
@@ -3940,6 +4864,7 @@ EXTRA_DIST += unistr/test-u8-strncat.c unistr/test-strncat.h zerosize-ptr.h macr
 TESTS += test-u8-strncmp
 check_PROGRAMS += test-u8-strncmp
 test_u8_strncmp_SOURCES = unistr/test-u8-strncmp.c
+test_u8_strncmp_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-strncmp.c unistr/test-strncmp.h macros.h
 
 ## end   gnulib module unistr/u8-strncmp-tests
@@ -3949,6 +4874,7 @@ EXTRA_DIST += unistr/test-u8-strncmp.c unistr/test-strncmp.h macros.h
 TESTS += test-u8-strncpy
 check_PROGRAMS += test-u8-strncpy
 test_u8_strncpy_SOURCES = unistr/test-u8-strncpy.c
+test_u8_strncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-strncpy.c unistr/test-strncpy.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u8-strncpy-tests
@@ -3958,15 +4884,27 @@ EXTRA_DIST += unistr/test-u8-strncpy.c unistr/test-strncpy.h zerosize-ptr.h macr
 TESTS += test-u8-strnlen
 check_PROGRAMS += test-u8-strnlen
 test_u8_strnlen_SOURCES = unistr/test-u8-strnlen.c
+test_u8_strnlen_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-strnlen.c unistr/test-strnlen.h zerosize-ptr.h macros.h
 
 ## end   gnulib module unistr/u8-strnlen-tests
 
+## begin gnulib module unistr/u8-strstr-tests
+
+TESTS += test-u8-strstr
+check_PROGRAMS += test-u8-strstr
+test_u8_strstr_SOURCES = unistr/test-u8-strstr.c
+test_u8_strstr_LDADD = $(LDADD) $(LIBUNISTRING)
+EXTRA_DIST += unistr/test-u8-strstr.c unistr/test-u-strstr.h macros.h
+
+## end   gnulib module unistr/u8-strstr-tests
+
 ## begin gnulib module unistr/u8-to-u16-tests
 
 TESTS += test-u8-to-u16
 check_PROGRAMS += test-u8-to-u16
 test_u8_to_u16_SOURCES = unistr/test-u8-to-u16.c
+test_u8_to_u16_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-to-u16.c macros.h
 
 ## end   gnulib module unistr/u8-to-u16-tests
@@ -3976,6 +4914,7 @@ EXTRA_DIST += unistr/test-u8-to-u16.c macros.h
 TESTS += test-u8-to-u32
 check_PROGRAMS += test-u8-to-u32
 test_u8_to_u32_SOURCES = unistr/test-u8-to-u32.c
+test_u8_to_u32_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-to-u32.c macros.h
 
 ## end   gnulib module unistr/u8-to-u32-tests
@@ -3985,6 +4924,7 @@ EXTRA_DIST += unistr/test-u8-to-u32.c macros.h
 TESTS += test-u8-uctomb
 check_PROGRAMS += test-u8-uctomb
 test_u8_uctomb_SOURCES = unistr/test-u8-uctomb.c
+test_u8_uctomb_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += unistr/test-u8-uctomb.c macros.h
 
 ## end   gnulib module unistr/u8-uctomb-tests
@@ -3994,7 +4934,7 @@ EXTRA_DIST += unistr/test-u8-uctomb.c macros.h
 TESTS += test-u16-wordbreaks
 check_PROGRAMS += test-u16-wordbreaks
 test_u16_wordbreaks_SOURCES = uniwbrk/test-u16-wordbreaks.c
-
+test_u16_wordbreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uniwbrk/test-u16-wordbreaks.c macros.h
 
 ## end   gnulib module uniwbrk/u16-wordbreaks-tests
@@ -4004,7 +4944,7 @@ EXTRA_DIST += uniwbrk/test-u16-wordbreaks.c macros.h
 TESTS += test-u32-wordbreaks
 check_PROGRAMS += test-u32-wordbreaks
 test_u32_wordbreaks_SOURCES = uniwbrk/test-u32-wordbreaks.c
-
+test_u32_wordbreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uniwbrk/test-u32-wordbreaks.c macros.h
 
 ## end   gnulib module uniwbrk/u32-wordbreaks-tests
@@ -4014,7 +4954,7 @@ EXTRA_DIST += uniwbrk/test-u32-wordbreaks.c macros.h
 TESTS += test-u8-wordbreaks
 check_PROGRAMS += test-u8-wordbreaks
 test_u8_wordbreaks_SOURCES = uniwbrk/test-u8-wordbreaks.c
-
+test_u8_wordbreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uniwbrk/test-u8-wordbreaks.c macros.h
 
 ## end   gnulib module uniwbrk/u8-wordbreaks-tests
@@ -4025,7 +4965,7 @@ TESTS += uniwbrk/test-ulc-wordbreaks.sh
 TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@'
 check_PROGRAMS += test-ulc-wordbreaks
 test_ulc_wordbreaks_SOURCES = uniwbrk/test-ulc-wordbreaks.c
-test_ulc_wordbreaks_LDADD = $(LDADD) @LIBICONV@
+test_ulc_wordbreaks_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 
 EXTRA_DIST += uniwbrk/test-ulc-wordbreaks.sh uniwbrk/test-ulc-wordbreaks.c macros.h
 
@@ -4036,7 +4976,7 @@ EXTRA_DIST += uniwbrk/test-ulc-wordbreaks.sh uniwbrk/test-ulc-wordbreaks.c macro
 TESTS += test-u16-strwidth
 check_PROGRAMS += test-u16-strwidth
 test_u16_strwidth_SOURCES = uniwidth/test-u16-strwidth.c
-
+test_u16_strwidth_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uniwidth/test-u16-strwidth.c macros.h
 
 ## end   gnulib module uniwidth/u16-strwidth-tests
@@ -4046,7 +4986,7 @@ EXTRA_DIST += uniwidth/test-u16-strwidth.c macros.h
 TESTS += test-u16-width
 check_PROGRAMS += test-u16-width
 test_u16_width_SOURCES = uniwidth/test-u16-width.c
-
+test_u16_width_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uniwidth/test-u16-width.c macros.h
 
 ## end   gnulib module uniwidth/u16-width-tests
@@ -4056,7 +4996,7 @@ EXTRA_DIST += uniwidth/test-u16-width.c macros.h
 TESTS += test-u32-strwidth
 check_PROGRAMS += test-u32-strwidth
 test_u32_strwidth_SOURCES = uniwidth/test-u32-strwidth.c
-
+test_u32_strwidth_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uniwidth/test-u32-strwidth.c macros.h
 
 ## end   gnulib module uniwidth/u32-strwidth-tests
@@ -4066,7 +5006,7 @@ EXTRA_DIST += uniwidth/test-u32-strwidth.c macros.h
 TESTS += test-u32-width
 check_PROGRAMS += test-u32-width
 test_u32_width_SOURCES = uniwidth/test-u32-width.c
-
+test_u32_width_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uniwidth/test-u32-width.c macros.h
 
 ## end   gnulib module uniwidth/u32-width-tests
@@ -4076,7 +5016,7 @@ EXTRA_DIST += uniwidth/test-u32-width.c macros.h
 TESTS += test-u8-strwidth
 check_PROGRAMS += test-u8-strwidth
 test_u8_strwidth_SOURCES = uniwidth/test-u8-strwidth.c
-
+test_u8_strwidth_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uniwidth/test-u8-strwidth.c macros.h
 
 ## end   gnulib module uniwidth/u8-strwidth-tests
@@ -4086,7 +5026,7 @@ EXTRA_DIST += uniwidth/test-u8-strwidth.c macros.h
 TESTS += test-u8-width
 check_PROGRAMS += test-u8-width
 test_u8_width_SOURCES = uniwidth/test-u8-width.c
-
+test_u8_width_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uniwidth/test-u8-width.c macros.h
 
 ## end   gnulib module uniwidth/u8-width-tests
@@ -4096,8 +5036,9 @@ EXTRA_DIST += uniwidth/test-u8-width.c macros.h
 TESTS += test-uc_width uniwidth/test-uc_width2.sh
 check_PROGRAMS += test-uc_width test-uc_width2
 test_uc_width_SOURCES = uniwidth/test-uc_width.c
+test_uc_width_LDADD = $(LDADD) $(LIBUNISTRING)
 test_uc_width2_SOURCES = uniwidth/test-uc_width2.c
-
+test_uc_width2_LDADD = $(LDADD) $(LIBUNISTRING)
 EXTRA_DIST += uniwidth/test-uc_width.c uniwidth/test-uc_width2.c uniwidth/test-uc_width2.sh macros.h
 
 ## end   gnulib module uniwidth/width-tests
@@ -4119,57 +5060,48 @@ EXTRA_DIST += test-unsetenv.c signature.h macros.h
 
 ## end   gnulib module unsetenv-tests
 
-## begin gnulib module unused-parameter
+## begin gnulib module verify-tests
 
-# The BUILT_SOURCES created by this Makefile snippet are not used via #include
-# statements but through direct file reference. Therefore this snippet must be
-# present in all Makefile.am that need it. This is ensured by the applicability
-# 'all' defined above.
+TESTS_ENVIRONMENT += MAKE='$(MAKE)'
+TESTS += test-verify test-verify.sh
+check_PROGRAMS += test-verify
+EXTRA_DIST += test-verify.c test-verify.sh
 
-BUILT_SOURCES += unused-parameter.h
-# The unused-parameter.h that gets inserted into generated .h files is the same
-# as build-aux/unused-parameter.h, except that it has the copyright header cut
-# off.
-unused-parameter.h: $(top_srcdir)/build-aux/unused-parameter.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
-         < $(top_srcdir)/build-aux/unused-parameter.h \
-         > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t
+## end   gnulib module verify-tests
 
-UNUSED_PARAMETER_H=unused-parameter.h
+## begin gnulib module wchar-tests
+
+TESTS += test-wchar
+check_PROGRAMS += test-wchar
+EXTRA_DIST += test-wchar.c
 
-EXTRA_DIST += $(top_srcdir)/build-aux/unused-parameter.h
+## end   gnulib module wchar-tests
 
-## end   gnulib module unused-parameter
+## begin gnulib module wcrtomb
 
-## begin gnulib module warn-on-use
 
-BUILT_SOURCES += warn-on-use.h
-# The warn-on-use.h that gets inserted into generated .h files is the same as
-# build-aux/warn-on-use.h, except that it has the copyright header cut off.
-warn-on-use.h: $(top_srcdir)/build-aux/warn-on-use.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/^.ifndef/,$$p' \
-         < $(top_srcdir)/build-aux/warn-on-use.h \
-         > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t
+EXTRA_DIST += wcrtomb.c
 
-WARN_ON_USE_H=warn-on-use.h
+EXTRA_libtests_a_SOURCES += wcrtomb.c
 
-EXTRA_DIST += $(top_srcdir)/build-aux/warn-on-use.h
+## end   gnulib module wcrtomb
 
-## end   gnulib module warn-on-use
+## begin gnulib module wcrtomb-tests
 
-## begin gnulib module wchar-tests
+TESTS += \
+  test-wcrtomb.sh \
+  test-wcrtomb-w32-1.sh test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh \
+  test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh
+TESTS_ENVIRONMENT += \
+  LOCALE_FR='@LOCALE_FR@' \
+  LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+  LOCALE_JA='@LOCALE_JA@' \
+  LOCALE_ZH_CN='@LOCALE_ZH_CN@'
+check_PROGRAMS += test-wcrtomb test-wcrtomb-w32
 
-TESTS += test-wchar
-check_PROGRAMS += test-wchar
-EXTRA_DIST += test-wchar.c
+EXTRA_DIST += test-wcrtomb.sh test-wcrtomb.c test-wcrtomb-w32-1.sh test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh test-wcrtomb-w32.c signature.h macros.h
 
-## end   gnulib module wchar-tests
+## end   gnulib module wcrtomb-tests
 
 ## begin gnulib module wctob
 
@@ -4180,13 +5112,22 @@ EXTRA_libtests_a_SOURCES += wctob.c
 
 ## end   gnulib module wctob
 
-## begin gnulib module wctype-tests
+## begin gnulib module wctomb
+
+
+EXTRA_DIST += wctomb-impl.h wctomb.c
 
-TESTS += test-wctype
-check_PROGRAMS += test-wctype
-EXTRA_DIST += test-wctype.c macros.h
+EXTRA_libtests_a_SOURCES += wctomb.c
 
-## end   gnulib module wctype-tests
+## end   gnulib module wctomb
+
+## begin gnulib module wctype-h-tests
+
+TESTS += test-wctype-h
+check_PROGRAMS += test-wctype-h
+EXTRA_DIST += test-wctype-h.c macros.h
+
+## end   gnulib module wctype-h-tests
 
 ## begin gnulib module wcwidth-tests
 
@@ -4199,10 +5140,9 @@ EXTRA_DIST += test-wcwidth.c signature.h macros.h
 
 ## begin gnulib module xalloc
 
+libtests_a_SOURCES += xmalloc.c
 
-EXTRA_DIST += xalloc.h xmalloc.c
-
-EXTRA_libtests_a_SOURCES += xmalloc.c
+EXTRA_DIST += xalloc.h
 
 ## end   gnulib module xalloc
 
@@ -4217,10 +5157,17 @@ libtests_a_SOURCES += xalloc-die.c
 TESTS += test-xalloc-die.sh
 check_PROGRAMS += test-xalloc-die
 test_xalloc_die_LDADD = $(LDADD) @LIBINTL@
-EXTRA_DIST += test-xalloc-die.c test-xalloc-die.sh init.sh
+EXTRA_DIST += test-xalloc-die.c test-xalloc-die.sh
 
 ## end   gnulib module xalloc-die-tests
 
+## begin gnulib module xalloc-oversized
+
+
+EXTRA_DIST += xalloc-oversized.h
+
+## end   gnulib module xalloc-oversized
+
 ## begin gnulib module yield
 
 libtests_a_SOURCES += glthread/yield.h
index 0983281..6d2f1fd 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 
-# Copyright (C) 2002-2010 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this file.  If not, see <http://www.gnu.org/licenses/>.
 #
-# This file is free software, distributed under the terms of the GNU
-# General Public License.  As a special exception to the GNU General
-# Public License, this file may be distributed as part of a program
-# that contains a configuration script generated by Autoconf, under
+# As a special exception to the GNU General Public License,
+# this file may be distributed as part of a program that
+# contains a configuration script generated by Autoconf, under
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
 
 
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,47 +101,58 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.gnulib $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.gnulib $(srcdir)/Makefile.in \
+       $(srcdir)/Makefile.am $(top_srcdir)/build-aux/depcomp \
+       $(noinst_HEADERS) $(top_srcdir)/build-aux/test-driver
 TESTS = test-alloca-opt$(EXEEXT) test-array-mergesort$(EXEEXT) \
-       test-c-ctype$(EXEEXT) test-c-strcase.sh test-environ$(EXEEXT) \
-       test-errno$(EXEEXT) test-frexpl-nolibm$(EXEEXT) \
-       test-fseterr$(EXEEXT) test-iconv-h$(EXEEXT) \
-       test-iconv$(EXEEXT) test-isnand-nolibm$(EXEEXT) \
-       test-isnanf-nolibm$(EXEEXT) test-isnanl-nolibm$(EXEEXT) \
+       test-btowc1.sh test-btowc2.sh test-c-ctype$(EXEEXT) \
+       test-c-strcase.sh test-environ$(EXEEXT) test-errno$(EXEEXT) \
+       test-fdopen$(EXEEXT) test-fgetc$(EXEEXT) test-float$(EXEEXT) \
+       test-fputc$(EXEEXT) test-fread$(EXEEXT) \
+       test-frexp-nolibm$(EXEEXT) test-frexpl-nolibm$(EXEEXT) \
+       test-fseterr$(EXEEXT) test-fwrite$(EXEEXT) \
+       test-iconv-h$(EXEEXT) test-iconv$(EXEEXT) \
+       test-intprops$(EXEEXT) test-inttypes$(EXEEXT) \
+       test-isnand-nolibm$(EXEEXT) test-isnanf-nolibm$(EXEEXT) \
+       test-isnanl-nolibm$(EXEEXT) test-iswblank$(EXEEXT) \
        test-locale$(EXEEXT) test-localename$(EXEEXT) \
        test-lock$(EXEEXT) test-malloca$(EXEEXT) test-math$(EXEEXT) \
        test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh \
-       test-mbrtowc4.sh test-mbsinit.sh test-memchr$(EXEEXT) \
+       test-mbrtowc4.sh test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh \
+       test-mbrtowc-w32-3.sh test-mbrtowc-w32-4.sh \
+       test-mbrtowc-w32-5.sh test-mbsinit.sh test-memchr$(EXEEXT) \
        test-printf-frexp$(EXEEXT) test-printf-frexpl$(EXEEXT) \
-       test-setenv$(EXEEXT) test-signbit$(EXEEXT) \
-       test-stdbool$(EXEEXT) test-stddef$(EXEEXT) \
-       test-stdint$(EXEEXT) test-stdlib$(EXEEXT) \
-       test-strerror$(EXEEXT) test-striconveh$(EXEEXT) \
-       test-striconveha$(EXEEXT) test-string$(EXEEXT) \
-       test-strncat$(EXEEXT) test-cased$(EXEEXT) \
-       test-ignorable$(EXEEXT) unicase/test-locale-language.sh \
-       test-uc_tolower$(EXEEXT) test-uc_totitle$(EXEEXT) \
-       test-uc_toupper$(EXEEXT) test-u16-casecmp$(EXEEXT) \
-       test-u16-casecoll$(EXEEXT) test-u16-casefold$(EXEEXT) \
-       test-u16-is-cased$(EXEEXT) test-u16-is-casefolded$(EXEEXT) \
-       test-u16-is-lowercase$(EXEEXT) test-u16-is-titlecase$(EXEEXT) \
-       test-u16-is-uppercase$(EXEEXT) test-u16-tolower$(EXEEXT) \
-       test-u16-totitle$(EXEEXT) test-u16-toupper$(EXEEXT) \
-       test-u32-casecmp$(EXEEXT) test-u32-casecoll$(EXEEXT) \
-       test-u32-casefold$(EXEEXT) test-u32-is-cased$(EXEEXT) \
-       test-u32-is-casefolded$(EXEEXT) test-u32-is-lowercase$(EXEEXT) \
-       test-u32-is-titlecase$(EXEEXT) test-u32-is-uppercase$(EXEEXT) \
-       test-u32-tolower$(EXEEXT) test-u32-totitle$(EXEEXT) \
-       test-u32-toupper$(EXEEXT) test-u8-casecmp$(EXEEXT) \
-       test-u8-casecoll$(EXEEXT) test-u8-casefold$(EXEEXT) \
-       test-u8-is-cased$(EXEEXT) test-u8-is-casefolded$(EXEEXT) \
-       test-u8-is-lowercase$(EXEEXT) test-u8-is-titlecase$(EXEEXT) \
-       test-u8-is-uppercase$(EXEEXT) test-u8-tolower$(EXEEXT) \
-       test-u8-totitle$(EXEEXT) test-u8-toupper$(EXEEXT) \
-       unicase/test-ulc-casecmp1.sh unicase/test-ulc-casecmp2.sh \
-       unicase/test-ulc-casecoll1.sh unicase/test-ulc-casecoll2.sh \
-       test-u16-conv-from-enc$(EXEEXT) test-u16-conv-to-enc$(EXEEXT) \
+       test-setenv$(EXEEXT) test-setlocale1.sh test-setlocale2.sh \
+       test-signbit$(EXEEXT) test-stdbool$(EXEEXT) \
+       test-stddef$(EXEEXT) test-stdint$(EXEEXT) test-stdio$(EXEEXT) \
+       test-stdlib$(EXEEXT) test-strerror$(EXEEXT) \
+       test-striconveh$(EXEEXT) test-striconveha$(EXEEXT) \
+       test-string$(EXEEXT) test-strncat$(EXEEXT) \
+       test-strstr$(EXEEXT) test-sys_types$(EXEEXT) test-init.sh \
+       test-thread_self$(EXEEXT) test-thread_create$(EXEEXT) \
+       test-cased$(EXEEXT) test-ignorable$(EXEEXT) \
+       unicase/test-locale-language.sh test-uc_tolower$(EXEEXT) \
+       test-uc_totitle$(EXEEXT) test-uc_toupper$(EXEEXT) \
+       test-u16-casecmp$(EXEEXT) test-u16-casecoll$(EXEEXT) \
+       test-u16-casefold$(EXEEXT) test-u16-is-cased$(EXEEXT) \
+       test-u16-is-casefolded$(EXEEXT) test-u16-is-lowercase$(EXEEXT) \
+       test-u16-is-titlecase$(EXEEXT) test-u16-is-uppercase$(EXEEXT) \
+       test-u16-tolower$(EXEEXT) test-u16-totitle$(EXEEXT) \
+       test-u16-toupper$(EXEEXT) test-u32-casecmp$(EXEEXT) \
+       test-u32-casecoll$(EXEEXT) test-u32-casefold$(EXEEXT) \
+       test-u32-is-cased$(EXEEXT) test-u32-is-casefolded$(EXEEXT) \
+       test-u32-is-lowercase$(EXEEXT) test-u32-is-titlecase$(EXEEXT) \
+       test-u32-is-uppercase$(EXEEXT) test-u32-tolower$(EXEEXT) \
+       test-u32-totitle$(EXEEXT) test-u32-toupper$(EXEEXT) \
+       test-u8-casecmp$(EXEEXT) test-u8-casecoll$(EXEEXT) \
+       test-u8-casefold$(EXEEXT) test-u8-is-cased$(EXEEXT) \
+       test-u8-is-casefolded$(EXEEXT) test-u8-is-lowercase$(EXEEXT) \
+       test-u8-is-titlecase$(EXEEXT) test-u8-is-uppercase$(EXEEXT) \
+       test-u8-tolower$(EXEEXT) test-u8-totitle$(EXEEXT) \
+       test-u8-toupper$(EXEEXT) unicase/test-ulc-casecmp1.sh \
+       unicase/test-ulc-casecmp2.sh unicase/test-ulc-casecoll1.sh \
+       unicase/test-ulc-casecoll2.sh test-u16-conv-from-enc$(EXEEXT) \
+       test-u16-conv-to-enc$(EXEEXT) \
        test-u16-strconv-from-enc$(EXEEXT) \
        test-u16-strconv-to-enc$(EXEEXT) \
        test-u32-conv-from-enc$(EXEEXT) test-u32-conv-to-enc$(EXEEXT) \
@@ -95,13 +161,14 @@ TESTS = test-alloca-opt$(EXEEXT) test-array-mergesort$(EXEEXT) \
        test-u8-conv-from-enc$(EXEEXT) test-u8-conv-to-enc$(EXEEXT) \
        test-u8-strconv-from-enc$(EXEEXT) \
        test-u8-strconv-to-enc$(EXEEXT) test-bidi_byname$(EXEEXT) \
-       test-bidi_name$(EXEEXT) test-bidi_of$(EXEEXT) \
-       test-bidi_test$(EXEEXT) test-block_list$(EXEEXT) \
-       test-block_of$(EXEEXT) test-block_test$(EXEEXT) \
-       test-categ_C$(EXEEXT) test-categ_Cc$(EXEEXT) \
-       test-categ_Cf$(EXEEXT) test-categ_Cn$(EXEEXT) \
-       test-categ_Co$(EXEEXT) test-categ_Cs$(EXEEXT) \
-       test-categ_L$(EXEEXT) test-categ_Ll$(EXEEXT) \
+       test-bidi_longname$(EXEEXT) test-bidi_name$(EXEEXT) \
+       test-bidi_of$(EXEEXT) test-bidi_test$(EXEEXT) \
+       test-block_list$(EXEEXT) test-block_of$(EXEEXT) \
+       test-block_test$(EXEEXT) test-categ_C$(EXEEXT) \
+       test-categ_Cc$(EXEEXT) test-categ_Cf$(EXEEXT) \
+       test-categ_Cn$(EXEEXT) test-categ_Co$(EXEEXT) \
+       test-categ_Cs$(EXEEXT) test-categ_L$(EXEEXT) \
+       test-categ_LC$(EXEEXT) test-categ_Ll$(EXEEXT) \
        test-categ_Lm$(EXEEXT) test-categ_Lo$(EXEEXT) \
        test-categ_Lt$(EXEEXT) test-categ_Lu$(EXEEXT) \
        test-categ_M$(EXEEXT) test-categ_Mc$(EXEEXT) \
@@ -118,9 +185,12 @@ TESTS = test-alloca-opt$(EXEEXT) test-array-mergesort$(EXEEXT) \
        test-categ_Zl$(EXEEXT) test-categ_Zp$(EXEEXT) \
        test-categ_Zs$(EXEEXT) test-categ_and_not$(EXEEXT) \
        test-categ_and$(EXEEXT) test-categ_byname$(EXEEXT) \
-       test-categ_name$(EXEEXT) $(am__EXEEXT_1) \
-       test-categ_of$(EXEEXT) test-categ_or$(EXEEXT) \
-       test-categ_test_withtable$(EXEEXT) test-combining$(EXEEXT) \
+       test-categ_longname$(EXEEXT) test-categ_name$(EXEEXT) \
+       $(am__EXEEXT_1) test-categ_of$(EXEEXT) test-categ_or$(EXEEXT) \
+       test-categ_test_withtable$(EXEEXT) \
+       test-combiningclass_byname$(EXEEXT) \
+       test-combiningclass_longname$(EXEEXT) \
+       test-combiningclass_name$(EXEEXT) test-combiningclass$(EXEEXT) \
        test-ctype_alnum$(EXEEXT) test-ctype_alpha$(EXEEXT) \
        test-ctype_blank$(EXEEXT) test-ctype_cntrl$(EXEEXT) \
        test-ctype_digit$(EXEEXT) test-ctype_graph$(EXEEXT) \
@@ -128,6 +198,11 @@ TESTS = test-alloca-opt$(EXEEXT) test-array-mergesort$(EXEEXT) \
        test-ctype_punct$(EXEEXT) test-ctype_space$(EXEEXT) \
        test-ctype_upper$(EXEEXT) test-ctype_xdigit$(EXEEXT) \
        test-decdigit$(EXEEXT) test-digit$(EXEEXT) \
+       test-joininggroup_byname$(EXEEXT) \
+       test-joininggroup_name$(EXEEXT) test-joininggroup_of$(EXEEXT) \
+       test-joiningtype_byname$(EXEEXT) \
+       test-joiningtype_longname$(EXEEXT) \
+       test-joiningtype_name$(EXEEXT) test-joiningtype_of$(EXEEXT) \
        test-mirror$(EXEEXT) test-numeric$(EXEEXT) \
        test-pr_alphabetic$(EXEEXT) test-pr_ascii_hex_digit$(EXEEXT) \
        test-pr_bidi_arabic_digit$(EXEEXT) \
@@ -146,6 +221,12 @@ TESTS = test-alloca-opt$(EXEEXT) test-array-mergesort$(EXEEXT) \
        test-pr_bidi_other_neutral$(EXEEXT) test-pr_bidi_pdf$(EXEEXT) \
        test-pr_bidi_segment_separator$(EXEEXT) \
        test-pr_bidi_whitespace$(EXEEXT) test-pr_byname$(EXEEXT) \
+       test-pr_case_ignorable$(EXEEXT) test-pr_cased$(EXEEXT) \
+       test-pr_changes_when_casefolded$(EXEEXT) \
+       test-pr_changes_when_casemapped$(EXEEXT) \
+       test-pr_changes_when_lowercased$(EXEEXT) \
+       test-pr_changes_when_titlecased$(EXEEXT) \
+       test-pr_changes_when_uppercased$(EXEEXT) \
        test-pr_combining$(EXEEXT) test-pr_composite$(EXEEXT) \
        test-pr_currency_symbol$(EXEEXT) test-pr_dash$(EXEEXT) \
        test-pr_decimal_digit$(EXEEXT) \
@@ -190,6 +271,17 @@ TESTS = test-alloca-opt$(EXEEXT) test-array-mergesort$(EXEEXT) \
        test-scripts$(EXEEXT) test-sy_c_ident$(EXEEXT) \
        test-sy_c_whitespace$(EXEEXT) test-sy_java_ident$(EXEEXT) \
        test-sy_java_whitespace$(EXEEXT) \
+       test-u16-grapheme-breaks$(EXEEXT) \
+       test-u16-grapheme-next$(EXEEXT) \
+       test-u16-grapheme-prev$(EXEEXT) \
+       test-u32-grapheme-breaks$(EXEEXT) \
+       test-u32-grapheme-next$(EXEEXT) \
+       test-u32-grapheme-prev$(EXEEXT) \
+       test-u8-grapheme-breaks$(EXEEXT) \
+       test-u8-grapheme-next$(EXEEXT) test-u8-grapheme-prev$(EXEEXT) \
+       test-uc-gbrk-prop$(EXEEXT) \
+       unigbrk/test-uc-is-grapheme-break.sh \
+       unigbrk/test-ulc-grapheme-breaks.sh \
        test-u16-possible-linebreaks$(EXEEXT) \
        test-u16-width-linebreaks$(EXEEXT) \
        test-u32-possible-linebreaks$(EXEEXT) \
@@ -234,12 +326,13 @@ TESTS = test-alloca-opt$(EXEEXT) test-array-mergesort$(EXEEXT) \
        test-u16-next$(EXEEXT) test-u16-prev$(EXEEXT) \
        test-u16-set$(EXEEXT) test-u16-stpcpy$(EXEEXT) \
        test-u16-stpncpy$(EXEEXT) test-u16-strcat$(EXEEXT) \
-       test-u16-strcmp$(EXEEXT) test-u16-strcoll$(EXEEXT) \
-       test-u16-strcpy$(EXEEXT) test-u16-strdup$(EXEEXT) \
-       test-u16-strlen$(EXEEXT) test-u16-strmblen$(EXEEXT) \
-       test-u16-strmbtouc$(EXEEXT) test-u16-strncat$(EXEEXT) \
-       test-u16-strncmp$(EXEEXT) test-u16-strncpy$(EXEEXT) \
-       test-u16-strnlen$(EXEEXT) test-u16-to-u32$(EXEEXT) \
+       test-u16-strchr$(EXEEXT) test-u16-strcmp$(EXEEXT) \
+       test-u16-strcoll$(EXEEXT) test-u16-strcpy$(EXEEXT) \
+       test-u16-strdup$(EXEEXT) test-u16-strlen$(EXEEXT) \
+       test-u16-strmblen$(EXEEXT) test-u16-strmbtouc$(EXEEXT) \
+       test-u16-strncat$(EXEEXT) test-u16-strncmp$(EXEEXT) \
+       test-u16-strncpy$(EXEEXT) test-u16-strnlen$(EXEEXT) \
+       test-u16-strstr$(EXEEXT) test-u16-to-u32$(EXEEXT) \
        test-u16-to-u8$(EXEEXT) test-u16-uctomb$(EXEEXT) \
        test-u32-check$(EXEEXT) test-u32-chr$(EXEEXT) \
        test-u32-cmp$(EXEEXT) test-u32-cmp2$(EXEEXT) \
@@ -250,12 +343,13 @@ TESTS = test-alloca-opt$(EXEEXT) test-array-mergesort$(EXEEXT) \
        test-u32-next$(EXEEXT) test-u32-prev$(EXEEXT) \
        test-u32-set$(EXEEXT) test-u32-stpcpy$(EXEEXT) \
        test-u32-stpncpy$(EXEEXT) test-u32-strcat$(EXEEXT) \
-       test-u32-strcmp$(EXEEXT) test-u32-strcoll$(EXEEXT) \
-       test-u32-strcpy$(EXEEXT) test-u32-strdup$(EXEEXT) \
-       test-u32-strlen$(EXEEXT) test-u32-strmblen$(EXEEXT) \
-       test-u32-strmbtouc$(EXEEXT) test-u32-strncat$(EXEEXT) \
-       test-u32-strncmp$(EXEEXT) test-u32-strncpy$(EXEEXT) \
-       test-u32-strnlen$(EXEEXT) test-u32-to-u16$(EXEEXT) \
+       test-u32-strchr$(EXEEXT) test-u32-strcmp$(EXEEXT) \
+       test-u32-strcoll$(EXEEXT) test-u32-strcpy$(EXEEXT) \
+       test-u32-strdup$(EXEEXT) test-u32-strlen$(EXEEXT) \
+       test-u32-strmblen$(EXEEXT) test-u32-strmbtouc$(EXEEXT) \
+       test-u32-strncat$(EXEEXT) test-u32-strncmp$(EXEEXT) \
+       test-u32-strncpy$(EXEEXT) test-u32-strnlen$(EXEEXT) \
+       test-u32-strstr$(EXEEXT) test-u32-to-u16$(EXEEXT) \
        test-u32-to-u8$(EXEEXT) test-u32-uctomb$(EXEEXT) \
        test-u8-check$(EXEEXT) test-u8-chr$(EXEEXT) \
        test-u8-cmp$(EXEEXT) test-u8-cmp2$(EXEEXT) \
@@ -266,12 +360,13 @@ TESTS = test-alloca-opt$(EXEEXT) test-array-mergesort$(EXEEXT) \
        test-u8-next$(EXEEXT) test-u8-prev$(EXEEXT) \
        test-u8-set$(EXEEXT) test-u8-stpcpy$(EXEEXT) \
        test-u8-stpncpy$(EXEEXT) test-u8-strcat$(EXEEXT) \
-       test-u8-strcmp$(EXEEXT) test-u8-strcoll$(EXEEXT) \
-       test-u8-strcpy$(EXEEXT) test-u8-strdup$(EXEEXT) \
-       test-u8-strlen$(EXEEXT) test-u8-strmblen$(EXEEXT) \
-       test-u8-strmbtouc$(EXEEXT) test-u8-strncat$(EXEEXT) \
-       test-u8-strncmp$(EXEEXT) test-u8-strncpy$(EXEEXT) \
-       test-u8-strnlen$(EXEEXT) test-u8-to-u16$(EXEEXT) \
+       test-u8-strchr$(EXEEXT) test-u8-strcmp$(EXEEXT) \
+       test-u8-strcoll$(EXEEXT) test-u8-strcpy$(EXEEXT) \
+       test-u8-strdup$(EXEEXT) test-u8-strlen$(EXEEXT) \
+       test-u8-strmblen$(EXEEXT) test-u8-strmbtouc$(EXEEXT) \
+       test-u8-strncat$(EXEEXT) test-u8-strncmp$(EXEEXT) \
+       test-u8-strncpy$(EXEEXT) test-u8-strnlen$(EXEEXT) \
+       test-u8-strstr$(EXEEXT) test-u8-to-u16$(EXEEXT) \
        test-u8-to-u32$(EXEEXT) test-u8-uctomb$(EXEEXT) \
        test-u16-wordbreaks$(EXEEXT) test-u32-wordbreaks$(EXEEXT) \
        test-u8-wordbreaks$(EXEEXT) uniwbrk/test-ulc-wordbreaks.sh \
@@ -279,28 +374,40 @@ TESTS = test-alloca-opt$(EXEEXT) test-array-mergesort$(EXEEXT) \
        test-u32-strwidth$(EXEEXT) test-u32-width$(EXEEXT) \
        test-u8-strwidth$(EXEEXT) test-u8-width$(EXEEXT) \
        test-uc_width$(EXEEXT) uniwidth/test-uc_width2.sh \
-       test-unsetenv$(EXEEXT) test-wchar$(EXEEXT) \
-       test-wctype$(EXEEXT) test-wcwidth$(EXEEXT) test-xalloc-die.sh
+       test-unsetenv$(EXEEXT) test-verify$(EXEEXT) test-verify.sh \
+       test-wchar$(EXEEXT) test-wcrtomb.sh test-wcrtomb-w32-1.sh \
+       test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh \
+       test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh \
+       test-wctype-h$(EXEEXT) test-wcwidth$(EXEEXT) \
+       test-xalloc-die.sh
 XFAIL_TESTS =
 noinst_PROGRAMS =
 check_PROGRAMS = test-alloca-opt$(EXEEXT) \
-       test-array-mergesort$(EXEEXT) test-c-ctype$(EXEEXT) \
-       test-c-strcasecmp$(EXEEXT) test-c-strncasecmp$(EXEEXT) \
-       test-environ$(EXEEXT) test-errno$(EXEEXT) \
-       test-frexpl-nolibm$(EXEEXT) test-fseterr$(EXEEXT) \
+       test-array-mergesort$(EXEEXT) test-btowc$(EXEEXT) \
+       test-c-ctype$(EXEEXT) test-c-strcasecmp$(EXEEXT) \
+       test-c-strncasecmp$(EXEEXT) test-environ$(EXEEXT) \
+       test-errno$(EXEEXT) test-fdopen$(EXEEXT) test-fgetc$(EXEEXT) \
+       test-float$(EXEEXT) test-fputc$(EXEEXT) test-fread$(EXEEXT) \
+       test-frexp-nolibm$(EXEEXT) test-frexpl-nolibm$(EXEEXT) \
+       test-fseterr$(EXEEXT) test-fwrite$(EXEEXT) \
        test-iconv-h$(EXEEXT) test-iconv$(EXEEXT) \
+       test-intprops$(EXEEXT) test-inttypes$(EXEEXT) \
        test-isnand-nolibm$(EXEEXT) test-isnanf-nolibm$(EXEEXT) \
-       test-isnanl-nolibm$(EXEEXT) test-locale$(EXEEXT) \
-       test-localename$(EXEEXT) test-lock$(EXEEXT) \
-       test-malloca$(EXEEXT) test-math$(EXEEXT) test-mbrtowc$(EXEEXT) \
+       test-isnanl-nolibm$(EXEEXT) test-iswblank$(EXEEXT) \
+       test-locale$(EXEEXT) test-localename$(EXEEXT) \
+       test-lock$(EXEEXT) test-malloca$(EXEEXT) test-math$(EXEEXT) \
+       test-mbrtowc$(EXEEXT) test-mbrtowc-w32$(EXEEXT) \
        test-mbsinit$(EXEEXT) test-memchr$(EXEEXT) \
        test-printf-frexp$(EXEEXT) test-printf-frexpl$(EXEEXT) \
-       test-setenv$(EXEEXT) test-signbit$(EXEEXT) \
+       test-setenv$(EXEEXT) test-setlocale1$(EXEEXT) \
+       test-setlocale2$(EXEEXT) test-signbit$(EXEEXT) \
        test-stdbool$(EXEEXT) test-stddef$(EXEEXT) \
-       test-stdint$(EXEEXT) test-stdlib$(EXEEXT) \
+       test-stdint$(EXEEXT) test-stdio$(EXEEXT) test-stdlib$(EXEEXT) \
        test-strerror$(EXEEXT) test-striconveh$(EXEEXT) \
        test-striconveha$(EXEEXT) test-string$(EXEEXT) \
-       test-strncat$(EXEEXT) test-cased$(EXEEXT) \
+       test-strncat$(EXEEXT) test-strstr$(EXEEXT) \
+       test-sys_types$(EXEEXT) test-thread_self$(EXEEXT) \
+       test-thread_create$(EXEEXT) test-cased$(EXEEXT) \
        test-ignorable$(EXEEXT) test-locale-language$(EXEEXT) \
        test-uc_tolower$(EXEEXT) test-uc_totitle$(EXEEXT) \
        test-uc_toupper$(EXEEXT) test-u16-casecmp$(EXEEXT) \
@@ -330,13 +437,14 @@ check_PROGRAMS = test-alloca-opt$(EXEEXT) \
        test-u8-conv-from-enc$(EXEEXT) test-u8-conv-to-enc$(EXEEXT) \
        test-u8-strconv-from-enc$(EXEEXT) \
        test-u8-strconv-to-enc$(EXEEXT) test-bidi_byname$(EXEEXT) \
-       test-bidi_name$(EXEEXT) test-bidi_of$(EXEEXT) \
-       test-bidi_test$(EXEEXT) test-block_list$(EXEEXT) \
-       test-block_of$(EXEEXT) test-block_test$(EXEEXT) \
-       test-categ_C$(EXEEXT) test-categ_Cc$(EXEEXT) \
-       test-categ_Cf$(EXEEXT) test-categ_Cn$(EXEEXT) \
-       test-categ_Co$(EXEEXT) test-categ_Cs$(EXEEXT) \
-       test-categ_L$(EXEEXT) test-categ_Ll$(EXEEXT) \
+       test-bidi_longname$(EXEEXT) test-bidi_name$(EXEEXT) \
+       test-bidi_of$(EXEEXT) test-bidi_test$(EXEEXT) \
+       test-block_list$(EXEEXT) test-block_of$(EXEEXT) \
+       test-block_test$(EXEEXT) test-categ_C$(EXEEXT) \
+       test-categ_Cc$(EXEEXT) test-categ_Cf$(EXEEXT) \
+       test-categ_Cn$(EXEEXT) test-categ_Co$(EXEEXT) \
+       test-categ_Cs$(EXEEXT) test-categ_L$(EXEEXT) \
+       test-categ_LC$(EXEEXT) test-categ_Ll$(EXEEXT) \
        test-categ_Lm$(EXEEXT) test-categ_Lo$(EXEEXT) \
        test-categ_Lt$(EXEEXT) test-categ_Lu$(EXEEXT) \
        test-categ_M$(EXEEXT) test-categ_Mc$(EXEEXT) \
@@ -353,9 +461,12 @@ check_PROGRAMS = test-alloca-opt$(EXEEXT) \
        test-categ_Zl$(EXEEXT) test-categ_Zp$(EXEEXT) \
        test-categ_Zs$(EXEEXT) test-categ_and_not$(EXEEXT) \
        test-categ_and$(EXEEXT) test-categ_byname$(EXEEXT) \
-       test-categ_name$(EXEEXT) $(am__EXEEXT_1) \
-       test-categ_of$(EXEEXT) test-categ_or$(EXEEXT) \
-       test-categ_test_withtable$(EXEEXT) test-combining$(EXEEXT) \
+       test-categ_longname$(EXEEXT) test-categ_name$(EXEEXT) \
+       $(am__EXEEXT_1) test-categ_of$(EXEEXT) test-categ_or$(EXEEXT) \
+       test-categ_test_withtable$(EXEEXT) \
+       test-combiningclass_byname$(EXEEXT) \
+       test-combiningclass_longname$(EXEEXT) \
+       test-combiningclass_name$(EXEEXT) test-combiningclass$(EXEEXT) \
        test-ctype_alnum$(EXEEXT) test-ctype_alpha$(EXEEXT) \
        test-ctype_blank$(EXEEXT) test-ctype_cntrl$(EXEEXT) \
        test-ctype_digit$(EXEEXT) test-ctype_graph$(EXEEXT) \
@@ -363,6 +474,11 @@ check_PROGRAMS = test-alloca-opt$(EXEEXT) \
        test-ctype_punct$(EXEEXT) test-ctype_space$(EXEEXT) \
        test-ctype_upper$(EXEEXT) test-ctype_xdigit$(EXEEXT) \
        test-decdigit$(EXEEXT) test-digit$(EXEEXT) \
+       test-joininggroup_byname$(EXEEXT) \
+       test-joininggroup_name$(EXEEXT) test-joininggroup_of$(EXEEXT) \
+       test-joiningtype_byname$(EXEEXT) \
+       test-joiningtype_longname$(EXEEXT) \
+       test-joiningtype_name$(EXEEXT) test-joiningtype_of$(EXEEXT) \
        test-mirror$(EXEEXT) test-numeric$(EXEEXT) \
        test-pr_alphabetic$(EXEEXT) test-pr_ascii_hex_digit$(EXEEXT) \
        test-pr_bidi_arabic_digit$(EXEEXT) \
@@ -381,6 +497,12 @@ check_PROGRAMS = test-alloca-opt$(EXEEXT) \
        test-pr_bidi_other_neutral$(EXEEXT) test-pr_bidi_pdf$(EXEEXT) \
        test-pr_bidi_segment_separator$(EXEEXT) \
        test-pr_bidi_whitespace$(EXEEXT) test-pr_byname$(EXEEXT) \
+       test-pr_case_ignorable$(EXEEXT) test-pr_cased$(EXEEXT) \
+       test-pr_changes_when_casefolded$(EXEEXT) \
+       test-pr_changes_when_casemapped$(EXEEXT) \
+       test-pr_changes_when_lowercased$(EXEEXT) \
+       test-pr_changes_when_titlecased$(EXEEXT) \
+       test-pr_changes_when_uppercased$(EXEEXT) \
        test-pr_combining$(EXEEXT) test-pr_composite$(EXEEXT) \
        test-pr_currency_symbol$(EXEEXT) test-pr_dash$(EXEEXT) \
        test-pr_decimal_digit$(EXEEXT) \
@@ -425,6 +547,16 @@ check_PROGRAMS = test-alloca-opt$(EXEEXT) \
        test-scripts$(EXEEXT) test-sy_c_ident$(EXEEXT) \
        test-sy_c_whitespace$(EXEEXT) test-sy_java_ident$(EXEEXT) \
        test-sy_java_whitespace$(EXEEXT) \
+       test-u16-grapheme-breaks$(EXEEXT) \
+       test-u16-grapheme-next$(EXEEXT) \
+       test-u16-grapheme-prev$(EXEEXT) \
+       test-u32-grapheme-breaks$(EXEEXT) \
+       test-u32-grapheme-next$(EXEEXT) \
+       test-u32-grapheme-prev$(EXEEXT) \
+       test-u8-grapheme-breaks$(EXEEXT) \
+       test-u8-grapheme-next$(EXEEXT) test-u8-grapheme-prev$(EXEEXT) \
+       test-uc-gbrk-prop$(EXEEXT) test-uc-is-grapheme-break$(EXEEXT) \
+       test-ulc-grapheme-breaks$(EXEEXT) \
        test-u16-possible-linebreaks$(EXEEXT) \
        test-u16-width-linebreaks$(EXEEXT) \
        test-u32-possible-linebreaks$(EXEEXT) \
@@ -467,12 +599,13 @@ check_PROGRAMS = test-alloca-opt$(EXEEXT) \
        test-u16-next$(EXEEXT) test-u16-prev$(EXEEXT) \
        test-u16-set$(EXEEXT) test-u16-stpcpy$(EXEEXT) \
        test-u16-stpncpy$(EXEEXT) test-u16-strcat$(EXEEXT) \
-       test-u16-strcmp$(EXEEXT) test-u16-strcoll$(EXEEXT) \
-       test-u16-strcpy$(EXEEXT) test-u16-strdup$(EXEEXT) \
-       test-u16-strlen$(EXEEXT) test-u16-strmblen$(EXEEXT) \
-       test-u16-strmbtouc$(EXEEXT) test-u16-strncat$(EXEEXT) \
-       test-u16-strncmp$(EXEEXT) test-u16-strncpy$(EXEEXT) \
-       test-u16-strnlen$(EXEEXT) test-u16-to-u32$(EXEEXT) \
+       test-u16-strchr$(EXEEXT) test-u16-strcmp$(EXEEXT) \
+       test-u16-strcoll$(EXEEXT) test-u16-strcpy$(EXEEXT) \
+       test-u16-strdup$(EXEEXT) test-u16-strlen$(EXEEXT) \
+       test-u16-strmblen$(EXEEXT) test-u16-strmbtouc$(EXEEXT) \
+       test-u16-strncat$(EXEEXT) test-u16-strncmp$(EXEEXT) \
+       test-u16-strncpy$(EXEEXT) test-u16-strnlen$(EXEEXT) \
+       test-u16-strstr$(EXEEXT) test-u16-to-u32$(EXEEXT) \
        test-u16-to-u8$(EXEEXT) test-u16-uctomb$(EXEEXT) \
        test-u32-check$(EXEEXT) test-u32-chr$(EXEEXT) \
        test-u32-cmp$(EXEEXT) test-u32-cmp2$(EXEEXT) \
@@ -483,12 +616,13 @@ check_PROGRAMS = test-alloca-opt$(EXEEXT) \
        test-u32-next$(EXEEXT) test-u32-prev$(EXEEXT) \
        test-u32-set$(EXEEXT) test-u32-stpcpy$(EXEEXT) \
        test-u32-stpncpy$(EXEEXT) test-u32-strcat$(EXEEXT) \
-       test-u32-strcmp$(EXEEXT) test-u32-strcoll$(EXEEXT) \
-       test-u32-strcpy$(EXEEXT) test-u32-strdup$(EXEEXT) \
-       test-u32-strlen$(EXEEXT) test-u32-strmblen$(EXEEXT) \
-       test-u32-strmbtouc$(EXEEXT) test-u32-strncat$(EXEEXT) \
-       test-u32-strncmp$(EXEEXT) test-u32-strncpy$(EXEEXT) \
-       test-u32-strnlen$(EXEEXT) test-u32-to-u16$(EXEEXT) \
+       test-u32-strchr$(EXEEXT) test-u32-strcmp$(EXEEXT) \
+       test-u32-strcoll$(EXEEXT) test-u32-strcpy$(EXEEXT) \
+       test-u32-strdup$(EXEEXT) test-u32-strlen$(EXEEXT) \
+       test-u32-strmblen$(EXEEXT) test-u32-strmbtouc$(EXEEXT) \
+       test-u32-strncat$(EXEEXT) test-u32-strncmp$(EXEEXT) \
+       test-u32-strncpy$(EXEEXT) test-u32-strnlen$(EXEEXT) \
+       test-u32-strstr$(EXEEXT) test-u32-to-u16$(EXEEXT) \
        test-u32-to-u8$(EXEEXT) test-u32-uctomb$(EXEEXT) \
        test-u8-check$(EXEEXT) test-u8-chr$(EXEEXT) \
        test-u8-cmp$(EXEEXT) test-u8-cmp2$(EXEEXT) \
@@ -499,12 +633,13 @@ check_PROGRAMS = test-alloca-opt$(EXEEXT) \
        test-u8-next$(EXEEXT) test-u8-prev$(EXEEXT) \
        test-u8-set$(EXEEXT) test-u8-stpcpy$(EXEEXT) \
        test-u8-stpncpy$(EXEEXT) test-u8-strcat$(EXEEXT) \
-       test-u8-strcmp$(EXEEXT) test-u8-strcoll$(EXEEXT) \
-       test-u8-strcpy$(EXEEXT) test-u8-strdup$(EXEEXT) \
-       test-u8-strlen$(EXEEXT) test-u8-strmblen$(EXEEXT) \
-       test-u8-strmbtouc$(EXEEXT) test-u8-strncat$(EXEEXT) \
-       test-u8-strncmp$(EXEEXT) test-u8-strncpy$(EXEEXT) \
-       test-u8-strnlen$(EXEEXT) test-u8-to-u16$(EXEEXT) \
+       test-u8-strchr$(EXEEXT) test-u8-strcmp$(EXEEXT) \
+       test-u8-strcoll$(EXEEXT) test-u8-strcpy$(EXEEXT) \
+       test-u8-strdup$(EXEEXT) test-u8-strlen$(EXEEXT) \
+       test-u8-strmblen$(EXEEXT) test-u8-strmbtouc$(EXEEXT) \
+       test-u8-strncat$(EXEEXT) test-u8-strncmp$(EXEEXT) \
+       test-u8-strncpy$(EXEEXT) test-u8-strnlen$(EXEEXT) \
+       test-u8-strstr$(EXEEXT) test-u8-to-u16$(EXEEXT) \
        test-u8-to-u32$(EXEEXT) test-u8-uctomb$(EXEEXT) \
        test-u16-wordbreaks$(EXEEXT) test-u32-wordbreaks$(EXEEXT) \
        test-u8-wordbreaks$(EXEEXT) test-ulc-wordbreaks$(EXEEXT) \
@@ -512,16 +647,20 @@ check_PROGRAMS = test-alloca-opt$(EXEEXT) \
        test-u32-strwidth$(EXEEXT) test-u32-width$(EXEEXT) \
        test-u8-strwidth$(EXEEXT) test-u8-width$(EXEEXT) \
        test-uc_width$(EXEEXT) test-uc_width2$(EXEEXT) \
-       test-unsetenv$(EXEEXT) test-wchar$(EXEEXT) \
-       test-wctype$(EXEEXT) test-wcwidth$(EXEEXT) \
-       test-xalloc-die$(EXEEXT)
+       test-unsetenv$(EXEEXT) test-verify$(EXEEXT) \
+       test-wchar$(EXEEXT) test-wcrtomb$(EXEEXT) \
+       test-wcrtomb-w32$(EXEEXT) test-wctype-h$(EXEEXT) \
+       test-wcwidth$(EXEEXT) test-xalloc-die$(EXEEXT)
 @WOE32DLL_FALSE@am__append_1 = test-categ_none
 @WOE32DLL_FALSE@am__append_2 = test-categ_none
 subdir = tests
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
+       $(top_srcdir)/gnulib-m4/absolute-header.m4 \
        $(top_srcdir)/gnulib-m4/alloca.m4 \
+       $(top_srcdir)/gnulib-m4/btowc.m4 \
        $(top_srcdir)/gnulib-m4/codeset.m4 \
+       $(top_srcdir)/gnulib-m4/configmake.m4 \
        $(top_srcdir)/gnulib-m4/eealloc.m4 \
        $(top_srcdir)/gnulib-m4/environ.m4 \
        $(top_srcdir)/gnulib-m4/errno_h.m4 \
@@ -530,11 +669,14 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/exponentf.m4 \
        $(top_srcdir)/gnulib-m4/exponentl.m4 \
        $(top_srcdir)/gnulib-m4/extensions.m4 \
+       $(top_srcdir)/gnulib-m4/extern-inline.m4 \
        $(top_srcdir)/gnulib-m4/fcntl-o.m4 \
+       $(top_srcdir)/gnulib-m4/fdopen.m4 \
        $(top_srcdir)/gnulib-m4/float_h.m4 \
        $(top_srcdir)/gnulib-m4/fpieee.m4 \
        $(top_srcdir)/gnulib-m4/frexp.m4 \
        $(top_srcdir)/gnulib-m4/frexpl.m4 \
+       $(top_srcdir)/gnulib-m4/fseterr.m4 \
        $(top_srcdir)/gnulib-m4/getpagesize.m4 \
        $(top_srcdir)/gnulib-m4/glibc21.m4 \
        $(top_srcdir)/gnulib-m4/gnulib-common.m4 \
@@ -546,16 +688,21 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/inline.m4 \
        $(top_srcdir)/gnulib-m4/intlmacosx.m4 \
        $(top_srcdir)/gnulib-m4/intmax_t.m4 \
+       $(top_srcdir)/gnulib-m4/inttypes-pri.m4 \
+       $(top_srcdir)/gnulib-m4/inttypes.m4 \
        $(top_srcdir)/gnulib-m4/inttypes_h.m4 \
        $(top_srcdir)/gnulib-m4/isnand.m4 \
        $(top_srcdir)/gnulib-m4/isnanf.m4 \
        $(top_srcdir)/gnulib-m4/isnanl.m4 \
+       $(top_srcdir)/gnulib-m4/iswblank.m4 \
        $(top_srcdir)/gnulib-m4/lcmessage.m4 \
        $(top_srcdir)/gnulib-m4/ldexpl.m4 \
        $(top_srcdir)/gnulib-m4/lib-ld.m4 \
        $(top_srcdir)/gnulib-m4/lib-link.m4 \
        $(top_srcdir)/gnulib-m4/lib-prefix.m4 \
+       $(top_srcdir)/gnulib-m4/libunistring-base.m4 \
        $(top_srcdir)/gnulib-m4/localcharset.m4 \
+       $(top_srcdir)/gnulib-m4/locale-ar.m4 \
        $(top_srcdir)/gnulib-m4/locale-fr.m4 \
        $(top_srcdir)/gnulib-m4/locale-ja.m4 \
        $(top_srcdir)/gnulib-m4/locale-tr.m4 \
@@ -572,27 +719,37 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/mbrtowc.m4 \
        $(top_srcdir)/gnulib-m4/mbsinit.m4 \
        $(top_srcdir)/gnulib-m4/mbstate_t.m4 \
+       $(top_srcdir)/gnulib-m4/mbtowc.m4 \
        $(top_srcdir)/gnulib-m4/memchr.m4 \
        $(top_srcdir)/gnulib-m4/minmax.m4 \
        $(top_srcdir)/gnulib-m4/mmap-anon.m4 \
+       $(top_srcdir)/gnulib-m4/msvc-inval.m4 \
+       $(top_srcdir)/gnulib-m4/msvc-nothrow.m4 \
        $(top_srcdir)/gnulib-m4/multiarch.m4 \
        $(top_srcdir)/gnulib-m4/nocrash.m4 \
+       $(top_srcdir)/gnulib-m4/off_t.m4 \
        $(top_srcdir)/gnulib-m4/printf-frexp.m4 \
        $(top_srcdir)/gnulib-m4/printf-frexpl.m4 \
        $(top_srcdir)/gnulib-m4/printf.m4 \
        $(top_srcdir)/gnulib-m4/putenv.m4 \
        $(top_srcdir)/gnulib-m4/relocatable-lib.m4 \
        $(top_srcdir)/gnulib-m4/setenv.m4 \
+       $(top_srcdir)/gnulib-m4/setlocale.m4 \
        $(top_srcdir)/gnulib-m4/signbit.m4 \
        $(top_srcdir)/gnulib-m4/size_max.m4 \
+       $(top_srcdir)/gnulib-m4/ssize_t.m4 \
        $(top_srcdir)/gnulib-m4/stdbool.m4 \
        $(top_srcdir)/gnulib-m4/stddef_h.m4 \
        $(top_srcdir)/gnulib-m4/stdint.m4 \
        $(top_srcdir)/gnulib-m4/stdint_h.m4 \
+       $(top_srcdir)/gnulib-m4/stdio_h.m4 \
        $(top_srcdir)/gnulib-m4/stdlib_h.m4 \
        $(top_srcdir)/gnulib-m4/strerror.m4 \
        $(top_srcdir)/gnulib-m4/string_h.m4 \
        $(top_srcdir)/gnulib-m4/strncat.m4 \
+       $(top_srcdir)/gnulib-m4/strstr.m4 \
+       $(top_srcdir)/gnulib-m4/sys_socket_h.m4 \
+       $(top_srcdir)/gnulib-m4/sys_types_h.m4 \
        $(top_srcdir)/gnulib-m4/thread.m4 \
        $(top_srcdir)/gnulib-m4/threadlib.m4 \
        $(top_srcdir)/gnulib-m4/unistd_h.m4 \
@@ -600,7 +757,9 @@ am__aclocal_m4_deps = $(top_srcdir)/gnulib-m4/00gnulib.m4 \
        $(top_srcdir)/gnulib-m4/warn-on-use.m4 \
        $(top_srcdir)/gnulib-m4/wchar_h.m4 \
        $(top_srcdir)/gnulib-m4/wchar_t.m4 \
+       $(top_srcdir)/gnulib-m4/wcrtomb.m4 \
        $(top_srcdir)/gnulib-m4/wctob.m4 \
+       $(top_srcdir)/gnulib-m4/wctomb.m4 \
        $(top_srcdir)/gnulib-m4/wctype_h.m4 \
        $(top_srcdir)/gnulib-m4/wcwidth.m4 \
        $(top_srcdir)/gnulib-m4/wint_t.m4 \
@@ -619,18 +778,16 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
-ARFLAGS = cru
-AM_V_AR = $(am__v_AR_$(V))
-am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
-am__v_AR_0 = @echo "  AR    " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo "  AR      " $@;
+am__v_AR_1 = 
 libtests_a_AR = $(AR) $(ARFLAGS)
 am__DEPENDENCIES_1 =
 am__dirstamp = $(am__leading_dot)dirstamp
 am_libtests_a_OBJECTS = exitfail.$(OBJEXT) progname.$(OBJEXT) \
-       glthread/thread.$(OBJEXT) xalloc-die.$(OBJEXT)
+       glthread/thread.$(OBJEXT) xmalloc.$(OBJEXT) \
+       xalloc-die.$(OBJEXT)
 libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
 @WOE32DLL_FALSE@am__EXEEXT_1 = test-categ_none$(EXEEXT)
 PROGRAMS = $(noinst_PROGRAMS)
@@ -639,9 +796,10 @@ test_alloca_opt_OBJECTS = test-alloca-opt.$(OBJEXT)
 test_alloca_opt_LDADD = $(LDADD)
 test_alloca_opt_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 test_array_mergesort_SOURCES = test-array-mergesort.c
 test_array_mergesort_OBJECTS = test-array-mergesort.$(OBJEXT)
 test_array_mergesort_LDADD = $(LDADD)
@@ -649,39 +807,35 @@ test_array_mergesort_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
 am_test_bidi_byname_OBJECTS = unictype/test-bidi_byname.$(OBJEXT)
 test_bidi_byname_OBJECTS = $(am_test_bidi_byname_OBJECTS)
-test_bidi_byname_LDADD = $(LDADD)
-test_bidi_byname_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_2 = libtests.a ../lib/libunistring.la libtests.a \
+       $(am__DEPENDENCIES_1)
+test_bidi_byname_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_bidi_longname_OBJECTS = unictype/test-bidi_longname.$(OBJEXT)
+test_bidi_longname_OBJECTS = $(am_test_bidi_longname_OBJECTS)
+test_bidi_longname_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_bidi_name_OBJECTS = unictype/test-bidi_name.$(OBJEXT)
 test_bidi_name_OBJECTS = $(am_test_bidi_name_OBJECTS)
-test_bidi_name_LDADD = $(LDADD)
-test_bidi_name_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_bidi_name_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_bidi_of_OBJECTS = unictype/test-bidi_of.$(OBJEXT)
 test_bidi_of_OBJECTS = $(am_test_bidi_of_OBJECTS)
-test_bidi_of_LDADD = $(LDADD)
-test_bidi_of_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_bidi_of_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_bidi_test_OBJECTS = unictype/test-bidi_test.$(OBJEXT)
 test_bidi_test_OBJECTS = $(am_test_bidi_test_OBJECTS)
-test_bidi_test_LDADD = $(LDADD)
-test_bidi_test_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_bidi_test_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_block_list_OBJECTS = unictype/test-block_list.$(OBJEXT)
 test_block_list_OBJECTS = $(am_test_block_list_OBJECTS)
-test_block_list_LDADD = $(LDADD)
-test_block_list_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_block_list_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_block_of_OBJECTS = unictype/test-block_of.$(OBJEXT)
 test_block_of_OBJECTS = $(am_test_block_of_OBJECTS)
-test_block_of_LDADD = $(LDADD)
-test_block_of_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_block_of_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_block_test_OBJECTS = unictype/test-block_test.$(OBJEXT)
 test_block_test_OBJECTS = $(am_test_block_test_OBJECTS)
-test_block_test_LDADD = $(LDADD)
-test_block_test_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_block_test_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_btowc_SOURCES = test-btowc.c
+test_btowc_OBJECTS = test-btowc.$(OBJEXT)
+test_btowc_LDADD = $(LDADD)
+test_btowc_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+       $(am__DEPENDENCIES_1)
 test_c_ctype_SOURCES = test-c-ctype.c
 test_c_ctype_OBJECTS = test-c-ctype.$(OBJEXT)
 test_c_ctype_LDADD = $(LDADD)
@@ -701,341 +855,232 @@ am_test_canonical_decomposition_OBJECTS =  \
        uninorm/test-canonical-decomposition.$(OBJEXT)
 test_canonical_decomposition_OBJECTS =  \
        $(am_test_canonical_decomposition_OBJECTS)
-test_canonical_decomposition_LDADD = $(LDADD)
-test_canonical_decomposition_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_canonical_decomposition_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_cased_OBJECTS = unicase/test-cased.$(OBJEXT)
 test_cased_OBJECTS = $(am_test_cased_OBJECTS)
-test_cased_LDADD = $(LDADD)
-test_cased_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
-       $(am__DEPENDENCIES_1)
+test_cased_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_C_OBJECTS = unictype/test-categ_C.$(OBJEXT)
 test_categ_C_OBJECTS = $(am_test_categ_C_OBJECTS)
-test_categ_C_LDADD = $(LDADD)
-test_categ_C_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_C_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Cc_OBJECTS = unictype/test-categ_Cc.$(OBJEXT)
 test_categ_Cc_OBJECTS = $(am_test_categ_Cc_OBJECTS)
-test_categ_Cc_LDADD = $(LDADD)
-test_categ_Cc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Cc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Cf_OBJECTS = unictype/test-categ_Cf.$(OBJEXT)
 test_categ_Cf_OBJECTS = $(am_test_categ_Cf_OBJECTS)
-test_categ_Cf_LDADD = $(LDADD)
-test_categ_Cf_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Cf_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Cn_OBJECTS = unictype/test-categ_Cn.$(OBJEXT)
 test_categ_Cn_OBJECTS = $(am_test_categ_Cn_OBJECTS)
-test_categ_Cn_LDADD = $(LDADD)
-test_categ_Cn_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Cn_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Co_OBJECTS = unictype/test-categ_Co.$(OBJEXT)
 test_categ_Co_OBJECTS = $(am_test_categ_Co_OBJECTS)
-test_categ_Co_LDADD = $(LDADD)
-test_categ_Co_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Co_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Cs_OBJECTS = unictype/test-categ_Cs.$(OBJEXT)
 test_categ_Cs_OBJECTS = $(am_test_categ_Cs_OBJECTS)
-test_categ_Cs_LDADD = $(LDADD)
-test_categ_Cs_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Cs_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_L_OBJECTS = unictype/test-categ_L.$(OBJEXT)
 test_categ_L_OBJECTS = $(am_test_categ_L_OBJECTS)
-test_categ_L_LDADD = $(LDADD)
-test_categ_L_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_L_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_categ_LC_OBJECTS = unictype/test-categ_LC.$(OBJEXT)
+test_categ_LC_OBJECTS = $(am_test_categ_LC_OBJECTS)
+test_categ_LC_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Ll_OBJECTS = unictype/test-categ_Ll.$(OBJEXT)
 test_categ_Ll_OBJECTS = $(am_test_categ_Ll_OBJECTS)
-test_categ_Ll_LDADD = $(LDADD)
-test_categ_Ll_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Ll_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Lm_OBJECTS = unictype/test-categ_Lm.$(OBJEXT)
 test_categ_Lm_OBJECTS = $(am_test_categ_Lm_OBJECTS)
-test_categ_Lm_LDADD = $(LDADD)
-test_categ_Lm_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Lm_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Lo_OBJECTS = unictype/test-categ_Lo.$(OBJEXT)
 test_categ_Lo_OBJECTS = $(am_test_categ_Lo_OBJECTS)
-test_categ_Lo_LDADD = $(LDADD)
-test_categ_Lo_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Lo_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Lt_OBJECTS = unictype/test-categ_Lt.$(OBJEXT)
 test_categ_Lt_OBJECTS = $(am_test_categ_Lt_OBJECTS)
-test_categ_Lt_LDADD = $(LDADD)
-test_categ_Lt_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Lt_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Lu_OBJECTS = unictype/test-categ_Lu.$(OBJEXT)
 test_categ_Lu_OBJECTS = $(am_test_categ_Lu_OBJECTS)
-test_categ_Lu_LDADD = $(LDADD)
-test_categ_Lu_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Lu_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_M_OBJECTS = unictype/test-categ_M.$(OBJEXT)
 test_categ_M_OBJECTS = $(am_test_categ_M_OBJECTS)
-test_categ_M_LDADD = $(LDADD)
-test_categ_M_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_M_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Mc_OBJECTS = unictype/test-categ_Mc.$(OBJEXT)
 test_categ_Mc_OBJECTS = $(am_test_categ_Mc_OBJECTS)
-test_categ_Mc_LDADD = $(LDADD)
-test_categ_Mc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Mc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Me_OBJECTS = unictype/test-categ_Me.$(OBJEXT)
 test_categ_Me_OBJECTS = $(am_test_categ_Me_OBJECTS)
-test_categ_Me_LDADD = $(LDADD)
-test_categ_Me_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Me_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Mn_OBJECTS = unictype/test-categ_Mn.$(OBJEXT)
 test_categ_Mn_OBJECTS = $(am_test_categ_Mn_OBJECTS)
-test_categ_Mn_LDADD = $(LDADD)
-test_categ_Mn_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Mn_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_N_OBJECTS = unictype/test-categ_N.$(OBJEXT)
 test_categ_N_OBJECTS = $(am_test_categ_N_OBJECTS)
-test_categ_N_LDADD = $(LDADD)
-test_categ_N_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_N_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Nd_OBJECTS = unictype/test-categ_Nd.$(OBJEXT)
 test_categ_Nd_OBJECTS = $(am_test_categ_Nd_OBJECTS)
-test_categ_Nd_LDADD = $(LDADD)
-test_categ_Nd_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Nd_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Nl_OBJECTS = unictype/test-categ_Nl.$(OBJEXT)
 test_categ_Nl_OBJECTS = $(am_test_categ_Nl_OBJECTS)
-test_categ_Nl_LDADD = $(LDADD)
-test_categ_Nl_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Nl_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_No_OBJECTS = unictype/test-categ_No.$(OBJEXT)
 test_categ_No_OBJECTS = $(am_test_categ_No_OBJECTS)
-test_categ_No_LDADD = $(LDADD)
-test_categ_No_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_No_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_P_OBJECTS = unictype/test-categ_P.$(OBJEXT)
 test_categ_P_OBJECTS = $(am_test_categ_P_OBJECTS)
-test_categ_P_LDADD = $(LDADD)
-test_categ_P_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_P_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Pc_OBJECTS = unictype/test-categ_Pc.$(OBJEXT)
 test_categ_Pc_OBJECTS = $(am_test_categ_Pc_OBJECTS)
-test_categ_Pc_LDADD = $(LDADD)
-test_categ_Pc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Pc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Pd_OBJECTS = unictype/test-categ_Pd.$(OBJEXT)
 test_categ_Pd_OBJECTS = $(am_test_categ_Pd_OBJECTS)
-test_categ_Pd_LDADD = $(LDADD)
-test_categ_Pd_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Pd_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Pe_OBJECTS = unictype/test-categ_Pe.$(OBJEXT)
 test_categ_Pe_OBJECTS = $(am_test_categ_Pe_OBJECTS)
-test_categ_Pe_LDADD = $(LDADD)
-test_categ_Pe_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Pe_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Pf_OBJECTS = unictype/test-categ_Pf.$(OBJEXT)
 test_categ_Pf_OBJECTS = $(am_test_categ_Pf_OBJECTS)
-test_categ_Pf_LDADD = $(LDADD)
-test_categ_Pf_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Pf_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Pi_OBJECTS = unictype/test-categ_Pi.$(OBJEXT)
 test_categ_Pi_OBJECTS = $(am_test_categ_Pi_OBJECTS)
-test_categ_Pi_LDADD = $(LDADD)
-test_categ_Pi_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Pi_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Po_OBJECTS = unictype/test-categ_Po.$(OBJEXT)
 test_categ_Po_OBJECTS = $(am_test_categ_Po_OBJECTS)
-test_categ_Po_LDADD = $(LDADD)
-test_categ_Po_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Po_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Ps_OBJECTS = unictype/test-categ_Ps.$(OBJEXT)
 test_categ_Ps_OBJECTS = $(am_test_categ_Ps_OBJECTS)
-test_categ_Ps_LDADD = $(LDADD)
-test_categ_Ps_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Ps_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_S_OBJECTS = unictype/test-categ_S.$(OBJEXT)
 test_categ_S_OBJECTS = $(am_test_categ_S_OBJECTS)
-test_categ_S_LDADD = $(LDADD)
-test_categ_S_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_S_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Sc_OBJECTS = unictype/test-categ_Sc.$(OBJEXT)
 test_categ_Sc_OBJECTS = $(am_test_categ_Sc_OBJECTS)
-test_categ_Sc_LDADD = $(LDADD)
-test_categ_Sc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Sc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Sk_OBJECTS = unictype/test-categ_Sk.$(OBJEXT)
 test_categ_Sk_OBJECTS = $(am_test_categ_Sk_OBJECTS)
-test_categ_Sk_LDADD = $(LDADD)
-test_categ_Sk_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Sk_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Sm_OBJECTS = unictype/test-categ_Sm.$(OBJEXT)
 test_categ_Sm_OBJECTS = $(am_test_categ_Sm_OBJECTS)
-test_categ_Sm_LDADD = $(LDADD)
-test_categ_Sm_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Sm_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_So_OBJECTS = unictype/test-categ_So.$(OBJEXT)
 test_categ_So_OBJECTS = $(am_test_categ_So_OBJECTS)
-test_categ_So_LDADD = $(LDADD)
-test_categ_So_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_So_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Z_OBJECTS = unictype/test-categ_Z.$(OBJEXT)
 test_categ_Z_OBJECTS = $(am_test_categ_Z_OBJECTS)
-test_categ_Z_LDADD = $(LDADD)
-test_categ_Z_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Z_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Zl_OBJECTS = unictype/test-categ_Zl.$(OBJEXT)
 test_categ_Zl_OBJECTS = $(am_test_categ_Zl_OBJECTS)
-test_categ_Zl_LDADD = $(LDADD)
-test_categ_Zl_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Zl_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Zp_OBJECTS = unictype/test-categ_Zp.$(OBJEXT)
 test_categ_Zp_OBJECTS = $(am_test_categ_Zp_OBJECTS)
-test_categ_Zp_LDADD = $(LDADD)
-test_categ_Zp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Zp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_Zs_OBJECTS = unictype/test-categ_Zs.$(OBJEXT)
 test_categ_Zs_OBJECTS = $(am_test_categ_Zs_OBJECTS)
-test_categ_Zs_LDADD = $(LDADD)
-test_categ_Zs_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_Zs_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_and_OBJECTS = unictype/test-categ_and.$(OBJEXT)
 test_categ_and_OBJECTS = $(am_test_categ_and_OBJECTS)
-test_categ_and_LDADD = $(LDADD)
-test_categ_and_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_and_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_and_not_OBJECTS = unictype/test-categ_and_not.$(OBJEXT)
 test_categ_and_not_OBJECTS = $(am_test_categ_and_not_OBJECTS)
-test_categ_and_not_LDADD = $(LDADD)
-test_categ_and_not_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_and_not_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_byname_OBJECTS = unictype/test-categ_byname.$(OBJEXT)
 test_categ_byname_OBJECTS = $(am_test_categ_byname_OBJECTS)
-test_categ_byname_LDADD = $(LDADD)
-test_categ_byname_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_byname_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_categ_longname_OBJECTS =  \
+       unictype/test-categ_longname.$(OBJEXT)
+test_categ_longname_OBJECTS = $(am_test_categ_longname_OBJECTS)
+test_categ_longname_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_name_OBJECTS = unictype/test-categ_name.$(OBJEXT)
 test_categ_name_OBJECTS = $(am_test_categ_name_OBJECTS)
-test_categ_name_LDADD = $(LDADD)
-test_categ_name_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_name_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am__test_categ_none_SOURCES_DIST = unictype/test-categ_none.c
 @WOE32DLL_FALSE@am_test_categ_none_OBJECTS =  \
 @WOE32DLL_FALSE@       unictype/test-categ_none.$(OBJEXT)
 test_categ_none_OBJECTS = $(am_test_categ_none_OBJECTS)
-test_categ_none_LDADD = $(LDADD)
-test_categ_none_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+@WOE32DLL_FALSE@test_categ_none_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_of_OBJECTS = unictype/test-categ_of.$(OBJEXT)
 test_categ_of_OBJECTS = $(am_test_categ_of_OBJECTS)
-test_categ_of_LDADD = $(LDADD)
-test_categ_of_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_of_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_or_OBJECTS = unictype/test-categ_or.$(OBJEXT)
 test_categ_or_OBJECTS = $(am_test_categ_or_OBJECTS)
-test_categ_or_LDADD = $(LDADD)
-test_categ_or_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_or_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_categ_test_withtable_OBJECTS =  \
        unictype/test-categ_test_withtable.$(OBJEXT)
 test_categ_test_withtable_OBJECTS =  \
        $(am_test_categ_test_withtable_OBJECTS)
-test_categ_test_withtable_LDADD = $(LDADD)
-test_categ_test_withtable_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
-am_test_combining_OBJECTS = unictype/test-combining.$(OBJEXT)
-test_combining_OBJECTS = $(am_test_combining_OBJECTS)
-test_combining_LDADD = $(LDADD)
-test_combining_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_categ_test_withtable_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_combiningclass_OBJECTS =  \
+       unictype/test-combiningclass.$(OBJEXT)
+test_combiningclass_OBJECTS = $(am_test_combiningclass_OBJECTS)
+test_combiningclass_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_combiningclass_byname_OBJECTS =  \
+       unictype/test-combiningclass_byname.$(OBJEXT)
+test_combiningclass_byname_OBJECTS =  \
+       $(am_test_combiningclass_byname_OBJECTS)
+test_combiningclass_byname_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_combiningclass_longname_OBJECTS =  \
+       unictype/test-combiningclass_longname.$(OBJEXT)
+test_combiningclass_longname_OBJECTS =  \
+       $(am_test_combiningclass_longname_OBJECTS)
+test_combiningclass_longname_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_combiningclass_name_OBJECTS =  \
+       unictype/test-combiningclass_name.$(OBJEXT)
+test_combiningclass_name_OBJECTS =  \
+       $(am_test_combiningclass_name_OBJECTS)
+test_combiningclass_name_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_compat_decomposition_OBJECTS =  \
        uninorm/test-compat-decomposition.$(OBJEXT)
 test_compat_decomposition_OBJECTS =  \
        $(am_test_compat_decomposition_OBJECTS)
-test_compat_decomposition_LDADD = $(LDADD)
-test_compat_decomposition_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_compat_decomposition_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_composition_OBJECTS = uninorm/test-composition.$(OBJEXT)
 test_composition_OBJECTS = $(am_test_composition_OBJECTS)
-test_composition_LDADD = $(LDADD)
-test_composition_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_composition_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_alnum_OBJECTS = unictype/test-ctype_alnum.$(OBJEXT)
 test_ctype_alnum_OBJECTS = $(am_test_ctype_alnum_OBJECTS)
-test_ctype_alnum_LDADD = $(LDADD)
-test_ctype_alnum_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_alnum_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_alpha_OBJECTS = unictype/test-ctype_alpha.$(OBJEXT)
 test_ctype_alpha_OBJECTS = $(am_test_ctype_alpha_OBJECTS)
-test_ctype_alpha_LDADD = $(LDADD)
-test_ctype_alpha_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_alpha_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_blank_OBJECTS = unictype/test-ctype_blank.$(OBJEXT)
 test_ctype_blank_OBJECTS = $(am_test_ctype_blank_OBJECTS)
-test_ctype_blank_LDADD = $(LDADD)
-test_ctype_blank_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_blank_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_cntrl_OBJECTS = unictype/test-ctype_cntrl.$(OBJEXT)
 test_ctype_cntrl_OBJECTS = $(am_test_ctype_cntrl_OBJECTS)
-test_ctype_cntrl_LDADD = $(LDADD)
-test_ctype_cntrl_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_cntrl_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_digit_OBJECTS = unictype/test-ctype_digit.$(OBJEXT)
 test_ctype_digit_OBJECTS = $(am_test_ctype_digit_OBJECTS)
-test_ctype_digit_LDADD = $(LDADD)
-test_ctype_digit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_digit_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_graph_OBJECTS = unictype/test-ctype_graph.$(OBJEXT)
 test_ctype_graph_OBJECTS = $(am_test_ctype_graph_OBJECTS)
-test_ctype_graph_LDADD = $(LDADD)
-test_ctype_graph_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_graph_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_lower_OBJECTS = unictype/test-ctype_lower.$(OBJEXT)
 test_ctype_lower_OBJECTS = $(am_test_ctype_lower_OBJECTS)
-test_ctype_lower_LDADD = $(LDADD)
-test_ctype_lower_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_lower_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_print_OBJECTS = unictype/test-ctype_print.$(OBJEXT)
 test_ctype_print_OBJECTS = $(am_test_ctype_print_OBJECTS)
-test_ctype_print_LDADD = $(LDADD)
-test_ctype_print_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_print_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_punct_OBJECTS = unictype/test-ctype_punct.$(OBJEXT)
 test_ctype_punct_OBJECTS = $(am_test_ctype_punct_OBJECTS)
-test_ctype_punct_LDADD = $(LDADD)
-test_ctype_punct_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_punct_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_space_OBJECTS = unictype/test-ctype_space.$(OBJEXT)
 test_ctype_space_OBJECTS = $(am_test_ctype_space_OBJECTS)
-test_ctype_space_LDADD = $(LDADD)
-test_ctype_space_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_space_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_upper_OBJECTS = unictype/test-ctype_upper.$(OBJEXT)
 test_ctype_upper_OBJECTS = $(am_test_ctype_upper_OBJECTS)
-test_ctype_upper_LDADD = $(LDADD)
-test_ctype_upper_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_upper_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ctype_xdigit_OBJECTS = unictype/test-ctype_xdigit.$(OBJEXT)
 test_ctype_xdigit_OBJECTS = $(am_test_ctype_xdigit_OBJECTS)
-test_ctype_xdigit_LDADD = $(LDADD)
-test_ctype_xdigit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_ctype_xdigit_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_decdigit_OBJECTS = unictype/test-decdigit.$(OBJEXT)
 test_decdigit_OBJECTS = $(am_test_decdigit_OBJECTS)
-test_decdigit_LDADD = $(LDADD)
-test_decdigit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_decdigit_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_decomposing_form_OBJECTS =  \
        uninorm/test-decomposing-form.$(OBJEXT)
 test_decomposing_form_OBJECTS = $(am_test_decomposing_form_OBJECTS)
-test_decomposing_form_LDADD = $(LDADD)
-test_decomposing_form_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_decomposing_form_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_decomposition_OBJECTS = uninorm/test-decomposition.$(OBJEXT)
 test_decomposition_OBJECTS = $(am_test_decomposition_OBJECTS)
-test_decomposition_LDADD = $(LDADD)
-test_decomposition_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_decomposition_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_digit_OBJECTS = unictype/test-digit.$(OBJEXT)
 test_digit_OBJECTS = $(am_test_digit_OBJECTS)
-test_digit_LDADD = $(LDADD)
-test_digit_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
-       $(am__DEPENDENCIES_1)
+test_digit_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_environ_SOURCES = test-environ.c
 test_environ_OBJECTS = test-environ.$(OBJEXT)
 test_environ_LDADD = $(LDADD)
@@ -1046,7 +1091,38 @@ test_errno_OBJECTS = test-errno.$(OBJEXT)
 test_errno_LDADD = $(LDADD)
 test_errno_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
        $(am__DEPENDENCIES_1)
-am_test_frexpl_nolibm_OBJECTS = test-frexpl.$(OBJEXT)
+test_fdopen_SOURCES = test-fdopen.c
+test_fdopen_OBJECTS = test-fdopen.$(OBJEXT)
+test_fdopen_LDADD = $(LDADD)
+test_fdopen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
+test_fgetc_SOURCES = test-fgetc.c
+test_fgetc_OBJECTS = test-fgetc.$(OBJEXT)
+test_fgetc_LDADD = $(LDADD)
+test_fgetc_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+       $(am__DEPENDENCIES_1)
+test_float_SOURCES = test-float.c
+test_float_OBJECTS = test-float.$(OBJEXT)
+test_float_LDADD = $(LDADD)
+test_float_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+       $(am__DEPENDENCIES_1)
+test_fputc_SOURCES = test-fputc.c
+test_fputc_OBJECTS = test-fputc.$(OBJEXT)
+test_fputc_LDADD = $(LDADD)
+test_fputc_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+       $(am__DEPENDENCIES_1)
+test_fread_SOURCES = test-fread.c
+test_fread_OBJECTS = test-fread.$(OBJEXT)
+test_fread_LDADD = $(LDADD)
+test_fread_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+       $(am__DEPENDENCIES_1)
+am_test_frexp_nolibm_OBJECTS = test-frexp.$(OBJEXT) randomd.$(OBJEXT)
+test_frexp_nolibm_OBJECTS = $(am_test_frexp_nolibm_OBJECTS)
+test_frexp_nolibm_LDADD = $(LDADD)
+test_frexp_nolibm_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
+am_test_frexpl_nolibm_OBJECTS = test-frexpl.$(OBJEXT) \
+       randoml.$(OBJEXT)
 test_frexpl_nolibm_OBJECTS = $(am_test_frexpl_nolibm_OBJECTS)
 test_frexpl_nolibm_LDADD = $(LDADD)
 test_frexpl_nolibm_DEPENDENCIES = libtests.a ../lib/libunistring.la \
@@ -1056,10 +1132,13 @@ test_fseterr_OBJECTS = test-fseterr.$(OBJEXT)
 test_fseterr_LDADD = $(LDADD)
 test_fseterr_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
+test_fwrite_SOURCES = test-fwrite.c
+test_fwrite_OBJECTS = test-fwrite.$(OBJEXT)
+test_fwrite_LDADD = $(LDADD)
+test_fwrite_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
 test_iconv_SOURCES = test-iconv.c
 test_iconv_OBJECTS = test-iconv.$(OBJEXT)
-am__DEPENDENCIES_2 = libtests.a ../lib/libunistring.la libtests.a \
-       $(am__DEPENDENCIES_1)
 test_iconv_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_iconv_h_SOURCES = test-iconv-h.c
 test_iconv_h_OBJECTS = test-iconv-h.$(OBJEXT)
@@ -1068,8 +1147,16 @@ test_iconv_h_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
 am_test_ignorable_OBJECTS = unicase/test-ignorable.$(OBJEXT)
 test_ignorable_OBJECTS = $(am_test_ignorable_OBJECTS)
-test_ignorable_LDADD = $(LDADD)
-test_ignorable_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+test_ignorable_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_intprops_SOURCES = test-intprops.c
+test_intprops_OBJECTS = test-intprops.$(OBJEXT)
+test_intprops_LDADD = $(LDADD)
+test_intprops_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
+test_inttypes_SOURCES = test-inttypes.c
+test_inttypes_OBJECTS = test-inttypes.$(OBJEXT)
+test_inttypes_LDADD = $(LDADD)
+test_inttypes_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
 test_isnand_nolibm_SOURCES = test-isnand-nolibm.c
 test_isnand_nolibm_OBJECTS = test-isnand-nolibm.$(OBJEXT)
@@ -1086,6 +1173,42 @@ test_isnanl_nolibm_OBJECTS = test-isnanl-nolibm.$(OBJEXT)
 test_isnanl_nolibm_LDADD = $(LDADD)
 test_isnanl_nolibm_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
+test_iswblank_SOURCES = test-iswblank.c
+test_iswblank_OBJECTS = test-iswblank.$(OBJEXT)
+test_iswblank_LDADD = $(LDADD)
+test_iswblank_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
+am_test_joininggroup_byname_OBJECTS =  \
+       unictype/test-joininggroup_byname.$(OBJEXT)
+test_joininggroup_byname_OBJECTS =  \
+       $(am_test_joininggroup_byname_OBJECTS)
+test_joininggroup_byname_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_joininggroup_name_OBJECTS =  \
+       unictype/test-joininggroup_name.$(OBJEXT)
+test_joininggroup_name_OBJECTS = $(am_test_joininggroup_name_OBJECTS)
+test_joininggroup_name_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_joininggroup_of_OBJECTS =  \
+       unictype/test-joininggroup_of.$(OBJEXT)
+test_joininggroup_of_OBJECTS = $(am_test_joininggroup_of_OBJECTS)
+test_joininggroup_of_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_joiningtype_byname_OBJECTS =  \
+       unictype/test-joiningtype_byname.$(OBJEXT)
+test_joiningtype_byname_OBJECTS =  \
+       $(am_test_joiningtype_byname_OBJECTS)
+test_joiningtype_byname_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_joiningtype_longname_OBJECTS =  \
+       unictype/test-joiningtype_longname.$(OBJEXT)
+test_joiningtype_longname_OBJECTS =  \
+       $(am_test_joiningtype_longname_OBJECTS)
+test_joiningtype_longname_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_joiningtype_name_OBJECTS =  \
+       unictype/test-joiningtype_name.$(OBJEXT)
+test_joiningtype_name_OBJECTS = $(am_test_joiningtype_name_OBJECTS)
+test_joiningtype_name_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_joiningtype_of_OBJECTS =  \
+       unictype/test-joiningtype_of.$(OBJEXT)
+test_joiningtype_of_OBJECTS = $(am_test_joiningtype_of_OBJECTS)
+test_joiningtype_of_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_locale_SOURCES = test-locale.c
 test_locale_OBJECTS = test-locale.$(OBJEXT)
 test_locale_LDADD = $(LDADD)
@@ -1097,7 +1220,8 @@ test_locale_language_OBJECTS = $(am_test_locale_language_OBJECTS)
 test_locale_language_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_localename_SOURCES = test-localename.c
 test_localename_OBJECTS = test-localename.$(OBJEXT)
-test_localename_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_localename_DEPENDENCIES = $(am__DEPENDENCIES_2) \
+       $(am__DEPENDENCIES_1)
 test_lock_SOURCES = test-lock.c
 test_lock_OBJECTS = test-lock.$(OBJEXT)
 test_lock_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -1116,6 +1240,11 @@ test_mbrtowc_OBJECTS = test-mbrtowc.$(OBJEXT)
 test_mbrtowc_LDADD = $(LDADD)
 test_mbrtowc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
+test_mbrtowc_w32_SOURCES = test-mbrtowc-w32.c
+test_mbrtowc_w32_OBJECTS = test-mbrtowc-w32.$(OBJEXT)
+test_mbrtowc_w32_LDADD = $(LDADD)
+test_mbrtowc_w32_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
 test_mbsinit_SOURCES = test-mbsinit.c
 test_mbsinit_OBJECTS = test-mbsinit.$(OBJEXT)
 test_mbsinit_LDADD = $(LDADD)
@@ -1128,542 +1257,405 @@ test_memchr_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
 am_test_mirror_OBJECTS = unictype/test-mirror.$(OBJEXT)
 test_mirror_OBJECTS = $(am_test_mirror_OBJECTS)
-test_mirror_LDADD = $(LDADD)
-test_mirror_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_mirror_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_nfc_OBJECTS = uninorm/test-nfc.$(OBJEXT) \
        uninorm/test-u8-nfc.$(OBJEXT) uninorm/test-u16-nfc.$(OBJEXT) \
        uninorm/test-u32-nfc.$(OBJEXT)
 test_nfc_OBJECTS = $(am_test_nfc_OBJECTS)
-test_nfc_LDADD = $(LDADD)
-test_nfc_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
-       $(am__DEPENDENCIES_1)
+test_nfc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_nfd_OBJECTS = uninorm/test-nfd.$(OBJEXT) \
        uninorm/test-u8-nfd.$(OBJEXT) uninorm/test-u16-nfd.$(OBJEXT) \
        uninorm/test-u32-nfd.$(OBJEXT)
 test_nfd_OBJECTS = $(am_test_nfd_OBJECTS)
-test_nfd_LDADD = $(LDADD)
-test_nfd_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
-       $(am__DEPENDENCIES_1)
+test_nfd_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_nfkc_OBJECTS = uninorm/test-nfkc.$(OBJEXT) \
        uninorm/test-u8-nfkc.$(OBJEXT) uninorm/test-u16-nfkc.$(OBJEXT) \
        uninorm/test-u32-nfkc.$(OBJEXT)
 test_nfkc_OBJECTS = $(am_test_nfkc_OBJECTS)
-test_nfkc_LDADD = $(LDADD)
-test_nfkc_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
-       $(am__DEPENDENCIES_1)
+test_nfkc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_nfkd_OBJECTS = uninorm/test-nfkd.$(OBJEXT) \
        uninorm/test-u8-nfkd.$(OBJEXT) uninorm/test-u16-nfkd.$(OBJEXT) \
        uninorm/test-u32-nfkd.$(OBJEXT)
 test_nfkd_OBJECTS = $(am_test_nfkd_OBJECTS)
-test_nfkd_LDADD = $(LDADD)
-test_nfkd_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
-       $(am__DEPENDENCIES_1)
+test_nfkd_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_numeric_OBJECTS = unictype/test-numeric.$(OBJEXT)
 test_numeric_OBJECTS = $(am_test_numeric_OBJECTS)
-test_numeric_LDADD = $(LDADD)
-test_numeric_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_numeric_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_alphabetic_OBJECTS = unictype/test-pr_alphabetic.$(OBJEXT)
 test_pr_alphabetic_OBJECTS = $(am_test_pr_alphabetic_OBJECTS)
-test_pr_alphabetic_LDADD = $(LDADD)
-test_pr_alphabetic_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_alphabetic_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_ascii_hex_digit_OBJECTS =  \
        unictype/test-pr_ascii_hex_digit.$(OBJEXT)
 test_pr_ascii_hex_digit_OBJECTS =  \
        $(am_test_pr_ascii_hex_digit_OBJECTS)
-test_pr_ascii_hex_digit_LDADD = $(LDADD)
-test_pr_ascii_hex_digit_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_ascii_hex_digit_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_arabic_digit_OBJECTS =  \
        unictype/test-pr_bidi_arabic_digit.$(OBJEXT)
 test_pr_bidi_arabic_digit_OBJECTS =  \
        $(am_test_pr_bidi_arabic_digit_OBJECTS)
-test_pr_bidi_arabic_digit_LDADD = $(LDADD)
-test_pr_bidi_arabic_digit_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_arabic_digit_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_arabic_right_to_left_OBJECTS =  \
        unictype/test-pr_bidi_arabic_right_to_left.$(OBJEXT)
 test_pr_bidi_arabic_right_to_left_OBJECTS =  \
        $(am_test_pr_bidi_arabic_right_to_left_OBJECTS)
-test_pr_bidi_arabic_right_to_left_LDADD = $(LDADD)
-test_pr_bidi_arabic_right_to_left_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_arabic_right_to_left_DEPENDENCIES =  \
+       $(am__DEPENDENCIES_2)
 am_test_pr_bidi_block_separator_OBJECTS =  \
        unictype/test-pr_bidi_block_separator.$(OBJEXT)
 test_pr_bidi_block_separator_OBJECTS =  \
        $(am_test_pr_bidi_block_separator_OBJECTS)
-test_pr_bidi_block_separator_LDADD = $(LDADD)
-test_pr_bidi_block_separator_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_block_separator_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_boundary_neutral_OBJECTS =  \
        unictype/test-pr_bidi_boundary_neutral.$(OBJEXT)
 test_pr_bidi_boundary_neutral_OBJECTS =  \
        $(am_test_pr_bidi_boundary_neutral_OBJECTS)
-test_pr_bidi_boundary_neutral_LDADD = $(LDADD)
-test_pr_bidi_boundary_neutral_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_boundary_neutral_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_common_separator_OBJECTS =  \
        unictype/test-pr_bidi_common_separator.$(OBJEXT)
 test_pr_bidi_common_separator_OBJECTS =  \
        $(am_test_pr_bidi_common_separator_OBJECTS)
-test_pr_bidi_common_separator_LDADD = $(LDADD)
-test_pr_bidi_common_separator_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_common_separator_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_control_OBJECTS =  \
        unictype/test-pr_bidi_control.$(OBJEXT)
 test_pr_bidi_control_OBJECTS = $(am_test_pr_bidi_control_OBJECTS)
-test_pr_bidi_control_LDADD = $(LDADD)
-test_pr_bidi_control_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_control_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_embedding_or_override_OBJECTS =  \
        unictype/test-pr_bidi_embedding_or_override.$(OBJEXT)
 test_pr_bidi_embedding_or_override_OBJECTS =  \
        $(am_test_pr_bidi_embedding_or_override_OBJECTS)
-test_pr_bidi_embedding_or_override_LDADD = $(LDADD)
-test_pr_bidi_embedding_or_override_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_embedding_or_override_DEPENDENCIES =  \
+       $(am__DEPENDENCIES_2)
 am_test_pr_bidi_eur_num_separator_OBJECTS =  \
        unictype/test-pr_bidi_eur_num_separator.$(OBJEXT)
 test_pr_bidi_eur_num_separator_OBJECTS =  \
        $(am_test_pr_bidi_eur_num_separator_OBJECTS)
-test_pr_bidi_eur_num_separator_LDADD = $(LDADD)
-test_pr_bidi_eur_num_separator_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_eur_num_separator_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_eur_num_terminator_OBJECTS =  \
        unictype/test-pr_bidi_eur_num_terminator.$(OBJEXT)
 test_pr_bidi_eur_num_terminator_OBJECTS =  \
        $(am_test_pr_bidi_eur_num_terminator_OBJECTS)
-test_pr_bidi_eur_num_terminator_LDADD = $(LDADD)
-test_pr_bidi_eur_num_terminator_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_eur_num_terminator_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_european_digit_OBJECTS =  \
        unictype/test-pr_bidi_european_digit.$(OBJEXT)
 test_pr_bidi_european_digit_OBJECTS =  \
        $(am_test_pr_bidi_european_digit_OBJECTS)
-test_pr_bidi_european_digit_LDADD = $(LDADD)
-test_pr_bidi_european_digit_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_european_digit_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_hebrew_right_to_left_OBJECTS =  \
        unictype/test-pr_bidi_hebrew_right_to_left.$(OBJEXT)
 test_pr_bidi_hebrew_right_to_left_OBJECTS =  \
        $(am_test_pr_bidi_hebrew_right_to_left_OBJECTS)
-test_pr_bidi_hebrew_right_to_left_LDADD = $(LDADD)
-test_pr_bidi_hebrew_right_to_left_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_hebrew_right_to_left_DEPENDENCIES =  \
+       $(am__DEPENDENCIES_2)
 am_test_pr_bidi_left_to_right_OBJECTS =  \
        unictype/test-pr_bidi_left_to_right.$(OBJEXT)
 test_pr_bidi_left_to_right_OBJECTS =  \
        $(am_test_pr_bidi_left_to_right_OBJECTS)
-test_pr_bidi_left_to_right_LDADD = $(LDADD)
-test_pr_bidi_left_to_right_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_left_to_right_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_non_spacing_mark_OBJECTS =  \
        unictype/test-pr_bidi_non_spacing_mark.$(OBJEXT)
 test_pr_bidi_non_spacing_mark_OBJECTS =  \
        $(am_test_pr_bidi_non_spacing_mark_OBJECTS)
-test_pr_bidi_non_spacing_mark_LDADD = $(LDADD)
-test_pr_bidi_non_spacing_mark_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_non_spacing_mark_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_other_neutral_OBJECTS =  \
        unictype/test-pr_bidi_other_neutral.$(OBJEXT)
 test_pr_bidi_other_neutral_OBJECTS =  \
        $(am_test_pr_bidi_other_neutral_OBJECTS)
-test_pr_bidi_other_neutral_LDADD = $(LDADD)
-test_pr_bidi_other_neutral_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_other_neutral_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_pdf_OBJECTS = unictype/test-pr_bidi_pdf.$(OBJEXT)
 test_pr_bidi_pdf_OBJECTS = $(am_test_pr_bidi_pdf_OBJECTS)
-test_pr_bidi_pdf_LDADD = $(LDADD)
-test_pr_bidi_pdf_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_pdf_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_segment_separator_OBJECTS =  \
        unictype/test-pr_bidi_segment_separator.$(OBJEXT)
 test_pr_bidi_segment_separator_OBJECTS =  \
        $(am_test_pr_bidi_segment_separator_OBJECTS)
-test_pr_bidi_segment_separator_LDADD = $(LDADD)
-test_pr_bidi_segment_separator_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_segment_separator_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_bidi_whitespace_OBJECTS =  \
        unictype/test-pr_bidi_whitespace.$(OBJEXT)
 test_pr_bidi_whitespace_OBJECTS =  \
        $(am_test_pr_bidi_whitespace_OBJECTS)
-test_pr_bidi_whitespace_LDADD = $(LDADD)
-test_pr_bidi_whitespace_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_bidi_whitespace_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_byname_OBJECTS = unictype/test-pr_byname.$(OBJEXT)
 test_pr_byname_OBJECTS = $(am_test_pr_byname_OBJECTS)
-test_pr_byname_LDADD = $(LDADD)
-test_pr_byname_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_byname_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_pr_case_ignorable_OBJECTS =  \
+       unictype/test-pr_case_ignorable.$(OBJEXT)
+test_pr_case_ignorable_OBJECTS = $(am_test_pr_case_ignorable_OBJECTS)
+test_pr_case_ignorable_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_pr_cased_OBJECTS = unictype/test-pr_cased.$(OBJEXT)
+test_pr_cased_OBJECTS = $(am_test_pr_cased_OBJECTS)
+test_pr_cased_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_pr_changes_when_casefolded_OBJECTS =  \
+       unictype/test-pr_changes_when_casefolded.$(OBJEXT)
+test_pr_changes_when_casefolded_OBJECTS =  \
+       $(am_test_pr_changes_when_casefolded_OBJECTS)
+test_pr_changes_when_casefolded_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_pr_changes_when_casemapped_OBJECTS =  \
+       unictype/test-pr_changes_when_casemapped.$(OBJEXT)
+test_pr_changes_when_casemapped_OBJECTS =  \
+       $(am_test_pr_changes_when_casemapped_OBJECTS)
+test_pr_changes_when_casemapped_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_pr_changes_when_lowercased_OBJECTS =  \
+       unictype/test-pr_changes_when_lowercased.$(OBJEXT)
+test_pr_changes_when_lowercased_OBJECTS =  \
+       $(am_test_pr_changes_when_lowercased_OBJECTS)
+test_pr_changes_when_lowercased_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_pr_changes_when_titlecased_OBJECTS =  \
+       unictype/test-pr_changes_when_titlecased.$(OBJEXT)
+test_pr_changes_when_titlecased_OBJECTS =  \
+       $(am_test_pr_changes_when_titlecased_OBJECTS)
+test_pr_changes_when_titlecased_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_pr_changes_when_uppercased_OBJECTS =  \
+       unictype/test-pr_changes_when_uppercased.$(OBJEXT)
+test_pr_changes_when_uppercased_OBJECTS =  \
+       $(am_test_pr_changes_when_uppercased_OBJECTS)
+test_pr_changes_when_uppercased_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_combining_OBJECTS = unictype/test-pr_combining.$(OBJEXT)
 test_pr_combining_OBJECTS = $(am_test_pr_combining_OBJECTS)
-test_pr_combining_LDADD = $(LDADD)
-test_pr_combining_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_combining_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_composite_OBJECTS = unictype/test-pr_composite.$(OBJEXT)
 test_pr_composite_OBJECTS = $(am_test_pr_composite_OBJECTS)
-test_pr_composite_LDADD = $(LDADD)
-test_pr_composite_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_composite_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_currency_symbol_OBJECTS =  \
        unictype/test-pr_currency_symbol.$(OBJEXT)
 test_pr_currency_symbol_OBJECTS =  \
        $(am_test_pr_currency_symbol_OBJECTS)
-test_pr_currency_symbol_LDADD = $(LDADD)
-test_pr_currency_symbol_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_currency_symbol_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_dash_OBJECTS = unictype/test-pr_dash.$(OBJEXT)
 test_pr_dash_OBJECTS = $(am_test_pr_dash_OBJECTS)
-test_pr_dash_LDADD = $(LDADD)
-test_pr_dash_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_dash_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_decimal_digit_OBJECTS =  \
        unictype/test-pr_decimal_digit.$(OBJEXT)
 test_pr_decimal_digit_OBJECTS = $(am_test_pr_decimal_digit_OBJECTS)
-test_pr_decimal_digit_LDADD = $(LDADD)
-test_pr_decimal_digit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_decimal_digit_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_default_ignorable_code_point_OBJECTS =  \
        unictype/test-pr_default_ignorable_code_point.$(OBJEXT)
 test_pr_default_ignorable_code_point_OBJECTS =  \
        $(am_test_pr_default_ignorable_code_point_OBJECTS)
-test_pr_default_ignorable_code_point_LDADD = $(LDADD)
-test_pr_default_ignorable_code_point_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_default_ignorable_code_point_DEPENDENCIES =  \
+       $(am__DEPENDENCIES_2)
 am_test_pr_deprecated_OBJECTS = unictype/test-pr_deprecated.$(OBJEXT)
 test_pr_deprecated_OBJECTS = $(am_test_pr_deprecated_OBJECTS)
-test_pr_deprecated_LDADD = $(LDADD)
-test_pr_deprecated_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_deprecated_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_diacritic_OBJECTS = unictype/test-pr_diacritic.$(OBJEXT)
 test_pr_diacritic_OBJECTS = $(am_test_pr_diacritic_OBJECTS)
-test_pr_diacritic_LDADD = $(LDADD)
-test_pr_diacritic_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_diacritic_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_extender_OBJECTS = unictype/test-pr_extender.$(OBJEXT)
 test_pr_extender_OBJECTS = $(am_test_pr_extender_OBJECTS)
-test_pr_extender_LDADD = $(LDADD)
-test_pr_extender_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_extender_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_format_control_OBJECTS =  \
        unictype/test-pr_format_control.$(OBJEXT)
 test_pr_format_control_OBJECTS = $(am_test_pr_format_control_OBJECTS)
-test_pr_format_control_LDADD = $(LDADD)
-test_pr_format_control_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_format_control_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_grapheme_base_OBJECTS =  \
        unictype/test-pr_grapheme_base.$(OBJEXT)
 test_pr_grapheme_base_OBJECTS = $(am_test_pr_grapheme_base_OBJECTS)
-test_pr_grapheme_base_LDADD = $(LDADD)
-test_pr_grapheme_base_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_grapheme_base_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_grapheme_extend_OBJECTS =  \
        unictype/test-pr_grapheme_extend.$(OBJEXT)
 test_pr_grapheme_extend_OBJECTS =  \
        $(am_test_pr_grapheme_extend_OBJECTS)
-test_pr_grapheme_extend_LDADD = $(LDADD)
-test_pr_grapheme_extend_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_grapheme_extend_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_grapheme_link_OBJECTS =  \
        unictype/test-pr_grapheme_link.$(OBJEXT)
 test_pr_grapheme_link_OBJECTS = $(am_test_pr_grapheme_link_OBJECTS)
-test_pr_grapheme_link_LDADD = $(LDADD)
-test_pr_grapheme_link_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_grapheme_link_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_hex_digit_OBJECTS = unictype/test-pr_hex_digit.$(OBJEXT)
 test_pr_hex_digit_OBJECTS = $(am_test_pr_hex_digit_OBJECTS)
-test_pr_hex_digit_LDADD = $(LDADD)
-test_pr_hex_digit_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_hex_digit_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_hyphen_OBJECTS = unictype/test-pr_hyphen.$(OBJEXT)
 test_pr_hyphen_OBJECTS = $(am_test_pr_hyphen_OBJECTS)
-test_pr_hyphen_LDADD = $(LDADD)
-test_pr_hyphen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_hyphen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_id_continue_OBJECTS =  \
        unictype/test-pr_id_continue.$(OBJEXT)
 test_pr_id_continue_OBJECTS = $(am_test_pr_id_continue_OBJECTS)
-test_pr_id_continue_LDADD = $(LDADD)
-test_pr_id_continue_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_id_continue_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_id_start_OBJECTS = unictype/test-pr_id_start.$(OBJEXT)
 test_pr_id_start_OBJECTS = $(am_test_pr_id_start_OBJECTS)
-test_pr_id_start_LDADD = $(LDADD)
-test_pr_id_start_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_id_start_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_ideographic_OBJECTS =  \
        unictype/test-pr_ideographic.$(OBJEXT)
 test_pr_ideographic_OBJECTS = $(am_test_pr_ideographic_OBJECTS)
-test_pr_ideographic_LDADD = $(LDADD)
-test_pr_ideographic_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_ideographic_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_ids_binary_operator_OBJECTS =  \
        unictype/test-pr_ids_binary_operator.$(OBJEXT)
 test_pr_ids_binary_operator_OBJECTS =  \
        $(am_test_pr_ids_binary_operator_OBJECTS)
-test_pr_ids_binary_operator_LDADD = $(LDADD)
-test_pr_ids_binary_operator_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_ids_binary_operator_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_ids_trinary_operator_OBJECTS =  \
        unictype/test-pr_ids_trinary_operator.$(OBJEXT)
 test_pr_ids_trinary_operator_OBJECTS =  \
        $(am_test_pr_ids_trinary_operator_OBJECTS)
-test_pr_ids_trinary_operator_LDADD = $(LDADD)
-test_pr_ids_trinary_operator_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_ids_trinary_operator_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_ignorable_control_OBJECTS =  \
        unictype/test-pr_ignorable_control.$(OBJEXT)
 test_pr_ignorable_control_OBJECTS =  \
        $(am_test_pr_ignorable_control_OBJECTS)
-test_pr_ignorable_control_LDADD = $(LDADD)
-test_pr_ignorable_control_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_ignorable_control_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_iso_control_OBJECTS =  \
        unictype/test-pr_iso_control.$(OBJEXT)
 test_pr_iso_control_OBJECTS = $(am_test_pr_iso_control_OBJECTS)
-test_pr_iso_control_LDADD = $(LDADD)
-test_pr_iso_control_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_iso_control_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_join_control_OBJECTS =  \
        unictype/test-pr_join_control.$(OBJEXT)
 test_pr_join_control_OBJECTS = $(am_test_pr_join_control_OBJECTS)
-test_pr_join_control_LDADD = $(LDADD)
-test_pr_join_control_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_join_control_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_left_of_pair_OBJECTS =  \
        unictype/test-pr_left_of_pair.$(OBJEXT)
 test_pr_left_of_pair_OBJECTS = $(am_test_pr_left_of_pair_OBJECTS)
-test_pr_left_of_pair_LDADD = $(LDADD)
-test_pr_left_of_pair_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_left_of_pair_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_line_separator_OBJECTS =  \
        unictype/test-pr_line_separator.$(OBJEXT)
 test_pr_line_separator_OBJECTS = $(am_test_pr_line_separator_OBJECTS)
-test_pr_line_separator_LDADD = $(LDADD)
-test_pr_line_separator_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_line_separator_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_logical_order_exception_OBJECTS =  \
        unictype/test-pr_logical_order_exception.$(OBJEXT)
 test_pr_logical_order_exception_OBJECTS =  \
        $(am_test_pr_logical_order_exception_OBJECTS)
-test_pr_logical_order_exception_LDADD = $(LDADD)
-test_pr_logical_order_exception_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_logical_order_exception_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_lowercase_OBJECTS = unictype/test-pr_lowercase.$(OBJEXT)
 test_pr_lowercase_OBJECTS = $(am_test_pr_lowercase_OBJECTS)
-test_pr_lowercase_LDADD = $(LDADD)
-test_pr_lowercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_lowercase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_math_OBJECTS = unictype/test-pr_math.$(OBJEXT)
 test_pr_math_OBJECTS = $(am_test_pr_math_OBJECTS)
-test_pr_math_LDADD = $(LDADD)
-test_pr_math_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_math_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_non_break_OBJECTS = unictype/test-pr_non_break.$(OBJEXT)
 test_pr_non_break_OBJECTS = $(am_test_pr_non_break_OBJECTS)
-test_pr_non_break_LDADD = $(LDADD)
-test_pr_non_break_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_non_break_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_not_a_character_OBJECTS =  \
        unictype/test-pr_not_a_character.$(OBJEXT)
 test_pr_not_a_character_OBJECTS =  \
        $(am_test_pr_not_a_character_OBJECTS)
-test_pr_not_a_character_LDADD = $(LDADD)
-test_pr_not_a_character_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_not_a_character_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_numeric_OBJECTS = unictype/test-pr_numeric.$(OBJEXT)
 test_pr_numeric_OBJECTS = $(am_test_pr_numeric_OBJECTS)
-test_pr_numeric_LDADD = $(LDADD)
-test_pr_numeric_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_numeric_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_other_alphabetic_OBJECTS =  \
        unictype/test-pr_other_alphabetic.$(OBJEXT)
 test_pr_other_alphabetic_OBJECTS =  \
        $(am_test_pr_other_alphabetic_OBJECTS)
-test_pr_other_alphabetic_LDADD = $(LDADD)
-test_pr_other_alphabetic_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_other_alphabetic_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_other_default_ignorable_code_point_OBJECTS =  \
        unictype/test-pr_other_default_ignorable_code_point.$(OBJEXT)
 test_pr_other_default_ignorable_code_point_OBJECTS =  \
        $(am_test_pr_other_default_ignorable_code_point_OBJECTS)
-test_pr_other_default_ignorable_code_point_LDADD = $(LDADD)
-test_pr_other_default_ignorable_code_point_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_other_default_ignorable_code_point_DEPENDENCIES =  \
+       $(am__DEPENDENCIES_2)
 am_test_pr_other_grapheme_extend_OBJECTS =  \
        unictype/test-pr_other_grapheme_extend.$(OBJEXT)
 test_pr_other_grapheme_extend_OBJECTS =  \
        $(am_test_pr_other_grapheme_extend_OBJECTS)
-test_pr_other_grapheme_extend_LDADD = $(LDADD)
-test_pr_other_grapheme_extend_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_other_grapheme_extend_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_other_id_continue_OBJECTS =  \
        unictype/test-pr_other_id_continue.$(OBJEXT)
 test_pr_other_id_continue_OBJECTS =  \
        $(am_test_pr_other_id_continue_OBJECTS)
-test_pr_other_id_continue_LDADD = $(LDADD)
-test_pr_other_id_continue_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_other_id_continue_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_other_id_start_OBJECTS =  \
        unictype/test-pr_other_id_start.$(OBJEXT)
 test_pr_other_id_start_OBJECTS = $(am_test_pr_other_id_start_OBJECTS)
-test_pr_other_id_start_LDADD = $(LDADD)
-test_pr_other_id_start_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_other_id_start_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_other_lowercase_OBJECTS =  \
        unictype/test-pr_other_lowercase.$(OBJEXT)
 test_pr_other_lowercase_OBJECTS =  \
        $(am_test_pr_other_lowercase_OBJECTS)
-test_pr_other_lowercase_LDADD = $(LDADD)
-test_pr_other_lowercase_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_other_lowercase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_other_math_OBJECTS = unictype/test-pr_other_math.$(OBJEXT)
 test_pr_other_math_OBJECTS = $(am_test_pr_other_math_OBJECTS)
-test_pr_other_math_LDADD = $(LDADD)
-test_pr_other_math_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_other_math_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_other_uppercase_OBJECTS =  \
        unictype/test-pr_other_uppercase.$(OBJEXT)
 test_pr_other_uppercase_OBJECTS =  \
        $(am_test_pr_other_uppercase_OBJECTS)
-test_pr_other_uppercase_LDADD = $(LDADD)
-test_pr_other_uppercase_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_other_uppercase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_paired_punctuation_OBJECTS =  \
        unictype/test-pr_paired_punctuation.$(OBJEXT)
 test_pr_paired_punctuation_OBJECTS =  \
        $(am_test_pr_paired_punctuation_OBJECTS)
-test_pr_paired_punctuation_LDADD = $(LDADD)
-test_pr_paired_punctuation_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_paired_punctuation_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_paragraph_separator_OBJECTS =  \
        unictype/test-pr_paragraph_separator.$(OBJEXT)
 test_pr_paragraph_separator_OBJECTS =  \
        $(am_test_pr_paragraph_separator_OBJECTS)
-test_pr_paragraph_separator_LDADD = $(LDADD)
-test_pr_paragraph_separator_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_paragraph_separator_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_pattern_syntax_OBJECTS =  \
        unictype/test-pr_pattern_syntax.$(OBJEXT)
 test_pr_pattern_syntax_OBJECTS = $(am_test_pr_pattern_syntax_OBJECTS)
-test_pr_pattern_syntax_LDADD = $(LDADD)
-test_pr_pattern_syntax_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_pattern_syntax_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_pattern_white_space_OBJECTS =  \
        unictype/test-pr_pattern_white_space.$(OBJEXT)
 test_pr_pattern_white_space_OBJECTS =  \
        $(am_test_pr_pattern_white_space_OBJECTS)
-test_pr_pattern_white_space_LDADD = $(LDADD)
-test_pr_pattern_white_space_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_pattern_white_space_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_private_use_OBJECTS =  \
        unictype/test-pr_private_use.$(OBJEXT)
 test_pr_private_use_OBJECTS = $(am_test_pr_private_use_OBJECTS)
-test_pr_private_use_LDADD = $(LDADD)
-test_pr_private_use_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_private_use_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_punctuation_OBJECTS =  \
        unictype/test-pr_punctuation.$(OBJEXT)
 test_pr_punctuation_OBJECTS = $(am_test_pr_punctuation_OBJECTS)
-test_pr_punctuation_LDADD = $(LDADD)
-test_pr_punctuation_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_punctuation_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_quotation_mark_OBJECTS =  \
        unictype/test-pr_quotation_mark.$(OBJEXT)
 test_pr_quotation_mark_OBJECTS = $(am_test_pr_quotation_mark_OBJECTS)
-test_pr_quotation_mark_LDADD = $(LDADD)
-test_pr_quotation_mark_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_quotation_mark_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_radical_OBJECTS = unictype/test-pr_radical.$(OBJEXT)
 test_pr_radical_OBJECTS = $(am_test_pr_radical_OBJECTS)
-test_pr_radical_LDADD = $(LDADD)
-test_pr_radical_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_radical_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_sentence_terminal_OBJECTS =  \
        unictype/test-pr_sentence_terminal.$(OBJEXT)
 test_pr_sentence_terminal_OBJECTS =  \
        $(am_test_pr_sentence_terminal_OBJECTS)
-test_pr_sentence_terminal_LDADD = $(LDADD)
-test_pr_sentence_terminal_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_sentence_terminal_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_soft_dotted_OBJECTS =  \
        unictype/test-pr_soft_dotted.$(OBJEXT)
 test_pr_soft_dotted_OBJECTS = $(am_test_pr_soft_dotted_OBJECTS)
-test_pr_soft_dotted_LDADD = $(LDADD)
-test_pr_soft_dotted_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_soft_dotted_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_space_OBJECTS = unictype/test-pr_space.$(OBJEXT)
 test_pr_space_OBJECTS = $(am_test_pr_space_OBJECTS)
-test_pr_space_LDADD = $(LDADD)
-test_pr_space_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_space_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_terminal_punctuation_OBJECTS =  \
        unictype/test-pr_terminal_punctuation.$(OBJEXT)
 test_pr_terminal_punctuation_OBJECTS =  \
        $(am_test_pr_terminal_punctuation_OBJECTS)
-test_pr_terminal_punctuation_LDADD = $(LDADD)
-test_pr_terminal_punctuation_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_terminal_punctuation_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_test_OBJECTS = unictype/test-pr_test.$(OBJEXT)
 test_pr_test_OBJECTS = $(am_test_pr_test_OBJECTS)
-test_pr_test_LDADD = $(LDADD)
-test_pr_test_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_test_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_titlecase_OBJECTS = unictype/test-pr_titlecase.$(OBJEXT)
 test_pr_titlecase_OBJECTS = $(am_test_pr_titlecase_OBJECTS)
-test_pr_titlecase_LDADD = $(LDADD)
-test_pr_titlecase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_titlecase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_unassigned_code_value_OBJECTS =  \
        unictype/test-pr_unassigned_code_value.$(OBJEXT)
 test_pr_unassigned_code_value_OBJECTS =  \
        $(am_test_pr_unassigned_code_value_OBJECTS)
-test_pr_unassigned_code_value_LDADD = $(LDADD)
-test_pr_unassigned_code_value_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_unassigned_code_value_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_unified_ideograph_OBJECTS =  \
        unictype/test-pr_unified_ideograph.$(OBJEXT)
 test_pr_unified_ideograph_OBJECTS =  \
        $(am_test_pr_unified_ideograph_OBJECTS)
-test_pr_unified_ideograph_LDADD = $(LDADD)
-test_pr_unified_ideograph_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_unified_ideograph_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_uppercase_OBJECTS = unictype/test-pr_uppercase.$(OBJEXT)
 test_pr_uppercase_OBJECTS = $(am_test_pr_uppercase_OBJECTS)
-test_pr_uppercase_LDADD = $(LDADD)
-test_pr_uppercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_uppercase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_variation_selector_OBJECTS =  \
        unictype/test-pr_variation_selector.$(OBJEXT)
 test_pr_variation_selector_OBJECTS =  \
        $(am_test_pr_variation_selector_OBJECTS)
-test_pr_variation_selector_LDADD = $(LDADD)
-test_pr_variation_selector_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_pr_variation_selector_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_white_space_OBJECTS =  \
        unictype/test-pr_white_space.$(OBJEXT)
 test_pr_white_space_OBJECTS = $(am_test_pr_white_space_OBJECTS)
-test_pr_white_space_LDADD = $(LDADD)
-test_pr_white_space_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_white_space_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_xid_continue_OBJECTS =  \
        unictype/test-pr_xid_continue.$(OBJEXT)
 test_pr_xid_continue_OBJECTS = $(am_test_pr_xid_continue_OBJECTS)
-test_pr_xid_continue_LDADD = $(LDADD)
-test_pr_xid_continue_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_xid_continue_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_xid_start_OBJECTS = unictype/test-pr_xid_start.$(OBJEXT)
 test_pr_xid_start_OBJECTS = $(am_test_pr_xid_start_OBJECTS)
-test_pr_xid_start_LDADD = $(LDADD)
-test_pr_xid_start_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_xid_start_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_pr_zero_width_OBJECTS = unictype/test-pr_zero_width.$(OBJEXT)
 test_pr_zero_width_OBJECTS = $(am_test_pr_zero_width_OBJECTS)
-test_pr_zero_width_LDADD = $(LDADD)
-test_pr_zero_width_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_pr_zero_width_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_printf_frexp_SOURCES = test-printf-frexp.c
 test_printf_frexp_OBJECTS = test-printf-frexp.$(OBJEXT)
 test_printf_frexp_LDADD = $(LDADD)
@@ -1676,14 +1668,22 @@ test_printf_frexpl_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
 am_test_scripts_OBJECTS = unictype/test-scripts.$(OBJEXT)
 test_scripts_OBJECTS = $(am_test_scripts_OBJECTS)
-test_scripts_LDADD = $(LDADD)
-test_scripts_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_scripts_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_setenv_SOURCES = test-setenv.c
 test_setenv_OBJECTS = test-setenv.$(OBJEXT)
 test_setenv_LDADD = $(LDADD)
 test_setenv_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
+test_setlocale1_SOURCES = test-setlocale1.c
+test_setlocale1_OBJECTS = test-setlocale1.$(OBJEXT)
+test_setlocale1_LDADD = $(LDADD)
+test_setlocale1_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
+test_setlocale2_SOURCES = test-setlocale2.c
+test_setlocale2_OBJECTS = test-setlocale2.$(OBJEXT)
+test_setlocale2_LDADD = $(LDADD)
+test_setlocale2_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
 test_signbit_SOURCES = test-signbit.c
 test_signbit_OBJECTS = test-signbit.$(OBJEXT)
 test_signbit_LDADD = $(LDADD)
@@ -1704,6 +1704,11 @@ test_stdint_OBJECTS = test-stdint.$(OBJEXT)
 test_stdint_LDADD = $(LDADD)
 test_stdint_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
+test_stdio_SOURCES = test-stdio.c
+test_stdio_OBJECTS = test-stdio.$(OBJEXT)
+test_stdio_LDADD = $(LDADD)
+test_stdio_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
+       $(am__DEPENDENCIES_1)
 test_stdlib_SOURCES = test-stdlib.c
 test_stdlib_OBJECTS = test-stdlib.$(OBJEXT)
 test_stdlib_LDADD = $(LDADD)
@@ -1730,66 +1735,62 @@ test_strncat_OBJECTS = test-strncat.$(OBJEXT)
 test_strncat_LDADD = $(LDADD)
 test_strncat_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
+test_strstr_SOURCES = test-strstr.c
+test_strstr_OBJECTS = test-strstr.$(OBJEXT)
+test_strstr_LDADD = $(LDADD)
+test_strstr_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
 am_test_sy_c_ident_OBJECTS = unictype/test-sy_c_ident.$(OBJEXT)
 test_sy_c_ident_OBJECTS = $(am_test_sy_c_ident_OBJECTS)
-test_sy_c_ident_LDADD = $(LDADD)
-test_sy_c_ident_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_sy_c_ident_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_sy_c_whitespace_OBJECTS =  \
        unictype/test-sy_c_whitespace.$(OBJEXT)
 test_sy_c_whitespace_OBJECTS = $(am_test_sy_c_whitespace_OBJECTS)
-test_sy_c_whitespace_LDADD = $(LDADD)
-test_sy_c_whitespace_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_sy_c_whitespace_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_sy_java_ident_OBJECTS = unictype/test-sy_java_ident.$(OBJEXT)
 test_sy_java_ident_OBJECTS = $(am_test_sy_java_ident_OBJECTS)
-test_sy_java_ident_LDADD = $(LDADD)
-test_sy_java_ident_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_sy_java_ident_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_sy_java_whitespace_OBJECTS =  \
        unictype/test-sy_java_whitespace.$(OBJEXT)
 test_sy_java_whitespace_OBJECTS =  \
        $(am_test_sy_java_whitespace_OBJECTS)
-test_sy_java_whitespace_LDADD = $(LDADD)
-test_sy_java_whitespace_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_sy_java_whitespace_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_sys_types_SOURCES = test-sys_types.c
+test_sys_types_OBJECTS = test-sys_types.$(OBJEXT)
+test_sys_types_LDADD = $(LDADD)
+test_sys_types_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
+test_thread_create_SOURCES = test-thread_create.c
+test_thread_create_OBJECTS = test-thread_create.$(OBJEXT)
+test_thread_create_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_thread_self_SOURCES = test-thread_self.c
+test_thread_self_OBJECTS = test-thread_self.$(OBJEXT)
+test_thread_self_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_asnprintf1_OBJECTS =  \
        unistdio/test-u16-asnprintf1.$(OBJEXT)
 test_u16_asnprintf1_OBJECTS = $(am_test_u16_asnprintf1_OBJECTS)
 test_u16_asnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_casecmp_OBJECTS = unicase/test-u16-casecmp.$(OBJEXT)
 test_u16_casecmp_OBJECTS = $(am_test_u16_casecmp_OBJECTS)
-test_u16_casecmp_LDADD = $(LDADD)
-test_u16_casecmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_casecmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_casecoll_OBJECTS = unicase/test-u16-casecoll.$(OBJEXT)
 test_u16_casecoll_OBJECTS = $(am_test_u16_casecoll_OBJECTS)
 test_u16_casecoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_casefold_OBJECTS = unicase/test-u16-casefold.$(OBJEXT)
 test_u16_casefold_OBJECTS = $(am_test_u16_casefold_OBJECTS)
-test_u16_casefold_LDADD = $(LDADD)
-test_u16_casefold_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_casefold_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_check_OBJECTS = unistr/test-u16-check.$(OBJEXT)
 test_u16_check_OBJECTS = $(am_test_u16_check_OBJECTS)
-test_u16_check_LDADD = $(LDADD)
-test_u16_check_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_check_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_chr_OBJECTS = unistr/test-u16-chr.$(OBJEXT)
 test_u16_chr_OBJECTS = $(am_test_u16_chr_OBJECTS)
-test_u16_chr_LDADD = $(LDADD)
-test_u16_chr_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_chr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_cmp_OBJECTS = unistr/test-u16-cmp.$(OBJEXT)
 test_u16_cmp_OBJECTS = $(am_test_u16_cmp_OBJECTS)
-test_u16_cmp_LDADD = $(LDADD)
-test_u16_cmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_cmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_cmp2_OBJECTS = unistr/test-u16-cmp2.$(OBJEXT)
 test_u16_cmp2_OBJECTS = $(am_test_u16_cmp2_OBJECTS)
-test_u16_cmp2_LDADD = $(LDADD)
-test_u16_cmp2_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_cmp2_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_conv_from_enc_OBJECTS =  \
        uniconv/test-u16-conv-from-enc.$(OBJEXT)
 test_u16_conv_from_enc_OBJECTS = $(am_test_u16_conv_from_enc_OBJECTS)
@@ -1800,84 +1801,67 @@ test_u16_conv_to_enc_OBJECTS = $(am_test_u16_conv_to_enc_OBJECTS)
 test_u16_conv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_cpy_OBJECTS = unistr/test-u16-cpy.$(OBJEXT)
 test_u16_cpy_OBJECTS = $(am_test_u16_cpy_OBJECTS)
-test_u16_cpy_LDADD = $(LDADD)
-test_u16_cpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_cpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_cpy_alloc_OBJECTS = unistr/test-u16-cpy-alloc.$(OBJEXT)
 test_u16_cpy_alloc_OBJECTS = $(am_test_u16_cpy_alloc_OBJECTS)
-test_u16_cpy_alloc_LDADD = $(LDADD)
-test_u16_cpy_alloc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_cpy_alloc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_grapheme_breaks_OBJECTS =  \
+       unigbrk/test-u16-grapheme-breaks.$(OBJEXT)
+test_u16_grapheme_breaks_OBJECTS =  \
+       $(am_test_u16_grapheme_breaks_OBJECTS)
+test_u16_grapheme_breaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_grapheme_next_OBJECTS =  \
+       unigbrk/test-u16-grapheme-next.$(OBJEXT)
+test_u16_grapheme_next_OBJECTS = $(am_test_u16_grapheme_next_OBJECTS)
+test_u16_grapheme_next_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_grapheme_prev_OBJECTS =  \
+       unigbrk/test-u16-grapheme-prev.$(OBJEXT)
+test_u16_grapheme_prev_OBJECTS = $(am_test_u16_grapheme_prev_OBJECTS)
+test_u16_grapheme_prev_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_is_cased_OBJECTS = unicase/test-u16-is-cased.$(OBJEXT)
 test_u16_is_cased_OBJECTS = $(am_test_u16_is_cased_OBJECTS)
-test_u16_is_cased_LDADD = $(LDADD)
-test_u16_is_cased_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_is_cased_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_is_casefolded_OBJECTS =  \
        unicase/test-u16-is-casefolded.$(OBJEXT)
 test_u16_is_casefolded_OBJECTS = $(am_test_u16_is_casefolded_OBJECTS)
-test_u16_is_casefolded_LDADD = $(LDADD)
-test_u16_is_casefolded_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_u16_is_casefolded_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_is_lowercase_OBJECTS =  \
        unicase/test-u16-is-lowercase.$(OBJEXT)
 test_u16_is_lowercase_OBJECTS = $(am_test_u16_is_lowercase_OBJECTS)
-test_u16_is_lowercase_LDADD = $(LDADD)
-test_u16_is_lowercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_is_lowercase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_is_titlecase_OBJECTS =  \
        unicase/test-u16-is-titlecase.$(OBJEXT)
 test_u16_is_titlecase_OBJECTS = $(am_test_u16_is_titlecase_OBJECTS)
-test_u16_is_titlecase_LDADD = $(LDADD)
-test_u16_is_titlecase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_is_titlecase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_is_uppercase_OBJECTS =  \
        unicase/test-u16-is-uppercase.$(OBJEXT)
 test_u16_is_uppercase_OBJECTS = $(am_test_u16_is_uppercase_OBJECTS)
-test_u16_is_uppercase_LDADD = $(LDADD)
-test_u16_is_uppercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_is_uppercase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_mblen_OBJECTS = unistr/test-u16-mblen.$(OBJEXT)
 test_u16_mblen_OBJECTS = $(am_test_u16_mblen_OBJECTS)
-test_u16_mblen_LDADD = $(LDADD)
-test_u16_mblen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_mblen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_mbsnlen_OBJECTS = unistr/test-u16-mbsnlen.$(OBJEXT)
 test_u16_mbsnlen_OBJECTS = $(am_test_u16_mbsnlen_OBJECTS)
-test_u16_mbsnlen_LDADD = $(LDADD)
-test_u16_mbsnlen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_mbsnlen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_mbtouc_OBJECTS = unistr/test-u16-mbtouc.$(OBJEXT)
 test_u16_mbtouc_OBJECTS = $(am_test_u16_mbtouc_OBJECTS)
-test_u16_mbtouc_LDADD = $(LDADD)
-test_u16_mbtouc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_mbtouc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_mbtouc_unsafe_OBJECTS =  \
        unistr/test-u16-mbtouc-unsafe.$(OBJEXT)
 test_u16_mbtouc_unsafe_OBJECTS = $(am_test_u16_mbtouc_unsafe_OBJECTS)
-test_u16_mbtouc_unsafe_LDADD = $(LDADD)
-test_u16_mbtouc_unsafe_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_u16_mbtouc_unsafe_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_mbtoucr_OBJECTS = unistr/test-u16-mbtoucr.$(OBJEXT)
 test_u16_mbtoucr_OBJECTS = $(am_test_u16_mbtoucr_OBJECTS)
-test_u16_mbtoucr_LDADD = $(LDADD)
-test_u16_mbtoucr_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_mbtoucr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_move_OBJECTS = unistr/test-u16-move.$(OBJEXT)
 test_u16_move_OBJECTS = $(am_test_u16_move_OBJECTS)
-test_u16_move_LDADD = $(LDADD)
-test_u16_move_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_move_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_next_OBJECTS = unistr/test-u16-next.$(OBJEXT)
 test_u16_next_OBJECTS = $(am_test_u16_next_OBJECTS)
-test_u16_next_LDADD = $(LDADD)
-test_u16_next_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_next_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_normcmp_OBJECTS = uninorm/test-u16-normcmp.$(OBJEXT)
 test_u16_normcmp_OBJECTS = $(am_test_u16_normcmp_OBJECTS)
-test_u16_normcmp_LDADD = $(LDADD)
-test_u16_normcmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_normcmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_normcoll_OBJECTS = uninorm/test-u16-normcoll.$(OBJEXT)
 test_u16_normcoll_OBJECTS = $(am_test_u16_normcoll_OBJECTS)
 test_u16_normcoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -1885,39 +1869,28 @@ am_test_u16_possible_linebreaks_OBJECTS =  \
        unilbrk/test-u16-possible-linebreaks.$(OBJEXT)
 test_u16_possible_linebreaks_OBJECTS =  \
        $(am_test_u16_possible_linebreaks_OBJECTS)
-test_u16_possible_linebreaks_LDADD = $(LDADD)
-test_u16_possible_linebreaks_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_u16_possible_linebreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_prev_OBJECTS = unistr/test-u16-prev.$(OBJEXT)
 test_u16_prev_OBJECTS = $(am_test_u16_prev_OBJECTS)
-test_u16_prev_LDADD = $(LDADD)
-test_u16_prev_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_prev_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_set_OBJECTS = unistr/test-u16-set.$(OBJEXT)
 test_u16_set_OBJECTS = $(am_test_u16_set_OBJECTS)
-test_u16_set_LDADD = $(LDADD)
-test_u16_set_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_set_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_stpcpy_OBJECTS = unistr/test-u16-stpcpy.$(OBJEXT)
 test_u16_stpcpy_OBJECTS = $(am_test_u16_stpcpy_OBJECTS)
-test_u16_stpcpy_LDADD = $(LDADD)
-test_u16_stpcpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_stpcpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_stpncpy_OBJECTS = unistr/test-u16-stpncpy.$(OBJEXT)
 test_u16_stpncpy_OBJECTS = $(am_test_u16_stpncpy_OBJECTS)
-test_u16_stpncpy_LDADD = $(LDADD)
-test_u16_stpncpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_stpncpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strcat_OBJECTS = unistr/test-u16-strcat.$(OBJEXT)
 test_u16_strcat_OBJECTS = $(am_test_u16_strcat_OBJECTS)
-test_u16_strcat_LDADD = $(LDADD)
-test_u16_strcat_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strcat_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_strchr_OBJECTS = unistr/test-u16-strchr.$(OBJEXT)
+test_u16_strchr_OBJECTS = $(am_test_u16_strchr_OBJECTS)
+test_u16_strchr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strcmp_OBJECTS = unistr/test-u16-strcmp.$(OBJEXT)
 test_u16_strcmp_OBJECTS = $(am_test_u16_strcmp_OBJECTS)
-test_u16_strcmp_LDADD = $(LDADD)
-test_u16_strcmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strcmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strcoll_OBJECTS = unistr/test-u16-strcoll.$(OBJEXT)
 test_u16_strcoll_OBJECTS = $(am_test_u16_strcoll_OBJECTS)
 test_u16_strcoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -1933,84 +1906,55 @@ test_u16_strconv_to_enc_OBJECTS =  \
 test_u16_strconv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strcpy_OBJECTS = unistr/test-u16-strcpy.$(OBJEXT)
 test_u16_strcpy_OBJECTS = $(am_test_u16_strcpy_OBJECTS)
-test_u16_strcpy_LDADD = $(LDADD)
-test_u16_strcpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strcpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strdup_OBJECTS = unistr/test-u16-strdup.$(OBJEXT)
 test_u16_strdup_OBJECTS = $(am_test_u16_strdup_OBJECTS)
-test_u16_strdup_LDADD = $(LDADD)
-test_u16_strdup_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strdup_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strlen_OBJECTS = unistr/test-u16-strlen.$(OBJEXT)
 test_u16_strlen_OBJECTS = $(am_test_u16_strlen_OBJECTS)
-test_u16_strlen_LDADD = $(LDADD)
-test_u16_strlen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strlen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strmblen_OBJECTS = unistr/test-u16-strmblen.$(OBJEXT)
 test_u16_strmblen_OBJECTS = $(am_test_u16_strmblen_OBJECTS)
-test_u16_strmblen_LDADD = $(LDADD)
-test_u16_strmblen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strmblen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strmbtouc_OBJECTS = unistr/test-u16-strmbtouc.$(OBJEXT)
 test_u16_strmbtouc_OBJECTS = $(am_test_u16_strmbtouc_OBJECTS)
-test_u16_strmbtouc_LDADD = $(LDADD)
-test_u16_strmbtouc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strmbtouc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strncat_OBJECTS = unistr/test-u16-strncat.$(OBJEXT)
 test_u16_strncat_OBJECTS = $(am_test_u16_strncat_OBJECTS)
-test_u16_strncat_LDADD = $(LDADD)
-test_u16_strncat_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strncat_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strncmp_OBJECTS = unistr/test-u16-strncmp.$(OBJEXT)
 test_u16_strncmp_OBJECTS = $(am_test_u16_strncmp_OBJECTS)
-test_u16_strncmp_LDADD = $(LDADD)
-test_u16_strncmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strncmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strncpy_OBJECTS = unistr/test-u16-strncpy.$(OBJEXT)
 test_u16_strncpy_OBJECTS = $(am_test_u16_strncpy_OBJECTS)
-test_u16_strncpy_LDADD = $(LDADD)
-test_u16_strncpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strncpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strnlen_OBJECTS = unistr/test-u16-strnlen.$(OBJEXT)
 test_u16_strnlen_OBJECTS = $(am_test_u16_strnlen_OBJECTS)
-test_u16_strnlen_LDADD = $(LDADD)
-test_u16_strnlen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strnlen_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u16_strstr_OBJECTS = unistr/test-u16-strstr.$(OBJEXT)
+test_u16_strstr_OBJECTS = $(am_test_u16_strstr_OBJECTS)
+test_u16_strstr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_strwidth_OBJECTS = uniwidth/test-u16-strwidth.$(OBJEXT)
 test_u16_strwidth_OBJECTS = $(am_test_u16_strwidth_OBJECTS)
-test_u16_strwidth_LDADD = $(LDADD)
-test_u16_strwidth_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_strwidth_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_to_u32_OBJECTS = unistr/test-u16-to-u32.$(OBJEXT)
 test_u16_to_u32_OBJECTS = $(am_test_u16_to_u32_OBJECTS)
-test_u16_to_u32_LDADD = $(LDADD)
-test_u16_to_u32_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_to_u32_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_to_u8_OBJECTS = unistr/test-u16-to-u8.$(OBJEXT)
 test_u16_to_u8_OBJECTS = $(am_test_u16_to_u8_OBJECTS)
-test_u16_to_u8_LDADD = $(LDADD)
-test_u16_to_u8_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_to_u8_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_tolower_OBJECTS = unicase/test-u16-tolower.$(OBJEXT)
 test_u16_tolower_OBJECTS = $(am_test_u16_tolower_OBJECTS)
-test_u16_tolower_LDADD = $(LDADD)
-test_u16_tolower_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_tolower_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_totitle_OBJECTS = unicase/test-u16-totitle.$(OBJEXT)
 test_u16_totitle_OBJECTS = $(am_test_u16_totitle_OBJECTS)
-test_u16_totitle_LDADD = $(LDADD)
-test_u16_totitle_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_totitle_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_toupper_OBJECTS = unicase/test-u16-toupper.$(OBJEXT)
 test_u16_toupper_OBJECTS = $(am_test_u16_toupper_OBJECTS)
-test_u16_toupper_LDADD = $(LDADD)
-test_u16_toupper_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_toupper_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_uctomb_OBJECTS = unistr/test-u16-uctomb.$(OBJEXT)
 test_u16_uctomb_OBJECTS = $(am_test_u16_uctomb_OBJECTS)
-test_u16_uctomb_LDADD = $(LDADD)
-test_u16_uctomb_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_uctomb_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_vasnprintf1_OBJECTS =  \
        unistdio/test-u16-vasnprintf1.$(OBJEXT)
 test_u16_vasnprintf1_OBJECTS = $(am_test_u16_vasnprintf1_OBJECTS)
@@ -2036,59 +1980,41 @@ test_u16_vsprintf1_OBJECTS = $(am_test_u16_vsprintf1_OBJECTS)
 test_u16_vsprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_width_OBJECTS = uniwidth/test-u16-width.$(OBJEXT)
 test_u16_width_OBJECTS = $(am_test_u16_width_OBJECTS)
-test_u16_width_LDADD = $(LDADD)
-test_u16_width_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_width_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_width_linebreaks_OBJECTS =  \
        unilbrk/test-u16-width-linebreaks.$(OBJEXT)
 test_u16_width_linebreaks_OBJECTS =  \
        $(am_test_u16_width_linebreaks_OBJECTS)
-test_u16_width_linebreaks_LDADD = $(LDADD)
-test_u16_width_linebreaks_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_u16_width_linebreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u16_wordbreaks_OBJECTS =  \
        uniwbrk/test-u16-wordbreaks.$(OBJEXT)
 test_u16_wordbreaks_OBJECTS = $(am_test_u16_wordbreaks_OBJECTS)
-test_u16_wordbreaks_LDADD = $(LDADD)
-test_u16_wordbreaks_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u16_wordbreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_asnprintf1_OBJECTS =  \
        unistdio/test-u32-asnprintf1.$(OBJEXT)
 test_u32_asnprintf1_OBJECTS = $(am_test_u32_asnprintf1_OBJECTS)
 test_u32_asnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_casecmp_OBJECTS = unicase/test-u32-casecmp.$(OBJEXT)
 test_u32_casecmp_OBJECTS = $(am_test_u32_casecmp_OBJECTS)
-test_u32_casecmp_LDADD = $(LDADD)
-test_u32_casecmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_casecmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_casecoll_OBJECTS = unicase/test-u32-casecoll.$(OBJEXT)
 test_u32_casecoll_OBJECTS = $(am_test_u32_casecoll_OBJECTS)
 test_u32_casecoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_casefold_OBJECTS = unicase/test-u32-casefold.$(OBJEXT)
 test_u32_casefold_OBJECTS = $(am_test_u32_casefold_OBJECTS)
-test_u32_casefold_LDADD = $(LDADD)
-test_u32_casefold_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_casefold_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_check_OBJECTS = unistr/test-u32-check.$(OBJEXT)
 test_u32_check_OBJECTS = $(am_test_u32_check_OBJECTS)
-test_u32_check_LDADD = $(LDADD)
-test_u32_check_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_check_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_chr_OBJECTS = unistr/test-u32-chr.$(OBJEXT)
 test_u32_chr_OBJECTS = $(am_test_u32_chr_OBJECTS)
-test_u32_chr_LDADD = $(LDADD)
-test_u32_chr_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_chr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_cmp_OBJECTS = unistr/test-u32-cmp.$(OBJEXT)
 test_u32_cmp_OBJECTS = $(am_test_u32_cmp_OBJECTS)
-test_u32_cmp_LDADD = $(LDADD)
-test_u32_cmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_cmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_cmp2_OBJECTS = unistr/test-u32-cmp2.$(OBJEXT)
 test_u32_cmp2_OBJECTS = $(am_test_u32_cmp2_OBJECTS)
-test_u32_cmp2_LDADD = $(LDADD)
-test_u32_cmp2_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_cmp2_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_conv_from_enc_OBJECTS =  \
        uniconv/test-u32-conv-from-enc.$(OBJEXT)
 test_u32_conv_from_enc_OBJECTS = $(am_test_u32_conv_from_enc_OBJECTS)
@@ -2099,79 +2025,64 @@ test_u32_conv_to_enc_OBJECTS = $(am_test_u32_conv_to_enc_OBJECTS)
 test_u32_conv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_cpy_OBJECTS = unistr/test-u32-cpy.$(OBJEXT)
 test_u32_cpy_OBJECTS = $(am_test_u32_cpy_OBJECTS)
-test_u32_cpy_LDADD = $(LDADD)
-test_u32_cpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_cpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_cpy_alloc_OBJECTS = unistr/test-u32-cpy-alloc.$(OBJEXT)
 test_u32_cpy_alloc_OBJECTS = $(am_test_u32_cpy_alloc_OBJECTS)
-test_u32_cpy_alloc_LDADD = $(LDADD)
-test_u32_cpy_alloc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_cpy_alloc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_grapheme_breaks_OBJECTS =  \
+       unigbrk/test-u32-grapheme-breaks.$(OBJEXT)
+test_u32_grapheme_breaks_OBJECTS =  \
+       $(am_test_u32_grapheme_breaks_OBJECTS)
+test_u32_grapheme_breaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_grapheme_next_OBJECTS =  \
+       unigbrk/test-u32-grapheme-next.$(OBJEXT)
+test_u32_grapheme_next_OBJECTS = $(am_test_u32_grapheme_next_OBJECTS)
+test_u32_grapheme_next_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_grapheme_prev_OBJECTS =  \
+       unigbrk/test-u32-grapheme-prev.$(OBJEXT)
+test_u32_grapheme_prev_OBJECTS = $(am_test_u32_grapheme_prev_OBJECTS)
+test_u32_grapheme_prev_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_is_cased_OBJECTS = unicase/test-u32-is-cased.$(OBJEXT)
 test_u32_is_cased_OBJECTS = $(am_test_u32_is_cased_OBJECTS)
-test_u32_is_cased_LDADD = $(LDADD)
-test_u32_is_cased_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_is_cased_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_is_casefolded_OBJECTS =  \
        unicase/test-u32-is-casefolded.$(OBJEXT)
 test_u32_is_casefolded_OBJECTS = $(am_test_u32_is_casefolded_OBJECTS)
-test_u32_is_casefolded_LDADD = $(LDADD)
-test_u32_is_casefolded_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_u32_is_casefolded_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_is_lowercase_OBJECTS =  \
        unicase/test-u32-is-lowercase.$(OBJEXT)
 test_u32_is_lowercase_OBJECTS = $(am_test_u32_is_lowercase_OBJECTS)
-test_u32_is_lowercase_LDADD = $(LDADD)
-test_u32_is_lowercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_is_lowercase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_is_titlecase_OBJECTS =  \
        unicase/test-u32-is-titlecase.$(OBJEXT)
 test_u32_is_titlecase_OBJECTS = $(am_test_u32_is_titlecase_OBJECTS)
-test_u32_is_titlecase_LDADD = $(LDADD)
-test_u32_is_titlecase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_is_titlecase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_is_uppercase_OBJECTS =  \
        unicase/test-u32-is-uppercase.$(OBJEXT)
 test_u32_is_uppercase_OBJECTS = $(am_test_u32_is_uppercase_OBJECTS)
-test_u32_is_uppercase_LDADD = $(LDADD)
-test_u32_is_uppercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_is_uppercase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_mblen_OBJECTS = unistr/test-u32-mblen.$(OBJEXT)
 test_u32_mblen_OBJECTS = $(am_test_u32_mblen_OBJECTS)
-test_u32_mblen_LDADD = $(LDADD)
-test_u32_mblen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_mblen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_mbsnlen_OBJECTS = unistr/test-u32-mbsnlen.$(OBJEXT)
 test_u32_mbsnlen_OBJECTS = $(am_test_u32_mbsnlen_OBJECTS)
-test_u32_mbsnlen_LDADD = $(LDADD)
-test_u32_mbsnlen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_mbsnlen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_mbtouc_OBJECTS = unistr/test-u32-mbtouc.$(OBJEXT)
 test_u32_mbtouc_OBJECTS = $(am_test_u32_mbtouc_OBJECTS)
-test_u32_mbtouc_LDADD = $(LDADD)
-test_u32_mbtouc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_mbtouc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_mbtouc_unsafe_OBJECTS =  \
        unistr/test-u32-mbtouc-unsafe.$(OBJEXT)
 test_u32_mbtouc_unsafe_OBJECTS = $(am_test_u32_mbtouc_unsafe_OBJECTS)
-test_u32_mbtouc_unsafe_LDADD = $(LDADD)
-test_u32_mbtouc_unsafe_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_u32_mbtouc_unsafe_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_mbtoucr_OBJECTS = unistr/test-u32-mbtoucr.$(OBJEXT)
 test_u32_mbtoucr_OBJECTS = $(am_test_u32_mbtoucr_OBJECTS)
-test_u32_mbtoucr_LDADD = $(LDADD)
-test_u32_mbtoucr_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_mbtoucr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_move_OBJECTS = unistr/test-u32-move.$(OBJEXT)
 test_u32_move_OBJECTS = $(am_test_u32_move_OBJECTS)
-test_u32_move_LDADD = $(LDADD)
-test_u32_move_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_move_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_next_OBJECTS = unistr/test-u32-next.$(OBJEXT)
 test_u32_next_OBJECTS = $(am_test_u32_next_OBJECTS)
-test_u32_next_LDADD = $(LDADD)
-test_u32_next_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_next_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_nfc_big_OBJECTS = uninorm/test-u32-nfc-big.$(OBJEXT) \
        uninorm/test-u32-normalize-big.$(OBJEXT)
 test_u32_nfc_big_OBJECTS = $(am_test_u32_nfc_big_OBJECTS)
@@ -2190,9 +2101,7 @@ test_u32_nfkd_big_OBJECTS = $(am_test_u32_nfkd_big_OBJECTS)
 test_u32_nfkd_big_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_normcmp_OBJECTS = uninorm/test-u32-normcmp.$(OBJEXT)
 test_u32_normcmp_OBJECTS = $(am_test_u32_normcmp_OBJECTS)
-test_u32_normcmp_LDADD = $(LDADD)
-test_u32_normcmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_normcmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_normcoll_OBJECTS = uninorm/test-u32-normcoll.$(OBJEXT)
 test_u32_normcoll_OBJECTS = $(am_test_u32_normcoll_OBJECTS)
 test_u32_normcoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -2200,39 +2109,28 @@ am_test_u32_possible_linebreaks_OBJECTS =  \
        unilbrk/test-u32-possible-linebreaks.$(OBJEXT)
 test_u32_possible_linebreaks_OBJECTS =  \
        $(am_test_u32_possible_linebreaks_OBJECTS)
-test_u32_possible_linebreaks_LDADD = $(LDADD)
-test_u32_possible_linebreaks_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_u32_possible_linebreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_prev_OBJECTS = unistr/test-u32-prev.$(OBJEXT)
 test_u32_prev_OBJECTS = $(am_test_u32_prev_OBJECTS)
-test_u32_prev_LDADD = $(LDADD)
-test_u32_prev_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_prev_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_set_OBJECTS = unistr/test-u32-set.$(OBJEXT)
 test_u32_set_OBJECTS = $(am_test_u32_set_OBJECTS)
-test_u32_set_LDADD = $(LDADD)
-test_u32_set_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_set_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_stpcpy_OBJECTS = unistr/test-u32-stpcpy.$(OBJEXT)
 test_u32_stpcpy_OBJECTS = $(am_test_u32_stpcpy_OBJECTS)
-test_u32_stpcpy_LDADD = $(LDADD)
-test_u32_stpcpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_stpcpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_stpncpy_OBJECTS = unistr/test-u32-stpncpy.$(OBJEXT)
 test_u32_stpncpy_OBJECTS = $(am_test_u32_stpncpy_OBJECTS)
-test_u32_stpncpy_LDADD = $(LDADD)
-test_u32_stpncpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_stpncpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strcat_OBJECTS = unistr/test-u32-strcat.$(OBJEXT)
 test_u32_strcat_OBJECTS = $(am_test_u32_strcat_OBJECTS)
-test_u32_strcat_LDADD = $(LDADD)
-test_u32_strcat_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strcat_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_strchr_OBJECTS = unistr/test-u32-strchr.$(OBJEXT)
+test_u32_strchr_OBJECTS = $(am_test_u32_strchr_OBJECTS)
+test_u32_strchr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strcmp_OBJECTS = unistr/test-u32-strcmp.$(OBJEXT)
 test_u32_strcmp_OBJECTS = $(am_test_u32_strcmp_OBJECTS)
-test_u32_strcmp_LDADD = $(LDADD)
-test_u32_strcmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strcmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strcoll_OBJECTS = unistr/test-u32-strcoll.$(OBJEXT)
 test_u32_strcoll_OBJECTS = $(am_test_u32_strcoll_OBJECTS)
 test_u32_strcoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -2248,84 +2146,55 @@ test_u32_strconv_to_enc_OBJECTS =  \
 test_u32_strconv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strcpy_OBJECTS = unistr/test-u32-strcpy.$(OBJEXT)
 test_u32_strcpy_OBJECTS = $(am_test_u32_strcpy_OBJECTS)
-test_u32_strcpy_LDADD = $(LDADD)
-test_u32_strcpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strcpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strdup_OBJECTS = unistr/test-u32-strdup.$(OBJEXT)
 test_u32_strdup_OBJECTS = $(am_test_u32_strdup_OBJECTS)
-test_u32_strdup_LDADD = $(LDADD)
-test_u32_strdup_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strdup_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strlen_OBJECTS = unistr/test-u32-strlen.$(OBJEXT)
 test_u32_strlen_OBJECTS = $(am_test_u32_strlen_OBJECTS)
-test_u32_strlen_LDADD = $(LDADD)
-test_u32_strlen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strlen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strmblen_OBJECTS = unistr/test-u32-strmblen.$(OBJEXT)
 test_u32_strmblen_OBJECTS = $(am_test_u32_strmblen_OBJECTS)
-test_u32_strmblen_LDADD = $(LDADD)
-test_u32_strmblen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strmblen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strmbtouc_OBJECTS = unistr/test-u32-strmbtouc.$(OBJEXT)
 test_u32_strmbtouc_OBJECTS = $(am_test_u32_strmbtouc_OBJECTS)
-test_u32_strmbtouc_LDADD = $(LDADD)
-test_u32_strmbtouc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strmbtouc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strncat_OBJECTS = unistr/test-u32-strncat.$(OBJEXT)
 test_u32_strncat_OBJECTS = $(am_test_u32_strncat_OBJECTS)
-test_u32_strncat_LDADD = $(LDADD)
-test_u32_strncat_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strncat_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strncmp_OBJECTS = unistr/test-u32-strncmp.$(OBJEXT)
 test_u32_strncmp_OBJECTS = $(am_test_u32_strncmp_OBJECTS)
-test_u32_strncmp_LDADD = $(LDADD)
-test_u32_strncmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strncmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strncpy_OBJECTS = unistr/test-u32-strncpy.$(OBJEXT)
 test_u32_strncpy_OBJECTS = $(am_test_u32_strncpy_OBJECTS)
-test_u32_strncpy_LDADD = $(LDADD)
-test_u32_strncpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strncpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strnlen_OBJECTS = unistr/test-u32-strnlen.$(OBJEXT)
 test_u32_strnlen_OBJECTS = $(am_test_u32_strnlen_OBJECTS)
-test_u32_strnlen_LDADD = $(LDADD)
-test_u32_strnlen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strnlen_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u32_strstr_OBJECTS = unistr/test-u32-strstr.$(OBJEXT)
+test_u32_strstr_OBJECTS = $(am_test_u32_strstr_OBJECTS)
+test_u32_strstr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_strwidth_OBJECTS = uniwidth/test-u32-strwidth.$(OBJEXT)
 test_u32_strwidth_OBJECTS = $(am_test_u32_strwidth_OBJECTS)
-test_u32_strwidth_LDADD = $(LDADD)
-test_u32_strwidth_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_strwidth_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_to_u16_OBJECTS = unistr/test-u32-to-u16.$(OBJEXT)
 test_u32_to_u16_OBJECTS = $(am_test_u32_to_u16_OBJECTS)
-test_u32_to_u16_LDADD = $(LDADD)
-test_u32_to_u16_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_to_u16_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_to_u8_OBJECTS = unistr/test-u32-to-u8.$(OBJEXT)
 test_u32_to_u8_OBJECTS = $(am_test_u32_to_u8_OBJECTS)
-test_u32_to_u8_LDADD = $(LDADD)
-test_u32_to_u8_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_to_u8_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_tolower_OBJECTS = unicase/test-u32-tolower.$(OBJEXT)
 test_u32_tolower_OBJECTS = $(am_test_u32_tolower_OBJECTS)
-test_u32_tolower_LDADD = $(LDADD)
-test_u32_tolower_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_tolower_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_totitle_OBJECTS = unicase/test-u32-totitle.$(OBJEXT)
 test_u32_totitle_OBJECTS = $(am_test_u32_totitle_OBJECTS)
-test_u32_totitle_LDADD = $(LDADD)
-test_u32_totitle_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_totitle_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_toupper_OBJECTS = unicase/test-u32-toupper.$(OBJEXT)
 test_u32_toupper_OBJECTS = $(am_test_u32_toupper_OBJECTS)
-test_u32_toupper_LDADD = $(LDADD)
-test_u32_toupper_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_toupper_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_uctomb_OBJECTS = unistr/test-u32-uctomb.$(OBJEXT)
 test_u32_uctomb_OBJECTS = $(am_test_u32_uctomb_OBJECTS)
-test_u32_uctomb_LDADD = $(LDADD)
-test_u32_uctomb_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_uctomb_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_vasnprintf1_OBJECTS =  \
        unistdio/test-u32-vasnprintf1.$(OBJEXT)
 test_u32_vasnprintf1_OBJECTS = $(am_test_u32_vasnprintf1_OBJECTS)
@@ -2351,58 +2220,40 @@ test_u32_vsprintf1_OBJECTS = $(am_test_u32_vsprintf1_OBJECTS)
 test_u32_vsprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_width_OBJECTS = uniwidth/test-u32-width.$(OBJEXT)
 test_u32_width_OBJECTS = $(am_test_u32_width_OBJECTS)
-test_u32_width_LDADD = $(LDADD)
-test_u32_width_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_width_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_width_linebreaks_OBJECTS =  \
        unilbrk/test-u32-width-linebreaks.$(OBJEXT)
 test_u32_width_linebreaks_OBJECTS =  \
        $(am_test_u32_width_linebreaks_OBJECTS)
-test_u32_width_linebreaks_LDADD = $(LDADD)
-test_u32_width_linebreaks_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_u32_width_linebreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u32_wordbreaks_OBJECTS =  \
        uniwbrk/test-u32-wordbreaks.$(OBJEXT)
 test_u32_wordbreaks_OBJECTS = $(am_test_u32_wordbreaks_OBJECTS)
-test_u32_wordbreaks_LDADD = $(LDADD)
-test_u32_wordbreaks_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u32_wordbreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_asnprintf1_OBJECTS = unistdio/test-u8-asnprintf1.$(OBJEXT)
 test_u8_asnprintf1_OBJECTS = $(am_test_u8_asnprintf1_OBJECTS)
 test_u8_asnprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_casecmp_OBJECTS = unicase/test-u8-casecmp.$(OBJEXT)
 test_u8_casecmp_OBJECTS = $(am_test_u8_casecmp_OBJECTS)
-test_u8_casecmp_LDADD = $(LDADD)
-test_u8_casecmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_casecmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_casecoll_OBJECTS = unicase/test-u8-casecoll.$(OBJEXT)
 test_u8_casecoll_OBJECTS = $(am_test_u8_casecoll_OBJECTS)
 test_u8_casecoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_casefold_OBJECTS = unicase/test-u8-casefold.$(OBJEXT)
 test_u8_casefold_OBJECTS = $(am_test_u8_casefold_OBJECTS)
-test_u8_casefold_LDADD = $(LDADD)
-test_u8_casefold_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_casefold_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_check_OBJECTS = unistr/test-u8-check.$(OBJEXT)
 test_u8_check_OBJECTS = $(am_test_u8_check_OBJECTS)
-test_u8_check_LDADD = $(LDADD)
-test_u8_check_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_check_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_chr_OBJECTS = unistr/test-u8-chr.$(OBJEXT)
 test_u8_chr_OBJECTS = $(am_test_u8_chr_OBJECTS)
-test_u8_chr_LDADD = $(LDADD)
-test_u8_chr_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_chr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_cmp_OBJECTS = unistr/test-u8-cmp.$(OBJEXT)
 test_u8_cmp_OBJECTS = $(am_test_u8_cmp_OBJECTS)
-test_u8_cmp_LDADD = $(LDADD)
-test_u8_cmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_cmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_cmp2_OBJECTS = unistr/test-u8-cmp2.$(OBJEXT)
 test_u8_cmp2_OBJECTS = $(am_test_u8_cmp2_OBJECTS)
-test_u8_cmp2_LDADD = $(LDADD)
-test_u8_cmp2_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_cmp2_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_conv_from_enc_OBJECTS =  \
        uniconv/test-u8-conv-from-enc.$(OBJEXT)
 test_u8_conv_from_enc_OBJECTS = $(am_test_u8_conv_from_enc_OBJECTS)
@@ -2413,84 +2264,67 @@ test_u8_conv_to_enc_OBJECTS = $(am_test_u8_conv_to_enc_OBJECTS)
 test_u8_conv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_cpy_OBJECTS = unistr/test-u8-cpy.$(OBJEXT)
 test_u8_cpy_OBJECTS = $(am_test_u8_cpy_OBJECTS)
-test_u8_cpy_LDADD = $(LDADD)
-test_u8_cpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_cpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_cpy_alloc_OBJECTS = unistr/test-u8-cpy-alloc.$(OBJEXT)
 test_u8_cpy_alloc_OBJECTS = $(am_test_u8_cpy_alloc_OBJECTS)
-test_u8_cpy_alloc_LDADD = $(LDADD)
-test_u8_cpy_alloc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_cpy_alloc_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_grapheme_breaks_OBJECTS =  \
+       unigbrk/test-u8-grapheme-breaks.$(OBJEXT)
+test_u8_grapheme_breaks_OBJECTS =  \
+       $(am_test_u8_grapheme_breaks_OBJECTS)
+test_u8_grapheme_breaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_grapheme_next_OBJECTS =  \
+       unigbrk/test-u8-grapheme-next.$(OBJEXT)
+test_u8_grapheme_next_OBJECTS = $(am_test_u8_grapheme_next_OBJECTS)
+test_u8_grapheme_next_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_grapheme_prev_OBJECTS =  \
+       unigbrk/test-u8-grapheme-prev.$(OBJEXT)
+test_u8_grapheme_prev_OBJECTS = $(am_test_u8_grapheme_prev_OBJECTS)
+test_u8_grapheme_prev_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_is_cased_OBJECTS = unicase/test-u8-is-cased.$(OBJEXT)
 test_u8_is_cased_OBJECTS = $(am_test_u8_is_cased_OBJECTS)
-test_u8_is_cased_LDADD = $(LDADD)
-test_u8_is_cased_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_is_cased_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_is_casefolded_OBJECTS =  \
        unicase/test-u8-is-casefolded.$(OBJEXT)
 test_u8_is_casefolded_OBJECTS = $(am_test_u8_is_casefolded_OBJECTS)
-test_u8_is_casefolded_LDADD = $(LDADD)
-test_u8_is_casefolded_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_is_casefolded_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_is_lowercase_OBJECTS =  \
        unicase/test-u8-is-lowercase.$(OBJEXT)
 test_u8_is_lowercase_OBJECTS = $(am_test_u8_is_lowercase_OBJECTS)
-test_u8_is_lowercase_LDADD = $(LDADD)
-test_u8_is_lowercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_is_lowercase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_is_titlecase_OBJECTS =  \
        unicase/test-u8-is-titlecase.$(OBJEXT)
 test_u8_is_titlecase_OBJECTS = $(am_test_u8_is_titlecase_OBJECTS)
-test_u8_is_titlecase_LDADD = $(LDADD)
-test_u8_is_titlecase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_is_titlecase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_is_uppercase_OBJECTS =  \
        unicase/test-u8-is-uppercase.$(OBJEXT)
 test_u8_is_uppercase_OBJECTS = $(am_test_u8_is_uppercase_OBJECTS)
-test_u8_is_uppercase_LDADD = $(LDADD)
-test_u8_is_uppercase_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_is_uppercase_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_mblen_OBJECTS = unistr/test-u8-mblen.$(OBJEXT)
 test_u8_mblen_OBJECTS = $(am_test_u8_mblen_OBJECTS)
-test_u8_mblen_LDADD = $(LDADD)
-test_u8_mblen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_mblen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_mbsnlen_OBJECTS = unistr/test-u8-mbsnlen.$(OBJEXT)
 test_u8_mbsnlen_OBJECTS = $(am_test_u8_mbsnlen_OBJECTS)
-test_u8_mbsnlen_LDADD = $(LDADD)
-test_u8_mbsnlen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_mbsnlen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_mbtouc_OBJECTS = unistr/test-u8-mbtouc.$(OBJEXT)
 test_u8_mbtouc_OBJECTS = $(am_test_u8_mbtouc_OBJECTS)
-test_u8_mbtouc_LDADD = $(LDADD)
-test_u8_mbtouc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_mbtouc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_mbtouc_unsafe_OBJECTS =  \
        unistr/test-u8-mbtouc-unsafe.$(OBJEXT)
 test_u8_mbtouc_unsafe_OBJECTS = $(am_test_u8_mbtouc_unsafe_OBJECTS)
-test_u8_mbtouc_unsafe_LDADD = $(LDADD)
-test_u8_mbtouc_unsafe_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_mbtouc_unsafe_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_mbtoucr_OBJECTS = unistr/test-u8-mbtoucr.$(OBJEXT)
 test_u8_mbtoucr_OBJECTS = $(am_test_u8_mbtoucr_OBJECTS)
-test_u8_mbtoucr_LDADD = $(LDADD)
-test_u8_mbtoucr_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_mbtoucr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_move_OBJECTS = unistr/test-u8-move.$(OBJEXT)
 test_u8_move_OBJECTS = $(am_test_u8_move_OBJECTS)
-test_u8_move_LDADD = $(LDADD)
-test_u8_move_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_move_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_next_OBJECTS = unistr/test-u8-next.$(OBJEXT)
 test_u8_next_OBJECTS = $(am_test_u8_next_OBJECTS)
-test_u8_next_LDADD = $(LDADD)
-test_u8_next_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_next_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_normcmp_OBJECTS = uninorm/test-u8-normcmp.$(OBJEXT)
 test_u8_normcmp_OBJECTS = $(am_test_u8_normcmp_OBJECTS)
-test_u8_normcmp_LDADD = $(LDADD)
-test_u8_normcmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_normcmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_normcoll_OBJECTS = uninorm/test-u8-normcoll.$(OBJEXT)
 test_u8_normcoll_OBJECTS = $(am_test_u8_normcoll_OBJECTS)
 test_u8_normcoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -2498,39 +2332,28 @@ am_test_u8_possible_linebreaks_OBJECTS =  \
        unilbrk/test-u8-possible-linebreaks.$(OBJEXT)
 test_u8_possible_linebreaks_OBJECTS =  \
        $(am_test_u8_possible_linebreaks_OBJECTS)
-test_u8_possible_linebreaks_LDADD = $(LDADD)
-test_u8_possible_linebreaks_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_u8_possible_linebreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_prev_OBJECTS = unistr/test-u8-prev.$(OBJEXT)
 test_u8_prev_OBJECTS = $(am_test_u8_prev_OBJECTS)
-test_u8_prev_LDADD = $(LDADD)
-test_u8_prev_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_prev_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_set_OBJECTS = unistr/test-u8-set.$(OBJEXT)
 test_u8_set_OBJECTS = $(am_test_u8_set_OBJECTS)
-test_u8_set_LDADD = $(LDADD)
-test_u8_set_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_set_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_stpcpy_OBJECTS = unistr/test-u8-stpcpy.$(OBJEXT)
 test_u8_stpcpy_OBJECTS = $(am_test_u8_stpcpy_OBJECTS)
-test_u8_stpcpy_LDADD = $(LDADD)
-test_u8_stpcpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_stpcpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_stpncpy_OBJECTS = unistr/test-u8-stpncpy.$(OBJEXT)
 test_u8_stpncpy_OBJECTS = $(am_test_u8_stpncpy_OBJECTS)
-test_u8_stpncpy_LDADD = $(LDADD)
-test_u8_stpncpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_stpncpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strcat_OBJECTS = unistr/test-u8-strcat.$(OBJEXT)
 test_u8_strcat_OBJECTS = $(am_test_u8_strcat_OBJECTS)
-test_u8_strcat_LDADD = $(LDADD)
-test_u8_strcat_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strcat_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_strchr_OBJECTS = unistr/test-u8-strchr.$(OBJEXT)
+test_u8_strchr_OBJECTS = $(am_test_u8_strchr_OBJECTS)
+test_u8_strchr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strcmp_OBJECTS = unistr/test-u8-strcmp.$(OBJEXT)
 test_u8_strcmp_OBJECTS = $(am_test_u8_strcmp_OBJECTS)
-test_u8_strcmp_LDADD = $(LDADD)
-test_u8_strcmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strcmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strcoll_OBJECTS = unistr/test-u8-strcoll.$(OBJEXT)
 test_u8_strcoll_OBJECTS = $(am_test_u8_strcoll_OBJECTS)
 test_u8_strcoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -2545,84 +2368,55 @@ test_u8_strconv_to_enc_OBJECTS = $(am_test_u8_strconv_to_enc_OBJECTS)
 test_u8_strconv_to_enc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strcpy_OBJECTS = unistr/test-u8-strcpy.$(OBJEXT)
 test_u8_strcpy_OBJECTS = $(am_test_u8_strcpy_OBJECTS)
-test_u8_strcpy_LDADD = $(LDADD)
-test_u8_strcpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strcpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strdup_OBJECTS = unistr/test-u8-strdup.$(OBJEXT)
 test_u8_strdup_OBJECTS = $(am_test_u8_strdup_OBJECTS)
-test_u8_strdup_LDADD = $(LDADD)
-test_u8_strdup_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strdup_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strlen_OBJECTS = unistr/test-u8-strlen.$(OBJEXT)
 test_u8_strlen_OBJECTS = $(am_test_u8_strlen_OBJECTS)
-test_u8_strlen_LDADD = $(LDADD)
-test_u8_strlen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strlen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strmblen_OBJECTS = unistr/test-u8-strmblen.$(OBJEXT)
 test_u8_strmblen_OBJECTS = $(am_test_u8_strmblen_OBJECTS)
-test_u8_strmblen_LDADD = $(LDADD)
-test_u8_strmblen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strmblen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strmbtouc_OBJECTS = unistr/test-u8-strmbtouc.$(OBJEXT)
 test_u8_strmbtouc_OBJECTS = $(am_test_u8_strmbtouc_OBJECTS)
-test_u8_strmbtouc_LDADD = $(LDADD)
-test_u8_strmbtouc_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strmbtouc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strncat_OBJECTS = unistr/test-u8-strncat.$(OBJEXT)
 test_u8_strncat_OBJECTS = $(am_test_u8_strncat_OBJECTS)
-test_u8_strncat_LDADD = $(LDADD)
-test_u8_strncat_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strncat_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strncmp_OBJECTS = unistr/test-u8-strncmp.$(OBJEXT)
 test_u8_strncmp_OBJECTS = $(am_test_u8_strncmp_OBJECTS)
-test_u8_strncmp_LDADD = $(LDADD)
-test_u8_strncmp_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strncmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strncpy_OBJECTS = unistr/test-u8-strncpy.$(OBJEXT)
 test_u8_strncpy_OBJECTS = $(am_test_u8_strncpy_OBJECTS)
-test_u8_strncpy_LDADD = $(LDADD)
-test_u8_strncpy_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strncpy_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strnlen_OBJECTS = unistr/test-u8-strnlen.$(OBJEXT)
 test_u8_strnlen_OBJECTS = $(am_test_u8_strnlen_OBJECTS)
-test_u8_strnlen_LDADD = $(LDADD)
-test_u8_strnlen_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strnlen_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_u8_strstr_OBJECTS = unistr/test-u8-strstr.$(OBJEXT)
+test_u8_strstr_OBJECTS = $(am_test_u8_strstr_OBJECTS)
+test_u8_strstr_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_strwidth_OBJECTS = uniwidth/test-u8-strwidth.$(OBJEXT)
 test_u8_strwidth_OBJECTS = $(am_test_u8_strwidth_OBJECTS)
-test_u8_strwidth_LDADD = $(LDADD)
-test_u8_strwidth_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_strwidth_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_to_u16_OBJECTS = unistr/test-u8-to-u16.$(OBJEXT)
 test_u8_to_u16_OBJECTS = $(am_test_u8_to_u16_OBJECTS)
-test_u8_to_u16_LDADD = $(LDADD)
-test_u8_to_u16_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_to_u16_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_to_u32_OBJECTS = unistr/test-u8-to-u32.$(OBJEXT)
 test_u8_to_u32_OBJECTS = $(am_test_u8_to_u32_OBJECTS)
-test_u8_to_u32_LDADD = $(LDADD)
-test_u8_to_u32_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_to_u32_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_tolower_OBJECTS = unicase/test-u8-tolower.$(OBJEXT)
 test_u8_tolower_OBJECTS = $(am_test_u8_tolower_OBJECTS)
-test_u8_tolower_LDADD = $(LDADD)
-test_u8_tolower_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_tolower_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_totitle_OBJECTS = unicase/test-u8-totitle.$(OBJEXT)
 test_u8_totitle_OBJECTS = $(am_test_u8_totitle_OBJECTS)
-test_u8_totitle_LDADD = $(LDADD)
-test_u8_totitle_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_totitle_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_toupper_OBJECTS = unicase/test-u8-toupper.$(OBJEXT)
 test_u8_toupper_OBJECTS = $(am_test_u8_toupper_OBJECTS)
-test_u8_toupper_LDADD = $(LDADD)
-test_u8_toupper_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_toupper_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_uctomb_OBJECTS = unistr/test-u8-uctomb.$(OBJEXT)
 test_u8_uctomb_OBJECTS = $(am_test_u8_uctomb_OBJECTS)
-test_u8_uctomb_LDADD = $(LDADD)
-test_u8_uctomb_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_uctomb_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_vasnprintf1_OBJECTS =  \
        unistdio/test-u8-vasnprintf1.$(OBJEXT)
 test_u8_vasnprintf1_OBJECTS = $(am_test_u8_vasnprintf1_OBJECTS)
@@ -2646,46 +2440,38 @@ test_u8_vsprintf1_OBJECTS = $(am_test_u8_vsprintf1_OBJECTS)
 test_u8_vsprintf1_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_width_OBJECTS = uniwidth/test-u8-width.$(OBJEXT)
 test_u8_width_OBJECTS = $(am_test_u8_width_OBJECTS)
-test_u8_width_LDADD = $(LDADD)
-test_u8_width_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_width_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_width_linebreaks_OBJECTS =  \
        unilbrk/test-u8-width-linebreaks.$(OBJEXT)
 test_u8_width_linebreaks_OBJECTS =  \
        $(am_test_u8_width_linebreaks_OBJECTS)
-test_u8_width_linebreaks_LDADD = $(LDADD)
-test_u8_width_linebreaks_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_u8_width_linebreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_u8_wordbreaks_OBJECTS = uniwbrk/test-u8-wordbreaks.$(OBJEXT)
 test_u8_wordbreaks_OBJECTS = $(am_test_u8_wordbreaks_OBJECTS)
-test_u8_wordbreaks_LDADD = $(LDADD)
-test_u8_wordbreaks_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_u8_wordbreaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_uc_gbrk_prop_OBJECTS = unigbrk/test-uc-gbrk-prop.$(OBJEXT)
+test_uc_gbrk_prop_OBJECTS = $(am_test_uc_gbrk_prop_OBJECTS)
+test_uc_gbrk_prop_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_uc_is_grapheme_break_OBJECTS =  \
+       unigbrk/test-uc-is-grapheme-break.$(OBJEXT)
+test_uc_is_grapheme_break_OBJECTS =  \
+       $(am_test_uc_is_grapheme_break_OBJECTS)
+test_uc_is_grapheme_break_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_uc_tolower_OBJECTS = unicase/test-uc_tolower.$(OBJEXT)
 test_uc_tolower_OBJECTS = $(am_test_uc_tolower_OBJECTS)
-test_uc_tolower_LDADD = $(LDADD)
-test_uc_tolower_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_uc_tolower_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_uc_totitle_OBJECTS = unicase/test-uc_totitle.$(OBJEXT)
 test_uc_totitle_OBJECTS = $(am_test_uc_totitle_OBJECTS)
-test_uc_totitle_LDADD = $(LDADD)
-test_uc_totitle_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_uc_totitle_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_uc_toupper_OBJECTS = unicase/test-uc_toupper.$(OBJEXT)
 test_uc_toupper_OBJECTS = $(am_test_uc_toupper_OBJECTS)
-test_uc_toupper_LDADD = $(LDADD)
-test_uc_toupper_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_uc_toupper_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_uc_width_OBJECTS = uniwidth/test-uc_width.$(OBJEXT)
 test_uc_width_OBJECTS = $(am_test_uc_width_OBJECTS)
-test_uc_width_LDADD = $(LDADD)
-test_uc_width_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_uc_width_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_uc_width2_OBJECTS = uniwidth/test-uc_width2.$(OBJEXT)
 test_uc_width2_OBJECTS = $(am_test_uc_width2_OBJECTS)
-test_uc_width2_LDADD = $(LDADD)
-test_uc_width2_DEPENDENCIES = libtests.a ../lib/libunistring.la \
-       libtests.a $(am__DEPENDENCIES_1)
+test_uc_width2_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ulc_asnprintf1_OBJECTS =  \
        unistdio/test-ulc-asnprintf1.$(OBJEXT)
 test_ulc_asnprintf1_OBJECTS = $(am_test_ulc_asnprintf1_OBJECTS)
@@ -2696,6 +2482,11 @@ test_ulc_casecmp_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ulc_casecoll_OBJECTS = unicase/test-ulc-casecoll.$(OBJEXT)
 test_ulc_casecoll_OBJECTS = $(am_test_ulc_casecoll_OBJECTS)
 test_ulc_casecoll_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_test_ulc_grapheme_breaks_OBJECTS =  \
+       unigbrk/test-ulc-grapheme-breaks.$(OBJEXT)
+test_ulc_grapheme_breaks_OBJECTS =  \
+       $(am_test_ulc_grapheme_breaks_OBJECTS)
+test_ulc_grapheme_breaks_DEPENDENCIES = $(am__DEPENDENCIES_2)
 am_test_ulc_possible_linebreaks_OBJECTS =  \
        unilbrk/test-ulc-possible-linebreaks.$(OBJEXT)
 test_ulc_possible_linebreaks_OBJECTS =  \
@@ -2740,9 +2531,7 @@ am_test_uninorm_filter_nfc_OBJECTS =  \
        uninorm/test-uninorm-filter-nfc.$(OBJEXT)
 test_uninorm_filter_nfc_OBJECTS =  \
        $(am_test_uninorm_filter_nfc_OBJECTS)
-test_uninorm_filter_nfc_LDADD = $(LDADD)
-test_uninorm_filter_nfc_DEPENDENCIES = libtests.a \
-       ../lib/libunistring.la libtests.a $(am__DEPENDENCIES_1)
+test_uninorm_filter_nfc_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_unistd_SOURCES = test-unistd.c
 test_unistd_OBJECTS = test-unistd.$(OBJEXT)
 test_unistd_LDADD = $(LDADD)
@@ -2753,15 +2542,30 @@ test_unsetenv_OBJECTS = test-unsetenv.$(OBJEXT)
 test_unsetenv_LDADD = $(LDADD)
 test_unsetenv_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
+test_verify_SOURCES = test-verify.c
+test_verify_OBJECTS = test-verify.$(OBJEXT)
+test_verify_LDADD = $(LDADD)
+test_verify_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
 test_wchar_SOURCES = test-wchar.c
 test_wchar_OBJECTS = test-wchar.$(OBJEXT)
 test_wchar_LDADD = $(LDADD)
 test_wchar_DEPENDENCIES = libtests.a ../lib/libunistring.la libtests.a \
        $(am__DEPENDENCIES_1)
-test_wctype_SOURCES = test-wctype.c
-test_wctype_OBJECTS = test-wctype.$(OBJEXT)
-test_wctype_LDADD = $(LDADD)
-test_wctype_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+test_wcrtomb_SOURCES = test-wcrtomb.c
+test_wcrtomb_OBJECTS = test-wcrtomb.$(OBJEXT)
+test_wcrtomb_LDADD = $(LDADD)
+test_wcrtomb_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
+test_wcrtomb_w32_SOURCES = test-wcrtomb-w32.c
+test_wcrtomb_w32_OBJECTS = test-wcrtomb-w32.$(OBJEXT)
+test_wcrtomb_w32_LDADD = $(LDADD)
+test_wcrtomb_w32_DEPENDENCIES = libtests.a ../lib/libunistring.la \
+       libtests.a $(am__DEPENDENCIES_1)
+test_wctype_h_SOURCES = test-wctype-h.c
+test_wctype_h_OBJECTS = test-wctype-h.$(OBJEXT)
+test_wctype_h_LDADD = $(LDADD)
+test_wctype_h_DEPENDENCIES = libtests.a ../lib/libunistring.la \
        libtests.a $(am__DEPENDENCIES_1)
 test_wcwidth_SOURCES = test-wcwidth.c
 test_wcwidth_OBJECTS = test-wcwidth.$(OBJEXT)
@@ -2771,6 +2575,18 @@ test_wcwidth_DEPENDENCIES = libtests.a ../lib/libunistring.la \
 test_xalloc_die_SOURCES = test-xalloc-die.c
 test_xalloc_die_OBJECTS = test-xalloc-die.$(OBJEXT)
 test_xalloc_die_DEPENDENCIES = $(am__DEPENDENCIES_2)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
@@ -2780,50 +2596,55 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
        $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC    " $@;
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        test-alloca-opt.c test-array-mergesort.c \
-       $(test_bidi_byname_SOURCES) $(test_bidi_name_SOURCES) \
-       $(test_bidi_of_SOURCES) $(test_bidi_test_SOURCES) \
-       $(test_block_list_SOURCES) $(test_block_of_SOURCES) \
-       $(test_block_test_SOURCES) test-c-ctype.c test-c-strcasecmp.c \
+       $(test_bidi_byname_SOURCES) $(test_bidi_longname_SOURCES) \
+       $(test_bidi_name_SOURCES) $(test_bidi_of_SOURCES) \
+       $(test_bidi_test_SOURCES) $(test_block_list_SOURCES) \
+       $(test_block_of_SOURCES) $(test_block_test_SOURCES) \
+       test-btowc.c test-c-ctype.c test-c-strcasecmp.c \
        test-c-strncasecmp.c $(test_canonical_decomposition_SOURCES) \
        $(test_cased_SOURCES) $(test_categ_C_SOURCES) \
        $(test_categ_Cc_SOURCES) $(test_categ_Cf_SOURCES) \
        $(test_categ_Cn_SOURCES) $(test_categ_Co_SOURCES) \
        $(test_categ_Cs_SOURCES) $(test_categ_L_SOURCES) \
-       $(test_categ_Ll_SOURCES) $(test_categ_Lm_SOURCES) \
-       $(test_categ_Lo_SOURCES) $(test_categ_Lt_SOURCES) \
-       $(test_categ_Lu_SOURCES) $(test_categ_M_SOURCES) \
-       $(test_categ_Mc_SOURCES) $(test_categ_Me_SOURCES) \
-       $(test_categ_Mn_SOURCES) $(test_categ_N_SOURCES) \
-       $(test_categ_Nd_SOURCES) $(test_categ_Nl_SOURCES) \
-       $(test_categ_No_SOURCES) $(test_categ_P_SOURCES) \
-       $(test_categ_Pc_SOURCES) $(test_categ_Pd_SOURCES) \
-       $(test_categ_Pe_SOURCES) $(test_categ_Pf_SOURCES) \
-       $(test_categ_Pi_SOURCES) $(test_categ_Po_SOURCES) \
-       $(test_categ_Ps_SOURCES) $(test_categ_S_SOURCES) \
-       $(test_categ_Sc_SOURCES) $(test_categ_Sk_SOURCES) \
-       $(test_categ_Sm_SOURCES) $(test_categ_So_SOURCES) \
-       $(test_categ_Z_SOURCES) $(test_categ_Zl_SOURCES) \
-       $(test_categ_Zp_SOURCES) $(test_categ_Zs_SOURCES) \
-       $(test_categ_and_SOURCES) $(test_categ_and_not_SOURCES) \
-       $(test_categ_byname_SOURCES) $(test_categ_name_SOURCES) \
+       $(test_categ_LC_SOURCES) $(test_categ_Ll_SOURCES) \
+       $(test_categ_Lm_SOURCES) $(test_categ_Lo_SOURCES) \
+       $(test_categ_Lt_SOURCES) $(test_categ_Lu_SOURCES) \
+       $(test_categ_M_SOURCES) $(test_categ_Mc_SOURCES) \
+       $(test_categ_Me_SOURCES) $(test_categ_Mn_SOURCES) \
+       $(test_categ_N_SOURCES) $(test_categ_Nd_SOURCES) \
+       $(test_categ_Nl_SOURCES) $(test_categ_No_SOURCES) \
+       $(test_categ_P_SOURCES) $(test_categ_Pc_SOURCES) \
+       $(test_categ_Pd_SOURCES) $(test_categ_Pe_SOURCES) \
+       $(test_categ_Pf_SOURCES) $(test_categ_Pi_SOURCES) \
+       $(test_categ_Po_SOURCES) $(test_categ_Ps_SOURCES) \
+       $(test_categ_S_SOURCES) $(test_categ_Sc_SOURCES) \
+       $(test_categ_Sk_SOURCES) $(test_categ_Sm_SOURCES) \
+       $(test_categ_So_SOURCES) $(test_categ_Z_SOURCES) \
+       $(test_categ_Zl_SOURCES) $(test_categ_Zp_SOURCES) \
+       $(test_categ_Zs_SOURCES) $(test_categ_and_SOURCES) \
+       $(test_categ_and_not_SOURCES) $(test_categ_byname_SOURCES) \
+       $(test_categ_longname_SOURCES) $(test_categ_name_SOURCES) \
        $(test_categ_none_SOURCES) $(test_categ_of_SOURCES) \
        $(test_categ_or_SOURCES) $(test_categ_test_withtable_SOURCES) \
-       $(test_combining_SOURCES) $(test_compat_decomposition_SOURCES) \
+       $(test_combiningclass_SOURCES) \
+       $(test_combiningclass_byname_SOURCES) \
+       $(test_combiningclass_longname_SOURCES) \
+       $(test_combiningclass_name_SOURCES) \
+       $(test_compat_decomposition_SOURCES) \
        $(test_composition_SOURCES) $(test_ctype_alnum_SOURCES) \
        $(test_ctype_alpha_SOURCES) $(test_ctype_blank_SOURCES) \
        $(test_ctype_cntrl_SOURCES) $(test_ctype_digit_SOURCES) \
@@ -2833,14 +2654,25 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_ctype_xdigit_SOURCES) $(test_decdigit_SOURCES) \
        $(test_decomposing_form_SOURCES) $(test_decomposition_SOURCES) \
        $(test_digit_SOURCES) test-environ.c test-errno.c \
-       $(test_frexpl_nolibm_SOURCES) test-fseterr.c test-iconv.c \
-       test-iconv-h.c $(test_ignorable_SOURCES) test-isnand-nolibm.c \
-       test-isnanf-nolibm.c test-isnanl-nolibm.c test-locale.c \
+       test-fdopen.c test-fgetc.c test-float.c test-fputc.c \
+       test-fread.c $(test_frexp_nolibm_SOURCES) \
+       $(test_frexpl_nolibm_SOURCES) test-fseterr.c test-fwrite.c \
+       test-iconv.c test-iconv-h.c $(test_ignorable_SOURCES) \
+       test-intprops.c test-inttypes.c test-isnand-nolibm.c \
+       test-isnanf-nolibm.c test-isnanl-nolibm.c test-iswblank.c \
+       $(test_joininggroup_byname_SOURCES) \
+       $(test_joininggroup_name_SOURCES) \
+       $(test_joininggroup_of_SOURCES) \
+       $(test_joiningtype_byname_SOURCES) \
+       $(test_joiningtype_longname_SOURCES) \
+       $(test_joiningtype_name_SOURCES) \
+       $(test_joiningtype_of_SOURCES) test-locale.c \
        $(test_locale_language_SOURCES) test-localename.c test-lock.c \
-       test-malloca.c test-math.c test-mbrtowc.c test-mbsinit.c \
-       test-memchr.c $(test_mirror_SOURCES) $(test_nfc_SOURCES) \
-       $(test_nfd_SOURCES) $(test_nfkc_SOURCES) $(test_nfkd_SOURCES) \
-       $(test_numeric_SOURCES) $(test_pr_alphabetic_SOURCES) \
+       test-malloca.c test-math.c test-mbrtowc.c test-mbrtowc-w32.c \
+       test-mbsinit.c test-memchr.c $(test_mirror_SOURCES) \
+       $(test_nfc_SOURCES) $(test_nfd_SOURCES) $(test_nfkc_SOURCES) \
+       $(test_nfkd_SOURCES) $(test_numeric_SOURCES) \
+       $(test_pr_alphabetic_SOURCES) \
        $(test_pr_ascii_hex_digit_SOURCES) \
        $(test_pr_bidi_arabic_digit_SOURCES) \
        $(test_pr_bidi_arabic_right_to_left_SOURCES) \
@@ -2859,6 +2691,12 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_pr_bidi_pdf_SOURCES) \
        $(test_pr_bidi_segment_separator_SOURCES) \
        $(test_pr_bidi_whitespace_SOURCES) $(test_pr_byname_SOURCES) \
+       $(test_pr_case_ignorable_SOURCES) $(test_pr_cased_SOURCES) \
+       $(test_pr_changes_when_casefolded_SOURCES) \
+       $(test_pr_changes_when_casemapped_SOURCES) \
+       $(test_pr_changes_when_lowercased_SOURCES) \
+       $(test_pr_changes_when_titlecased_SOURCES) \
+       $(test_pr_changes_when_uppercased_SOURCES) \
        $(test_pr_combining_SOURCES) $(test_pr_composite_SOURCES) \
        $(test_pr_currency_symbol_SOURCES) $(test_pr_dash_SOURCES) \
        $(test_pr_decimal_digit_SOURCES) \
@@ -2905,19 +2743,24 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_pr_white_space_SOURCES) $(test_pr_xid_continue_SOURCES) \
        $(test_pr_xid_start_SOURCES) $(test_pr_zero_width_SOURCES) \
        test-printf-frexp.c test-printf-frexpl.c \
-       $(test_scripts_SOURCES) test-setenv.c test-signbit.c \
-       test-stdbool.c test-stddef.c test-stdint.c test-stdlib.c \
-       test-strerror.c test-striconveh.c test-striconveha.c \
-       test-string.c test-strncat.c $(test_sy_c_ident_SOURCES) \
+       $(test_scripts_SOURCES) test-setenv.c test-setlocale1.c \
+       test-setlocale2.c test-signbit.c test-stdbool.c test-stddef.c \
+       test-stdint.c test-stdio.c test-stdlib.c test-strerror.c \
+       test-striconveh.c test-striconveha.c test-string.c \
+       test-strncat.c test-strstr.c $(test_sy_c_ident_SOURCES) \
        $(test_sy_c_whitespace_SOURCES) $(test_sy_java_ident_SOURCES) \
-       $(test_sy_java_whitespace_SOURCES) \
+       $(test_sy_java_whitespace_SOURCES) test-sys_types.c \
+       test-thread_create.c test-thread_self.c \
        $(test_u16_asnprintf1_SOURCES) $(test_u16_casecmp_SOURCES) \
        $(test_u16_casecoll_SOURCES) $(test_u16_casefold_SOURCES) \
        $(test_u16_check_SOURCES) $(test_u16_chr_SOURCES) \
        $(test_u16_cmp_SOURCES) $(test_u16_cmp2_SOURCES) \
        $(test_u16_conv_from_enc_SOURCES) \
        $(test_u16_conv_to_enc_SOURCES) $(test_u16_cpy_SOURCES) \
-       $(test_u16_cpy_alloc_SOURCES) $(test_u16_is_cased_SOURCES) \
+       $(test_u16_cpy_alloc_SOURCES) \
+       $(test_u16_grapheme_breaks_SOURCES) \
+       $(test_u16_grapheme_next_SOURCES) \
+       $(test_u16_grapheme_prev_SOURCES) $(test_u16_is_cased_SOURCES) \
        $(test_u16_is_casefolded_SOURCES) \
        $(test_u16_is_lowercase_SOURCES) \
        $(test_u16_is_titlecase_SOURCES) \
@@ -2929,18 +2772,19 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_u16_possible_linebreaks_SOURCES) \
        $(test_u16_prev_SOURCES) $(test_u16_set_SOURCES) \
        $(test_u16_stpcpy_SOURCES) $(test_u16_stpncpy_SOURCES) \
-       $(test_u16_strcat_SOURCES) $(test_u16_strcmp_SOURCES) \
-       $(test_u16_strcoll_SOURCES) \
+       $(test_u16_strcat_SOURCES) $(test_u16_strchr_SOURCES) \
+       $(test_u16_strcmp_SOURCES) $(test_u16_strcoll_SOURCES) \
        $(test_u16_strconv_from_enc_SOURCES) \
        $(test_u16_strconv_to_enc_SOURCES) $(test_u16_strcpy_SOURCES) \
        $(test_u16_strdup_SOURCES) $(test_u16_strlen_SOURCES) \
        $(test_u16_strmblen_SOURCES) $(test_u16_strmbtouc_SOURCES) \
        $(test_u16_strncat_SOURCES) $(test_u16_strncmp_SOURCES) \
        $(test_u16_strncpy_SOURCES) $(test_u16_strnlen_SOURCES) \
-       $(test_u16_strwidth_SOURCES) $(test_u16_to_u32_SOURCES) \
-       $(test_u16_to_u8_SOURCES) $(test_u16_tolower_SOURCES) \
-       $(test_u16_totitle_SOURCES) $(test_u16_toupper_SOURCES) \
-       $(test_u16_uctomb_SOURCES) $(test_u16_vasnprintf1_SOURCES) \
+       $(test_u16_strstr_SOURCES) $(test_u16_strwidth_SOURCES) \
+       $(test_u16_to_u32_SOURCES) $(test_u16_to_u8_SOURCES) \
+       $(test_u16_tolower_SOURCES) $(test_u16_totitle_SOURCES) \
+       $(test_u16_toupper_SOURCES) $(test_u16_uctomb_SOURCES) \
+       $(test_u16_vasnprintf1_SOURCES) \
        $(test_u16_vasnprintf2_SOURCES) \
        $(test_u16_vasnprintf3_SOURCES) $(test_u16_vasprintf1_SOURCES) \
        $(test_u16_vsnprintf1_SOURCES) $(test_u16_vsprintf1_SOURCES) \
@@ -2951,7 +2795,10 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_u32_chr_SOURCES) $(test_u32_cmp_SOURCES) \
        $(test_u32_cmp2_SOURCES) $(test_u32_conv_from_enc_SOURCES) \
        $(test_u32_conv_to_enc_SOURCES) $(test_u32_cpy_SOURCES) \
-       $(test_u32_cpy_alloc_SOURCES) $(test_u32_is_cased_SOURCES) \
+       $(test_u32_cpy_alloc_SOURCES) \
+       $(test_u32_grapheme_breaks_SOURCES) \
+       $(test_u32_grapheme_next_SOURCES) \
+       $(test_u32_grapheme_prev_SOURCES) $(test_u32_is_cased_SOURCES) \
        $(test_u32_is_casefolded_SOURCES) \
        $(test_u32_is_lowercase_SOURCES) \
        $(test_u32_is_titlecase_SOURCES) \
@@ -2965,18 +2812,19 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_u32_possible_linebreaks_SOURCES) \
        $(test_u32_prev_SOURCES) $(test_u32_set_SOURCES) \
        $(test_u32_stpcpy_SOURCES) $(test_u32_stpncpy_SOURCES) \
-       $(test_u32_strcat_SOURCES) $(test_u32_strcmp_SOURCES) \
-       $(test_u32_strcoll_SOURCES) \
+       $(test_u32_strcat_SOURCES) $(test_u32_strchr_SOURCES) \
+       $(test_u32_strcmp_SOURCES) $(test_u32_strcoll_SOURCES) \
        $(test_u32_strconv_from_enc_SOURCES) \
        $(test_u32_strconv_to_enc_SOURCES) $(test_u32_strcpy_SOURCES) \
        $(test_u32_strdup_SOURCES) $(test_u32_strlen_SOURCES) \
        $(test_u32_strmblen_SOURCES) $(test_u32_strmbtouc_SOURCES) \
        $(test_u32_strncat_SOURCES) $(test_u32_strncmp_SOURCES) \
        $(test_u32_strncpy_SOURCES) $(test_u32_strnlen_SOURCES) \
-       $(test_u32_strwidth_SOURCES) $(test_u32_to_u16_SOURCES) \
-       $(test_u32_to_u8_SOURCES) $(test_u32_tolower_SOURCES) \
-       $(test_u32_totitle_SOURCES) $(test_u32_toupper_SOURCES) \
-       $(test_u32_uctomb_SOURCES) $(test_u32_vasnprintf1_SOURCES) \
+       $(test_u32_strstr_SOURCES) $(test_u32_strwidth_SOURCES) \
+       $(test_u32_to_u16_SOURCES) $(test_u32_to_u8_SOURCES) \
+       $(test_u32_tolower_SOURCES) $(test_u32_totitle_SOURCES) \
+       $(test_u32_toupper_SOURCES) $(test_u32_uctomb_SOURCES) \
+       $(test_u32_vasnprintf1_SOURCES) \
        $(test_u32_vasnprintf2_SOURCES) \
        $(test_u32_vasnprintf3_SOURCES) $(test_u32_vasprintf1_SOURCES) \
        $(test_u32_vsnprintf1_SOURCES) $(test_u32_vsprintf1_SOURCES) \
@@ -2987,7 +2835,10 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_u8_chr_SOURCES) $(test_u8_cmp_SOURCES) \
        $(test_u8_cmp2_SOURCES) $(test_u8_conv_from_enc_SOURCES) \
        $(test_u8_conv_to_enc_SOURCES) $(test_u8_cpy_SOURCES) \
-       $(test_u8_cpy_alloc_SOURCES) $(test_u8_is_cased_SOURCES) \
+       $(test_u8_cpy_alloc_SOURCES) \
+       $(test_u8_grapheme_breaks_SOURCES) \
+       $(test_u8_grapheme_next_SOURCES) \
+       $(test_u8_grapheme_prev_SOURCES) $(test_u8_is_cased_SOURCES) \
        $(test_u8_is_casefolded_SOURCES) \
        $(test_u8_is_lowercase_SOURCES) \
        $(test_u8_is_titlecase_SOURCES) \
@@ -2999,26 +2850,28 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_u8_possible_linebreaks_SOURCES) $(test_u8_prev_SOURCES) \
        $(test_u8_set_SOURCES) $(test_u8_stpcpy_SOURCES) \
        $(test_u8_stpncpy_SOURCES) $(test_u8_strcat_SOURCES) \
-       $(test_u8_strcmp_SOURCES) $(test_u8_strcoll_SOURCES) \
-       $(test_u8_strconv_from_enc_SOURCES) \
+       $(test_u8_strchr_SOURCES) $(test_u8_strcmp_SOURCES) \
+       $(test_u8_strcoll_SOURCES) $(test_u8_strconv_from_enc_SOURCES) \
        $(test_u8_strconv_to_enc_SOURCES) $(test_u8_strcpy_SOURCES) \
        $(test_u8_strdup_SOURCES) $(test_u8_strlen_SOURCES) \
        $(test_u8_strmblen_SOURCES) $(test_u8_strmbtouc_SOURCES) \
        $(test_u8_strncat_SOURCES) $(test_u8_strncmp_SOURCES) \
        $(test_u8_strncpy_SOURCES) $(test_u8_strnlen_SOURCES) \
-       $(test_u8_strwidth_SOURCES) $(test_u8_to_u16_SOURCES) \
-       $(test_u8_to_u32_SOURCES) $(test_u8_tolower_SOURCES) \
-       $(test_u8_totitle_SOURCES) $(test_u8_toupper_SOURCES) \
-       $(test_u8_uctomb_SOURCES) $(test_u8_vasnprintf1_SOURCES) \
-       $(test_u8_vasnprintf2_SOURCES) $(test_u8_vasnprintf3_SOURCES) \
-       $(test_u8_vasprintf1_SOURCES) $(test_u8_vsnprintf1_SOURCES) \
-       $(test_u8_vsprintf1_SOURCES) $(test_u8_width_SOURCES) \
-       $(test_u8_width_linebreaks_SOURCES) \
-       $(test_u8_wordbreaks_SOURCES) $(test_uc_tolower_SOURCES) \
-       $(test_uc_totitle_SOURCES) $(test_uc_toupper_SOURCES) \
-       $(test_uc_width_SOURCES) $(test_uc_width2_SOURCES) \
-       $(test_ulc_asnprintf1_SOURCES) $(test_ulc_casecmp_SOURCES) \
-       $(test_ulc_casecoll_SOURCES) \
+       $(test_u8_strstr_SOURCES) $(test_u8_strwidth_SOURCES) \
+       $(test_u8_to_u16_SOURCES) $(test_u8_to_u32_SOURCES) \
+       $(test_u8_tolower_SOURCES) $(test_u8_totitle_SOURCES) \
+       $(test_u8_toupper_SOURCES) $(test_u8_uctomb_SOURCES) \
+       $(test_u8_vasnprintf1_SOURCES) $(test_u8_vasnprintf2_SOURCES) \
+       $(test_u8_vasnprintf3_SOURCES) $(test_u8_vasprintf1_SOURCES) \
+       $(test_u8_vsnprintf1_SOURCES) $(test_u8_vsprintf1_SOURCES) \
+       $(test_u8_width_SOURCES) $(test_u8_width_linebreaks_SOURCES) \
+       $(test_u8_wordbreaks_SOURCES) $(test_uc_gbrk_prop_SOURCES) \
+       $(test_uc_is_grapheme_break_SOURCES) \
+       $(test_uc_tolower_SOURCES) $(test_uc_totitle_SOURCES) \
+       $(test_uc_toupper_SOURCES) $(test_uc_width_SOURCES) \
+       $(test_uc_width2_SOURCES) $(test_ulc_asnprintf1_SOURCES) \
+       $(test_ulc_casecmp_SOURCES) $(test_ulc_casecoll_SOURCES) \
+       $(test_ulc_grapheme_breaks_SOURCES) \
        $(test_ulc_possible_linebreaks_SOURCES) \
        $(test_ulc_vasnprintf1_SOURCES) \
        $(test_ulc_vasnprintf2_SOURCES) \
@@ -3027,39 +2880,46 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_ulc_width_linebreaks_SOURCES) \
        $(test_ulc_wordbreaks_SOURCES) $(test_uninames_SOURCES) \
        $(test_uninorm_filter_nfc_SOURCES) test-unistd.c \
-       test-unsetenv.c test-wchar.c test-wctype.c test-wcwidth.c \
+       test-unsetenv.c test-verify.c test-wchar.c test-wcrtomb.c \
+       test-wcrtomb-w32.c test-wctype-h.c test-wcwidth.c \
        test-xalloc-die.c
 DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        test-alloca-opt.c test-array-mergesort.c \
-       $(test_bidi_byname_SOURCES) $(test_bidi_name_SOURCES) \
-       $(test_bidi_of_SOURCES) $(test_bidi_test_SOURCES) \
-       $(test_block_list_SOURCES) $(test_block_of_SOURCES) \
-       $(test_block_test_SOURCES) test-c-ctype.c test-c-strcasecmp.c \
+       $(test_bidi_byname_SOURCES) $(test_bidi_longname_SOURCES) \
+       $(test_bidi_name_SOURCES) $(test_bidi_of_SOURCES) \
+       $(test_bidi_test_SOURCES) $(test_block_list_SOURCES) \
+       $(test_block_of_SOURCES) $(test_block_test_SOURCES) \
+       test-btowc.c test-c-ctype.c test-c-strcasecmp.c \
        test-c-strncasecmp.c $(test_canonical_decomposition_SOURCES) \
        $(test_cased_SOURCES) $(test_categ_C_SOURCES) \
        $(test_categ_Cc_SOURCES) $(test_categ_Cf_SOURCES) \
        $(test_categ_Cn_SOURCES) $(test_categ_Co_SOURCES) \
        $(test_categ_Cs_SOURCES) $(test_categ_L_SOURCES) \
-       $(test_categ_Ll_SOURCES) $(test_categ_Lm_SOURCES) \
-       $(test_categ_Lo_SOURCES) $(test_categ_Lt_SOURCES) \
-       $(test_categ_Lu_SOURCES) $(test_categ_M_SOURCES) \
-       $(test_categ_Mc_SOURCES) $(test_categ_Me_SOURCES) \
-       $(test_categ_Mn_SOURCES) $(test_categ_N_SOURCES) \
-       $(test_categ_Nd_SOURCES) $(test_categ_Nl_SOURCES) \
-       $(test_categ_No_SOURCES) $(test_categ_P_SOURCES) \
-       $(test_categ_Pc_SOURCES) $(test_categ_Pd_SOURCES) \
-       $(test_categ_Pe_SOURCES) $(test_categ_Pf_SOURCES) \
-       $(test_categ_Pi_SOURCES) $(test_categ_Po_SOURCES) \
-       $(test_categ_Ps_SOURCES) $(test_categ_S_SOURCES) \
-       $(test_categ_Sc_SOURCES) $(test_categ_Sk_SOURCES) \
-       $(test_categ_Sm_SOURCES) $(test_categ_So_SOURCES) \
-       $(test_categ_Z_SOURCES) $(test_categ_Zl_SOURCES) \
-       $(test_categ_Zp_SOURCES) $(test_categ_Zs_SOURCES) \
-       $(test_categ_and_SOURCES) $(test_categ_and_not_SOURCES) \
-       $(test_categ_byname_SOURCES) $(test_categ_name_SOURCES) \
+       $(test_categ_LC_SOURCES) $(test_categ_Ll_SOURCES) \
+       $(test_categ_Lm_SOURCES) $(test_categ_Lo_SOURCES) \
+       $(test_categ_Lt_SOURCES) $(test_categ_Lu_SOURCES) \
+       $(test_categ_M_SOURCES) $(test_categ_Mc_SOURCES) \
+       $(test_categ_Me_SOURCES) $(test_categ_Mn_SOURCES) \
+       $(test_categ_N_SOURCES) $(test_categ_Nd_SOURCES) \
+       $(test_categ_Nl_SOURCES) $(test_categ_No_SOURCES) \
+       $(test_categ_P_SOURCES) $(test_categ_Pc_SOURCES) \
+       $(test_categ_Pd_SOURCES) $(test_categ_Pe_SOURCES) \
+       $(test_categ_Pf_SOURCES) $(test_categ_Pi_SOURCES) \
+       $(test_categ_Po_SOURCES) $(test_categ_Ps_SOURCES) \
+       $(test_categ_S_SOURCES) $(test_categ_Sc_SOURCES) \
+       $(test_categ_Sk_SOURCES) $(test_categ_Sm_SOURCES) \
+       $(test_categ_So_SOURCES) $(test_categ_Z_SOURCES) \
+       $(test_categ_Zl_SOURCES) $(test_categ_Zp_SOURCES) \
+       $(test_categ_Zs_SOURCES) $(test_categ_and_SOURCES) \
+       $(test_categ_and_not_SOURCES) $(test_categ_byname_SOURCES) \
+       $(test_categ_longname_SOURCES) $(test_categ_name_SOURCES) \
        $(am__test_categ_none_SOURCES_DIST) $(test_categ_of_SOURCES) \
        $(test_categ_or_SOURCES) $(test_categ_test_withtable_SOURCES) \
-       $(test_combining_SOURCES) $(test_compat_decomposition_SOURCES) \
+       $(test_combiningclass_SOURCES) \
+       $(test_combiningclass_byname_SOURCES) \
+       $(test_combiningclass_longname_SOURCES) \
+       $(test_combiningclass_name_SOURCES) \
+       $(test_compat_decomposition_SOURCES) \
        $(test_composition_SOURCES) $(test_ctype_alnum_SOURCES) \
        $(test_ctype_alpha_SOURCES) $(test_ctype_blank_SOURCES) \
        $(test_ctype_cntrl_SOURCES) $(test_ctype_digit_SOURCES) \
@@ -3069,14 +2929,25 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_ctype_xdigit_SOURCES) $(test_decdigit_SOURCES) \
        $(test_decomposing_form_SOURCES) $(test_decomposition_SOURCES) \
        $(test_digit_SOURCES) test-environ.c test-errno.c \
-       $(test_frexpl_nolibm_SOURCES) test-fseterr.c test-iconv.c \
-       test-iconv-h.c $(test_ignorable_SOURCES) test-isnand-nolibm.c \
-       test-isnanf-nolibm.c test-isnanl-nolibm.c test-locale.c \
+       test-fdopen.c test-fgetc.c test-float.c test-fputc.c \
+       test-fread.c $(test_frexp_nolibm_SOURCES) \
+       $(test_frexpl_nolibm_SOURCES) test-fseterr.c test-fwrite.c \
+       test-iconv.c test-iconv-h.c $(test_ignorable_SOURCES) \
+       test-intprops.c test-inttypes.c test-isnand-nolibm.c \
+       test-isnanf-nolibm.c test-isnanl-nolibm.c test-iswblank.c \
+       $(test_joininggroup_byname_SOURCES) \
+       $(test_joininggroup_name_SOURCES) \
+       $(test_joininggroup_of_SOURCES) \
+       $(test_joiningtype_byname_SOURCES) \
+       $(test_joiningtype_longname_SOURCES) \
+       $(test_joiningtype_name_SOURCES) \
+       $(test_joiningtype_of_SOURCES) test-locale.c \
        $(test_locale_language_SOURCES) test-localename.c test-lock.c \
-       test-malloca.c test-math.c test-mbrtowc.c test-mbsinit.c \
-       test-memchr.c $(test_mirror_SOURCES) $(test_nfc_SOURCES) \
-       $(test_nfd_SOURCES) $(test_nfkc_SOURCES) $(test_nfkd_SOURCES) \
-       $(test_numeric_SOURCES) $(test_pr_alphabetic_SOURCES) \
+       test-malloca.c test-math.c test-mbrtowc.c test-mbrtowc-w32.c \
+       test-mbsinit.c test-memchr.c $(test_mirror_SOURCES) \
+       $(test_nfc_SOURCES) $(test_nfd_SOURCES) $(test_nfkc_SOURCES) \
+       $(test_nfkd_SOURCES) $(test_numeric_SOURCES) \
+       $(test_pr_alphabetic_SOURCES) \
        $(test_pr_ascii_hex_digit_SOURCES) \
        $(test_pr_bidi_arabic_digit_SOURCES) \
        $(test_pr_bidi_arabic_right_to_left_SOURCES) \
@@ -3095,6 +2966,12 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_pr_bidi_pdf_SOURCES) \
        $(test_pr_bidi_segment_separator_SOURCES) \
        $(test_pr_bidi_whitespace_SOURCES) $(test_pr_byname_SOURCES) \
+       $(test_pr_case_ignorable_SOURCES) $(test_pr_cased_SOURCES) \
+       $(test_pr_changes_when_casefolded_SOURCES) \
+       $(test_pr_changes_when_casemapped_SOURCES) \
+       $(test_pr_changes_when_lowercased_SOURCES) \
+       $(test_pr_changes_when_titlecased_SOURCES) \
+       $(test_pr_changes_when_uppercased_SOURCES) \
        $(test_pr_combining_SOURCES) $(test_pr_composite_SOURCES) \
        $(test_pr_currency_symbol_SOURCES) $(test_pr_dash_SOURCES) \
        $(test_pr_decimal_digit_SOURCES) \
@@ -3141,19 +3018,24 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_pr_white_space_SOURCES) $(test_pr_xid_continue_SOURCES) \
        $(test_pr_xid_start_SOURCES) $(test_pr_zero_width_SOURCES) \
        test-printf-frexp.c test-printf-frexpl.c \
-       $(test_scripts_SOURCES) test-setenv.c test-signbit.c \
-       test-stdbool.c test-stddef.c test-stdint.c test-stdlib.c \
-       test-strerror.c test-striconveh.c test-striconveha.c \
-       test-string.c test-strncat.c $(test_sy_c_ident_SOURCES) \
+       $(test_scripts_SOURCES) test-setenv.c test-setlocale1.c \
+       test-setlocale2.c test-signbit.c test-stdbool.c test-stddef.c \
+       test-stdint.c test-stdio.c test-stdlib.c test-strerror.c \
+       test-striconveh.c test-striconveha.c test-string.c \
+       test-strncat.c test-strstr.c $(test_sy_c_ident_SOURCES) \
        $(test_sy_c_whitespace_SOURCES) $(test_sy_java_ident_SOURCES) \
-       $(test_sy_java_whitespace_SOURCES) \
+       $(test_sy_java_whitespace_SOURCES) test-sys_types.c \
+       test-thread_create.c test-thread_self.c \
        $(test_u16_asnprintf1_SOURCES) $(test_u16_casecmp_SOURCES) \
        $(test_u16_casecoll_SOURCES) $(test_u16_casefold_SOURCES) \
        $(test_u16_check_SOURCES) $(test_u16_chr_SOURCES) \
        $(test_u16_cmp_SOURCES) $(test_u16_cmp2_SOURCES) \
        $(test_u16_conv_from_enc_SOURCES) \
        $(test_u16_conv_to_enc_SOURCES) $(test_u16_cpy_SOURCES) \
-       $(test_u16_cpy_alloc_SOURCES) $(test_u16_is_cased_SOURCES) \
+       $(test_u16_cpy_alloc_SOURCES) \
+       $(test_u16_grapheme_breaks_SOURCES) \
+       $(test_u16_grapheme_next_SOURCES) \
+       $(test_u16_grapheme_prev_SOURCES) $(test_u16_is_cased_SOURCES) \
        $(test_u16_is_casefolded_SOURCES) \
        $(test_u16_is_lowercase_SOURCES) \
        $(test_u16_is_titlecase_SOURCES) \
@@ -3165,18 +3047,19 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_u16_possible_linebreaks_SOURCES) \
        $(test_u16_prev_SOURCES) $(test_u16_set_SOURCES) \
        $(test_u16_stpcpy_SOURCES) $(test_u16_stpncpy_SOURCES) \
-       $(test_u16_strcat_SOURCES) $(test_u16_strcmp_SOURCES) \
-       $(test_u16_strcoll_SOURCES) \
+       $(test_u16_strcat_SOURCES) $(test_u16_strchr_SOURCES) \
+       $(test_u16_strcmp_SOURCES) $(test_u16_strcoll_SOURCES) \
        $(test_u16_strconv_from_enc_SOURCES) \
        $(test_u16_strconv_to_enc_SOURCES) $(test_u16_strcpy_SOURCES) \
        $(test_u16_strdup_SOURCES) $(test_u16_strlen_SOURCES) \
        $(test_u16_strmblen_SOURCES) $(test_u16_strmbtouc_SOURCES) \
        $(test_u16_strncat_SOURCES) $(test_u16_strncmp_SOURCES) \
        $(test_u16_strncpy_SOURCES) $(test_u16_strnlen_SOURCES) \
-       $(test_u16_strwidth_SOURCES) $(test_u16_to_u32_SOURCES) \
-       $(test_u16_to_u8_SOURCES) $(test_u16_tolower_SOURCES) \
-       $(test_u16_totitle_SOURCES) $(test_u16_toupper_SOURCES) \
-       $(test_u16_uctomb_SOURCES) $(test_u16_vasnprintf1_SOURCES) \
+       $(test_u16_strstr_SOURCES) $(test_u16_strwidth_SOURCES) \
+       $(test_u16_to_u32_SOURCES) $(test_u16_to_u8_SOURCES) \
+       $(test_u16_tolower_SOURCES) $(test_u16_totitle_SOURCES) \
+       $(test_u16_toupper_SOURCES) $(test_u16_uctomb_SOURCES) \
+       $(test_u16_vasnprintf1_SOURCES) \
        $(test_u16_vasnprintf2_SOURCES) \
        $(test_u16_vasnprintf3_SOURCES) $(test_u16_vasprintf1_SOURCES) \
        $(test_u16_vsnprintf1_SOURCES) $(test_u16_vsprintf1_SOURCES) \
@@ -3187,7 +3070,10 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_u32_chr_SOURCES) $(test_u32_cmp_SOURCES) \
        $(test_u32_cmp2_SOURCES) $(test_u32_conv_from_enc_SOURCES) \
        $(test_u32_conv_to_enc_SOURCES) $(test_u32_cpy_SOURCES) \
-       $(test_u32_cpy_alloc_SOURCES) $(test_u32_is_cased_SOURCES) \
+       $(test_u32_cpy_alloc_SOURCES) \
+       $(test_u32_grapheme_breaks_SOURCES) \
+       $(test_u32_grapheme_next_SOURCES) \
+       $(test_u32_grapheme_prev_SOURCES) $(test_u32_is_cased_SOURCES) \
        $(test_u32_is_casefolded_SOURCES) \
        $(test_u32_is_lowercase_SOURCES) \
        $(test_u32_is_titlecase_SOURCES) \
@@ -3201,18 +3087,19 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_u32_possible_linebreaks_SOURCES) \
        $(test_u32_prev_SOURCES) $(test_u32_set_SOURCES) \
        $(test_u32_stpcpy_SOURCES) $(test_u32_stpncpy_SOURCES) \
-       $(test_u32_strcat_SOURCES) $(test_u32_strcmp_SOURCES) \
-       $(test_u32_strcoll_SOURCES) \
+       $(test_u32_strcat_SOURCES) $(test_u32_strchr_SOURCES) \
+       $(test_u32_strcmp_SOURCES) $(test_u32_strcoll_SOURCES) \
        $(test_u32_strconv_from_enc_SOURCES) \
        $(test_u32_strconv_to_enc_SOURCES) $(test_u32_strcpy_SOURCES) \
        $(test_u32_strdup_SOURCES) $(test_u32_strlen_SOURCES) \
        $(test_u32_strmblen_SOURCES) $(test_u32_strmbtouc_SOURCES) \
        $(test_u32_strncat_SOURCES) $(test_u32_strncmp_SOURCES) \
        $(test_u32_strncpy_SOURCES) $(test_u32_strnlen_SOURCES) \
-       $(test_u32_strwidth_SOURCES) $(test_u32_to_u16_SOURCES) \
-       $(test_u32_to_u8_SOURCES) $(test_u32_tolower_SOURCES) \
-       $(test_u32_totitle_SOURCES) $(test_u32_toupper_SOURCES) \
-       $(test_u32_uctomb_SOURCES) $(test_u32_vasnprintf1_SOURCES) \
+       $(test_u32_strstr_SOURCES) $(test_u32_strwidth_SOURCES) \
+       $(test_u32_to_u16_SOURCES) $(test_u32_to_u8_SOURCES) \
+       $(test_u32_tolower_SOURCES) $(test_u32_totitle_SOURCES) \
+       $(test_u32_toupper_SOURCES) $(test_u32_uctomb_SOURCES) \
+       $(test_u32_vasnprintf1_SOURCES) \
        $(test_u32_vasnprintf2_SOURCES) \
        $(test_u32_vasnprintf3_SOURCES) $(test_u32_vasprintf1_SOURCES) \
        $(test_u32_vsnprintf1_SOURCES) $(test_u32_vsprintf1_SOURCES) \
@@ -3223,7 +3110,10 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_u8_chr_SOURCES) $(test_u8_cmp_SOURCES) \
        $(test_u8_cmp2_SOURCES) $(test_u8_conv_from_enc_SOURCES) \
        $(test_u8_conv_to_enc_SOURCES) $(test_u8_cpy_SOURCES) \
-       $(test_u8_cpy_alloc_SOURCES) $(test_u8_is_cased_SOURCES) \
+       $(test_u8_cpy_alloc_SOURCES) \
+       $(test_u8_grapheme_breaks_SOURCES) \
+       $(test_u8_grapheme_next_SOURCES) \
+       $(test_u8_grapheme_prev_SOURCES) $(test_u8_is_cased_SOURCES) \
        $(test_u8_is_casefolded_SOURCES) \
        $(test_u8_is_lowercase_SOURCES) \
        $(test_u8_is_titlecase_SOURCES) \
@@ -3235,26 +3125,28 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_u8_possible_linebreaks_SOURCES) $(test_u8_prev_SOURCES) \
        $(test_u8_set_SOURCES) $(test_u8_stpcpy_SOURCES) \
        $(test_u8_stpncpy_SOURCES) $(test_u8_strcat_SOURCES) \
-       $(test_u8_strcmp_SOURCES) $(test_u8_strcoll_SOURCES) \
-       $(test_u8_strconv_from_enc_SOURCES) \
+       $(test_u8_strchr_SOURCES) $(test_u8_strcmp_SOURCES) \
+       $(test_u8_strcoll_SOURCES) $(test_u8_strconv_from_enc_SOURCES) \
        $(test_u8_strconv_to_enc_SOURCES) $(test_u8_strcpy_SOURCES) \
        $(test_u8_strdup_SOURCES) $(test_u8_strlen_SOURCES) \
        $(test_u8_strmblen_SOURCES) $(test_u8_strmbtouc_SOURCES) \
        $(test_u8_strncat_SOURCES) $(test_u8_strncmp_SOURCES) \
        $(test_u8_strncpy_SOURCES) $(test_u8_strnlen_SOURCES) \
-       $(test_u8_strwidth_SOURCES) $(test_u8_to_u16_SOURCES) \
-       $(test_u8_to_u32_SOURCES) $(test_u8_tolower_SOURCES) \
-       $(test_u8_totitle_SOURCES) $(test_u8_toupper_SOURCES) \
-       $(test_u8_uctomb_SOURCES) $(test_u8_vasnprintf1_SOURCES) \
-       $(test_u8_vasnprintf2_SOURCES) $(test_u8_vasnprintf3_SOURCES) \
-       $(test_u8_vasprintf1_SOURCES) $(test_u8_vsnprintf1_SOURCES) \
-       $(test_u8_vsprintf1_SOURCES) $(test_u8_width_SOURCES) \
-       $(test_u8_width_linebreaks_SOURCES) \
-       $(test_u8_wordbreaks_SOURCES) $(test_uc_tolower_SOURCES) \
-       $(test_uc_totitle_SOURCES) $(test_uc_toupper_SOURCES) \
-       $(test_uc_width_SOURCES) $(test_uc_width2_SOURCES) \
-       $(test_ulc_asnprintf1_SOURCES) $(test_ulc_casecmp_SOURCES) \
-       $(test_ulc_casecoll_SOURCES) \
+       $(test_u8_strstr_SOURCES) $(test_u8_strwidth_SOURCES) \
+       $(test_u8_to_u16_SOURCES) $(test_u8_to_u32_SOURCES) \
+       $(test_u8_tolower_SOURCES) $(test_u8_totitle_SOURCES) \
+       $(test_u8_toupper_SOURCES) $(test_u8_uctomb_SOURCES) \
+       $(test_u8_vasnprintf1_SOURCES) $(test_u8_vasnprintf2_SOURCES) \
+       $(test_u8_vasnprintf3_SOURCES) $(test_u8_vasprintf1_SOURCES) \
+       $(test_u8_vsnprintf1_SOURCES) $(test_u8_vsprintf1_SOURCES) \
+       $(test_u8_width_SOURCES) $(test_u8_width_linebreaks_SOURCES) \
+       $(test_u8_wordbreaks_SOURCES) $(test_uc_gbrk_prop_SOURCES) \
+       $(test_uc_is_grapheme_break_SOURCES) \
+       $(test_uc_tolower_SOURCES) $(test_uc_totitle_SOURCES) \
+       $(test_uc_toupper_SOURCES) $(test_uc_width_SOURCES) \
+       $(test_uc_width2_SOURCES) $(test_ulc_asnprintf1_SOURCES) \
+       $(test_ulc_casecmp_SOURCES) $(test_ulc_casecoll_SOURCES) \
+       $(test_ulc_grapheme_breaks_SOURCES) \
        $(test_ulc_possible_linebreaks_SOURCES) \
        $(test_ulc_vasnprintf1_SOURCES) \
        $(test_ulc_vasnprintf2_SOURCES) \
@@ -3263,38 +3155,253 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
        $(test_ulc_width_linebreaks_SOURCES) \
        $(test_ulc_wordbreaks_SOURCES) $(test_uninames_SOURCES) \
        $(test_uninorm_filter_nfc_SOURCES) test-unistd.c \
-       test-unsetenv.c test-wchar.c test-wctype.c test-wcwidth.c \
+       test-unsetenv.c test-verify.c test-wchar.c test-wcrtomb.c \
+       test-wcrtomb-w32.c test-wctype-h.c test-wcwidth.c \
        test-xalloc-die.c
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-       html-recursive info-recursive install-data-recursive \
-       install-dvi-recursive install-exec-recursive \
-       install-html-recursive install-info-recursive \
-       install-pdf-recursive install-ps-recursive install-recursive \
-       installcheck-recursive installdirs-recursive pdf-recursive \
-       ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 HEADERS = $(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-       distdir
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       check recheck distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
-# If stdout is a non-dumb tty, use colors.  If test -t is not supported,
-# then this fails; a conservative approach.  Of course do not redirect
-# stdout here, just stderr.
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=; \
-test "X$(AM_COLOR_TESTS)" != Xno \
-&& test "X$$TERM" != Xdumb \
-&& { test "X$(AM_COLOR_TESTS)" = Xalways || test -t 1 2>/dev/null; } \
-&& { \
-  red='\e[0;31m'; \
-  grn='\e[0;32m'; \
-  lgn='\e[1;32m'; \
-  blu='\e[1;34m'; \
-  std='\e[m'; \
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red='\e[0;31m'; \
+    grn='\e[0;32m'; \
+    lgn='\e[1;32m'; \
+    blu='\e[1;34m'; \
+    mgn='\e[0;35m'; \
+    brg='\e[1m'; \
+    std='\e[m'; \
+  fi; \
 }
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__recheck_rx = ^[    ]*:recheck:[    ]*
+am__global_test_result_rx = ^[         ]*:global-test-result:[         ]*
+am__copy_in_global_log_rx = ^[         ]*:copy-in-global-log:[         ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+           recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[       ]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);                                     \
+$(am__vpath_adj_setup) $(am__vpath_adj)                        \
+$(am__tty_colors);                                     \
+srcdir=$(srcdir); export srcdir;                       \
+case "$@" in                                           \
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;   \
+    *) am__odir=.;;                                    \
+esac;                                                  \
+test "x$$am__odir" = x"." || test -d "$$am__odir"      \
+  || $(MKDIR_P) "$$am__odir" || exit $$?;              \
+if test -f "./$$f"; then dir=./;                       \
+elif test -f "$$f"; then dir=;                         \
+else dir="$(srcdir)/"; fi;                             \
+tst=$$dir$$f; log='$@';                                \
+if test -n '$(DISABLE_HARD_ERRORS)'; then              \
+  am__enable_hard_errors=no;                           \
+else                                                   \
+  am__enable_hard_errors=yes;                          \
+fi;                                                    \
+case " $(XFAIL_TESTS) " in                             \
+  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
+    am__expect_failure=yes;;                           \
+  *)                                                   \
+    am__expect_failure=no;;                            \
+esac;                                                  \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+       $(TEST_LOG_FLAGS)
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
@@ -3322,6 +3429,7 @@ am__relativize = \
     dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
   done; \
   reldir="$$dir2"
+pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 ALLOCA_H = @ALLOCA_H@
@@ -3329,6 +3437,7 @@ AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
 AR = @AR@
+ARFLAGS = @ARFLAGS@
 AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
@@ -3368,38 +3477,97 @@ FGREP = @FGREP@
 FLOAT_H = @FLOAT_H@
 GLIBC21 = @GLIBC21@
 GLOBAL_SYMBOL_PIPE = @GLOBAL_SYMBOL_PIPE@
+GNULIB_ACOSF = @GNULIB_ACOSF@
 GNULIB_ACOSL = @GNULIB_ACOSL@
+GNULIB_ASINF = @GNULIB_ASINF@
 GNULIB_ASINL = @GNULIB_ASINL@
+GNULIB_ATAN2F = @GNULIB_ATAN2F@
+GNULIB_ATANF = @GNULIB_ATANF@
 GNULIB_ATANL = @GNULIB_ATANL@
 GNULIB_ATOLL = @GNULIB_ATOLL@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
+GNULIB_CBRT = @GNULIB_CBRT@
+GNULIB_CBRTF = @GNULIB_CBRTF@
+GNULIB_CBRTL = @GNULIB_CBRTL@
+GNULIB_CEIL = @GNULIB_CEIL@
 GNULIB_CEILF = @GNULIB_CEILF@
 GNULIB_CEILL = @GNULIB_CEILL@
+GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_COPYSIGN = @GNULIB_COPYSIGN@
+GNULIB_COPYSIGNF = @GNULIB_COPYSIGNF@
+GNULIB_COPYSIGNL = @GNULIB_COPYSIGNL@
+GNULIB_COSF = @GNULIB_COSF@
+GNULIB_COSHF = @GNULIB_COSHF@
 GNULIB_COSL = @GNULIB_COSL@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
 GNULIB_DUP3 = @GNULIB_DUP3@
 GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
 GNULIB_ENVIRON = @GNULIB_ENVIRON@
 GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_EXP2 = @GNULIB_EXP2@
+GNULIB_EXP2F = @GNULIB_EXP2F@
+GNULIB_EXP2L = @GNULIB_EXP2L@
+GNULIB_EXPF = @GNULIB_EXPF@
 GNULIB_EXPL = @GNULIB_EXPL@
+GNULIB_EXPM1 = @GNULIB_EXPM1@
+GNULIB_EXPM1F = @GNULIB_EXPM1F@
+GNULIB_EXPM1L = @GNULIB_EXPM1L@
+GNULIB_FABSF = @GNULIB_FABSF@
+GNULIB_FABSL = @GNULIB_FABSL@
 GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
 GNULIB_FCHDIR = @GNULIB_FCHDIR@
 GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
+GNULIB_FCLOSE = @GNULIB_FCLOSE@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+GNULIB_FLOOR = @GNULIB_FLOOR@
 GNULIB_FLOORF = @GNULIB_FLOORF@
 GNULIB_FLOORL = @GNULIB_FLOORL@
+GNULIB_FMA = @GNULIB_FMA@
+GNULIB_FMAF = @GNULIB_FMAF@
+GNULIB_FMAL = @GNULIB_FMAL@
+GNULIB_FMOD = @GNULIB_FMOD@
+GNULIB_FMODF = @GNULIB_FMODF@
+GNULIB_FMODL = @GNULIB_FMODL@
+GNULIB_FOPEN = @GNULIB_FOPEN@
+GNULIB_FPRINTF = @GNULIB_FPRINTF@
+GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
+GNULIB_FPURGE = @GNULIB_FPURGE@
+GNULIB_FPUTC = @GNULIB_FPUTC@
+GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
 GNULIB_FREXP = @GNULIB_FREXP@
+GNULIB_FREXPF = @GNULIB_FREXPF@
 GNULIB_FREXPL = @GNULIB_FREXPL@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
 GNULIB_FSYNC = @GNULIB_FSYNC@
+GNULIB_FTELL = @GNULIB_FTELL@
+GNULIB_FTELLO = @GNULIB_FTELLO@
 GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
 GNULIB_GETCWD = @GNULIB_GETCWD@
+GNULIB_GETDELIM = @GNULIB_GETDELIM@
 GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
 GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
 GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
 GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
+GNULIB_GETLINE = @GNULIB_GETLINE@
 GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
@@ -3407,17 +3575,45 @@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
 GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_HYPOT = @GNULIB_HYPOT@
+GNULIB_HYPOTF = @GNULIB_HYPOTF@
+GNULIB_HYPOTL = @GNULIB_HYPOTL@
+GNULIB_ICONV = @GNULIB_ICONV@
+GNULIB_ILOGB = @GNULIB_ILOGB@
+GNULIB_ILOGBF = @GNULIB_ILOGBF@
+GNULIB_ILOGBL = @GNULIB_ILOGBL@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
 GNULIB_ISFINITE = @GNULIB_ISFINITE@
 GNULIB_ISINF = @GNULIB_ISINF@
 GNULIB_ISNAN = @GNULIB_ISNAN@
 GNULIB_ISNAND = @GNULIB_ISNAND@
 GNULIB_ISNANF = @GNULIB_ISNANF@
 GNULIB_ISNANL = @GNULIB_ISNANL@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
+GNULIB_LDEXPF = @GNULIB_LDEXPF@
 GNULIB_LDEXPL = @GNULIB_LDEXPL@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
+GNULIB_LOG = @GNULIB_LOG@
+GNULIB_LOG10 = @GNULIB_LOG10@
+GNULIB_LOG10F = @GNULIB_LOG10F@
+GNULIB_LOG10L = @GNULIB_LOG10L@
+GNULIB_LOG1P = @GNULIB_LOG1P@
+GNULIB_LOG1PF = @GNULIB_LOG1PF@
+GNULIB_LOG1PL = @GNULIB_LOG1PL@
+GNULIB_LOG2 = @GNULIB_LOG2@
+GNULIB_LOG2F = @GNULIB_LOG2F@
+GNULIB_LOG2L = @GNULIB_LOG2L@
 GNULIB_LOGB = @GNULIB_LOGB@
+GNULIB_LOGBF = @GNULIB_LOGBF@
+GNULIB_LOGBL = @GNULIB_LOGBL@
+GNULIB_LOGF = @GNULIB_LOGF@
 GNULIB_LOGL = @GNULIB_LOGL@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -3440,6 +3636,7 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@
 GNULIB_MBSSPN = @GNULIB_MBSSPN@
 GNULIB_MBSSTR = @GNULIB_MBSSTR@
 GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MBTOWC = @GNULIB_MBTOWC@
 GNULIB_MEMCHR = @GNULIB_MEMCHR@
 GNULIB_MEMMEM = @GNULIB_MEMMEM@
 GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
@@ -3449,32 +3646,73 @@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
 GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
 GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
 GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
+GNULIB_MODF = @GNULIB_MODF@
+GNULIB_MODFF = @GNULIB_MODFF@
+GNULIB_MODFL = @GNULIB_MODFL@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
 GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_POWF = @GNULIB_POWF@
 GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
 GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
 GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_REMAINDER = @GNULIB_REMAINDER@
+GNULIB_REMAINDERF = @GNULIB_REMAINDERF@
+GNULIB_REMAINDERL = @GNULIB_REMAINDERL@
+GNULIB_REMOVE = @GNULIB_REMOVE@
+GNULIB_RENAME = @GNULIB_RENAME@
+GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_RINT = @GNULIB_RINT@
+GNULIB_RINTF = @GNULIB_RINTF@
+GNULIB_RINTL = @GNULIB_RINTL@
 GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_ROUND = @GNULIB_ROUND@
 GNULIB_ROUNDF = @GNULIB_ROUNDF@
 GNULIB_ROUNDL = @GNULIB_ROUNDL@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
 GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
 GNULIB_SIGNBIT = @GNULIB_SIGNBIT@
+GNULIB_SINF = @GNULIB_SINF@
+GNULIB_SINHF = @GNULIB_SINHF@
 GNULIB_SINL = @GNULIB_SINL@
 GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_SQRTF = @GNULIB_SQRTF@
 GNULIB_SQRTL = @GNULIB_SQRTL@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
 GNULIB_STPCPY = @GNULIB_STPCPY@
 GNULIB_STPNCPY = @GNULIB_STPNCPY@
 GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
 GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
 GNULIB_STRDUP = @GNULIB_STRDUP@
 GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRERROR_R = @GNULIB_STRERROR_R@
 GNULIB_STRNCAT = @GNULIB_STRNCAT@
 GNULIB_STRNDUP = @GNULIB_STRNDUP@
 GNULIB_STRNLEN = @GNULIB_STRNLEN@
@@ -3483,87 +3721,197 @@ GNULIB_STRSEP = @GNULIB_STRSEP@
 GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
 GNULIB_STRSTR = @GNULIB_STRSTR@
 GNULIB_STRTOD = @GNULIB_STRTOD@
+GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
 GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
 GNULIB_STRTOLL = @GNULIB_STRTOLL@
 GNULIB_STRTOULL = @GNULIB_STRTOULL@
+GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
 GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
 GNULIB_SYMLINK = @GNULIB_SYMLINK@
 GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
+GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TANF = @GNULIB_TANF@
+GNULIB_TANHF = @GNULIB_TANHF@
 GNULIB_TANL = @GNULIB_TANL@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TRUNC = @GNULIB_TRUNC@
 GNULIB_TRUNCF = @GNULIB_TRUNCF@
 GNULIB_TRUNCL = @GNULIB_TRUNCL@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
-GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
 GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
 GNULIB_UNLINK = @GNULIB_UNLINK@
 GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
 GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
 GNULIB_UNSETENV = @GNULIB_UNSETENV@
 GNULIB_USLEEP = @GNULIB_USLEEP@
+GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
+GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
+GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
+GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
 GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
 GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
 GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
 GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
 GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACOSF = @HAVE_ACOSF@
 HAVE_ACOSL = @HAVE_ACOSL@
+HAVE_ASINF = @HAVE_ASINF@
 HAVE_ASINL = @HAVE_ASINL@
+HAVE_ATAN2F = @HAVE_ATAN2F@
+HAVE_ATANF = @HAVE_ATANF@
 HAVE_ATANL = @HAVE_ATANL@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CBRT = @HAVE_CBRT@
+HAVE_CBRTF = @HAVE_CBRTF@
+HAVE_CBRTL = @HAVE_CBRTL@
 HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_COPYSIGN = @HAVE_COPYSIGN@
+HAVE_COPYSIGNL = @HAVE_COPYSIGNL@
+HAVE_COSF = @HAVE_COSF@
+HAVE_COSHF = @HAVE_COSHF@
 HAVE_COSL = @HAVE_COSL@
 HAVE_DECL_ACOSL = @HAVE_DECL_ACOSL@
 HAVE_DECL_ASINL = @HAVE_DECL_ASINL@
 HAVE_DECL_ATANL = @HAVE_DECL_ATANL@
+HAVE_DECL_CBRTF = @HAVE_DECL_CBRTF@
+HAVE_DECL_CBRTL = @HAVE_DECL_CBRTL@
 HAVE_DECL_CEILF = @HAVE_DECL_CEILF@
 HAVE_DECL_CEILL = @HAVE_DECL_CEILL@
+HAVE_DECL_COPYSIGNF = @HAVE_DECL_COPYSIGNF@
 HAVE_DECL_COSL = @HAVE_DECL_COSL@
 HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_EXP2 = @HAVE_DECL_EXP2@
+HAVE_DECL_EXP2F = @HAVE_DECL_EXP2F@
+HAVE_DECL_EXP2L = @HAVE_DECL_EXP2L@
 HAVE_DECL_EXPL = @HAVE_DECL_EXPL@
+HAVE_DECL_EXPM1L = @HAVE_DECL_EXPM1L@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
 HAVE_DECL_FLOORF = @HAVE_DECL_FLOORF@
 HAVE_DECL_FLOORL = @HAVE_DECL_FLOORL@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
 HAVE_DECL_FREXPL = @HAVE_DECL_FREXPL@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
 HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
 HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
 HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
 HAVE_DECL_LDEXPL = @HAVE_DECL_LDEXPL@
+HAVE_DECL_LOG10L = @HAVE_DECL_LOG10L@
+HAVE_DECL_LOG2 = @HAVE_DECL_LOG2@
+HAVE_DECL_LOG2F = @HAVE_DECL_LOG2F@
+HAVE_DECL_LOG2L = @HAVE_DECL_LOG2L@
 HAVE_DECL_LOGB = @HAVE_DECL_LOGB@
 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_REMAINDER = @HAVE_DECL_REMAINDER@
+HAVE_DECL_REMAINDERL = @HAVE_DECL_REMAINDERL@
+HAVE_DECL_RINTF = @HAVE_DECL_RINTF@
 HAVE_DECL_ROUND = @HAVE_DECL_ROUND@
 HAVE_DECL_ROUNDF = @HAVE_DECL_ROUNDF@
 HAVE_DECL_ROUNDL = @HAVE_DECL_ROUNDL@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
 HAVE_DECL_SINL = @HAVE_DECL_SINL@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
 HAVE_DECL_SQRTL = @HAVE_DECL_SQRTL@
 HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
 HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
 HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
 HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
 HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
 HAVE_DECL_TANL = @HAVE_DECL_TANL@
 HAVE_DECL_TRUNC = @HAVE_DECL_TRUNC@
 HAVE_DECL_TRUNCF = @HAVE_DECL_TRUNCF@
 HAVE_DECL_TRUNCL = @HAVE_DECL_TRUNCL@
+HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
 HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
 HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DPRINTF = @HAVE_DPRINTF@
 HAVE_DUP2 = @HAVE_DUP2@
 HAVE_DUP3 = @HAVE_DUP3@
 HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
 HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_EXPF = @HAVE_EXPF@
 HAVE_EXPL = @HAVE_EXPL@
+HAVE_EXPM1 = @HAVE_EXPM1@
+HAVE_EXPM1F = @HAVE_EXPM1F@
+HAVE_FABSF = @HAVE_FABSF@
+HAVE_FABSL = @HAVE_FABSL@
 HAVE_FACCESSAT = @HAVE_FACCESSAT@
 HAVE_FCHDIR = @HAVE_FCHDIR@
 HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FMA = @HAVE_FMA@
+HAVE_FMAF = @HAVE_FMAF@
+HAVE_FMAL = @HAVE_FMAL@
+HAVE_FMODF = @HAVE_FMODF@
+HAVE_FMODL = @HAVE_FMODL@
+HAVE_FREXPF = @HAVE_FREXPF@
+HAVE_FSEEKO = @HAVE_FSEEKO@
 HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
 HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@
 HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
 HAVE_GETGROUPS = @HAVE_GETGROUPS@
 HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
@@ -3572,6 +3920,12 @@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
 HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
 HAVE_GLOBAL_SYMBOL_PIPE = @HAVE_GLOBAL_SYMBOL_PIPE@
 HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_HYPOTF = @HAVE_HYPOTF@
+HAVE_HYPOTL = @HAVE_HYPOTL@
+HAVE_ILOGB = @HAVE_ILOGB@
+HAVE_ILOGBF = @HAVE_ILOGBF@
+HAVE_ILOGBL = @HAVE_ILOGBL@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
 HAVE_ISNAND = @HAVE_ISNAND@
 HAVE_ISNANF = @HAVE_ISNANF@
@@ -3579,11 +3933,19 @@ HAVE_ISNANL = @HAVE_ISNANL@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LCHOWN = @HAVE_LCHOWN@
+HAVE_LDEXPF = @HAVE_LDEXPF@
 HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
+HAVE_LOG10F = @HAVE_LOG10F@
+HAVE_LOG10L = @HAVE_LOG10L@
+HAVE_LOG1P = @HAVE_LOG1P@
+HAVE_LOG1PF = @HAVE_LOG1PF@
+HAVE_LOG1PL = @HAVE_LOG1PL@
+HAVE_LOGBF = @HAVE_LOGBF@
+HAVE_LOGBL = @HAVE_LOGBL@
+HAVE_LOGF = @HAVE_LOGF@
 HAVE_LOGL = @HAVE_LOGL@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
-HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -3597,24 +3959,45 @@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
 HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
 HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MODFF = @HAVE_MODFF@
+HAVE_MODFL = @HAVE_MODFL@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
 HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POWF = @HAVE_POWF@
 HAVE_PREAD = @HAVE_PREAD@
 HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RANDOM = @HAVE_RANDOM@
 HAVE_RANDOM_H = @HAVE_RANDOM_H@
 HAVE_RANDOM_R = @HAVE_RANDOM_R@
 HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
 HAVE_READLINK = @HAVE_READLINK@
 HAVE_READLINKAT = @HAVE_READLINKAT@
-HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
 HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_REMAINDER = @HAVE_REMAINDER@
+HAVE_REMAINDERF = @HAVE_REMAINDERF@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_RINT = @HAVE_RINT@
+HAVE_RINTL = @HAVE_RINTL@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SAME_LONG_DOUBLE_AS_DOUBLE = @HAVE_SAME_LONG_DOUBLE_AS_DOUBLE@
+HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
 HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
 HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
 HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+HAVE_SINF = @HAVE_SINF@
+HAVE_SINHF = @HAVE_SINHF@
 HAVE_SINL = @HAVE_SINL@
 HAVE_SLEEP = @HAVE_SLEEP@
+HAVE_SQRTF = @HAVE_SQRTF@
 HAVE_SQRTL = @HAVE_SQRTL@
 HAVE_STDINT_H = @HAVE_STDINT_H@
 HAVE_STPCPY = @HAVE_STPCPY@
@@ -3635,24 +4018,59 @@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_TANF = @HAVE_TANF@
+HAVE_TANHF = @HAVE_TANHF@
 HAVE_TANL = @HAVE_TANL@
-HAVE_TTYNAME_R = @HAVE_TTYNAME_R@
 HAVE_UNISTD_H = @HAVE_UNISTD_H@
 HAVE_UNLINKAT = @HAVE_UNLINKAT@
 HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
-HAVE_UNSETENV = @HAVE_UNSETENV@
 HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
 HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_VASPRINTF = @HAVE_VASPRINTF@
+HAVE_VDPRINTF = @HAVE_VDPRINTF@
 HAVE_WCHAR_H = @HAVE_WCHAR_H@
 HAVE_WCHAR_T = @HAVE_WCHAR_T@
+HAVE_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
 HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
 HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
 HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
 HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
 HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
 HEXVERSION = @HEXVERSION@
+ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
@@ -3661,6 +4079,8 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 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@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
@@ -3674,9 +4094,22 @@ LIBS = @LIBS@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBTHREAD = @LIBTHREAD@
 LIBTOOL = @LIBTOOL@
+LIBUNISTRING_UNICASE_H = @LIBUNISTRING_UNICASE_H@
+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_UNINAME_H = @LIBUNISTRING_UNINAME_H@
+LIBUNISTRING_UNINORM_H = @LIBUNISTRING_UNINORM_H@
+LIBUNISTRING_UNISTDIO_H = @LIBUNISTRING_UNISTDIO_H@
+LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWBRK_H = @LIBUNISTRING_UNIWBRK_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+LOCALE_AR = @LOCALE_AR@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
 LOCALE_JA = @LOCALE_JA@
@@ -3689,29 +4122,36 @@ LTLIBOBJS = @LTLIBOBJS@
 LTLIBPTH = @LTLIBPTH@
 LTLIBTHREAD = @LTLIBTHREAD@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 NAMESPACING = @NAMESPACING@
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_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@
+NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
 NEXT_AS_FIRST_DIRECTIVE_MATH_H = @NEXT_AS_FIRST_DIRECTIVE_MATH_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
 NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
+NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
 NEXT_ICONV_H = @NEXT_ICONV_H@
+NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
 NEXT_MATH_H = @NEXT_MATH_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
 NEXT_STDINT_H = @NEXT_STDINT_H@
+NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
 NEXT_WCHAR_H = @NEXT_WCHAR_H@
 NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
@@ -3730,86 +4170,192 @@ PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
 PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
 RANLIB = @RANLIB@
 RC = @RC@
 RELOCATABLE = @RELOCATABLE@
 REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
 REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CBRTF = @REPLACE_CBRTF@
+REPLACE_CBRTL = @REPLACE_CBRTL@
+REPLACE_CEIL = @REPLACE_CEIL@
 REPLACE_CEILF = @REPLACE_CEILF@
 REPLACE_CEILL = @REPLACE_CEILL@
 REPLACE_CHOWN = @REPLACE_CHOWN@
 REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
 REPLACE_DUP = @REPLACE_DUP@
 REPLACE_DUP2 = @REPLACE_DUP2@
 REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_EXP2 = @REPLACE_EXP2@
+REPLACE_EXP2L = @REPLACE_EXP2L@
+REPLACE_EXPM1 = @REPLACE_EXPM1@
+REPLACE_EXPM1F = @REPLACE_EXPM1F@
+REPLACE_FABSL = @REPLACE_FABSL@
 REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+REPLACE_FFLUSH = @REPLACE_FFLUSH@
+REPLACE_FLOOR = @REPLACE_FLOOR@
 REPLACE_FLOORF = @REPLACE_FLOORF@
 REPLACE_FLOORL = @REPLACE_FLOORL@
+REPLACE_FMA = @REPLACE_FMA@
+REPLACE_FMAF = @REPLACE_FMAF@
+REPLACE_FMAL = @REPLACE_FMAL@
+REPLACE_FMOD = @REPLACE_FMOD@
+REPLACE_FMODF = @REPLACE_FMODF@
+REPLACE_FMODL = @REPLACE_FMODL@
+REPLACE_FOPEN = @REPLACE_FOPEN@
+REPLACE_FPRINTF = @REPLACE_FPRINTF@
+REPLACE_FPURGE = @REPLACE_FPURGE@
+REPLACE_FREOPEN = @REPLACE_FREOPEN@
 REPLACE_FREXP = @REPLACE_FREXP@
+REPLACE_FREXPF = @REPLACE_FREXPF@
 REPLACE_FREXPL = @REPLACE_FREXPL@
+REPLACE_FSEEK = @REPLACE_FSEEK@
+REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FTELL = @REPLACE_FTELL@
+REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
 REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETDELIM = @REPLACE_GETDELIM@
+REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_HUGE_VAL = @REPLACE_HUGE_VAL@
+REPLACE_HYPOT = @REPLACE_HYPOT@
+REPLACE_HYPOTF = @REPLACE_HYPOTF@
+REPLACE_HYPOTL = @REPLACE_HYPOTL@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_ILOGB = @REPLACE_ILOGB@
+REPLACE_ILOGBF = @REPLACE_ILOGBF@
+REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISFINITE = @REPLACE_ISFINITE@
 REPLACE_ISINF = @REPLACE_ISINF@
 REPLACE_ISNAN = @REPLACE_ISNAN@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LDEXPL = @REPLACE_LDEXPL@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOG = @REPLACE_LOG@
+REPLACE_LOG10 = @REPLACE_LOG10@
+REPLACE_LOG10F = @REPLACE_LOG10F@
+REPLACE_LOG10L = @REPLACE_LOG10L@
+REPLACE_LOG1P = @REPLACE_LOG1P@
+REPLACE_LOG1PF = @REPLACE_LOG1PF@
+REPLACE_LOG1PL = @REPLACE_LOG1PL@
+REPLACE_LOG2 = @REPLACE_LOG2@
+REPLACE_LOG2F = @REPLACE_LOG2F@
+REPLACE_LOG2L = @REPLACE_LOG2L@
+REPLACE_LOGB = @REPLACE_LOGB@
+REPLACE_LOGBF = @REPLACE_LOGBF@
+REPLACE_LOGBL = @REPLACE_LOGBL@
+REPLACE_LOGF = @REPLACE_LOGF@
+REPLACE_LOGL = @REPLACE_LOGL@
 REPLACE_LSEEK = @REPLACE_LSEEK@
+REPLACE_MALLOC = @REPLACE_MALLOC@
 REPLACE_MBRLEN = @REPLACE_MBRLEN@
 REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
 REPLACE_MBSINIT = @REPLACE_MBSINIT@
 REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
 REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
 REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBTOWC = @REPLACE_MBTOWC@
 REPLACE_MEMCHR = @REPLACE_MEMCHR@
 REPLACE_MEMMEM = @REPLACE_MEMMEM@
 REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_MODF = @REPLACE_MODF@
+REPLACE_MODFF = @REPLACE_MODFF@
+REPLACE_MODFL = @REPLACE_MODFL@
 REPLACE_NAN = @REPLACE_NAN@
 REPLACE_NULL = @REPLACE_NULL@
+REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
+REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
+REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
+REPLACE_REMAINDER = @REPLACE_REMAINDER@
+REPLACE_REMAINDERF = @REPLACE_REMAINDERF@
+REPLACE_REMAINDERL = @REPLACE_REMAINDERL@
+REPLACE_REMOVE = @REPLACE_REMOVE@
+REPLACE_RENAME = @REPLACE_RENAME@
+REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
 REPLACE_ROUND = @REPLACE_ROUND@
 REPLACE_ROUNDF = @REPLACE_ROUNDF@
 REPLACE_ROUNDL = @REPLACE_ROUNDL@
 REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SIGNBIT = @REPLACE_SIGNBIT@
 REPLACE_SIGNBIT_USING_GCC = @REPLACE_SIGNBIT_USING_GCC@
 REPLACE_SLEEP = @REPLACE_SLEEP@
+REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
+REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_SQRTL = @REPLACE_SQRTL@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
 REPLACE_STPNCPY = @REPLACE_STPNCPY@
 REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
 REPLACE_STRDUP = @REPLACE_STRDUP@
 REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
 REPLACE_STRNCAT = @REPLACE_STRNCAT@
 REPLACE_STRNDUP = @REPLACE_STRNDUP@
 REPLACE_STRNLEN = @REPLACE_STRNLEN@
 REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
 REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TRUNC = @REPLACE_TRUNC@
+REPLACE_TRUNCF = @REPLACE_TRUNCF@
 REPLACE_TRUNCL = @REPLACE_TRUNCL@
 REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
 REPLACE_UNLINK = @REPLACE_UNLINK@
 REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
 REPLACE_UNSETENV = @REPLACE_UNSETENV@
 REPLACE_USLEEP = @REPLACE_USLEEP@
+REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
+REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
+REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
+REPLACE_VPRINTF = @REPLACE_VPRINTF@
+REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
+REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
 REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
 REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
 REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
 REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
 SED = @SED@
@@ -3822,17 +4368,21 @@ STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
 TEXI2DVI = @TEXI2DVI@
+UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
+UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 VERSION = @VERSION@
 WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
 WINT_T_SUFFIX = @WINT_T_SUFFIX@
 YIELD_LIB = @YIELD_LIB@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -3868,9 +4418,9 @@ infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+lispdir = @lispdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -3878,6 +4428,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -3888,7 +4439,7 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 
 # Rules generated and collected by gnulib-tool.
-AUTOMAKE_OPTIONS = 1.5 foreign subdir-objects 1.11 subdir-objects \
+AUTOMAKE_OPTIONS = 1.9.6 foreign subdir-objects 1.11 subdir-objects \
        color-tests
 SUBDIRS = .
 
@@ -3896,46 +4447,75 @@ SUBDIRS = .
 
 # This must be the last thing that gets added to TESTS_ENVIRONMENT.
 TESTS_ENVIRONMENT = EXEEXT='@EXEEXT@' srcdir='$(srcdir)' \
+       LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
        LOCALE_FR='@LOCALE_FR@' LOCALE_TR_UTF8='@LOCALE_TR_UTF8@' \
        LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
        LOCALE_JA='@LOCALE_JA@' LOCALE_ZH_CN='@LOCALE_ZH_CN@' \
        LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_FR='@LOCALE_FR@' \
        LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_JA='@LOCALE_JA@' \
+       LOCALE_ZH_CN='@LOCALE_ZH_CN@' LOCALE_FR='@LOCALE_FR@' \
+       LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_JA='@LOCALE_JA@' \
        LOCALE_TR_UTF8='@LOCALE_TR_UTF8@' \
        LOCALE_ZH_CN='@LOCALE_ZH_CN@' LOCALE_FR='@LOCALE_FR@' \
        LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_FR='@LOCALE_FR@' \
-       LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_FR='@LOCALE_FR@' \
-       LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_FR='@LOCALE_FR@' \
-       LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_FR='@LOCALE_FR@' \
-       LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_FR='@LOCALE_FR@' \
-       LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_FR='@LOCALE_FR@' \
-       @LOCALCHARSET_TESTS_ENVIRONMENT@ $(SHELL) \
-       $(top_srcdir)/build-aux/run-test '$(CHECKER)'
+       LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_AR='@LOCALE_AR@' \
+       LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+       LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+       LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+       LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
+       LOCALE_FR='@LOCALE_FR@' MAKE='$(MAKE)' LOCALE_FR='@LOCALE_FR@' \
+       LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' LOCALE_JA='@LOCALE_JA@' \
+       LOCALE_ZH_CN='@LOCALE_ZH_CN@' @LOCALCHARSET_TESTS_ENVIRONMENT@ \
+       $(SHELL) $(top_srcdir)/build-aux/run-test '$(CHECKER)'
 noinst_HEADERS = 
 noinst_LIBRARIES = 
 check_LIBRARIES = libtests.a
-EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
-       test-array-mergesort.c macros.h \
-       $(top_srcdir)/build-aux/c++defs.h test-c-ctype.c macros.h \
-       test-c-strcase.sh test-c-strcasecmp.c test-c-strncasecmp.c \
-       macros.h test-environ.c test-errno.c error.c error.h \
-       exitfail.h test-frexpl.c signature.h macros.h test-fseterr.c \
+EXTRA_DIST = test-alloca-opt.c test-array-mergesort.c macros.h btowc.c \
+       test-btowc1.sh test-btowc2.sh test-btowc.c signature.h \
+       macros.h test-c-ctype.c macros.h test-c-strcase.sh \
+       test-c-strcasecmp.c test-c-strncasecmp.c macros.h \
+       test-environ.c test-errno.c error.c error.h exitfail.h \
+       fdopen.c test-fdopen.c signature.h macros.h test-fgetc.c \
+       signature.h macros.h test-float.c macros.h test-fputc.c \
+       signature.h macros.h test-fread.c signature.h macros.h \
+       test-frexp.c test-frexp.h minus-zero.h infinity.h nan.h \
+       signature.h macros.h randomd.c test-frexpl.c test-frexp.h \
+       minus-zero.h infinity.h nan.h signature.h macros.h randoml.c \
+       test-fseterr.c test-fwrite.c signature.h macros.h \
        getpagesize.c test-iconv-h.c test-iconv.c signature.h macros.h \
-       intprops.h test-isnand-nolibm.c test-isnand.h nan.h macros.h \
-       test-isnanf-nolibm.c test-isnanf.h nan.h macros.h \
-       test-isnanl-nolibm.c test-isnanl.h nan.h macros.h locale.in.h \
+       intprops.h test-intprops.c macros.h inttypes.in.h \
+       test-inttypes.c test-isnand-nolibm.c test-isnand.h \
+       minus-zero.h infinity.h nan.h macros.h test-isnanf-nolibm.c \
+       test-isnanf.h minus-zero.h infinity.h nan.h macros.h \
+       test-isnanl-nolibm.c test-isnanl.h minus-zero.h infinity.h \
+       nan.h macros.h test-iswblank.c macros.h locale.in.h \
        test-locale.c test-localename.c macros.h test-lock.c \
-       test-malloca.c test-math.c test-mbrtowc1.sh test-mbrtowc2.sh \
-       test-mbrtowc3.sh test-mbrtowc4.sh test-mbrtowc.c signature.h \
-       macros.h test-mbsinit.sh test-mbsinit.c signature.h macros.h \
-       test-memchr.c zerosize-ptr.h signature.h macros.h \
-       test-printf-frexp.c macros.h test-printf-frexpl.c macros.h \
-       putenv.c setenv.c test-setenv.c signature.h macros.h \
-       test-signbit.c macros.h test-stdbool.c test-stddef.c \
-       test-stdint.c test-stdlib.c strerror.c test-strerror.c \
-       signature.h macros.h test-striconveh.c macros.h \
-       test-striconveha.c macros.h test-string.c test-strncat.c \
-       unistr/test-strncat.h zerosize-ptr.h signature.h macros.h \
+       test-malloca.c test-math.c macros.h test-mbrtowc1.sh \
+       test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh \
+       test-mbrtowc.c test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh \
+       test-mbrtowc-w32-3.sh test-mbrtowc-w32-4.sh \
+       test-mbrtowc-w32-5.sh test-mbrtowc-w32.c signature.h macros.h \
+       test-mbsinit.sh test-mbsinit.c signature.h macros.h \
+       mbtowc-impl.h mbtowc.c test-memchr.c zerosize-ptr.h \
+       signature.h macros.h msvc-inval.c msvc-inval.h msvc-nothrow.c \
+       msvc-nothrow.h test-printf-frexp.c macros.h \
+       test-printf-frexpl.c macros.h putenv.c setenv.c test-setenv.c \
+       signature.h macros.h setlocale.c test-setlocale1.sh \
+       test-setlocale1.c test-setlocale2.sh test-setlocale2.c \
+       signature.h macros.h test-signbit.c minus-zero.h infinity.h \
+       macros.h $(top_srcdir)/build-aux/snippet/_Noreturn.h \
+       $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
+       $(top_srcdir)/build-aux/snippet/c++defs.h \
+       $(top_srcdir)/build-aux/snippet/unused-parameter.h \
+       $(top_srcdir)/build-aux/snippet/warn-on-use.h test-stdbool.c \
+       test-stddef.c test-stdint.c stdio.in.h test-stdio.c \
+       test-stdlib.c test-sys_wait.h strerror.c strerror-override.c \
+       strerror-override.h test-strerror.c signature.h macros.h \
+       test-striconveh.c macros.h test-striconveha.c macros.h \
+       test-string.c test-strncat.c unistr/test-strncat.h \
+       zerosize-ptr.h signature.h macros.h test-strstr.c \
+       zerosize-ptr.h signature.h macros.h test-sys_types.c init.sh \
+       test-init.sh test-thread_self.c test-thread_create.c macros.h \
        unicase/test-cased.c unicase/test-predicate-part1.h \
        unicase/test-predicate-part2.h macros.h \
        unicase/test-ignorable.c unicase/test-predicate-part1.h \
@@ -3999,12 +4579,13 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
        uniconv/test-u8-conv-to-enc.c macros.h \
        uniconv/test-u8-strconv-from-enc.c macros.h \
        uniconv/test-u8-strconv-to-enc.c macros.h \
-       unictype/test-bidi_byname.c macros.h unictype/test-bidi_name.c \
-       macros.h unictype/test-bidi_of.c macros.h \
-       unictype/test-bidi_test.c macros.h unictype/test-block_list.c \
-       macros.h unictype/test-block_of.c macros.h \
-       unictype/test-block_test.c macros.h unictype/test-categ_C.c \
-       unictype/test-predicate-part1.h \
+       unictype/test-bidi_byname.c macros.h \
+       unictype/test-bidi_longname.c macros.h \
+       unictype/test-bidi_name.c macros.h unictype/test-bidi_of.c \
+       macros.h unictype/test-bidi_test.c macros.h \
+       unictype/test-block_list.c macros.h unictype/test-block_of.c \
+       macros.h unictype/test-block_test.c macros.h \
+       unictype/test-categ_C.c unictype/test-predicate-part1.h \
        unictype/test-predicate-part2.h macros.h \
        unictype/test-categ_Cc.c unictype/test-predicate-part1.h \
        unictype/test-predicate-part2.h macros.h \
@@ -4018,6 +4599,8 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
        unictype/test-predicate-part2.h macros.h \
        unictype/test-categ_L.c unictype/test-predicate-part1.h \
        unictype/test-predicate-part2.h macros.h \
+       unictype/test-categ_LC.c unictype/test-predicate-part1.h \
+       unictype/test-predicate-part2.h macros.h \
        unictype/test-categ_Ll.c unictype/test-predicate-part1.h \
        unictype/test-predicate-part2.h macros.h \
        unictype/test-categ_Lm.c unictype/test-predicate-part1.h \
@@ -4081,12 +4664,16 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
        unictype/test-categ_and_not.c macros.h \
        unictype/test-categ_and.c macros.h \
        unictype/test-categ_byname.c macros.h \
+       unictype/test-categ_longname.c macros.h \
        unictype/test-categ_name.c macros.h unictype/test-categ_none.c \
        macros.h unictype/test-categ_of.c macros.h \
        unictype/test-categ_or.c macros.h \
        unictype/test-categ_test_withtable.c macros.h \
-       unictype/test-combining.c macros.h unictype/test-ctype_alnum.c \
-       unictype/test-predicate-part1.h \
+       unictype/test-combiningclass_byname.c macros.h \
+       unictype/test-combiningclass_longname.c macros.h \
+       unictype/test-combiningclass_name.c macros.h \
+       unictype/test-combiningclass.c macros.h \
+       unictype/test-ctype_alnum.c unictype/test-predicate-part1.h \
        unictype/test-predicate-part2.h macros.h \
        unictype/test-ctype_alpha.c unictype/test-predicate-part1.h \
        unictype/test-predicate-part2.h macros.h \
@@ -4112,9 +4699,17 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
        unictype/test-predicate-part2.h macros.h \
        unictype/test-decdigit.c unictype/test-decdigit.h macros.h \
        unictype/test-digit.c unictype/test-digit.h macros.h \
-       unictype/test-mirror.c macros.h unictype/test-numeric.c \
-       unictype/test-numeric.h macros.h unictype/test-pr_alphabetic.c \
-       unictype/test-predicate-part1.h \
+       unictype/test-joininggroup_byname.c macros.h \
+       unictype/test-joininggroup_name.c macros.h \
+       unictype/test-joininggroup_of.c \
+       unictype/test-joininggroup_of.h macros.h \
+       unictype/test-joiningtype_byname.c macros.h \
+       unictype/test-joiningtype_longname.c macros.h \
+       unictype/test-joiningtype_name.c macros.h \
+       unictype/test-joiningtype_of.c unictype/test-joiningtype_of.h \
+       macros.h unictype/test-mirror.c macros.h \
+       unictype/test-numeric.c unictype/test-numeric.h macros.h \
+       unictype/test-pr_alphabetic.c unictype/test-predicate-part1.h \
        unictype/test-predicate-part2.h macros.h \
        unictype/test-pr_ascii_hex_digit.c \
        unictype/test-predicate-part1.h \
@@ -4170,6 +4765,26 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
        unictype/test-predicate-part1.h \
        unictype/test-predicate-part2.h macros.h \
        unictype/test-pr_byname.c macros.h \
+       unictype/test-pr_case_ignorable.c \
+       unictype/test-predicate-part1.h \
+       unictype/test-predicate-part2.h macros.h \
+       unictype/test-pr_cased.c unictype/test-predicate-part1.h \
+       unictype/test-predicate-part2.h macros.h \
+       unictype/test-pr_changes_when_casefolded.c \
+       unictype/test-predicate-part1.h \
+       unictype/test-predicate-part2.h macros.h \
+       unictype/test-pr_changes_when_casemapped.c \
+       unictype/test-predicate-part1.h \
+       unictype/test-predicate-part2.h macros.h \
+       unictype/test-pr_changes_when_lowercased.c \
+       unictype/test-predicate-part1.h \
+       unictype/test-predicate-part2.h macros.h \
+       unictype/test-pr_changes_when_titlecased.c \
+       unictype/test-predicate-part1.h \
+       unictype/test-predicate-part2.h macros.h \
+       unictype/test-pr_changes_when_uppercased.c \
+       unictype/test-predicate-part1.h \
+       unictype/test-predicate-part2.h macros.h \
        unictype/test-pr_combining.c unictype/test-predicate-part1.h \
        unictype/test-predicate-part2.h macros.h \
        unictype/test-pr_composite.c unictype/test-predicate-part1.h \
@@ -4332,6 +4947,21 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
        unictype/test-sy_java_whitespace.c \
        unictype/test-predicate-part1.h \
        unictype/test-predicate-part2.h macros.h \
+       unigbrk/test-u16-grapheme-breaks.c \
+       unigbrk/test-u16-grapheme-next.c \
+       unigbrk/test-u16-grapheme-prev.c \
+       unigbrk/test-u32-grapheme-breaks.c \
+       unigbrk/test-u32-grapheme-next.c \
+       unigbrk/test-u32-grapheme-prev.c \
+       unigbrk/test-u8-grapheme-breaks.c \
+       unigbrk/test-u8-grapheme-next.c \
+       unigbrk/test-u8-grapheme-prev.c unigbrk/test-uc-gbrk-prop.c \
+       unigbrk/test-uc-gbrk-prop.h macros.h \
+       unigbrk/test-uc-is-grapheme-break.c \
+       unigbrk/test-uc-is-grapheme-break.sh \
+       unigbrk/GraphemeBreakTest.txt \
+       unigbrk/test-ulc-grapheme-breaks.sh \
+       unigbrk/test-ulc-grapheme-breaks.c macros.h \
        unilbrk/test-u16-possible-linebreaks.c macros.h \
        unilbrk/test-u16-width-linebreaks.c macros.h \
        unilbrk/test-u32-possible-linebreaks.c macros.h \
@@ -4437,24 +5067,27 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
        unistr/test-u16-stpcpy.c unistr/test-stpcpy.h macros.h \
        unistr/test-u16-stpncpy.c unistr/test-stpncpy.h zerosize-ptr.h \
        macros.h unistr/test-u16-strcat.c unistr/test-strcat.h \
-       macros.h unistr/test-u16-strcmp.c unistr/test-u16-strcmp.h \
-       unistr/test-strcmp.h macros.h unistr/test-u16-strcoll.c \
+       macros.h unistr/test-u16-strchr.c unistr/test-strchr.h \
+       zerosize-ptr.h macros.h unistr/test-u16-strcmp.c \
        unistr/test-u16-strcmp.h unistr/test-strcmp.h macros.h \
-       unistr/test-u16-strcpy.c unistr/test-strcpy.h macros.h \
-       unistr/test-u16-strdup.c unistr/test-strdup.h macros.h \
-       unistr/test-u16-strlen.c macros.h unistr/test-u16-strmblen.c \
-       macros.h unistr/test-u16-strmbtouc.c macros.h \
-       unistr/test-u16-strncat.c unistr/test-strncat.h zerosize-ptr.h \
-       macros.h unistr/test-u16-strncmp.c unistr/test-strncmp.h \
-       macros.h unistr/test-u16-strncpy.c unistr/test-strncpy.h \
-       zerosize-ptr.h macros.h unistr/test-u16-strnlen.c \
-       unistr/test-strnlen.h zerosize-ptr.h macros.h \
-       unistr/test-u16-to-u32.c macros.h unistr/test-u16-to-u8.c \
-       macros.h unistr/test-u16-uctomb.c macros.h \
-       unistr/test-u32-check.c macros.h unistr/test-u32-chr.c \
-       unistr/test-chr.h zerosize-ptr.h macros.h \
-       unistr/test-u32-cmp.c unistr/test-cmp.h zerosize-ptr.h \
-       macros.h unistr/test-u32-cmp2.c unistr/test-cmp2.h macros.h \
+       unistr/test-u16-strcoll.c unistr/test-u16-strcmp.h \
+       unistr/test-strcmp.h macros.h unistr/test-u16-strcpy.c \
+       unistr/test-strcpy.h macros.h unistr/test-u16-strdup.c \
+       unistr/test-strdup.h macros.h unistr/test-u16-strlen.c \
+       macros.h unistr/test-u16-strmblen.c macros.h \
+       unistr/test-u16-strmbtouc.c macros.h unistr/test-u16-strncat.c \
+       unistr/test-strncat.h zerosize-ptr.h macros.h \
+       unistr/test-u16-strncmp.c unistr/test-strncmp.h macros.h \
+       unistr/test-u16-strncpy.c unistr/test-strncpy.h zerosize-ptr.h \
+       macros.h unistr/test-u16-strnlen.c unistr/test-strnlen.h \
+       zerosize-ptr.h macros.h unistr/test-u16-strstr.c \
+       unistr/test-u-strstr.h macros.h unistr/test-u16-to-u32.c \
+       macros.h unistr/test-u16-to-u8.c macros.h \
+       unistr/test-u16-uctomb.c macros.h unistr/test-u32-check.c \
+       macros.h unistr/test-u32-chr.c unistr/test-chr.h \
+       zerosize-ptr.h macros.h unistr/test-u32-cmp.c \
+       unistr/test-cmp.h zerosize-ptr.h macros.h \
+       unistr/test-u32-cmp2.c unistr/test-cmp2.h macros.h \
        unistr/test-u32-cpy-alloc.c unistr/test-cpy-alloc.h macros.h \
        unistr/test-u32-cpy.c unistr/test-cpy.h macros.h \
        unistr/test-u32-mblen.c macros.h unistr/test-u32-mbsnlen.c \
@@ -4467,24 +5100,26 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
        unistr/test-u32-stpcpy.c unistr/test-stpcpy.h macros.h \
        unistr/test-u32-stpncpy.c unistr/test-stpncpy.h zerosize-ptr.h \
        macros.h unistr/test-u32-strcat.c unistr/test-strcat.h \
-       macros.h unistr/test-u32-strcmp.c unistr/test-u32-strcmp.h \
-       unistr/test-strcmp.h macros.h unistr/test-u32-strcoll.c \
+       macros.h unistr/test-u32-strchr.c unistr/test-strchr.h \
+       zerosize-ptr.h macros.h unistr/test-u32-strcmp.c \
        unistr/test-u32-strcmp.h unistr/test-strcmp.h macros.h \
-       unistr/test-u32-strcpy.c unistr/test-strcpy.h macros.h \
-       unistr/test-u32-strdup.c unistr/test-strdup.h macros.h \
-       unistr/test-u32-strlen.c macros.h unistr/test-u32-strmblen.c \
-       macros.h unistr/test-u32-strmbtouc.c macros.h \
-       unistr/test-u32-strncat.c unistr/test-strncat.h zerosize-ptr.h \
-       macros.h unistr/test-u32-strncmp.c unistr/test-strncmp.h \
-       macros.h unistr/test-u32-strncpy.c unistr/test-strncpy.h \
-       zerosize-ptr.h macros.h unistr/test-u32-strnlen.c \
-       unistr/test-strnlen.h zerosize-ptr.h macros.h \
-       unistr/test-u32-to-u16.c macros.h unistr/test-u32-to-u8.c \
-       macros.h unistr/test-u32-uctomb.c macros.h \
-       unistr/test-u8-check.c macros.h unistr/test-u8-chr.c \
-       unistr/test-chr.h zerosize-ptr.h macros.h unistr/test-u8-cmp.c \
-       unistr/test-cmp.h zerosize-ptr.h macros.h \
-       unistr/test-u8-cmp2.c unistr/test-cmp2.h macros.h \
+       unistr/test-u32-strcoll.c unistr/test-u32-strcmp.h \
+       unistr/test-strcmp.h macros.h unistr/test-u32-strcpy.c \
+       unistr/test-strcpy.h macros.h unistr/test-u32-strdup.c \
+       unistr/test-strdup.h macros.h unistr/test-u32-strlen.c \
+       macros.h unistr/test-u32-strmblen.c macros.h \
+       unistr/test-u32-strmbtouc.c macros.h unistr/test-u32-strncat.c \
+       unistr/test-strncat.h zerosize-ptr.h macros.h \
+       unistr/test-u32-strncmp.c unistr/test-strncmp.h macros.h \
+       unistr/test-u32-strncpy.c unistr/test-strncpy.h zerosize-ptr.h \
+       macros.h unistr/test-u32-strnlen.c unistr/test-strnlen.h \
+       zerosize-ptr.h macros.h unistr/test-u32-strstr.c \
+       unistr/test-u-strstr.h macros.h unistr/test-u32-to-u16.c \
+       macros.h unistr/test-u32-to-u8.c macros.h \
+       unistr/test-u32-uctomb.c macros.h unistr/test-u8-check.c \
+       macros.h unistr/test-u8-chr.c unistr/test-chr.h zerosize-ptr.h \
+       macros.h unistr/test-u8-cmp.c unistr/test-cmp.h zerosize-ptr.h \
+       macros.h unistr/test-u8-cmp2.c unistr/test-cmp2.h macros.h \
        unistr/test-u8-cpy-alloc.c unistr/test-cpy-alloc.h macros.h \
        unistr/test-u8-cpy.c unistr/test-cpy.h macros.h \
        unistr/test-u8-mblen.c macros.h unistr/test-u8-mbsnlen.c \
@@ -4497,7 +5132,8 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
        unistr/test-u8-stpcpy.c unistr/test-stpcpy.h macros.h \
        unistr/test-u8-stpncpy.c unistr/test-stpncpy.h zerosize-ptr.h \
        macros.h unistr/test-u8-strcat.c unistr/test-strcat.h macros.h \
-       unistr/test-u8-strcmp.c unistr/test-u8-strcmp.h \
+       unistr/test-u8-strchr.c unistr/test-strchr.h zerosize-ptr.h \
+       macros.h unistr/test-u8-strcmp.c unistr/test-u8-strcmp.h \
        unistr/test-strcmp.h macros.h unistr/test-u8-strcoll.c \
        unistr/test-u8-strcmp.h unistr/test-strcmp.h macros.h \
        unistr/test-u8-strcpy.c unistr/test-strcpy.h macros.h \
@@ -4509,6 +5145,7 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
        macros.h unistr/test-u8-strncpy.c unistr/test-strncpy.h \
        zerosize-ptr.h macros.h unistr/test-u8-strnlen.c \
        unistr/test-strnlen.h zerosize-ptr.h macros.h \
+       unistr/test-u8-strstr.c unistr/test-u-strstr.h macros.h \
        unistr/test-u8-to-u16.c macros.h unistr/test-u8-to-u32.c \
        macros.h unistr/test-u8-uctomb.c macros.h \
        uniwbrk/test-u16-wordbreaks.c macros.h \
@@ -4522,12 +5159,14 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
        macros.h uniwidth/test-u8-width.c macros.h \
        uniwidth/test-uc_width.c uniwidth/test-uc_width2.c \
        uniwidth/test-uc_width2.sh macros.h unsetenv.c test-unsetenv.c \
-       signature.h macros.h \
-       $(top_srcdir)/build-aux/unused-parameter.h \
-       $(top_srcdir)/build-aux/warn-on-use.h test-wchar.c wctob.c \
-       test-wctype.c macros.h test-wcwidth.c signature.h macros.h \
-       xalloc.h xmalloc.c test-xalloc-die.c test-xalloc-die.sh \
-       init.sh
+       signature.h macros.h test-verify.c test-verify.sh test-wchar.c \
+       wcrtomb.c test-wcrtomb.sh test-wcrtomb.c test-wcrtomb-w32-1.sh \
+       test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh \
+       test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh test-wcrtomb-w32.c \
+       signature.h macros.h wctob.c wctomb-impl.h wctomb.c \
+       test-wctype-h.c macros.h test-wcwidth.c signature.h macros.h \
+       xalloc.h test-xalloc-die.c test-xalloc-die.sh \
+       xalloc-oversized.h
 
 # The BUILT_SOURCES created by this Makefile snippet are not used via #include
 # statements but through direct file reference. Therefore this snippet must be
@@ -4543,12 +5182,13 @@ EXTRA_DIST = test-alloca-opt.c $(top_srcdir)/build-aux/arg-nonnull.h \
 # statements but through direct file reference. Therefore this snippet must be
 # present in all Makefile.am that need it. This is ensured by the applicability
 # 'all' defined above.
-BUILT_SOURCES = arg-nonnull.h c++defs.h locale.h unused-parameter.h \
-       warn-on-use.h
+BUILT_SOURCES = inttypes.h locale.h arg-nonnull.h c++defs.h \
+       unused-parameter.h warn-on-use.h stdio.h
 SUFFIXES = 
-MOSTLYCLEANFILES = core *.stackdump arg-nonnull.h arg-nonnull.h-t \
-       c++defs.h c++defs.h-t locale.h locale.h-t unused-parameter.h \
-       unused-parameter.h-t warn-on-use.h warn-on-use.h-t
+MOSTLYCLEANFILES = core *.stackdump inttypes.h inttypes.h-t locale.h \
+       locale.h-t arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \
+       unused-parameter.h unused-parameter.h-t warn-on-use.h \
+       warn-on-use.h-t stdio.h stdio.h-t
 MOSTLYCLEANDIRS = 
 CLEANFILES = 
 DISTCLEANFILES = 
@@ -4561,488 +5201,887 @@ AM_CPPFLAGS = \
 
 LDADD = libtests.a ../lib/libunistring.la libtests.a $(LIBTESTS_LIBDEPS)
 libtests_a_SOURCES = exitfail.c gettext.h progname.h progname.c \
-       glthread/thread.h glthread/thread.c xalloc-die.c \
+       glthread/thread.h glthread/thread.c xmalloc.c xalloc-die.c \
        glthread/yield.h
 libtests_a_LIBADD = $(gltests_LIBOBJS)
 libtests_a_DEPENDENCIES = $(gltests_LIBOBJS)
-EXTRA_libtests_a_SOURCES = error.c getpagesize.c putenv.c setenv.c \
-       strerror.c unsetenv.c wctob.c xmalloc.c
+EXTRA_libtests_a_SOURCES = btowc.c error.c fdopen.c getpagesize.c \
+       mbtowc.c msvc-inval.c msvc-nothrow.c putenv.c setenv.c \
+       setlocale.c strerror.c strerror-override.c unsetenv.c \
+       wcrtomb.c wctob.c wctomb.c
 AM_LIBTOOLFLAGS = --preserve-dup-deps
-ARG_NONNULL_H = arg-nonnull.h
-CXXDEFS_H = c++defs.h
-test_frexpl_nolibm_SOURCES = test-frexpl.c
+test_frexp_nolibm_SOURCES = test-frexp.c randomd.c
+test_frexpl_nolibm_SOURCES = test-frexpl.c randoml.c
 test_iconv_LDADD = $(LDADD) @LIBICONV@
-test_localename_LDADD = $(LDADD) @INTL_MACOSX_LIBS@
+test_localename_LDADD = $(LDADD) @INTL_MACOSX_LIBS@ $(LIBTHREAD)
 test_lock_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@
-test_striconveh_LDADD = $(LDADD) @LIBICONV@
-test_striconveha_LDADD = $(LDADD) @LIBICONV@
+
+# Because this Makefile snippet defines a variable used by other
+# gnulib Makefile snippets, it must be present in all Makefile.am that
+# need it. This is ensured by the applicability 'all' defined above.
+_NORETURN_H = $(top_srcdir)/build-aux/snippet/_Noreturn.h
+ARG_NONNULL_H = arg-nonnull.h
+CXXDEFS_H = c++defs.h
+UNUSED_PARAMETER_H = unused-parameter.h
+WARN_ON_USE_H = warn-on-use.h
+test_striconveh_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
+test_striconveha_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
+test_thread_self_LDADD = $(LDADD) @LIBTHREAD@
+test_thread_create_LDADD = $(LDADD) @LIBMULTITHREAD@
 test_cased_SOURCES = unicase/test-cased.c
+test_cased_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ignorable_SOURCES = unicase/test-ignorable.c
+test_ignorable_LDADD = $(LDADD) $(LIBUNISTRING)
 test_locale_language_SOURCES = unicase/test-locale-language.c
-test_locale_language_LDADD = $(LDADD) @INTL_MACOSX_LIBS@
+test_locale_language_LDADD = $(LDADD) $(LIBUNISTRING) @INTL_MACOSX_LIBS@
 test_uc_tolower_SOURCES = unicase/test-uc_tolower.c
+test_uc_tolower_LDADD = $(LDADD) $(LIBUNISTRING)
 test_uc_totitle_SOURCES = unicase/test-uc_totitle.c
+test_uc_totitle_LDADD = $(LDADD) $(LIBUNISTRING)
 test_uc_toupper_SOURCES = unicase/test-uc_toupper.c
+test_uc_toupper_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_casecmp_SOURCES = unicase/test-u16-casecmp.c
+test_u16_casecmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_casecoll_SOURCES = unicase/test-u16-casecoll.c
-test_u16_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_u16_casecoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_casefold_SOURCES = unicase/test-u16-casefold.c
+test_u16_casefold_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_is_cased_SOURCES = unicase/test-u16-is-cased.c
+test_u16_is_cased_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_is_casefolded_SOURCES = unicase/test-u16-is-casefolded.c
+test_u16_is_casefolded_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_is_lowercase_SOURCES = unicase/test-u16-is-lowercase.c
+test_u16_is_lowercase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_is_titlecase_SOURCES = unicase/test-u16-is-titlecase.c
+test_u16_is_titlecase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_is_uppercase_SOURCES = unicase/test-u16-is-uppercase.c
+test_u16_is_uppercase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_tolower_SOURCES = unicase/test-u16-tolower.c
+test_u16_tolower_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_totitle_SOURCES = unicase/test-u16-totitle.c
+test_u16_totitle_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_toupper_SOURCES = unicase/test-u16-toupper.c
+test_u16_toupper_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_casecmp_SOURCES = unicase/test-u32-casecmp.c
+test_u32_casecmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_casecoll_SOURCES = unicase/test-u32-casecoll.c
-test_u32_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_u32_casecoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_casefold_SOURCES = unicase/test-u32-casefold.c
+test_u32_casefold_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_is_cased_SOURCES = unicase/test-u32-is-cased.c
+test_u32_is_cased_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_is_casefolded_SOURCES = unicase/test-u32-is-casefolded.c
+test_u32_is_casefolded_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_is_lowercase_SOURCES = unicase/test-u32-is-lowercase.c
+test_u32_is_lowercase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_is_titlecase_SOURCES = unicase/test-u32-is-titlecase.c
+test_u32_is_titlecase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_is_uppercase_SOURCES = unicase/test-u32-is-uppercase.c
+test_u32_is_uppercase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_tolower_SOURCES = unicase/test-u32-tolower.c
+test_u32_tolower_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_totitle_SOURCES = unicase/test-u32-totitle.c
+test_u32_totitle_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_toupper_SOURCES = unicase/test-u32-toupper.c
+test_u32_toupper_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_casecmp_SOURCES = unicase/test-u8-casecmp.c
+test_u8_casecmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_casecoll_SOURCES = unicase/test-u8-casecoll.c
-test_u8_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_u8_casecoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_casefold_SOURCES = unicase/test-u8-casefold.c
+test_u8_casefold_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_is_cased_SOURCES = unicase/test-u8-is-cased.c
+test_u8_is_cased_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_is_casefolded_SOURCES = unicase/test-u8-is-casefolded.c
+test_u8_is_casefolded_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_is_lowercase_SOURCES = unicase/test-u8-is-lowercase.c
+test_u8_is_lowercase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_is_titlecase_SOURCES = unicase/test-u8-is-titlecase.c
+test_u8_is_titlecase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_is_uppercase_SOURCES = unicase/test-u8-is-uppercase.c
+test_u8_is_uppercase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_tolower_SOURCES = unicase/test-u8-tolower.c
+test_u8_tolower_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_totitle_SOURCES = unicase/test-u8-totitle.c
+test_u8_totitle_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_toupper_SOURCES = unicase/test-u8-toupper.c
+test_u8_toupper_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ulc_casecmp_SOURCES = unicase/test-ulc-casecmp.c
-test_ulc_casecmp_LDADD = $(LDADD) @LIBICONV@
+test_ulc_casecmp_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_ulc_casecoll_SOURCES = unicase/test-ulc-casecoll.c
-test_ulc_casecoll_LDADD = $(LDADD) @LIBICONV@
+test_ulc_casecoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_conv_from_enc_SOURCES = uniconv/test-u16-conv-from-enc.c
-test_u16_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u16_conv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_conv_to_enc_SOURCES = uniconv/test-u16-conv-to-enc.c
-test_u16_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u16_conv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_strconv_from_enc_SOURCES = uniconv/test-u16-strconv-from-enc.c
-test_u16_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u16_strconv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_strconv_to_enc_SOURCES = uniconv/test-u16-strconv-to-enc.c
-test_u16_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u16_strconv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_conv_from_enc_SOURCES = uniconv/test-u32-conv-from-enc.c
-test_u32_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_conv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_conv_to_enc_SOURCES = uniconv/test-u32-conv-to-enc.c
-test_u32_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_conv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_strconv_from_enc_SOURCES = uniconv/test-u32-strconv-from-enc.c
-test_u32_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_strconv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_strconv_to_enc_SOURCES = uniconv/test-u32-strconv-to-enc.c
-test_u32_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u32_strconv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_conv_from_enc_SOURCES = uniconv/test-u8-conv-from-enc.c
-test_u8_conv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_conv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_conv_to_enc_SOURCES = uniconv/test-u8-conv-to-enc.c
-test_u8_conv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_conv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_strconv_from_enc_SOURCES = uniconv/test-u8-strconv-from-enc.c
-test_u8_strconv_from_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_strconv_from_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_strconv_to_enc_SOURCES = uniconv/test-u8-strconv-to-enc.c
-test_u8_strconv_to_enc_LDADD = $(LDADD) @LIBICONV@
+test_u8_strconv_to_enc_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_bidi_byname_SOURCES = unictype/test-bidi_byname.c
+test_bidi_byname_LDADD = $(LDADD) $(LIBUNISTRING)
+test_bidi_longname_SOURCES = unictype/test-bidi_longname.c
+test_bidi_longname_LDADD = $(LDADD) $(LIBUNISTRING)
 test_bidi_name_SOURCES = unictype/test-bidi_name.c
+test_bidi_name_LDADD = $(LDADD) $(LIBUNISTRING)
 test_bidi_of_SOURCES = unictype/test-bidi_of.c
+test_bidi_of_LDADD = $(LDADD) $(LIBUNISTRING)
 test_bidi_test_SOURCES = unictype/test-bidi_test.c
+test_bidi_test_LDADD = $(LDADD) $(LIBUNISTRING)
 test_block_list_SOURCES = unictype/test-block_list.c
+test_block_list_LDADD = $(LDADD) $(LIBUNISTRING)
 test_block_of_SOURCES = unictype/test-block_of.c
+test_block_of_LDADD = $(LDADD) $(LIBUNISTRING)
 test_block_test_SOURCES = unictype/test-block_test.c
+test_block_test_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_C_SOURCES = unictype/test-categ_C.c
+test_categ_C_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Cc_SOURCES = unictype/test-categ_Cc.c
+test_categ_Cc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Cf_SOURCES = unictype/test-categ_Cf.c
+test_categ_Cf_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Cn_SOURCES = unictype/test-categ_Cn.c
+test_categ_Cn_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Co_SOURCES = unictype/test-categ_Co.c
+test_categ_Co_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Cs_SOURCES = unictype/test-categ_Cs.c
+test_categ_Cs_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_L_SOURCES = unictype/test-categ_L.c
+test_categ_L_LDADD = $(LDADD) $(LIBUNISTRING)
+test_categ_LC_SOURCES = unictype/test-categ_LC.c
+test_categ_LC_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Ll_SOURCES = unictype/test-categ_Ll.c
+test_categ_Ll_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Lm_SOURCES = unictype/test-categ_Lm.c
+test_categ_Lm_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Lo_SOURCES = unictype/test-categ_Lo.c
+test_categ_Lo_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Lt_SOURCES = unictype/test-categ_Lt.c
+test_categ_Lt_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Lu_SOURCES = unictype/test-categ_Lu.c
+test_categ_Lu_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_M_SOURCES = unictype/test-categ_M.c
+test_categ_M_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Mc_SOURCES = unictype/test-categ_Mc.c
+test_categ_Mc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Me_SOURCES = unictype/test-categ_Me.c
+test_categ_Me_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Mn_SOURCES = unictype/test-categ_Mn.c
+test_categ_Mn_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_N_SOURCES = unictype/test-categ_N.c
+test_categ_N_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Nd_SOURCES = unictype/test-categ_Nd.c
+test_categ_Nd_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Nl_SOURCES = unictype/test-categ_Nl.c
+test_categ_Nl_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_No_SOURCES = unictype/test-categ_No.c
+test_categ_No_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_P_SOURCES = unictype/test-categ_P.c
+test_categ_P_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Pc_SOURCES = unictype/test-categ_Pc.c
+test_categ_Pc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Pd_SOURCES = unictype/test-categ_Pd.c
+test_categ_Pd_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Pe_SOURCES = unictype/test-categ_Pe.c
+test_categ_Pe_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Pf_SOURCES = unictype/test-categ_Pf.c
+test_categ_Pf_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Pi_SOURCES = unictype/test-categ_Pi.c
+test_categ_Pi_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Po_SOURCES = unictype/test-categ_Po.c
+test_categ_Po_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Ps_SOURCES = unictype/test-categ_Ps.c
+test_categ_Ps_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_S_SOURCES = unictype/test-categ_S.c
+test_categ_S_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Sc_SOURCES = unictype/test-categ_Sc.c
+test_categ_Sc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Sk_SOURCES = unictype/test-categ_Sk.c
+test_categ_Sk_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Sm_SOURCES = unictype/test-categ_Sm.c
+test_categ_Sm_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_So_SOURCES = unictype/test-categ_So.c
+test_categ_So_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Z_SOURCES = unictype/test-categ_Z.c
+test_categ_Z_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Zl_SOURCES = unictype/test-categ_Zl.c
+test_categ_Zl_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Zp_SOURCES = unictype/test-categ_Zp.c
+test_categ_Zp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_Zs_SOURCES = unictype/test-categ_Zs.c
+test_categ_Zs_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_and_not_SOURCES = unictype/test-categ_and_not.c
+test_categ_and_not_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_and_SOURCES = unictype/test-categ_and.c
+test_categ_and_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_byname_SOURCES = unictype/test-categ_byname.c
+test_categ_byname_LDADD = $(LDADD) $(LIBUNISTRING)
+test_categ_longname_SOURCES = unictype/test-categ_longname.c
+test_categ_longname_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_name_SOURCES = unictype/test-categ_name.c
+test_categ_name_LDADD = $(LDADD) $(LIBUNISTRING)
 @WOE32DLL_FALSE@test_categ_none_SOURCES = unictype/test-categ_none.c
+@WOE32DLL_FALSE@test_categ_none_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_of_SOURCES = unictype/test-categ_of.c
+test_categ_of_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_or_SOURCES = unictype/test-categ_or.c
+test_categ_or_LDADD = $(LDADD) $(LIBUNISTRING)
 test_categ_test_withtable_SOURCES = unictype/test-categ_test_withtable.c
-test_combining_SOURCES = unictype/test-combining.c
+test_categ_test_withtable_LDADD = $(LDADD) $(LIBUNISTRING)
+test_combiningclass_byname_SOURCES = unictype/test-combiningclass_byname.c
+test_combiningclass_byname_LDADD = $(LDADD) $(LIBUNISTRING)
+test_combiningclass_longname_SOURCES = unictype/test-combiningclass_longname.c
+test_combiningclass_longname_LDADD = $(LDADD) $(LIBUNISTRING)
+test_combiningclass_name_SOURCES = unictype/test-combiningclass_name.c
+test_combiningclass_name_LDADD = $(LDADD) $(LIBUNISTRING)
+test_combiningclass_SOURCES = unictype/test-combiningclass.c
+test_combiningclass_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_alnum_SOURCES = unictype/test-ctype_alnum.c
+test_ctype_alnum_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_alpha_SOURCES = unictype/test-ctype_alpha.c
+test_ctype_alpha_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_blank_SOURCES = unictype/test-ctype_blank.c
+test_ctype_blank_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_cntrl_SOURCES = unictype/test-ctype_cntrl.c
+test_ctype_cntrl_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_digit_SOURCES = unictype/test-ctype_digit.c
+test_ctype_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_graph_SOURCES = unictype/test-ctype_graph.c
+test_ctype_graph_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_lower_SOURCES = unictype/test-ctype_lower.c
+test_ctype_lower_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_print_SOURCES = unictype/test-ctype_print.c
+test_ctype_print_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_punct_SOURCES = unictype/test-ctype_punct.c
+test_ctype_punct_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_space_SOURCES = unictype/test-ctype_space.c
+test_ctype_space_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_upper_SOURCES = unictype/test-ctype_upper.c
+test_ctype_upper_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ctype_xdigit_SOURCES = unictype/test-ctype_xdigit.c
+test_ctype_xdigit_LDADD = $(LDADD) $(LIBUNISTRING)
 test_decdigit_SOURCES = unictype/test-decdigit.c
+test_decdigit_LDADD = $(LDADD) $(LIBUNISTRING)
 test_digit_SOURCES = unictype/test-digit.c
+test_digit_LDADD = $(LDADD) $(LIBUNISTRING)
+test_joininggroup_byname_SOURCES = unictype/test-joininggroup_byname.c
+test_joininggroup_byname_LDADD = $(LDADD) $(LIBUNISTRING)
+test_joininggroup_name_SOURCES = unictype/test-joininggroup_name.c
+test_joininggroup_name_LDADD = $(LDADD) $(LIBUNISTRING)
+test_joininggroup_of_SOURCES = unictype/test-joininggroup_of.c
+test_joininggroup_of_LDADD = $(LDADD) $(LIBUNISTRING)
+test_joiningtype_byname_SOURCES = unictype/test-joiningtype_byname.c
+test_joiningtype_byname_LDADD = $(LDADD) $(LIBUNISTRING)
+test_joiningtype_longname_SOURCES = unictype/test-joiningtype_longname.c
+test_joiningtype_longname_LDADD = $(LDADD) $(LIBUNISTRING)
+test_joiningtype_name_SOURCES = unictype/test-joiningtype_name.c
+test_joiningtype_name_LDADD = $(LDADD) $(LIBUNISTRING)
+test_joiningtype_of_SOURCES = unictype/test-joiningtype_of.c
+test_joiningtype_of_LDADD = $(LDADD) $(LIBUNISTRING)
 test_mirror_SOURCES = unictype/test-mirror.c
+test_mirror_LDADD = $(LDADD) $(LIBUNISTRING)
 test_numeric_SOURCES = unictype/test-numeric.c
+test_numeric_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_alphabetic_SOURCES = unictype/test-pr_alphabetic.c
+test_pr_alphabetic_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_ascii_hex_digit_SOURCES = unictype/test-pr_ascii_hex_digit.c
+test_pr_ascii_hex_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_arabic_digit_SOURCES = unictype/test-pr_bidi_arabic_digit.c
+test_pr_bidi_arabic_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_arabic_right_to_left_SOURCES = unictype/test-pr_bidi_arabic_right_to_left.c
+test_pr_bidi_arabic_right_to_left_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_block_separator_SOURCES = unictype/test-pr_bidi_block_separator.c
+test_pr_bidi_block_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_boundary_neutral_SOURCES = unictype/test-pr_bidi_boundary_neutral.c
+test_pr_bidi_boundary_neutral_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_common_separator_SOURCES = unictype/test-pr_bidi_common_separator.c
+test_pr_bidi_common_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_control_SOURCES = unictype/test-pr_bidi_control.c
+test_pr_bidi_control_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_embedding_or_override_SOURCES = unictype/test-pr_bidi_embedding_or_override.c
+test_pr_bidi_embedding_or_override_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_eur_num_separator_SOURCES = unictype/test-pr_bidi_eur_num_separator.c
+test_pr_bidi_eur_num_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_eur_num_terminator_SOURCES = unictype/test-pr_bidi_eur_num_terminator.c
+test_pr_bidi_eur_num_terminator_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_european_digit_SOURCES = unictype/test-pr_bidi_european_digit.c
+test_pr_bidi_european_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_hebrew_right_to_left_SOURCES = unictype/test-pr_bidi_hebrew_right_to_left.c
+test_pr_bidi_hebrew_right_to_left_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_left_to_right_SOURCES = unictype/test-pr_bidi_left_to_right.c
+test_pr_bidi_left_to_right_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_non_spacing_mark_SOURCES = unictype/test-pr_bidi_non_spacing_mark.c
+test_pr_bidi_non_spacing_mark_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_other_neutral_SOURCES = unictype/test-pr_bidi_other_neutral.c
+test_pr_bidi_other_neutral_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_pdf_SOURCES = unictype/test-pr_bidi_pdf.c
+test_pr_bidi_pdf_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_segment_separator_SOURCES = unictype/test-pr_bidi_segment_separator.c
+test_pr_bidi_segment_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_bidi_whitespace_SOURCES = unictype/test-pr_bidi_whitespace.c
+test_pr_bidi_whitespace_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_byname_SOURCES = unictype/test-pr_byname.c
+test_pr_byname_LDADD = $(LDADD) $(LIBUNISTRING)
+test_pr_case_ignorable_SOURCES = unictype/test-pr_case_ignorable.c
+test_pr_case_ignorable_LDADD = $(LDADD) $(LIBUNISTRING)
+test_pr_cased_SOURCES = unictype/test-pr_cased.c
+test_pr_cased_LDADD = $(LDADD) $(LIBUNISTRING)
+test_pr_changes_when_casefolded_SOURCES = unictype/test-pr_changes_when_casefolded.c
+test_pr_changes_when_casefolded_LDADD = $(LDADD) $(LIBUNISTRING)
+test_pr_changes_when_casemapped_SOURCES = unictype/test-pr_changes_when_casemapped.c
+test_pr_changes_when_casemapped_LDADD = $(LDADD) $(LIBUNISTRING)
+test_pr_changes_when_lowercased_SOURCES = unictype/test-pr_changes_when_lowercased.c
+test_pr_changes_when_lowercased_LDADD = $(LDADD) $(LIBUNISTRING)
+test_pr_changes_when_titlecased_SOURCES = unictype/test-pr_changes_when_titlecased.c
+test_pr_changes_when_titlecased_LDADD = $(LDADD) $(LIBUNISTRING)
+test_pr_changes_when_uppercased_SOURCES = unictype/test-pr_changes_when_uppercased.c
+test_pr_changes_when_uppercased_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_combining_SOURCES = unictype/test-pr_combining.c
+test_pr_combining_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_composite_SOURCES = unictype/test-pr_composite.c
+test_pr_composite_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_currency_symbol_SOURCES = unictype/test-pr_currency_symbol.c
+test_pr_currency_symbol_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_dash_SOURCES = unictype/test-pr_dash.c
+test_pr_dash_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_decimal_digit_SOURCES = unictype/test-pr_decimal_digit.c
+test_pr_decimal_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_default_ignorable_code_point_SOURCES = unictype/test-pr_default_ignorable_code_point.c
+test_pr_default_ignorable_code_point_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_deprecated_SOURCES = unictype/test-pr_deprecated.c
+test_pr_deprecated_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_diacritic_SOURCES = unictype/test-pr_diacritic.c
+test_pr_diacritic_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_extender_SOURCES = unictype/test-pr_extender.c
+test_pr_extender_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_format_control_SOURCES = unictype/test-pr_format_control.c
+test_pr_format_control_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_grapheme_base_SOURCES = unictype/test-pr_grapheme_base.c
+test_pr_grapheme_base_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_grapheme_extend_SOURCES = unictype/test-pr_grapheme_extend.c
+test_pr_grapheme_extend_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_grapheme_link_SOURCES = unictype/test-pr_grapheme_link.c
+test_pr_grapheme_link_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_hex_digit_SOURCES = unictype/test-pr_hex_digit.c
+test_pr_hex_digit_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_hyphen_SOURCES = unictype/test-pr_hyphen.c
+test_pr_hyphen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_id_continue_SOURCES = unictype/test-pr_id_continue.c
+test_pr_id_continue_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_id_start_SOURCES = unictype/test-pr_id_start.c
+test_pr_id_start_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_ideographic_SOURCES = unictype/test-pr_ideographic.c
+test_pr_ideographic_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_ids_binary_operator_SOURCES = unictype/test-pr_ids_binary_operator.c
+test_pr_ids_binary_operator_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_ids_trinary_operator_SOURCES = unictype/test-pr_ids_trinary_operator.c
+test_pr_ids_trinary_operator_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_ignorable_control_SOURCES = unictype/test-pr_ignorable_control.c
+test_pr_ignorable_control_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_iso_control_SOURCES = unictype/test-pr_iso_control.c
+test_pr_iso_control_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_join_control_SOURCES = unictype/test-pr_join_control.c
+test_pr_join_control_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_left_of_pair_SOURCES = unictype/test-pr_left_of_pair.c
+test_pr_left_of_pair_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_line_separator_SOURCES = unictype/test-pr_line_separator.c
+test_pr_line_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_logical_order_exception_SOURCES = unictype/test-pr_logical_order_exception.c
+test_pr_logical_order_exception_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_lowercase_SOURCES = unictype/test-pr_lowercase.c
+test_pr_lowercase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_math_SOURCES = unictype/test-pr_math.c
+test_pr_math_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_non_break_SOURCES = unictype/test-pr_non_break.c
+test_pr_non_break_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_not_a_character_SOURCES = unictype/test-pr_not_a_character.c
+test_pr_not_a_character_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_numeric_SOURCES = unictype/test-pr_numeric.c
+test_pr_numeric_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_other_alphabetic_SOURCES = unictype/test-pr_other_alphabetic.c
+test_pr_other_alphabetic_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_other_default_ignorable_code_point_SOURCES = unictype/test-pr_other_default_ignorable_code_point.c
+test_pr_other_default_ignorable_code_point_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_other_grapheme_extend_SOURCES = unictype/test-pr_other_grapheme_extend.c
+test_pr_other_grapheme_extend_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_other_id_continue_SOURCES = unictype/test-pr_other_id_continue.c
+test_pr_other_id_continue_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_other_id_start_SOURCES = unictype/test-pr_other_id_start.c
+test_pr_other_id_start_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_other_lowercase_SOURCES = unictype/test-pr_other_lowercase.c
+test_pr_other_lowercase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_other_math_SOURCES = unictype/test-pr_other_math.c
+test_pr_other_math_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_other_uppercase_SOURCES = unictype/test-pr_other_uppercase.c
+test_pr_other_uppercase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_paired_punctuation_SOURCES = unictype/test-pr_paired_punctuation.c
+test_pr_paired_punctuation_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_paragraph_separator_SOURCES = unictype/test-pr_paragraph_separator.c
+test_pr_paragraph_separator_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_pattern_syntax_SOURCES = unictype/test-pr_pattern_syntax.c
+test_pr_pattern_syntax_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_pattern_white_space_SOURCES = unictype/test-pr_pattern_white_space.c
+test_pr_pattern_white_space_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_private_use_SOURCES = unictype/test-pr_private_use.c
+test_pr_private_use_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_punctuation_SOURCES = unictype/test-pr_punctuation.c
+test_pr_punctuation_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_quotation_mark_SOURCES = unictype/test-pr_quotation_mark.c
+test_pr_quotation_mark_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_radical_SOURCES = unictype/test-pr_radical.c
+test_pr_radical_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_sentence_terminal_SOURCES = unictype/test-pr_sentence_terminal.c
+test_pr_sentence_terminal_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_soft_dotted_SOURCES = unictype/test-pr_soft_dotted.c
+test_pr_soft_dotted_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_space_SOURCES = unictype/test-pr_space.c
+test_pr_space_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_terminal_punctuation_SOURCES = unictype/test-pr_terminal_punctuation.c
+test_pr_terminal_punctuation_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_test_SOURCES = unictype/test-pr_test.c
+test_pr_test_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_titlecase_SOURCES = unictype/test-pr_titlecase.c
+test_pr_titlecase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_unassigned_code_value_SOURCES = unictype/test-pr_unassigned_code_value.c
+test_pr_unassigned_code_value_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_unified_ideograph_SOURCES = unictype/test-pr_unified_ideograph.c
+test_pr_unified_ideograph_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_uppercase_SOURCES = unictype/test-pr_uppercase.c
+test_pr_uppercase_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_variation_selector_SOURCES = unictype/test-pr_variation_selector.c
+test_pr_variation_selector_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_white_space_SOURCES = unictype/test-pr_white_space.c
+test_pr_white_space_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_xid_continue_SOURCES = unictype/test-pr_xid_continue.c
+test_pr_xid_continue_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_xid_start_SOURCES = unictype/test-pr_xid_start.c
+test_pr_xid_start_LDADD = $(LDADD) $(LIBUNISTRING)
 test_pr_zero_width_SOURCES = unictype/test-pr_zero_width.c
+test_pr_zero_width_LDADD = $(LDADD) $(LIBUNISTRING)
 test_scripts_SOURCES = unictype/test-scripts.c
+test_scripts_LDADD = $(LDADD) $(LIBUNISTRING)
 test_sy_c_ident_SOURCES = unictype/test-sy_c_ident.c
+test_sy_c_ident_LDADD = $(LDADD) $(LIBUNISTRING)
 test_sy_c_whitespace_SOURCES = unictype/test-sy_c_whitespace.c
+test_sy_c_whitespace_LDADD = $(LDADD) $(LIBUNISTRING)
 test_sy_java_ident_SOURCES = unictype/test-sy_java_ident.c
+test_sy_java_ident_LDADD = $(LDADD) $(LIBUNISTRING)
 test_sy_java_whitespace_SOURCES = unictype/test-sy_java_whitespace.c
+test_sy_java_whitespace_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u16_grapheme_breaks_SOURCES = unigbrk/test-u16-grapheme-breaks.c
+test_u16_grapheme_breaks_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u16_grapheme_next_SOURCES = unigbrk/test-u16-grapheme-next.c
+test_u16_grapheme_next_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u16_grapheme_prev_SOURCES = unigbrk/test-u16-grapheme-prev.c
+test_u16_grapheme_prev_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u32_grapheme_breaks_SOURCES = unigbrk/test-u32-grapheme-breaks.c
+test_u32_grapheme_breaks_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u32_grapheme_next_SOURCES = unigbrk/test-u32-grapheme-next.c
+test_u32_grapheme_next_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u32_grapheme_prev_SOURCES = unigbrk/test-u32-grapheme-prev.c
+test_u32_grapheme_prev_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u8_grapheme_breaks_SOURCES = unigbrk/test-u8-grapheme-breaks.c
+test_u8_grapheme_breaks_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u8_grapheme_next_SOURCES = unigbrk/test-u8-grapheme-next.c
+test_u8_grapheme_next_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u8_grapheme_prev_SOURCES = unigbrk/test-u8-grapheme-prev.c
+test_u8_grapheme_prev_LDADD = $(LDADD) $(LIBUNISTRING)
+test_uc_gbrk_prop_SOURCES = unigbrk/test-uc-gbrk-prop.c
+test_uc_gbrk_prop_LDADD = $(LDADD) $(LIBUNISTRING)
+test_uc_is_grapheme_break_SOURCES = unigbrk/test-uc-is-grapheme-break.c
+test_uc_is_grapheme_break_LDADD = $(LDADD) $(LIBUNISTRING)
+test_ulc_grapheme_breaks_SOURCES = unigbrk/test-ulc-grapheme-breaks.c
+test_ulc_grapheme_breaks_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_possible_linebreaks_SOURCES = unilbrk/test-u16-possible-linebreaks.c
+test_u16_possible_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_width_linebreaks_SOURCES = unilbrk/test-u16-width-linebreaks.c
+test_u16_width_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_possible_linebreaks_SOURCES = unilbrk/test-u32-possible-linebreaks.c
+test_u32_possible_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_width_linebreaks_SOURCES = unilbrk/test-u32-width-linebreaks.c
+test_u32_width_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_possible_linebreaks_SOURCES = unilbrk/test-u8-possible-linebreaks.c
+test_u8_possible_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_width_linebreaks_SOURCES = unilbrk/test-u8-width-linebreaks.c
+test_u8_width_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ulc_possible_linebreaks_SOURCES = unilbrk/test-ulc-possible-linebreaks.c
-test_ulc_possible_linebreaks_LDADD = $(LDADD) @LIBICONV@
+test_ulc_possible_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_ulc_width_linebreaks_SOURCES = unilbrk/test-ulc-width-linebreaks.c
-test_ulc_width_linebreaks_LDADD = $(LDADD) @LIBICONV@
+test_ulc_width_linebreaks_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_uninames_SOURCES = uniname/test-uninames.c
-test_uninames_LDADD = $(LDADD) @LIBINTL@
+test_uninames_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@
 test_canonical_decomposition_SOURCES = uninorm/test-canonical-decomposition.c
+test_canonical_decomposition_LDADD = $(LDADD) $(LIBUNISTRING)
 test_compat_decomposition_SOURCES = uninorm/test-compat-decomposition.c
+test_compat_decomposition_LDADD = $(LDADD) $(LIBUNISTRING)
 test_composition_SOURCES = uninorm/test-composition.c
+test_composition_LDADD = $(LDADD) $(LIBUNISTRING)
 test_decomposing_form_SOURCES = uninorm/test-decomposing-form.c
+test_decomposing_form_LDADD = $(LDADD) $(LIBUNISTRING)
 test_decomposition_SOURCES = uninorm/test-decomposition.c
+test_decomposition_LDADD = $(LDADD) $(LIBUNISTRING)
 test_uninorm_filter_nfc_SOURCES = uninorm/test-uninorm-filter-nfc.c
+test_uninorm_filter_nfc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_nfc_SOURCES = \
   uninorm/test-nfc.c \
   uninorm/test-u8-nfc.c \
   uninorm/test-u16-nfc.c \
   uninorm/test-u32-nfc.c
 
+test_nfc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_nfc_big_SOURCES = \
   uninorm/test-u32-nfc-big.c \
   uninorm/test-u32-normalize-big.c
 
-test_u32_nfc_big_LDADD = $(LDADD) @LIBINTL@
+test_u32_nfc_big_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@
 test_nfd_SOURCES = \
   uninorm/test-nfd.c \
   uninorm/test-u8-nfd.c \
   uninorm/test-u16-nfd.c \
   uninorm/test-u32-nfd.c
 
+test_nfd_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_nfd_big_SOURCES = \
   uninorm/test-u32-nfd-big.c \
   uninorm/test-u32-normalize-big.c
 
-test_u32_nfd_big_LDADD = $(LDADD) @LIBINTL@
+test_u32_nfd_big_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@
 test_nfkc_SOURCES = \
   uninorm/test-nfkc.c \
   uninorm/test-u8-nfkc.c \
   uninorm/test-u16-nfkc.c \
   uninorm/test-u32-nfkc.c
 
+test_nfkc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_nfkc_big_SOURCES = \
   uninorm/test-u32-nfkc-big.c \
   uninorm/test-u32-normalize-big.c
 
-test_u32_nfkc_big_LDADD = $(LDADD) @LIBINTL@
+test_u32_nfkc_big_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@
 test_nfkd_SOURCES = \
   uninorm/test-nfkd.c \
   uninorm/test-u8-nfkd.c \
   uninorm/test-u16-nfkd.c \
   uninorm/test-u32-nfkd.c
 
+test_nfkd_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_nfkd_big_SOURCES = \
   uninorm/test-u32-nfkd-big.c \
   uninorm/test-u32-normalize-big.c
 
-test_u32_nfkd_big_LDADD = $(LDADD) @LIBINTL@
+test_u32_nfkd_big_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@
 test_u16_normcmp_SOURCES = uninorm/test-u16-normcmp.c
+test_u16_normcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_normcoll_SOURCES = uninorm/test-u16-normcoll.c
-test_u16_normcoll_LDADD = $(LDADD) @LIBICONV@
+test_u16_normcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_normcmp_SOURCES = uninorm/test-u32-normcmp.c
+test_u32_normcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_normcoll_SOURCES = uninorm/test-u32-normcoll.c
-test_u32_normcoll_LDADD = $(LDADD) @LIBICONV@
+test_u32_normcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_normcmp_SOURCES = uninorm/test-u8-normcmp.c
+test_u8_normcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_normcoll_SOURCES = uninorm/test-u8-normcoll.c
-test_u8_normcoll_LDADD = $(LDADD) @LIBICONV@
+test_u8_normcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_asnprintf1_SOURCES = unistdio/test-u16-asnprintf1.c
-test_u16_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u16_asnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_vasnprintf1_SOURCES = unistdio/test-u16-vasnprintf1.c
-test_u16_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_vasnprintf2_SOURCES = unistdio/test-u16-vasnprintf2.c
-test_u16_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasnprintf2_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_vasnprintf3_SOURCES = unistdio/test-u16-vasnprintf3.c
-test_u16_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasnprintf3_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_vasprintf1_SOURCES = unistdio/test-u16-vasprintf1.c
-test_u16_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u16_vasprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_vsnprintf1_SOURCES = unistdio/test-u16-vsnprintf1.c
-test_u16_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u16_vsnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 test_u16_vsprintf1_SOURCES = unistdio/test-u16-vsprintf1.c
-test_u16_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u16_vsprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 test_u32_asnprintf1_SOURCES = unistdio/test-u32-asnprintf1.c
-test_u32_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u32_asnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_vasnprintf1_SOURCES = unistdio/test-u32-vasnprintf1.c
-test_u32_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_vasnprintf2_SOURCES = unistdio/test-u32-vasnprintf2.c
-test_u32_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasnprintf2_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_vasnprintf3_SOURCES = unistdio/test-u32-vasnprintf3.c
-test_u32_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasnprintf3_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_vasprintf1_SOURCES = unistdio/test-u32-vasprintf1.c
-test_u32_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u32_vasprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_vsnprintf1_SOURCES = unistdio/test-u32-vsnprintf1.c
-test_u32_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u32_vsnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 test_u32_vsprintf1_SOURCES = unistdio/test-u32-vsprintf1.c
-test_u32_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u32_vsprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 test_u8_asnprintf1_SOURCES = unistdio/test-u8-asnprintf1.c
-test_u8_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u8_asnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_vasnprintf1_SOURCES = unistdio/test-u8-vasnprintf1.c
-test_u8_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_vasnprintf2_SOURCES = unistdio/test-u8-vasnprintf2.c
-test_u8_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasnprintf2_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_vasnprintf3_SOURCES = unistdio/test-u8-vasnprintf3.c
-test_u8_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasnprintf3_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_vasprintf1_SOURCES = unistdio/test-u8-vasprintf1.c
-test_u8_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_u8_vasprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_vsnprintf1_SOURCES = unistdio/test-u8-vsnprintf1.c
-test_u8_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u8_vsnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 test_u8_vsprintf1_SOURCES = unistdio/test-u8-vsprintf1.c
-test_u8_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_u8_vsprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 test_ulc_asnprintf1_SOURCES = unistdio/test-ulc-asnprintf1.c
-test_ulc_asnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_ulc_asnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_ulc_vasnprintf1_SOURCES = unistdio/test-ulc-vasnprintf1.c
-test_ulc_vasnprintf1_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_ulc_vasnprintf2_SOURCES = unistdio/test-ulc-vasnprintf2.c
-test_ulc_vasnprintf2_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasnprintf2_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_ulc_vasnprintf3_SOURCES = unistdio/test-ulc-vasnprintf3.c
-test_ulc_vasnprintf3_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasnprintf3_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_ulc_vasprintf1_SOURCES = unistdio/test-ulc-vasprintf1.c
-test_ulc_vasprintf1_LDADD = $(LDADD) @LIBICONV@
+test_ulc_vasprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_ulc_vsnprintf1_SOURCES = unistdio/test-ulc-vsnprintf1.c
-test_ulc_vsnprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_ulc_vsnprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 test_ulc_vsprintf1_SOURCES = unistdio/test-ulc-vsprintf1.c
-test_ulc_vsprintf1_LDADD = $(LDADD) @LIBINTL@ @LIBICONV@
+test_ulc_vsprintf1_LDADD = $(LDADD) $(LIBUNISTRING) @LIBINTL@ @LIBICONV@
 test_u16_check_SOURCES = unistr/test-u16-check.c
+test_u16_check_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_chr_SOURCES = unistr/test-u16-chr.c
+test_u16_chr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_cmp_SOURCES = unistr/test-u16-cmp.c
+test_u16_cmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_cmp2_SOURCES = unistr/test-u16-cmp2.c
+test_u16_cmp2_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_cpy_alloc_SOURCES = unistr/test-u16-cpy-alloc.c
+test_u16_cpy_alloc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_cpy_SOURCES = unistr/test-u16-cpy.c
+test_u16_cpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_mblen_SOURCES = unistr/test-u16-mblen.c
+test_u16_mblen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_mbsnlen_SOURCES = unistr/test-u16-mbsnlen.c
+test_u16_mbsnlen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_mbtouc_SOURCES = unistr/test-u16-mbtouc.c
+test_u16_mbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_mbtouc_unsafe_SOURCES = unistr/test-u16-mbtouc-unsafe.c
+test_u16_mbtouc_unsafe_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_mbtoucr_SOURCES = unistr/test-u16-mbtoucr.c
+test_u16_mbtoucr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_move_SOURCES = unistr/test-u16-move.c
+test_u16_move_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_next_SOURCES = unistr/test-u16-next.c
+test_u16_next_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_prev_SOURCES = unistr/test-u16-prev.c
+test_u16_prev_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_set_SOURCES = unistr/test-u16-set.c
+test_u16_set_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_stpcpy_SOURCES = unistr/test-u16-stpcpy.c
+test_u16_stpcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_stpncpy_SOURCES = unistr/test-u16-stpncpy.c
+test_u16_stpncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_strcat_SOURCES = unistr/test-u16-strcat.c
+test_u16_strcat_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u16_strchr_SOURCES = unistr/test-u16-strchr.c
+test_u16_strchr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_strcmp_SOURCES = unistr/test-u16-strcmp.c
+test_u16_strcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_strcoll_SOURCES = unistr/test-u16-strcoll.c
-test_u16_strcoll_LDADD = $(LDADD) @LIBICONV@
+test_u16_strcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_strcpy_SOURCES = unistr/test-u16-strcpy.c
+test_u16_strcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_strdup_SOURCES = unistr/test-u16-strdup.c
+test_u16_strdup_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_strlen_SOURCES = unistr/test-u16-strlen.c
+test_u16_strlen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_strmblen_SOURCES = unistr/test-u16-strmblen.c
+test_u16_strmblen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_strmbtouc_SOURCES = unistr/test-u16-strmbtouc.c
+test_u16_strmbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_strncat_SOURCES = unistr/test-u16-strncat.c
+test_u16_strncat_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_strncmp_SOURCES = unistr/test-u16-strncmp.c
+test_u16_strncmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_strncpy_SOURCES = unistr/test-u16-strncpy.c
+test_u16_strncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_strnlen_SOURCES = unistr/test-u16-strnlen.c
+test_u16_strnlen_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u16_strstr_SOURCES = unistr/test-u16-strstr.c
+test_u16_strstr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_to_u32_SOURCES = unistr/test-u16-to-u32.c
+test_u16_to_u32_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_to_u8_SOURCES = unistr/test-u16-to-u8.c
+test_u16_to_u8_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_uctomb_SOURCES = unistr/test-u16-uctomb.c
+test_u16_uctomb_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_check_SOURCES = unistr/test-u32-check.c
+test_u32_check_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_chr_SOURCES = unistr/test-u32-chr.c
+test_u32_chr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_cmp_SOURCES = unistr/test-u32-cmp.c
+test_u32_cmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_cmp2_SOURCES = unistr/test-u32-cmp2.c
+test_u32_cmp2_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_cpy_alloc_SOURCES = unistr/test-u32-cpy-alloc.c
+test_u32_cpy_alloc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_cpy_SOURCES = unistr/test-u32-cpy.c
+test_u32_cpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_mblen_SOURCES = unistr/test-u32-mblen.c
+test_u32_mblen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_mbsnlen_SOURCES = unistr/test-u32-mbsnlen.c
+test_u32_mbsnlen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_mbtouc_SOURCES = unistr/test-u32-mbtouc.c
+test_u32_mbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_mbtouc_unsafe_SOURCES = unistr/test-u32-mbtouc-unsafe.c
+test_u32_mbtouc_unsafe_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_mbtoucr_SOURCES = unistr/test-u32-mbtoucr.c
+test_u32_mbtoucr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_move_SOURCES = unistr/test-u32-move.c
+test_u32_move_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_next_SOURCES = unistr/test-u32-next.c
+test_u32_next_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_prev_SOURCES = unistr/test-u32-prev.c
+test_u32_prev_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_set_SOURCES = unistr/test-u32-set.c
+test_u32_set_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_stpcpy_SOURCES = unistr/test-u32-stpcpy.c
+test_u32_stpcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_stpncpy_SOURCES = unistr/test-u32-stpncpy.c
+test_u32_stpncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strcat_SOURCES = unistr/test-u32-strcat.c
+test_u32_strcat_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u32_strchr_SOURCES = unistr/test-u32-strchr.c
+test_u32_strchr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strcmp_SOURCES = unistr/test-u32-strcmp.c
+test_u32_strcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strcoll_SOURCES = unistr/test-u32-strcoll.c
-test_u32_strcoll_LDADD = $(LDADD) @LIBICONV@
+test_u32_strcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u32_strcpy_SOURCES = unistr/test-u32-strcpy.c
+test_u32_strcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strdup_SOURCES = unistr/test-u32-strdup.c
+test_u32_strdup_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strlen_SOURCES = unistr/test-u32-strlen.c
+test_u32_strlen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strmblen_SOURCES = unistr/test-u32-strmblen.c
+test_u32_strmblen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strmbtouc_SOURCES = unistr/test-u32-strmbtouc.c
+test_u32_strmbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strncat_SOURCES = unistr/test-u32-strncat.c
+test_u32_strncat_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strncmp_SOURCES = unistr/test-u32-strncmp.c
+test_u32_strncmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strncpy_SOURCES = unistr/test-u32-strncpy.c
+test_u32_strncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strnlen_SOURCES = unistr/test-u32-strnlen.c
+test_u32_strnlen_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u32_strstr_SOURCES = unistr/test-u32-strstr.c
+test_u32_strstr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_to_u16_SOURCES = unistr/test-u32-to-u16.c
+test_u32_to_u16_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_to_u8_SOURCES = unistr/test-u32-to-u8.c
+test_u32_to_u8_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_uctomb_SOURCES = unistr/test-u32-uctomb.c
+test_u32_uctomb_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_check_SOURCES = unistr/test-u8-check.c
+test_u8_check_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_chr_SOURCES = unistr/test-u8-chr.c
+test_u8_chr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_cmp_SOURCES = unistr/test-u8-cmp.c
+test_u8_cmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_cmp2_SOURCES = unistr/test-u8-cmp2.c
+test_u8_cmp2_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_cpy_alloc_SOURCES = unistr/test-u8-cpy-alloc.c
+test_u8_cpy_alloc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_cpy_SOURCES = unistr/test-u8-cpy.c
+test_u8_cpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_mblen_SOURCES = unistr/test-u8-mblen.c
+test_u8_mblen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_mbsnlen_SOURCES = unistr/test-u8-mbsnlen.c
+test_u8_mbsnlen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_mbtouc_SOURCES = unistr/test-u8-mbtouc.c
+test_u8_mbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_mbtouc_unsafe_SOURCES = unistr/test-u8-mbtouc-unsafe.c
+test_u8_mbtouc_unsafe_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_mbtoucr_SOURCES = unistr/test-u8-mbtoucr.c
+test_u8_mbtoucr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_move_SOURCES = unistr/test-u8-move.c
+test_u8_move_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_next_SOURCES = unistr/test-u8-next.c
+test_u8_next_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_prev_SOURCES = unistr/test-u8-prev.c
+test_u8_prev_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_set_SOURCES = unistr/test-u8-set.c
+test_u8_set_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_stpcpy_SOURCES = unistr/test-u8-stpcpy.c
+test_u8_stpcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_stpncpy_SOURCES = unistr/test-u8-stpncpy.c
+test_u8_stpncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strcat_SOURCES = unistr/test-u8-strcat.c
+test_u8_strcat_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u8_strchr_SOURCES = unistr/test-u8-strchr.c
+test_u8_strchr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strcmp_SOURCES = unistr/test-u8-strcmp.c
+test_u8_strcmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strcoll_SOURCES = unistr/test-u8-strcoll.c
-test_u8_strcoll_LDADD = $(LDADD) @LIBICONV@
+test_u8_strcoll_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u8_strcpy_SOURCES = unistr/test-u8-strcpy.c
+test_u8_strcpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strdup_SOURCES = unistr/test-u8-strdup.c
+test_u8_strdup_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strlen_SOURCES = unistr/test-u8-strlen.c
+test_u8_strlen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strmblen_SOURCES = unistr/test-u8-strmblen.c
+test_u8_strmblen_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strmbtouc_SOURCES = unistr/test-u8-strmbtouc.c
+test_u8_strmbtouc_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strncat_SOURCES = unistr/test-u8-strncat.c
+test_u8_strncat_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strncmp_SOURCES = unistr/test-u8-strncmp.c
+test_u8_strncmp_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strncpy_SOURCES = unistr/test-u8-strncpy.c
+test_u8_strncpy_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strnlen_SOURCES = unistr/test-u8-strnlen.c
+test_u8_strnlen_LDADD = $(LDADD) $(LIBUNISTRING)
+test_u8_strstr_SOURCES = unistr/test-u8-strstr.c
+test_u8_strstr_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_to_u16_SOURCES = unistr/test-u8-to-u16.c
+test_u8_to_u16_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_to_u32_SOURCES = unistr/test-u8-to-u32.c
+test_u8_to_u32_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_uctomb_SOURCES = unistr/test-u8-uctomb.c
+test_u8_uctomb_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_wordbreaks_SOURCES = uniwbrk/test-u16-wordbreaks.c
+test_u16_wordbreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_wordbreaks_SOURCES = uniwbrk/test-u32-wordbreaks.c
+test_u32_wordbreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_wordbreaks_SOURCES = uniwbrk/test-u8-wordbreaks.c
+test_u8_wordbreaks_LDADD = $(LDADD) $(LIBUNISTRING)
 test_ulc_wordbreaks_SOURCES = uniwbrk/test-ulc-wordbreaks.c
-test_ulc_wordbreaks_LDADD = $(LDADD) @LIBICONV@
+test_ulc_wordbreaks_LDADD = $(LDADD) $(LIBUNISTRING) @LIBICONV@
 test_u16_strwidth_SOURCES = uniwidth/test-u16-strwidth.c
+test_u16_strwidth_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u16_width_SOURCES = uniwidth/test-u16-width.c
+test_u16_width_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_strwidth_SOURCES = uniwidth/test-u32-strwidth.c
+test_u32_strwidth_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u32_width_SOURCES = uniwidth/test-u32-width.c
+test_u32_width_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_strwidth_SOURCES = uniwidth/test-u8-strwidth.c
+test_u8_strwidth_LDADD = $(LDADD) $(LIBUNISTRING)
 test_u8_width_SOURCES = uniwidth/test-u8-width.c
+test_u8_width_LDADD = $(LDADD) $(LIBUNISTRING)
 test_uc_width_SOURCES = uniwidth/test-uc_width.c
+test_uc_width_LDADD = $(LDADD) $(LIBUNISTRING)
 test_uc_width2_SOURCES = uniwidth/test-uc_width2.c
-UNUSED_PARAMETER_H = unused-parameter.h
-WARN_ON_USE_H = warn-on-use.h
+test_uc_width2_LDADD = $(LDADD) $(LIBUNISTRING)
 test_xalloc_die_LDADD = $(LDADD) @LIBINTL@
 
 # Ensure that ../lib/config.h is seen before ../config.h.
@@ -5058,7 +6097,7 @@ all: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/Makefile.gnulib $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
@@ -5080,6 +6119,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
        esac;
+$(srcdir)/Makefile.gnulib:
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -5103,7 +6143,8 @@ glthread/$(DEPDIR)/$(am__dirstamp):
        @: > glthread/$(DEPDIR)/$(am__dirstamp)
 glthread/thread.$(OBJEXT): glthread/$(am__dirstamp) \
        glthread/$(DEPDIR)/$(am__dirstamp)
-libtests.a: $(libtests_a_OBJECTS) $(libtests_a_DEPENDENCIES) 
+
+libtests.a: $(libtests_a_OBJECTS) $(libtests_a_DEPENDENCIES) $(EXTRA_libtests_a_DEPENDENCIES) 
        $(AM_V_at)-rm -f libtests.a
        $(AM_V_AR)$(libtests_a_AR) libtests.a $(libtests_a_OBJECTS) $(libtests_a_LIBADD)
        $(AM_V_at)$(RANLIB) libtests.a
@@ -5125,10 +6166,12 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-test-alloca-opt$(EXEEXT): $(test_alloca_opt_OBJECTS) $(test_alloca_opt_DEPENDENCIES) 
+
+test-alloca-opt$(EXEEXT): $(test_alloca_opt_OBJECTS) $(test_alloca_opt_DEPENDENCIES) $(EXTRA_test_alloca_opt_DEPENDENCIES) 
        @rm -f test-alloca-opt$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_alloca_opt_OBJECTS) $(test_alloca_opt_LDADD) $(LIBS)
-test-array-mergesort$(EXEEXT): $(test_array_mergesort_OBJECTS) $(test_array_mergesort_DEPENDENCIES) 
+
+test-array-mergesort$(EXEEXT): $(test_array_mergesort_OBJECTS) $(test_array_mergesort_DEPENDENCIES) $(EXTRA_test_array_mergesort_DEPENDENCIES) 
        @rm -f test-array-mergesort$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_array_mergesort_OBJECTS) $(test_array_mergesort_LDADD) $(LIBS)
 unictype/$(am__dirstamp):
@@ -5139,46 +6182,66 @@ unictype/$(DEPDIR)/$(am__dirstamp):
        @: > unictype/$(DEPDIR)/$(am__dirstamp)
 unictype/test-bidi_byname.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-bidi_byname$(EXEEXT): $(test_bidi_byname_OBJECTS) $(test_bidi_byname_DEPENDENCIES) 
+
+test-bidi_byname$(EXEEXT): $(test_bidi_byname_OBJECTS) $(test_bidi_byname_DEPENDENCIES) $(EXTRA_test_bidi_byname_DEPENDENCIES) 
        @rm -f test-bidi_byname$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_bidi_byname_OBJECTS) $(test_bidi_byname_LDADD) $(LIBS)
+unictype/test-bidi_longname.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-bidi_longname$(EXEEXT): $(test_bidi_longname_OBJECTS) $(test_bidi_longname_DEPENDENCIES) $(EXTRA_test_bidi_longname_DEPENDENCIES) 
+       @rm -f test-bidi_longname$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_bidi_longname_OBJECTS) $(test_bidi_longname_LDADD) $(LIBS)
 unictype/test-bidi_name.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-bidi_name$(EXEEXT): $(test_bidi_name_OBJECTS) $(test_bidi_name_DEPENDENCIES) 
+
+test-bidi_name$(EXEEXT): $(test_bidi_name_OBJECTS) $(test_bidi_name_DEPENDENCIES) $(EXTRA_test_bidi_name_DEPENDENCIES) 
        @rm -f test-bidi_name$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_bidi_name_OBJECTS) $(test_bidi_name_LDADD) $(LIBS)
 unictype/test-bidi_of.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-bidi_of$(EXEEXT): $(test_bidi_of_OBJECTS) $(test_bidi_of_DEPENDENCIES) 
+
+test-bidi_of$(EXEEXT): $(test_bidi_of_OBJECTS) $(test_bidi_of_DEPENDENCIES) $(EXTRA_test_bidi_of_DEPENDENCIES) 
        @rm -f test-bidi_of$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_bidi_of_OBJECTS) $(test_bidi_of_LDADD) $(LIBS)
 unictype/test-bidi_test.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-bidi_test$(EXEEXT): $(test_bidi_test_OBJECTS) $(test_bidi_test_DEPENDENCIES) 
+
+test-bidi_test$(EXEEXT): $(test_bidi_test_OBJECTS) $(test_bidi_test_DEPENDENCIES) $(EXTRA_test_bidi_test_DEPENDENCIES) 
        @rm -f test-bidi_test$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_bidi_test_OBJECTS) $(test_bidi_test_LDADD) $(LIBS)
 unictype/test-block_list.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-block_list$(EXEEXT): $(test_block_list_OBJECTS) $(test_block_list_DEPENDENCIES) 
+
+test-block_list$(EXEEXT): $(test_block_list_OBJECTS) $(test_block_list_DEPENDENCIES) $(EXTRA_test_block_list_DEPENDENCIES) 
        @rm -f test-block_list$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_block_list_OBJECTS) $(test_block_list_LDADD) $(LIBS)
 unictype/test-block_of.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-block_of$(EXEEXT): $(test_block_of_OBJECTS) $(test_block_of_DEPENDENCIES) 
+
+test-block_of$(EXEEXT): $(test_block_of_OBJECTS) $(test_block_of_DEPENDENCIES) $(EXTRA_test_block_of_DEPENDENCIES) 
        @rm -f test-block_of$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_block_of_OBJECTS) $(test_block_of_LDADD) $(LIBS)
 unictype/test-block_test.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-block_test$(EXEEXT): $(test_block_test_OBJECTS) $(test_block_test_DEPENDENCIES) 
+
+test-block_test$(EXEEXT): $(test_block_test_OBJECTS) $(test_block_test_DEPENDENCIES) $(EXTRA_test_block_test_DEPENDENCIES) 
        @rm -f test-block_test$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_block_test_OBJECTS) $(test_block_test_LDADD) $(LIBS)
-test-c-ctype$(EXEEXT): $(test_c_ctype_OBJECTS) $(test_c_ctype_DEPENDENCIES) 
+
+test-btowc$(EXEEXT): $(test_btowc_OBJECTS) $(test_btowc_DEPENDENCIES) $(EXTRA_test_btowc_DEPENDENCIES) 
+       @rm -f test-btowc$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_btowc_OBJECTS) $(test_btowc_LDADD) $(LIBS)
+
+test-c-ctype$(EXEEXT): $(test_c_ctype_OBJECTS) $(test_c_ctype_DEPENDENCIES) $(EXTRA_test_c_ctype_DEPENDENCIES) 
        @rm -f test-c-ctype$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_c_ctype_OBJECTS) $(test_c_ctype_LDADD) $(LIBS)
-test-c-strcasecmp$(EXEEXT): $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_DEPENDENCIES) 
+
+test-c-strcasecmp$(EXEEXT): $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_DEPENDENCIES) $(EXTRA_test_c_strcasecmp_DEPENDENCIES) 
        @rm -f test-c-strcasecmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_LDADD) $(LIBS)
-test-c-strncasecmp$(EXEEXT): $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_DEPENDENCIES) 
+
+test-c-strncasecmp$(EXEEXT): $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_DEPENDENCIES) $(EXTRA_test_c_strncasecmp_DEPENDENCIES) 
        @rm -f test-c-strncasecmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_LDADD) $(LIBS)
 uninorm/$(am__dirstamp):
@@ -5189,7 +6252,8 @@ uninorm/$(DEPDIR)/$(am__dirstamp):
        @: > uninorm/$(DEPDIR)/$(am__dirstamp)
 uninorm/test-canonical-decomposition.$(OBJEXT):  \
        uninorm/$(am__dirstamp) uninorm/$(DEPDIR)/$(am__dirstamp)
-test-canonical-decomposition$(EXEEXT): $(test_canonical_decomposition_OBJECTS) $(test_canonical_decomposition_DEPENDENCIES) 
+
+test-canonical-decomposition$(EXEEXT): $(test_canonical_decomposition_OBJECTS) $(test_canonical_decomposition_DEPENDENCIES) $(EXTRA_test_canonical_decomposition_DEPENDENCIES) 
        @rm -f test-canonical-decomposition$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_canonical_decomposition_OBJECTS) $(test_canonical_decomposition_LDADD) $(LIBS)
 unicase/$(am__dirstamp):
@@ -5200,393 +6264,594 @@ unicase/$(DEPDIR)/$(am__dirstamp):
        @: > unicase/$(DEPDIR)/$(am__dirstamp)
 unicase/test-cased.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-cased$(EXEEXT): $(test_cased_OBJECTS) $(test_cased_DEPENDENCIES) 
+
+test-cased$(EXEEXT): $(test_cased_OBJECTS) $(test_cased_DEPENDENCIES) $(EXTRA_test_cased_DEPENDENCIES) 
        @rm -f test-cased$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_cased_OBJECTS) $(test_cased_LDADD) $(LIBS)
 unictype/test-categ_C.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_C$(EXEEXT): $(test_categ_C_OBJECTS) $(test_categ_C_DEPENDENCIES) 
+
+test-categ_C$(EXEEXT): $(test_categ_C_OBJECTS) $(test_categ_C_DEPENDENCIES) $(EXTRA_test_categ_C_DEPENDENCIES) 
        @rm -f test-categ_C$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_C_OBJECTS) $(test_categ_C_LDADD) $(LIBS)
 unictype/test-categ_Cc.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Cc$(EXEEXT): $(test_categ_Cc_OBJECTS) $(test_categ_Cc_DEPENDENCIES) 
+
+test-categ_Cc$(EXEEXT): $(test_categ_Cc_OBJECTS) $(test_categ_Cc_DEPENDENCIES) $(EXTRA_test_categ_Cc_DEPENDENCIES) 
        @rm -f test-categ_Cc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Cc_OBJECTS) $(test_categ_Cc_LDADD) $(LIBS)
 unictype/test-categ_Cf.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Cf$(EXEEXT): $(test_categ_Cf_OBJECTS) $(test_categ_Cf_DEPENDENCIES) 
+
+test-categ_Cf$(EXEEXT): $(test_categ_Cf_OBJECTS) $(test_categ_Cf_DEPENDENCIES) $(EXTRA_test_categ_Cf_DEPENDENCIES) 
        @rm -f test-categ_Cf$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Cf_OBJECTS) $(test_categ_Cf_LDADD) $(LIBS)
 unictype/test-categ_Cn.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Cn$(EXEEXT): $(test_categ_Cn_OBJECTS) $(test_categ_Cn_DEPENDENCIES) 
+
+test-categ_Cn$(EXEEXT): $(test_categ_Cn_OBJECTS) $(test_categ_Cn_DEPENDENCIES) $(EXTRA_test_categ_Cn_DEPENDENCIES) 
        @rm -f test-categ_Cn$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Cn_OBJECTS) $(test_categ_Cn_LDADD) $(LIBS)
 unictype/test-categ_Co.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Co$(EXEEXT): $(test_categ_Co_OBJECTS) $(test_categ_Co_DEPENDENCIES) 
+
+test-categ_Co$(EXEEXT): $(test_categ_Co_OBJECTS) $(test_categ_Co_DEPENDENCIES) $(EXTRA_test_categ_Co_DEPENDENCIES) 
        @rm -f test-categ_Co$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Co_OBJECTS) $(test_categ_Co_LDADD) $(LIBS)
 unictype/test-categ_Cs.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Cs$(EXEEXT): $(test_categ_Cs_OBJECTS) $(test_categ_Cs_DEPENDENCIES) 
+
+test-categ_Cs$(EXEEXT): $(test_categ_Cs_OBJECTS) $(test_categ_Cs_DEPENDENCIES) $(EXTRA_test_categ_Cs_DEPENDENCIES) 
        @rm -f test-categ_Cs$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Cs_OBJECTS) $(test_categ_Cs_LDADD) $(LIBS)
 unictype/test-categ_L.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_L$(EXEEXT): $(test_categ_L_OBJECTS) $(test_categ_L_DEPENDENCIES) 
+
+test-categ_L$(EXEEXT): $(test_categ_L_OBJECTS) $(test_categ_L_DEPENDENCIES) $(EXTRA_test_categ_L_DEPENDENCIES) 
        @rm -f test-categ_L$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_L_OBJECTS) $(test_categ_L_LDADD) $(LIBS)
+unictype/test-categ_LC.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-categ_LC$(EXEEXT): $(test_categ_LC_OBJECTS) $(test_categ_LC_DEPENDENCIES) $(EXTRA_test_categ_LC_DEPENDENCIES) 
+       @rm -f test-categ_LC$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_categ_LC_OBJECTS) $(test_categ_LC_LDADD) $(LIBS)
 unictype/test-categ_Ll.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Ll$(EXEEXT): $(test_categ_Ll_OBJECTS) $(test_categ_Ll_DEPENDENCIES) 
+
+test-categ_Ll$(EXEEXT): $(test_categ_Ll_OBJECTS) $(test_categ_Ll_DEPENDENCIES) $(EXTRA_test_categ_Ll_DEPENDENCIES) 
        @rm -f test-categ_Ll$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Ll_OBJECTS) $(test_categ_Ll_LDADD) $(LIBS)
 unictype/test-categ_Lm.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Lm$(EXEEXT): $(test_categ_Lm_OBJECTS) $(test_categ_Lm_DEPENDENCIES) 
+
+test-categ_Lm$(EXEEXT): $(test_categ_Lm_OBJECTS) $(test_categ_Lm_DEPENDENCIES) $(EXTRA_test_categ_Lm_DEPENDENCIES) 
        @rm -f test-categ_Lm$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Lm_OBJECTS) $(test_categ_Lm_LDADD) $(LIBS)
 unictype/test-categ_Lo.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Lo$(EXEEXT): $(test_categ_Lo_OBJECTS) $(test_categ_Lo_DEPENDENCIES) 
+
+test-categ_Lo$(EXEEXT): $(test_categ_Lo_OBJECTS) $(test_categ_Lo_DEPENDENCIES) $(EXTRA_test_categ_Lo_DEPENDENCIES) 
        @rm -f test-categ_Lo$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Lo_OBJECTS) $(test_categ_Lo_LDADD) $(LIBS)
 unictype/test-categ_Lt.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Lt$(EXEEXT): $(test_categ_Lt_OBJECTS) $(test_categ_Lt_DEPENDENCIES) 
+
+test-categ_Lt$(EXEEXT): $(test_categ_Lt_OBJECTS) $(test_categ_Lt_DEPENDENCIES) $(EXTRA_test_categ_Lt_DEPENDENCIES) 
        @rm -f test-categ_Lt$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Lt_OBJECTS) $(test_categ_Lt_LDADD) $(LIBS)
 unictype/test-categ_Lu.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Lu$(EXEEXT): $(test_categ_Lu_OBJECTS) $(test_categ_Lu_DEPENDENCIES) 
+
+test-categ_Lu$(EXEEXT): $(test_categ_Lu_OBJECTS) $(test_categ_Lu_DEPENDENCIES) $(EXTRA_test_categ_Lu_DEPENDENCIES) 
        @rm -f test-categ_Lu$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Lu_OBJECTS) $(test_categ_Lu_LDADD) $(LIBS)
 unictype/test-categ_M.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_M$(EXEEXT): $(test_categ_M_OBJECTS) $(test_categ_M_DEPENDENCIES) 
+
+test-categ_M$(EXEEXT): $(test_categ_M_OBJECTS) $(test_categ_M_DEPENDENCIES) $(EXTRA_test_categ_M_DEPENDENCIES) 
        @rm -f test-categ_M$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_M_OBJECTS) $(test_categ_M_LDADD) $(LIBS)
 unictype/test-categ_Mc.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Mc$(EXEEXT): $(test_categ_Mc_OBJECTS) $(test_categ_Mc_DEPENDENCIES) 
+
+test-categ_Mc$(EXEEXT): $(test_categ_Mc_OBJECTS) $(test_categ_Mc_DEPENDENCIES) $(EXTRA_test_categ_Mc_DEPENDENCIES) 
        @rm -f test-categ_Mc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Mc_OBJECTS) $(test_categ_Mc_LDADD) $(LIBS)
 unictype/test-categ_Me.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Me$(EXEEXT): $(test_categ_Me_OBJECTS) $(test_categ_Me_DEPENDENCIES) 
+
+test-categ_Me$(EXEEXT): $(test_categ_Me_OBJECTS) $(test_categ_Me_DEPENDENCIES) $(EXTRA_test_categ_Me_DEPENDENCIES) 
        @rm -f test-categ_Me$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Me_OBJECTS) $(test_categ_Me_LDADD) $(LIBS)
 unictype/test-categ_Mn.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Mn$(EXEEXT): $(test_categ_Mn_OBJECTS) $(test_categ_Mn_DEPENDENCIES) 
+
+test-categ_Mn$(EXEEXT): $(test_categ_Mn_OBJECTS) $(test_categ_Mn_DEPENDENCIES) $(EXTRA_test_categ_Mn_DEPENDENCIES) 
        @rm -f test-categ_Mn$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Mn_OBJECTS) $(test_categ_Mn_LDADD) $(LIBS)
 unictype/test-categ_N.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_N$(EXEEXT): $(test_categ_N_OBJECTS) $(test_categ_N_DEPENDENCIES) 
+
+test-categ_N$(EXEEXT): $(test_categ_N_OBJECTS) $(test_categ_N_DEPENDENCIES) $(EXTRA_test_categ_N_DEPENDENCIES) 
        @rm -f test-categ_N$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_N_OBJECTS) $(test_categ_N_LDADD) $(LIBS)
 unictype/test-categ_Nd.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Nd$(EXEEXT): $(test_categ_Nd_OBJECTS) $(test_categ_Nd_DEPENDENCIES) 
+
+test-categ_Nd$(EXEEXT): $(test_categ_Nd_OBJECTS) $(test_categ_Nd_DEPENDENCIES) $(EXTRA_test_categ_Nd_DEPENDENCIES) 
        @rm -f test-categ_Nd$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Nd_OBJECTS) $(test_categ_Nd_LDADD) $(LIBS)
 unictype/test-categ_Nl.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Nl$(EXEEXT): $(test_categ_Nl_OBJECTS) $(test_categ_Nl_DEPENDENCIES) 
+
+test-categ_Nl$(EXEEXT): $(test_categ_Nl_OBJECTS) $(test_categ_Nl_DEPENDENCIES) $(EXTRA_test_categ_Nl_DEPENDENCIES) 
        @rm -f test-categ_Nl$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Nl_OBJECTS) $(test_categ_Nl_LDADD) $(LIBS)
 unictype/test-categ_No.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_No$(EXEEXT): $(test_categ_No_OBJECTS) $(test_categ_No_DEPENDENCIES) 
+
+test-categ_No$(EXEEXT): $(test_categ_No_OBJECTS) $(test_categ_No_DEPENDENCIES) $(EXTRA_test_categ_No_DEPENDENCIES) 
        @rm -f test-categ_No$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_No_OBJECTS) $(test_categ_No_LDADD) $(LIBS)
 unictype/test-categ_P.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_P$(EXEEXT): $(test_categ_P_OBJECTS) $(test_categ_P_DEPENDENCIES) 
+
+test-categ_P$(EXEEXT): $(test_categ_P_OBJECTS) $(test_categ_P_DEPENDENCIES) $(EXTRA_test_categ_P_DEPENDENCIES) 
        @rm -f test-categ_P$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_P_OBJECTS) $(test_categ_P_LDADD) $(LIBS)
 unictype/test-categ_Pc.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Pc$(EXEEXT): $(test_categ_Pc_OBJECTS) $(test_categ_Pc_DEPENDENCIES) 
+
+test-categ_Pc$(EXEEXT): $(test_categ_Pc_OBJECTS) $(test_categ_Pc_DEPENDENCIES) $(EXTRA_test_categ_Pc_DEPENDENCIES) 
        @rm -f test-categ_Pc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Pc_OBJECTS) $(test_categ_Pc_LDADD) $(LIBS)
 unictype/test-categ_Pd.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Pd$(EXEEXT): $(test_categ_Pd_OBJECTS) $(test_categ_Pd_DEPENDENCIES) 
+
+test-categ_Pd$(EXEEXT): $(test_categ_Pd_OBJECTS) $(test_categ_Pd_DEPENDENCIES) $(EXTRA_test_categ_Pd_DEPENDENCIES) 
        @rm -f test-categ_Pd$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Pd_OBJECTS) $(test_categ_Pd_LDADD) $(LIBS)
 unictype/test-categ_Pe.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Pe$(EXEEXT): $(test_categ_Pe_OBJECTS) $(test_categ_Pe_DEPENDENCIES) 
+
+test-categ_Pe$(EXEEXT): $(test_categ_Pe_OBJECTS) $(test_categ_Pe_DEPENDENCIES) $(EXTRA_test_categ_Pe_DEPENDENCIES) 
        @rm -f test-categ_Pe$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Pe_OBJECTS) $(test_categ_Pe_LDADD) $(LIBS)
 unictype/test-categ_Pf.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Pf$(EXEEXT): $(test_categ_Pf_OBJECTS) $(test_categ_Pf_DEPENDENCIES) 
+
+test-categ_Pf$(EXEEXT): $(test_categ_Pf_OBJECTS) $(test_categ_Pf_DEPENDENCIES) $(EXTRA_test_categ_Pf_DEPENDENCIES) 
        @rm -f test-categ_Pf$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Pf_OBJECTS) $(test_categ_Pf_LDADD) $(LIBS)
 unictype/test-categ_Pi.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Pi$(EXEEXT): $(test_categ_Pi_OBJECTS) $(test_categ_Pi_DEPENDENCIES) 
+
+test-categ_Pi$(EXEEXT): $(test_categ_Pi_OBJECTS) $(test_categ_Pi_DEPENDENCIES) $(EXTRA_test_categ_Pi_DEPENDENCIES) 
        @rm -f test-categ_Pi$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Pi_OBJECTS) $(test_categ_Pi_LDADD) $(LIBS)
 unictype/test-categ_Po.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Po$(EXEEXT): $(test_categ_Po_OBJECTS) $(test_categ_Po_DEPENDENCIES) 
+
+test-categ_Po$(EXEEXT): $(test_categ_Po_OBJECTS) $(test_categ_Po_DEPENDENCIES) $(EXTRA_test_categ_Po_DEPENDENCIES) 
        @rm -f test-categ_Po$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Po_OBJECTS) $(test_categ_Po_LDADD) $(LIBS)
 unictype/test-categ_Ps.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Ps$(EXEEXT): $(test_categ_Ps_OBJECTS) $(test_categ_Ps_DEPENDENCIES) 
+
+test-categ_Ps$(EXEEXT): $(test_categ_Ps_OBJECTS) $(test_categ_Ps_DEPENDENCIES) $(EXTRA_test_categ_Ps_DEPENDENCIES) 
        @rm -f test-categ_Ps$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Ps_OBJECTS) $(test_categ_Ps_LDADD) $(LIBS)
 unictype/test-categ_S.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_S$(EXEEXT): $(test_categ_S_OBJECTS) $(test_categ_S_DEPENDENCIES) 
+
+test-categ_S$(EXEEXT): $(test_categ_S_OBJECTS) $(test_categ_S_DEPENDENCIES) $(EXTRA_test_categ_S_DEPENDENCIES) 
        @rm -f test-categ_S$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_S_OBJECTS) $(test_categ_S_LDADD) $(LIBS)
 unictype/test-categ_Sc.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Sc$(EXEEXT): $(test_categ_Sc_OBJECTS) $(test_categ_Sc_DEPENDENCIES) 
+
+test-categ_Sc$(EXEEXT): $(test_categ_Sc_OBJECTS) $(test_categ_Sc_DEPENDENCIES) $(EXTRA_test_categ_Sc_DEPENDENCIES) 
        @rm -f test-categ_Sc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Sc_OBJECTS) $(test_categ_Sc_LDADD) $(LIBS)
 unictype/test-categ_Sk.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Sk$(EXEEXT): $(test_categ_Sk_OBJECTS) $(test_categ_Sk_DEPENDENCIES) 
+
+test-categ_Sk$(EXEEXT): $(test_categ_Sk_OBJECTS) $(test_categ_Sk_DEPENDENCIES) $(EXTRA_test_categ_Sk_DEPENDENCIES) 
        @rm -f test-categ_Sk$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Sk_OBJECTS) $(test_categ_Sk_LDADD) $(LIBS)
 unictype/test-categ_Sm.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Sm$(EXEEXT): $(test_categ_Sm_OBJECTS) $(test_categ_Sm_DEPENDENCIES) 
+
+test-categ_Sm$(EXEEXT): $(test_categ_Sm_OBJECTS) $(test_categ_Sm_DEPENDENCIES) $(EXTRA_test_categ_Sm_DEPENDENCIES) 
        @rm -f test-categ_Sm$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Sm_OBJECTS) $(test_categ_Sm_LDADD) $(LIBS)
 unictype/test-categ_So.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_So$(EXEEXT): $(test_categ_So_OBJECTS) $(test_categ_So_DEPENDENCIES) 
+
+test-categ_So$(EXEEXT): $(test_categ_So_OBJECTS) $(test_categ_So_DEPENDENCIES) $(EXTRA_test_categ_So_DEPENDENCIES) 
        @rm -f test-categ_So$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_So_OBJECTS) $(test_categ_So_LDADD) $(LIBS)
 unictype/test-categ_Z.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Z$(EXEEXT): $(test_categ_Z_OBJECTS) $(test_categ_Z_DEPENDENCIES) 
+
+test-categ_Z$(EXEEXT): $(test_categ_Z_OBJECTS) $(test_categ_Z_DEPENDENCIES) $(EXTRA_test_categ_Z_DEPENDENCIES) 
        @rm -f test-categ_Z$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Z_OBJECTS) $(test_categ_Z_LDADD) $(LIBS)
 unictype/test-categ_Zl.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Zl$(EXEEXT): $(test_categ_Zl_OBJECTS) $(test_categ_Zl_DEPENDENCIES) 
+
+test-categ_Zl$(EXEEXT): $(test_categ_Zl_OBJECTS) $(test_categ_Zl_DEPENDENCIES) $(EXTRA_test_categ_Zl_DEPENDENCIES) 
        @rm -f test-categ_Zl$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Zl_OBJECTS) $(test_categ_Zl_LDADD) $(LIBS)
 unictype/test-categ_Zp.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Zp$(EXEEXT): $(test_categ_Zp_OBJECTS) $(test_categ_Zp_DEPENDENCIES) 
+
+test-categ_Zp$(EXEEXT): $(test_categ_Zp_OBJECTS) $(test_categ_Zp_DEPENDENCIES) $(EXTRA_test_categ_Zp_DEPENDENCIES) 
        @rm -f test-categ_Zp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Zp_OBJECTS) $(test_categ_Zp_LDADD) $(LIBS)
 unictype/test-categ_Zs.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_Zs$(EXEEXT): $(test_categ_Zs_OBJECTS) $(test_categ_Zs_DEPENDENCIES) 
+
+test-categ_Zs$(EXEEXT): $(test_categ_Zs_OBJECTS) $(test_categ_Zs_DEPENDENCIES) $(EXTRA_test_categ_Zs_DEPENDENCIES) 
        @rm -f test-categ_Zs$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_Zs_OBJECTS) $(test_categ_Zs_LDADD) $(LIBS)
 unictype/test-categ_and.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_and$(EXEEXT): $(test_categ_and_OBJECTS) $(test_categ_and_DEPENDENCIES) 
+
+test-categ_and$(EXEEXT): $(test_categ_and_OBJECTS) $(test_categ_and_DEPENDENCIES) $(EXTRA_test_categ_and_DEPENDENCIES) 
        @rm -f test-categ_and$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_and_OBJECTS) $(test_categ_and_LDADD) $(LIBS)
 unictype/test-categ_and_not.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_and_not$(EXEEXT): $(test_categ_and_not_OBJECTS) $(test_categ_and_not_DEPENDENCIES) 
+
+test-categ_and_not$(EXEEXT): $(test_categ_and_not_OBJECTS) $(test_categ_and_not_DEPENDENCIES) $(EXTRA_test_categ_and_not_DEPENDENCIES) 
        @rm -f test-categ_and_not$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_and_not_OBJECTS) $(test_categ_and_not_LDADD) $(LIBS)
 unictype/test-categ_byname.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_byname$(EXEEXT): $(test_categ_byname_OBJECTS) $(test_categ_byname_DEPENDENCIES) 
+
+test-categ_byname$(EXEEXT): $(test_categ_byname_OBJECTS) $(test_categ_byname_DEPENDENCIES) $(EXTRA_test_categ_byname_DEPENDENCIES) 
        @rm -f test-categ_byname$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_byname_OBJECTS) $(test_categ_byname_LDADD) $(LIBS)
+unictype/test-categ_longname.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-categ_longname$(EXEEXT): $(test_categ_longname_OBJECTS) $(test_categ_longname_DEPENDENCIES) $(EXTRA_test_categ_longname_DEPENDENCIES) 
+       @rm -f test-categ_longname$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_categ_longname_OBJECTS) $(test_categ_longname_LDADD) $(LIBS)
 unictype/test-categ_name.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_name$(EXEEXT): $(test_categ_name_OBJECTS) $(test_categ_name_DEPENDENCIES) 
+
+test-categ_name$(EXEEXT): $(test_categ_name_OBJECTS) $(test_categ_name_DEPENDENCIES) $(EXTRA_test_categ_name_DEPENDENCIES) 
        @rm -f test-categ_name$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_name_OBJECTS) $(test_categ_name_LDADD) $(LIBS)
 unictype/test-categ_none.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_none$(EXEEXT): $(test_categ_none_OBJECTS) $(test_categ_none_DEPENDENCIES) 
+
+test-categ_none$(EXEEXT): $(test_categ_none_OBJECTS) $(test_categ_none_DEPENDENCIES) $(EXTRA_test_categ_none_DEPENDENCIES) 
        @rm -f test-categ_none$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_none_OBJECTS) $(test_categ_none_LDADD) $(LIBS)
 unictype/test-categ_of.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_of$(EXEEXT): $(test_categ_of_OBJECTS) $(test_categ_of_DEPENDENCIES) 
+
+test-categ_of$(EXEEXT): $(test_categ_of_OBJECTS) $(test_categ_of_DEPENDENCIES) $(EXTRA_test_categ_of_DEPENDENCIES) 
        @rm -f test-categ_of$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_of_OBJECTS) $(test_categ_of_LDADD) $(LIBS)
 unictype/test-categ_or.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_or$(EXEEXT): $(test_categ_or_OBJECTS) $(test_categ_or_DEPENDENCIES) 
+
+test-categ_or$(EXEEXT): $(test_categ_or_OBJECTS) $(test_categ_or_DEPENDENCIES) $(EXTRA_test_categ_or_DEPENDENCIES) 
        @rm -f test-categ_or$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_or_OBJECTS) $(test_categ_or_LDADD) $(LIBS)
 unictype/test-categ_test_withtable.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-categ_test_withtable$(EXEEXT): $(test_categ_test_withtable_OBJECTS) $(test_categ_test_withtable_DEPENDENCIES) 
+
+test-categ_test_withtable$(EXEEXT): $(test_categ_test_withtable_OBJECTS) $(test_categ_test_withtable_DEPENDENCIES) $(EXTRA_test_categ_test_withtable_DEPENDENCIES) 
        @rm -f test-categ_test_withtable$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_categ_test_withtable_OBJECTS) $(test_categ_test_withtable_LDADD) $(LIBS)
-unictype/test-combining.$(OBJEXT): unictype/$(am__dirstamp) \
+unictype/test-combiningclass.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-combiningclass$(EXEEXT): $(test_combiningclass_OBJECTS) $(test_combiningclass_DEPENDENCIES) $(EXTRA_test_combiningclass_DEPENDENCIES) 
+       @rm -f test-combiningclass$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_combiningclass_OBJECTS) $(test_combiningclass_LDADD) $(LIBS)
+unictype/test-combiningclass_byname.$(OBJEXT):  \
+       unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-combiningclass_byname$(EXEEXT): $(test_combiningclass_byname_OBJECTS) $(test_combiningclass_byname_DEPENDENCIES) $(EXTRA_test_combiningclass_byname_DEPENDENCIES) 
+       @rm -f test-combiningclass_byname$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_combiningclass_byname_OBJECTS) $(test_combiningclass_byname_LDADD) $(LIBS)
+unictype/test-combiningclass_longname.$(OBJEXT):  \
+       unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-combiningclass_longname$(EXEEXT): $(test_combiningclass_longname_OBJECTS) $(test_combiningclass_longname_DEPENDENCIES) $(EXTRA_test_combiningclass_longname_DEPENDENCIES) 
+       @rm -f test-combiningclass_longname$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_combiningclass_longname_OBJECTS) $(test_combiningclass_longname_LDADD) $(LIBS)
+unictype/test-combiningclass_name.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-combining$(EXEEXT): $(test_combining_OBJECTS) $(test_combining_DEPENDENCIES) 
-       @rm -f test-combining$(EXEEXT)
-       $(AM_V_CCLD)$(LINK) $(test_combining_OBJECTS) $(test_combining_LDADD) $(LIBS)
+
+test-combiningclass_name$(EXEEXT): $(test_combiningclass_name_OBJECTS) $(test_combiningclass_name_DEPENDENCIES) $(EXTRA_test_combiningclass_name_DEPENDENCIES) 
+       @rm -f test-combiningclass_name$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_combiningclass_name_OBJECTS) $(test_combiningclass_name_LDADD) $(LIBS)
 uninorm/test-compat-decomposition.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-compat-decomposition$(EXEEXT): $(test_compat_decomposition_OBJECTS) $(test_compat_decomposition_DEPENDENCIES) 
+
+test-compat-decomposition$(EXEEXT): $(test_compat_decomposition_OBJECTS) $(test_compat_decomposition_DEPENDENCIES) $(EXTRA_test_compat_decomposition_DEPENDENCIES) 
        @rm -f test-compat-decomposition$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_compat_decomposition_OBJECTS) $(test_compat_decomposition_LDADD) $(LIBS)
 uninorm/test-composition.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-composition$(EXEEXT): $(test_composition_OBJECTS) $(test_composition_DEPENDENCIES) 
+
+test-composition$(EXEEXT): $(test_composition_OBJECTS) $(test_composition_DEPENDENCIES) $(EXTRA_test_composition_DEPENDENCIES) 
        @rm -f test-composition$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_composition_OBJECTS) $(test_composition_LDADD) $(LIBS)
 unictype/test-ctype_alnum.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_alnum$(EXEEXT): $(test_ctype_alnum_OBJECTS) $(test_ctype_alnum_DEPENDENCIES) 
+
+test-ctype_alnum$(EXEEXT): $(test_ctype_alnum_OBJECTS) $(test_ctype_alnum_DEPENDENCIES) $(EXTRA_test_ctype_alnum_DEPENDENCIES) 
        @rm -f test-ctype_alnum$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_alnum_OBJECTS) $(test_ctype_alnum_LDADD) $(LIBS)
 unictype/test-ctype_alpha.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_alpha$(EXEEXT): $(test_ctype_alpha_OBJECTS) $(test_ctype_alpha_DEPENDENCIES) 
+
+test-ctype_alpha$(EXEEXT): $(test_ctype_alpha_OBJECTS) $(test_ctype_alpha_DEPENDENCIES) $(EXTRA_test_ctype_alpha_DEPENDENCIES) 
        @rm -f test-ctype_alpha$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_alpha_OBJECTS) $(test_ctype_alpha_LDADD) $(LIBS)
 unictype/test-ctype_blank.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_blank$(EXEEXT): $(test_ctype_blank_OBJECTS) $(test_ctype_blank_DEPENDENCIES) 
+
+test-ctype_blank$(EXEEXT): $(test_ctype_blank_OBJECTS) $(test_ctype_blank_DEPENDENCIES) $(EXTRA_test_ctype_blank_DEPENDENCIES) 
        @rm -f test-ctype_blank$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_blank_OBJECTS) $(test_ctype_blank_LDADD) $(LIBS)
 unictype/test-ctype_cntrl.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_cntrl$(EXEEXT): $(test_ctype_cntrl_OBJECTS) $(test_ctype_cntrl_DEPENDENCIES) 
+
+test-ctype_cntrl$(EXEEXT): $(test_ctype_cntrl_OBJECTS) $(test_ctype_cntrl_DEPENDENCIES) $(EXTRA_test_ctype_cntrl_DEPENDENCIES) 
        @rm -f test-ctype_cntrl$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_cntrl_OBJECTS) $(test_ctype_cntrl_LDADD) $(LIBS)
 unictype/test-ctype_digit.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_digit$(EXEEXT): $(test_ctype_digit_OBJECTS) $(test_ctype_digit_DEPENDENCIES) 
+
+test-ctype_digit$(EXEEXT): $(test_ctype_digit_OBJECTS) $(test_ctype_digit_DEPENDENCIES) $(EXTRA_test_ctype_digit_DEPENDENCIES) 
        @rm -f test-ctype_digit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_digit_OBJECTS) $(test_ctype_digit_LDADD) $(LIBS)
 unictype/test-ctype_graph.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_graph$(EXEEXT): $(test_ctype_graph_OBJECTS) $(test_ctype_graph_DEPENDENCIES) 
+
+test-ctype_graph$(EXEEXT): $(test_ctype_graph_OBJECTS) $(test_ctype_graph_DEPENDENCIES) $(EXTRA_test_ctype_graph_DEPENDENCIES) 
        @rm -f test-ctype_graph$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_graph_OBJECTS) $(test_ctype_graph_LDADD) $(LIBS)
 unictype/test-ctype_lower.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_lower$(EXEEXT): $(test_ctype_lower_OBJECTS) $(test_ctype_lower_DEPENDENCIES) 
+
+test-ctype_lower$(EXEEXT): $(test_ctype_lower_OBJECTS) $(test_ctype_lower_DEPENDENCIES) $(EXTRA_test_ctype_lower_DEPENDENCIES) 
        @rm -f test-ctype_lower$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_lower_OBJECTS) $(test_ctype_lower_LDADD) $(LIBS)
 unictype/test-ctype_print.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_print$(EXEEXT): $(test_ctype_print_OBJECTS) $(test_ctype_print_DEPENDENCIES) 
+
+test-ctype_print$(EXEEXT): $(test_ctype_print_OBJECTS) $(test_ctype_print_DEPENDENCIES) $(EXTRA_test_ctype_print_DEPENDENCIES) 
        @rm -f test-ctype_print$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_print_OBJECTS) $(test_ctype_print_LDADD) $(LIBS)
 unictype/test-ctype_punct.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_punct$(EXEEXT): $(test_ctype_punct_OBJECTS) $(test_ctype_punct_DEPENDENCIES) 
+
+test-ctype_punct$(EXEEXT): $(test_ctype_punct_OBJECTS) $(test_ctype_punct_DEPENDENCIES) $(EXTRA_test_ctype_punct_DEPENDENCIES) 
        @rm -f test-ctype_punct$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_punct_OBJECTS) $(test_ctype_punct_LDADD) $(LIBS)
 unictype/test-ctype_space.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_space$(EXEEXT): $(test_ctype_space_OBJECTS) $(test_ctype_space_DEPENDENCIES) 
+
+test-ctype_space$(EXEEXT): $(test_ctype_space_OBJECTS) $(test_ctype_space_DEPENDENCIES) $(EXTRA_test_ctype_space_DEPENDENCIES) 
        @rm -f test-ctype_space$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_space_OBJECTS) $(test_ctype_space_LDADD) $(LIBS)
 unictype/test-ctype_upper.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_upper$(EXEEXT): $(test_ctype_upper_OBJECTS) $(test_ctype_upper_DEPENDENCIES) 
+
+test-ctype_upper$(EXEEXT): $(test_ctype_upper_OBJECTS) $(test_ctype_upper_DEPENDENCIES) $(EXTRA_test_ctype_upper_DEPENDENCIES) 
        @rm -f test-ctype_upper$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_upper_OBJECTS) $(test_ctype_upper_LDADD) $(LIBS)
 unictype/test-ctype_xdigit.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-ctype_xdigit$(EXEEXT): $(test_ctype_xdigit_OBJECTS) $(test_ctype_xdigit_DEPENDENCIES) 
+
+test-ctype_xdigit$(EXEEXT): $(test_ctype_xdigit_OBJECTS) $(test_ctype_xdigit_DEPENDENCIES) $(EXTRA_test_ctype_xdigit_DEPENDENCIES) 
        @rm -f test-ctype_xdigit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ctype_xdigit_OBJECTS) $(test_ctype_xdigit_LDADD) $(LIBS)
 unictype/test-decdigit.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-decdigit$(EXEEXT): $(test_decdigit_OBJECTS) $(test_decdigit_DEPENDENCIES) 
+
+test-decdigit$(EXEEXT): $(test_decdigit_OBJECTS) $(test_decdigit_DEPENDENCIES) $(EXTRA_test_decdigit_DEPENDENCIES) 
        @rm -f test-decdigit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_decdigit_OBJECTS) $(test_decdigit_LDADD) $(LIBS)
 uninorm/test-decomposing-form.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-decomposing-form$(EXEEXT): $(test_decomposing_form_OBJECTS) $(test_decomposing_form_DEPENDENCIES) 
+
+test-decomposing-form$(EXEEXT): $(test_decomposing_form_OBJECTS) $(test_decomposing_form_DEPENDENCIES) $(EXTRA_test_decomposing_form_DEPENDENCIES) 
        @rm -f test-decomposing-form$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_decomposing_form_OBJECTS) $(test_decomposing_form_LDADD) $(LIBS)
 uninorm/test-decomposition.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-decomposition$(EXEEXT): $(test_decomposition_OBJECTS) $(test_decomposition_DEPENDENCIES) 
+
+test-decomposition$(EXEEXT): $(test_decomposition_OBJECTS) $(test_decomposition_DEPENDENCIES) $(EXTRA_test_decomposition_DEPENDENCIES) 
        @rm -f test-decomposition$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_decomposition_OBJECTS) $(test_decomposition_LDADD) $(LIBS)
 unictype/test-digit.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-digit$(EXEEXT): $(test_digit_OBJECTS) $(test_digit_DEPENDENCIES) 
+
+test-digit$(EXEEXT): $(test_digit_OBJECTS) $(test_digit_DEPENDENCIES) $(EXTRA_test_digit_DEPENDENCIES) 
        @rm -f test-digit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_digit_OBJECTS) $(test_digit_LDADD) $(LIBS)
-test-environ$(EXEEXT): $(test_environ_OBJECTS) $(test_environ_DEPENDENCIES) 
+
+test-environ$(EXEEXT): $(test_environ_OBJECTS) $(test_environ_DEPENDENCIES) $(EXTRA_test_environ_DEPENDENCIES) 
        @rm -f test-environ$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_environ_OBJECTS) $(test_environ_LDADD) $(LIBS)
-test-errno$(EXEEXT): $(test_errno_OBJECTS) $(test_errno_DEPENDENCIES) 
+
+test-errno$(EXEEXT): $(test_errno_OBJECTS) $(test_errno_DEPENDENCIES) $(EXTRA_test_errno_DEPENDENCIES) 
        @rm -f test-errno$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_errno_OBJECTS) $(test_errno_LDADD) $(LIBS)
-test-frexpl-nolibm$(EXEEXT): $(test_frexpl_nolibm_OBJECTS) $(test_frexpl_nolibm_DEPENDENCIES) 
+
+test-fdopen$(EXEEXT): $(test_fdopen_OBJECTS) $(test_fdopen_DEPENDENCIES) $(EXTRA_test_fdopen_DEPENDENCIES) 
+       @rm -f test-fdopen$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_fdopen_OBJECTS) $(test_fdopen_LDADD) $(LIBS)
+
+test-fgetc$(EXEEXT): $(test_fgetc_OBJECTS) $(test_fgetc_DEPENDENCIES) $(EXTRA_test_fgetc_DEPENDENCIES) 
+       @rm -f test-fgetc$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_fgetc_OBJECTS) $(test_fgetc_LDADD) $(LIBS)
+
+test-float$(EXEEXT): $(test_float_OBJECTS) $(test_float_DEPENDENCIES) $(EXTRA_test_float_DEPENDENCIES) 
+       @rm -f test-float$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_float_OBJECTS) $(test_float_LDADD) $(LIBS)
+
+test-fputc$(EXEEXT): $(test_fputc_OBJECTS) $(test_fputc_DEPENDENCIES) $(EXTRA_test_fputc_DEPENDENCIES) 
+       @rm -f test-fputc$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_fputc_OBJECTS) $(test_fputc_LDADD) $(LIBS)
+
+test-fread$(EXEEXT): $(test_fread_OBJECTS) $(test_fread_DEPENDENCIES) $(EXTRA_test_fread_DEPENDENCIES) 
+       @rm -f test-fread$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_fread_OBJECTS) $(test_fread_LDADD) $(LIBS)
+
+test-frexp-nolibm$(EXEEXT): $(test_frexp_nolibm_OBJECTS) $(test_frexp_nolibm_DEPENDENCIES) $(EXTRA_test_frexp_nolibm_DEPENDENCIES) 
+       @rm -f test-frexp-nolibm$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_frexp_nolibm_OBJECTS) $(test_frexp_nolibm_LDADD) $(LIBS)
+
+test-frexpl-nolibm$(EXEEXT): $(test_frexpl_nolibm_OBJECTS) $(test_frexpl_nolibm_DEPENDENCIES) $(EXTRA_test_frexpl_nolibm_DEPENDENCIES) 
        @rm -f test-frexpl-nolibm$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_frexpl_nolibm_OBJECTS) $(test_frexpl_nolibm_LDADD) $(LIBS)
-test-fseterr$(EXEEXT): $(test_fseterr_OBJECTS) $(test_fseterr_DEPENDENCIES) 
+
+test-fseterr$(EXEEXT): $(test_fseterr_OBJECTS) $(test_fseterr_DEPENDENCIES) $(EXTRA_test_fseterr_DEPENDENCIES) 
        @rm -f test-fseterr$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_fseterr_OBJECTS) $(test_fseterr_LDADD) $(LIBS)
-test-iconv$(EXEEXT): $(test_iconv_OBJECTS) $(test_iconv_DEPENDENCIES) 
+
+test-fwrite$(EXEEXT): $(test_fwrite_OBJECTS) $(test_fwrite_DEPENDENCIES) $(EXTRA_test_fwrite_DEPENDENCIES) 
+       @rm -f test-fwrite$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_fwrite_OBJECTS) $(test_fwrite_LDADD) $(LIBS)
+
+test-iconv$(EXEEXT): $(test_iconv_OBJECTS) $(test_iconv_DEPENDENCIES) $(EXTRA_test_iconv_DEPENDENCIES) 
        @rm -f test-iconv$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_iconv_OBJECTS) $(test_iconv_LDADD) $(LIBS)
-test-iconv-h$(EXEEXT): $(test_iconv_h_OBJECTS) $(test_iconv_h_DEPENDENCIES) 
+
+test-iconv-h$(EXEEXT): $(test_iconv_h_OBJECTS) $(test_iconv_h_DEPENDENCIES) $(EXTRA_test_iconv_h_DEPENDENCIES) 
        @rm -f test-iconv-h$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_iconv_h_OBJECTS) $(test_iconv_h_LDADD) $(LIBS)
 unicase/test-ignorable.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-ignorable$(EXEEXT): $(test_ignorable_OBJECTS) $(test_ignorable_DEPENDENCIES) 
+
+test-ignorable$(EXEEXT): $(test_ignorable_OBJECTS) $(test_ignorable_DEPENDENCIES) $(EXTRA_test_ignorable_DEPENDENCIES) 
        @rm -f test-ignorable$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ignorable_OBJECTS) $(test_ignorable_LDADD) $(LIBS)
-test-isnand-nolibm$(EXEEXT): $(test_isnand_nolibm_OBJECTS) $(test_isnand_nolibm_DEPENDENCIES) 
+
+test-intprops$(EXEEXT): $(test_intprops_OBJECTS) $(test_intprops_DEPENDENCIES) $(EXTRA_test_intprops_DEPENDENCIES) 
+       @rm -f test-intprops$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_intprops_OBJECTS) $(test_intprops_LDADD) $(LIBS)
+
+test-inttypes$(EXEEXT): $(test_inttypes_OBJECTS) $(test_inttypes_DEPENDENCIES) $(EXTRA_test_inttypes_DEPENDENCIES) 
+       @rm -f test-inttypes$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_inttypes_OBJECTS) $(test_inttypes_LDADD) $(LIBS)
+
+test-isnand-nolibm$(EXEEXT): $(test_isnand_nolibm_OBJECTS) $(test_isnand_nolibm_DEPENDENCIES) $(EXTRA_test_isnand_nolibm_DEPENDENCIES) 
        @rm -f test-isnand-nolibm$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_isnand_nolibm_OBJECTS) $(test_isnand_nolibm_LDADD) $(LIBS)
-test-isnanf-nolibm$(EXEEXT): $(test_isnanf_nolibm_OBJECTS) $(test_isnanf_nolibm_DEPENDENCIES) 
+
+test-isnanf-nolibm$(EXEEXT): $(test_isnanf_nolibm_OBJECTS) $(test_isnanf_nolibm_DEPENDENCIES) $(EXTRA_test_isnanf_nolibm_DEPENDENCIES) 
        @rm -f test-isnanf-nolibm$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_isnanf_nolibm_OBJECTS) $(test_isnanf_nolibm_LDADD) $(LIBS)
-test-isnanl-nolibm$(EXEEXT): $(test_isnanl_nolibm_OBJECTS) $(test_isnanl_nolibm_DEPENDENCIES) 
+
+test-isnanl-nolibm$(EXEEXT): $(test_isnanl_nolibm_OBJECTS) $(test_isnanl_nolibm_DEPENDENCIES) $(EXTRA_test_isnanl_nolibm_DEPENDENCIES) 
        @rm -f test-isnanl-nolibm$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_isnanl_nolibm_OBJECTS) $(test_isnanl_nolibm_LDADD) $(LIBS)
-test-locale$(EXEEXT): $(test_locale_OBJECTS) $(test_locale_DEPENDENCIES) 
+
+test-iswblank$(EXEEXT): $(test_iswblank_OBJECTS) $(test_iswblank_DEPENDENCIES) $(EXTRA_test_iswblank_DEPENDENCIES) 
+       @rm -f test-iswblank$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_iswblank_OBJECTS) $(test_iswblank_LDADD) $(LIBS)
+unictype/test-joininggroup_byname.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-joininggroup_byname$(EXEEXT): $(test_joininggroup_byname_OBJECTS) $(test_joininggroup_byname_DEPENDENCIES) $(EXTRA_test_joininggroup_byname_DEPENDENCIES) 
+       @rm -f test-joininggroup_byname$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_joininggroup_byname_OBJECTS) $(test_joininggroup_byname_LDADD) $(LIBS)
+unictype/test-joininggroup_name.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-joininggroup_name$(EXEEXT): $(test_joininggroup_name_OBJECTS) $(test_joininggroup_name_DEPENDENCIES) $(EXTRA_test_joininggroup_name_DEPENDENCIES) 
+       @rm -f test-joininggroup_name$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_joininggroup_name_OBJECTS) $(test_joininggroup_name_LDADD) $(LIBS)
+unictype/test-joininggroup_of.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-joininggroup_of$(EXEEXT): $(test_joininggroup_of_OBJECTS) $(test_joininggroup_of_DEPENDENCIES) $(EXTRA_test_joininggroup_of_DEPENDENCIES) 
+       @rm -f test-joininggroup_of$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_joininggroup_of_OBJECTS) $(test_joininggroup_of_LDADD) $(LIBS)
+unictype/test-joiningtype_byname.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-joiningtype_byname$(EXEEXT): $(test_joiningtype_byname_OBJECTS) $(test_joiningtype_byname_DEPENDENCIES) $(EXTRA_test_joiningtype_byname_DEPENDENCIES) 
+       @rm -f test-joiningtype_byname$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_joiningtype_byname_OBJECTS) $(test_joiningtype_byname_LDADD) $(LIBS)
+unictype/test-joiningtype_longname.$(OBJEXT):  \
+       unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-joiningtype_longname$(EXEEXT): $(test_joiningtype_longname_OBJECTS) $(test_joiningtype_longname_DEPENDENCIES) $(EXTRA_test_joiningtype_longname_DEPENDENCIES) 
+       @rm -f test-joiningtype_longname$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_joiningtype_longname_OBJECTS) $(test_joiningtype_longname_LDADD) $(LIBS)
+unictype/test-joiningtype_name.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-joiningtype_name$(EXEEXT): $(test_joiningtype_name_OBJECTS) $(test_joiningtype_name_DEPENDENCIES) $(EXTRA_test_joiningtype_name_DEPENDENCIES) 
+       @rm -f test-joiningtype_name$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_joiningtype_name_OBJECTS) $(test_joiningtype_name_LDADD) $(LIBS)
+unictype/test-joiningtype_of.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-joiningtype_of$(EXEEXT): $(test_joiningtype_of_OBJECTS) $(test_joiningtype_of_DEPENDENCIES) $(EXTRA_test_joiningtype_of_DEPENDENCIES) 
+       @rm -f test-joiningtype_of$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_joiningtype_of_OBJECTS) $(test_joiningtype_of_LDADD) $(LIBS)
+
+test-locale$(EXEEXT): $(test_locale_OBJECTS) $(test_locale_DEPENDENCIES) $(EXTRA_test_locale_DEPENDENCIES) 
        @rm -f test-locale$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_locale_OBJECTS) $(test_locale_LDADD) $(LIBS)
 unicase/test-locale-language.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-locale-language$(EXEEXT): $(test_locale_language_OBJECTS) $(test_locale_language_DEPENDENCIES) 
+
+test-locale-language$(EXEEXT): $(test_locale_language_OBJECTS) $(test_locale_language_DEPENDENCIES) $(EXTRA_test_locale_language_DEPENDENCIES) 
        @rm -f test-locale-language$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_locale_language_OBJECTS) $(test_locale_language_LDADD) $(LIBS)
-test-localename$(EXEEXT): $(test_localename_OBJECTS) $(test_localename_DEPENDENCIES) 
+
+test-localename$(EXEEXT): $(test_localename_OBJECTS) $(test_localename_DEPENDENCIES) $(EXTRA_test_localename_DEPENDENCIES) 
        @rm -f test-localename$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_localename_OBJECTS) $(test_localename_LDADD) $(LIBS)
-test-lock$(EXEEXT): $(test_lock_OBJECTS) $(test_lock_DEPENDENCIES) 
+
+test-lock$(EXEEXT): $(test_lock_OBJECTS) $(test_lock_DEPENDENCIES) $(EXTRA_test_lock_DEPENDENCIES) 
        @rm -f test-lock$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_lock_OBJECTS) $(test_lock_LDADD) $(LIBS)
-test-malloca$(EXEEXT): $(test_malloca_OBJECTS) $(test_malloca_DEPENDENCIES) 
+
+test-malloca$(EXEEXT): $(test_malloca_OBJECTS) $(test_malloca_DEPENDENCIES) $(EXTRA_test_malloca_DEPENDENCIES) 
        @rm -f test-malloca$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_malloca_OBJECTS) $(test_malloca_LDADD) $(LIBS)
-test-math$(EXEEXT): $(test_math_OBJECTS) $(test_math_DEPENDENCIES) 
+
+test-math$(EXEEXT): $(test_math_OBJECTS) $(test_math_DEPENDENCIES) $(EXTRA_test_math_DEPENDENCIES) 
        @rm -f test-math$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_math_OBJECTS) $(test_math_LDADD) $(LIBS)
-test-mbrtowc$(EXEEXT): $(test_mbrtowc_OBJECTS) $(test_mbrtowc_DEPENDENCIES) 
+
+test-mbrtowc$(EXEEXT): $(test_mbrtowc_OBJECTS) $(test_mbrtowc_DEPENDENCIES) $(EXTRA_test_mbrtowc_DEPENDENCIES) 
        @rm -f test-mbrtowc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_mbrtowc_OBJECTS) $(test_mbrtowc_LDADD) $(LIBS)
-test-mbsinit$(EXEEXT): $(test_mbsinit_OBJECTS) $(test_mbsinit_DEPENDENCIES) 
+
+test-mbrtowc-w32$(EXEEXT): $(test_mbrtowc_w32_OBJECTS) $(test_mbrtowc_w32_DEPENDENCIES) $(EXTRA_test_mbrtowc_w32_DEPENDENCIES) 
+       @rm -f test-mbrtowc-w32$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_mbrtowc_w32_OBJECTS) $(test_mbrtowc_w32_LDADD) $(LIBS)
+
+test-mbsinit$(EXEEXT): $(test_mbsinit_OBJECTS) $(test_mbsinit_DEPENDENCIES) $(EXTRA_test_mbsinit_DEPENDENCIES) 
        @rm -f test-mbsinit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_mbsinit_OBJECTS) $(test_mbsinit_LDADD) $(LIBS)
-test-memchr$(EXEEXT): $(test_memchr_OBJECTS) $(test_memchr_DEPENDENCIES) 
+
+test-memchr$(EXEEXT): $(test_memchr_OBJECTS) $(test_memchr_DEPENDENCIES) $(EXTRA_test_memchr_DEPENDENCIES) 
        @rm -f test-memchr$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_memchr_OBJECTS) $(test_memchr_LDADD) $(LIBS)
 unictype/test-mirror.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-mirror$(EXEEXT): $(test_mirror_OBJECTS) $(test_mirror_DEPENDENCIES) 
+
+test-mirror$(EXEEXT): $(test_mirror_OBJECTS) $(test_mirror_DEPENDENCIES) $(EXTRA_test_mirror_DEPENDENCIES) 
        @rm -f test-mirror$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_mirror_OBJECTS) $(test_mirror_LDADD) $(LIBS)
 uninorm/test-nfc.$(OBJEXT): uninorm/$(am__dirstamp) \
@@ -5597,7 +6862,8 @@ uninorm/test-u16-nfc.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
 uninorm/test-u32-nfc.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-nfc$(EXEEXT): $(test_nfc_OBJECTS) $(test_nfc_DEPENDENCIES) 
+
+test-nfc$(EXEEXT): $(test_nfc_OBJECTS) $(test_nfc_DEPENDENCIES) $(EXTRA_test_nfc_DEPENDENCIES) 
        @rm -f test-nfc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_nfc_OBJECTS) $(test_nfc_LDADD) $(LIBS)
 uninorm/test-nfd.$(OBJEXT): uninorm/$(am__dirstamp) \
@@ -5608,7 +6874,8 @@ uninorm/test-u16-nfd.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
 uninorm/test-u32-nfd.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-nfd$(EXEEXT): $(test_nfd_OBJECTS) $(test_nfd_DEPENDENCIES) 
+
+test-nfd$(EXEEXT): $(test_nfd_OBJECTS) $(test_nfd_DEPENDENCIES) $(EXTRA_test_nfd_DEPENDENCIES) 
        @rm -f test-nfd$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_nfd_OBJECTS) $(test_nfd_LDADD) $(LIBS)
 uninorm/test-nfkc.$(OBJEXT): uninorm/$(am__dirstamp) \
@@ -5619,7 +6886,8 @@ uninorm/test-u16-nfkc.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
 uninorm/test-u32-nfkc.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-nfkc$(EXEEXT): $(test_nfkc_OBJECTS) $(test_nfkc_DEPENDENCIES) 
+
+test-nfkc$(EXEEXT): $(test_nfkc_OBJECTS) $(test_nfkc_DEPENDENCIES) $(EXTRA_test_nfkc_DEPENDENCIES) 
        @rm -f test-nfkc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_nfkc_OBJECTS) $(test_nfkc_LDADD) $(LIBS)
 uninorm/test-nfkd.$(OBJEXT): uninorm/$(am__dirstamp) \
@@ -5630,483 +6898,654 @@ uninorm/test-u16-nfkd.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
 uninorm/test-u32-nfkd.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-nfkd$(EXEEXT): $(test_nfkd_OBJECTS) $(test_nfkd_DEPENDENCIES) 
+
+test-nfkd$(EXEEXT): $(test_nfkd_OBJECTS) $(test_nfkd_DEPENDENCIES) $(EXTRA_test_nfkd_DEPENDENCIES) 
        @rm -f test-nfkd$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_nfkd_OBJECTS) $(test_nfkd_LDADD) $(LIBS)
 unictype/test-numeric.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-numeric$(EXEEXT): $(test_numeric_OBJECTS) $(test_numeric_DEPENDENCIES) 
+
+test-numeric$(EXEEXT): $(test_numeric_OBJECTS) $(test_numeric_DEPENDENCIES) $(EXTRA_test_numeric_DEPENDENCIES) 
        @rm -f test-numeric$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_numeric_OBJECTS) $(test_numeric_LDADD) $(LIBS)
 unictype/test-pr_alphabetic.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_alphabetic$(EXEEXT): $(test_pr_alphabetic_OBJECTS) $(test_pr_alphabetic_DEPENDENCIES) 
+
+test-pr_alphabetic$(EXEEXT): $(test_pr_alphabetic_OBJECTS) $(test_pr_alphabetic_DEPENDENCIES) $(EXTRA_test_pr_alphabetic_DEPENDENCIES) 
        @rm -f test-pr_alphabetic$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_alphabetic_OBJECTS) $(test_pr_alphabetic_LDADD) $(LIBS)
 unictype/test-pr_ascii_hex_digit.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_ascii_hex_digit$(EXEEXT): $(test_pr_ascii_hex_digit_OBJECTS) $(test_pr_ascii_hex_digit_DEPENDENCIES) 
+
+test-pr_ascii_hex_digit$(EXEEXT): $(test_pr_ascii_hex_digit_OBJECTS) $(test_pr_ascii_hex_digit_DEPENDENCIES) $(EXTRA_test_pr_ascii_hex_digit_DEPENDENCIES) 
        @rm -f test-pr_ascii_hex_digit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_ascii_hex_digit_OBJECTS) $(test_pr_ascii_hex_digit_LDADD) $(LIBS)
 unictype/test-pr_bidi_arabic_digit.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_arabic_digit$(EXEEXT): $(test_pr_bidi_arabic_digit_OBJECTS) $(test_pr_bidi_arabic_digit_DEPENDENCIES) 
+
+test-pr_bidi_arabic_digit$(EXEEXT): $(test_pr_bidi_arabic_digit_OBJECTS) $(test_pr_bidi_arabic_digit_DEPENDENCIES) $(EXTRA_test_pr_bidi_arabic_digit_DEPENDENCIES) 
        @rm -f test-pr_bidi_arabic_digit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_arabic_digit_OBJECTS) $(test_pr_bidi_arabic_digit_LDADD) $(LIBS)
 unictype/test-pr_bidi_arabic_right_to_left.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_arabic_right_to_left$(EXEEXT): $(test_pr_bidi_arabic_right_to_left_OBJECTS) $(test_pr_bidi_arabic_right_to_left_DEPENDENCIES) 
+
+test-pr_bidi_arabic_right_to_left$(EXEEXT): $(test_pr_bidi_arabic_right_to_left_OBJECTS) $(test_pr_bidi_arabic_right_to_left_DEPENDENCIES) $(EXTRA_test_pr_bidi_arabic_right_to_left_DEPENDENCIES) 
        @rm -f test-pr_bidi_arabic_right_to_left$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_arabic_right_to_left_OBJECTS) $(test_pr_bidi_arabic_right_to_left_LDADD) $(LIBS)
 unictype/test-pr_bidi_block_separator.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_block_separator$(EXEEXT): $(test_pr_bidi_block_separator_OBJECTS) $(test_pr_bidi_block_separator_DEPENDENCIES) 
+
+test-pr_bidi_block_separator$(EXEEXT): $(test_pr_bidi_block_separator_OBJECTS) $(test_pr_bidi_block_separator_DEPENDENCIES) $(EXTRA_test_pr_bidi_block_separator_DEPENDENCIES) 
        @rm -f test-pr_bidi_block_separator$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_block_separator_OBJECTS) $(test_pr_bidi_block_separator_LDADD) $(LIBS)
 unictype/test-pr_bidi_boundary_neutral.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_boundary_neutral$(EXEEXT): $(test_pr_bidi_boundary_neutral_OBJECTS) $(test_pr_bidi_boundary_neutral_DEPENDENCIES) 
+
+test-pr_bidi_boundary_neutral$(EXEEXT): $(test_pr_bidi_boundary_neutral_OBJECTS) $(test_pr_bidi_boundary_neutral_DEPENDENCIES) $(EXTRA_test_pr_bidi_boundary_neutral_DEPENDENCIES) 
        @rm -f test-pr_bidi_boundary_neutral$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_boundary_neutral_OBJECTS) $(test_pr_bidi_boundary_neutral_LDADD) $(LIBS)
 unictype/test-pr_bidi_common_separator.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_common_separator$(EXEEXT): $(test_pr_bidi_common_separator_OBJECTS) $(test_pr_bidi_common_separator_DEPENDENCIES) 
+
+test-pr_bidi_common_separator$(EXEEXT): $(test_pr_bidi_common_separator_OBJECTS) $(test_pr_bidi_common_separator_DEPENDENCIES) $(EXTRA_test_pr_bidi_common_separator_DEPENDENCIES) 
        @rm -f test-pr_bidi_common_separator$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_common_separator_OBJECTS) $(test_pr_bidi_common_separator_LDADD) $(LIBS)
 unictype/test-pr_bidi_control.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_control$(EXEEXT): $(test_pr_bidi_control_OBJECTS) $(test_pr_bidi_control_DEPENDENCIES) 
+
+test-pr_bidi_control$(EXEEXT): $(test_pr_bidi_control_OBJECTS) $(test_pr_bidi_control_DEPENDENCIES) $(EXTRA_test_pr_bidi_control_DEPENDENCIES) 
        @rm -f test-pr_bidi_control$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_control_OBJECTS) $(test_pr_bidi_control_LDADD) $(LIBS)
 unictype/test-pr_bidi_embedding_or_override.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_embedding_or_override$(EXEEXT): $(test_pr_bidi_embedding_or_override_OBJECTS) $(test_pr_bidi_embedding_or_override_DEPENDENCIES) 
+
+test-pr_bidi_embedding_or_override$(EXEEXT): $(test_pr_bidi_embedding_or_override_OBJECTS) $(test_pr_bidi_embedding_or_override_DEPENDENCIES) $(EXTRA_test_pr_bidi_embedding_or_override_DEPENDENCIES) 
        @rm -f test-pr_bidi_embedding_or_override$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_embedding_or_override_OBJECTS) $(test_pr_bidi_embedding_or_override_LDADD) $(LIBS)
 unictype/test-pr_bidi_eur_num_separator.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_eur_num_separator$(EXEEXT): $(test_pr_bidi_eur_num_separator_OBJECTS) $(test_pr_bidi_eur_num_separator_DEPENDENCIES) 
+
+test-pr_bidi_eur_num_separator$(EXEEXT): $(test_pr_bidi_eur_num_separator_OBJECTS) $(test_pr_bidi_eur_num_separator_DEPENDENCIES) $(EXTRA_test_pr_bidi_eur_num_separator_DEPENDENCIES) 
        @rm -f test-pr_bidi_eur_num_separator$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_eur_num_separator_OBJECTS) $(test_pr_bidi_eur_num_separator_LDADD) $(LIBS)
 unictype/test-pr_bidi_eur_num_terminator.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_eur_num_terminator$(EXEEXT): $(test_pr_bidi_eur_num_terminator_OBJECTS) $(test_pr_bidi_eur_num_terminator_DEPENDENCIES) 
+
+test-pr_bidi_eur_num_terminator$(EXEEXT): $(test_pr_bidi_eur_num_terminator_OBJECTS) $(test_pr_bidi_eur_num_terminator_DEPENDENCIES) $(EXTRA_test_pr_bidi_eur_num_terminator_DEPENDENCIES) 
        @rm -f test-pr_bidi_eur_num_terminator$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_eur_num_terminator_OBJECTS) $(test_pr_bidi_eur_num_terminator_LDADD) $(LIBS)
 unictype/test-pr_bidi_european_digit.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_european_digit$(EXEEXT): $(test_pr_bidi_european_digit_OBJECTS) $(test_pr_bidi_european_digit_DEPENDENCIES) 
+
+test-pr_bidi_european_digit$(EXEEXT): $(test_pr_bidi_european_digit_OBJECTS) $(test_pr_bidi_european_digit_DEPENDENCIES) $(EXTRA_test_pr_bidi_european_digit_DEPENDENCIES) 
        @rm -f test-pr_bidi_european_digit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_european_digit_OBJECTS) $(test_pr_bidi_european_digit_LDADD) $(LIBS)
 unictype/test-pr_bidi_hebrew_right_to_left.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_hebrew_right_to_left$(EXEEXT): $(test_pr_bidi_hebrew_right_to_left_OBJECTS) $(test_pr_bidi_hebrew_right_to_left_DEPENDENCIES) 
+
+test-pr_bidi_hebrew_right_to_left$(EXEEXT): $(test_pr_bidi_hebrew_right_to_left_OBJECTS) $(test_pr_bidi_hebrew_right_to_left_DEPENDENCIES) $(EXTRA_test_pr_bidi_hebrew_right_to_left_DEPENDENCIES) 
        @rm -f test-pr_bidi_hebrew_right_to_left$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_hebrew_right_to_left_OBJECTS) $(test_pr_bidi_hebrew_right_to_left_LDADD) $(LIBS)
 unictype/test-pr_bidi_left_to_right.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_left_to_right$(EXEEXT): $(test_pr_bidi_left_to_right_OBJECTS) $(test_pr_bidi_left_to_right_DEPENDENCIES) 
+
+test-pr_bidi_left_to_right$(EXEEXT): $(test_pr_bidi_left_to_right_OBJECTS) $(test_pr_bidi_left_to_right_DEPENDENCIES) $(EXTRA_test_pr_bidi_left_to_right_DEPENDENCIES) 
        @rm -f test-pr_bidi_left_to_right$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_left_to_right_OBJECTS) $(test_pr_bidi_left_to_right_LDADD) $(LIBS)
 unictype/test-pr_bidi_non_spacing_mark.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_non_spacing_mark$(EXEEXT): $(test_pr_bidi_non_spacing_mark_OBJECTS) $(test_pr_bidi_non_spacing_mark_DEPENDENCIES) 
+
+test-pr_bidi_non_spacing_mark$(EXEEXT): $(test_pr_bidi_non_spacing_mark_OBJECTS) $(test_pr_bidi_non_spacing_mark_DEPENDENCIES) $(EXTRA_test_pr_bidi_non_spacing_mark_DEPENDENCIES) 
        @rm -f test-pr_bidi_non_spacing_mark$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_non_spacing_mark_OBJECTS) $(test_pr_bidi_non_spacing_mark_LDADD) $(LIBS)
 unictype/test-pr_bidi_other_neutral.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_other_neutral$(EXEEXT): $(test_pr_bidi_other_neutral_OBJECTS) $(test_pr_bidi_other_neutral_DEPENDENCIES) 
+
+test-pr_bidi_other_neutral$(EXEEXT): $(test_pr_bidi_other_neutral_OBJECTS) $(test_pr_bidi_other_neutral_DEPENDENCIES) $(EXTRA_test_pr_bidi_other_neutral_DEPENDENCIES) 
        @rm -f test-pr_bidi_other_neutral$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_other_neutral_OBJECTS) $(test_pr_bidi_other_neutral_LDADD) $(LIBS)
 unictype/test-pr_bidi_pdf.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_pdf$(EXEEXT): $(test_pr_bidi_pdf_OBJECTS) $(test_pr_bidi_pdf_DEPENDENCIES) 
+
+test-pr_bidi_pdf$(EXEEXT): $(test_pr_bidi_pdf_OBJECTS) $(test_pr_bidi_pdf_DEPENDENCIES) $(EXTRA_test_pr_bidi_pdf_DEPENDENCIES) 
        @rm -f test-pr_bidi_pdf$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_pdf_OBJECTS) $(test_pr_bidi_pdf_LDADD) $(LIBS)
 unictype/test-pr_bidi_segment_separator.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_segment_separator$(EXEEXT): $(test_pr_bidi_segment_separator_OBJECTS) $(test_pr_bidi_segment_separator_DEPENDENCIES) 
+
+test-pr_bidi_segment_separator$(EXEEXT): $(test_pr_bidi_segment_separator_OBJECTS) $(test_pr_bidi_segment_separator_DEPENDENCIES) $(EXTRA_test_pr_bidi_segment_separator_DEPENDENCIES) 
        @rm -f test-pr_bidi_segment_separator$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_segment_separator_OBJECTS) $(test_pr_bidi_segment_separator_LDADD) $(LIBS)
 unictype/test-pr_bidi_whitespace.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_bidi_whitespace$(EXEEXT): $(test_pr_bidi_whitespace_OBJECTS) $(test_pr_bidi_whitespace_DEPENDENCIES) 
+
+test-pr_bidi_whitespace$(EXEEXT): $(test_pr_bidi_whitespace_OBJECTS) $(test_pr_bidi_whitespace_DEPENDENCIES) $(EXTRA_test_pr_bidi_whitespace_DEPENDENCIES) 
        @rm -f test-pr_bidi_whitespace$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_bidi_whitespace_OBJECTS) $(test_pr_bidi_whitespace_LDADD) $(LIBS)
 unictype/test-pr_byname.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_byname$(EXEEXT): $(test_pr_byname_OBJECTS) $(test_pr_byname_DEPENDENCIES) 
+
+test-pr_byname$(EXEEXT): $(test_pr_byname_OBJECTS) $(test_pr_byname_DEPENDENCIES) $(EXTRA_test_pr_byname_DEPENDENCIES) 
        @rm -f test-pr_byname$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_byname_OBJECTS) $(test_pr_byname_LDADD) $(LIBS)
+unictype/test-pr_case_ignorable.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-pr_case_ignorable$(EXEEXT): $(test_pr_case_ignorable_OBJECTS) $(test_pr_case_ignorable_DEPENDENCIES) $(EXTRA_test_pr_case_ignorable_DEPENDENCIES) 
+       @rm -f test-pr_case_ignorable$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_pr_case_ignorable_OBJECTS) $(test_pr_case_ignorable_LDADD) $(LIBS)
+unictype/test-pr_cased.$(OBJEXT): unictype/$(am__dirstamp) \
+       unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-pr_cased$(EXEEXT): $(test_pr_cased_OBJECTS) $(test_pr_cased_DEPENDENCIES) $(EXTRA_test_pr_cased_DEPENDENCIES) 
+       @rm -f test-pr_cased$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_pr_cased_OBJECTS) $(test_pr_cased_LDADD) $(LIBS)
+unictype/test-pr_changes_when_casefolded.$(OBJEXT):  \
+       unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-pr_changes_when_casefolded$(EXEEXT): $(test_pr_changes_when_casefolded_OBJECTS) $(test_pr_changes_when_casefolded_DEPENDENCIES) $(EXTRA_test_pr_changes_when_casefolded_DEPENDENCIES) 
+       @rm -f test-pr_changes_when_casefolded$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_pr_changes_when_casefolded_OBJECTS) $(test_pr_changes_when_casefolded_LDADD) $(LIBS)
+unictype/test-pr_changes_when_casemapped.$(OBJEXT):  \
+       unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-pr_changes_when_casemapped$(EXEEXT): $(test_pr_changes_when_casemapped_OBJECTS) $(test_pr_changes_when_casemapped_DEPENDENCIES) $(EXTRA_test_pr_changes_when_casemapped_DEPENDENCIES) 
+       @rm -f test-pr_changes_when_casemapped$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_pr_changes_when_casemapped_OBJECTS) $(test_pr_changes_when_casemapped_LDADD) $(LIBS)
+unictype/test-pr_changes_when_lowercased.$(OBJEXT):  \
+       unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-pr_changes_when_lowercased$(EXEEXT): $(test_pr_changes_when_lowercased_OBJECTS) $(test_pr_changes_when_lowercased_DEPENDENCIES) $(EXTRA_test_pr_changes_when_lowercased_DEPENDENCIES) 
+       @rm -f test-pr_changes_when_lowercased$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_pr_changes_when_lowercased_OBJECTS) $(test_pr_changes_when_lowercased_LDADD) $(LIBS)
+unictype/test-pr_changes_when_titlecased.$(OBJEXT):  \
+       unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-pr_changes_when_titlecased$(EXEEXT): $(test_pr_changes_when_titlecased_OBJECTS) $(test_pr_changes_when_titlecased_DEPENDENCIES) $(EXTRA_test_pr_changes_when_titlecased_DEPENDENCIES) 
+       @rm -f test-pr_changes_when_titlecased$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_pr_changes_when_titlecased_OBJECTS) $(test_pr_changes_when_titlecased_LDADD) $(LIBS)
+unictype/test-pr_changes_when_uppercased.$(OBJEXT):  \
+       unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
+
+test-pr_changes_when_uppercased$(EXEEXT): $(test_pr_changes_when_uppercased_OBJECTS) $(test_pr_changes_when_uppercased_DEPENDENCIES) $(EXTRA_test_pr_changes_when_uppercased_DEPENDENCIES) 
+       @rm -f test-pr_changes_when_uppercased$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_pr_changes_when_uppercased_OBJECTS) $(test_pr_changes_when_uppercased_LDADD) $(LIBS)
 unictype/test-pr_combining.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_combining$(EXEEXT): $(test_pr_combining_OBJECTS) $(test_pr_combining_DEPENDENCIES) 
+
+test-pr_combining$(EXEEXT): $(test_pr_combining_OBJECTS) $(test_pr_combining_DEPENDENCIES) $(EXTRA_test_pr_combining_DEPENDENCIES) 
        @rm -f test-pr_combining$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_combining_OBJECTS) $(test_pr_combining_LDADD) $(LIBS)
 unictype/test-pr_composite.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_composite$(EXEEXT): $(test_pr_composite_OBJECTS) $(test_pr_composite_DEPENDENCIES) 
+
+test-pr_composite$(EXEEXT): $(test_pr_composite_OBJECTS) $(test_pr_composite_DEPENDENCIES) $(EXTRA_test_pr_composite_DEPENDENCIES) 
        @rm -f test-pr_composite$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_composite_OBJECTS) $(test_pr_composite_LDADD) $(LIBS)
 unictype/test-pr_currency_symbol.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_currency_symbol$(EXEEXT): $(test_pr_currency_symbol_OBJECTS) $(test_pr_currency_symbol_DEPENDENCIES) 
+
+test-pr_currency_symbol$(EXEEXT): $(test_pr_currency_symbol_OBJECTS) $(test_pr_currency_symbol_DEPENDENCIES) $(EXTRA_test_pr_currency_symbol_DEPENDENCIES) 
        @rm -f test-pr_currency_symbol$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_currency_symbol_OBJECTS) $(test_pr_currency_symbol_LDADD) $(LIBS)
 unictype/test-pr_dash.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_dash$(EXEEXT): $(test_pr_dash_OBJECTS) $(test_pr_dash_DEPENDENCIES) 
+
+test-pr_dash$(EXEEXT): $(test_pr_dash_OBJECTS) $(test_pr_dash_DEPENDENCIES) $(EXTRA_test_pr_dash_DEPENDENCIES) 
        @rm -f test-pr_dash$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_dash_OBJECTS) $(test_pr_dash_LDADD) $(LIBS)
 unictype/test-pr_decimal_digit.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_decimal_digit$(EXEEXT): $(test_pr_decimal_digit_OBJECTS) $(test_pr_decimal_digit_DEPENDENCIES) 
+
+test-pr_decimal_digit$(EXEEXT): $(test_pr_decimal_digit_OBJECTS) $(test_pr_decimal_digit_DEPENDENCIES) $(EXTRA_test_pr_decimal_digit_DEPENDENCIES) 
        @rm -f test-pr_decimal_digit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_decimal_digit_OBJECTS) $(test_pr_decimal_digit_LDADD) $(LIBS)
 unictype/test-pr_default_ignorable_code_point.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_default_ignorable_code_point$(EXEEXT): $(test_pr_default_ignorable_code_point_OBJECTS) $(test_pr_default_ignorable_code_point_DEPENDENCIES) 
+
+test-pr_default_ignorable_code_point$(EXEEXT): $(test_pr_default_ignorable_code_point_OBJECTS) $(test_pr_default_ignorable_code_point_DEPENDENCIES) $(EXTRA_test_pr_default_ignorable_code_point_DEPENDENCIES) 
        @rm -f test-pr_default_ignorable_code_point$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_default_ignorable_code_point_OBJECTS) $(test_pr_default_ignorable_code_point_LDADD) $(LIBS)
 unictype/test-pr_deprecated.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_deprecated$(EXEEXT): $(test_pr_deprecated_OBJECTS) $(test_pr_deprecated_DEPENDENCIES) 
+
+test-pr_deprecated$(EXEEXT): $(test_pr_deprecated_OBJECTS) $(test_pr_deprecated_DEPENDENCIES) $(EXTRA_test_pr_deprecated_DEPENDENCIES) 
        @rm -f test-pr_deprecated$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_deprecated_OBJECTS) $(test_pr_deprecated_LDADD) $(LIBS)
 unictype/test-pr_diacritic.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_diacritic$(EXEEXT): $(test_pr_diacritic_OBJECTS) $(test_pr_diacritic_DEPENDENCIES) 
+
+test-pr_diacritic$(EXEEXT): $(test_pr_diacritic_OBJECTS) $(test_pr_diacritic_DEPENDENCIES) $(EXTRA_test_pr_diacritic_DEPENDENCIES) 
        @rm -f test-pr_diacritic$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_diacritic_OBJECTS) $(test_pr_diacritic_LDADD) $(LIBS)
 unictype/test-pr_extender.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_extender$(EXEEXT): $(test_pr_extender_OBJECTS) $(test_pr_extender_DEPENDENCIES) 
+
+test-pr_extender$(EXEEXT): $(test_pr_extender_OBJECTS) $(test_pr_extender_DEPENDENCIES) $(EXTRA_test_pr_extender_DEPENDENCIES) 
        @rm -f test-pr_extender$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_extender_OBJECTS) $(test_pr_extender_LDADD) $(LIBS)
 unictype/test-pr_format_control.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_format_control$(EXEEXT): $(test_pr_format_control_OBJECTS) $(test_pr_format_control_DEPENDENCIES) 
+
+test-pr_format_control$(EXEEXT): $(test_pr_format_control_OBJECTS) $(test_pr_format_control_DEPENDENCIES) $(EXTRA_test_pr_format_control_DEPENDENCIES) 
        @rm -f test-pr_format_control$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_format_control_OBJECTS) $(test_pr_format_control_LDADD) $(LIBS)
 unictype/test-pr_grapheme_base.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_grapheme_base$(EXEEXT): $(test_pr_grapheme_base_OBJECTS) $(test_pr_grapheme_base_DEPENDENCIES) 
+
+test-pr_grapheme_base$(EXEEXT): $(test_pr_grapheme_base_OBJECTS) $(test_pr_grapheme_base_DEPENDENCIES) $(EXTRA_test_pr_grapheme_base_DEPENDENCIES) 
        @rm -f test-pr_grapheme_base$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_grapheme_base_OBJECTS) $(test_pr_grapheme_base_LDADD) $(LIBS)
 unictype/test-pr_grapheme_extend.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_grapheme_extend$(EXEEXT): $(test_pr_grapheme_extend_OBJECTS) $(test_pr_grapheme_extend_DEPENDENCIES) 
+
+test-pr_grapheme_extend$(EXEEXT): $(test_pr_grapheme_extend_OBJECTS) $(test_pr_grapheme_extend_DEPENDENCIES) $(EXTRA_test_pr_grapheme_extend_DEPENDENCIES) 
        @rm -f test-pr_grapheme_extend$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_grapheme_extend_OBJECTS) $(test_pr_grapheme_extend_LDADD) $(LIBS)
 unictype/test-pr_grapheme_link.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_grapheme_link$(EXEEXT): $(test_pr_grapheme_link_OBJECTS) $(test_pr_grapheme_link_DEPENDENCIES) 
+
+test-pr_grapheme_link$(EXEEXT): $(test_pr_grapheme_link_OBJECTS) $(test_pr_grapheme_link_DEPENDENCIES) $(EXTRA_test_pr_grapheme_link_DEPENDENCIES) 
        @rm -f test-pr_grapheme_link$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_grapheme_link_OBJECTS) $(test_pr_grapheme_link_LDADD) $(LIBS)
 unictype/test-pr_hex_digit.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_hex_digit$(EXEEXT): $(test_pr_hex_digit_OBJECTS) $(test_pr_hex_digit_DEPENDENCIES) 
+
+test-pr_hex_digit$(EXEEXT): $(test_pr_hex_digit_OBJECTS) $(test_pr_hex_digit_DEPENDENCIES) $(EXTRA_test_pr_hex_digit_DEPENDENCIES) 
        @rm -f test-pr_hex_digit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_hex_digit_OBJECTS) $(test_pr_hex_digit_LDADD) $(LIBS)
 unictype/test-pr_hyphen.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_hyphen$(EXEEXT): $(test_pr_hyphen_OBJECTS) $(test_pr_hyphen_DEPENDENCIES) 
+
+test-pr_hyphen$(EXEEXT): $(test_pr_hyphen_OBJECTS) $(test_pr_hyphen_DEPENDENCIES) $(EXTRA_test_pr_hyphen_DEPENDENCIES) 
        @rm -f test-pr_hyphen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_hyphen_OBJECTS) $(test_pr_hyphen_LDADD) $(LIBS)
 unictype/test-pr_id_continue.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_id_continue$(EXEEXT): $(test_pr_id_continue_OBJECTS) $(test_pr_id_continue_DEPENDENCIES) 
+
+test-pr_id_continue$(EXEEXT): $(test_pr_id_continue_OBJECTS) $(test_pr_id_continue_DEPENDENCIES) $(EXTRA_test_pr_id_continue_DEPENDENCIES) 
        @rm -f test-pr_id_continue$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_id_continue_OBJECTS) $(test_pr_id_continue_LDADD) $(LIBS)
 unictype/test-pr_id_start.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_id_start$(EXEEXT): $(test_pr_id_start_OBJECTS) $(test_pr_id_start_DEPENDENCIES) 
+
+test-pr_id_start$(EXEEXT): $(test_pr_id_start_OBJECTS) $(test_pr_id_start_DEPENDENCIES) $(EXTRA_test_pr_id_start_DEPENDENCIES) 
        @rm -f test-pr_id_start$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_id_start_OBJECTS) $(test_pr_id_start_LDADD) $(LIBS)
 unictype/test-pr_ideographic.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_ideographic$(EXEEXT): $(test_pr_ideographic_OBJECTS) $(test_pr_ideographic_DEPENDENCIES) 
+
+test-pr_ideographic$(EXEEXT): $(test_pr_ideographic_OBJECTS) $(test_pr_ideographic_DEPENDENCIES) $(EXTRA_test_pr_ideographic_DEPENDENCIES) 
        @rm -f test-pr_ideographic$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_ideographic_OBJECTS) $(test_pr_ideographic_LDADD) $(LIBS)
 unictype/test-pr_ids_binary_operator.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_ids_binary_operator$(EXEEXT): $(test_pr_ids_binary_operator_OBJECTS) $(test_pr_ids_binary_operator_DEPENDENCIES) 
+
+test-pr_ids_binary_operator$(EXEEXT): $(test_pr_ids_binary_operator_OBJECTS) $(test_pr_ids_binary_operator_DEPENDENCIES) $(EXTRA_test_pr_ids_binary_operator_DEPENDENCIES) 
        @rm -f test-pr_ids_binary_operator$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_ids_binary_operator_OBJECTS) $(test_pr_ids_binary_operator_LDADD) $(LIBS)
 unictype/test-pr_ids_trinary_operator.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_ids_trinary_operator$(EXEEXT): $(test_pr_ids_trinary_operator_OBJECTS) $(test_pr_ids_trinary_operator_DEPENDENCIES) 
+
+test-pr_ids_trinary_operator$(EXEEXT): $(test_pr_ids_trinary_operator_OBJECTS) $(test_pr_ids_trinary_operator_DEPENDENCIES) $(EXTRA_test_pr_ids_trinary_operator_DEPENDENCIES) 
        @rm -f test-pr_ids_trinary_operator$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_ids_trinary_operator_OBJECTS) $(test_pr_ids_trinary_operator_LDADD) $(LIBS)
 unictype/test-pr_ignorable_control.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_ignorable_control$(EXEEXT): $(test_pr_ignorable_control_OBJECTS) $(test_pr_ignorable_control_DEPENDENCIES) 
+
+test-pr_ignorable_control$(EXEEXT): $(test_pr_ignorable_control_OBJECTS) $(test_pr_ignorable_control_DEPENDENCIES) $(EXTRA_test_pr_ignorable_control_DEPENDENCIES) 
        @rm -f test-pr_ignorable_control$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_ignorable_control_OBJECTS) $(test_pr_ignorable_control_LDADD) $(LIBS)
 unictype/test-pr_iso_control.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_iso_control$(EXEEXT): $(test_pr_iso_control_OBJECTS) $(test_pr_iso_control_DEPENDENCIES) 
+
+test-pr_iso_control$(EXEEXT): $(test_pr_iso_control_OBJECTS) $(test_pr_iso_control_DEPENDENCIES) $(EXTRA_test_pr_iso_control_DEPENDENCIES) 
        @rm -f test-pr_iso_control$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_iso_control_OBJECTS) $(test_pr_iso_control_LDADD) $(LIBS)
 unictype/test-pr_join_control.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_join_control$(EXEEXT): $(test_pr_join_control_OBJECTS) $(test_pr_join_control_DEPENDENCIES) 
+
+test-pr_join_control$(EXEEXT): $(test_pr_join_control_OBJECTS) $(test_pr_join_control_DEPENDENCIES) $(EXTRA_test_pr_join_control_DEPENDENCIES) 
        @rm -f test-pr_join_control$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_join_control_OBJECTS) $(test_pr_join_control_LDADD) $(LIBS)
 unictype/test-pr_left_of_pair.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_left_of_pair$(EXEEXT): $(test_pr_left_of_pair_OBJECTS) $(test_pr_left_of_pair_DEPENDENCIES) 
+
+test-pr_left_of_pair$(EXEEXT): $(test_pr_left_of_pair_OBJECTS) $(test_pr_left_of_pair_DEPENDENCIES) $(EXTRA_test_pr_left_of_pair_DEPENDENCIES) 
        @rm -f test-pr_left_of_pair$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_left_of_pair_OBJECTS) $(test_pr_left_of_pair_LDADD) $(LIBS)
 unictype/test-pr_line_separator.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_line_separator$(EXEEXT): $(test_pr_line_separator_OBJECTS) $(test_pr_line_separator_DEPENDENCIES) 
+
+test-pr_line_separator$(EXEEXT): $(test_pr_line_separator_OBJECTS) $(test_pr_line_separator_DEPENDENCIES) $(EXTRA_test_pr_line_separator_DEPENDENCIES) 
        @rm -f test-pr_line_separator$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_line_separator_OBJECTS) $(test_pr_line_separator_LDADD) $(LIBS)
 unictype/test-pr_logical_order_exception.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_logical_order_exception$(EXEEXT): $(test_pr_logical_order_exception_OBJECTS) $(test_pr_logical_order_exception_DEPENDENCIES) 
+
+test-pr_logical_order_exception$(EXEEXT): $(test_pr_logical_order_exception_OBJECTS) $(test_pr_logical_order_exception_DEPENDENCIES) $(EXTRA_test_pr_logical_order_exception_DEPENDENCIES) 
        @rm -f test-pr_logical_order_exception$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_logical_order_exception_OBJECTS) $(test_pr_logical_order_exception_LDADD) $(LIBS)
 unictype/test-pr_lowercase.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_lowercase$(EXEEXT): $(test_pr_lowercase_OBJECTS) $(test_pr_lowercase_DEPENDENCIES) 
+
+test-pr_lowercase$(EXEEXT): $(test_pr_lowercase_OBJECTS) $(test_pr_lowercase_DEPENDENCIES) $(EXTRA_test_pr_lowercase_DEPENDENCIES) 
        @rm -f test-pr_lowercase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_lowercase_OBJECTS) $(test_pr_lowercase_LDADD) $(LIBS)
 unictype/test-pr_math.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_math$(EXEEXT): $(test_pr_math_OBJECTS) $(test_pr_math_DEPENDENCIES) 
+
+test-pr_math$(EXEEXT): $(test_pr_math_OBJECTS) $(test_pr_math_DEPENDENCIES) $(EXTRA_test_pr_math_DEPENDENCIES) 
        @rm -f test-pr_math$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_math_OBJECTS) $(test_pr_math_LDADD) $(LIBS)
 unictype/test-pr_non_break.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_non_break$(EXEEXT): $(test_pr_non_break_OBJECTS) $(test_pr_non_break_DEPENDENCIES) 
+
+test-pr_non_break$(EXEEXT): $(test_pr_non_break_OBJECTS) $(test_pr_non_break_DEPENDENCIES) $(EXTRA_test_pr_non_break_DEPENDENCIES) 
        @rm -f test-pr_non_break$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_non_break_OBJECTS) $(test_pr_non_break_LDADD) $(LIBS)
 unictype/test-pr_not_a_character.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_not_a_character$(EXEEXT): $(test_pr_not_a_character_OBJECTS) $(test_pr_not_a_character_DEPENDENCIES) 
+
+test-pr_not_a_character$(EXEEXT): $(test_pr_not_a_character_OBJECTS) $(test_pr_not_a_character_DEPENDENCIES) $(EXTRA_test_pr_not_a_character_DEPENDENCIES) 
        @rm -f test-pr_not_a_character$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_not_a_character_OBJECTS) $(test_pr_not_a_character_LDADD) $(LIBS)
 unictype/test-pr_numeric.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_numeric$(EXEEXT): $(test_pr_numeric_OBJECTS) $(test_pr_numeric_DEPENDENCIES) 
+
+test-pr_numeric$(EXEEXT): $(test_pr_numeric_OBJECTS) $(test_pr_numeric_DEPENDENCIES) $(EXTRA_test_pr_numeric_DEPENDENCIES) 
        @rm -f test-pr_numeric$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_numeric_OBJECTS) $(test_pr_numeric_LDADD) $(LIBS)
 unictype/test-pr_other_alphabetic.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_other_alphabetic$(EXEEXT): $(test_pr_other_alphabetic_OBJECTS) $(test_pr_other_alphabetic_DEPENDENCIES) 
+
+test-pr_other_alphabetic$(EXEEXT): $(test_pr_other_alphabetic_OBJECTS) $(test_pr_other_alphabetic_DEPENDENCIES) $(EXTRA_test_pr_other_alphabetic_DEPENDENCIES) 
        @rm -f test-pr_other_alphabetic$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_other_alphabetic_OBJECTS) $(test_pr_other_alphabetic_LDADD) $(LIBS)
 unictype/test-pr_other_default_ignorable_code_point.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_other_default_ignorable_code_point$(EXEEXT): $(test_pr_other_default_ignorable_code_point_OBJECTS) $(test_pr_other_default_ignorable_code_point_DEPENDENCIES) 
+
+test-pr_other_default_ignorable_code_point$(EXEEXT): $(test_pr_other_default_ignorable_code_point_OBJECTS) $(test_pr_other_default_ignorable_code_point_DEPENDENCIES) $(EXTRA_test_pr_other_default_ignorable_code_point_DEPENDENCIES) 
        @rm -f test-pr_other_default_ignorable_code_point$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_other_default_ignorable_code_point_OBJECTS) $(test_pr_other_default_ignorable_code_point_LDADD) $(LIBS)
 unictype/test-pr_other_grapheme_extend.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_other_grapheme_extend$(EXEEXT): $(test_pr_other_grapheme_extend_OBJECTS) $(test_pr_other_grapheme_extend_DEPENDENCIES) 
+
+test-pr_other_grapheme_extend$(EXEEXT): $(test_pr_other_grapheme_extend_OBJECTS) $(test_pr_other_grapheme_extend_DEPENDENCIES) $(EXTRA_test_pr_other_grapheme_extend_DEPENDENCIES) 
        @rm -f test-pr_other_grapheme_extend$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_other_grapheme_extend_OBJECTS) $(test_pr_other_grapheme_extend_LDADD) $(LIBS)
 unictype/test-pr_other_id_continue.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_other_id_continue$(EXEEXT): $(test_pr_other_id_continue_OBJECTS) $(test_pr_other_id_continue_DEPENDENCIES) 
+
+test-pr_other_id_continue$(EXEEXT): $(test_pr_other_id_continue_OBJECTS) $(test_pr_other_id_continue_DEPENDENCIES) $(EXTRA_test_pr_other_id_continue_DEPENDENCIES) 
        @rm -f test-pr_other_id_continue$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_other_id_continue_OBJECTS) $(test_pr_other_id_continue_LDADD) $(LIBS)
 unictype/test-pr_other_id_start.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_other_id_start$(EXEEXT): $(test_pr_other_id_start_OBJECTS) $(test_pr_other_id_start_DEPENDENCIES) 
+
+test-pr_other_id_start$(EXEEXT): $(test_pr_other_id_start_OBJECTS) $(test_pr_other_id_start_DEPENDENCIES) $(EXTRA_test_pr_other_id_start_DEPENDENCIES) 
        @rm -f test-pr_other_id_start$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_other_id_start_OBJECTS) $(test_pr_other_id_start_LDADD) $(LIBS)
 unictype/test-pr_other_lowercase.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_other_lowercase$(EXEEXT): $(test_pr_other_lowercase_OBJECTS) $(test_pr_other_lowercase_DEPENDENCIES) 
+
+test-pr_other_lowercase$(EXEEXT): $(test_pr_other_lowercase_OBJECTS) $(test_pr_other_lowercase_DEPENDENCIES) $(EXTRA_test_pr_other_lowercase_DEPENDENCIES) 
        @rm -f test-pr_other_lowercase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_other_lowercase_OBJECTS) $(test_pr_other_lowercase_LDADD) $(LIBS)
 unictype/test-pr_other_math.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_other_math$(EXEEXT): $(test_pr_other_math_OBJECTS) $(test_pr_other_math_DEPENDENCIES) 
+
+test-pr_other_math$(EXEEXT): $(test_pr_other_math_OBJECTS) $(test_pr_other_math_DEPENDENCIES) $(EXTRA_test_pr_other_math_DEPENDENCIES) 
        @rm -f test-pr_other_math$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_other_math_OBJECTS) $(test_pr_other_math_LDADD) $(LIBS)
 unictype/test-pr_other_uppercase.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_other_uppercase$(EXEEXT): $(test_pr_other_uppercase_OBJECTS) $(test_pr_other_uppercase_DEPENDENCIES) 
+
+test-pr_other_uppercase$(EXEEXT): $(test_pr_other_uppercase_OBJECTS) $(test_pr_other_uppercase_DEPENDENCIES) $(EXTRA_test_pr_other_uppercase_DEPENDENCIES) 
        @rm -f test-pr_other_uppercase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_other_uppercase_OBJECTS) $(test_pr_other_uppercase_LDADD) $(LIBS)
 unictype/test-pr_paired_punctuation.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_paired_punctuation$(EXEEXT): $(test_pr_paired_punctuation_OBJECTS) $(test_pr_paired_punctuation_DEPENDENCIES) 
+
+test-pr_paired_punctuation$(EXEEXT): $(test_pr_paired_punctuation_OBJECTS) $(test_pr_paired_punctuation_DEPENDENCIES) $(EXTRA_test_pr_paired_punctuation_DEPENDENCIES) 
        @rm -f test-pr_paired_punctuation$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_paired_punctuation_OBJECTS) $(test_pr_paired_punctuation_LDADD) $(LIBS)
 unictype/test-pr_paragraph_separator.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_paragraph_separator$(EXEEXT): $(test_pr_paragraph_separator_OBJECTS) $(test_pr_paragraph_separator_DEPENDENCIES) 
+
+test-pr_paragraph_separator$(EXEEXT): $(test_pr_paragraph_separator_OBJECTS) $(test_pr_paragraph_separator_DEPENDENCIES) $(EXTRA_test_pr_paragraph_separator_DEPENDENCIES) 
        @rm -f test-pr_paragraph_separator$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_paragraph_separator_OBJECTS) $(test_pr_paragraph_separator_LDADD) $(LIBS)
 unictype/test-pr_pattern_syntax.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_pattern_syntax$(EXEEXT): $(test_pr_pattern_syntax_OBJECTS) $(test_pr_pattern_syntax_DEPENDENCIES) 
+
+test-pr_pattern_syntax$(EXEEXT): $(test_pr_pattern_syntax_OBJECTS) $(test_pr_pattern_syntax_DEPENDENCIES) $(EXTRA_test_pr_pattern_syntax_DEPENDENCIES) 
        @rm -f test-pr_pattern_syntax$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_pattern_syntax_OBJECTS) $(test_pr_pattern_syntax_LDADD) $(LIBS)
 unictype/test-pr_pattern_white_space.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_pattern_white_space$(EXEEXT): $(test_pr_pattern_white_space_OBJECTS) $(test_pr_pattern_white_space_DEPENDENCIES) 
+
+test-pr_pattern_white_space$(EXEEXT): $(test_pr_pattern_white_space_OBJECTS) $(test_pr_pattern_white_space_DEPENDENCIES) $(EXTRA_test_pr_pattern_white_space_DEPENDENCIES) 
        @rm -f test-pr_pattern_white_space$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_pattern_white_space_OBJECTS) $(test_pr_pattern_white_space_LDADD) $(LIBS)
 unictype/test-pr_private_use.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_private_use$(EXEEXT): $(test_pr_private_use_OBJECTS) $(test_pr_private_use_DEPENDENCIES) 
+
+test-pr_private_use$(EXEEXT): $(test_pr_private_use_OBJECTS) $(test_pr_private_use_DEPENDENCIES) $(EXTRA_test_pr_private_use_DEPENDENCIES) 
        @rm -f test-pr_private_use$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_private_use_OBJECTS) $(test_pr_private_use_LDADD) $(LIBS)
 unictype/test-pr_punctuation.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_punctuation$(EXEEXT): $(test_pr_punctuation_OBJECTS) $(test_pr_punctuation_DEPENDENCIES) 
+
+test-pr_punctuation$(EXEEXT): $(test_pr_punctuation_OBJECTS) $(test_pr_punctuation_DEPENDENCIES) $(EXTRA_test_pr_punctuation_DEPENDENCIES) 
        @rm -f test-pr_punctuation$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_punctuation_OBJECTS) $(test_pr_punctuation_LDADD) $(LIBS)
 unictype/test-pr_quotation_mark.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_quotation_mark$(EXEEXT): $(test_pr_quotation_mark_OBJECTS) $(test_pr_quotation_mark_DEPENDENCIES) 
+
+test-pr_quotation_mark$(EXEEXT): $(test_pr_quotation_mark_OBJECTS) $(test_pr_quotation_mark_DEPENDENCIES) $(EXTRA_test_pr_quotation_mark_DEPENDENCIES) 
        @rm -f test-pr_quotation_mark$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_quotation_mark_OBJECTS) $(test_pr_quotation_mark_LDADD) $(LIBS)
 unictype/test-pr_radical.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_radical$(EXEEXT): $(test_pr_radical_OBJECTS) $(test_pr_radical_DEPENDENCIES) 
+
+test-pr_radical$(EXEEXT): $(test_pr_radical_OBJECTS) $(test_pr_radical_DEPENDENCIES) $(EXTRA_test_pr_radical_DEPENDENCIES) 
        @rm -f test-pr_radical$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_radical_OBJECTS) $(test_pr_radical_LDADD) $(LIBS)
 unictype/test-pr_sentence_terminal.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_sentence_terminal$(EXEEXT): $(test_pr_sentence_terminal_OBJECTS) $(test_pr_sentence_terminal_DEPENDENCIES) 
+
+test-pr_sentence_terminal$(EXEEXT): $(test_pr_sentence_terminal_OBJECTS) $(test_pr_sentence_terminal_DEPENDENCIES) $(EXTRA_test_pr_sentence_terminal_DEPENDENCIES) 
        @rm -f test-pr_sentence_terminal$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_sentence_terminal_OBJECTS) $(test_pr_sentence_terminal_LDADD) $(LIBS)
 unictype/test-pr_soft_dotted.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_soft_dotted$(EXEEXT): $(test_pr_soft_dotted_OBJECTS) $(test_pr_soft_dotted_DEPENDENCIES) 
+
+test-pr_soft_dotted$(EXEEXT): $(test_pr_soft_dotted_OBJECTS) $(test_pr_soft_dotted_DEPENDENCIES) $(EXTRA_test_pr_soft_dotted_DEPENDENCIES) 
        @rm -f test-pr_soft_dotted$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_soft_dotted_OBJECTS) $(test_pr_soft_dotted_LDADD) $(LIBS)
 unictype/test-pr_space.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_space$(EXEEXT): $(test_pr_space_OBJECTS) $(test_pr_space_DEPENDENCIES) 
+
+test-pr_space$(EXEEXT): $(test_pr_space_OBJECTS) $(test_pr_space_DEPENDENCIES) $(EXTRA_test_pr_space_DEPENDENCIES) 
        @rm -f test-pr_space$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_space_OBJECTS) $(test_pr_space_LDADD) $(LIBS)
 unictype/test-pr_terminal_punctuation.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_terminal_punctuation$(EXEEXT): $(test_pr_terminal_punctuation_OBJECTS) $(test_pr_terminal_punctuation_DEPENDENCIES) 
+
+test-pr_terminal_punctuation$(EXEEXT): $(test_pr_terminal_punctuation_OBJECTS) $(test_pr_terminal_punctuation_DEPENDENCIES) $(EXTRA_test_pr_terminal_punctuation_DEPENDENCIES) 
        @rm -f test-pr_terminal_punctuation$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_terminal_punctuation_OBJECTS) $(test_pr_terminal_punctuation_LDADD) $(LIBS)
 unictype/test-pr_test.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_test$(EXEEXT): $(test_pr_test_OBJECTS) $(test_pr_test_DEPENDENCIES) 
+
+test-pr_test$(EXEEXT): $(test_pr_test_OBJECTS) $(test_pr_test_DEPENDENCIES) $(EXTRA_test_pr_test_DEPENDENCIES) 
        @rm -f test-pr_test$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_test_OBJECTS) $(test_pr_test_LDADD) $(LIBS)
 unictype/test-pr_titlecase.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_titlecase$(EXEEXT): $(test_pr_titlecase_OBJECTS) $(test_pr_titlecase_DEPENDENCIES) 
+
+test-pr_titlecase$(EXEEXT): $(test_pr_titlecase_OBJECTS) $(test_pr_titlecase_DEPENDENCIES) $(EXTRA_test_pr_titlecase_DEPENDENCIES) 
        @rm -f test-pr_titlecase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_titlecase_OBJECTS) $(test_pr_titlecase_LDADD) $(LIBS)
 unictype/test-pr_unassigned_code_value.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_unassigned_code_value$(EXEEXT): $(test_pr_unassigned_code_value_OBJECTS) $(test_pr_unassigned_code_value_DEPENDENCIES) 
+
+test-pr_unassigned_code_value$(EXEEXT): $(test_pr_unassigned_code_value_OBJECTS) $(test_pr_unassigned_code_value_DEPENDENCIES) $(EXTRA_test_pr_unassigned_code_value_DEPENDENCIES) 
        @rm -f test-pr_unassigned_code_value$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_unassigned_code_value_OBJECTS) $(test_pr_unassigned_code_value_LDADD) $(LIBS)
 unictype/test-pr_unified_ideograph.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_unified_ideograph$(EXEEXT): $(test_pr_unified_ideograph_OBJECTS) $(test_pr_unified_ideograph_DEPENDENCIES) 
+
+test-pr_unified_ideograph$(EXEEXT): $(test_pr_unified_ideograph_OBJECTS) $(test_pr_unified_ideograph_DEPENDENCIES) $(EXTRA_test_pr_unified_ideograph_DEPENDENCIES) 
        @rm -f test-pr_unified_ideograph$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_unified_ideograph_OBJECTS) $(test_pr_unified_ideograph_LDADD) $(LIBS)
 unictype/test-pr_uppercase.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_uppercase$(EXEEXT): $(test_pr_uppercase_OBJECTS) $(test_pr_uppercase_DEPENDENCIES) 
+
+test-pr_uppercase$(EXEEXT): $(test_pr_uppercase_OBJECTS) $(test_pr_uppercase_DEPENDENCIES) $(EXTRA_test_pr_uppercase_DEPENDENCIES) 
        @rm -f test-pr_uppercase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_uppercase_OBJECTS) $(test_pr_uppercase_LDADD) $(LIBS)
 unictype/test-pr_variation_selector.$(OBJEXT):  \
        unictype/$(am__dirstamp) unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_variation_selector$(EXEEXT): $(test_pr_variation_selector_OBJECTS) $(test_pr_variation_selector_DEPENDENCIES) 
+
+test-pr_variation_selector$(EXEEXT): $(test_pr_variation_selector_OBJECTS) $(test_pr_variation_selector_DEPENDENCIES) $(EXTRA_test_pr_variation_selector_DEPENDENCIES) 
        @rm -f test-pr_variation_selector$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_variation_selector_OBJECTS) $(test_pr_variation_selector_LDADD) $(LIBS)
 unictype/test-pr_white_space.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_white_space$(EXEEXT): $(test_pr_white_space_OBJECTS) $(test_pr_white_space_DEPENDENCIES) 
+
+test-pr_white_space$(EXEEXT): $(test_pr_white_space_OBJECTS) $(test_pr_white_space_DEPENDENCIES) $(EXTRA_test_pr_white_space_DEPENDENCIES) 
        @rm -f test-pr_white_space$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_white_space_OBJECTS) $(test_pr_white_space_LDADD) $(LIBS)
 unictype/test-pr_xid_continue.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_xid_continue$(EXEEXT): $(test_pr_xid_continue_OBJECTS) $(test_pr_xid_continue_DEPENDENCIES) 
+
+test-pr_xid_continue$(EXEEXT): $(test_pr_xid_continue_OBJECTS) $(test_pr_xid_continue_DEPENDENCIES) $(EXTRA_test_pr_xid_continue_DEPENDENCIES) 
        @rm -f test-pr_xid_continue$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_xid_continue_OBJECTS) $(test_pr_xid_continue_LDADD) $(LIBS)
 unictype/test-pr_xid_start.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_xid_start$(EXEEXT): $(test_pr_xid_start_OBJECTS) $(test_pr_xid_start_DEPENDENCIES) 
+
+test-pr_xid_start$(EXEEXT): $(test_pr_xid_start_OBJECTS) $(test_pr_xid_start_DEPENDENCIES) $(EXTRA_test_pr_xid_start_DEPENDENCIES) 
        @rm -f test-pr_xid_start$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_xid_start_OBJECTS) $(test_pr_xid_start_LDADD) $(LIBS)
 unictype/test-pr_zero_width.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-pr_zero_width$(EXEEXT): $(test_pr_zero_width_OBJECTS) $(test_pr_zero_width_DEPENDENCIES) 
+
+test-pr_zero_width$(EXEEXT): $(test_pr_zero_width_OBJECTS) $(test_pr_zero_width_DEPENDENCIES) $(EXTRA_test_pr_zero_width_DEPENDENCIES) 
        @rm -f test-pr_zero_width$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pr_zero_width_OBJECTS) $(test_pr_zero_width_LDADD) $(LIBS)
-test-printf-frexp$(EXEEXT): $(test_printf_frexp_OBJECTS) $(test_printf_frexp_DEPENDENCIES) 
+
+test-printf-frexp$(EXEEXT): $(test_printf_frexp_OBJECTS) $(test_printf_frexp_DEPENDENCIES) $(EXTRA_test_printf_frexp_DEPENDENCIES) 
        @rm -f test-printf-frexp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_printf_frexp_OBJECTS) $(test_printf_frexp_LDADD) $(LIBS)
-test-printf-frexpl$(EXEEXT): $(test_printf_frexpl_OBJECTS) $(test_printf_frexpl_DEPENDENCIES) 
+
+test-printf-frexpl$(EXEEXT): $(test_printf_frexpl_OBJECTS) $(test_printf_frexpl_DEPENDENCIES) $(EXTRA_test_printf_frexpl_DEPENDENCIES) 
        @rm -f test-printf-frexpl$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_printf_frexpl_OBJECTS) $(test_printf_frexpl_LDADD) $(LIBS)
 unictype/test-scripts.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-scripts$(EXEEXT): $(test_scripts_OBJECTS) $(test_scripts_DEPENDENCIES) 
+
+test-scripts$(EXEEXT): $(test_scripts_OBJECTS) $(test_scripts_DEPENDENCIES) $(EXTRA_test_scripts_DEPENDENCIES) 
        @rm -f test-scripts$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_scripts_OBJECTS) $(test_scripts_LDADD) $(LIBS)
-test-setenv$(EXEEXT): $(test_setenv_OBJECTS) $(test_setenv_DEPENDENCIES) 
+
+test-setenv$(EXEEXT): $(test_setenv_OBJECTS) $(test_setenv_DEPENDENCIES) $(EXTRA_test_setenv_DEPENDENCIES) 
        @rm -f test-setenv$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_setenv_OBJECTS) $(test_setenv_LDADD) $(LIBS)
-test-signbit$(EXEEXT): $(test_signbit_OBJECTS) $(test_signbit_DEPENDENCIES) 
+
+test-setlocale1$(EXEEXT): $(test_setlocale1_OBJECTS) $(test_setlocale1_DEPENDENCIES) $(EXTRA_test_setlocale1_DEPENDENCIES) 
+       @rm -f test-setlocale1$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_setlocale1_OBJECTS) $(test_setlocale1_LDADD) $(LIBS)
+
+test-setlocale2$(EXEEXT): $(test_setlocale2_OBJECTS) $(test_setlocale2_DEPENDENCIES) $(EXTRA_test_setlocale2_DEPENDENCIES) 
+       @rm -f test-setlocale2$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_setlocale2_OBJECTS) $(test_setlocale2_LDADD) $(LIBS)
+
+test-signbit$(EXEEXT): $(test_signbit_OBJECTS) $(test_signbit_DEPENDENCIES) $(EXTRA_test_signbit_DEPENDENCIES) 
        @rm -f test-signbit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_signbit_OBJECTS) $(test_signbit_LDADD) $(LIBS)
-test-stdbool$(EXEEXT): $(test_stdbool_OBJECTS) $(test_stdbool_DEPENDENCIES) 
+
+test-stdbool$(EXEEXT): $(test_stdbool_OBJECTS) $(test_stdbool_DEPENDENCIES) $(EXTRA_test_stdbool_DEPENDENCIES) 
        @rm -f test-stdbool$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stdbool_OBJECTS) $(test_stdbool_LDADD) $(LIBS)
-test-stddef$(EXEEXT): $(test_stddef_OBJECTS) $(test_stddef_DEPENDENCIES) 
+
+test-stddef$(EXEEXT): $(test_stddef_OBJECTS) $(test_stddef_DEPENDENCIES) $(EXTRA_test_stddef_DEPENDENCIES) 
        @rm -f test-stddef$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stddef_OBJECTS) $(test_stddef_LDADD) $(LIBS)
-test-stdint$(EXEEXT): $(test_stdint_OBJECTS) $(test_stdint_DEPENDENCIES) 
+
+test-stdint$(EXEEXT): $(test_stdint_OBJECTS) $(test_stdint_DEPENDENCIES) $(EXTRA_test_stdint_DEPENDENCIES) 
        @rm -f test-stdint$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stdint_OBJECTS) $(test_stdint_LDADD) $(LIBS)
-test-stdlib$(EXEEXT): $(test_stdlib_OBJECTS) $(test_stdlib_DEPENDENCIES) 
+
+test-stdio$(EXEEXT): $(test_stdio_OBJECTS) $(test_stdio_DEPENDENCIES) $(EXTRA_test_stdio_DEPENDENCIES) 
+       @rm -f test-stdio$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_stdio_OBJECTS) $(test_stdio_LDADD) $(LIBS)
+
+test-stdlib$(EXEEXT): $(test_stdlib_OBJECTS) $(test_stdlib_DEPENDENCIES) $(EXTRA_test_stdlib_DEPENDENCIES) 
        @rm -f test-stdlib$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stdlib_OBJECTS) $(test_stdlib_LDADD) $(LIBS)
-test-strerror$(EXEEXT): $(test_strerror_OBJECTS) $(test_strerror_DEPENDENCIES) 
+
+test-strerror$(EXEEXT): $(test_strerror_OBJECTS) $(test_strerror_DEPENDENCIES) $(EXTRA_test_strerror_DEPENDENCIES) 
        @rm -f test-strerror$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_strerror_OBJECTS) $(test_strerror_LDADD) $(LIBS)
-test-striconveh$(EXEEXT): $(test_striconveh_OBJECTS) $(test_striconveh_DEPENDENCIES) 
+
+test-striconveh$(EXEEXT): $(test_striconveh_OBJECTS) $(test_striconveh_DEPENDENCIES) $(EXTRA_test_striconveh_DEPENDENCIES) 
        @rm -f test-striconveh$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_striconveh_OBJECTS) $(test_striconveh_LDADD) $(LIBS)
-test-striconveha$(EXEEXT): $(test_striconveha_OBJECTS) $(test_striconveha_DEPENDENCIES) 
+
+test-striconveha$(EXEEXT): $(test_striconveha_OBJECTS) $(test_striconveha_DEPENDENCIES) $(EXTRA_test_striconveha_DEPENDENCIES) 
        @rm -f test-striconveha$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_striconveha_OBJECTS) $(test_striconveha_LDADD) $(LIBS)
-test-string$(EXEEXT): $(test_string_OBJECTS) $(test_string_DEPENDENCIES) 
+
+test-string$(EXEEXT): $(test_string_OBJECTS) $(test_string_DEPENDENCIES) $(EXTRA_test_string_DEPENDENCIES) 
        @rm -f test-string$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_string_OBJECTS) $(test_string_LDADD) $(LIBS)
-test-strncat$(EXEEXT): $(test_strncat_OBJECTS) $(test_strncat_DEPENDENCIES) 
+
+test-strncat$(EXEEXT): $(test_strncat_OBJECTS) $(test_strncat_DEPENDENCIES) $(EXTRA_test_strncat_DEPENDENCIES) 
        @rm -f test-strncat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_strncat_OBJECTS) $(test_strncat_LDADD) $(LIBS)
+
+test-strstr$(EXEEXT): $(test_strstr_OBJECTS) $(test_strstr_DEPENDENCIES) $(EXTRA_test_strstr_DEPENDENCIES) 
+       @rm -f test-strstr$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_strstr_OBJECTS) $(test_strstr_LDADD) $(LIBS)
 unictype/test-sy_c_ident.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-sy_c_ident$(EXEEXT): $(test_sy_c_ident_OBJECTS) $(test_sy_c_ident_DEPENDENCIES) 
+
+test-sy_c_ident$(EXEEXT): $(test_sy_c_ident_OBJECTS) $(test_sy_c_ident_DEPENDENCIES) $(EXTRA_test_sy_c_ident_DEPENDENCIES) 
        @rm -f test-sy_c_ident$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_sy_c_ident_OBJECTS) $(test_sy_c_ident_LDADD) $(LIBS)
 unictype/test-sy_c_whitespace.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-sy_c_whitespace$(EXEEXT): $(test_sy_c_whitespace_OBJECTS) $(test_sy_c_whitespace_DEPENDENCIES) 
+
+test-sy_c_whitespace$(EXEEXT): $(test_sy_c_whitespace_OBJECTS) $(test_sy_c_whitespace_DEPENDENCIES) $(EXTRA_test_sy_c_whitespace_DEPENDENCIES) 
        @rm -f test-sy_c_whitespace$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_sy_c_whitespace_OBJECTS) $(test_sy_c_whitespace_LDADD) $(LIBS)
 unictype/test-sy_java_ident.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-sy_java_ident$(EXEEXT): $(test_sy_java_ident_OBJECTS) $(test_sy_java_ident_DEPENDENCIES) 
+
+test-sy_java_ident$(EXEEXT): $(test_sy_java_ident_OBJECTS) $(test_sy_java_ident_DEPENDENCIES) $(EXTRA_test_sy_java_ident_DEPENDENCIES) 
        @rm -f test-sy_java_ident$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_sy_java_ident_OBJECTS) $(test_sy_java_ident_LDADD) $(LIBS)
 unictype/test-sy_java_whitespace.$(OBJEXT): unictype/$(am__dirstamp) \
        unictype/$(DEPDIR)/$(am__dirstamp)
-test-sy_java_whitespace$(EXEEXT): $(test_sy_java_whitespace_OBJECTS) $(test_sy_java_whitespace_DEPENDENCIES) 
+
+test-sy_java_whitespace$(EXEEXT): $(test_sy_java_whitespace_OBJECTS) $(test_sy_java_whitespace_DEPENDENCIES) $(EXTRA_test_sy_java_whitespace_DEPENDENCIES) 
        @rm -f test-sy_java_whitespace$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_sy_java_whitespace_OBJECTS) $(test_sy_java_whitespace_LDADD) $(LIBS)
+
+test-sys_types$(EXEEXT): $(test_sys_types_OBJECTS) $(test_sys_types_DEPENDENCIES) $(EXTRA_test_sys_types_DEPENDENCIES) 
+       @rm -f test-sys_types$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_sys_types_OBJECTS) $(test_sys_types_LDADD) $(LIBS)
+
+test-thread_create$(EXEEXT): $(test_thread_create_OBJECTS) $(test_thread_create_DEPENDENCIES) $(EXTRA_test_thread_create_DEPENDENCIES) 
+       @rm -f test-thread_create$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_thread_create_OBJECTS) $(test_thread_create_LDADD) $(LIBS)
+
+test-thread_self$(EXEEXT): $(test_thread_self_OBJECTS) $(test_thread_self_DEPENDENCIES) $(EXTRA_test_thread_self_DEPENDENCIES) 
+       @rm -f test-thread_self$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_thread_self_OBJECTS) $(test_thread_self_LDADD) $(LIBS)
 unistdio/$(am__dirstamp):
        @$(MKDIR_P) unistdio
        @: > unistdio/$(am__dirstamp)
@@ -6115,22 +7554,26 @@ unistdio/$(DEPDIR)/$(am__dirstamp):
        @: > unistdio/$(DEPDIR)/$(am__dirstamp)
 unistdio/test-u16-asnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u16-asnprintf1$(EXEEXT): $(test_u16_asnprintf1_OBJECTS) $(test_u16_asnprintf1_DEPENDENCIES) 
+
+test-u16-asnprintf1$(EXEEXT): $(test_u16_asnprintf1_OBJECTS) $(test_u16_asnprintf1_DEPENDENCIES) $(EXTRA_test_u16_asnprintf1_DEPENDENCIES) 
        @rm -f test-u16-asnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_asnprintf1_OBJECTS) $(test_u16_asnprintf1_LDADD) $(LIBS)
 unicase/test-u16-casecmp.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u16-casecmp$(EXEEXT): $(test_u16_casecmp_OBJECTS) $(test_u16_casecmp_DEPENDENCIES) 
+
+test-u16-casecmp$(EXEEXT): $(test_u16_casecmp_OBJECTS) $(test_u16_casecmp_DEPENDENCIES) $(EXTRA_test_u16_casecmp_DEPENDENCIES) 
        @rm -f test-u16-casecmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_casecmp_OBJECTS) $(test_u16_casecmp_LDADD) $(LIBS)
 unicase/test-u16-casecoll.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u16-casecoll$(EXEEXT): $(test_u16_casecoll_OBJECTS) $(test_u16_casecoll_DEPENDENCIES) 
+
+test-u16-casecoll$(EXEEXT): $(test_u16_casecoll_OBJECTS) $(test_u16_casecoll_DEPENDENCIES) $(EXTRA_test_u16_casecoll_DEPENDENCIES) 
        @rm -f test-u16-casecoll$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_casecoll_OBJECTS) $(test_u16_casecoll_LDADD) $(LIBS)
 unicase/test-u16-casefold.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u16-casefold$(EXEEXT): $(test_u16_casefold_OBJECTS) $(test_u16_casefold_DEPENDENCIES) 
+
+test-u16-casefold$(EXEEXT): $(test_u16_casefold_OBJECTS) $(test_u16_casefold_DEPENDENCIES) $(EXTRA_test_u16_casefold_DEPENDENCIES) 
        @rm -f test-u16-casefold$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_casefold_OBJECTS) $(test_u16_casefold_LDADD) $(LIBS)
 unistr/$(am__dirstamp):
@@ -6141,22 +7584,26 @@ unistr/$(DEPDIR)/$(am__dirstamp):
        @: > unistr/$(DEPDIR)/$(am__dirstamp)
 unistr/test-u16-check.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-check$(EXEEXT): $(test_u16_check_OBJECTS) $(test_u16_check_DEPENDENCIES) 
+
+test-u16-check$(EXEEXT): $(test_u16_check_OBJECTS) $(test_u16_check_DEPENDENCIES) $(EXTRA_test_u16_check_DEPENDENCIES) 
        @rm -f test-u16-check$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_check_OBJECTS) $(test_u16_check_LDADD) $(LIBS)
 unistr/test-u16-chr.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-chr$(EXEEXT): $(test_u16_chr_OBJECTS) $(test_u16_chr_DEPENDENCIES) 
+
+test-u16-chr$(EXEEXT): $(test_u16_chr_OBJECTS) $(test_u16_chr_DEPENDENCIES) $(EXTRA_test_u16_chr_DEPENDENCIES) 
        @rm -f test-u16-chr$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_chr_OBJECTS) $(test_u16_chr_LDADD) $(LIBS)
 unistr/test-u16-cmp.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-cmp$(EXEEXT): $(test_u16_cmp_OBJECTS) $(test_u16_cmp_DEPENDENCIES) 
+
+test-u16-cmp$(EXEEXT): $(test_u16_cmp_OBJECTS) $(test_u16_cmp_DEPENDENCIES) $(EXTRA_test_u16_cmp_DEPENDENCIES) 
        @rm -f test-u16-cmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_cmp_OBJECTS) $(test_u16_cmp_LDADD) $(LIBS)
 unistr/test-u16-cmp2.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-cmp2$(EXEEXT): $(test_u16_cmp2_OBJECTS) $(test_u16_cmp2_DEPENDENCIES) 
+
+test-u16-cmp2$(EXEEXT): $(test_u16_cmp2_OBJECTS) $(test_u16_cmp2_DEPENDENCIES) $(EXTRA_test_u16_cmp2_DEPENDENCIES) 
        @rm -f test-u16-cmp2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_cmp2_OBJECTS) $(test_u16_cmp2_LDADD) $(LIBS)
 uniconv/$(am__dirstamp):
@@ -6167,92 +7614,134 @@ uniconv/$(DEPDIR)/$(am__dirstamp):
        @: > uniconv/$(DEPDIR)/$(am__dirstamp)
 uniconv/test-u16-conv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u16-conv-from-enc$(EXEEXT): $(test_u16_conv_from_enc_OBJECTS) $(test_u16_conv_from_enc_DEPENDENCIES) 
+
+test-u16-conv-from-enc$(EXEEXT): $(test_u16_conv_from_enc_OBJECTS) $(test_u16_conv_from_enc_DEPENDENCIES) $(EXTRA_test_u16_conv_from_enc_DEPENDENCIES) 
        @rm -f test-u16-conv-from-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_conv_from_enc_OBJECTS) $(test_u16_conv_from_enc_LDADD) $(LIBS)
 uniconv/test-u16-conv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u16-conv-to-enc$(EXEEXT): $(test_u16_conv_to_enc_OBJECTS) $(test_u16_conv_to_enc_DEPENDENCIES) 
+
+test-u16-conv-to-enc$(EXEEXT): $(test_u16_conv_to_enc_OBJECTS) $(test_u16_conv_to_enc_DEPENDENCIES) $(EXTRA_test_u16_conv_to_enc_DEPENDENCIES) 
        @rm -f test-u16-conv-to-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_conv_to_enc_OBJECTS) $(test_u16_conv_to_enc_LDADD) $(LIBS)
 unistr/test-u16-cpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-cpy$(EXEEXT): $(test_u16_cpy_OBJECTS) $(test_u16_cpy_DEPENDENCIES) 
+
+test-u16-cpy$(EXEEXT): $(test_u16_cpy_OBJECTS) $(test_u16_cpy_DEPENDENCIES) $(EXTRA_test_u16_cpy_DEPENDENCIES) 
        @rm -f test-u16-cpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_cpy_OBJECTS) $(test_u16_cpy_LDADD) $(LIBS)
 unistr/test-u16-cpy-alloc.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-cpy-alloc$(EXEEXT): $(test_u16_cpy_alloc_OBJECTS) $(test_u16_cpy_alloc_DEPENDENCIES) 
+
+test-u16-cpy-alloc$(EXEEXT): $(test_u16_cpy_alloc_OBJECTS) $(test_u16_cpy_alloc_DEPENDENCIES) $(EXTRA_test_u16_cpy_alloc_DEPENDENCIES) 
        @rm -f test-u16-cpy-alloc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_cpy_alloc_OBJECTS) $(test_u16_cpy_alloc_LDADD) $(LIBS)
+unigbrk/$(am__dirstamp):
+       @$(MKDIR_P) unigbrk
+       @: > unigbrk/$(am__dirstamp)
+unigbrk/$(DEPDIR)/$(am__dirstamp):
+       @$(MKDIR_P) unigbrk/$(DEPDIR)
+       @: > unigbrk/$(DEPDIR)/$(am__dirstamp)
+unigbrk/test-u16-grapheme-breaks.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-u16-grapheme-breaks$(EXEEXT): $(test_u16_grapheme_breaks_OBJECTS) $(test_u16_grapheme_breaks_DEPENDENCIES) $(EXTRA_test_u16_grapheme_breaks_DEPENDENCIES) 
+       @rm -f test-u16-grapheme-breaks$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u16_grapheme_breaks_OBJECTS) $(test_u16_grapheme_breaks_LDADD) $(LIBS)
+unigbrk/test-u16-grapheme-next.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-u16-grapheme-next$(EXEEXT): $(test_u16_grapheme_next_OBJECTS) $(test_u16_grapheme_next_DEPENDENCIES) $(EXTRA_test_u16_grapheme_next_DEPENDENCIES) 
+       @rm -f test-u16-grapheme-next$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u16_grapheme_next_OBJECTS) $(test_u16_grapheme_next_LDADD) $(LIBS)
+unigbrk/test-u16-grapheme-prev.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-u16-grapheme-prev$(EXEEXT): $(test_u16_grapheme_prev_OBJECTS) $(test_u16_grapheme_prev_DEPENDENCIES) $(EXTRA_test_u16_grapheme_prev_DEPENDENCIES) 
+       @rm -f test-u16-grapheme-prev$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u16_grapheme_prev_OBJECTS) $(test_u16_grapheme_prev_LDADD) $(LIBS)
 unicase/test-u16-is-cased.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u16-is-cased$(EXEEXT): $(test_u16_is_cased_OBJECTS) $(test_u16_is_cased_DEPENDENCIES) 
+
+test-u16-is-cased$(EXEEXT): $(test_u16_is_cased_OBJECTS) $(test_u16_is_cased_DEPENDENCIES) $(EXTRA_test_u16_is_cased_DEPENDENCIES) 
        @rm -f test-u16-is-cased$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_is_cased_OBJECTS) $(test_u16_is_cased_LDADD) $(LIBS)
 unicase/test-u16-is-casefolded.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u16-is-casefolded$(EXEEXT): $(test_u16_is_casefolded_OBJECTS) $(test_u16_is_casefolded_DEPENDENCIES) 
+
+test-u16-is-casefolded$(EXEEXT): $(test_u16_is_casefolded_OBJECTS) $(test_u16_is_casefolded_DEPENDENCIES) $(EXTRA_test_u16_is_casefolded_DEPENDENCIES) 
        @rm -f test-u16-is-casefolded$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_is_casefolded_OBJECTS) $(test_u16_is_casefolded_LDADD) $(LIBS)
 unicase/test-u16-is-lowercase.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u16-is-lowercase$(EXEEXT): $(test_u16_is_lowercase_OBJECTS) $(test_u16_is_lowercase_DEPENDENCIES) 
+
+test-u16-is-lowercase$(EXEEXT): $(test_u16_is_lowercase_OBJECTS) $(test_u16_is_lowercase_DEPENDENCIES) $(EXTRA_test_u16_is_lowercase_DEPENDENCIES) 
        @rm -f test-u16-is-lowercase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_is_lowercase_OBJECTS) $(test_u16_is_lowercase_LDADD) $(LIBS)
 unicase/test-u16-is-titlecase.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u16-is-titlecase$(EXEEXT): $(test_u16_is_titlecase_OBJECTS) $(test_u16_is_titlecase_DEPENDENCIES) 
+
+test-u16-is-titlecase$(EXEEXT): $(test_u16_is_titlecase_OBJECTS) $(test_u16_is_titlecase_DEPENDENCIES) $(EXTRA_test_u16_is_titlecase_DEPENDENCIES) 
        @rm -f test-u16-is-titlecase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_is_titlecase_OBJECTS) $(test_u16_is_titlecase_LDADD) $(LIBS)
 unicase/test-u16-is-uppercase.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u16-is-uppercase$(EXEEXT): $(test_u16_is_uppercase_OBJECTS) $(test_u16_is_uppercase_DEPENDENCIES) 
+
+test-u16-is-uppercase$(EXEEXT): $(test_u16_is_uppercase_OBJECTS) $(test_u16_is_uppercase_DEPENDENCIES) $(EXTRA_test_u16_is_uppercase_DEPENDENCIES) 
        @rm -f test-u16-is-uppercase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_is_uppercase_OBJECTS) $(test_u16_is_uppercase_LDADD) $(LIBS)
 unistr/test-u16-mblen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-mblen$(EXEEXT): $(test_u16_mblen_OBJECTS) $(test_u16_mblen_DEPENDENCIES) 
+
+test-u16-mblen$(EXEEXT): $(test_u16_mblen_OBJECTS) $(test_u16_mblen_DEPENDENCIES) $(EXTRA_test_u16_mblen_DEPENDENCIES) 
        @rm -f test-u16-mblen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_mblen_OBJECTS) $(test_u16_mblen_LDADD) $(LIBS)
 unistr/test-u16-mbsnlen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-mbsnlen$(EXEEXT): $(test_u16_mbsnlen_OBJECTS) $(test_u16_mbsnlen_DEPENDENCIES) 
+
+test-u16-mbsnlen$(EXEEXT): $(test_u16_mbsnlen_OBJECTS) $(test_u16_mbsnlen_DEPENDENCIES) $(EXTRA_test_u16_mbsnlen_DEPENDENCIES) 
        @rm -f test-u16-mbsnlen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_mbsnlen_OBJECTS) $(test_u16_mbsnlen_LDADD) $(LIBS)
 unistr/test-u16-mbtouc.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-mbtouc$(EXEEXT): $(test_u16_mbtouc_OBJECTS) $(test_u16_mbtouc_DEPENDENCIES) 
+
+test-u16-mbtouc$(EXEEXT): $(test_u16_mbtouc_OBJECTS) $(test_u16_mbtouc_DEPENDENCIES) $(EXTRA_test_u16_mbtouc_DEPENDENCIES) 
        @rm -f test-u16-mbtouc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_mbtouc_OBJECTS) $(test_u16_mbtouc_LDADD) $(LIBS)
 unistr/test-u16-mbtouc-unsafe.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-mbtouc-unsafe$(EXEEXT): $(test_u16_mbtouc_unsafe_OBJECTS) $(test_u16_mbtouc_unsafe_DEPENDENCIES) 
+
+test-u16-mbtouc-unsafe$(EXEEXT): $(test_u16_mbtouc_unsafe_OBJECTS) $(test_u16_mbtouc_unsafe_DEPENDENCIES) $(EXTRA_test_u16_mbtouc_unsafe_DEPENDENCIES) 
        @rm -f test-u16-mbtouc-unsafe$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_mbtouc_unsafe_OBJECTS) $(test_u16_mbtouc_unsafe_LDADD) $(LIBS)
 unistr/test-u16-mbtoucr.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-mbtoucr$(EXEEXT): $(test_u16_mbtoucr_OBJECTS) $(test_u16_mbtoucr_DEPENDENCIES) 
+
+test-u16-mbtoucr$(EXEEXT): $(test_u16_mbtoucr_OBJECTS) $(test_u16_mbtoucr_DEPENDENCIES) $(EXTRA_test_u16_mbtoucr_DEPENDENCIES) 
        @rm -f test-u16-mbtoucr$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_mbtoucr_OBJECTS) $(test_u16_mbtoucr_LDADD) $(LIBS)
 unistr/test-u16-move.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-move$(EXEEXT): $(test_u16_move_OBJECTS) $(test_u16_move_DEPENDENCIES) 
+
+test-u16-move$(EXEEXT): $(test_u16_move_OBJECTS) $(test_u16_move_DEPENDENCIES) $(EXTRA_test_u16_move_DEPENDENCIES) 
        @rm -f test-u16-move$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_move_OBJECTS) $(test_u16_move_LDADD) $(LIBS)
 unistr/test-u16-next.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-next$(EXEEXT): $(test_u16_next_OBJECTS) $(test_u16_next_DEPENDENCIES) 
+
+test-u16-next$(EXEEXT): $(test_u16_next_OBJECTS) $(test_u16_next_DEPENDENCIES) $(EXTRA_test_u16_next_DEPENDENCIES) 
        @rm -f test-u16-next$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_next_OBJECTS) $(test_u16_next_LDADD) $(LIBS)
 uninorm/test-u16-normcmp.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-u16-normcmp$(EXEEXT): $(test_u16_normcmp_OBJECTS) $(test_u16_normcmp_DEPENDENCIES) 
+
+test-u16-normcmp$(EXEEXT): $(test_u16_normcmp_OBJECTS) $(test_u16_normcmp_DEPENDENCIES) $(EXTRA_test_u16_normcmp_DEPENDENCIES) 
        @rm -f test-u16-normcmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_normcmp_OBJECTS) $(test_u16_normcmp_LDADD) $(LIBS)
 uninorm/test-u16-normcoll.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-u16-normcoll$(EXEEXT): $(test_u16_normcoll_OBJECTS) $(test_u16_normcoll_DEPENDENCIES) 
+
+test-u16-normcoll$(EXEEXT): $(test_u16_normcoll_OBJECTS) $(test_u16_normcoll_DEPENDENCIES) $(EXTRA_test_u16_normcoll_DEPENDENCIES) 
        @rm -f test-u16-normcoll$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_normcoll_OBJECTS) $(test_u16_normcoll_LDADD) $(LIBS)
 unilbrk/$(am__dirstamp):
@@ -6263,99 +7752,130 @@ unilbrk/$(DEPDIR)/$(am__dirstamp):
        @: > unilbrk/$(DEPDIR)/$(am__dirstamp)
 unilbrk/test-u16-possible-linebreaks.$(OBJEXT):  \
        unilbrk/$(am__dirstamp) unilbrk/$(DEPDIR)/$(am__dirstamp)
-test-u16-possible-linebreaks$(EXEEXT): $(test_u16_possible_linebreaks_OBJECTS) $(test_u16_possible_linebreaks_DEPENDENCIES) 
+
+test-u16-possible-linebreaks$(EXEEXT): $(test_u16_possible_linebreaks_OBJECTS) $(test_u16_possible_linebreaks_DEPENDENCIES) $(EXTRA_test_u16_possible_linebreaks_DEPENDENCIES) 
        @rm -f test-u16-possible-linebreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_possible_linebreaks_OBJECTS) $(test_u16_possible_linebreaks_LDADD) $(LIBS)
 unistr/test-u16-prev.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-prev$(EXEEXT): $(test_u16_prev_OBJECTS) $(test_u16_prev_DEPENDENCIES) 
+
+test-u16-prev$(EXEEXT): $(test_u16_prev_OBJECTS) $(test_u16_prev_DEPENDENCIES) $(EXTRA_test_u16_prev_DEPENDENCIES) 
        @rm -f test-u16-prev$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_prev_OBJECTS) $(test_u16_prev_LDADD) $(LIBS)
 unistr/test-u16-set.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-set$(EXEEXT): $(test_u16_set_OBJECTS) $(test_u16_set_DEPENDENCIES) 
+
+test-u16-set$(EXEEXT): $(test_u16_set_OBJECTS) $(test_u16_set_DEPENDENCIES) $(EXTRA_test_u16_set_DEPENDENCIES) 
        @rm -f test-u16-set$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_set_OBJECTS) $(test_u16_set_LDADD) $(LIBS)
 unistr/test-u16-stpcpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-stpcpy$(EXEEXT): $(test_u16_stpcpy_OBJECTS) $(test_u16_stpcpy_DEPENDENCIES) 
+
+test-u16-stpcpy$(EXEEXT): $(test_u16_stpcpy_OBJECTS) $(test_u16_stpcpy_DEPENDENCIES) $(EXTRA_test_u16_stpcpy_DEPENDENCIES) 
        @rm -f test-u16-stpcpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_stpcpy_OBJECTS) $(test_u16_stpcpy_LDADD) $(LIBS)
 unistr/test-u16-stpncpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-stpncpy$(EXEEXT): $(test_u16_stpncpy_OBJECTS) $(test_u16_stpncpy_DEPENDENCIES) 
+
+test-u16-stpncpy$(EXEEXT): $(test_u16_stpncpy_OBJECTS) $(test_u16_stpncpy_DEPENDENCIES) $(EXTRA_test_u16_stpncpy_DEPENDENCIES) 
        @rm -f test-u16-stpncpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_stpncpy_OBJECTS) $(test_u16_stpncpy_LDADD) $(LIBS)
 unistr/test-u16-strcat.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strcat$(EXEEXT): $(test_u16_strcat_OBJECTS) $(test_u16_strcat_DEPENDENCIES) 
+
+test-u16-strcat$(EXEEXT): $(test_u16_strcat_OBJECTS) $(test_u16_strcat_DEPENDENCIES) $(EXTRA_test_u16_strcat_DEPENDENCIES) 
        @rm -f test-u16-strcat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strcat_OBJECTS) $(test_u16_strcat_LDADD) $(LIBS)
+unistr/test-u16-strchr.$(OBJEXT): unistr/$(am__dirstamp) \
+       unistr/$(DEPDIR)/$(am__dirstamp)
+
+test-u16-strchr$(EXEEXT): $(test_u16_strchr_OBJECTS) $(test_u16_strchr_DEPENDENCIES) $(EXTRA_test_u16_strchr_DEPENDENCIES) 
+       @rm -f test-u16-strchr$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u16_strchr_OBJECTS) $(test_u16_strchr_LDADD) $(LIBS)
 unistr/test-u16-strcmp.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strcmp$(EXEEXT): $(test_u16_strcmp_OBJECTS) $(test_u16_strcmp_DEPENDENCIES) 
+
+test-u16-strcmp$(EXEEXT): $(test_u16_strcmp_OBJECTS) $(test_u16_strcmp_DEPENDENCIES) $(EXTRA_test_u16_strcmp_DEPENDENCIES) 
        @rm -f test-u16-strcmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strcmp_OBJECTS) $(test_u16_strcmp_LDADD) $(LIBS)
 unistr/test-u16-strcoll.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strcoll$(EXEEXT): $(test_u16_strcoll_OBJECTS) $(test_u16_strcoll_DEPENDENCIES) 
+
+test-u16-strcoll$(EXEEXT): $(test_u16_strcoll_OBJECTS) $(test_u16_strcoll_DEPENDENCIES) $(EXTRA_test_u16_strcoll_DEPENDENCIES) 
        @rm -f test-u16-strcoll$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strcoll_OBJECTS) $(test_u16_strcoll_LDADD) $(LIBS)
 uniconv/test-u16-strconv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u16-strconv-from-enc$(EXEEXT): $(test_u16_strconv_from_enc_OBJECTS) $(test_u16_strconv_from_enc_DEPENDENCIES) 
+
+test-u16-strconv-from-enc$(EXEEXT): $(test_u16_strconv_from_enc_OBJECTS) $(test_u16_strconv_from_enc_DEPENDENCIES) $(EXTRA_test_u16_strconv_from_enc_DEPENDENCIES) 
        @rm -f test-u16-strconv-from-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strconv_from_enc_OBJECTS) $(test_u16_strconv_from_enc_LDADD) $(LIBS)
 uniconv/test-u16-strconv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u16-strconv-to-enc$(EXEEXT): $(test_u16_strconv_to_enc_OBJECTS) $(test_u16_strconv_to_enc_DEPENDENCIES) 
+
+test-u16-strconv-to-enc$(EXEEXT): $(test_u16_strconv_to_enc_OBJECTS) $(test_u16_strconv_to_enc_DEPENDENCIES) $(EXTRA_test_u16_strconv_to_enc_DEPENDENCIES) 
        @rm -f test-u16-strconv-to-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strconv_to_enc_OBJECTS) $(test_u16_strconv_to_enc_LDADD) $(LIBS)
 unistr/test-u16-strcpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strcpy$(EXEEXT): $(test_u16_strcpy_OBJECTS) $(test_u16_strcpy_DEPENDENCIES) 
+
+test-u16-strcpy$(EXEEXT): $(test_u16_strcpy_OBJECTS) $(test_u16_strcpy_DEPENDENCIES) $(EXTRA_test_u16_strcpy_DEPENDENCIES) 
        @rm -f test-u16-strcpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strcpy_OBJECTS) $(test_u16_strcpy_LDADD) $(LIBS)
 unistr/test-u16-strdup.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strdup$(EXEEXT): $(test_u16_strdup_OBJECTS) $(test_u16_strdup_DEPENDENCIES) 
+
+test-u16-strdup$(EXEEXT): $(test_u16_strdup_OBJECTS) $(test_u16_strdup_DEPENDENCIES) $(EXTRA_test_u16_strdup_DEPENDENCIES) 
        @rm -f test-u16-strdup$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strdup_OBJECTS) $(test_u16_strdup_LDADD) $(LIBS)
 unistr/test-u16-strlen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strlen$(EXEEXT): $(test_u16_strlen_OBJECTS) $(test_u16_strlen_DEPENDENCIES) 
+
+test-u16-strlen$(EXEEXT): $(test_u16_strlen_OBJECTS) $(test_u16_strlen_DEPENDENCIES) $(EXTRA_test_u16_strlen_DEPENDENCIES) 
        @rm -f test-u16-strlen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strlen_OBJECTS) $(test_u16_strlen_LDADD) $(LIBS)
 unistr/test-u16-strmblen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strmblen$(EXEEXT): $(test_u16_strmblen_OBJECTS) $(test_u16_strmblen_DEPENDENCIES) 
+
+test-u16-strmblen$(EXEEXT): $(test_u16_strmblen_OBJECTS) $(test_u16_strmblen_DEPENDENCIES) $(EXTRA_test_u16_strmblen_DEPENDENCIES) 
        @rm -f test-u16-strmblen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strmblen_OBJECTS) $(test_u16_strmblen_LDADD) $(LIBS)
 unistr/test-u16-strmbtouc.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strmbtouc$(EXEEXT): $(test_u16_strmbtouc_OBJECTS) $(test_u16_strmbtouc_DEPENDENCIES) 
+
+test-u16-strmbtouc$(EXEEXT): $(test_u16_strmbtouc_OBJECTS) $(test_u16_strmbtouc_DEPENDENCIES) $(EXTRA_test_u16_strmbtouc_DEPENDENCIES) 
        @rm -f test-u16-strmbtouc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strmbtouc_OBJECTS) $(test_u16_strmbtouc_LDADD) $(LIBS)
 unistr/test-u16-strncat.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strncat$(EXEEXT): $(test_u16_strncat_OBJECTS) $(test_u16_strncat_DEPENDENCIES) 
+
+test-u16-strncat$(EXEEXT): $(test_u16_strncat_OBJECTS) $(test_u16_strncat_DEPENDENCIES) $(EXTRA_test_u16_strncat_DEPENDENCIES) 
        @rm -f test-u16-strncat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strncat_OBJECTS) $(test_u16_strncat_LDADD) $(LIBS)
 unistr/test-u16-strncmp.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strncmp$(EXEEXT): $(test_u16_strncmp_OBJECTS) $(test_u16_strncmp_DEPENDENCIES) 
+
+test-u16-strncmp$(EXEEXT): $(test_u16_strncmp_OBJECTS) $(test_u16_strncmp_DEPENDENCIES) $(EXTRA_test_u16_strncmp_DEPENDENCIES) 
        @rm -f test-u16-strncmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strncmp_OBJECTS) $(test_u16_strncmp_LDADD) $(LIBS)
 unistr/test-u16-strncpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strncpy$(EXEEXT): $(test_u16_strncpy_OBJECTS) $(test_u16_strncpy_DEPENDENCIES) 
+
+test-u16-strncpy$(EXEEXT): $(test_u16_strncpy_OBJECTS) $(test_u16_strncpy_DEPENDENCIES) $(EXTRA_test_u16_strncpy_DEPENDENCIES) 
        @rm -f test-u16-strncpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strncpy_OBJECTS) $(test_u16_strncpy_LDADD) $(LIBS)
 unistr/test-u16-strnlen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-strnlen$(EXEEXT): $(test_u16_strnlen_OBJECTS) $(test_u16_strnlen_DEPENDENCIES) 
+
+test-u16-strnlen$(EXEEXT): $(test_u16_strnlen_OBJECTS) $(test_u16_strnlen_DEPENDENCIES) $(EXTRA_test_u16_strnlen_DEPENDENCIES) 
        @rm -f test-u16-strnlen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strnlen_OBJECTS) $(test_u16_strnlen_LDADD) $(LIBS)
+unistr/test-u16-strstr.$(OBJEXT): unistr/$(am__dirstamp) \
+       unistr/$(DEPDIR)/$(am__dirstamp)
+
+test-u16-strstr$(EXEEXT): $(test_u16_strstr_OBJECTS) $(test_u16_strstr_DEPENDENCIES) $(EXTRA_test_u16_strstr_DEPENDENCIES) 
+       @rm -f test-u16-strstr$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u16_strstr_OBJECTS) $(test_u16_strstr_LDADD) $(LIBS)
 uniwidth/$(am__dirstamp):
        @$(MKDIR_P) uniwidth
        @: > uniwidth/$(am__dirstamp)
@@ -6364,77 +7884,92 @@ uniwidth/$(DEPDIR)/$(am__dirstamp):
        @: > uniwidth/$(DEPDIR)/$(am__dirstamp)
 uniwidth/test-u16-strwidth.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
-test-u16-strwidth$(EXEEXT): $(test_u16_strwidth_OBJECTS) $(test_u16_strwidth_DEPENDENCIES) 
+
+test-u16-strwidth$(EXEEXT): $(test_u16_strwidth_OBJECTS) $(test_u16_strwidth_DEPENDENCIES) $(EXTRA_test_u16_strwidth_DEPENDENCIES) 
        @rm -f test-u16-strwidth$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_strwidth_OBJECTS) $(test_u16_strwidth_LDADD) $(LIBS)
 unistr/test-u16-to-u32.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-to-u32$(EXEEXT): $(test_u16_to_u32_OBJECTS) $(test_u16_to_u32_DEPENDENCIES) 
+
+test-u16-to-u32$(EXEEXT): $(test_u16_to_u32_OBJECTS) $(test_u16_to_u32_DEPENDENCIES) $(EXTRA_test_u16_to_u32_DEPENDENCIES) 
        @rm -f test-u16-to-u32$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_to_u32_OBJECTS) $(test_u16_to_u32_LDADD) $(LIBS)
 unistr/test-u16-to-u8.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-to-u8$(EXEEXT): $(test_u16_to_u8_OBJECTS) $(test_u16_to_u8_DEPENDENCIES) 
+
+test-u16-to-u8$(EXEEXT): $(test_u16_to_u8_OBJECTS) $(test_u16_to_u8_DEPENDENCIES) $(EXTRA_test_u16_to_u8_DEPENDENCIES) 
        @rm -f test-u16-to-u8$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_to_u8_OBJECTS) $(test_u16_to_u8_LDADD) $(LIBS)
 unicase/test-u16-tolower.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u16-tolower$(EXEEXT): $(test_u16_tolower_OBJECTS) $(test_u16_tolower_DEPENDENCIES) 
+
+test-u16-tolower$(EXEEXT): $(test_u16_tolower_OBJECTS) $(test_u16_tolower_DEPENDENCIES) $(EXTRA_test_u16_tolower_DEPENDENCIES) 
        @rm -f test-u16-tolower$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_tolower_OBJECTS) $(test_u16_tolower_LDADD) $(LIBS)
 unicase/test-u16-totitle.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u16-totitle$(EXEEXT): $(test_u16_totitle_OBJECTS) $(test_u16_totitle_DEPENDENCIES) 
+
+test-u16-totitle$(EXEEXT): $(test_u16_totitle_OBJECTS) $(test_u16_totitle_DEPENDENCIES) $(EXTRA_test_u16_totitle_DEPENDENCIES) 
        @rm -f test-u16-totitle$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_totitle_OBJECTS) $(test_u16_totitle_LDADD) $(LIBS)
 unicase/test-u16-toupper.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u16-toupper$(EXEEXT): $(test_u16_toupper_OBJECTS) $(test_u16_toupper_DEPENDENCIES) 
+
+test-u16-toupper$(EXEEXT): $(test_u16_toupper_OBJECTS) $(test_u16_toupper_DEPENDENCIES) $(EXTRA_test_u16_toupper_DEPENDENCIES) 
        @rm -f test-u16-toupper$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_toupper_OBJECTS) $(test_u16_toupper_LDADD) $(LIBS)
 unistr/test-u16-uctomb.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u16-uctomb$(EXEEXT): $(test_u16_uctomb_OBJECTS) $(test_u16_uctomb_DEPENDENCIES) 
+
+test-u16-uctomb$(EXEEXT): $(test_u16_uctomb_OBJECTS) $(test_u16_uctomb_DEPENDENCIES) $(EXTRA_test_u16_uctomb_DEPENDENCIES) 
        @rm -f test-u16-uctomb$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_uctomb_OBJECTS) $(test_u16_uctomb_LDADD) $(LIBS)
 unistdio/test-u16-vasnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u16-vasnprintf1$(EXEEXT): $(test_u16_vasnprintf1_OBJECTS) $(test_u16_vasnprintf1_DEPENDENCIES) 
+
+test-u16-vasnprintf1$(EXEEXT): $(test_u16_vasnprintf1_OBJECTS) $(test_u16_vasnprintf1_DEPENDENCIES) $(EXTRA_test_u16_vasnprintf1_DEPENDENCIES) 
        @rm -f test-u16-vasnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_vasnprintf1_OBJECTS) $(test_u16_vasnprintf1_LDADD) $(LIBS)
 unistdio/test-u16-vasnprintf2.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u16-vasnprintf2$(EXEEXT): $(test_u16_vasnprintf2_OBJECTS) $(test_u16_vasnprintf2_DEPENDENCIES) 
+
+test-u16-vasnprintf2$(EXEEXT): $(test_u16_vasnprintf2_OBJECTS) $(test_u16_vasnprintf2_DEPENDENCIES) $(EXTRA_test_u16_vasnprintf2_DEPENDENCIES) 
        @rm -f test-u16-vasnprintf2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_vasnprintf2_OBJECTS) $(test_u16_vasnprintf2_LDADD) $(LIBS)
 unistdio/test-u16-vasnprintf3.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u16-vasnprintf3$(EXEEXT): $(test_u16_vasnprintf3_OBJECTS) $(test_u16_vasnprintf3_DEPENDENCIES) 
+
+test-u16-vasnprintf3$(EXEEXT): $(test_u16_vasnprintf3_OBJECTS) $(test_u16_vasnprintf3_DEPENDENCIES) $(EXTRA_test_u16_vasnprintf3_DEPENDENCIES) 
        @rm -f test-u16-vasnprintf3$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_vasnprintf3_OBJECTS) $(test_u16_vasnprintf3_LDADD) $(LIBS)
 unistdio/test-u16-vasprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u16-vasprintf1$(EXEEXT): $(test_u16_vasprintf1_OBJECTS) $(test_u16_vasprintf1_DEPENDENCIES) 
+
+test-u16-vasprintf1$(EXEEXT): $(test_u16_vasprintf1_OBJECTS) $(test_u16_vasprintf1_DEPENDENCIES) $(EXTRA_test_u16_vasprintf1_DEPENDENCIES) 
        @rm -f test-u16-vasprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_vasprintf1_OBJECTS) $(test_u16_vasprintf1_LDADD) $(LIBS)
 unistdio/test-u16-vsnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u16-vsnprintf1$(EXEEXT): $(test_u16_vsnprintf1_OBJECTS) $(test_u16_vsnprintf1_DEPENDENCIES) 
+
+test-u16-vsnprintf1$(EXEEXT): $(test_u16_vsnprintf1_OBJECTS) $(test_u16_vsnprintf1_DEPENDENCIES) $(EXTRA_test_u16_vsnprintf1_DEPENDENCIES) 
        @rm -f test-u16-vsnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_vsnprintf1_OBJECTS) $(test_u16_vsnprintf1_LDADD) $(LIBS)
 unistdio/test-u16-vsprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u16-vsprintf1$(EXEEXT): $(test_u16_vsprintf1_OBJECTS) $(test_u16_vsprintf1_DEPENDENCIES) 
+
+test-u16-vsprintf1$(EXEEXT): $(test_u16_vsprintf1_OBJECTS) $(test_u16_vsprintf1_DEPENDENCIES) $(EXTRA_test_u16_vsprintf1_DEPENDENCIES) 
        @rm -f test-u16-vsprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_vsprintf1_OBJECTS) $(test_u16_vsprintf1_LDADD) $(LIBS)
 uniwidth/test-u16-width.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
-test-u16-width$(EXEEXT): $(test_u16_width_OBJECTS) $(test_u16_width_DEPENDENCIES) 
+
+test-u16-width$(EXEEXT): $(test_u16_width_OBJECTS) $(test_u16_width_DEPENDENCIES) $(EXTRA_test_u16_width_DEPENDENCIES) 
        @rm -f test-u16-width$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_width_OBJECTS) $(test_u16_width_LDADD) $(LIBS)
 unilbrk/test-u16-width-linebreaks.$(OBJEXT): unilbrk/$(am__dirstamp) \
        unilbrk/$(DEPDIR)/$(am__dirstamp)
-test-u16-width-linebreaks$(EXEEXT): $(test_u16_width_linebreaks_OBJECTS) $(test_u16_width_linebreaks_DEPENDENCIES) 
+
+test-u16-width-linebreaks$(EXEEXT): $(test_u16_width_linebreaks_OBJECTS) $(test_u16_width_linebreaks_DEPENDENCIES) $(EXTRA_test_u16_width_linebreaks_DEPENDENCIES) 
        @rm -f test-u16-width-linebreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_width_linebreaks_OBJECTS) $(test_u16_width_linebreaks_LDADD) $(LIBS)
 uniwbrk/$(am__dirstamp):
@@ -6445,724 +7980,946 @@ uniwbrk/$(DEPDIR)/$(am__dirstamp):
        @: > uniwbrk/$(DEPDIR)/$(am__dirstamp)
 uniwbrk/test-u16-wordbreaks.$(OBJEXT): uniwbrk/$(am__dirstamp) \
        uniwbrk/$(DEPDIR)/$(am__dirstamp)
-test-u16-wordbreaks$(EXEEXT): $(test_u16_wordbreaks_OBJECTS) $(test_u16_wordbreaks_DEPENDENCIES) 
+
+test-u16-wordbreaks$(EXEEXT): $(test_u16_wordbreaks_OBJECTS) $(test_u16_wordbreaks_DEPENDENCIES) $(EXTRA_test_u16_wordbreaks_DEPENDENCIES) 
        @rm -f test-u16-wordbreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u16_wordbreaks_OBJECTS) $(test_u16_wordbreaks_LDADD) $(LIBS)
 unistdio/test-u32-asnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u32-asnprintf1$(EXEEXT): $(test_u32_asnprintf1_OBJECTS) $(test_u32_asnprintf1_DEPENDENCIES) 
+
+test-u32-asnprintf1$(EXEEXT): $(test_u32_asnprintf1_OBJECTS) $(test_u32_asnprintf1_DEPENDENCIES) $(EXTRA_test_u32_asnprintf1_DEPENDENCIES) 
        @rm -f test-u32-asnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_asnprintf1_OBJECTS) $(test_u32_asnprintf1_LDADD) $(LIBS)
 unicase/test-u32-casecmp.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u32-casecmp$(EXEEXT): $(test_u32_casecmp_OBJECTS) $(test_u32_casecmp_DEPENDENCIES) 
+
+test-u32-casecmp$(EXEEXT): $(test_u32_casecmp_OBJECTS) $(test_u32_casecmp_DEPENDENCIES) $(EXTRA_test_u32_casecmp_DEPENDENCIES) 
        @rm -f test-u32-casecmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_casecmp_OBJECTS) $(test_u32_casecmp_LDADD) $(LIBS)
 unicase/test-u32-casecoll.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u32-casecoll$(EXEEXT): $(test_u32_casecoll_OBJECTS) $(test_u32_casecoll_DEPENDENCIES) 
+
+test-u32-casecoll$(EXEEXT): $(test_u32_casecoll_OBJECTS) $(test_u32_casecoll_DEPENDENCIES) $(EXTRA_test_u32_casecoll_DEPENDENCIES) 
        @rm -f test-u32-casecoll$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_casecoll_OBJECTS) $(test_u32_casecoll_LDADD) $(LIBS)
 unicase/test-u32-casefold.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u32-casefold$(EXEEXT): $(test_u32_casefold_OBJECTS) $(test_u32_casefold_DEPENDENCIES) 
+
+test-u32-casefold$(EXEEXT): $(test_u32_casefold_OBJECTS) $(test_u32_casefold_DEPENDENCIES) $(EXTRA_test_u32_casefold_DEPENDENCIES) 
        @rm -f test-u32-casefold$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_casefold_OBJECTS) $(test_u32_casefold_LDADD) $(LIBS)
 unistr/test-u32-check.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-check$(EXEEXT): $(test_u32_check_OBJECTS) $(test_u32_check_DEPENDENCIES) 
+
+test-u32-check$(EXEEXT): $(test_u32_check_OBJECTS) $(test_u32_check_DEPENDENCIES) $(EXTRA_test_u32_check_DEPENDENCIES) 
        @rm -f test-u32-check$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_check_OBJECTS) $(test_u32_check_LDADD) $(LIBS)
 unistr/test-u32-chr.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-chr$(EXEEXT): $(test_u32_chr_OBJECTS) $(test_u32_chr_DEPENDENCIES) 
+
+test-u32-chr$(EXEEXT): $(test_u32_chr_OBJECTS) $(test_u32_chr_DEPENDENCIES) $(EXTRA_test_u32_chr_DEPENDENCIES) 
        @rm -f test-u32-chr$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_chr_OBJECTS) $(test_u32_chr_LDADD) $(LIBS)
 unistr/test-u32-cmp.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-cmp$(EXEEXT): $(test_u32_cmp_OBJECTS) $(test_u32_cmp_DEPENDENCIES) 
+
+test-u32-cmp$(EXEEXT): $(test_u32_cmp_OBJECTS) $(test_u32_cmp_DEPENDENCIES) $(EXTRA_test_u32_cmp_DEPENDENCIES) 
        @rm -f test-u32-cmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_cmp_OBJECTS) $(test_u32_cmp_LDADD) $(LIBS)
 unistr/test-u32-cmp2.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-cmp2$(EXEEXT): $(test_u32_cmp2_OBJECTS) $(test_u32_cmp2_DEPENDENCIES) 
+
+test-u32-cmp2$(EXEEXT): $(test_u32_cmp2_OBJECTS) $(test_u32_cmp2_DEPENDENCIES) $(EXTRA_test_u32_cmp2_DEPENDENCIES) 
        @rm -f test-u32-cmp2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_cmp2_OBJECTS) $(test_u32_cmp2_LDADD) $(LIBS)
 uniconv/test-u32-conv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u32-conv-from-enc$(EXEEXT): $(test_u32_conv_from_enc_OBJECTS) $(test_u32_conv_from_enc_DEPENDENCIES) 
+
+test-u32-conv-from-enc$(EXEEXT): $(test_u32_conv_from_enc_OBJECTS) $(test_u32_conv_from_enc_DEPENDENCIES) $(EXTRA_test_u32_conv_from_enc_DEPENDENCIES) 
        @rm -f test-u32-conv-from-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_conv_from_enc_OBJECTS) $(test_u32_conv_from_enc_LDADD) $(LIBS)
 uniconv/test-u32-conv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u32-conv-to-enc$(EXEEXT): $(test_u32_conv_to_enc_OBJECTS) $(test_u32_conv_to_enc_DEPENDENCIES) 
+
+test-u32-conv-to-enc$(EXEEXT): $(test_u32_conv_to_enc_OBJECTS) $(test_u32_conv_to_enc_DEPENDENCIES) $(EXTRA_test_u32_conv_to_enc_DEPENDENCIES) 
        @rm -f test-u32-conv-to-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_conv_to_enc_OBJECTS) $(test_u32_conv_to_enc_LDADD) $(LIBS)
 unistr/test-u32-cpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-cpy$(EXEEXT): $(test_u32_cpy_OBJECTS) $(test_u32_cpy_DEPENDENCIES) 
+
+test-u32-cpy$(EXEEXT): $(test_u32_cpy_OBJECTS) $(test_u32_cpy_DEPENDENCIES) $(EXTRA_test_u32_cpy_DEPENDENCIES) 
        @rm -f test-u32-cpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_cpy_OBJECTS) $(test_u32_cpy_LDADD) $(LIBS)
 unistr/test-u32-cpy-alloc.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-cpy-alloc$(EXEEXT): $(test_u32_cpy_alloc_OBJECTS) $(test_u32_cpy_alloc_DEPENDENCIES) 
+
+test-u32-cpy-alloc$(EXEEXT): $(test_u32_cpy_alloc_OBJECTS) $(test_u32_cpy_alloc_DEPENDENCIES) $(EXTRA_test_u32_cpy_alloc_DEPENDENCIES) 
        @rm -f test-u32-cpy-alloc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_cpy_alloc_OBJECTS) $(test_u32_cpy_alloc_LDADD) $(LIBS)
+unigbrk/test-u32-grapheme-breaks.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-u32-grapheme-breaks$(EXEEXT): $(test_u32_grapheme_breaks_OBJECTS) $(test_u32_grapheme_breaks_DEPENDENCIES) $(EXTRA_test_u32_grapheme_breaks_DEPENDENCIES) 
+       @rm -f test-u32-grapheme-breaks$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u32_grapheme_breaks_OBJECTS) $(test_u32_grapheme_breaks_LDADD) $(LIBS)
+unigbrk/test-u32-grapheme-next.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-u32-grapheme-next$(EXEEXT): $(test_u32_grapheme_next_OBJECTS) $(test_u32_grapheme_next_DEPENDENCIES) $(EXTRA_test_u32_grapheme_next_DEPENDENCIES) 
+       @rm -f test-u32-grapheme-next$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u32_grapheme_next_OBJECTS) $(test_u32_grapheme_next_LDADD) $(LIBS)
+unigbrk/test-u32-grapheme-prev.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-u32-grapheme-prev$(EXEEXT): $(test_u32_grapheme_prev_OBJECTS) $(test_u32_grapheme_prev_DEPENDENCIES) $(EXTRA_test_u32_grapheme_prev_DEPENDENCIES) 
+       @rm -f test-u32-grapheme-prev$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u32_grapheme_prev_OBJECTS) $(test_u32_grapheme_prev_LDADD) $(LIBS)
 unicase/test-u32-is-cased.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u32-is-cased$(EXEEXT): $(test_u32_is_cased_OBJECTS) $(test_u32_is_cased_DEPENDENCIES) 
+
+test-u32-is-cased$(EXEEXT): $(test_u32_is_cased_OBJECTS) $(test_u32_is_cased_DEPENDENCIES) $(EXTRA_test_u32_is_cased_DEPENDENCIES) 
        @rm -f test-u32-is-cased$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_is_cased_OBJECTS) $(test_u32_is_cased_LDADD) $(LIBS)
 unicase/test-u32-is-casefolded.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u32-is-casefolded$(EXEEXT): $(test_u32_is_casefolded_OBJECTS) $(test_u32_is_casefolded_DEPENDENCIES) 
+
+test-u32-is-casefolded$(EXEEXT): $(test_u32_is_casefolded_OBJECTS) $(test_u32_is_casefolded_DEPENDENCIES) $(EXTRA_test_u32_is_casefolded_DEPENDENCIES) 
        @rm -f test-u32-is-casefolded$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_is_casefolded_OBJECTS) $(test_u32_is_casefolded_LDADD) $(LIBS)
 unicase/test-u32-is-lowercase.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u32-is-lowercase$(EXEEXT): $(test_u32_is_lowercase_OBJECTS) $(test_u32_is_lowercase_DEPENDENCIES) 
+
+test-u32-is-lowercase$(EXEEXT): $(test_u32_is_lowercase_OBJECTS) $(test_u32_is_lowercase_DEPENDENCIES) $(EXTRA_test_u32_is_lowercase_DEPENDENCIES) 
        @rm -f test-u32-is-lowercase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_is_lowercase_OBJECTS) $(test_u32_is_lowercase_LDADD) $(LIBS)
 unicase/test-u32-is-titlecase.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u32-is-titlecase$(EXEEXT): $(test_u32_is_titlecase_OBJECTS) $(test_u32_is_titlecase_DEPENDENCIES) 
+
+test-u32-is-titlecase$(EXEEXT): $(test_u32_is_titlecase_OBJECTS) $(test_u32_is_titlecase_DEPENDENCIES) $(EXTRA_test_u32_is_titlecase_DEPENDENCIES) 
        @rm -f test-u32-is-titlecase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_is_titlecase_OBJECTS) $(test_u32_is_titlecase_LDADD) $(LIBS)
 unicase/test-u32-is-uppercase.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u32-is-uppercase$(EXEEXT): $(test_u32_is_uppercase_OBJECTS) $(test_u32_is_uppercase_DEPENDENCIES) 
+
+test-u32-is-uppercase$(EXEEXT): $(test_u32_is_uppercase_OBJECTS) $(test_u32_is_uppercase_DEPENDENCIES) $(EXTRA_test_u32_is_uppercase_DEPENDENCIES) 
        @rm -f test-u32-is-uppercase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_is_uppercase_OBJECTS) $(test_u32_is_uppercase_LDADD) $(LIBS)
 unistr/test-u32-mblen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-mblen$(EXEEXT): $(test_u32_mblen_OBJECTS) $(test_u32_mblen_DEPENDENCIES) 
+
+test-u32-mblen$(EXEEXT): $(test_u32_mblen_OBJECTS) $(test_u32_mblen_DEPENDENCIES) $(EXTRA_test_u32_mblen_DEPENDENCIES) 
        @rm -f test-u32-mblen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_mblen_OBJECTS) $(test_u32_mblen_LDADD) $(LIBS)
 unistr/test-u32-mbsnlen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-mbsnlen$(EXEEXT): $(test_u32_mbsnlen_OBJECTS) $(test_u32_mbsnlen_DEPENDENCIES) 
+
+test-u32-mbsnlen$(EXEEXT): $(test_u32_mbsnlen_OBJECTS) $(test_u32_mbsnlen_DEPENDENCIES) $(EXTRA_test_u32_mbsnlen_DEPENDENCIES) 
        @rm -f test-u32-mbsnlen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_mbsnlen_OBJECTS) $(test_u32_mbsnlen_LDADD) $(LIBS)
 unistr/test-u32-mbtouc.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-mbtouc$(EXEEXT): $(test_u32_mbtouc_OBJECTS) $(test_u32_mbtouc_DEPENDENCIES) 
+
+test-u32-mbtouc$(EXEEXT): $(test_u32_mbtouc_OBJECTS) $(test_u32_mbtouc_DEPENDENCIES) $(EXTRA_test_u32_mbtouc_DEPENDENCIES) 
        @rm -f test-u32-mbtouc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_mbtouc_OBJECTS) $(test_u32_mbtouc_LDADD) $(LIBS)
 unistr/test-u32-mbtouc-unsafe.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-mbtouc-unsafe$(EXEEXT): $(test_u32_mbtouc_unsafe_OBJECTS) $(test_u32_mbtouc_unsafe_DEPENDENCIES) 
+
+test-u32-mbtouc-unsafe$(EXEEXT): $(test_u32_mbtouc_unsafe_OBJECTS) $(test_u32_mbtouc_unsafe_DEPENDENCIES) $(EXTRA_test_u32_mbtouc_unsafe_DEPENDENCIES) 
        @rm -f test-u32-mbtouc-unsafe$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_mbtouc_unsafe_OBJECTS) $(test_u32_mbtouc_unsafe_LDADD) $(LIBS)
 unistr/test-u32-mbtoucr.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-mbtoucr$(EXEEXT): $(test_u32_mbtoucr_OBJECTS) $(test_u32_mbtoucr_DEPENDENCIES) 
+
+test-u32-mbtoucr$(EXEEXT): $(test_u32_mbtoucr_OBJECTS) $(test_u32_mbtoucr_DEPENDENCIES) $(EXTRA_test_u32_mbtoucr_DEPENDENCIES) 
        @rm -f test-u32-mbtoucr$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_mbtoucr_OBJECTS) $(test_u32_mbtoucr_LDADD) $(LIBS)
 unistr/test-u32-move.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-move$(EXEEXT): $(test_u32_move_OBJECTS) $(test_u32_move_DEPENDENCIES) 
+
+test-u32-move$(EXEEXT): $(test_u32_move_OBJECTS) $(test_u32_move_DEPENDENCIES) $(EXTRA_test_u32_move_DEPENDENCIES) 
        @rm -f test-u32-move$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_move_OBJECTS) $(test_u32_move_LDADD) $(LIBS)
 unistr/test-u32-next.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-next$(EXEEXT): $(test_u32_next_OBJECTS) $(test_u32_next_DEPENDENCIES) 
+
+test-u32-next$(EXEEXT): $(test_u32_next_OBJECTS) $(test_u32_next_DEPENDENCIES) $(EXTRA_test_u32_next_DEPENDENCIES) 
        @rm -f test-u32-next$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_next_OBJECTS) $(test_u32_next_LDADD) $(LIBS)
 uninorm/test-u32-nfc-big.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
 uninorm/test-u32-normalize-big.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-u32-nfc-big$(EXEEXT): $(test_u32_nfc_big_OBJECTS) $(test_u32_nfc_big_DEPENDENCIES) 
+
+test-u32-nfc-big$(EXEEXT): $(test_u32_nfc_big_OBJECTS) $(test_u32_nfc_big_DEPENDENCIES) $(EXTRA_test_u32_nfc_big_DEPENDENCIES) 
        @rm -f test-u32-nfc-big$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_nfc_big_OBJECTS) $(test_u32_nfc_big_LDADD) $(LIBS)
 uninorm/test-u32-nfd-big.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-u32-nfd-big$(EXEEXT): $(test_u32_nfd_big_OBJECTS) $(test_u32_nfd_big_DEPENDENCIES) 
+
+test-u32-nfd-big$(EXEEXT): $(test_u32_nfd_big_OBJECTS) $(test_u32_nfd_big_DEPENDENCIES) $(EXTRA_test_u32_nfd_big_DEPENDENCIES) 
        @rm -f test-u32-nfd-big$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_nfd_big_OBJECTS) $(test_u32_nfd_big_LDADD) $(LIBS)
 uninorm/test-u32-nfkc-big.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-u32-nfkc-big$(EXEEXT): $(test_u32_nfkc_big_OBJECTS) $(test_u32_nfkc_big_DEPENDENCIES) 
+
+test-u32-nfkc-big$(EXEEXT): $(test_u32_nfkc_big_OBJECTS) $(test_u32_nfkc_big_DEPENDENCIES) $(EXTRA_test_u32_nfkc_big_DEPENDENCIES) 
        @rm -f test-u32-nfkc-big$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_nfkc_big_OBJECTS) $(test_u32_nfkc_big_LDADD) $(LIBS)
 uninorm/test-u32-nfkd-big.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-u32-nfkd-big$(EXEEXT): $(test_u32_nfkd_big_OBJECTS) $(test_u32_nfkd_big_DEPENDENCIES) 
+
+test-u32-nfkd-big$(EXEEXT): $(test_u32_nfkd_big_OBJECTS) $(test_u32_nfkd_big_DEPENDENCIES) $(EXTRA_test_u32_nfkd_big_DEPENDENCIES) 
        @rm -f test-u32-nfkd-big$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_nfkd_big_OBJECTS) $(test_u32_nfkd_big_LDADD) $(LIBS)
 uninorm/test-u32-normcmp.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-u32-normcmp$(EXEEXT): $(test_u32_normcmp_OBJECTS) $(test_u32_normcmp_DEPENDENCIES) 
+
+test-u32-normcmp$(EXEEXT): $(test_u32_normcmp_OBJECTS) $(test_u32_normcmp_DEPENDENCIES) $(EXTRA_test_u32_normcmp_DEPENDENCIES) 
        @rm -f test-u32-normcmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_normcmp_OBJECTS) $(test_u32_normcmp_LDADD) $(LIBS)
 uninorm/test-u32-normcoll.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-u32-normcoll$(EXEEXT): $(test_u32_normcoll_OBJECTS) $(test_u32_normcoll_DEPENDENCIES) 
+
+test-u32-normcoll$(EXEEXT): $(test_u32_normcoll_OBJECTS) $(test_u32_normcoll_DEPENDENCIES) $(EXTRA_test_u32_normcoll_DEPENDENCIES) 
        @rm -f test-u32-normcoll$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_normcoll_OBJECTS) $(test_u32_normcoll_LDADD) $(LIBS)
 unilbrk/test-u32-possible-linebreaks.$(OBJEXT):  \
        unilbrk/$(am__dirstamp) unilbrk/$(DEPDIR)/$(am__dirstamp)
-test-u32-possible-linebreaks$(EXEEXT): $(test_u32_possible_linebreaks_OBJECTS) $(test_u32_possible_linebreaks_DEPENDENCIES) 
+
+test-u32-possible-linebreaks$(EXEEXT): $(test_u32_possible_linebreaks_OBJECTS) $(test_u32_possible_linebreaks_DEPENDENCIES) $(EXTRA_test_u32_possible_linebreaks_DEPENDENCIES) 
        @rm -f test-u32-possible-linebreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_possible_linebreaks_OBJECTS) $(test_u32_possible_linebreaks_LDADD) $(LIBS)
 unistr/test-u32-prev.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-prev$(EXEEXT): $(test_u32_prev_OBJECTS) $(test_u32_prev_DEPENDENCIES) 
+
+test-u32-prev$(EXEEXT): $(test_u32_prev_OBJECTS) $(test_u32_prev_DEPENDENCIES) $(EXTRA_test_u32_prev_DEPENDENCIES) 
        @rm -f test-u32-prev$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_prev_OBJECTS) $(test_u32_prev_LDADD) $(LIBS)
 unistr/test-u32-set.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-set$(EXEEXT): $(test_u32_set_OBJECTS) $(test_u32_set_DEPENDENCIES) 
+
+test-u32-set$(EXEEXT): $(test_u32_set_OBJECTS) $(test_u32_set_DEPENDENCIES) $(EXTRA_test_u32_set_DEPENDENCIES) 
        @rm -f test-u32-set$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_set_OBJECTS) $(test_u32_set_LDADD) $(LIBS)
 unistr/test-u32-stpcpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-stpcpy$(EXEEXT): $(test_u32_stpcpy_OBJECTS) $(test_u32_stpcpy_DEPENDENCIES) 
+
+test-u32-stpcpy$(EXEEXT): $(test_u32_stpcpy_OBJECTS) $(test_u32_stpcpy_DEPENDENCIES) $(EXTRA_test_u32_stpcpy_DEPENDENCIES) 
        @rm -f test-u32-stpcpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_stpcpy_OBJECTS) $(test_u32_stpcpy_LDADD) $(LIBS)
 unistr/test-u32-stpncpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-stpncpy$(EXEEXT): $(test_u32_stpncpy_OBJECTS) $(test_u32_stpncpy_DEPENDENCIES) 
+
+test-u32-stpncpy$(EXEEXT): $(test_u32_stpncpy_OBJECTS) $(test_u32_stpncpy_DEPENDENCIES) $(EXTRA_test_u32_stpncpy_DEPENDENCIES) 
        @rm -f test-u32-stpncpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_stpncpy_OBJECTS) $(test_u32_stpncpy_LDADD) $(LIBS)
 unistr/test-u32-strcat.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strcat$(EXEEXT): $(test_u32_strcat_OBJECTS) $(test_u32_strcat_DEPENDENCIES) 
+
+test-u32-strcat$(EXEEXT): $(test_u32_strcat_OBJECTS) $(test_u32_strcat_DEPENDENCIES) $(EXTRA_test_u32_strcat_DEPENDENCIES) 
        @rm -f test-u32-strcat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strcat_OBJECTS) $(test_u32_strcat_LDADD) $(LIBS)
+unistr/test-u32-strchr.$(OBJEXT): unistr/$(am__dirstamp) \
+       unistr/$(DEPDIR)/$(am__dirstamp)
+
+test-u32-strchr$(EXEEXT): $(test_u32_strchr_OBJECTS) $(test_u32_strchr_DEPENDENCIES) $(EXTRA_test_u32_strchr_DEPENDENCIES) 
+       @rm -f test-u32-strchr$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u32_strchr_OBJECTS) $(test_u32_strchr_LDADD) $(LIBS)
 unistr/test-u32-strcmp.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strcmp$(EXEEXT): $(test_u32_strcmp_OBJECTS) $(test_u32_strcmp_DEPENDENCIES) 
+
+test-u32-strcmp$(EXEEXT): $(test_u32_strcmp_OBJECTS) $(test_u32_strcmp_DEPENDENCIES) $(EXTRA_test_u32_strcmp_DEPENDENCIES) 
        @rm -f test-u32-strcmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strcmp_OBJECTS) $(test_u32_strcmp_LDADD) $(LIBS)
 unistr/test-u32-strcoll.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strcoll$(EXEEXT): $(test_u32_strcoll_OBJECTS) $(test_u32_strcoll_DEPENDENCIES) 
+
+test-u32-strcoll$(EXEEXT): $(test_u32_strcoll_OBJECTS) $(test_u32_strcoll_DEPENDENCIES) $(EXTRA_test_u32_strcoll_DEPENDENCIES) 
        @rm -f test-u32-strcoll$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strcoll_OBJECTS) $(test_u32_strcoll_LDADD) $(LIBS)
 uniconv/test-u32-strconv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u32-strconv-from-enc$(EXEEXT): $(test_u32_strconv_from_enc_OBJECTS) $(test_u32_strconv_from_enc_DEPENDENCIES) 
+
+test-u32-strconv-from-enc$(EXEEXT): $(test_u32_strconv_from_enc_OBJECTS) $(test_u32_strconv_from_enc_DEPENDENCIES) $(EXTRA_test_u32_strconv_from_enc_DEPENDENCIES) 
        @rm -f test-u32-strconv-from-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strconv_from_enc_OBJECTS) $(test_u32_strconv_from_enc_LDADD) $(LIBS)
 uniconv/test-u32-strconv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u32-strconv-to-enc$(EXEEXT): $(test_u32_strconv_to_enc_OBJECTS) $(test_u32_strconv_to_enc_DEPENDENCIES) 
+
+test-u32-strconv-to-enc$(EXEEXT): $(test_u32_strconv_to_enc_OBJECTS) $(test_u32_strconv_to_enc_DEPENDENCIES) $(EXTRA_test_u32_strconv_to_enc_DEPENDENCIES) 
        @rm -f test-u32-strconv-to-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strconv_to_enc_OBJECTS) $(test_u32_strconv_to_enc_LDADD) $(LIBS)
 unistr/test-u32-strcpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strcpy$(EXEEXT): $(test_u32_strcpy_OBJECTS) $(test_u32_strcpy_DEPENDENCIES) 
+
+test-u32-strcpy$(EXEEXT): $(test_u32_strcpy_OBJECTS) $(test_u32_strcpy_DEPENDENCIES) $(EXTRA_test_u32_strcpy_DEPENDENCIES) 
        @rm -f test-u32-strcpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strcpy_OBJECTS) $(test_u32_strcpy_LDADD) $(LIBS)
 unistr/test-u32-strdup.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strdup$(EXEEXT): $(test_u32_strdup_OBJECTS) $(test_u32_strdup_DEPENDENCIES) 
+
+test-u32-strdup$(EXEEXT): $(test_u32_strdup_OBJECTS) $(test_u32_strdup_DEPENDENCIES) $(EXTRA_test_u32_strdup_DEPENDENCIES) 
        @rm -f test-u32-strdup$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strdup_OBJECTS) $(test_u32_strdup_LDADD) $(LIBS)
 unistr/test-u32-strlen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strlen$(EXEEXT): $(test_u32_strlen_OBJECTS) $(test_u32_strlen_DEPENDENCIES) 
+
+test-u32-strlen$(EXEEXT): $(test_u32_strlen_OBJECTS) $(test_u32_strlen_DEPENDENCIES) $(EXTRA_test_u32_strlen_DEPENDENCIES) 
        @rm -f test-u32-strlen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strlen_OBJECTS) $(test_u32_strlen_LDADD) $(LIBS)
 unistr/test-u32-strmblen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strmblen$(EXEEXT): $(test_u32_strmblen_OBJECTS) $(test_u32_strmblen_DEPENDENCIES) 
+
+test-u32-strmblen$(EXEEXT): $(test_u32_strmblen_OBJECTS) $(test_u32_strmblen_DEPENDENCIES) $(EXTRA_test_u32_strmblen_DEPENDENCIES) 
        @rm -f test-u32-strmblen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strmblen_OBJECTS) $(test_u32_strmblen_LDADD) $(LIBS)
 unistr/test-u32-strmbtouc.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strmbtouc$(EXEEXT): $(test_u32_strmbtouc_OBJECTS) $(test_u32_strmbtouc_DEPENDENCIES) 
+
+test-u32-strmbtouc$(EXEEXT): $(test_u32_strmbtouc_OBJECTS) $(test_u32_strmbtouc_DEPENDENCIES) $(EXTRA_test_u32_strmbtouc_DEPENDENCIES) 
        @rm -f test-u32-strmbtouc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strmbtouc_OBJECTS) $(test_u32_strmbtouc_LDADD) $(LIBS)
 unistr/test-u32-strncat.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strncat$(EXEEXT): $(test_u32_strncat_OBJECTS) $(test_u32_strncat_DEPENDENCIES) 
+
+test-u32-strncat$(EXEEXT): $(test_u32_strncat_OBJECTS) $(test_u32_strncat_DEPENDENCIES) $(EXTRA_test_u32_strncat_DEPENDENCIES) 
        @rm -f test-u32-strncat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strncat_OBJECTS) $(test_u32_strncat_LDADD) $(LIBS)
 unistr/test-u32-strncmp.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strncmp$(EXEEXT): $(test_u32_strncmp_OBJECTS) $(test_u32_strncmp_DEPENDENCIES) 
+
+test-u32-strncmp$(EXEEXT): $(test_u32_strncmp_OBJECTS) $(test_u32_strncmp_DEPENDENCIES) $(EXTRA_test_u32_strncmp_DEPENDENCIES) 
        @rm -f test-u32-strncmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strncmp_OBJECTS) $(test_u32_strncmp_LDADD) $(LIBS)
 unistr/test-u32-strncpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strncpy$(EXEEXT): $(test_u32_strncpy_OBJECTS) $(test_u32_strncpy_DEPENDENCIES) 
+
+test-u32-strncpy$(EXEEXT): $(test_u32_strncpy_OBJECTS) $(test_u32_strncpy_DEPENDENCIES) $(EXTRA_test_u32_strncpy_DEPENDENCIES) 
        @rm -f test-u32-strncpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strncpy_OBJECTS) $(test_u32_strncpy_LDADD) $(LIBS)
 unistr/test-u32-strnlen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-strnlen$(EXEEXT): $(test_u32_strnlen_OBJECTS) $(test_u32_strnlen_DEPENDENCIES) 
+
+test-u32-strnlen$(EXEEXT): $(test_u32_strnlen_OBJECTS) $(test_u32_strnlen_DEPENDENCIES) $(EXTRA_test_u32_strnlen_DEPENDENCIES) 
        @rm -f test-u32-strnlen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strnlen_OBJECTS) $(test_u32_strnlen_LDADD) $(LIBS)
+unistr/test-u32-strstr.$(OBJEXT): unistr/$(am__dirstamp) \
+       unistr/$(DEPDIR)/$(am__dirstamp)
+
+test-u32-strstr$(EXEEXT): $(test_u32_strstr_OBJECTS) $(test_u32_strstr_DEPENDENCIES) $(EXTRA_test_u32_strstr_DEPENDENCIES) 
+       @rm -f test-u32-strstr$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u32_strstr_OBJECTS) $(test_u32_strstr_LDADD) $(LIBS)
 uniwidth/test-u32-strwidth.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
-test-u32-strwidth$(EXEEXT): $(test_u32_strwidth_OBJECTS) $(test_u32_strwidth_DEPENDENCIES) 
+
+test-u32-strwidth$(EXEEXT): $(test_u32_strwidth_OBJECTS) $(test_u32_strwidth_DEPENDENCIES) $(EXTRA_test_u32_strwidth_DEPENDENCIES) 
        @rm -f test-u32-strwidth$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_strwidth_OBJECTS) $(test_u32_strwidth_LDADD) $(LIBS)
 unistr/test-u32-to-u16.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-to-u16$(EXEEXT): $(test_u32_to_u16_OBJECTS) $(test_u32_to_u16_DEPENDENCIES) 
+
+test-u32-to-u16$(EXEEXT): $(test_u32_to_u16_OBJECTS) $(test_u32_to_u16_DEPENDENCIES) $(EXTRA_test_u32_to_u16_DEPENDENCIES) 
        @rm -f test-u32-to-u16$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_to_u16_OBJECTS) $(test_u32_to_u16_LDADD) $(LIBS)
 unistr/test-u32-to-u8.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-to-u8$(EXEEXT): $(test_u32_to_u8_OBJECTS) $(test_u32_to_u8_DEPENDENCIES) 
+
+test-u32-to-u8$(EXEEXT): $(test_u32_to_u8_OBJECTS) $(test_u32_to_u8_DEPENDENCIES) $(EXTRA_test_u32_to_u8_DEPENDENCIES) 
        @rm -f test-u32-to-u8$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_to_u8_OBJECTS) $(test_u32_to_u8_LDADD) $(LIBS)
 unicase/test-u32-tolower.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u32-tolower$(EXEEXT): $(test_u32_tolower_OBJECTS) $(test_u32_tolower_DEPENDENCIES) 
+
+test-u32-tolower$(EXEEXT): $(test_u32_tolower_OBJECTS) $(test_u32_tolower_DEPENDENCIES) $(EXTRA_test_u32_tolower_DEPENDENCIES) 
        @rm -f test-u32-tolower$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_tolower_OBJECTS) $(test_u32_tolower_LDADD) $(LIBS)
 unicase/test-u32-totitle.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u32-totitle$(EXEEXT): $(test_u32_totitle_OBJECTS) $(test_u32_totitle_DEPENDENCIES) 
+
+test-u32-totitle$(EXEEXT): $(test_u32_totitle_OBJECTS) $(test_u32_totitle_DEPENDENCIES) $(EXTRA_test_u32_totitle_DEPENDENCIES) 
        @rm -f test-u32-totitle$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_totitle_OBJECTS) $(test_u32_totitle_LDADD) $(LIBS)
 unicase/test-u32-toupper.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u32-toupper$(EXEEXT): $(test_u32_toupper_OBJECTS) $(test_u32_toupper_DEPENDENCIES) 
+
+test-u32-toupper$(EXEEXT): $(test_u32_toupper_OBJECTS) $(test_u32_toupper_DEPENDENCIES) $(EXTRA_test_u32_toupper_DEPENDENCIES) 
        @rm -f test-u32-toupper$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_toupper_OBJECTS) $(test_u32_toupper_LDADD) $(LIBS)
 unistr/test-u32-uctomb.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u32-uctomb$(EXEEXT): $(test_u32_uctomb_OBJECTS) $(test_u32_uctomb_DEPENDENCIES) 
+
+test-u32-uctomb$(EXEEXT): $(test_u32_uctomb_OBJECTS) $(test_u32_uctomb_DEPENDENCIES) $(EXTRA_test_u32_uctomb_DEPENDENCIES) 
        @rm -f test-u32-uctomb$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_uctomb_OBJECTS) $(test_u32_uctomb_LDADD) $(LIBS)
 unistdio/test-u32-vasnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u32-vasnprintf1$(EXEEXT): $(test_u32_vasnprintf1_OBJECTS) $(test_u32_vasnprintf1_DEPENDENCIES) 
+
+test-u32-vasnprintf1$(EXEEXT): $(test_u32_vasnprintf1_OBJECTS) $(test_u32_vasnprintf1_DEPENDENCIES) $(EXTRA_test_u32_vasnprintf1_DEPENDENCIES) 
        @rm -f test-u32-vasnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_vasnprintf1_OBJECTS) $(test_u32_vasnprintf1_LDADD) $(LIBS)
 unistdio/test-u32-vasnprintf2.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u32-vasnprintf2$(EXEEXT): $(test_u32_vasnprintf2_OBJECTS) $(test_u32_vasnprintf2_DEPENDENCIES) 
+
+test-u32-vasnprintf2$(EXEEXT): $(test_u32_vasnprintf2_OBJECTS) $(test_u32_vasnprintf2_DEPENDENCIES) $(EXTRA_test_u32_vasnprintf2_DEPENDENCIES) 
        @rm -f test-u32-vasnprintf2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_vasnprintf2_OBJECTS) $(test_u32_vasnprintf2_LDADD) $(LIBS)
 unistdio/test-u32-vasnprintf3.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u32-vasnprintf3$(EXEEXT): $(test_u32_vasnprintf3_OBJECTS) $(test_u32_vasnprintf3_DEPENDENCIES) 
+
+test-u32-vasnprintf3$(EXEEXT): $(test_u32_vasnprintf3_OBJECTS) $(test_u32_vasnprintf3_DEPENDENCIES) $(EXTRA_test_u32_vasnprintf3_DEPENDENCIES) 
        @rm -f test-u32-vasnprintf3$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_vasnprintf3_OBJECTS) $(test_u32_vasnprintf3_LDADD) $(LIBS)
 unistdio/test-u32-vasprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u32-vasprintf1$(EXEEXT): $(test_u32_vasprintf1_OBJECTS) $(test_u32_vasprintf1_DEPENDENCIES) 
+
+test-u32-vasprintf1$(EXEEXT): $(test_u32_vasprintf1_OBJECTS) $(test_u32_vasprintf1_DEPENDENCIES) $(EXTRA_test_u32_vasprintf1_DEPENDENCIES) 
        @rm -f test-u32-vasprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_vasprintf1_OBJECTS) $(test_u32_vasprintf1_LDADD) $(LIBS)
 unistdio/test-u32-vsnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u32-vsnprintf1$(EXEEXT): $(test_u32_vsnprintf1_OBJECTS) $(test_u32_vsnprintf1_DEPENDENCIES) 
+
+test-u32-vsnprintf1$(EXEEXT): $(test_u32_vsnprintf1_OBJECTS) $(test_u32_vsnprintf1_DEPENDENCIES) $(EXTRA_test_u32_vsnprintf1_DEPENDENCIES) 
        @rm -f test-u32-vsnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_vsnprintf1_OBJECTS) $(test_u32_vsnprintf1_LDADD) $(LIBS)
 unistdio/test-u32-vsprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u32-vsprintf1$(EXEEXT): $(test_u32_vsprintf1_OBJECTS) $(test_u32_vsprintf1_DEPENDENCIES) 
+
+test-u32-vsprintf1$(EXEEXT): $(test_u32_vsprintf1_OBJECTS) $(test_u32_vsprintf1_DEPENDENCIES) $(EXTRA_test_u32_vsprintf1_DEPENDENCIES) 
        @rm -f test-u32-vsprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_vsprintf1_OBJECTS) $(test_u32_vsprintf1_LDADD) $(LIBS)
 uniwidth/test-u32-width.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
-test-u32-width$(EXEEXT): $(test_u32_width_OBJECTS) $(test_u32_width_DEPENDENCIES) 
+
+test-u32-width$(EXEEXT): $(test_u32_width_OBJECTS) $(test_u32_width_DEPENDENCIES) $(EXTRA_test_u32_width_DEPENDENCIES) 
        @rm -f test-u32-width$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_width_OBJECTS) $(test_u32_width_LDADD) $(LIBS)
 unilbrk/test-u32-width-linebreaks.$(OBJEXT): unilbrk/$(am__dirstamp) \
        unilbrk/$(DEPDIR)/$(am__dirstamp)
-test-u32-width-linebreaks$(EXEEXT): $(test_u32_width_linebreaks_OBJECTS) $(test_u32_width_linebreaks_DEPENDENCIES) 
+
+test-u32-width-linebreaks$(EXEEXT): $(test_u32_width_linebreaks_OBJECTS) $(test_u32_width_linebreaks_DEPENDENCIES) $(EXTRA_test_u32_width_linebreaks_DEPENDENCIES) 
        @rm -f test-u32-width-linebreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_width_linebreaks_OBJECTS) $(test_u32_width_linebreaks_LDADD) $(LIBS)
 uniwbrk/test-u32-wordbreaks.$(OBJEXT): uniwbrk/$(am__dirstamp) \
        uniwbrk/$(DEPDIR)/$(am__dirstamp)
-test-u32-wordbreaks$(EXEEXT): $(test_u32_wordbreaks_OBJECTS) $(test_u32_wordbreaks_DEPENDENCIES) 
+
+test-u32-wordbreaks$(EXEEXT): $(test_u32_wordbreaks_OBJECTS) $(test_u32_wordbreaks_DEPENDENCIES) $(EXTRA_test_u32_wordbreaks_DEPENDENCIES) 
        @rm -f test-u32-wordbreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u32_wordbreaks_OBJECTS) $(test_u32_wordbreaks_LDADD) $(LIBS)
 unistdio/test-u8-asnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u8-asnprintf1$(EXEEXT): $(test_u8_asnprintf1_OBJECTS) $(test_u8_asnprintf1_DEPENDENCIES) 
+
+test-u8-asnprintf1$(EXEEXT): $(test_u8_asnprintf1_OBJECTS) $(test_u8_asnprintf1_DEPENDENCIES) $(EXTRA_test_u8_asnprintf1_DEPENDENCIES) 
        @rm -f test-u8-asnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_asnprintf1_OBJECTS) $(test_u8_asnprintf1_LDADD) $(LIBS)
 unicase/test-u8-casecmp.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u8-casecmp$(EXEEXT): $(test_u8_casecmp_OBJECTS) $(test_u8_casecmp_DEPENDENCIES) 
+
+test-u8-casecmp$(EXEEXT): $(test_u8_casecmp_OBJECTS) $(test_u8_casecmp_DEPENDENCIES) $(EXTRA_test_u8_casecmp_DEPENDENCIES) 
        @rm -f test-u8-casecmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_casecmp_OBJECTS) $(test_u8_casecmp_LDADD) $(LIBS)
 unicase/test-u8-casecoll.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u8-casecoll$(EXEEXT): $(test_u8_casecoll_OBJECTS) $(test_u8_casecoll_DEPENDENCIES) 
+
+test-u8-casecoll$(EXEEXT): $(test_u8_casecoll_OBJECTS) $(test_u8_casecoll_DEPENDENCIES) $(EXTRA_test_u8_casecoll_DEPENDENCIES) 
        @rm -f test-u8-casecoll$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_casecoll_OBJECTS) $(test_u8_casecoll_LDADD) $(LIBS)
 unicase/test-u8-casefold.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u8-casefold$(EXEEXT): $(test_u8_casefold_OBJECTS) $(test_u8_casefold_DEPENDENCIES) 
+
+test-u8-casefold$(EXEEXT): $(test_u8_casefold_OBJECTS) $(test_u8_casefold_DEPENDENCIES) $(EXTRA_test_u8_casefold_DEPENDENCIES) 
        @rm -f test-u8-casefold$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_casefold_OBJECTS) $(test_u8_casefold_LDADD) $(LIBS)
 unistr/test-u8-check.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-check$(EXEEXT): $(test_u8_check_OBJECTS) $(test_u8_check_DEPENDENCIES) 
+
+test-u8-check$(EXEEXT): $(test_u8_check_OBJECTS) $(test_u8_check_DEPENDENCIES) $(EXTRA_test_u8_check_DEPENDENCIES) 
        @rm -f test-u8-check$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_check_OBJECTS) $(test_u8_check_LDADD) $(LIBS)
 unistr/test-u8-chr.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-chr$(EXEEXT): $(test_u8_chr_OBJECTS) $(test_u8_chr_DEPENDENCIES) 
+
+test-u8-chr$(EXEEXT): $(test_u8_chr_OBJECTS) $(test_u8_chr_DEPENDENCIES) $(EXTRA_test_u8_chr_DEPENDENCIES) 
        @rm -f test-u8-chr$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_chr_OBJECTS) $(test_u8_chr_LDADD) $(LIBS)
 unistr/test-u8-cmp.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-cmp$(EXEEXT): $(test_u8_cmp_OBJECTS) $(test_u8_cmp_DEPENDENCIES) 
+
+test-u8-cmp$(EXEEXT): $(test_u8_cmp_OBJECTS) $(test_u8_cmp_DEPENDENCIES) $(EXTRA_test_u8_cmp_DEPENDENCIES) 
        @rm -f test-u8-cmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_cmp_OBJECTS) $(test_u8_cmp_LDADD) $(LIBS)
 unistr/test-u8-cmp2.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-cmp2$(EXEEXT): $(test_u8_cmp2_OBJECTS) $(test_u8_cmp2_DEPENDENCIES) 
+
+test-u8-cmp2$(EXEEXT): $(test_u8_cmp2_OBJECTS) $(test_u8_cmp2_DEPENDENCIES) $(EXTRA_test_u8_cmp2_DEPENDENCIES) 
        @rm -f test-u8-cmp2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_cmp2_OBJECTS) $(test_u8_cmp2_LDADD) $(LIBS)
 uniconv/test-u8-conv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u8-conv-from-enc$(EXEEXT): $(test_u8_conv_from_enc_OBJECTS) $(test_u8_conv_from_enc_DEPENDENCIES) 
+
+test-u8-conv-from-enc$(EXEEXT): $(test_u8_conv_from_enc_OBJECTS) $(test_u8_conv_from_enc_DEPENDENCIES) $(EXTRA_test_u8_conv_from_enc_DEPENDENCIES) 
        @rm -f test-u8-conv-from-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_conv_from_enc_OBJECTS) $(test_u8_conv_from_enc_LDADD) $(LIBS)
 uniconv/test-u8-conv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u8-conv-to-enc$(EXEEXT): $(test_u8_conv_to_enc_OBJECTS) $(test_u8_conv_to_enc_DEPENDENCIES) 
+
+test-u8-conv-to-enc$(EXEEXT): $(test_u8_conv_to_enc_OBJECTS) $(test_u8_conv_to_enc_DEPENDENCIES) $(EXTRA_test_u8_conv_to_enc_DEPENDENCIES) 
        @rm -f test-u8-conv-to-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_conv_to_enc_OBJECTS) $(test_u8_conv_to_enc_LDADD) $(LIBS)
 unistr/test-u8-cpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-cpy$(EXEEXT): $(test_u8_cpy_OBJECTS) $(test_u8_cpy_DEPENDENCIES) 
+
+test-u8-cpy$(EXEEXT): $(test_u8_cpy_OBJECTS) $(test_u8_cpy_DEPENDENCIES) $(EXTRA_test_u8_cpy_DEPENDENCIES) 
        @rm -f test-u8-cpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_cpy_OBJECTS) $(test_u8_cpy_LDADD) $(LIBS)
 unistr/test-u8-cpy-alloc.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-cpy-alloc$(EXEEXT): $(test_u8_cpy_alloc_OBJECTS) $(test_u8_cpy_alloc_DEPENDENCIES) 
+
+test-u8-cpy-alloc$(EXEEXT): $(test_u8_cpy_alloc_OBJECTS) $(test_u8_cpy_alloc_DEPENDENCIES) $(EXTRA_test_u8_cpy_alloc_DEPENDENCIES) 
        @rm -f test-u8-cpy-alloc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_cpy_alloc_OBJECTS) $(test_u8_cpy_alloc_LDADD) $(LIBS)
+unigbrk/test-u8-grapheme-breaks.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-u8-grapheme-breaks$(EXEEXT): $(test_u8_grapheme_breaks_OBJECTS) $(test_u8_grapheme_breaks_DEPENDENCIES) $(EXTRA_test_u8_grapheme_breaks_DEPENDENCIES) 
+       @rm -f test-u8-grapheme-breaks$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u8_grapheme_breaks_OBJECTS) $(test_u8_grapheme_breaks_LDADD) $(LIBS)
+unigbrk/test-u8-grapheme-next.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-u8-grapheme-next$(EXEEXT): $(test_u8_grapheme_next_OBJECTS) $(test_u8_grapheme_next_DEPENDENCIES) $(EXTRA_test_u8_grapheme_next_DEPENDENCIES) 
+       @rm -f test-u8-grapheme-next$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u8_grapheme_next_OBJECTS) $(test_u8_grapheme_next_LDADD) $(LIBS)
+unigbrk/test-u8-grapheme-prev.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-u8-grapheme-prev$(EXEEXT): $(test_u8_grapheme_prev_OBJECTS) $(test_u8_grapheme_prev_DEPENDENCIES) $(EXTRA_test_u8_grapheme_prev_DEPENDENCIES) 
+       @rm -f test-u8-grapheme-prev$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u8_grapheme_prev_OBJECTS) $(test_u8_grapheme_prev_LDADD) $(LIBS)
 unicase/test-u8-is-cased.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u8-is-cased$(EXEEXT): $(test_u8_is_cased_OBJECTS) $(test_u8_is_cased_DEPENDENCIES) 
+
+test-u8-is-cased$(EXEEXT): $(test_u8_is_cased_OBJECTS) $(test_u8_is_cased_DEPENDENCIES) $(EXTRA_test_u8_is_cased_DEPENDENCIES) 
        @rm -f test-u8-is-cased$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_is_cased_OBJECTS) $(test_u8_is_cased_LDADD) $(LIBS)
 unicase/test-u8-is-casefolded.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u8-is-casefolded$(EXEEXT): $(test_u8_is_casefolded_OBJECTS) $(test_u8_is_casefolded_DEPENDENCIES) 
+
+test-u8-is-casefolded$(EXEEXT): $(test_u8_is_casefolded_OBJECTS) $(test_u8_is_casefolded_DEPENDENCIES) $(EXTRA_test_u8_is_casefolded_DEPENDENCIES) 
        @rm -f test-u8-is-casefolded$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_is_casefolded_OBJECTS) $(test_u8_is_casefolded_LDADD) $(LIBS)
 unicase/test-u8-is-lowercase.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u8-is-lowercase$(EXEEXT): $(test_u8_is_lowercase_OBJECTS) $(test_u8_is_lowercase_DEPENDENCIES) 
+
+test-u8-is-lowercase$(EXEEXT): $(test_u8_is_lowercase_OBJECTS) $(test_u8_is_lowercase_DEPENDENCIES) $(EXTRA_test_u8_is_lowercase_DEPENDENCIES) 
        @rm -f test-u8-is-lowercase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_is_lowercase_OBJECTS) $(test_u8_is_lowercase_LDADD) $(LIBS)
 unicase/test-u8-is-titlecase.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u8-is-titlecase$(EXEEXT): $(test_u8_is_titlecase_OBJECTS) $(test_u8_is_titlecase_DEPENDENCIES) 
+
+test-u8-is-titlecase$(EXEEXT): $(test_u8_is_titlecase_OBJECTS) $(test_u8_is_titlecase_DEPENDENCIES) $(EXTRA_test_u8_is_titlecase_DEPENDENCIES) 
        @rm -f test-u8-is-titlecase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_is_titlecase_OBJECTS) $(test_u8_is_titlecase_LDADD) $(LIBS)
 unicase/test-u8-is-uppercase.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u8-is-uppercase$(EXEEXT): $(test_u8_is_uppercase_OBJECTS) $(test_u8_is_uppercase_DEPENDENCIES) 
+
+test-u8-is-uppercase$(EXEEXT): $(test_u8_is_uppercase_OBJECTS) $(test_u8_is_uppercase_DEPENDENCIES) $(EXTRA_test_u8_is_uppercase_DEPENDENCIES) 
        @rm -f test-u8-is-uppercase$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_is_uppercase_OBJECTS) $(test_u8_is_uppercase_LDADD) $(LIBS)
 unistr/test-u8-mblen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-mblen$(EXEEXT): $(test_u8_mblen_OBJECTS) $(test_u8_mblen_DEPENDENCIES) 
+
+test-u8-mblen$(EXEEXT): $(test_u8_mblen_OBJECTS) $(test_u8_mblen_DEPENDENCIES) $(EXTRA_test_u8_mblen_DEPENDENCIES) 
        @rm -f test-u8-mblen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_mblen_OBJECTS) $(test_u8_mblen_LDADD) $(LIBS)
 unistr/test-u8-mbsnlen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-mbsnlen$(EXEEXT): $(test_u8_mbsnlen_OBJECTS) $(test_u8_mbsnlen_DEPENDENCIES) 
+
+test-u8-mbsnlen$(EXEEXT): $(test_u8_mbsnlen_OBJECTS) $(test_u8_mbsnlen_DEPENDENCIES) $(EXTRA_test_u8_mbsnlen_DEPENDENCIES) 
        @rm -f test-u8-mbsnlen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_mbsnlen_OBJECTS) $(test_u8_mbsnlen_LDADD) $(LIBS)
 unistr/test-u8-mbtouc.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-mbtouc$(EXEEXT): $(test_u8_mbtouc_OBJECTS) $(test_u8_mbtouc_DEPENDENCIES) 
+
+test-u8-mbtouc$(EXEEXT): $(test_u8_mbtouc_OBJECTS) $(test_u8_mbtouc_DEPENDENCIES) $(EXTRA_test_u8_mbtouc_DEPENDENCIES) 
        @rm -f test-u8-mbtouc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_mbtouc_OBJECTS) $(test_u8_mbtouc_LDADD) $(LIBS)
 unistr/test-u8-mbtouc-unsafe.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-mbtouc-unsafe$(EXEEXT): $(test_u8_mbtouc_unsafe_OBJECTS) $(test_u8_mbtouc_unsafe_DEPENDENCIES) 
+
+test-u8-mbtouc-unsafe$(EXEEXT): $(test_u8_mbtouc_unsafe_OBJECTS) $(test_u8_mbtouc_unsafe_DEPENDENCIES) $(EXTRA_test_u8_mbtouc_unsafe_DEPENDENCIES) 
        @rm -f test-u8-mbtouc-unsafe$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_mbtouc_unsafe_OBJECTS) $(test_u8_mbtouc_unsafe_LDADD) $(LIBS)
 unistr/test-u8-mbtoucr.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-mbtoucr$(EXEEXT): $(test_u8_mbtoucr_OBJECTS) $(test_u8_mbtoucr_DEPENDENCIES) 
+
+test-u8-mbtoucr$(EXEEXT): $(test_u8_mbtoucr_OBJECTS) $(test_u8_mbtoucr_DEPENDENCIES) $(EXTRA_test_u8_mbtoucr_DEPENDENCIES) 
        @rm -f test-u8-mbtoucr$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_mbtoucr_OBJECTS) $(test_u8_mbtoucr_LDADD) $(LIBS)
 unistr/test-u8-move.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-move$(EXEEXT): $(test_u8_move_OBJECTS) $(test_u8_move_DEPENDENCIES) 
+
+test-u8-move$(EXEEXT): $(test_u8_move_OBJECTS) $(test_u8_move_DEPENDENCIES) $(EXTRA_test_u8_move_DEPENDENCIES) 
        @rm -f test-u8-move$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_move_OBJECTS) $(test_u8_move_LDADD) $(LIBS)
 unistr/test-u8-next.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-next$(EXEEXT): $(test_u8_next_OBJECTS) $(test_u8_next_DEPENDENCIES) 
+
+test-u8-next$(EXEEXT): $(test_u8_next_OBJECTS) $(test_u8_next_DEPENDENCIES) $(EXTRA_test_u8_next_DEPENDENCIES) 
        @rm -f test-u8-next$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_next_OBJECTS) $(test_u8_next_LDADD) $(LIBS)
 uninorm/test-u8-normcmp.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-u8-normcmp$(EXEEXT): $(test_u8_normcmp_OBJECTS) $(test_u8_normcmp_DEPENDENCIES) 
+
+test-u8-normcmp$(EXEEXT): $(test_u8_normcmp_OBJECTS) $(test_u8_normcmp_DEPENDENCIES) $(EXTRA_test_u8_normcmp_DEPENDENCIES) 
        @rm -f test-u8-normcmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_normcmp_OBJECTS) $(test_u8_normcmp_LDADD) $(LIBS)
 uninorm/test-u8-normcoll.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-u8-normcoll$(EXEEXT): $(test_u8_normcoll_OBJECTS) $(test_u8_normcoll_DEPENDENCIES) 
+
+test-u8-normcoll$(EXEEXT): $(test_u8_normcoll_OBJECTS) $(test_u8_normcoll_DEPENDENCIES) $(EXTRA_test_u8_normcoll_DEPENDENCIES) 
        @rm -f test-u8-normcoll$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_normcoll_OBJECTS) $(test_u8_normcoll_LDADD) $(LIBS)
 unilbrk/test-u8-possible-linebreaks.$(OBJEXT):  \
        unilbrk/$(am__dirstamp) unilbrk/$(DEPDIR)/$(am__dirstamp)
-test-u8-possible-linebreaks$(EXEEXT): $(test_u8_possible_linebreaks_OBJECTS) $(test_u8_possible_linebreaks_DEPENDENCIES) 
+
+test-u8-possible-linebreaks$(EXEEXT): $(test_u8_possible_linebreaks_OBJECTS) $(test_u8_possible_linebreaks_DEPENDENCIES) $(EXTRA_test_u8_possible_linebreaks_DEPENDENCIES) 
        @rm -f test-u8-possible-linebreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_possible_linebreaks_OBJECTS) $(test_u8_possible_linebreaks_LDADD) $(LIBS)
 unistr/test-u8-prev.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-prev$(EXEEXT): $(test_u8_prev_OBJECTS) $(test_u8_prev_DEPENDENCIES) 
+
+test-u8-prev$(EXEEXT): $(test_u8_prev_OBJECTS) $(test_u8_prev_DEPENDENCIES) $(EXTRA_test_u8_prev_DEPENDENCIES) 
        @rm -f test-u8-prev$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_prev_OBJECTS) $(test_u8_prev_LDADD) $(LIBS)
 unistr/test-u8-set.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-set$(EXEEXT): $(test_u8_set_OBJECTS) $(test_u8_set_DEPENDENCIES) 
+
+test-u8-set$(EXEEXT): $(test_u8_set_OBJECTS) $(test_u8_set_DEPENDENCIES) $(EXTRA_test_u8_set_DEPENDENCIES) 
        @rm -f test-u8-set$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_set_OBJECTS) $(test_u8_set_LDADD) $(LIBS)
 unistr/test-u8-stpcpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-stpcpy$(EXEEXT): $(test_u8_stpcpy_OBJECTS) $(test_u8_stpcpy_DEPENDENCIES) 
+
+test-u8-stpcpy$(EXEEXT): $(test_u8_stpcpy_OBJECTS) $(test_u8_stpcpy_DEPENDENCIES) $(EXTRA_test_u8_stpcpy_DEPENDENCIES) 
        @rm -f test-u8-stpcpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_stpcpy_OBJECTS) $(test_u8_stpcpy_LDADD) $(LIBS)
 unistr/test-u8-stpncpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-stpncpy$(EXEEXT): $(test_u8_stpncpy_OBJECTS) $(test_u8_stpncpy_DEPENDENCIES) 
+
+test-u8-stpncpy$(EXEEXT): $(test_u8_stpncpy_OBJECTS) $(test_u8_stpncpy_DEPENDENCIES) $(EXTRA_test_u8_stpncpy_DEPENDENCIES) 
        @rm -f test-u8-stpncpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_stpncpy_OBJECTS) $(test_u8_stpncpy_LDADD) $(LIBS)
 unistr/test-u8-strcat.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strcat$(EXEEXT): $(test_u8_strcat_OBJECTS) $(test_u8_strcat_DEPENDENCIES) 
+
+test-u8-strcat$(EXEEXT): $(test_u8_strcat_OBJECTS) $(test_u8_strcat_DEPENDENCIES) $(EXTRA_test_u8_strcat_DEPENDENCIES) 
        @rm -f test-u8-strcat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strcat_OBJECTS) $(test_u8_strcat_LDADD) $(LIBS)
+unistr/test-u8-strchr.$(OBJEXT): unistr/$(am__dirstamp) \
+       unistr/$(DEPDIR)/$(am__dirstamp)
+
+test-u8-strchr$(EXEEXT): $(test_u8_strchr_OBJECTS) $(test_u8_strchr_DEPENDENCIES) $(EXTRA_test_u8_strchr_DEPENDENCIES) 
+       @rm -f test-u8-strchr$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u8_strchr_OBJECTS) $(test_u8_strchr_LDADD) $(LIBS)
 unistr/test-u8-strcmp.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strcmp$(EXEEXT): $(test_u8_strcmp_OBJECTS) $(test_u8_strcmp_DEPENDENCIES) 
+
+test-u8-strcmp$(EXEEXT): $(test_u8_strcmp_OBJECTS) $(test_u8_strcmp_DEPENDENCIES) $(EXTRA_test_u8_strcmp_DEPENDENCIES) 
        @rm -f test-u8-strcmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strcmp_OBJECTS) $(test_u8_strcmp_LDADD) $(LIBS)
 unistr/test-u8-strcoll.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strcoll$(EXEEXT): $(test_u8_strcoll_OBJECTS) $(test_u8_strcoll_DEPENDENCIES) 
+
+test-u8-strcoll$(EXEEXT): $(test_u8_strcoll_OBJECTS) $(test_u8_strcoll_DEPENDENCIES) $(EXTRA_test_u8_strcoll_DEPENDENCIES) 
        @rm -f test-u8-strcoll$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strcoll_OBJECTS) $(test_u8_strcoll_LDADD) $(LIBS)
 uniconv/test-u8-strconv-from-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u8-strconv-from-enc$(EXEEXT): $(test_u8_strconv_from_enc_OBJECTS) $(test_u8_strconv_from_enc_DEPENDENCIES) 
+
+test-u8-strconv-from-enc$(EXEEXT): $(test_u8_strconv_from_enc_OBJECTS) $(test_u8_strconv_from_enc_DEPENDENCIES) $(EXTRA_test_u8_strconv_from_enc_DEPENDENCIES) 
        @rm -f test-u8-strconv-from-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strconv_from_enc_OBJECTS) $(test_u8_strconv_from_enc_LDADD) $(LIBS)
 uniconv/test-u8-strconv-to-enc.$(OBJEXT): uniconv/$(am__dirstamp) \
        uniconv/$(DEPDIR)/$(am__dirstamp)
-test-u8-strconv-to-enc$(EXEEXT): $(test_u8_strconv_to_enc_OBJECTS) $(test_u8_strconv_to_enc_DEPENDENCIES) 
+
+test-u8-strconv-to-enc$(EXEEXT): $(test_u8_strconv_to_enc_OBJECTS) $(test_u8_strconv_to_enc_DEPENDENCIES) $(EXTRA_test_u8_strconv_to_enc_DEPENDENCIES) 
        @rm -f test-u8-strconv-to-enc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strconv_to_enc_OBJECTS) $(test_u8_strconv_to_enc_LDADD) $(LIBS)
 unistr/test-u8-strcpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strcpy$(EXEEXT): $(test_u8_strcpy_OBJECTS) $(test_u8_strcpy_DEPENDENCIES) 
+
+test-u8-strcpy$(EXEEXT): $(test_u8_strcpy_OBJECTS) $(test_u8_strcpy_DEPENDENCIES) $(EXTRA_test_u8_strcpy_DEPENDENCIES) 
        @rm -f test-u8-strcpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strcpy_OBJECTS) $(test_u8_strcpy_LDADD) $(LIBS)
 unistr/test-u8-strdup.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strdup$(EXEEXT): $(test_u8_strdup_OBJECTS) $(test_u8_strdup_DEPENDENCIES) 
+
+test-u8-strdup$(EXEEXT): $(test_u8_strdup_OBJECTS) $(test_u8_strdup_DEPENDENCIES) $(EXTRA_test_u8_strdup_DEPENDENCIES) 
        @rm -f test-u8-strdup$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strdup_OBJECTS) $(test_u8_strdup_LDADD) $(LIBS)
 unistr/test-u8-strlen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strlen$(EXEEXT): $(test_u8_strlen_OBJECTS) $(test_u8_strlen_DEPENDENCIES) 
+
+test-u8-strlen$(EXEEXT): $(test_u8_strlen_OBJECTS) $(test_u8_strlen_DEPENDENCIES) $(EXTRA_test_u8_strlen_DEPENDENCIES) 
        @rm -f test-u8-strlen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strlen_OBJECTS) $(test_u8_strlen_LDADD) $(LIBS)
 unistr/test-u8-strmblen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strmblen$(EXEEXT): $(test_u8_strmblen_OBJECTS) $(test_u8_strmblen_DEPENDENCIES) 
+
+test-u8-strmblen$(EXEEXT): $(test_u8_strmblen_OBJECTS) $(test_u8_strmblen_DEPENDENCIES) $(EXTRA_test_u8_strmblen_DEPENDENCIES) 
        @rm -f test-u8-strmblen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strmblen_OBJECTS) $(test_u8_strmblen_LDADD) $(LIBS)
 unistr/test-u8-strmbtouc.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strmbtouc$(EXEEXT): $(test_u8_strmbtouc_OBJECTS) $(test_u8_strmbtouc_DEPENDENCIES) 
+
+test-u8-strmbtouc$(EXEEXT): $(test_u8_strmbtouc_OBJECTS) $(test_u8_strmbtouc_DEPENDENCIES) $(EXTRA_test_u8_strmbtouc_DEPENDENCIES) 
        @rm -f test-u8-strmbtouc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strmbtouc_OBJECTS) $(test_u8_strmbtouc_LDADD) $(LIBS)
 unistr/test-u8-strncat.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strncat$(EXEEXT): $(test_u8_strncat_OBJECTS) $(test_u8_strncat_DEPENDENCIES) 
+
+test-u8-strncat$(EXEEXT): $(test_u8_strncat_OBJECTS) $(test_u8_strncat_DEPENDENCIES) $(EXTRA_test_u8_strncat_DEPENDENCIES) 
        @rm -f test-u8-strncat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strncat_OBJECTS) $(test_u8_strncat_LDADD) $(LIBS)
 unistr/test-u8-strncmp.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strncmp$(EXEEXT): $(test_u8_strncmp_OBJECTS) $(test_u8_strncmp_DEPENDENCIES) 
+
+test-u8-strncmp$(EXEEXT): $(test_u8_strncmp_OBJECTS) $(test_u8_strncmp_DEPENDENCIES) $(EXTRA_test_u8_strncmp_DEPENDENCIES) 
        @rm -f test-u8-strncmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strncmp_OBJECTS) $(test_u8_strncmp_LDADD) $(LIBS)
 unistr/test-u8-strncpy.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strncpy$(EXEEXT): $(test_u8_strncpy_OBJECTS) $(test_u8_strncpy_DEPENDENCIES) 
+
+test-u8-strncpy$(EXEEXT): $(test_u8_strncpy_OBJECTS) $(test_u8_strncpy_DEPENDENCIES) $(EXTRA_test_u8_strncpy_DEPENDENCIES) 
        @rm -f test-u8-strncpy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strncpy_OBJECTS) $(test_u8_strncpy_LDADD) $(LIBS)
 unistr/test-u8-strnlen.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-strnlen$(EXEEXT): $(test_u8_strnlen_OBJECTS) $(test_u8_strnlen_DEPENDENCIES) 
+
+test-u8-strnlen$(EXEEXT): $(test_u8_strnlen_OBJECTS) $(test_u8_strnlen_DEPENDENCIES) $(EXTRA_test_u8_strnlen_DEPENDENCIES) 
        @rm -f test-u8-strnlen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strnlen_OBJECTS) $(test_u8_strnlen_LDADD) $(LIBS)
+unistr/test-u8-strstr.$(OBJEXT): unistr/$(am__dirstamp) \
+       unistr/$(DEPDIR)/$(am__dirstamp)
+
+test-u8-strstr$(EXEEXT): $(test_u8_strstr_OBJECTS) $(test_u8_strstr_DEPENDENCIES) $(EXTRA_test_u8_strstr_DEPENDENCIES) 
+       @rm -f test-u8-strstr$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_u8_strstr_OBJECTS) $(test_u8_strstr_LDADD) $(LIBS)
 uniwidth/test-u8-strwidth.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
-test-u8-strwidth$(EXEEXT): $(test_u8_strwidth_OBJECTS) $(test_u8_strwidth_DEPENDENCIES) 
+
+test-u8-strwidth$(EXEEXT): $(test_u8_strwidth_OBJECTS) $(test_u8_strwidth_DEPENDENCIES) $(EXTRA_test_u8_strwidth_DEPENDENCIES) 
        @rm -f test-u8-strwidth$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_strwidth_OBJECTS) $(test_u8_strwidth_LDADD) $(LIBS)
 unistr/test-u8-to-u16.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-to-u16$(EXEEXT): $(test_u8_to_u16_OBJECTS) $(test_u8_to_u16_DEPENDENCIES) 
+
+test-u8-to-u16$(EXEEXT): $(test_u8_to_u16_OBJECTS) $(test_u8_to_u16_DEPENDENCIES) $(EXTRA_test_u8_to_u16_DEPENDENCIES) 
        @rm -f test-u8-to-u16$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_to_u16_OBJECTS) $(test_u8_to_u16_LDADD) $(LIBS)
 unistr/test-u8-to-u32.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-to-u32$(EXEEXT): $(test_u8_to_u32_OBJECTS) $(test_u8_to_u32_DEPENDENCIES) 
+
+test-u8-to-u32$(EXEEXT): $(test_u8_to_u32_OBJECTS) $(test_u8_to_u32_DEPENDENCIES) $(EXTRA_test_u8_to_u32_DEPENDENCIES) 
        @rm -f test-u8-to-u32$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_to_u32_OBJECTS) $(test_u8_to_u32_LDADD) $(LIBS)
 unicase/test-u8-tolower.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u8-tolower$(EXEEXT): $(test_u8_tolower_OBJECTS) $(test_u8_tolower_DEPENDENCIES) 
+
+test-u8-tolower$(EXEEXT): $(test_u8_tolower_OBJECTS) $(test_u8_tolower_DEPENDENCIES) $(EXTRA_test_u8_tolower_DEPENDENCIES) 
        @rm -f test-u8-tolower$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_tolower_OBJECTS) $(test_u8_tolower_LDADD) $(LIBS)
 unicase/test-u8-totitle.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u8-totitle$(EXEEXT): $(test_u8_totitle_OBJECTS) $(test_u8_totitle_DEPENDENCIES) 
+
+test-u8-totitle$(EXEEXT): $(test_u8_totitle_OBJECTS) $(test_u8_totitle_DEPENDENCIES) $(EXTRA_test_u8_totitle_DEPENDENCIES) 
        @rm -f test-u8-totitle$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_totitle_OBJECTS) $(test_u8_totitle_LDADD) $(LIBS)
 unicase/test-u8-toupper.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-u8-toupper$(EXEEXT): $(test_u8_toupper_OBJECTS) $(test_u8_toupper_DEPENDENCIES) 
+
+test-u8-toupper$(EXEEXT): $(test_u8_toupper_OBJECTS) $(test_u8_toupper_DEPENDENCIES) $(EXTRA_test_u8_toupper_DEPENDENCIES) 
        @rm -f test-u8-toupper$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_toupper_OBJECTS) $(test_u8_toupper_LDADD) $(LIBS)
 unistr/test-u8-uctomb.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
-test-u8-uctomb$(EXEEXT): $(test_u8_uctomb_OBJECTS) $(test_u8_uctomb_DEPENDENCIES) 
+
+test-u8-uctomb$(EXEEXT): $(test_u8_uctomb_OBJECTS) $(test_u8_uctomb_DEPENDENCIES) $(EXTRA_test_u8_uctomb_DEPENDENCIES) 
        @rm -f test-u8-uctomb$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_uctomb_OBJECTS) $(test_u8_uctomb_LDADD) $(LIBS)
 unistdio/test-u8-vasnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u8-vasnprintf1$(EXEEXT): $(test_u8_vasnprintf1_OBJECTS) $(test_u8_vasnprintf1_DEPENDENCIES) 
+
+test-u8-vasnprintf1$(EXEEXT): $(test_u8_vasnprintf1_OBJECTS) $(test_u8_vasnprintf1_DEPENDENCIES) $(EXTRA_test_u8_vasnprintf1_DEPENDENCIES) 
        @rm -f test-u8-vasnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_vasnprintf1_OBJECTS) $(test_u8_vasnprintf1_LDADD) $(LIBS)
 unistdio/test-u8-vasnprintf2.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u8-vasnprintf2$(EXEEXT): $(test_u8_vasnprintf2_OBJECTS) $(test_u8_vasnprintf2_DEPENDENCIES) 
+
+test-u8-vasnprintf2$(EXEEXT): $(test_u8_vasnprintf2_OBJECTS) $(test_u8_vasnprintf2_DEPENDENCIES) $(EXTRA_test_u8_vasnprintf2_DEPENDENCIES) 
        @rm -f test-u8-vasnprintf2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_vasnprintf2_OBJECTS) $(test_u8_vasnprintf2_LDADD) $(LIBS)
 unistdio/test-u8-vasnprintf3.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u8-vasnprintf3$(EXEEXT): $(test_u8_vasnprintf3_OBJECTS) $(test_u8_vasnprintf3_DEPENDENCIES) 
+
+test-u8-vasnprintf3$(EXEEXT): $(test_u8_vasnprintf3_OBJECTS) $(test_u8_vasnprintf3_DEPENDENCIES) $(EXTRA_test_u8_vasnprintf3_DEPENDENCIES) 
        @rm -f test-u8-vasnprintf3$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_vasnprintf3_OBJECTS) $(test_u8_vasnprintf3_LDADD) $(LIBS)
 unistdio/test-u8-vasprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u8-vasprintf1$(EXEEXT): $(test_u8_vasprintf1_OBJECTS) $(test_u8_vasprintf1_DEPENDENCIES) 
+
+test-u8-vasprintf1$(EXEEXT): $(test_u8_vasprintf1_OBJECTS) $(test_u8_vasprintf1_DEPENDENCIES) $(EXTRA_test_u8_vasprintf1_DEPENDENCIES) 
        @rm -f test-u8-vasprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_vasprintf1_OBJECTS) $(test_u8_vasprintf1_LDADD) $(LIBS)
 unistdio/test-u8-vsnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u8-vsnprintf1$(EXEEXT): $(test_u8_vsnprintf1_OBJECTS) $(test_u8_vsnprintf1_DEPENDENCIES) 
+
+test-u8-vsnprintf1$(EXEEXT): $(test_u8_vsnprintf1_OBJECTS) $(test_u8_vsnprintf1_DEPENDENCIES) $(EXTRA_test_u8_vsnprintf1_DEPENDENCIES) 
        @rm -f test-u8-vsnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_vsnprintf1_OBJECTS) $(test_u8_vsnprintf1_LDADD) $(LIBS)
 unistdio/test-u8-vsprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-u8-vsprintf1$(EXEEXT): $(test_u8_vsprintf1_OBJECTS) $(test_u8_vsprintf1_DEPENDENCIES) 
+
+test-u8-vsprintf1$(EXEEXT): $(test_u8_vsprintf1_OBJECTS) $(test_u8_vsprintf1_DEPENDENCIES) $(EXTRA_test_u8_vsprintf1_DEPENDENCIES) 
        @rm -f test-u8-vsprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_vsprintf1_OBJECTS) $(test_u8_vsprintf1_LDADD) $(LIBS)
 uniwidth/test-u8-width.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
-test-u8-width$(EXEEXT): $(test_u8_width_OBJECTS) $(test_u8_width_DEPENDENCIES) 
+
+test-u8-width$(EXEEXT): $(test_u8_width_OBJECTS) $(test_u8_width_DEPENDENCIES) $(EXTRA_test_u8_width_DEPENDENCIES) 
        @rm -f test-u8-width$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_width_OBJECTS) $(test_u8_width_LDADD) $(LIBS)
 unilbrk/test-u8-width-linebreaks.$(OBJEXT): unilbrk/$(am__dirstamp) \
        unilbrk/$(DEPDIR)/$(am__dirstamp)
-test-u8-width-linebreaks$(EXEEXT): $(test_u8_width_linebreaks_OBJECTS) $(test_u8_width_linebreaks_DEPENDENCIES) 
+
+test-u8-width-linebreaks$(EXEEXT): $(test_u8_width_linebreaks_OBJECTS) $(test_u8_width_linebreaks_DEPENDENCIES) $(EXTRA_test_u8_width_linebreaks_DEPENDENCIES) 
        @rm -f test-u8-width-linebreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_width_linebreaks_OBJECTS) $(test_u8_width_linebreaks_LDADD) $(LIBS)
 uniwbrk/test-u8-wordbreaks.$(OBJEXT): uniwbrk/$(am__dirstamp) \
        uniwbrk/$(DEPDIR)/$(am__dirstamp)
-test-u8-wordbreaks$(EXEEXT): $(test_u8_wordbreaks_OBJECTS) $(test_u8_wordbreaks_DEPENDENCIES) 
+
+test-u8-wordbreaks$(EXEEXT): $(test_u8_wordbreaks_OBJECTS) $(test_u8_wordbreaks_DEPENDENCIES) $(EXTRA_test_u8_wordbreaks_DEPENDENCIES) 
        @rm -f test-u8-wordbreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_wordbreaks_OBJECTS) $(test_u8_wordbreaks_LDADD) $(LIBS)
+unigbrk/test-uc-gbrk-prop.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-uc-gbrk-prop$(EXEEXT): $(test_uc_gbrk_prop_OBJECTS) $(test_uc_gbrk_prop_DEPENDENCIES) $(EXTRA_test_uc_gbrk_prop_DEPENDENCIES) 
+       @rm -f test-uc-gbrk-prop$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_uc_gbrk_prop_OBJECTS) $(test_uc_gbrk_prop_LDADD) $(LIBS)
+unigbrk/test-uc-is-grapheme-break.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-uc-is-grapheme-break$(EXEEXT): $(test_uc_is_grapheme_break_OBJECTS) $(test_uc_is_grapheme_break_DEPENDENCIES) $(EXTRA_test_uc_is_grapheme_break_DEPENDENCIES) 
+       @rm -f test-uc-is-grapheme-break$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_uc_is_grapheme_break_OBJECTS) $(test_uc_is_grapheme_break_LDADD) $(LIBS)
 unicase/test-uc_tolower.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-uc_tolower$(EXEEXT): $(test_uc_tolower_OBJECTS) $(test_uc_tolower_DEPENDENCIES) 
+
+test-uc_tolower$(EXEEXT): $(test_uc_tolower_OBJECTS) $(test_uc_tolower_DEPENDENCIES) $(EXTRA_test_uc_tolower_DEPENDENCIES) 
        @rm -f test-uc_tolower$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_uc_tolower_OBJECTS) $(test_uc_tolower_LDADD) $(LIBS)
 unicase/test-uc_totitle.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-uc_totitle$(EXEEXT): $(test_uc_totitle_OBJECTS) $(test_uc_totitle_DEPENDENCIES) 
+
+test-uc_totitle$(EXEEXT): $(test_uc_totitle_OBJECTS) $(test_uc_totitle_DEPENDENCIES) $(EXTRA_test_uc_totitle_DEPENDENCIES) 
        @rm -f test-uc_totitle$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_uc_totitle_OBJECTS) $(test_uc_totitle_LDADD) $(LIBS)
 unicase/test-uc_toupper.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-uc_toupper$(EXEEXT): $(test_uc_toupper_OBJECTS) $(test_uc_toupper_DEPENDENCIES) 
+
+test-uc_toupper$(EXEEXT): $(test_uc_toupper_OBJECTS) $(test_uc_toupper_DEPENDENCIES) $(EXTRA_test_uc_toupper_DEPENDENCIES) 
        @rm -f test-uc_toupper$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_uc_toupper_OBJECTS) $(test_uc_toupper_LDADD) $(LIBS)
 uniwidth/test-uc_width.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
-test-uc_width$(EXEEXT): $(test_uc_width_OBJECTS) $(test_uc_width_DEPENDENCIES) 
+
+test-uc_width$(EXEEXT): $(test_uc_width_OBJECTS) $(test_uc_width_DEPENDENCIES) $(EXTRA_test_uc_width_DEPENDENCIES) 
        @rm -f test-uc_width$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_uc_width_OBJECTS) $(test_uc_width_LDADD) $(LIBS)
 uniwidth/test-uc_width2.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
-test-uc_width2$(EXEEXT): $(test_uc_width2_OBJECTS) $(test_uc_width2_DEPENDENCIES) 
+
+test-uc_width2$(EXEEXT): $(test_uc_width2_OBJECTS) $(test_uc_width2_DEPENDENCIES) $(EXTRA_test_uc_width2_DEPENDENCIES) 
        @rm -f test-uc_width2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_uc_width2_OBJECTS) $(test_uc_width2_LDADD) $(LIBS)
 unistdio/test-ulc-asnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-ulc-asnprintf1$(EXEEXT): $(test_ulc_asnprintf1_OBJECTS) $(test_ulc_asnprintf1_DEPENDENCIES) 
+
+test-ulc-asnprintf1$(EXEEXT): $(test_ulc_asnprintf1_OBJECTS) $(test_ulc_asnprintf1_DEPENDENCIES) $(EXTRA_test_ulc_asnprintf1_DEPENDENCIES) 
        @rm -f test-ulc-asnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_asnprintf1_OBJECTS) $(test_ulc_asnprintf1_LDADD) $(LIBS)
 unicase/test-ulc-casecmp.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-ulc-casecmp$(EXEEXT): $(test_ulc_casecmp_OBJECTS) $(test_ulc_casecmp_DEPENDENCIES) 
+
+test-ulc-casecmp$(EXEEXT): $(test_ulc_casecmp_OBJECTS) $(test_ulc_casecmp_DEPENDENCIES) $(EXTRA_test_ulc_casecmp_DEPENDENCIES) 
        @rm -f test-ulc-casecmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_casecmp_OBJECTS) $(test_ulc_casecmp_LDADD) $(LIBS)
 unicase/test-ulc-casecoll.$(OBJEXT): unicase/$(am__dirstamp) \
        unicase/$(DEPDIR)/$(am__dirstamp)
-test-ulc-casecoll$(EXEEXT): $(test_ulc_casecoll_OBJECTS) $(test_ulc_casecoll_DEPENDENCIES) 
+
+test-ulc-casecoll$(EXEEXT): $(test_ulc_casecoll_OBJECTS) $(test_ulc_casecoll_DEPENDENCIES) $(EXTRA_test_ulc_casecoll_DEPENDENCIES) 
        @rm -f test-ulc-casecoll$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_casecoll_OBJECTS) $(test_ulc_casecoll_LDADD) $(LIBS)
+unigbrk/test-ulc-grapheme-breaks.$(OBJEXT): unigbrk/$(am__dirstamp) \
+       unigbrk/$(DEPDIR)/$(am__dirstamp)
+
+test-ulc-grapheme-breaks$(EXEEXT): $(test_ulc_grapheme_breaks_OBJECTS) $(test_ulc_grapheme_breaks_DEPENDENCIES) $(EXTRA_test_ulc_grapheme_breaks_DEPENDENCIES) 
+       @rm -f test-ulc-grapheme-breaks$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_ulc_grapheme_breaks_OBJECTS) $(test_ulc_grapheme_breaks_LDADD) $(LIBS)
 unilbrk/test-ulc-possible-linebreaks.$(OBJEXT):  \
        unilbrk/$(am__dirstamp) unilbrk/$(DEPDIR)/$(am__dirstamp)
-test-ulc-possible-linebreaks$(EXEEXT): $(test_ulc_possible_linebreaks_OBJECTS) $(test_ulc_possible_linebreaks_DEPENDENCIES) 
+
+test-ulc-possible-linebreaks$(EXEEXT): $(test_ulc_possible_linebreaks_OBJECTS) $(test_ulc_possible_linebreaks_DEPENDENCIES) $(EXTRA_test_ulc_possible_linebreaks_DEPENDENCIES) 
        @rm -f test-ulc-possible-linebreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_possible_linebreaks_OBJECTS) $(test_ulc_possible_linebreaks_LDADD) $(LIBS)
 unistdio/test-ulc-vasnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-ulc-vasnprintf1$(EXEEXT): $(test_ulc_vasnprintf1_OBJECTS) $(test_ulc_vasnprintf1_DEPENDENCIES) 
+
+test-ulc-vasnprintf1$(EXEEXT): $(test_ulc_vasnprintf1_OBJECTS) $(test_ulc_vasnprintf1_DEPENDENCIES) $(EXTRA_test_ulc_vasnprintf1_DEPENDENCIES) 
        @rm -f test-ulc-vasnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_vasnprintf1_OBJECTS) $(test_ulc_vasnprintf1_LDADD) $(LIBS)
 unistdio/test-ulc-vasnprintf2.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-ulc-vasnprintf2$(EXEEXT): $(test_ulc_vasnprintf2_OBJECTS) $(test_ulc_vasnprintf2_DEPENDENCIES) 
+
+test-ulc-vasnprintf2$(EXEEXT): $(test_ulc_vasnprintf2_OBJECTS) $(test_ulc_vasnprintf2_DEPENDENCIES) $(EXTRA_test_ulc_vasnprintf2_DEPENDENCIES) 
        @rm -f test-ulc-vasnprintf2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_vasnprintf2_OBJECTS) $(test_ulc_vasnprintf2_LDADD) $(LIBS)
 unistdio/test-ulc-vasnprintf3.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-ulc-vasnprintf3$(EXEEXT): $(test_ulc_vasnprintf3_OBJECTS) $(test_ulc_vasnprintf3_DEPENDENCIES) 
+
+test-ulc-vasnprintf3$(EXEEXT): $(test_ulc_vasnprintf3_OBJECTS) $(test_ulc_vasnprintf3_DEPENDENCIES) $(EXTRA_test_ulc_vasnprintf3_DEPENDENCIES) 
        @rm -f test-ulc-vasnprintf3$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_vasnprintf3_OBJECTS) $(test_ulc_vasnprintf3_LDADD) $(LIBS)
 unistdio/test-ulc-vasprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-ulc-vasprintf1$(EXEEXT): $(test_ulc_vasprintf1_OBJECTS) $(test_ulc_vasprintf1_DEPENDENCIES) 
+
+test-ulc-vasprintf1$(EXEEXT): $(test_ulc_vasprintf1_OBJECTS) $(test_ulc_vasprintf1_DEPENDENCIES) $(EXTRA_test_ulc_vasprintf1_DEPENDENCIES) 
        @rm -f test-ulc-vasprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_vasprintf1_OBJECTS) $(test_ulc_vasprintf1_LDADD) $(LIBS)
 unistdio/test-ulc-vsnprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-ulc-vsnprintf1$(EXEEXT): $(test_ulc_vsnprintf1_OBJECTS) $(test_ulc_vsnprintf1_DEPENDENCIES) 
+
+test-ulc-vsnprintf1$(EXEEXT): $(test_ulc_vsnprintf1_OBJECTS) $(test_ulc_vsnprintf1_DEPENDENCIES) $(EXTRA_test_ulc_vsnprintf1_DEPENDENCIES) 
        @rm -f test-ulc-vsnprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_vsnprintf1_OBJECTS) $(test_ulc_vsnprintf1_LDADD) $(LIBS)
 unistdio/test-ulc-vsprintf1.$(OBJEXT): unistdio/$(am__dirstamp) \
        unistdio/$(DEPDIR)/$(am__dirstamp)
-test-ulc-vsprintf1$(EXEEXT): $(test_ulc_vsprintf1_OBJECTS) $(test_ulc_vsprintf1_DEPENDENCIES) 
+
+test-ulc-vsprintf1$(EXEEXT): $(test_ulc_vsprintf1_OBJECTS) $(test_ulc_vsprintf1_DEPENDENCIES) $(EXTRA_test_ulc_vsprintf1_DEPENDENCIES) 
        @rm -f test-ulc-vsprintf1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_vsprintf1_OBJECTS) $(test_ulc_vsprintf1_LDADD) $(LIBS)
 unilbrk/test-ulc-width-linebreaks.$(OBJEXT): unilbrk/$(am__dirstamp) \
        unilbrk/$(DEPDIR)/$(am__dirstamp)
-test-ulc-width-linebreaks$(EXEEXT): $(test_ulc_width_linebreaks_OBJECTS) $(test_ulc_width_linebreaks_DEPENDENCIES) 
+
+test-ulc-width-linebreaks$(EXEEXT): $(test_ulc_width_linebreaks_OBJECTS) $(test_ulc_width_linebreaks_DEPENDENCIES) $(EXTRA_test_ulc_width_linebreaks_DEPENDENCIES) 
        @rm -f test-ulc-width-linebreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_width_linebreaks_OBJECTS) $(test_ulc_width_linebreaks_LDADD) $(LIBS)
 uniwbrk/test-ulc-wordbreaks.$(OBJEXT): uniwbrk/$(am__dirstamp) \
        uniwbrk/$(DEPDIR)/$(am__dirstamp)
-test-ulc-wordbreaks$(EXEEXT): $(test_ulc_wordbreaks_OBJECTS) $(test_ulc_wordbreaks_DEPENDENCIES) 
+
+test-ulc-wordbreaks$(EXEEXT): $(test_ulc_wordbreaks_OBJECTS) $(test_ulc_wordbreaks_DEPENDENCIES) $(EXTRA_test_ulc_wordbreaks_DEPENDENCIES) 
        @rm -f test-ulc-wordbreaks$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ulc_wordbreaks_OBJECTS) $(test_ulc_wordbreaks_LDADD) $(LIBS)
 uniname/$(am__dirstamp):
@@ -7173,476 +8930,154 @@ uniname/$(DEPDIR)/$(am__dirstamp):
        @: > uniname/$(DEPDIR)/$(am__dirstamp)
 uniname/test-uninames.$(OBJEXT): uniname/$(am__dirstamp) \
        uniname/$(DEPDIR)/$(am__dirstamp)
-test-uninames$(EXEEXT): $(test_uninames_OBJECTS) $(test_uninames_DEPENDENCIES) 
+
+test-uninames$(EXEEXT): $(test_uninames_OBJECTS) $(test_uninames_DEPENDENCIES) $(EXTRA_test_uninames_DEPENDENCIES) 
        @rm -f test-uninames$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_uninames_OBJECTS) $(test_uninames_LDADD) $(LIBS)
 uninorm/test-uninorm-filter-nfc.$(OBJEXT): uninorm/$(am__dirstamp) \
        uninorm/$(DEPDIR)/$(am__dirstamp)
-test-uninorm-filter-nfc$(EXEEXT): $(test_uninorm_filter_nfc_OBJECTS) $(test_uninorm_filter_nfc_DEPENDENCIES) 
+
+test-uninorm-filter-nfc$(EXEEXT): $(test_uninorm_filter_nfc_OBJECTS) $(test_uninorm_filter_nfc_DEPENDENCIES) $(EXTRA_test_uninorm_filter_nfc_DEPENDENCIES) 
        @rm -f test-uninorm-filter-nfc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_uninorm_filter_nfc_OBJECTS) $(test_uninorm_filter_nfc_LDADD) $(LIBS)
-test-unistd$(EXEEXT): $(test_unistd_OBJECTS) $(test_unistd_DEPENDENCIES) 
+
+test-unistd$(EXEEXT): $(test_unistd_OBJECTS) $(test_unistd_DEPENDENCIES) $(EXTRA_test_unistd_DEPENDENCIES) 
        @rm -f test-unistd$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_unistd_OBJECTS) $(test_unistd_LDADD) $(LIBS)
-test-unsetenv$(EXEEXT): $(test_unsetenv_OBJECTS) $(test_unsetenv_DEPENDENCIES) 
+
+test-unsetenv$(EXEEXT): $(test_unsetenv_OBJECTS) $(test_unsetenv_DEPENDENCIES) $(EXTRA_test_unsetenv_DEPENDENCIES) 
        @rm -f test-unsetenv$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_unsetenv_OBJECTS) $(test_unsetenv_LDADD) $(LIBS)
-test-wchar$(EXEEXT): $(test_wchar_OBJECTS) $(test_wchar_DEPENDENCIES) 
+
+test-verify$(EXEEXT): $(test_verify_OBJECTS) $(test_verify_DEPENDENCIES) $(EXTRA_test_verify_DEPENDENCIES) 
+       @rm -f test-verify$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_verify_OBJECTS) $(test_verify_LDADD) $(LIBS)
+
+test-wchar$(EXEEXT): $(test_wchar_OBJECTS) $(test_wchar_DEPENDENCIES) $(EXTRA_test_wchar_DEPENDENCIES) 
        @rm -f test-wchar$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_wchar_OBJECTS) $(test_wchar_LDADD) $(LIBS)
-test-wctype$(EXEEXT): $(test_wctype_OBJECTS) $(test_wctype_DEPENDENCIES) 
-       @rm -f test-wctype$(EXEEXT)
-       $(AM_V_CCLD)$(LINK) $(test_wctype_OBJECTS) $(test_wctype_LDADD) $(LIBS)
-test-wcwidth$(EXEEXT): $(test_wcwidth_OBJECTS) $(test_wcwidth_DEPENDENCIES) 
+
+test-wcrtomb$(EXEEXT): $(test_wcrtomb_OBJECTS) $(test_wcrtomb_DEPENDENCIES) $(EXTRA_test_wcrtomb_DEPENDENCIES) 
+       @rm -f test-wcrtomb$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_wcrtomb_OBJECTS) $(test_wcrtomb_LDADD) $(LIBS)
+
+test-wcrtomb-w32$(EXEEXT): $(test_wcrtomb_w32_OBJECTS) $(test_wcrtomb_w32_DEPENDENCIES) $(EXTRA_test_wcrtomb_w32_DEPENDENCIES) 
+       @rm -f test-wcrtomb-w32$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_wcrtomb_w32_OBJECTS) $(test_wcrtomb_w32_LDADD) $(LIBS)
+
+test-wctype-h$(EXEEXT): $(test_wctype_h_OBJECTS) $(test_wctype_h_DEPENDENCIES) $(EXTRA_test_wctype_h_DEPENDENCIES) 
+       @rm -f test-wctype-h$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_wctype_h_OBJECTS) $(test_wctype_h_LDADD) $(LIBS)
+
+test-wcwidth$(EXEEXT): $(test_wcwidth_OBJECTS) $(test_wcwidth_DEPENDENCIES) $(EXTRA_test_wcwidth_DEPENDENCIES) 
        @rm -f test-wcwidth$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_wcwidth_OBJECTS) $(test_wcwidth_LDADD) $(LIBS)
-test-xalloc-die$(EXEEXT): $(test_xalloc_die_OBJECTS) $(test_xalloc_die_DEPENDENCIES) 
+
+test-xalloc-die$(EXEEXT): $(test_xalloc_die_OBJECTS) $(test_xalloc_die_DEPENDENCIES) $(EXTRA_test_xalloc_die_DEPENDENCIES) 
        @rm -f test-xalloc-die$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_xalloc_die_OBJECTS) $(test_xalloc_die_LDADD) $(LIBS)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
-       -rm -f glthread/thread.$(OBJEXT)
-       -rm -f unicase/test-cased.$(OBJEXT)
-       -rm -f unicase/test-ignorable.$(OBJEXT)
-       -rm -f unicase/test-locale-language.$(OBJEXT)
-       -rm -f unicase/test-u16-casecmp.$(OBJEXT)
-       -rm -f unicase/test-u16-casecoll.$(OBJEXT)
-       -rm -f unicase/test-u16-casefold.$(OBJEXT)
-       -rm -f unicase/test-u16-is-cased.$(OBJEXT)
-       -rm -f unicase/test-u16-is-casefolded.$(OBJEXT)
-       -rm -f unicase/test-u16-is-lowercase.$(OBJEXT)
-       -rm -f unicase/test-u16-is-titlecase.$(OBJEXT)
-       -rm -f unicase/test-u16-is-uppercase.$(OBJEXT)
-       -rm -f unicase/test-u16-tolower.$(OBJEXT)
-       -rm -f unicase/test-u16-totitle.$(OBJEXT)
-       -rm -f unicase/test-u16-toupper.$(OBJEXT)
-       -rm -f unicase/test-u32-casecmp.$(OBJEXT)
-       -rm -f unicase/test-u32-casecoll.$(OBJEXT)
-       -rm -f unicase/test-u32-casefold.$(OBJEXT)
-       -rm -f unicase/test-u32-is-cased.$(OBJEXT)
-       -rm -f unicase/test-u32-is-casefolded.$(OBJEXT)
-       -rm -f unicase/test-u32-is-lowercase.$(OBJEXT)
-       -rm -f unicase/test-u32-is-titlecase.$(OBJEXT)
-       -rm -f unicase/test-u32-is-uppercase.$(OBJEXT)
-       -rm -f unicase/test-u32-tolower.$(OBJEXT)
-       -rm -f unicase/test-u32-totitle.$(OBJEXT)
-       -rm -f unicase/test-u32-toupper.$(OBJEXT)
-       -rm -f unicase/test-u8-casecmp.$(OBJEXT)
-       -rm -f unicase/test-u8-casecoll.$(OBJEXT)
-       -rm -f unicase/test-u8-casefold.$(OBJEXT)
-       -rm -f unicase/test-u8-is-cased.$(OBJEXT)
-       -rm -f unicase/test-u8-is-casefolded.$(OBJEXT)
-       -rm -f unicase/test-u8-is-lowercase.$(OBJEXT)
-       -rm -f unicase/test-u8-is-titlecase.$(OBJEXT)
-       -rm -f unicase/test-u8-is-uppercase.$(OBJEXT)
-       -rm -f unicase/test-u8-tolower.$(OBJEXT)
-       -rm -f unicase/test-u8-totitle.$(OBJEXT)
-       -rm -f unicase/test-u8-toupper.$(OBJEXT)
-       -rm -f unicase/test-uc_tolower.$(OBJEXT)
-       -rm -f unicase/test-uc_totitle.$(OBJEXT)
-       -rm -f unicase/test-uc_toupper.$(OBJEXT)
-       -rm -f unicase/test-ulc-casecmp.$(OBJEXT)
-       -rm -f unicase/test-ulc-casecoll.$(OBJEXT)
-       -rm -f uniconv/test-u16-conv-from-enc.$(OBJEXT)
-       -rm -f uniconv/test-u16-conv-to-enc.$(OBJEXT)
-       -rm -f uniconv/test-u16-strconv-from-enc.$(OBJEXT)
-       -rm -f uniconv/test-u16-strconv-to-enc.$(OBJEXT)
-       -rm -f uniconv/test-u32-conv-from-enc.$(OBJEXT)
-       -rm -f uniconv/test-u32-conv-to-enc.$(OBJEXT)
-       -rm -f uniconv/test-u32-strconv-from-enc.$(OBJEXT)
-       -rm -f uniconv/test-u32-strconv-to-enc.$(OBJEXT)
-       -rm -f uniconv/test-u8-conv-from-enc.$(OBJEXT)
-       -rm -f uniconv/test-u8-conv-to-enc.$(OBJEXT)
-       -rm -f uniconv/test-u8-strconv-from-enc.$(OBJEXT)
-       -rm -f uniconv/test-u8-strconv-to-enc.$(OBJEXT)
-       -rm -f unictype/test-bidi_byname.$(OBJEXT)
-       -rm -f unictype/test-bidi_name.$(OBJEXT)
-       -rm -f unictype/test-bidi_of.$(OBJEXT)
-       -rm -f unictype/test-bidi_test.$(OBJEXT)
-       -rm -f unictype/test-block_list.$(OBJEXT)
-       -rm -f unictype/test-block_of.$(OBJEXT)
-       -rm -f unictype/test-block_test.$(OBJEXT)
-       -rm -f unictype/test-categ_C.$(OBJEXT)
-       -rm -f unictype/test-categ_Cc.$(OBJEXT)
-       -rm -f unictype/test-categ_Cf.$(OBJEXT)
-       -rm -f unictype/test-categ_Cn.$(OBJEXT)
-       -rm -f unictype/test-categ_Co.$(OBJEXT)
-       -rm -f unictype/test-categ_Cs.$(OBJEXT)
-       -rm -f unictype/test-categ_L.$(OBJEXT)
-       -rm -f unictype/test-categ_Ll.$(OBJEXT)
-       -rm -f unictype/test-categ_Lm.$(OBJEXT)
-       -rm -f unictype/test-categ_Lo.$(OBJEXT)
-       -rm -f unictype/test-categ_Lt.$(OBJEXT)
-       -rm -f unictype/test-categ_Lu.$(OBJEXT)
-       -rm -f unictype/test-categ_M.$(OBJEXT)
-       -rm -f unictype/test-categ_Mc.$(OBJEXT)
-       -rm -f unictype/test-categ_Me.$(OBJEXT)
-       -rm -f unictype/test-categ_Mn.$(OBJEXT)
-       -rm -f unictype/test-categ_N.$(OBJEXT)
-       -rm -f unictype/test-categ_Nd.$(OBJEXT)
-       -rm -f unictype/test-categ_Nl.$(OBJEXT)
-       -rm -f unictype/test-categ_No.$(OBJEXT)
-       -rm -f unictype/test-categ_P.$(OBJEXT)
-       -rm -f unictype/test-categ_Pc.$(OBJEXT)
-       -rm -f unictype/test-categ_Pd.$(OBJEXT)
-       -rm -f unictype/test-categ_Pe.$(OBJEXT)
-       -rm -f unictype/test-categ_Pf.$(OBJEXT)
-       -rm -f unictype/test-categ_Pi.$(OBJEXT)
-       -rm -f unictype/test-categ_Po.$(OBJEXT)
-       -rm -f unictype/test-categ_Ps.$(OBJEXT)
-       -rm -f unictype/test-categ_S.$(OBJEXT)
-       -rm -f unictype/test-categ_Sc.$(OBJEXT)
-       -rm -f unictype/test-categ_Sk.$(OBJEXT)
-       -rm -f unictype/test-categ_Sm.$(OBJEXT)
-       -rm -f unictype/test-categ_So.$(OBJEXT)
-       -rm -f unictype/test-categ_Z.$(OBJEXT)
-       -rm -f unictype/test-categ_Zl.$(OBJEXT)
-       -rm -f unictype/test-categ_Zp.$(OBJEXT)
-       -rm -f unictype/test-categ_Zs.$(OBJEXT)
-       -rm -f unictype/test-categ_and.$(OBJEXT)
-       -rm -f unictype/test-categ_and_not.$(OBJEXT)
-       -rm -f unictype/test-categ_byname.$(OBJEXT)
-       -rm -f unictype/test-categ_name.$(OBJEXT)
-       -rm -f unictype/test-categ_none.$(OBJEXT)
-       -rm -f unictype/test-categ_of.$(OBJEXT)
-       -rm -f unictype/test-categ_or.$(OBJEXT)
-       -rm -f unictype/test-categ_test_withtable.$(OBJEXT)
-       -rm -f unictype/test-combining.$(OBJEXT)
-       -rm -f unictype/test-ctype_alnum.$(OBJEXT)
-       -rm -f unictype/test-ctype_alpha.$(OBJEXT)
-       -rm -f unictype/test-ctype_blank.$(OBJEXT)
-       -rm -f unictype/test-ctype_cntrl.$(OBJEXT)
-       -rm -f unictype/test-ctype_digit.$(OBJEXT)
-       -rm -f unictype/test-ctype_graph.$(OBJEXT)
-       -rm -f unictype/test-ctype_lower.$(OBJEXT)
-       -rm -f unictype/test-ctype_print.$(OBJEXT)
-       -rm -f unictype/test-ctype_punct.$(OBJEXT)
-       -rm -f unictype/test-ctype_space.$(OBJEXT)
-       -rm -f unictype/test-ctype_upper.$(OBJEXT)
-       -rm -f unictype/test-ctype_xdigit.$(OBJEXT)
-       -rm -f unictype/test-decdigit.$(OBJEXT)
-       -rm -f unictype/test-digit.$(OBJEXT)
-       -rm -f unictype/test-mirror.$(OBJEXT)
-       -rm -f unictype/test-numeric.$(OBJEXT)
-       -rm -f unictype/test-pr_alphabetic.$(OBJEXT)
-       -rm -f unictype/test-pr_ascii_hex_digit.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_arabic_digit.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_arabic_right_to_left.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_block_separator.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_boundary_neutral.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_common_separator.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_control.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_embedding_or_override.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_eur_num_separator.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_eur_num_terminator.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_european_digit.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_hebrew_right_to_left.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_left_to_right.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_non_spacing_mark.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_other_neutral.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_pdf.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_segment_separator.$(OBJEXT)
-       -rm -f unictype/test-pr_bidi_whitespace.$(OBJEXT)
-       -rm -f unictype/test-pr_byname.$(OBJEXT)
-       -rm -f unictype/test-pr_combining.$(OBJEXT)
-       -rm -f unictype/test-pr_composite.$(OBJEXT)
-       -rm -f unictype/test-pr_currency_symbol.$(OBJEXT)
-       -rm -f unictype/test-pr_dash.$(OBJEXT)
-       -rm -f unictype/test-pr_decimal_digit.$(OBJEXT)
-       -rm -f unictype/test-pr_default_ignorable_code_point.$(OBJEXT)
-       -rm -f unictype/test-pr_deprecated.$(OBJEXT)
-       -rm -f unictype/test-pr_diacritic.$(OBJEXT)
-       -rm -f unictype/test-pr_extender.$(OBJEXT)
-       -rm -f unictype/test-pr_format_control.$(OBJEXT)
-       -rm -f unictype/test-pr_grapheme_base.$(OBJEXT)
-       -rm -f unictype/test-pr_grapheme_extend.$(OBJEXT)
-       -rm -f unictype/test-pr_grapheme_link.$(OBJEXT)
-       -rm -f unictype/test-pr_hex_digit.$(OBJEXT)
-       -rm -f unictype/test-pr_hyphen.$(OBJEXT)
-       -rm -f unictype/test-pr_id_continue.$(OBJEXT)
-       -rm -f unictype/test-pr_id_start.$(OBJEXT)
-       -rm -f unictype/test-pr_ideographic.$(OBJEXT)
-       -rm -f unictype/test-pr_ids_binary_operator.$(OBJEXT)
-       -rm -f unictype/test-pr_ids_trinary_operator.$(OBJEXT)
-       -rm -f unictype/test-pr_ignorable_control.$(OBJEXT)
-       -rm -f unictype/test-pr_iso_control.$(OBJEXT)
-       -rm -f unictype/test-pr_join_control.$(OBJEXT)
-       -rm -f unictype/test-pr_left_of_pair.$(OBJEXT)
-       -rm -f unictype/test-pr_line_separator.$(OBJEXT)
-       -rm -f unictype/test-pr_logical_order_exception.$(OBJEXT)
-       -rm -f unictype/test-pr_lowercase.$(OBJEXT)
-       -rm -f unictype/test-pr_math.$(OBJEXT)
-       -rm -f unictype/test-pr_non_break.$(OBJEXT)
-       -rm -f unictype/test-pr_not_a_character.$(OBJEXT)
-       -rm -f unictype/test-pr_numeric.$(OBJEXT)
-       -rm -f unictype/test-pr_other_alphabetic.$(OBJEXT)
-       -rm -f unictype/test-pr_other_default_ignorable_code_point.$(OBJEXT)
-       -rm -f unictype/test-pr_other_grapheme_extend.$(OBJEXT)
-       -rm -f unictype/test-pr_other_id_continue.$(OBJEXT)
-       -rm -f unictype/test-pr_other_id_start.$(OBJEXT)
-       -rm -f unictype/test-pr_other_lowercase.$(OBJEXT)
-       -rm -f unictype/test-pr_other_math.$(OBJEXT)
-       -rm -f unictype/test-pr_other_uppercase.$(OBJEXT)
-       -rm -f unictype/test-pr_paired_punctuation.$(OBJEXT)
-       -rm -f unictype/test-pr_paragraph_separator.$(OBJEXT)
-       -rm -f unictype/test-pr_pattern_syntax.$(OBJEXT)
-       -rm -f unictype/test-pr_pattern_white_space.$(OBJEXT)
-       -rm -f unictype/test-pr_private_use.$(OBJEXT)
-       -rm -f unictype/test-pr_punctuation.$(OBJEXT)
-       -rm -f unictype/test-pr_quotation_mark.$(OBJEXT)
-       -rm -f unictype/test-pr_radical.$(OBJEXT)
-       -rm -f unictype/test-pr_sentence_terminal.$(OBJEXT)
-       -rm -f unictype/test-pr_soft_dotted.$(OBJEXT)
-       -rm -f unictype/test-pr_space.$(OBJEXT)
-       -rm -f unictype/test-pr_terminal_punctuation.$(OBJEXT)
-       -rm -f unictype/test-pr_test.$(OBJEXT)
-       -rm -f unictype/test-pr_titlecase.$(OBJEXT)
-       -rm -f unictype/test-pr_unassigned_code_value.$(OBJEXT)
-       -rm -f unictype/test-pr_unified_ideograph.$(OBJEXT)
-       -rm -f unictype/test-pr_uppercase.$(OBJEXT)
-       -rm -f unictype/test-pr_variation_selector.$(OBJEXT)
-       -rm -f unictype/test-pr_white_space.$(OBJEXT)
-       -rm -f unictype/test-pr_xid_continue.$(OBJEXT)
-       -rm -f unictype/test-pr_xid_start.$(OBJEXT)
-       -rm -f unictype/test-pr_zero_width.$(OBJEXT)
-       -rm -f unictype/test-scripts.$(OBJEXT)
-       -rm -f unictype/test-sy_c_ident.$(OBJEXT)
-       -rm -f unictype/test-sy_c_whitespace.$(OBJEXT)
-       -rm -f unictype/test-sy_java_ident.$(OBJEXT)
-       -rm -f unictype/test-sy_java_whitespace.$(OBJEXT)
-       -rm -f unilbrk/test-u16-possible-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/test-u16-width-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/test-u32-possible-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/test-u32-width-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/test-u8-possible-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/test-u8-width-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/test-ulc-possible-linebreaks.$(OBJEXT)
-       -rm -f unilbrk/test-ulc-width-linebreaks.$(OBJEXT)
-       -rm -f uniname/test-uninames.$(OBJEXT)
-       -rm -f uninorm/test-canonical-decomposition.$(OBJEXT)
-       -rm -f uninorm/test-compat-decomposition.$(OBJEXT)
-       -rm -f uninorm/test-composition.$(OBJEXT)
-       -rm -f uninorm/test-decomposing-form.$(OBJEXT)
-       -rm -f uninorm/test-decomposition.$(OBJEXT)
-       -rm -f uninorm/test-nfc.$(OBJEXT)
-       -rm -f uninorm/test-nfd.$(OBJEXT)
-       -rm -f uninorm/test-nfkc.$(OBJEXT)
-       -rm -f uninorm/test-nfkd.$(OBJEXT)
-       -rm -f uninorm/test-u16-nfc.$(OBJEXT)
-       -rm -f uninorm/test-u16-nfd.$(OBJEXT)
-       -rm -f uninorm/test-u16-nfkc.$(OBJEXT)
-       -rm -f uninorm/test-u16-nfkd.$(OBJEXT)
-       -rm -f uninorm/test-u16-normcmp.$(OBJEXT)
-       -rm -f uninorm/test-u16-normcoll.$(OBJEXT)
-       -rm -f uninorm/test-u32-nfc-big.$(OBJEXT)
-       -rm -f uninorm/test-u32-nfc.$(OBJEXT)
-       -rm -f uninorm/test-u32-nfd-big.$(OBJEXT)
-       -rm -f uninorm/test-u32-nfd.$(OBJEXT)
-       -rm -f uninorm/test-u32-nfkc-big.$(OBJEXT)
-       -rm -f uninorm/test-u32-nfkc.$(OBJEXT)
-       -rm -f uninorm/test-u32-nfkd-big.$(OBJEXT)
-       -rm -f uninorm/test-u32-nfkd.$(OBJEXT)
-       -rm -f uninorm/test-u32-normalize-big.$(OBJEXT)
-       -rm -f uninorm/test-u32-normcmp.$(OBJEXT)
-       -rm -f uninorm/test-u32-normcoll.$(OBJEXT)
-       -rm -f uninorm/test-u8-nfc.$(OBJEXT)
-       -rm -f uninorm/test-u8-nfd.$(OBJEXT)
-       -rm -f uninorm/test-u8-nfkc.$(OBJEXT)
-       -rm -f uninorm/test-u8-nfkd.$(OBJEXT)
-       -rm -f uninorm/test-u8-normcmp.$(OBJEXT)
-       -rm -f uninorm/test-u8-normcoll.$(OBJEXT)
-       -rm -f uninorm/test-uninorm-filter-nfc.$(OBJEXT)
-       -rm -f unistdio/test-u16-asnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u16-vasnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u16-vasnprintf2.$(OBJEXT)
-       -rm -f unistdio/test-u16-vasnprintf3.$(OBJEXT)
-       -rm -f unistdio/test-u16-vasprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u16-vsnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u16-vsprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u32-asnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u32-vasnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u32-vasnprintf2.$(OBJEXT)
-       -rm -f unistdio/test-u32-vasnprintf3.$(OBJEXT)
-       -rm -f unistdio/test-u32-vasprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u32-vsnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u32-vsprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u8-asnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u8-vasnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u8-vasnprintf2.$(OBJEXT)
-       -rm -f unistdio/test-u8-vasnprintf3.$(OBJEXT)
-       -rm -f unistdio/test-u8-vasprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u8-vsnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-u8-vsprintf1.$(OBJEXT)
-       -rm -f unistdio/test-ulc-asnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-ulc-vasnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-ulc-vasnprintf2.$(OBJEXT)
-       -rm -f unistdio/test-ulc-vasnprintf3.$(OBJEXT)
-       -rm -f unistdio/test-ulc-vasprintf1.$(OBJEXT)
-       -rm -f unistdio/test-ulc-vsnprintf1.$(OBJEXT)
-       -rm -f unistdio/test-ulc-vsprintf1.$(OBJEXT)
-       -rm -f unistr/test-u16-check.$(OBJEXT)
-       -rm -f unistr/test-u16-chr.$(OBJEXT)
-       -rm -f unistr/test-u16-cmp.$(OBJEXT)
-       -rm -f unistr/test-u16-cmp2.$(OBJEXT)
-       -rm -f unistr/test-u16-cpy-alloc.$(OBJEXT)
-       -rm -f unistr/test-u16-cpy.$(OBJEXT)
-       -rm -f unistr/test-u16-mblen.$(OBJEXT)
-       -rm -f unistr/test-u16-mbsnlen.$(OBJEXT)
-       -rm -f unistr/test-u16-mbtouc-unsafe.$(OBJEXT)
-       -rm -f unistr/test-u16-mbtouc.$(OBJEXT)
-       -rm -f unistr/test-u16-mbtoucr.$(OBJEXT)
-       -rm -f unistr/test-u16-move.$(OBJEXT)
-       -rm -f unistr/test-u16-next.$(OBJEXT)
-       -rm -f unistr/test-u16-prev.$(OBJEXT)
-       -rm -f unistr/test-u16-set.$(OBJEXT)
-       -rm -f unistr/test-u16-stpcpy.$(OBJEXT)
-       -rm -f unistr/test-u16-stpncpy.$(OBJEXT)
-       -rm -f unistr/test-u16-strcat.$(OBJEXT)
-       -rm -f unistr/test-u16-strcmp.$(OBJEXT)
-       -rm -f unistr/test-u16-strcoll.$(OBJEXT)
-       -rm -f unistr/test-u16-strcpy.$(OBJEXT)
-       -rm -f unistr/test-u16-strdup.$(OBJEXT)
-       -rm -f unistr/test-u16-strlen.$(OBJEXT)
-       -rm -f unistr/test-u16-strmblen.$(OBJEXT)
-       -rm -f unistr/test-u16-strmbtouc.$(OBJEXT)
-       -rm -f unistr/test-u16-strncat.$(OBJEXT)
-       -rm -f unistr/test-u16-strncmp.$(OBJEXT)
-       -rm -f unistr/test-u16-strncpy.$(OBJEXT)
-       -rm -f unistr/test-u16-strnlen.$(OBJEXT)
-       -rm -f unistr/test-u16-to-u32.$(OBJEXT)
-       -rm -f unistr/test-u16-to-u8.$(OBJEXT)
-       -rm -f unistr/test-u16-uctomb.$(OBJEXT)
-       -rm -f unistr/test-u32-check.$(OBJEXT)
-       -rm -f unistr/test-u32-chr.$(OBJEXT)
-       -rm -f unistr/test-u32-cmp.$(OBJEXT)
-       -rm -f unistr/test-u32-cmp2.$(OBJEXT)
-       -rm -f unistr/test-u32-cpy-alloc.$(OBJEXT)
-       -rm -f unistr/test-u32-cpy.$(OBJEXT)
-       -rm -f unistr/test-u32-mblen.$(OBJEXT)
-       -rm -f unistr/test-u32-mbsnlen.$(OBJEXT)
-       -rm -f unistr/test-u32-mbtouc-unsafe.$(OBJEXT)
-       -rm -f unistr/test-u32-mbtouc.$(OBJEXT)
-       -rm -f unistr/test-u32-mbtoucr.$(OBJEXT)
-       -rm -f unistr/test-u32-move.$(OBJEXT)
-       -rm -f unistr/test-u32-next.$(OBJEXT)
-       -rm -f unistr/test-u32-prev.$(OBJEXT)
-       -rm -f unistr/test-u32-set.$(OBJEXT)
-       -rm -f unistr/test-u32-stpcpy.$(OBJEXT)
-       -rm -f unistr/test-u32-stpncpy.$(OBJEXT)
-       -rm -f unistr/test-u32-strcat.$(OBJEXT)
-       -rm -f unistr/test-u32-strcmp.$(OBJEXT)
-       -rm -f unistr/test-u32-strcoll.$(OBJEXT)
-       -rm -f unistr/test-u32-strcpy.$(OBJEXT)
-       -rm -f unistr/test-u32-strdup.$(OBJEXT)
-       -rm -f unistr/test-u32-strlen.$(OBJEXT)
-       -rm -f unistr/test-u32-strmblen.$(OBJEXT)
-       -rm -f unistr/test-u32-strmbtouc.$(OBJEXT)
-       -rm -f unistr/test-u32-strncat.$(OBJEXT)
-       -rm -f unistr/test-u32-strncmp.$(OBJEXT)
-       -rm -f unistr/test-u32-strncpy.$(OBJEXT)
-       -rm -f unistr/test-u32-strnlen.$(OBJEXT)
-       -rm -f unistr/test-u32-to-u16.$(OBJEXT)
-       -rm -f unistr/test-u32-to-u8.$(OBJEXT)
-       -rm -f unistr/test-u32-uctomb.$(OBJEXT)
-       -rm -f unistr/test-u8-check.$(OBJEXT)
-       -rm -f unistr/test-u8-chr.$(OBJEXT)
-       -rm -f unistr/test-u8-cmp.$(OBJEXT)
-       -rm -f unistr/test-u8-cmp2.$(OBJEXT)
-       -rm -f unistr/test-u8-cpy-alloc.$(OBJEXT)
-       -rm -f unistr/test-u8-cpy.$(OBJEXT)
-       -rm -f unistr/test-u8-mblen.$(OBJEXT)
-       -rm -f unistr/test-u8-mbsnlen.$(OBJEXT)
-       -rm -f unistr/test-u8-mbtouc-unsafe.$(OBJEXT)
-       -rm -f unistr/test-u8-mbtouc.$(OBJEXT)
-       -rm -f unistr/test-u8-mbtoucr.$(OBJEXT)
-       -rm -f unistr/test-u8-move.$(OBJEXT)
-       -rm -f unistr/test-u8-next.$(OBJEXT)
-       -rm -f unistr/test-u8-prev.$(OBJEXT)
-       -rm -f unistr/test-u8-set.$(OBJEXT)
-       -rm -f unistr/test-u8-stpcpy.$(OBJEXT)
-       -rm -f unistr/test-u8-stpncpy.$(OBJEXT)
-       -rm -f unistr/test-u8-strcat.$(OBJEXT)
-       -rm -f unistr/test-u8-strcmp.$(OBJEXT)
-       -rm -f unistr/test-u8-strcoll.$(OBJEXT)
-       -rm -f unistr/test-u8-strcpy.$(OBJEXT)
-       -rm -f unistr/test-u8-strdup.$(OBJEXT)
-       -rm -f unistr/test-u8-strlen.$(OBJEXT)
-       -rm -f unistr/test-u8-strmblen.$(OBJEXT)
-       -rm -f unistr/test-u8-strmbtouc.$(OBJEXT)
-       -rm -f unistr/test-u8-strncat.$(OBJEXT)
-       -rm -f unistr/test-u8-strncmp.$(OBJEXT)
-       -rm -f unistr/test-u8-strncpy.$(OBJEXT)
-       -rm -f unistr/test-u8-strnlen.$(OBJEXT)
-       -rm -f unistr/test-u8-to-u16.$(OBJEXT)
-       -rm -f unistr/test-u8-to-u32.$(OBJEXT)
-       -rm -f unistr/test-u8-uctomb.$(OBJEXT)
-       -rm -f uniwbrk/test-u16-wordbreaks.$(OBJEXT)
-       -rm -f uniwbrk/test-u32-wordbreaks.$(OBJEXT)
-       -rm -f uniwbrk/test-u8-wordbreaks.$(OBJEXT)
-       -rm -f uniwbrk/test-ulc-wordbreaks.$(OBJEXT)
-       -rm -f uniwidth/test-u16-strwidth.$(OBJEXT)
-       -rm -f uniwidth/test-u16-width.$(OBJEXT)
-       -rm -f uniwidth/test-u32-strwidth.$(OBJEXT)
-       -rm -f uniwidth/test-u32-width.$(OBJEXT)
-       -rm -f uniwidth/test-u8-strwidth.$(OBJEXT)
-       -rm -f uniwidth/test-u8-width.$(OBJEXT)
-       -rm -f uniwidth/test-uc_width.$(OBJEXT)
-       -rm -f uniwidth/test-uc_width2.$(OBJEXT)
+       -rm -f glthread/*.$(OBJEXT)
+       -rm -f unicase/*.$(OBJEXT)
+       -rm -f uniconv/*.$(OBJEXT)
+       -rm -f unictype/*.$(OBJEXT)
+       -rm -f unigbrk/*.$(OBJEXT)
+       -rm -f unilbrk/*.$(OBJEXT)
+       -rm -f uniname/*.$(OBJEXT)
+       -rm -f uninorm/*.$(OBJEXT)
+       -rm -f unistdio/*.$(OBJEXT)
+       -rm -f unistr/*.$(OBJEXT)
+       -rm -f uniwbrk/*.$(OBJEXT)
+       -rm -f uniwidth/*.$(OBJEXT)
 
 distclean-compile:
        -rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopen.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpagesize.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-inval.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progname.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/putenv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/randomd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/randoml.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setlocale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-alloca-opt.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-array-mergesort.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-btowc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-ctype.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strcasecmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strncasecmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-environ.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-errno.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fdopen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fgetc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-float.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fputc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fread.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-frexp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-frexpl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fseterr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fwrite.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iconv-h.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iconv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-intprops.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inttypes.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-isnand-nolibm.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-isnanf-nolibm.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-isnanl-nolibm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iswblank.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-locale.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-localename.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-lock.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-malloca.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-math.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbrtowc-w32.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbrtowc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsinit.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-memchr.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-printf-frexp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-printf-frexpl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setenv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setlocale1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setlocale2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-signbit.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdbool.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stddef.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdint.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdio.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdlib.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strerror.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-striconveh.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-striconveha.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-string.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strncat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strstr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_types.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-thread_create.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-thread_self.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unistd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unsetenv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-verify.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wchar.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wctype.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcrtomb-w32.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcrtomb.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wctype-h.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcwidth.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xalloc-die.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctob.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctomb.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/thread.Po@am__quote@
@@ -7700,6 +9135,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u8-strconv-from-enc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@uniconv/$(DEPDIR)/test-u8-strconv-to-enc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-bidi_byname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-bidi_longname.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-bidi_name.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-bidi_of.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-bidi_test.Po@am__quote@
@@ -7713,6 +9149,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Co.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Cs.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_L.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_LC.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Ll.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Lm.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_Lo.Po@am__quote@
@@ -7746,12 +9183,16 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_and.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_and_not.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_byname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_longname.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_name.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_none.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_of.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_or.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-categ_test_withtable.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-combining.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-combiningclass.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-combiningclass_byname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-combiningclass_longname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-combiningclass_name.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_alnum.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_alpha.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_blank.Po@am__quote@
@@ -7766,6 +9207,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-ctype_xdigit.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-decdigit.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-digit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-joininggroup_byname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-joininggroup_name.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-joininggroup_of.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-joiningtype_byname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-joiningtype_longname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-joiningtype_name.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-joiningtype_of.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-mirror.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-numeric.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_alphabetic.Po@am__quote@
@@ -7788,6 +9236,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_segment_separator.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_bidi_whitespace.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_byname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_case_ignorable.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_cased.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_changes_when_casefolded.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_changes_when_casemapped.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_changes_when_lowercased.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_changes_when_titlecased.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_changes_when_uppercased.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_combining.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_composite.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-pr_currency_symbol.Po@am__quote@
@@ -7854,6 +9309,18 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-sy_c_whitespace.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-sy_java_ident.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unictype/$(DEPDIR)/test-sy_java_whitespace.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-u16-grapheme-breaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-u16-grapheme-next.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-u16-grapheme-prev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-u32-grapheme-breaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-u32-grapheme-next.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-u32-grapheme-prev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-u8-grapheme-breaks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-u8-grapheme-next.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-u8-grapheme-prev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-uc-gbrk-prop.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-uc-is-grapheme-break.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unigbrk/$(DEPDIR)/test-ulc-grapheme-breaks.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unilbrk/$(DEPDIR)/test-u16-possible-linebreaks.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unilbrk/$(DEPDIR)/test-u16-width-linebreaks.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unilbrk/$(DEPDIR)/test-u32-possible-linebreaks.Po@am__quote@
@@ -7942,6 +9409,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-stpcpy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-stpncpy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-strcat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-strchr.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-strcmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-strcoll.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-strcpy.Po@am__quote@
@@ -7953,6 +9421,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-strncmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-strncpy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-strnlen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-strstr.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-to-u32.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-to-u8.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u16-uctomb.Po@am__quote@
@@ -7974,6 +9443,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-stpcpy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-stpncpy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-strcat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-strchr.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-strcmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-strcoll.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-strcpy.Po@am__quote@
@@ -7985,6 +9455,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-strncmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-strncpy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-strnlen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-strstr.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-to-u16.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-to-u8.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u32-uctomb.Po@am__quote@
@@ -8006,6 +9477,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-stpcpy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-stpncpy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-strcat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-strchr.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-strcmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-strcoll.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-strcpy.Po@am__quote@
@@ -8017,6 +9489,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-strncmp.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-strncpy.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-strnlen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-strstr.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-to-u16.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-to-u32.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-uctomb.Po@am__quote@
@@ -8037,28 +9510,25 @@ distclean-compile:
 @am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
 @am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
 @am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
 @am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
 @am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
 @am__fastdepCC_TRUE@   $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
 @am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Plo
-@am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -8067,22 +9537,25 @@ clean-libtool:
        -rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
          echo "Making $$target in $$subdir"; \
          if test "$$subdir" = "."; then \
            dot_seen=yes; \
@@ -8097,57 +9570,12 @@ $(RECURSIVE_TARGETS):
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
-       dot_seen=no; \
-       case "$@" in \
-         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-         *) list='$(SUBDIRS)' ;; \
-       esac; \
-       rev=''; for subdir in $$list; do \
-         if test "$$subdir" = "."; then :; else \
-           rev="$$subdir $$rev"; \
-         fi; \
-       done; \
-       rev="$$rev ."; \
-       target=`echo $@ | sed s/-recursive//`; \
-       for subdir in $$rev; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
-       done && test -z "$$fail"
-tags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-       done
-ctags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-       done
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -8163,12 +9591,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
              set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -8180,15 +9603,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -8197,101 +9616,3603 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-check-TESTS: $(TESTS)
-       @failed=0; all=0; xfail=0; xpass=0; skip=0; \
-       srcdir=$(srcdir); export srcdir; \
-       list=' $(TESTS) '; \
-       $(am__tty_colors); \
-       if test -n "$$list"; then \
-         for tst in $$list; do \
-           if test -f ./$$tst; then dir=./; \
-           elif test -f $$tst; then dir=; \
-           else dir="$(srcdir)/"; fi; \
-           if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
-             all=`expr $$all + 1`; \
-             case " $(XFAIL_TESTS) " in \
-             *[\ \     ]$$tst[\ \      ]*) \
-               xpass=`expr $$xpass + 1`; \
-               failed=`expr $$failed + 1`; \
-               col=$$red; res=XPASS; \
-             ;; \
-             *) \
-               col=$$grn; res=PASS; \
-             ;; \
-             esac; \
-           elif test $$? -ne 77; then \
-             all=`expr $$all + 1`; \
-             case " $(XFAIL_TESTS) " in \
-             *[\ \     ]$$tst[\ \      ]*) \
-               xfail=`expr $$xfail + 1`; \
-               col=$$lgn; res=XFAIL; \
-             ;; \
-             *) \
-               failed=`expr $$failed + 1`; \
-               col=$$red; res=FAIL; \
-             ;; \
-             esac; \
-           else \
-             skip=`expr $$skip + 1`; \
-             col=$$blu; res=SKIP; \
-           fi; \
-           echo "$${col}$$res$${std}: $$tst"; \
-         done; \
-         if test "$$all" -eq 1; then \
-           tests="test"; \
-           All=""; \
-         else \
-           tests="tests"; \
-           All="All "; \
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+       rm -f $< $@
+       $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+       @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+       @$(am__set_TESTS_bases); \
+       am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+       redo_bases=`for i in $$bases; do \
+                     am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+                   done`; \
+       if test -n "$$redo_bases"; then \
+         redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+         redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+         if $(am__make_dryrun); then :; else \
+           rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
          fi; \
-         if test "$$failed" -eq 0; then \
-           if test "$$xfail" -eq 0; then \
-             banner="$$All$$all $$tests passed"; \
-           else \
-             if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
-             banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
-           fi; \
-         else \
-           if test "$$xpass" -eq 0; then \
-             banner="$$failed of $$all $$tests failed"; \
+       fi; \
+       if test -n "$$am__remaking_logs"; then \
+         echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+              "recursion detected" >&2; \
+       else \
+         am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+       fi; \
+       if $(am__make_dryrun); then :; else \
+         st=0;  \
+         errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+         for i in $$redo_bases; do \
+           test -f $$i.trs && test -r $$i.trs \
+             || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+           test -f $$i.log && test -r $$i.log \
+             || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+         done; \
+         test $$st -eq 0 || exit 1; \
+       fi
+       @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+       ws='[   ]'; \
+       results=`for b in $$bases; do echo $$b.trs; done`; \
+       test -n "$$results" || results=/dev/null; \
+       all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+       pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+       fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+       skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+       xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+       xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+       error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+       if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+         success=true; \
+       else \
+         success=false; \
+       fi; \
+       br='==================='; br=$$br$$br$$br$$br; \
+       result_count () \
+       { \
+           if test x"$$1" = x"--maybe-color"; then \
+             maybe_colorize=yes; \
+           elif test x"$$1" = x"--no-color"; then \
+             maybe_colorize=no; \
            else \
-             if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
-             banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+             echo "$@: invalid 'result_count' usage" >&2; exit 4; \
            fi; \
-         fi; \
-         dashes="$$banner"; \
-         skipped=""; \
-         if test "$$skip" -ne 0; then \
-           if test "$$skip" -eq 1; then \
-             skipped="($$skip test was not run)"; \
+           shift; \
+           desc=$$1 count=$$2; \
+           if test $$maybe_colorize = yes && test $$count -gt 0; then \
+             color_start=$$3 color_end=$$std; \
            else \
-             skipped="($$skip tests were not run)"; \
+             color_start= color_end=; \
            fi; \
-           test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
-             dashes="$$skipped"; \
-         fi; \
-         report=""; \
-         if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
-           report="Please report to $(PACKAGE_BUGREPORT)"; \
-           test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
-             dashes="$$report"; \
-         fi; \
-         dashes=`echo "$$dashes" | sed s/./=/g`; \
-         if test "$$failed" -eq 0; then \
-           echo "$$grn$$dashes"; \
-         else \
-           echo "$$red$$dashes"; \
-         fi; \
-         echo "$$banner"; \
-         test -z "$$skipped" || echo "$$skipped"; \
-         test -z "$$report" || echo "$$report"; \
-         echo "$$dashes$$std"; \
-         test "$$failed" -eq 0; \
-       else :; fi
+           echo "$${color_start}# $$desc $$count$${color_end}"; \
+       }; \
+       create_testsuite_report () \
+       { \
+         result_count $$1 "TOTAL:" $$all   "$$brg"; \
+         result_count $$1 "PASS: " $$pass  "$$grn"; \
+         result_count $$1 "SKIP: " $$skip  "$$blu"; \
+         result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+         result_count $$1 "FAIL: " $$fail  "$$red"; \
+         result_count $$1 "XPASS:" $$xpass "$$red"; \
+         result_count $$1 "ERROR:" $$error "$$mgn"; \
+       }; \
+       {                                                               \
+         echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |       \
+           $(am__rst_title);                                           \
+         create_testsuite_report --no-color;                           \
+         echo;                                                         \
+         echo ".. contents:: :depth: 2";                               \
+         echo;                                                         \
+         for b in $$bases; do echo $$b; done                           \
+           | $(am__create_global_log);                                 \
+       } >$(TEST_SUITE_LOG).tmp || exit 1;                             \
+       mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);                     \
+       if $$success; then                                              \
+         col="$$grn";                                                  \
+        else                                                           \
+         col="$$red";                                                  \
+         test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);               \
+       fi;                                                             \
+       echo "$${col}$$br$${std}";                                      \
+       echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";   \
+       echo "$${col}$$br$${std}";                                      \
+       create_testsuite_report --maybe-color;                          \
+       echo "$$col$$br$$std";                                          \
+       if $$success; then :; else                                      \
+         echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";         \
+         if test -n "$(PACKAGE_BUGREPORT)"; then                       \
+           echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+         fi;                                                           \
+         echo "$$col$$br$$std";                                        \
+       fi;                                                             \
+       $$success || exit 1
+
+check-TESTS:
+       @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+       @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+       log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+       exit $$?;
+recheck: all $(check_LIBRARIES) $(check_PROGRAMS)
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       bases=`for i in $$bases; do echo $$i; done \
+                | $(am__list_recheck_tests)` || exit 1; \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       log_list=`echo $$log_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+               am__force_recheck=am--force-recheck \
+               TEST_LOGS="$$log_list"; \
+       exit $$?
+test-alloca-opt.log: test-alloca-opt$(EXEEXT)
+       @p='test-alloca-opt$(EXEEXT)'; \
+       b='test-alloca-opt'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-array-mergesort.log: test-array-mergesort$(EXEEXT)
+       @p='test-array-mergesort$(EXEEXT)'; \
+       b='test-array-mergesort'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-btowc1.sh.log: test-btowc1.sh
+       @p='test-btowc1.sh'; \
+       b='test-btowc1.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-btowc2.sh.log: test-btowc2.sh
+       @p='test-btowc2.sh'; \
+       b='test-btowc2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-c-ctype.log: test-c-ctype$(EXEEXT)
+       @p='test-c-ctype$(EXEEXT)'; \
+       b='test-c-ctype'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-c-strcase.sh.log: test-c-strcase.sh
+       @p='test-c-strcase.sh'; \
+       b='test-c-strcase.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-environ.log: test-environ$(EXEEXT)
+       @p='test-environ$(EXEEXT)'; \
+       b='test-environ'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-errno.log: test-errno$(EXEEXT)
+       @p='test-errno$(EXEEXT)'; \
+       b='test-errno'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-fdopen.log: test-fdopen$(EXEEXT)
+       @p='test-fdopen$(EXEEXT)'; \
+       b='test-fdopen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-fgetc.log: test-fgetc$(EXEEXT)
+       @p='test-fgetc$(EXEEXT)'; \
+       b='test-fgetc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-float.log: test-float$(EXEEXT)
+       @p='test-float$(EXEEXT)'; \
+       b='test-float'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-fputc.log: test-fputc$(EXEEXT)
+       @p='test-fputc$(EXEEXT)'; \
+       b='test-fputc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-fread.log: test-fread$(EXEEXT)
+       @p='test-fread$(EXEEXT)'; \
+       b='test-fread'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-frexp-nolibm.log: test-frexp-nolibm$(EXEEXT)
+       @p='test-frexp-nolibm$(EXEEXT)'; \
+       b='test-frexp-nolibm'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-frexpl-nolibm.log: test-frexpl-nolibm$(EXEEXT)
+       @p='test-frexpl-nolibm$(EXEEXT)'; \
+       b='test-frexpl-nolibm'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-fseterr.log: test-fseterr$(EXEEXT)
+       @p='test-fseterr$(EXEEXT)'; \
+       b='test-fseterr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-fwrite.log: test-fwrite$(EXEEXT)
+       @p='test-fwrite$(EXEEXT)'; \
+       b='test-fwrite'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-iconv-h.log: test-iconv-h$(EXEEXT)
+       @p='test-iconv-h$(EXEEXT)'; \
+       b='test-iconv-h'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-iconv.log: test-iconv$(EXEEXT)
+       @p='test-iconv$(EXEEXT)'; \
+       b='test-iconv'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-intprops.log: test-intprops$(EXEEXT)
+       @p='test-intprops$(EXEEXT)'; \
+       b='test-intprops'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-inttypes.log: test-inttypes$(EXEEXT)
+       @p='test-inttypes$(EXEEXT)'; \
+       b='test-inttypes'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-isnand-nolibm.log: test-isnand-nolibm$(EXEEXT)
+       @p='test-isnand-nolibm$(EXEEXT)'; \
+       b='test-isnand-nolibm'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-isnanf-nolibm.log: test-isnanf-nolibm$(EXEEXT)
+       @p='test-isnanf-nolibm$(EXEEXT)'; \
+       b='test-isnanf-nolibm'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-isnanl-nolibm.log: test-isnanl-nolibm$(EXEEXT)
+       @p='test-isnanl-nolibm$(EXEEXT)'; \
+       b='test-isnanl-nolibm'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-iswblank.log: test-iswblank$(EXEEXT)
+       @p='test-iswblank$(EXEEXT)'; \
+       b='test-iswblank'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-locale.log: test-locale$(EXEEXT)
+       @p='test-locale$(EXEEXT)'; \
+       b='test-locale'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-localename.log: test-localename$(EXEEXT)
+       @p='test-localename$(EXEEXT)'; \
+       b='test-localename'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-lock.log: test-lock$(EXEEXT)
+       @p='test-lock$(EXEEXT)'; \
+       b='test-lock'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-malloca.log: test-malloca$(EXEEXT)
+       @p='test-malloca$(EXEEXT)'; \
+       b='test-malloca'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-math.log: test-math$(EXEEXT)
+       @p='test-math$(EXEEXT)'; \
+       b='test-math'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mbrtowc1.sh.log: test-mbrtowc1.sh
+       @p='test-mbrtowc1.sh'; \
+       b='test-mbrtowc1.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mbrtowc2.sh.log: test-mbrtowc2.sh
+       @p='test-mbrtowc2.sh'; \
+       b='test-mbrtowc2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mbrtowc3.sh.log: test-mbrtowc3.sh
+       @p='test-mbrtowc3.sh'; \
+       b='test-mbrtowc3.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mbrtowc4.sh.log: test-mbrtowc4.sh
+       @p='test-mbrtowc4.sh'; \
+       b='test-mbrtowc4.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mbrtowc-w32-1.sh.log: test-mbrtowc-w32-1.sh
+       @p='test-mbrtowc-w32-1.sh'; \
+       b='test-mbrtowc-w32-1.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mbrtowc-w32-2.sh.log: test-mbrtowc-w32-2.sh
+       @p='test-mbrtowc-w32-2.sh'; \
+       b='test-mbrtowc-w32-2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mbrtowc-w32-3.sh.log: test-mbrtowc-w32-3.sh
+       @p='test-mbrtowc-w32-3.sh'; \
+       b='test-mbrtowc-w32-3.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mbrtowc-w32-4.sh.log: test-mbrtowc-w32-4.sh
+       @p='test-mbrtowc-w32-4.sh'; \
+       b='test-mbrtowc-w32-4.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mbrtowc-w32-5.sh.log: test-mbrtowc-w32-5.sh
+       @p='test-mbrtowc-w32-5.sh'; \
+       b='test-mbrtowc-w32-5.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mbsinit.sh.log: test-mbsinit.sh
+       @p='test-mbsinit.sh'; \
+       b='test-mbsinit.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-memchr.log: test-memchr$(EXEEXT)
+       @p='test-memchr$(EXEEXT)'; \
+       b='test-memchr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-printf-frexp.log: test-printf-frexp$(EXEEXT)
+       @p='test-printf-frexp$(EXEEXT)'; \
+       b='test-printf-frexp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-printf-frexpl.log: test-printf-frexpl$(EXEEXT)
+       @p='test-printf-frexpl$(EXEEXT)'; \
+       b='test-printf-frexpl'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-setenv.log: test-setenv$(EXEEXT)
+       @p='test-setenv$(EXEEXT)'; \
+       b='test-setenv'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-setlocale1.sh.log: test-setlocale1.sh
+       @p='test-setlocale1.sh'; \
+       b='test-setlocale1.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-setlocale2.sh.log: test-setlocale2.sh
+       @p='test-setlocale2.sh'; \
+       b='test-setlocale2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-signbit.log: test-signbit$(EXEEXT)
+       @p='test-signbit$(EXEEXT)'; \
+       b='test-signbit'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-stdbool.log: test-stdbool$(EXEEXT)
+       @p='test-stdbool$(EXEEXT)'; \
+       b='test-stdbool'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-stddef.log: test-stddef$(EXEEXT)
+       @p='test-stddef$(EXEEXT)'; \
+       b='test-stddef'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-stdint.log: test-stdint$(EXEEXT)
+       @p='test-stdint$(EXEEXT)'; \
+       b='test-stdint'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-stdio.log: test-stdio$(EXEEXT)
+       @p='test-stdio$(EXEEXT)'; \
+       b='test-stdio'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-stdlib.log: test-stdlib$(EXEEXT)
+       @p='test-stdlib$(EXEEXT)'; \
+       b='test-stdlib'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-strerror.log: test-strerror$(EXEEXT)
+       @p='test-strerror$(EXEEXT)'; \
+       b='test-strerror'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-striconveh.log: test-striconveh$(EXEEXT)
+       @p='test-striconveh$(EXEEXT)'; \
+       b='test-striconveh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-striconveha.log: test-striconveha$(EXEEXT)
+       @p='test-striconveha$(EXEEXT)'; \
+       b='test-striconveha'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-string.log: test-string$(EXEEXT)
+       @p='test-string$(EXEEXT)'; \
+       b='test-string'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-strncat.log: test-strncat$(EXEEXT)
+       @p='test-strncat$(EXEEXT)'; \
+       b='test-strncat'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-strstr.log: test-strstr$(EXEEXT)
+       @p='test-strstr$(EXEEXT)'; \
+       b='test-strstr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-sys_types.log: test-sys_types$(EXEEXT)
+       @p='test-sys_types$(EXEEXT)'; \
+       b='test-sys_types'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-init.sh.log: test-init.sh
+       @p='test-init.sh'; \
+       b='test-init.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-thread_self.log: test-thread_self$(EXEEXT)
+       @p='test-thread_self$(EXEEXT)'; \
+       b='test-thread_self'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-thread_create.log: test-thread_create$(EXEEXT)
+       @p='test-thread_create$(EXEEXT)'; \
+       b='test-thread_create'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-cased.log: test-cased$(EXEEXT)
+       @p='test-cased$(EXEEXT)'; \
+       b='test-cased'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ignorable.log: test-ignorable$(EXEEXT)
+       @p='test-ignorable$(EXEEXT)'; \
+       b='test-ignorable'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unicase/test-locale-language.sh.log: unicase/test-locale-language.sh
+       @p='unicase/test-locale-language.sh'; \
+       b='unicase/test-locale-language.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-uc_tolower.log: test-uc_tolower$(EXEEXT)
+       @p='test-uc_tolower$(EXEEXT)'; \
+       b='test-uc_tolower'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-uc_totitle.log: test-uc_totitle$(EXEEXT)
+       @p='test-uc_totitle$(EXEEXT)'; \
+       b='test-uc_totitle'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-uc_toupper.log: test-uc_toupper$(EXEEXT)
+       @p='test-uc_toupper$(EXEEXT)'; \
+       b='test-uc_toupper'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-casecmp.log: test-u16-casecmp$(EXEEXT)
+       @p='test-u16-casecmp$(EXEEXT)'; \
+       b='test-u16-casecmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-casecoll.log: test-u16-casecoll$(EXEEXT)
+       @p='test-u16-casecoll$(EXEEXT)'; \
+       b='test-u16-casecoll'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-casefold.log: test-u16-casefold$(EXEEXT)
+       @p='test-u16-casefold$(EXEEXT)'; \
+       b='test-u16-casefold'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-is-cased.log: test-u16-is-cased$(EXEEXT)
+       @p='test-u16-is-cased$(EXEEXT)'; \
+       b='test-u16-is-cased'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-is-casefolded.log: test-u16-is-casefolded$(EXEEXT)
+       @p='test-u16-is-casefolded$(EXEEXT)'; \
+       b='test-u16-is-casefolded'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-is-lowercase.log: test-u16-is-lowercase$(EXEEXT)
+       @p='test-u16-is-lowercase$(EXEEXT)'; \
+       b='test-u16-is-lowercase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-is-titlecase.log: test-u16-is-titlecase$(EXEEXT)
+       @p='test-u16-is-titlecase$(EXEEXT)'; \
+       b='test-u16-is-titlecase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-is-uppercase.log: test-u16-is-uppercase$(EXEEXT)
+       @p='test-u16-is-uppercase$(EXEEXT)'; \
+       b='test-u16-is-uppercase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-tolower.log: test-u16-tolower$(EXEEXT)
+       @p='test-u16-tolower$(EXEEXT)'; \
+       b='test-u16-tolower'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-totitle.log: test-u16-totitle$(EXEEXT)
+       @p='test-u16-totitle$(EXEEXT)'; \
+       b='test-u16-totitle'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-toupper.log: test-u16-toupper$(EXEEXT)
+       @p='test-u16-toupper$(EXEEXT)'; \
+       b='test-u16-toupper'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-casecmp.log: test-u32-casecmp$(EXEEXT)
+       @p='test-u32-casecmp$(EXEEXT)'; \
+       b='test-u32-casecmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-casecoll.log: test-u32-casecoll$(EXEEXT)
+       @p='test-u32-casecoll$(EXEEXT)'; \
+       b='test-u32-casecoll'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-casefold.log: test-u32-casefold$(EXEEXT)
+       @p='test-u32-casefold$(EXEEXT)'; \
+       b='test-u32-casefold'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-is-cased.log: test-u32-is-cased$(EXEEXT)
+       @p='test-u32-is-cased$(EXEEXT)'; \
+       b='test-u32-is-cased'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-is-casefolded.log: test-u32-is-casefolded$(EXEEXT)
+       @p='test-u32-is-casefolded$(EXEEXT)'; \
+       b='test-u32-is-casefolded'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-is-lowercase.log: test-u32-is-lowercase$(EXEEXT)
+       @p='test-u32-is-lowercase$(EXEEXT)'; \
+       b='test-u32-is-lowercase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-is-titlecase.log: test-u32-is-titlecase$(EXEEXT)
+       @p='test-u32-is-titlecase$(EXEEXT)'; \
+       b='test-u32-is-titlecase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-is-uppercase.log: test-u32-is-uppercase$(EXEEXT)
+       @p='test-u32-is-uppercase$(EXEEXT)'; \
+       b='test-u32-is-uppercase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-tolower.log: test-u32-tolower$(EXEEXT)
+       @p='test-u32-tolower$(EXEEXT)'; \
+       b='test-u32-tolower'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-totitle.log: test-u32-totitle$(EXEEXT)
+       @p='test-u32-totitle$(EXEEXT)'; \
+       b='test-u32-totitle'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-toupper.log: test-u32-toupper$(EXEEXT)
+       @p='test-u32-toupper$(EXEEXT)'; \
+       b='test-u32-toupper'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-casecmp.log: test-u8-casecmp$(EXEEXT)
+       @p='test-u8-casecmp$(EXEEXT)'; \
+       b='test-u8-casecmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-casecoll.log: test-u8-casecoll$(EXEEXT)
+       @p='test-u8-casecoll$(EXEEXT)'; \
+       b='test-u8-casecoll'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-casefold.log: test-u8-casefold$(EXEEXT)
+       @p='test-u8-casefold$(EXEEXT)'; \
+       b='test-u8-casefold'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-is-cased.log: test-u8-is-cased$(EXEEXT)
+       @p='test-u8-is-cased$(EXEEXT)'; \
+       b='test-u8-is-cased'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-is-casefolded.log: test-u8-is-casefolded$(EXEEXT)
+       @p='test-u8-is-casefolded$(EXEEXT)'; \
+       b='test-u8-is-casefolded'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-is-lowercase.log: test-u8-is-lowercase$(EXEEXT)
+       @p='test-u8-is-lowercase$(EXEEXT)'; \
+       b='test-u8-is-lowercase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-is-titlecase.log: test-u8-is-titlecase$(EXEEXT)
+       @p='test-u8-is-titlecase$(EXEEXT)'; \
+       b='test-u8-is-titlecase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-is-uppercase.log: test-u8-is-uppercase$(EXEEXT)
+       @p='test-u8-is-uppercase$(EXEEXT)'; \
+       b='test-u8-is-uppercase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-tolower.log: test-u8-tolower$(EXEEXT)
+       @p='test-u8-tolower$(EXEEXT)'; \
+       b='test-u8-tolower'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-totitle.log: test-u8-totitle$(EXEEXT)
+       @p='test-u8-totitle$(EXEEXT)'; \
+       b='test-u8-totitle'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-toupper.log: test-u8-toupper$(EXEEXT)
+       @p='test-u8-toupper$(EXEEXT)'; \
+       b='test-u8-toupper'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unicase/test-ulc-casecmp1.sh.log: unicase/test-ulc-casecmp1.sh
+       @p='unicase/test-ulc-casecmp1.sh'; \
+       b='unicase/test-ulc-casecmp1.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unicase/test-ulc-casecmp2.sh.log: unicase/test-ulc-casecmp2.sh
+       @p='unicase/test-ulc-casecmp2.sh'; \
+       b='unicase/test-ulc-casecmp2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unicase/test-ulc-casecoll1.sh.log: unicase/test-ulc-casecoll1.sh
+       @p='unicase/test-ulc-casecoll1.sh'; \
+       b='unicase/test-ulc-casecoll1.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unicase/test-ulc-casecoll2.sh.log: unicase/test-ulc-casecoll2.sh
+       @p='unicase/test-ulc-casecoll2.sh'; \
+       b='unicase/test-ulc-casecoll2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-conv-from-enc.log: test-u16-conv-from-enc$(EXEEXT)
+       @p='test-u16-conv-from-enc$(EXEEXT)'; \
+       b='test-u16-conv-from-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-conv-to-enc.log: test-u16-conv-to-enc$(EXEEXT)
+       @p='test-u16-conv-to-enc$(EXEEXT)'; \
+       b='test-u16-conv-to-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strconv-from-enc.log: test-u16-strconv-from-enc$(EXEEXT)
+       @p='test-u16-strconv-from-enc$(EXEEXT)'; \
+       b='test-u16-strconv-from-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strconv-to-enc.log: test-u16-strconv-to-enc$(EXEEXT)
+       @p='test-u16-strconv-to-enc$(EXEEXT)'; \
+       b='test-u16-strconv-to-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-conv-from-enc.log: test-u32-conv-from-enc$(EXEEXT)
+       @p='test-u32-conv-from-enc$(EXEEXT)'; \
+       b='test-u32-conv-from-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-conv-to-enc.log: test-u32-conv-to-enc$(EXEEXT)
+       @p='test-u32-conv-to-enc$(EXEEXT)'; \
+       b='test-u32-conv-to-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strconv-from-enc.log: test-u32-strconv-from-enc$(EXEEXT)
+       @p='test-u32-strconv-from-enc$(EXEEXT)'; \
+       b='test-u32-strconv-from-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strconv-to-enc.log: test-u32-strconv-to-enc$(EXEEXT)
+       @p='test-u32-strconv-to-enc$(EXEEXT)'; \
+       b='test-u32-strconv-to-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-conv-from-enc.log: test-u8-conv-from-enc$(EXEEXT)
+       @p='test-u8-conv-from-enc$(EXEEXT)'; \
+       b='test-u8-conv-from-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-conv-to-enc.log: test-u8-conv-to-enc$(EXEEXT)
+       @p='test-u8-conv-to-enc$(EXEEXT)'; \
+       b='test-u8-conv-to-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strconv-from-enc.log: test-u8-strconv-from-enc$(EXEEXT)
+       @p='test-u8-strconv-from-enc$(EXEEXT)'; \
+       b='test-u8-strconv-from-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strconv-to-enc.log: test-u8-strconv-to-enc$(EXEEXT)
+       @p='test-u8-strconv-to-enc$(EXEEXT)'; \
+       b='test-u8-strconv-to-enc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-bidi_byname.log: test-bidi_byname$(EXEEXT)
+       @p='test-bidi_byname$(EXEEXT)'; \
+       b='test-bidi_byname'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-bidi_longname.log: test-bidi_longname$(EXEEXT)
+       @p='test-bidi_longname$(EXEEXT)'; \
+       b='test-bidi_longname'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-bidi_name.log: test-bidi_name$(EXEEXT)
+       @p='test-bidi_name$(EXEEXT)'; \
+       b='test-bidi_name'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-bidi_of.log: test-bidi_of$(EXEEXT)
+       @p='test-bidi_of$(EXEEXT)'; \
+       b='test-bidi_of'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-bidi_test.log: test-bidi_test$(EXEEXT)
+       @p='test-bidi_test$(EXEEXT)'; \
+       b='test-bidi_test'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-block_list.log: test-block_list$(EXEEXT)
+       @p='test-block_list$(EXEEXT)'; \
+       b='test-block_list'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-block_of.log: test-block_of$(EXEEXT)
+       @p='test-block_of$(EXEEXT)'; \
+       b='test-block_of'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-block_test.log: test-block_test$(EXEEXT)
+       @p='test-block_test$(EXEEXT)'; \
+       b='test-block_test'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_C.log: test-categ_C$(EXEEXT)
+       @p='test-categ_C$(EXEEXT)'; \
+       b='test-categ_C'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Cc.log: test-categ_Cc$(EXEEXT)
+       @p='test-categ_Cc$(EXEEXT)'; \
+       b='test-categ_Cc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Cf.log: test-categ_Cf$(EXEEXT)
+       @p='test-categ_Cf$(EXEEXT)'; \
+       b='test-categ_Cf'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Cn.log: test-categ_Cn$(EXEEXT)
+       @p='test-categ_Cn$(EXEEXT)'; \
+       b='test-categ_Cn'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Co.log: test-categ_Co$(EXEEXT)
+       @p='test-categ_Co$(EXEEXT)'; \
+       b='test-categ_Co'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Cs.log: test-categ_Cs$(EXEEXT)
+       @p='test-categ_Cs$(EXEEXT)'; \
+       b='test-categ_Cs'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_L.log: test-categ_L$(EXEEXT)
+       @p='test-categ_L$(EXEEXT)'; \
+       b='test-categ_L'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_LC.log: test-categ_LC$(EXEEXT)
+       @p='test-categ_LC$(EXEEXT)'; \
+       b='test-categ_LC'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Ll.log: test-categ_Ll$(EXEEXT)
+       @p='test-categ_Ll$(EXEEXT)'; \
+       b='test-categ_Ll'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Lm.log: test-categ_Lm$(EXEEXT)
+       @p='test-categ_Lm$(EXEEXT)'; \
+       b='test-categ_Lm'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Lo.log: test-categ_Lo$(EXEEXT)
+       @p='test-categ_Lo$(EXEEXT)'; \
+       b='test-categ_Lo'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Lt.log: test-categ_Lt$(EXEEXT)
+       @p='test-categ_Lt$(EXEEXT)'; \
+       b='test-categ_Lt'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Lu.log: test-categ_Lu$(EXEEXT)
+       @p='test-categ_Lu$(EXEEXT)'; \
+       b='test-categ_Lu'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_M.log: test-categ_M$(EXEEXT)
+       @p='test-categ_M$(EXEEXT)'; \
+       b='test-categ_M'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Mc.log: test-categ_Mc$(EXEEXT)
+       @p='test-categ_Mc$(EXEEXT)'; \
+       b='test-categ_Mc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Me.log: test-categ_Me$(EXEEXT)
+       @p='test-categ_Me$(EXEEXT)'; \
+       b='test-categ_Me'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Mn.log: test-categ_Mn$(EXEEXT)
+       @p='test-categ_Mn$(EXEEXT)'; \
+       b='test-categ_Mn'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_N.log: test-categ_N$(EXEEXT)
+       @p='test-categ_N$(EXEEXT)'; \
+       b='test-categ_N'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Nd.log: test-categ_Nd$(EXEEXT)
+       @p='test-categ_Nd$(EXEEXT)'; \
+       b='test-categ_Nd'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Nl.log: test-categ_Nl$(EXEEXT)
+       @p='test-categ_Nl$(EXEEXT)'; \
+       b='test-categ_Nl'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_No.log: test-categ_No$(EXEEXT)
+       @p='test-categ_No$(EXEEXT)'; \
+       b='test-categ_No'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_P.log: test-categ_P$(EXEEXT)
+       @p='test-categ_P$(EXEEXT)'; \
+       b='test-categ_P'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Pc.log: test-categ_Pc$(EXEEXT)
+       @p='test-categ_Pc$(EXEEXT)'; \
+       b='test-categ_Pc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Pd.log: test-categ_Pd$(EXEEXT)
+       @p='test-categ_Pd$(EXEEXT)'; \
+       b='test-categ_Pd'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Pe.log: test-categ_Pe$(EXEEXT)
+       @p='test-categ_Pe$(EXEEXT)'; \
+       b='test-categ_Pe'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Pf.log: test-categ_Pf$(EXEEXT)
+       @p='test-categ_Pf$(EXEEXT)'; \
+       b='test-categ_Pf'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Pi.log: test-categ_Pi$(EXEEXT)
+       @p='test-categ_Pi$(EXEEXT)'; \
+       b='test-categ_Pi'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Po.log: test-categ_Po$(EXEEXT)
+       @p='test-categ_Po$(EXEEXT)'; \
+       b='test-categ_Po'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Ps.log: test-categ_Ps$(EXEEXT)
+       @p='test-categ_Ps$(EXEEXT)'; \
+       b='test-categ_Ps'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_S.log: test-categ_S$(EXEEXT)
+       @p='test-categ_S$(EXEEXT)'; \
+       b='test-categ_S'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Sc.log: test-categ_Sc$(EXEEXT)
+       @p='test-categ_Sc$(EXEEXT)'; \
+       b='test-categ_Sc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Sk.log: test-categ_Sk$(EXEEXT)
+       @p='test-categ_Sk$(EXEEXT)'; \
+       b='test-categ_Sk'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Sm.log: test-categ_Sm$(EXEEXT)
+       @p='test-categ_Sm$(EXEEXT)'; \
+       b='test-categ_Sm'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_So.log: test-categ_So$(EXEEXT)
+       @p='test-categ_So$(EXEEXT)'; \
+       b='test-categ_So'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Z.log: test-categ_Z$(EXEEXT)
+       @p='test-categ_Z$(EXEEXT)'; \
+       b='test-categ_Z'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Zl.log: test-categ_Zl$(EXEEXT)
+       @p='test-categ_Zl$(EXEEXT)'; \
+       b='test-categ_Zl'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Zp.log: test-categ_Zp$(EXEEXT)
+       @p='test-categ_Zp$(EXEEXT)'; \
+       b='test-categ_Zp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_Zs.log: test-categ_Zs$(EXEEXT)
+       @p='test-categ_Zs$(EXEEXT)'; \
+       b='test-categ_Zs'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_and_not.log: test-categ_and_not$(EXEEXT)
+       @p='test-categ_and_not$(EXEEXT)'; \
+       b='test-categ_and_not'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_and.log: test-categ_and$(EXEEXT)
+       @p='test-categ_and$(EXEEXT)'; \
+       b='test-categ_and'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_byname.log: test-categ_byname$(EXEEXT)
+       @p='test-categ_byname$(EXEEXT)'; \
+       b='test-categ_byname'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_longname.log: test-categ_longname$(EXEEXT)
+       @p='test-categ_longname$(EXEEXT)'; \
+       b='test-categ_longname'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_name.log: test-categ_name$(EXEEXT)
+       @p='test-categ_name$(EXEEXT)'; \
+       b='test-categ_name'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_none.log: test-categ_none$(EXEEXT)
+       @p='test-categ_none$(EXEEXT)'; \
+       b='test-categ_none'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_of.log: test-categ_of$(EXEEXT)
+       @p='test-categ_of$(EXEEXT)'; \
+       b='test-categ_of'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_or.log: test-categ_or$(EXEEXT)
+       @p='test-categ_or$(EXEEXT)'; \
+       b='test-categ_or'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-categ_test_withtable.log: test-categ_test_withtable$(EXEEXT)
+       @p='test-categ_test_withtable$(EXEEXT)'; \
+       b='test-categ_test_withtable'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-combiningclass_byname.log: test-combiningclass_byname$(EXEEXT)
+       @p='test-combiningclass_byname$(EXEEXT)'; \
+       b='test-combiningclass_byname'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-combiningclass_longname.log: test-combiningclass_longname$(EXEEXT)
+       @p='test-combiningclass_longname$(EXEEXT)'; \
+       b='test-combiningclass_longname'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-combiningclass_name.log: test-combiningclass_name$(EXEEXT)
+       @p='test-combiningclass_name$(EXEEXT)'; \
+       b='test-combiningclass_name'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-combiningclass.log: test-combiningclass$(EXEEXT)
+       @p='test-combiningclass$(EXEEXT)'; \
+       b='test-combiningclass'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_alnum.log: test-ctype_alnum$(EXEEXT)
+       @p='test-ctype_alnum$(EXEEXT)'; \
+       b='test-ctype_alnum'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_alpha.log: test-ctype_alpha$(EXEEXT)
+       @p='test-ctype_alpha$(EXEEXT)'; \
+       b='test-ctype_alpha'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_blank.log: test-ctype_blank$(EXEEXT)
+       @p='test-ctype_blank$(EXEEXT)'; \
+       b='test-ctype_blank'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_cntrl.log: test-ctype_cntrl$(EXEEXT)
+       @p='test-ctype_cntrl$(EXEEXT)'; \
+       b='test-ctype_cntrl'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_digit.log: test-ctype_digit$(EXEEXT)
+       @p='test-ctype_digit$(EXEEXT)'; \
+       b='test-ctype_digit'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_graph.log: test-ctype_graph$(EXEEXT)
+       @p='test-ctype_graph$(EXEEXT)'; \
+       b='test-ctype_graph'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_lower.log: test-ctype_lower$(EXEEXT)
+       @p='test-ctype_lower$(EXEEXT)'; \
+       b='test-ctype_lower'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_print.log: test-ctype_print$(EXEEXT)
+       @p='test-ctype_print$(EXEEXT)'; \
+       b='test-ctype_print'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_punct.log: test-ctype_punct$(EXEEXT)
+       @p='test-ctype_punct$(EXEEXT)'; \
+       b='test-ctype_punct'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_space.log: test-ctype_space$(EXEEXT)
+       @p='test-ctype_space$(EXEEXT)'; \
+       b='test-ctype_space'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_upper.log: test-ctype_upper$(EXEEXT)
+       @p='test-ctype_upper$(EXEEXT)'; \
+       b='test-ctype_upper'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype_xdigit.log: test-ctype_xdigit$(EXEEXT)
+       @p='test-ctype_xdigit$(EXEEXT)'; \
+       b='test-ctype_xdigit'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-decdigit.log: test-decdigit$(EXEEXT)
+       @p='test-decdigit$(EXEEXT)'; \
+       b='test-decdigit'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-digit.log: test-digit$(EXEEXT)
+       @p='test-digit$(EXEEXT)'; \
+       b='test-digit'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-joininggroup_byname.log: test-joininggroup_byname$(EXEEXT)
+       @p='test-joininggroup_byname$(EXEEXT)'; \
+       b='test-joininggroup_byname'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-joininggroup_name.log: test-joininggroup_name$(EXEEXT)
+       @p='test-joininggroup_name$(EXEEXT)'; \
+       b='test-joininggroup_name'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-joininggroup_of.log: test-joininggroup_of$(EXEEXT)
+       @p='test-joininggroup_of$(EXEEXT)'; \
+       b='test-joininggroup_of'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-joiningtype_byname.log: test-joiningtype_byname$(EXEEXT)
+       @p='test-joiningtype_byname$(EXEEXT)'; \
+       b='test-joiningtype_byname'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-joiningtype_longname.log: test-joiningtype_longname$(EXEEXT)
+       @p='test-joiningtype_longname$(EXEEXT)'; \
+       b='test-joiningtype_longname'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-joiningtype_name.log: test-joiningtype_name$(EXEEXT)
+       @p='test-joiningtype_name$(EXEEXT)'; \
+       b='test-joiningtype_name'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-joiningtype_of.log: test-joiningtype_of$(EXEEXT)
+       @p='test-joiningtype_of$(EXEEXT)'; \
+       b='test-joiningtype_of'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-mirror.log: test-mirror$(EXEEXT)
+       @p='test-mirror$(EXEEXT)'; \
+       b='test-mirror'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-numeric.log: test-numeric$(EXEEXT)
+       @p='test-numeric$(EXEEXT)'; \
+       b='test-numeric'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_alphabetic.log: test-pr_alphabetic$(EXEEXT)
+       @p='test-pr_alphabetic$(EXEEXT)'; \
+       b='test-pr_alphabetic'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_ascii_hex_digit.log: test-pr_ascii_hex_digit$(EXEEXT)
+       @p='test-pr_ascii_hex_digit$(EXEEXT)'; \
+       b='test-pr_ascii_hex_digit'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_arabic_digit.log: test-pr_bidi_arabic_digit$(EXEEXT)
+       @p='test-pr_bidi_arabic_digit$(EXEEXT)'; \
+       b='test-pr_bidi_arabic_digit'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_arabic_right_to_left.log: test-pr_bidi_arabic_right_to_left$(EXEEXT)
+       @p='test-pr_bidi_arabic_right_to_left$(EXEEXT)'; \
+       b='test-pr_bidi_arabic_right_to_left'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_block_separator.log: test-pr_bidi_block_separator$(EXEEXT)
+       @p='test-pr_bidi_block_separator$(EXEEXT)'; \
+       b='test-pr_bidi_block_separator'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_boundary_neutral.log: test-pr_bidi_boundary_neutral$(EXEEXT)
+       @p='test-pr_bidi_boundary_neutral$(EXEEXT)'; \
+       b='test-pr_bidi_boundary_neutral'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_common_separator.log: test-pr_bidi_common_separator$(EXEEXT)
+       @p='test-pr_bidi_common_separator$(EXEEXT)'; \
+       b='test-pr_bidi_common_separator'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_control.log: test-pr_bidi_control$(EXEEXT)
+       @p='test-pr_bidi_control$(EXEEXT)'; \
+       b='test-pr_bidi_control'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_embedding_or_override.log: test-pr_bidi_embedding_or_override$(EXEEXT)
+       @p='test-pr_bidi_embedding_or_override$(EXEEXT)'; \
+       b='test-pr_bidi_embedding_or_override'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_eur_num_separator.log: test-pr_bidi_eur_num_separator$(EXEEXT)
+       @p='test-pr_bidi_eur_num_separator$(EXEEXT)'; \
+       b='test-pr_bidi_eur_num_separator'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_eur_num_terminator.log: test-pr_bidi_eur_num_terminator$(EXEEXT)
+       @p='test-pr_bidi_eur_num_terminator$(EXEEXT)'; \
+       b='test-pr_bidi_eur_num_terminator'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_european_digit.log: test-pr_bidi_european_digit$(EXEEXT)
+       @p='test-pr_bidi_european_digit$(EXEEXT)'; \
+       b='test-pr_bidi_european_digit'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_hebrew_right_to_left.log: test-pr_bidi_hebrew_right_to_left$(EXEEXT)
+       @p='test-pr_bidi_hebrew_right_to_left$(EXEEXT)'; \
+       b='test-pr_bidi_hebrew_right_to_left'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_left_to_right.log: test-pr_bidi_left_to_right$(EXEEXT)
+       @p='test-pr_bidi_left_to_right$(EXEEXT)'; \
+       b='test-pr_bidi_left_to_right'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_non_spacing_mark.log: test-pr_bidi_non_spacing_mark$(EXEEXT)
+       @p='test-pr_bidi_non_spacing_mark$(EXEEXT)'; \
+       b='test-pr_bidi_non_spacing_mark'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_other_neutral.log: test-pr_bidi_other_neutral$(EXEEXT)
+       @p='test-pr_bidi_other_neutral$(EXEEXT)'; \
+       b='test-pr_bidi_other_neutral'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_pdf.log: test-pr_bidi_pdf$(EXEEXT)
+       @p='test-pr_bidi_pdf$(EXEEXT)'; \
+       b='test-pr_bidi_pdf'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_segment_separator.log: test-pr_bidi_segment_separator$(EXEEXT)
+       @p='test-pr_bidi_segment_separator$(EXEEXT)'; \
+       b='test-pr_bidi_segment_separator'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_bidi_whitespace.log: test-pr_bidi_whitespace$(EXEEXT)
+       @p='test-pr_bidi_whitespace$(EXEEXT)'; \
+       b='test-pr_bidi_whitespace'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_byname.log: test-pr_byname$(EXEEXT)
+       @p='test-pr_byname$(EXEEXT)'; \
+       b='test-pr_byname'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_case_ignorable.log: test-pr_case_ignorable$(EXEEXT)
+       @p='test-pr_case_ignorable$(EXEEXT)'; \
+       b='test-pr_case_ignorable'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_cased.log: test-pr_cased$(EXEEXT)
+       @p='test-pr_cased$(EXEEXT)'; \
+       b='test-pr_cased'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_changes_when_casefolded.log: test-pr_changes_when_casefolded$(EXEEXT)
+       @p='test-pr_changes_when_casefolded$(EXEEXT)'; \
+       b='test-pr_changes_when_casefolded'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_changes_when_casemapped.log: test-pr_changes_when_casemapped$(EXEEXT)
+       @p='test-pr_changes_when_casemapped$(EXEEXT)'; \
+       b='test-pr_changes_when_casemapped'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_changes_when_lowercased.log: test-pr_changes_when_lowercased$(EXEEXT)
+       @p='test-pr_changes_when_lowercased$(EXEEXT)'; \
+       b='test-pr_changes_when_lowercased'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_changes_when_titlecased.log: test-pr_changes_when_titlecased$(EXEEXT)
+       @p='test-pr_changes_when_titlecased$(EXEEXT)'; \
+       b='test-pr_changes_when_titlecased'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_changes_when_uppercased.log: test-pr_changes_when_uppercased$(EXEEXT)
+       @p='test-pr_changes_when_uppercased$(EXEEXT)'; \
+       b='test-pr_changes_when_uppercased'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_combining.log: test-pr_combining$(EXEEXT)
+       @p='test-pr_combining$(EXEEXT)'; \
+       b='test-pr_combining'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_composite.log: test-pr_composite$(EXEEXT)
+       @p='test-pr_composite$(EXEEXT)'; \
+       b='test-pr_composite'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_currency_symbol.log: test-pr_currency_symbol$(EXEEXT)
+       @p='test-pr_currency_symbol$(EXEEXT)'; \
+       b='test-pr_currency_symbol'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_dash.log: test-pr_dash$(EXEEXT)
+       @p='test-pr_dash$(EXEEXT)'; \
+       b='test-pr_dash'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_decimal_digit.log: test-pr_decimal_digit$(EXEEXT)
+       @p='test-pr_decimal_digit$(EXEEXT)'; \
+       b='test-pr_decimal_digit'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_default_ignorable_code_point.log: test-pr_default_ignorable_code_point$(EXEEXT)
+       @p='test-pr_default_ignorable_code_point$(EXEEXT)'; \
+       b='test-pr_default_ignorable_code_point'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_deprecated.log: test-pr_deprecated$(EXEEXT)
+       @p='test-pr_deprecated$(EXEEXT)'; \
+       b='test-pr_deprecated'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_diacritic.log: test-pr_diacritic$(EXEEXT)
+       @p='test-pr_diacritic$(EXEEXT)'; \
+       b='test-pr_diacritic'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_extender.log: test-pr_extender$(EXEEXT)
+       @p='test-pr_extender$(EXEEXT)'; \
+       b='test-pr_extender'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_format_control.log: test-pr_format_control$(EXEEXT)
+       @p='test-pr_format_control$(EXEEXT)'; \
+       b='test-pr_format_control'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_grapheme_base.log: test-pr_grapheme_base$(EXEEXT)
+       @p='test-pr_grapheme_base$(EXEEXT)'; \
+       b='test-pr_grapheme_base'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_grapheme_extend.log: test-pr_grapheme_extend$(EXEEXT)
+       @p='test-pr_grapheme_extend$(EXEEXT)'; \
+       b='test-pr_grapheme_extend'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_grapheme_link.log: test-pr_grapheme_link$(EXEEXT)
+       @p='test-pr_grapheme_link$(EXEEXT)'; \
+       b='test-pr_grapheme_link'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_hex_digit.log: test-pr_hex_digit$(EXEEXT)
+       @p='test-pr_hex_digit$(EXEEXT)'; \
+       b='test-pr_hex_digit'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_hyphen.log: test-pr_hyphen$(EXEEXT)
+       @p='test-pr_hyphen$(EXEEXT)'; \
+       b='test-pr_hyphen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_id_continue.log: test-pr_id_continue$(EXEEXT)
+       @p='test-pr_id_continue$(EXEEXT)'; \
+       b='test-pr_id_continue'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_id_start.log: test-pr_id_start$(EXEEXT)
+       @p='test-pr_id_start$(EXEEXT)'; \
+       b='test-pr_id_start'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_ideographic.log: test-pr_ideographic$(EXEEXT)
+       @p='test-pr_ideographic$(EXEEXT)'; \
+       b='test-pr_ideographic'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_ids_binary_operator.log: test-pr_ids_binary_operator$(EXEEXT)
+       @p='test-pr_ids_binary_operator$(EXEEXT)'; \
+       b='test-pr_ids_binary_operator'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_ids_trinary_operator.log: test-pr_ids_trinary_operator$(EXEEXT)
+       @p='test-pr_ids_trinary_operator$(EXEEXT)'; \
+       b='test-pr_ids_trinary_operator'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_ignorable_control.log: test-pr_ignorable_control$(EXEEXT)
+       @p='test-pr_ignorable_control$(EXEEXT)'; \
+       b='test-pr_ignorable_control'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_iso_control.log: test-pr_iso_control$(EXEEXT)
+       @p='test-pr_iso_control$(EXEEXT)'; \
+       b='test-pr_iso_control'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_join_control.log: test-pr_join_control$(EXEEXT)
+       @p='test-pr_join_control$(EXEEXT)'; \
+       b='test-pr_join_control'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_left_of_pair.log: test-pr_left_of_pair$(EXEEXT)
+       @p='test-pr_left_of_pair$(EXEEXT)'; \
+       b='test-pr_left_of_pair'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_line_separator.log: test-pr_line_separator$(EXEEXT)
+       @p='test-pr_line_separator$(EXEEXT)'; \
+       b='test-pr_line_separator'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_logical_order_exception.log: test-pr_logical_order_exception$(EXEEXT)
+       @p='test-pr_logical_order_exception$(EXEEXT)'; \
+       b='test-pr_logical_order_exception'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_lowercase.log: test-pr_lowercase$(EXEEXT)
+       @p='test-pr_lowercase$(EXEEXT)'; \
+       b='test-pr_lowercase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_math.log: test-pr_math$(EXEEXT)
+       @p='test-pr_math$(EXEEXT)'; \
+       b='test-pr_math'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_non_break.log: test-pr_non_break$(EXEEXT)
+       @p='test-pr_non_break$(EXEEXT)'; \
+       b='test-pr_non_break'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_not_a_character.log: test-pr_not_a_character$(EXEEXT)
+       @p='test-pr_not_a_character$(EXEEXT)'; \
+       b='test-pr_not_a_character'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_numeric.log: test-pr_numeric$(EXEEXT)
+       @p='test-pr_numeric$(EXEEXT)'; \
+       b='test-pr_numeric'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_other_alphabetic.log: test-pr_other_alphabetic$(EXEEXT)
+       @p='test-pr_other_alphabetic$(EXEEXT)'; \
+       b='test-pr_other_alphabetic'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_other_default_ignorable_code_point.log: test-pr_other_default_ignorable_code_point$(EXEEXT)
+       @p='test-pr_other_default_ignorable_code_point$(EXEEXT)'; \
+       b='test-pr_other_default_ignorable_code_point'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_other_grapheme_extend.log: test-pr_other_grapheme_extend$(EXEEXT)
+       @p='test-pr_other_grapheme_extend$(EXEEXT)'; \
+       b='test-pr_other_grapheme_extend'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_other_id_continue.log: test-pr_other_id_continue$(EXEEXT)
+       @p='test-pr_other_id_continue$(EXEEXT)'; \
+       b='test-pr_other_id_continue'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_other_id_start.log: test-pr_other_id_start$(EXEEXT)
+       @p='test-pr_other_id_start$(EXEEXT)'; \
+       b='test-pr_other_id_start'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_other_lowercase.log: test-pr_other_lowercase$(EXEEXT)
+       @p='test-pr_other_lowercase$(EXEEXT)'; \
+       b='test-pr_other_lowercase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_other_math.log: test-pr_other_math$(EXEEXT)
+       @p='test-pr_other_math$(EXEEXT)'; \
+       b='test-pr_other_math'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_other_uppercase.log: test-pr_other_uppercase$(EXEEXT)
+       @p='test-pr_other_uppercase$(EXEEXT)'; \
+       b='test-pr_other_uppercase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_paired_punctuation.log: test-pr_paired_punctuation$(EXEEXT)
+       @p='test-pr_paired_punctuation$(EXEEXT)'; \
+       b='test-pr_paired_punctuation'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_paragraph_separator.log: test-pr_paragraph_separator$(EXEEXT)
+       @p='test-pr_paragraph_separator$(EXEEXT)'; \
+       b='test-pr_paragraph_separator'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_pattern_syntax.log: test-pr_pattern_syntax$(EXEEXT)
+       @p='test-pr_pattern_syntax$(EXEEXT)'; \
+       b='test-pr_pattern_syntax'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_pattern_white_space.log: test-pr_pattern_white_space$(EXEEXT)
+       @p='test-pr_pattern_white_space$(EXEEXT)'; \
+       b='test-pr_pattern_white_space'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_private_use.log: test-pr_private_use$(EXEEXT)
+       @p='test-pr_private_use$(EXEEXT)'; \
+       b='test-pr_private_use'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_punctuation.log: test-pr_punctuation$(EXEEXT)
+       @p='test-pr_punctuation$(EXEEXT)'; \
+       b='test-pr_punctuation'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_quotation_mark.log: test-pr_quotation_mark$(EXEEXT)
+       @p='test-pr_quotation_mark$(EXEEXT)'; \
+       b='test-pr_quotation_mark'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_radical.log: test-pr_radical$(EXEEXT)
+       @p='test-pr_radical$(EXEEXT)'; \
+       b='test-pr_radical'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_sentence_terminal.log: test-pr_sentence_terminal$(EXEEXT)
+       @p='test-pr_sentence_terminal$(EXEEXT)'; \
+       b='test-pr_sentence_terminal'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_soft_dotted.log: test-pr_soft_dotted$(EXEEXT)
+       @p='test-pr_soft_dotted$(EXEEXT)'; \
+       b='test-pr_soft_dotted'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_space.log: test-pr_space$(EXEEXT)
+       @p='test-pr_space$(EXEEXT)'; \
+       b='test-pr_space'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_terminal_punctuation.log: test-pr_terminal_punctuation$(EXEEXT)
+       @p='test-pr_terminal_punctuation$(EXEEXT)'; \
+       b='test-pr_terminal_punctuation'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_test.log: test-pr_test$(EXEEXT)
+       @p='test-pr_test$(EXEEXT)'; \
+       b='test-pr_test'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_titlecase.log: test-pr_titlecase$(EXEEXT)
+       @p='test-pr_titlecase$(EXEEXT)'; \
+       b='test-pr_titlecase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_unassigned_code_value.log: test-pr_unassigned_code_value$(EXEEXT)
+       @p='test-pr_unassigned_code_value$(EXEEXT)'; \
+       b='test-pr_unassigned_code_value'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_unified_ideograph.log: test-pr_unified_ideograph$(EXEEXT)
+       @p='test-pr_unified_ideograph$(EXEEXT)'; \
+       b='test-pr_unified_ideograph'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_uppercase.log: test-pr_uppercase$(EXEEXT)
+       @p='test-pr_uppercase$(EXEEXT)'; \
+       b='test-pr_uppercase'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_variation_selector.log: test-pr_variation_selector$(EXEEXT)
+       @p='test-pr_variation_selector$(EXEEXT)'; \
+       b='test-pr_variation_selector'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_white_space.log: test-pr_white_space$(EXEEXT)
+       @p='test-pr_white_space$(EXEEXT)'; \
+       b='test-pr_white_space'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_xid_continue.log: test-pr_xid_continue$(EXEEXT)
+       @p='test-pr_xid_continue$(EXEEXT)'; \
+       b='test-pr_xid_continue'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_xid_start.log: test-pr_xid_start$(EXEEXT)
+       @p='test-pr_xid_start$(EXEEXT)'; \
+       b='test-pr_xid_start'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pr_zero_width.log: test-pr_zero_width$(EXEEXT)
+       @p='test-pr_zero_width$(EXEEXT)'; \
+       b='test-pr_zero_width'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-scripts.log: test-scripts$(EXEEXT)
+       @p='test-scripts$(EXEEXT)'; \
+       b='test-scripts'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-sy_c_ident.log: test-sy_c_ident$(EXEEXT)
+       @p='test-sy_c_ident$(EXEEXT)'; \
+       b='test-sy_c_ident'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-sy_c_whitespace.log: test-sy_c_whitespace$(EXEEXT)
+       @p='test-sy_c_whitespace$(EXEEXT)'; \
+       b='test-sy_c_whitespace'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-sy_java_ident.log: test-sy_java_ident$(EXEEXT)
+       @p='test-sy_java_ident$(EXEEXT)'; \
+       b='test-sy_java_ident'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-sy_java_whitespace.log: test-sy_java_whitespace$(EXEEXT)
+       @p='test-sy_java_whitespace$(EXEEXT)'; \
+       b='test-sy_java_whitespace'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-grapheme-breaks.log: test-u16-grapheme-breaks$(EXEEXT)
+       @p='test-u16-grapheme-breaks$(EXEEXT)'; \
+       b='test-u16-grapheme-breaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-grapheme-next.log: test-u16-grapheme-next$(EXEEXT)
+       @p='test-u16-grapheme-next$(EXEEXT)'; \
+       b='test-u16-grapheme-next'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-grapheme-prev.log: test-u16-grapheme-prev$(EXEEXT)
+       @p='test-u16-grapheme-prev$(EXEEXT)'; \
+       b='test-u16-grapheme-prev'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-grapheme-breaks.log: test-u32-grapheme-breaks$(EXEEXT)
+       @p='test-u32-grapheme-breaks$(EXEEXT)'; \
+       b='test-u32-grapheme-breaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-grapheme-next.log: test-u32-grapheme-next$(EXEEXT)
+       @p='test-u32-grapheme-next$(EXEEXT)'; \
+       b='test-u32-grapheme-next'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-grapheme-prev.log: test-u32-grapheme-prev$(EXEEXT)
+       @p='test-u32-grapheme-prev$(EXEEXT)'; \
+       b='test-u32-grapheme-prev'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-grapheme-breaks.log: test-u8-grapheme-breaks$(EXEEXT)
+       @p='test-u8-grapheme-breaks$(EXEEXT)'; \
+       b='test-u8-grapheme-breaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-grapheme-next.log: test-u8-grapheme-next$(EXEEXT)
+       @p='test-u8-grapheme-next$(EXEEXT)'; \
+       b='test-u8-grapheme-next'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-grapheme-prev.log: test-u8-grapheme-prev$(EXEEXT)
+       @p='test-u8-grapheme-prev$(EXEEXT)'; \
+       b='test-u8-grapheme-prev'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-uc-gbrk-prop.log: test-uc-gbrk-prop$(EXEEXT)
+       @p='test-uc-gbrk-prop$(EXEEXT)'; \
+       b='test-uc-gbrk-prop'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unigbrk/test-uc-is-grapheme-break.sh.log: unigbrk/test-uc-is-grapheme-break.sh
+       @p='unigbrk/test-uc-is-grapheme-break.sh'; \
+       b='unigbrk/test-uc-is-grapheme-break.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unigbrk/test-ulc-grapheme-breaks.sh.log: unigbrk/test-ulc-grapheme-breaks.sh
+       @p='unigbrk/test-ulc-grapheme-breaks.sh'; \
+       b='unigbrk/test-ulc-grapheme-breaks.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-possible-linebreaks.log: test-u16-possible-linebreaks$(EXEEXT)
+       @p='test-u16-possible-linebreaks$(EXEEXT)'; \
+       b='test-u16-possible-linebreaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-width-linebreaks.log: test-u16-width-linebreaks$(EXEEXT)
+       @p='test-u16-width-linebreaks$(EXEEXT)'; \
+       b='test-u16-width-linebreaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-possible-linebreaks.log: test-u32-possible-linebreaks$(EXEEXT)
+       @p='test-u32-possible-linebreaks$(EXEEXT)'; \
+       b='test-u32-possible-linebreaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-width-linebreaks.log: test-u32-width-linebreaks$(EXEEXT)
+       @p='test-u32-width-linebreaks$(EXEEXT)'; \
+       b='test-u32-width-linebreaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-possible-linebreaks.log: test-u8-possible-linebreaks$(EXEEXT)
+       @p='test-u8-possible-linebreaks$(EXEEXT)'; \
+       b='test-u8-possible-linebreaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-width-linebreaks.log: test-u8-width-linebreaks$(EXEEXT)
+       @p='test-u8-width-linebreaks$(EXEEXT)'; \
+       b='test-u8-width-linebreaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ulc-possible-linebreaks.log: test-ulc-possible-linebreaks$(EXEEXT)
+       @p='test-ulc-possible-linebreaks$(EXEEXT)'; \
+       b='test-ulc-possible-linebreaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ulc-width-linebreaks.log: test-ulc-width-linebreaks$(EXEEXT)
+       @p='test-ulc-width-linebreaks$(EXEEXT)'; \
+       b='test-ulc-width-linebreaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+uniname/test-uninames.sh.log: uniname/test-uninames.sh
+       @p='uniname/test-uninames.sh'; \
+       b='uniname/test-uninames.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-canonical-decomposition.log: test-canonical-decomposition$(EXEEXT)
+       @p='test-canonical-decomposition$(EXEEXT)'; \
+       b='test-canonical-decomposition'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-compat-decomposition.log: test-compat-decomposition$(EXEEXT)
+       @p='test-compat-decomposition$(EXEEXT)'; \
+       b='test-compat-decomposition'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-composition.log: test-composition$(EXEEXT)
+       @p='test-composition$(EXEEXT)'; \
+       b='test-composition'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-decomposing-form.log: test-decomposing-form$(EXEEXT)
+       @p='test-decomposing-form$(EXEEXT)'; \
+       b='test-decomposing-form'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-decomposition.log: test-decomposition$(EXEEXT)
+       @p='test-decomposition$(EXEEXT)'; \
+       b='test-decomposition'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-uninorm-filter-nfc.log: test-uninorm-filter-nfc$(EXEEXT)
+       @p='test-uninorm-filter-nfc$(EXEEXT)'; \
+       b='test-uninorm-filter-nfc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-nfc.log: test-nfc$(EXEEXT)
+       @p='test-nfc$(EXEEXT)'; \
+       b='test-nfc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+uninorm/test-u32-nfc-big.sh.log: uninorm/test-u32-nfc-big.sh
+       @p='uninorm/test-u32-nfc-big.sh'; \
+       b='uninorm/test-u32-nfc-big.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-nfd.log: test-nfd$(EXEEXT)
+       @p='test-nfd$(EXEEXT)'; \
+       b='test-nfd'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+uninorm/test-u32-nfd-big.sh.log: uninorm/test-u32-nfd-big.sh
+       @p='uninorm/test-u32-nfd-big.sh'; \
+       b='uninorm/test-u32-nfd-big.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-nfkc.log: test-nfkc$(EXEEXT)
+       @p='test-nfkc$(EXEEXT)'; \
+       b='test-nfkc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+uninorm/test-u32-nfkc-big.sh.log: uninorm/test-u32-nfkc-big.sh
+       @p='uninorm/test-u32-nfkc-big.sh'; \
+       b='uninorm/test-u32-nfkc-big.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-nfkd.log: test-nfkd$(EXEEXT)
+       @p='test-nfkd$(EXEEXT)'; \
+       b='test-nfkd'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+uninorm/test-u32-nfkd-big.sh.log: uninorm/test-u32-nfkd-big.sh
+       @p='uninorm/test-u32-nfkd-big.sh'; \
+       b='uninorm/test-u32-nfkd-big.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-normcmp.log: test-u16-normcmp$(EXEEXT)
+       @p='test-u16-normcmp$(EXEEXT)'; \
+       b='test-u16-normcmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-normcoll.log: test-u16-normcoll$(EXEEXT)
+       @p='test-u16-normcoll$(EXEEXT)'; \
+       b='test-u16-normcoll'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-normcmp.log: test-u32-normcmp$(EXEEXT)
+       @p='test-u32-normcmp$(EXEEXT)'; \
+       b='test-u32-normcmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-normcoll.log: test-u32-normcoll$(EXEEXT)
+       @p='test-u32-normcoll$(EXEEXT)'; \
+       b='test-u32-normcoll'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-normcmp.log: test-u8-normcmp$(EXEEXT)
+       @p='test-u8-normcmp$(EXEEXT)'; \
+       b='test-u8-normcmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-normcoll.log: test-u8-normcoll$(EXEEXT)
+       @p='test-u8-normcoll$(EXEEXT)'; \
+       b='test-u8-normcoll'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-unistd.log: test-unistd$(EXEEXT)
+       @p='test-unistd$(EXEEXT)'; \
+       b='test-unistd'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-asnprintf1.log: test-u16-asnprintf1$(EXEEXT)
+       @p='test-u16-asnprintf1$(EXEEXT)'; \
+       b='test-u16-asnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-vasnprintf1.log: test-u16-vasnprintf1$(EXEEXT)
+       @p='test-u16-vasnprintf1$(EXEEXT)'; \
+       b='test-u16-vasnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unistdio/test-u16-vasnprintf2.sh.log: unistdio/test-u16-vasnprintf2.sh
+       @p='unistdio/test-u16-vasnprintf2.sh'; \
+       b='unistdio/test-u16-vasnprintf2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unistdio/test-u16-vasnprintf3.sh.log: unistdio/test-u16-vasnprintf3.sh
+       @p='unistdio/test-u16-vasnprintf3.sh'; \
+       b='unistdio/test-u16-vasnprintf3.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-vasprintf1.log: test-u16-vasprintf1$(EXEEXT)
+       @p='test-u16-vasprintf1$(EXEEXT)'; \
+       b='test-u16-vasprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-vsnprintf1.log: test-u16-vsnprintf1$(EXEEXT)
+       @p='test-u16-vsnprintf1$(EXEEXT)'; \
+       b='test-u16-vsnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-vsprintf1.log: test-u16-vsprintf1$(EXEEXT)
+       @p='test-u16-vsprintf1$(EXEEXT)'; \
+       b='test-u16-vsprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-asnprintf1.log: test-u32-asnprintf1$(EXEEXT)
+       @p='test-u32-asnprintf1$(EXEEXT)'; \
+       b='test-u32-asnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-vasnprintf1.log: test-u32-vasnprintf1$(EXEEXT)
+       @p='test-u32-vasnprintf1$(EXEEXT)'; \
+       b='test-u32-vasnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unistdio/test-u32-vasnprintf2.sh.log: unistdio/test-u32-vasnprintf2.sh
+       @p='unistdio/test-u32-vasnprintf2.sh'; \
+       b='unistdio/test-u32-vasnprintf2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unistdio/test-u32-vasnprintf3.sh.log: unistdio/test-u32-vasnprintf3.sh
+       @p='unistdio/test-u32-vasnprintf3.sh'; \
+       b='unistdio/test-u32-vasnprintf3.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-vasprintf1.log: test-u32-vasprintf1$(EXEEXT)
+       @p='test-u32-vasprintf1$(EXEEXT)'; \
+       b='test-u32-vasprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-vsnprintf1.log: test-u32-vsnprintf1$(EXEEXT)
+       @p='test-u32-vsnprintf1$(EXEEXT)'; \
+       b='test-u32-vsnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-vsprintf1.log: test-u32-vsprintf1$(EXEEXT)
+       @p='test-u32-vsprintf1$(EXEEXT)'; \
+       b='test-u32-vsprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-asnprintf1.log: test-u8-asnprintf1$(EXEEXT)
+       @p='test-u8-asnprintf1$(EXEEXT)'; \
+       b='test-u8-asnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-vasnprintf1.log: test-u8-vasnprintf1$(EXEEXT)
+       @p='test-u8-vasnprintf1$(EXEEXT)'; \
+       b='test-u8-vasnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unistdio/test-u8-vasnprintf2.sh.log: unistdio/test-u8-vasnprintf2.sh
+       @p='unistdio/test-u8-vasnprintf2.sh'; \
+       b='unistdio/test-u8-vasnprintf2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unistdio/test-u8-vasnprintf3.sh.log: unistdio/test-u8-vasnprintf3.sh
+       @p='unistdio/test-u8-vasnprintf3.sh'; \
+       b='unistdio/test-u8-vasnprintf3.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-vasprintf1.log: test-u8-vasprintf1$(EXEEXT)
+       @p='test-u8-vasprintf1$(EXEEXT)'; \
+       b='test-u8-vasprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-vsnprintf1.log: test-u8-vsnprintf1$(EXEEXT)
+       @p='test-u8-vsnprintf1$(EXEEXT)'; \
+       b='test-u8-vsnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-vsprintf1.log: test-u8-vsprintf1$(EXEEXT)
+       @p='test-u8-vsprintf1$(EXEEXT)'; \
+       b='test-u8-vsprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ulc-asnprintf1.log: test-ulc-asnprintf1$(EXEEXT)
+       @p='test-ulc-asnprintf1$(EXEEXT)'; \
+       b='test-ulc-asnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ulc-vasnprintf1.log: test-ulc-vasnprintf1$(EXEEXT)
+       @p='test-ulc-vasnprintf1$(EXEEXT)'; \
+       b='test-ulc-vasnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unistdio/test-ulc-vasnprintf2.sh.log: unistdio/test-ulc-vasnprintf2.sh
+       @p='unistdio/test-ulc-vasnprintf2.sh'; \
+       b='unistdio/test-ulc-vasnprintf2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+unistdio/test-ulc-vasnprintf3.sh.log: unistdio/test-ulc-vasnprintf3.sh
+       @p='unistdio/test-ulc-vasnprintf3.sh'; \
+       b='unistdio/test-ulc-vasnprintf3.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ulc-vasprintf1.log: test-ulc-vasprintf1$(EXEEXT)
+       @p='test-ulc-vasprintf1$(EXEEXT)'; \
+       b='test-ulc-vasprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ulc-vsnprintf1.log: test-ulc-vsnprintf1$(EXEEXT)
+       @p='test-ulc-vsnprintf1$(EXEEXT)'; \
+       b='test-ulc-vsnprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ulc-vsprintf1.log: test-ulc-vsprintf1$(EXEEXT)
+       @p='test-ulc-vsprintf1$(EXEEXT)'; \
+       b='test-ulc-vsprintf1'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-check.log: test-u16-check$(EXEEXT)
+       @p='test-u16-check$(EXEEXT)'; \
+       b='test-u16-check'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-chr.log: test-u16-chr$(EXEEXT)
+       @p='test-u16-chr$(EXEEXT)'; \
+       b='test-u16-chr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-cmp.log: test-u16-cmp$(EXEEXT)
+       @p='test-u16-cmp$(EXEEXT)'; \
+       b='test-u16-cmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-cmp2.log: test-u16-cmp2$(EXEEXT)
+       @p='test-u16-cmp2$(EXEEXT)'; \
+       b='test-u16-cmp2'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-cpy-alloc.log: test-u16-cpy-alloc$(EXEEXT)
+       @p='test-u16-cpy-alloc$(EXEEXT)'; \
+       b='test-u16-cpy-alloc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-cpy.log: test-u16-cpy$(EXEEXT)
+       @p='test-u16-cpy$(EXEEXT)'; \
+       b='test-u16-cpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-mblen.log: test-u16-mblen$(EXEEXT)
+       @p='test-u16-mblen$(EXEEXT)'; \
+       b='test-u16-mblen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-mbsnlen.log: test-u16-mbsnlen$(EXEEXT)
+       @p='test-u16-mbsnlen$(EXEEXT)'; \
+       b='test-u16-mbsnlen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-mbtouc.log: test-u16-mbtouc$(EXEEXT)
+       @p='test-u16-mbtouc$(EXEEXT)'; \
+       b='test-u16-mbtouc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-mbtouc-unsafe.log: test-u16-mbtouc-unsafe$(EXEEXT)
+       @p='test-u16-mbtouc-unsafe$(EXEEXT)'; \
+       b='test-u16-mbtouc-unsafe'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-mbtoucr.log: test-u16-mbtoucr$(EXEEXT)
+       @p='test-u16-mbtoucr$(EXEEXT)'; \
+       b='test-u16-mbtoucr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-move.log: test-u16-move$(EXEEXT)
+       @p='test-u16-move$(EXEEXT)'; \
+       b='test-u16-move'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-next.log: test-u16-next$(EXEEXT)
+       @p='test-u16-next$(EXEEXT)'; \
+       b='test-u16-next'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-prev.log: test-u16-prev$(EXEEXT)
+       @p='test-u16-prev$(EXEEXT)'; \
+       b='test-u16-prev'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-set.log: test-u16-set$(EXEEXT)
+       @p='test-u16-set$(EXEEXT)'; \
+       b='test-u16-set'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-stpcpy.log: test-u16-stpcpy$(EXEEXT)
+       @p='test-u16-stpcpy$(EXEEXT)'; \
+       b='test-u16-stpcpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-stpncpy.log: test-u16-stpncpy$(EXEEXT)
+       @p='test-u16-stpncpy$(EXEEXT)'; \
+       b='test-u16-stpncpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strcat.log: test-u16-strcat$(EXEEXT)
+       @p='test-u16-strcat$(EXEEXT)'; \
+       b='test-u16-strcat'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strchr.log: test-u16-strchr$(EXEEXT)
+       @p='test-u16-strchr$(EXEEXT)'; \
+       b='test-u16-strchr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strcmp.log: test-u16-strcmp$(EXEEXT)
+       @p='test-u16-strcmp$(EXEEXT)'; \
+       b='test-u16-strcmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strcoll.log: test-u16-strcoll$(EXEEXT)
+       @p='test-u16-strcoll$(EXEEXT)'; \
+       b='test-u16-strcoll'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strcpy.log: test-u16-strcpy$(EXEEXT)
+       @p='test-u16-strcpy$(EXEEXT)'; \
+       b='test-u16-strcpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strdup.log: test-u16-strdup$(EXEEXT)
+       @p='test-u16-strdup$(EXEEXT)'; \
+       b='test-u16-strdup'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strlen.log: test-u16-strlen$(EXEEXT)
+       @p='test-u16-strlen$(EXEEXT)'; \
+       b='test-u16-strlen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strmblen.log: test-u16-strmblen$(EXEEXT)
+       @p='test-u16-strmblen$(EXEEXT)'; \
+       b='test-u16-strmblen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strmbtouc.log: test-u16-strmbtouc$(EXEEXT)
+       @p='test-u16-strmbtouc$(EXEEXT)'; \
+       b='test-u16-strmbtouc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strncat.log: test-u16-strncat$(EXEEXT)
+       @p='test-u16-strncat$(EXEEXT)'; \
+       b='test-u16-strncat'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strncmp.log: test-u16-strncmp$(EXEEXT)
+       @p='test-u16-strncmp$(EXEEXT)'; \
+       b='test-u16-strncmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strncpy.log: test-u16-strncpy$(EXEEXT)
+       @p='test-u16-strncpy$(EXEEXT)'; \
+       b='test-u16-strncpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strnlen.log: test-u16-strnlen$(EXEEXT)
+       @p='test-u16-strnlen$(EXEEXT)'; \
+       b='test-u16-strnlen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strstr.log: test-u16-strstr$(EXEEXT)
+       @p='test-u16-strstr$(EXEEXT)'; \
+       b='test-u16-strstr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-to-u32.log: test-u16-to-u32$(EXEEXT)
+       @p='test-u16-to-u32$(EXEEXT)'; \
+       b='test-u16-to-u32'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-to-u8.log: test-u16-to-u8$(EXEEXT)
+       @p='test-u16-to-u8$(EXEEXT)'; \
+       b='test-u16-to-u8'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-uctomb.log: test-u16-uctomb$(EXEEXT)
+       @p='test-u16-uctomb$(EXEEXT)'; \
+       b='test-u16-uctomb'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-check.log: test-u32-check$(EXEEXT)
+       @p='test-u32-check$(EXEEXT)'; \
+       b='test-u32-check'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-chr.log: test-u32-chr$(EXEEXT)
+       @p='test-u32-chr$(EXEEXT)'; \
+       b='test-u32-chr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-cmp.log: test-u32-cmp$(EXEEXT)
+       @p='test-u32-cmp$(EXEEXT)'; \
+       b='test-u32-cmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-cmp2.log: test-u32-cmp2$(EXEEXT)
+       @p='test-u32-cmp2$(EXEEXT)'; \
+       b='test-u32-cmp2'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-cpy-alloc.log: test-u32-cpy-alloc$(EXEEXT)
+       @p='test-u32-cpy-alloc$(EXEEXT)'; \
+       b='test-u32-cpy-alloc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-cpy.log: test-u32-cpy$(EXEEXT)
+       @p='test-u32-cpy$(EXEEXT)'; \
+       b='test-u32-cpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-mblen.log: test-u32-mblen$(EXEEXT)
+       @p='test-u32-mblen$(EXEEXT)'; \
+       b='test-u32-mblen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-mbsnlen.log: test-u32-mbsnlen$(EXEEXT)
+       @p='test-u32-mbsnlen$(EXEEXT)'; \
+       b='test-u32-mbsnlen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-mbtouc.log: test-u32-mbtouc$(EXEEXT)
+       @p='test-u32-mbtouc$(EXEEXT)'; \
+       b='test-u32-mbtouc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-mbtouc-unsafe.log: test-u32-mbtouc-unsafe$(EXEEXT)
+       @p='test-u32-mbtouc-unsafe$(EXEEXT)'; \
+       b='test-u32-mbtouc-unsafe'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-mbtoucr.log: test-u32-mbtoucr$(EXEEXT)
+       @p='test-u32-mbtoucr$(EXEEXT)'; \
+       b='test-u32-mbtoucr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-move.log: test-u32-move$(EXEEXT)
+       @p='test-u32-move$(EXEEXT)'; \
+       b='test-u32-move'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-next.log: test-u32-next$(EXEEXT)
+       @p='test-u32-next$(EXEEXT)'; \
+       b='test-u32-next'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-prev.log: test-u32-prev$(EXEEXT)
+       @p='test-u32-prev$(EXEEXT)'; \
+       b='test-u32-prev'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-set.log: test-u32-set$(EXEEXT)
+       @p='test-u32-set$(EXEEXT)'; \
+       b='test-u32-set'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-stpcpy.log: test-u32-stpcpy$(EXEEXT)
+       @p='test-u32-stpcpy$(EXEEXT)'; \
+       b='test-u32-stpcpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-stpncpy.log: test-u32-stpncpy$(EXEEXT)
+       @p='test-u32-stpncpy$(EXEEXT)'; \
+       b='test-u32-stpncpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strcat.log: test-u32-strcat$(EXEEXT)
+       @p='test-u32-strcat$(EXEEXT)'; \
+       b='test-u32-strcat'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strchr.log: test-u32-strchr$(EXEEXT)
+       @p='test-u32-strchr$(EXEEXT)'; \
+       b='test-u32-strchr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strcmp.log: test-u32-strcmp$(EXEEXT)
+       @p='test-u32-strcmp$(EXEEXT)'; \
+       b='test-u32-strcmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strcoll.log: test-u32-strcoll$(EXEEXT)
+       @p='test-u32-strcoll$(EXEEXT)'; \
+       b='test-u32-strcoll'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strcpy.log: test-u32-strcpy$(EXEEXT)
+       @p='test-u32-strcpy$(EXEEXT)'; \
+       b='test-u32-strcpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strdup.log: test-u32-strdup$(EXEEXT)
+       @p='test-u32-strdup$(EXEEXT)'; \
+       b='test-u32-strdup'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strlen.log: test-u32-strlen$(EXEEXT)
+       @p='test-u32-strlen$(EXEEXT)'; \
+       b='test-u32-strlen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strmblen.log: test-u32-strmblen$(EXEEXT)
+       @p='test-u32-strmblen$(EXEEXT)'; \
+       b='test-u32-strmblen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strmbtouc.log: test-u32-strmbtouc$(EXEEXT)
+       @p='test-u32-strmbtouc$(EXEEXT)'; \
+       b='test-u32-strmbtouc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strncat.log: test-u32-strncat$(EXEEXT)
+       @p='test-u32-strncat$(EXEEXT)'; \
+       b='test-u32-strncat'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strncmp.log: test-u32-strncmp$(EXEEXT)
+       @p='test-u32-strncmp$(EXEEXT)'; \
+       b='test-u32-strncmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strncpy.log: test-u32-strncpy$(EXEEXT)
+       @p='test-u32-strncpy$(EXEEXT)'; \
+       b='test-u32-strncpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strnlen.log: test-u32-strnlen$(EXEEXT)
+       @p='test-u32-strnlen$(EXEEXT)'; \
+       b='test-u32-strnlen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strstr.log: test-u32-strstr$(EXEEXT)
+       @p='test-u32-strstr$(EXEEXT)'; \
+       b='test-u32-strstr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-to-u16.log: test-u32-to-u16$(EXEEXT)
+       @p='test-u32-to-u16$(EXEEXT)'; \
+       b='test-u32-to-u16'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-to-u8.log: test-u32-to-u8$(EXEEXT)
+       @p='test-u32-to-u8$(EXEEXT)'; \
+       b='test-u32-to-u8'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-uctomb.log: test-u32-uctomb$(EXEEXT)
+       @p='test-u32-uctomb$(EXEEXT)'; \
+       b='test-u32-uctomb'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-check.log: test-u8-check$(EXEEXT)
+       @p='test-u8-check$(EXEEXT)'; \
+       b='test-u8-check'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-chr.log: test-u8-chr$(EXEEXT)
+       @p='test-u8-chr$(EXEEXT)'; \
+       b='test-u8-chr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-cmp.log: test-u8-cmp$(EXEEXT)
+       @p='test-u8-cmp$(EXEEXT)'; \
+       b='test-u8-cmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-cmp2.log: test-u8-cmp2$(EXEEXT)
+       @p='test-u8-cmp2$(EXEEXT)'; \
+       b='test-u8-cmp2'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-cpy-alloc.log: test-u8-cpy-alloc$(EXEEXT)
+       @p='test-u8-cpy-alloc$(EXEEXT)'; \
+       b='test-u8-cpy-alloc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-cpy.log: test-u8-cpy$(EXEEXT)
+       @p='test-u8-cpy$(EXEEXT)'; \
+       b='test-u8-cpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-mblen.log: test-u8-mblen$(EXEEXT)
+       @p='test-u8-mblen$(EXEEXT)'; \
+       b='test-u8-mblen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-mbsnlen.log: test-u8-mbsnlen$(EXEEXT)
+       @p='test-u8-mbsnlen$(EXEEXT)'; \
+       b='test-u8-mbsnlen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-mbtouc.log: test-u8-mbtouc$(EXEEXT)
+       @p='test-u8-mbtouc$(EXEEXT)'; \
+       b='test-u8-mbtouc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-mbtouc-unsafe.log: test-u8-mbtouc-unsafe$(EXEEXT)
+       @p='test-u8-mbtouc-unsafe$(EXEEXT)'; \
+       b='test-u8-mbtouc-unsafe'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-mbtoucr.log: test-u8-mbtoucr$(EXEEXT)
+       @p='test-u8-mbtoucr$(EXEEXT)'; \
+       b='test-u8-mbtoucr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-move.log: test-u8-move$(EXEEXT)
+       @p='test-u8-move$(EXEEXT)'; \
+       b='test-u8-move'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-next.log: test-u8-next$(EXEEXT)
+       @p='test-u8-next$(EXEEXT)'; \
+       b='test-u8-next'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-prev.log: test-u8-prev$(EXEEXT)
+       @p='test-u8-prev$(EXEEXT)'; \
+       b='test-u8-prev'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-set.log: test-u8-set$(EXEEXT)
+       @p='test-u8-set$(EXEEXT)'; \
+       b='test-u8-set'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-stpcpy.log: test-u8-stpcpy$(EXEEXT)
+       @p='test-u8-stpcpy$(EXEEXT)'; \
+       b='test-u8-stpcpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-stpncpy.log: test-u8-stpncpy$(EXEEXT)
+       @p='test-u8-stpncpy$(EXEEXT)'; \
+       b='test-u8-stpncpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strcat.log: test-u8-strcat$(EXEEXT)
+       @p='test-u8-strcat$(EXEEXT)'; \
+       b='test-u8-strcat'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strchr.log: test-u8-strchr$(EXEEXT)
+       @p='test-u8-strchr$(EXEEXT)'; \
+       b='test-u8-strchr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strcmp.log: test-u8-strcmp$(EXEEXT)
+       @p='test-u8-strcmp$(EXEEXT)'; \
+       b='test-u8-strcmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strcoll.log: test-u8-strcoll$(EXEEXT)
+       @p='test-u8-strcoll$(EXEEXT)'; \
+       b='test-u8-strcoll'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strcpy.log: test-u8-strcpy$(EXEEXT)
+       @p='test-u8-strcpy$(EXEEXT)'; \
+       b='test-u8-strcpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strdup.log: test-u8-strdup$(EXEEXT)
+       @p='test-u8-strdup$(EXEEXT)'; \
+       b='test-u8-strdup'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strlen.log: test-u8-strlen$(EXEEXT)
+       @p='test-u8-strlen$(EXEEXT)'; \
+       b='test-u8-strlen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strmblen.log: test-u8-strmblen$(EXEEXT)
+       @p='test-u8-strmblen$(EXEEXT)'; \
+       b='test-u8-strmblen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strmbtouc.log: test-u8-strmbtouc$(EXEEXT)
+       @p='test-u8-strmbtouc$(EXEEXT)'; \
+       b='test-u8-strmbtouc'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strncat.log: test-u8-strncat$(EXEEXT)
+       @p='test-u8-strncat$(EXEEXT)'; \
+       b='test-u8-strncat'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strncmp.log: test-u8-strncmp$(EXEEXT)
+       @p='test-u8-strncmp$(EXEEXT)'; \
+       b='test-u8-strncmp'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strncpy.log: test-u8-strncpy$(EXEEXT)
+       @p='test-u8-strncpy$(EXEEXT)'; \
+       b='test-u8-strncpy'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strnlen.log: test-u8-strnlen$(EXEEXT)
+       @p='test-u8-strnlen$(EXEEXT)'; \
+       b='test-u8-strnlen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strstr.log: test-u8-strstr$(EXEEXT)
+       @p='test-u8-strstr$(EXEEXT)'; \
+       b='test-u8-strstr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-to-u16.log: test-u8-to-u16$(EXEEXT)
+       @p='test-u8-to-u16$(EXEEXT)'; \
+       b='test-u8-to-u16'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-to-u32.log: test-u8-to-u32$(EXEEXT)
+       @p='test-u8-to-u32$(EXEEXT)'; \
+       b='test-u8-to-u32'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-uctomb.log: test-u8-uctomb$(EXEEXT)
+       @p='test-u8-uctomb$(EXEEXT)'; \
+       b='test-u8-uctomb'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-wordbreaks.log: test-u16-wordbreaks$(EXEEXT)
+       @p='test-u16-wordbreaks$(EXEEXT)'; \
+       b='test-u16-wordbreaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-wordbreaks.log: test-u32-wordbreaks$(EXEEXT)
+       @p='test-u32-wordbreaks$(EXEEXT)'; \
+       b='test-u32-wordbreaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-wordbreaks.log: test-u8-wordbreaks$(EXEEXT)
+       @p='test-u8-wordbreaks$(EXEEXT)'; \
+       b='test-u8-wordbreaks'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+uniwbrk/test-ulc-wordbreaks.sh.log: uniwbrk/test-ulc-wordbreaks.sh
+       @p='uniwbrk/test-ulc-wordbreaks.sh'; \
+       b='uniwbrk/test-ulc-wordbreaks.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-strwidth.log: test-u16-strwidth$(EXEEXT)
+       @p='test-u16-strwidth$(EXEEXT)'; \
+       b='test-u16-strwidth'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u16-width.log: test-u16-width$(EXEEXT)
+       @p='test-u16-width$(EXEEXT)'; \
+       b='test-u16-width'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-strwidth.log: test-u32-strwidth$(EXEEXT)
+       @p='test-u32-strwidth$(EXEEXT)'; \
+       b='test-u32-strwidth'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u32-width.log: test-u32-width$(EXEEXT)
+       @p='test-u32-width$(EXEEXT)'; \
+       b='test-u32-width'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-strwidth.log: test-u8-strwidth$(EXEEXT)
+       @p='test-u8-strwidth$(EXEEXT)'; \
+       b='test-u8-strwidth'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-u8-width.log: test-u8-width$(EXEEXT)
+       @p='test-u8-width$(EXEEXT)'; \
+       b='test-u8-width'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-uc_width.log: test-uc_width$(EXEEXT)
+       @p='test-uc_width$(EXEEXT)'; \
+       b='test-uc_width'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+uniwidth/test-uc_width2.sh.log: uniwidth/test-uc_width2.sh
+       @p='uniwidth/test-uc_width2.sh'; \
+       b='uniwidth/test-uc_width2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-unsetenv.log: test-unsetenv$(EXEEXT)
+       @p='test-unsetenv$(EXEEXT)'; \
+       b='test-unsetenv'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-verify.log: test-verify$(EXEEXT)
+       @p='test-verify$(EXEEXT)'; \
+       b='test-verify'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-verify.sh.log: test-verify.sh
+       @p='test-verify.sh'; \
+       b='test-verify.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-wchar.log: test-wchar$(EXEEXT)
+       @p='test-wchar$(EXEEXT)'; \
+       b='test-wchar'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-wcrtomb.sh.log: test-wcrtomb.sh
+       @p='test-wcrtomb.sh'; \
+       b='test-wcrtomb.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-wcrtomb-w32-1.sh.log: test-wcrtomb-w32-1.sh
+       @p='test-wcrtomb-w32-1.sh'; \
+       b='test-wcrtomb-w32-1.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-wcrtomb-w32-2.sh.log: test-wcrtomb-w32-2.sh
+       @p='test-wcrtomb-w32-2.sh'; \
+       b='test-wcrtomb-w32-2.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-wcrtomb-w32-3.sh.log: test-wcrtomb-w32-3.sh
+       @p='test-wcrtomb-w32-3.sh'; \
+       b='test-wcrtomb-w32-3.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-wcrtomb-w32-4.sh.log: test-wcrtomb-w32-4.sh
+       @p='test-wcrtomb-w32-4.sh'; \
+       b='test-wcrtomb-w32-4.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-wcrtomb-w32-5.sh.log: test-wcrtomb-w32-5.sh
+       @p='test-wcrtomb-w32-5.sh'; \
+       b='test-wcrtomb-w32-5.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-wctype-h.log: test-wctype-h$(EXEEXT)
+       @p='test-wctype-h$(EXEEXT)'; \
+       b='test-wctype-h'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-wcwidth.log: test-wcwidth$(EXEEXT)
+       @p='test-wcwidth$(EXEEXT)'; \
+       b='test-wcwidth'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-xalloc-die.sh.log: test-xalloc-die.sh
+       @p='test-xalloc-die.sh'; \
+       b='test-xalloc-die.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+       @p='$<'; \
+       $(am__set_b); \
+       $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@      @p='$<'; \
+@am__EXEEXT_TRUE@      $(am__set_b); \
+@am__EXEEXT_TRUE@      $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@      --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@      $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@      "$$tst" $(AM_TESTS_FD_REDIRECT)
 
 distdir: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -8325,13 +13246,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
@@ -8370,12 +13288,20 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
        -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+       -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+       -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+       -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
        -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -8391,6 +13317,8 @@ distclean-generic:
        -rm -f uniconv/$(am__dirstamp)
        -rm -f unictype/$(DEPDIR)/$(am__dirstamp)
        -rm -f unictype/$(am__dirstamp)
+       -rm -f unigbrk/$(DEPDIR)/$(am__dirstamp)
+       -rm -f unigbrk/$(am__dirstamp)
        -rm -f unilbrk/$(DEPDIR)/$(am__dirstamp)
        -rm -f unilbrk/$(am__dirstamp)
        -rm -f uniname/$(DEPDIR)/$(am__dirstamp)
@@ -8419,7 +13347,7 @@ clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
        clean-noinstPROGRAMS mostlyclean-am
 
 distclean: distclean-recursive
-       -rm -rf ./$(DEPDIR) glthread/$(DEPDIR) unicase/$(DEPDIR) uniconv/$(DEPDIR) unictype/$(DEPDIR) unilbrk/$(DEPDIR) uniname/$(DEPDIR) uninorm/$(DEPDIR) unistdio/$(DEPDIR) unistr/$(DEPDIR) uniwbrk/$(DEPDIR) uniwidth/$(DEPDIR)
+       -rm -rf ./$(DEPDIR) glthread/$(DEPDIR) unicase/$(DEPDIR) uniconv/$(DEPDIR) unictype/$(DEPDIR) unigbrk/$(DEPDIR) unilbrk/$(DEPDIR) uniname/$(DEPDIR) uninorm/$(DEPDIR) unistdio/$(DEPDIR) unistr/$(DEPDIR) uniwbrk/$(DEPDIR) uniwidth/$(DEPDIR)
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
        distclean-tags
@@ -8465,7 +13393,7 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
-       -rm -rf ./$(DEPDIR) glthread/$(DEPDIR) unicase/$(DEPDIR) uniconv/$(DEPDIR) unictype/$(DEPDIR) unilbrk/$(DEPDIR) uniname/$(DEPDIR) uninorm/$(DEPDIR) unistdio/$(DEPDIR) unistr/$(DEPDIR) uniwbrk/$(DEPDIR) uniwidth/$(DEPDIR)
+       -rm -rf ./$(DEPDIR) glthread/$(DEPDIR) unicase/$(DEPDIR) uniconv/$(DEPDIR) unictype/$(DEPDIR) unigbrk/$(DEPDIR) unilbrk/$(DEPDIR) uniname/$(DEPDIR) uninorm/$(DEPDIR) unistdio/$(DEPDIR) unistr/$(DEPDIR) uniwbrk/$(DEPDIR) uniwidth/$(DEPDIR)
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -8484,80 +13412,242 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
-       check-am ctags-recursive install install-am install-strip \
-       tags-recursive
+.MAKE: $(am__recursive_targets) all check check-am install install-am \
+       install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-       all all-am check check-TESTS check-am clean \
-       clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
-       clean-libtool clean-local clean-noinstLIBRARIES \
-       clean-noinstPROGRAMS ctags ctags-recursive distclean \
-       distclean-compile distclean-generic distclean-libtool \
-       distclean-tags distdir dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       installdirs-am maintainer-clean maintainer-clean-generic \
-       mostlyclean mostlyclean-compile mostlyclean-generic \
-       mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \
-       tags-recursive uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-TESTS check-am clean clean-checkLIBRARIES \
+       clean-checkPROGRAMS clean-generic clean-libtool clean-local \
+       clean-noinstLIBRARIES clean-noinstPROGRAMS cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \
+       pdf-am ps ps-am recheck tags tags-am uninstall uninstall-am
 
-# The arg-nonnull.h that gets inserted into generated .h files is the same as
-# build-aux/arg-nonnull.h, except that it has the copyright header cut off.
-arg-nonnull.h: $(top_srcdir)/build-aux/arg-nonnull.h
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/GL_ARG_NONNULL/,$$p' \
-         < $(top_srcdir)/build-aux/arg-nonnull.h \
-         > $@-t && \
-       mv $@-t $@
-# The c++defs.h that gets inserted into generated .h files is the same as
-# build-aux/c++defs.h, except that it has the copyright header cut off.
-c++defs.h: $(top_srcdir)/build-aux/c++defs.h
+
+# We need the following in order to create <inttypes.h> when the system
+# doesn't have one that works with the given compiler.
+inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
-       sed -n -e '/_GL_CXXDEFS/,$$p' \
-         < $(top_srcdir)/build-aux/c++defs.h \
-         > $@-t && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \
+             -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \
+             -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+             -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+             -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+             -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
+             -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
+             -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
+             -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
+             -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
+             -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
+             -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
+             -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
+             -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
+             -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
+             -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \
+             -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
+             -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \
+             -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \
+             -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             < $(srcdir)/inttypes.in.h; \
+       } > $@-t && \
        mv $@-t $@
 
 # We need the following in order to create <locale.h> when the system
 # doesn't have one that provides all definitions.
-locale.h: locale.in.h $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
        $(AM_V_GEN)rm -f $@-t $@ && \
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
-         sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
-             -e 's|@''GNULIB_DUPLOCALE''@|$(GNULIB_DUPLOCALE)|g' \
+             -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \
+             -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
+             -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
              -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
              -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \
+             -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \
+             -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \
              -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \
+             -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
              -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
              < $(srcdir)/locale.in.h; \
        } > $@-t && \
        mv $@-t $@
-# The unused-parameter.h that gets inserted into generated .h files is the same
-# as build-aux/unused-parameter.h, except that it has the copyright header cut
+# The arg-nonnull.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut
 # off.
-unused-parameter.h: $(top_srcdir)/build-aux/unused-parameter.h
+arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/GL_ARG_NONNULL/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
+         > $@-t && \
+       mv $@-t $@
+# The c++defs.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/c++defs.h, except that it has the copyright header cut off.
+c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       sed -n -e '/_GL_CXXDEFS/,$$p' \
+         < $(top_srcdir)/build-aux/snippet/c++defs.h \
+         > $@-t && \
+       mv $@-t $@
+# The unused-parameter.h that gets inserted into generated .h files is the same
+# as build-aux/snippet/unused-parameter.h, except that it has the copyright
+# header cut off.
+unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h
        $(AM_V_GEN)rm -f $@-t $@ && \
        sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \
-         < $(top_srcdir)/build-aux/unused-parameter.h \
+         < $(top_srcdir)/build-aux/snippet/unused-parameter.h \
          > $@-t && \
        mv $@-t $@
 # The warn-on-use.h that gets inserted into generated .h files is the same as
-# build-aux/warn-on-use.h, except that it has the copyright header cut off.
-warn-on-use.h: $(top_srcdir)/build-aux/warn-on-use.h
+# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut
+# off.
+warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
        $(AM_V_GEN)rm -f $@-t $@ && \
        sed -n -e '/^.ifndef/,$$p' \
-         < $(top_srcdir)/build-aux/warn-on-use.h \
+         < $(top_srcdir)/build-aux/snippet/warn-on-use.h \
          > $@-t && \
        mv $@-t $@
 
+# We need the following in order to create <stdio.h> when the system
+# doesn't have one that works with the given compiler.
+stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+         sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \
+             -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \
+             -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \
+             -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \
+             -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \
+             -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \
+             -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \
+             -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \
+             -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \
+             -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \
+             -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \
+             -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \
+             -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \
+             -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \
+             -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \
+             -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \
+             -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \
+             -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \
+             -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \
+             -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \
+             -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \
+             -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \
+             -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \
+             -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \
+             -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \
+             -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \
+             -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \
+             -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \
+             -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \
+             -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \
+             -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \
+             -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \
+             -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \
+             -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \
+             -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \
+             -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \
+             -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \
+             -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \
+             -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \
+             -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \
+             -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \
+             -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \
+             -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \
+             -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \
+             -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \
+             -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \
+             -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \
+             -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \
+             -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \
+             < $(srcdir)/stdio.in.h | \
+         sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \
+             -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \
+             -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \
+             -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \
+             -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \
+             -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \
+             -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \
+             -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \
+             -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \
+             -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \
+             -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \
+             -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \
+             -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \
+             -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \
+             -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \
+             -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \
+             -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \
+             -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \
+             -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \
+             -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \
+             -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \
+             -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \
+             -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \
+             -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \
+             -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \
+             -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \
+             -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \
+             -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \
+             -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \
+             -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \
+             -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \
+             -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \
+             -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \
+             -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \
+             -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \
+             -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \
+             -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \
+             -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \
+             -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \
+             -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \
+             -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \
+             -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \
+             -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \
+             -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \
+             -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \
+             -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \
+             -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \
+             -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \
+             -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \
+             -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
+       } > $@-t && \
+       mv $@-t $@
+
 # Clean up after Solaris cc.
 clean-local:
        rm -rf SunWS_cache
diff --git a/tests/btowc.c b/tests/btowc.c
new file mode 100644 (file)
index 0000000..b06ca2e
--- /dev/null
@@ -0,0 +1,39 @@
+/* Convert unibyte character to wide character.
+   Copyright (C) 2008, 2010-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2008.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <wchar.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+wint_t
+btowc (int c)
+{
+  if (c != EOF)
+    {
+      char buf[1];
+      wchar_t wc;
+
+      buf[0] = c;
+      if (mbtowc (&wc, buf, 1) >= 0)
+        return wc;
+    }
+  return WEOF;
+}
index c79e8d4..7b99cd7 100644 (file)
@@ -1,5 +1,5 @@
 /* Error handler for noninteractive utilities
-   Copyright (C) 1990-1998, 2000-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 1990-1998, 2000-2007, 2009-2014 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
@@ -39,6 +39,9 @@
 # include <stdint.h>
 # include <wchar.h>
 # define mbsrtowcs __mbsrtowcs
+# define USE_UNLOCKED_IO 0
+# define _GL_ATTRIBUTE_FORMAT_PRINTF(a, b)
+# define _GL_ARG_NONNULL(a)
 #endif
 
 #if USE_UNLOCKED_IO
@@ -54,7 +57,7 @@
    function without parameters instead.  */
 void (*error_print_progname) (void);
 
-/* This variable is incremented each time `error' is called.  */
+/* This variable is incremented each time 'error' is called.  */
 unsigned int error_message_count;
 
 #ifdef _LIBC
@@ -65,7 +68,7 @@ unsigned int error_message_count;
 # include <limits.h>
 # include <libio/libioP.h>
 
-/* In GNU libc we want do not want to use the common name `error' directly.
+/* In GNU libc we want do not want to use the common name 'error' directly.
    Instead make it a weak alias.  */
 extern void __error (int status, int errnum, const char *message, ...)
      __attribute__ ((__format__ (__printf__, 3, 4)));
@@ -77,9 +80,9 @@ extern void __error_at_line (int status, int errnum, const char *file_name,
 # define error_at_line __error_at_line
 
 # include <libio/iolibio.h>
-# define fflush(s) INTUSE(_IO_fflush) (s)
+# define fflush(s) _IO_fflush (s)
 # undef putc
-# define putc(c, fp) INTUSE(_IO_putc) (c, fp)
+# define putc(c, fp) _IO_putc (c, fp)
 
 # include <bits/libc-lock.h>
 
@@ -88,11 +91,26 @@ extern void __error_at_line (int status, int errnum, const char *file_name,
 # include <fcntl.h>
 # include <unistd.h>
 
-# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Get declarations of the native Windows API functions.  */
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+/* Get _get_osfhandle.  */
+#  include "msvc-nothrow.h"
+# endif
+
+/* The gnulib override of fcntl is not needed in this file.  */
+# undef fcntl
+
+# if !HAVE_DECL_STRERROR_R
 #  ifndef HAVE_DECL_STRERROR_R
 "this configure-time declaration test was not run"
 #  endif
+#  if STRERROR_R_CHAR_P
 char *strerror_r ();
+#  else
+int strerror_r ();
+#  endif
 # endif
 
 /* The calling program should define program_name and set it to the
@@ -104,10 +122,30 @@ extern char *program_name;
 # endif /* HAVE_STRERROR_R || defined strerror_r */
 #endif  /* not _LIBC */
 
-static inline void
+#if !_LIBC
+/* Return non-zero if FD is open.  */
+static int
+is_open (int fd)
+{
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+  /* On native Windows: The initial state of unassigned standard file
+     descriptors is that they are open but point to an INVALID_HANDLE_VALUE.
+     There is no fcntl, and the gnulib replacement fcntl does not support
+     F_GETFL.  */
+  return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE;
+# else
+#  ifndef F_GETFL
+#   error Please port fcntl to your platform
+#  endif
+  return 0 <= fcntl (fd, F_GETFL);
+# endif
+}
+#endif
+
+static void
 flush_stdout (void)
 {
-#if !_LIBC && defined F_GETFL
+#if !_LIBC
   int stdout_fd;
 
 # if GNULIB_FREOPEN_SAFER
@@ -124,7 +162,7 @@ flush_stdout (void)
   /* POSIX states that fflush (stdout) after fclose is unspecified; it
      is safe in glibc, but not on all other platforms.  fflush (NULL)
      is always defined, but too draconian.  */
-  if (0 <= stdout_fd && 0 <= fcntl (stdout_fd, F_GETFL))
+  if (0 <= stdout_fd && is_open (stdout_fd))
 #endif
     fflush (stdout);
 }
@@ -136,7 +174,7 @@ print_errno_message (int errnum)
 
 #if defined HAVE_STRERROR_R || _LIBC
   char errbuf[1024];
-# if STRERROR_R_CHAR_P || _LIBC
+# if _LIBC || STRERROR_R_CHAR_P
   s = __strerror_r (errnum, errbuf, sizeof errbuf);
 # else
   if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
@@ -160,13 +198,12 @@ print_errno_message (int errnum)
 #endif
 }
 
-static void
+static void _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))
 error_tail (int status, int errnum, const char *message, va_list args)
 {
 #if _LIBC
   if (_IO_fwide (stderr, 0) > 0)
     {
-# define ALLOCA_LIMIT 2000
       size_t len = strlen (message) + 1;
       wchar_t *wmessage = NULL;
       mbstate_t st;
@@ -202,7 +239,7 @@ error_tail (int status, int errnum, const char *message, va_list args)
           if (res != len)
             break;
 
-          if (__builtin_expect (len >= SIZE_MAX / 2, 0))
+          if (__builtin_expect (len >= SIZE_MAX / sizeof (wchar_t) / 2, 0))
             {
               /* This really should not happen if everything is fine.  */
               res = (size_t) -1;
@@ -307,7 +344,10 @@ error_at_line (int status, int errnum, const char *file_name,
 
       if (old_line_number == line_number
           && (file_name == old_file_name
-              || strcmp (old_file_name, file_name) == 0))
+              || (old_file_name != NULL
+                  && file_name != NULL
+                  && strcmp (old_file_name, file_name) == 0)))
+
         /* Simply return and print nothing.  */
         return;
 
index 9deef02..4aaafb3 100644 (file)
@@ -1,6 +1,6 @@
 /* Declaration for error-reporting function
-   Copyright (C) 1995, 1996, 1997, 2003, 2006, 2008, 2009, 2010 Free Software
-   Foundation, Inc.
+   Copyright (C) 1995-1997, 2003, 2006, 2008-2014 Free Software Foundation,
+   Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
 #ifndef _ERROR_H
 #define _ERROR_H 1
 
-#ifndef __attribute__
 /* The __attribute__ feature is available in gcc versions 2.5 and later.
    The __-protected variants of the attributes 'format' and 'printf' are
    accepted by gcc versions 2.6.4 (effectively 2.7) and later.
-   We enable __attribute__ only if these are supported too, because
+   We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because
    gnulib and libintl do '#define printf __printf__' when they override
    the 'printf' function.  */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
-#  define __attribute__(Spec)   /* empty */
-# endif
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+#else
+# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
 #endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/* Print a message with `fprintf (stderr, FORMAT, ...)';
+/* Print a message with 'fprintf (stderr, FORMAT, ...)';
    if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
-   If STATUS is nonzero, terminate the program with `exit (STATUS)'.  */
+   If STATUS is nonzero, terminate the program with 'exit (STATUS)'.  */
 
 extern void error (int __status, int __errnum, const char *__format, ...)
-     __attribute__ ((__format__ (__printf__, 3, 4)));
+     _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4));
 
 extern void error_at_line (int __status, int __errnum, const char *__fname,
                            unsigned int __lineno, const char *__format, ...)
-     __attribute__ ((__format__ (__printf__, 5, 6)));
+     _GL_ATTRIBUTE_FORMAT ((__printf__, 5, 6));
 
 /* If NULL, error will flush stdout, then print on stderr the program
    name, a colon and a space.  Otherwise, error will call this
    function without parameters instead.  */
 extern void (*error_print_progname) (void);
 
-/* This variable is incremented each time `error' is called.  */
+/* This variable is incremented each time 'error' is called.  */
 extern unsigned int error_message_count;
 
 /* Sometimes we want to have at most one error per line.  This
index 3b63f8a..609afc5 100644 (file)
@@ -1,7 +1,6 @@
 /* Failure exit status
 
-   Copyright (C) 2002, 2003, 2005, 2006, 2007, 2009, 2010 Free Software
-   Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2007, 2009-2014 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
index 7ffffe5..66807d5 100644 (file)
@@ -1,6 +1,6 @@
 /* Failure exit status
 
-   Copyright (C) 2002, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2009-2014 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
diff --git a/tests/fdopen.c b/tests/fdopen.c
new file mode 100644 (file)
index 0000000..eded1a6
--- /dev/null
@@ -0,0 +1,69 @@
+/* Open a stream with a given file descriptor.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <stdio.h>
+
+#include <errno.h>
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+# include "msvc-inval.h"
+#endif
+
+#undef fdopen
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static FILE *
+fdopen_nothrow (int fd, const char *mode)
+{
+  FILE *result;
+
+  TRY_MSVC_INVAL
+    {
+      result = fdopen (fd, mode);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = NULL;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#else
+# define fdopen_nothrow fdopen
+#endif
+
+FILE *
+rpl_fdopen (int fd, const char *mode)
+{
+  int saved_errno = errno;
+  FILE *fp;
+
+  errno = 0;
+  fp = fdopen_nothrow (fd, mode);
+  if (fp == NULL)
+    {
+      if (errno == 0)
+        errno = EBADF;
+    }
+  else
+    errno = saved_errno;
+
+  return fp;
+}
index cc25268..86e1271 100644 (file)
@@ -1,6 +1,6 @@
 /* getpagesize emulation for systems where it cannot be done in a C macro.
 
-   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
@@ -22,7 +22,7 @@
 /* Specification. */
 #include <unistd.h>
 
-/* This implementation is only for native Win32 systems.  */
+/* This implementation is only for native Windows systems.  */
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 
 # define WIN32_LEAN_AND_MEAN
index 881ae33..c7d6fd3 100644 (file)
@@ -1,5 +1,5 @@
 /* Convenience header for conditional use of GNU <libintl.h>.
-   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2010 Free Software
+   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2014 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -13,8 +13,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _LIBGETTEXT_H
 #define _LIBGETTEXT_H 1
@@ -54,7 +53,7 @@
    it now, to make later inclusions of <libintl.h> a NOP.  */
 #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
 # include <cstdlib>
-# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
+# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H
 #  include <libintl.h>
 # endif
 #endif
 
 #endif
 
+/* Prefer gnulib's setlocale override over libintl's setlocale override.  */
+#ifdef GNULIB_defined_setlocale
+# undef setlocale
+# define setlocale rpl_setlocale
+#endif
+
 /* A pseudo function call that serves as a marker for the automated
    extraction of messages, but does not call gettext().  The run-time
    translation is done at a different place in the code.
@@ -178,9 +183,12 @@ npgettext_aux (const char *domain,
 
 #include <string.h>
 
-#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
-  (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \
-   /* || __STDC_VERSION__ >= 199901L */ )
+#if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
+     /* || __STDC_VERSION__ >= 199901L */ )
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1
+#else
+# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0
+#endif
 
 #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
 #include <stdlib.h>
index 5237994..cec0b7c 100644 (file)
@@ -1,5 +1,5 @@
 /* Creating and controlling threads.
-   Copyright (C) 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 2005-2014 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
@@ -12,8 +12,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
    Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
@@ -22,6 +21,7 @@
 #include <config.h>
 
 /* Specification.  */
+# define _GLTHREAD_THREAD_INLINE _GL_EXTERN_INLINE
 #include "glthread/thread.h"
 
 #include <stdlib.h>
 
 /* ========================================================================= */
 
-#if USE_WIN32_THREADS
+#if USE_POSIX_THREADS
+
+#include <pthread.h>
+
+#ifdef PTW32_VERSION
+
+const gl_thread_t gl_null_thread /* = { .p = NULL } */;
+
+#endif
+
+#endif
+
+/* ========================================================================= */
+
+#if USE_WINDOWS_THREADS
 
 #include <process.h>
 
@@ -72,7 +86,7 @@ struct gl_thread_struct
 };
 
 /* Return a real HANDLE object for the current thread.  */
-static inline HANDLE
+static HANDLE
 get_current_thread_handle (void)
 {
   HANDLE this_handle;
index d35be0d..509db6b 100644 (file)
@@ -1,5 +1,5 @@
 /* Creating and controlling threads.
-   Copyright (C) 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 2005-2014 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
@@ -12,8 +12,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2005.
    Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
        current = gl_thread_self ();
        extern gl_thread_t gl_thread_self (void);
 
+   Getting a reference to the current thread as a pointer, for debugging:
+       ptr = gl_thread_self_pointer ();
+       extern void * gl_thread_self_pointer (void);
+
    Terminating the current thread:
        gl_thread_exit (return_value);
-       extern void gl_thread_exit (void *return_value) __attribute__ ((noreturn));
+       extern _Noreturn void gl_thread_exit (void *return_value);
 
    Requesting custom code to be executed at fork() time(not supported on all
    platforms):
 #include <errno.h>
 #include <stdlib.h>
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GLTHREAD_THREAD_INLINE
+# define _GLTHREAD_THREAD_INLINE _GL_INLINE
+#endif
+
 /* ========================================================================= */
 
 #if USE_POSIX_THREADS
@@ -112,7 +123,13 @@ extern int glthread_in_use (void);
    address of a function in libpthread that we don't use.  */
 
 #  pragma weak pthread_create
+
+#  ifdef __clang__
+  /* Without this, clang complains that pthread_sigmask is never declared.  */
+#   include <signal.h>
+#  endif
 #  pragma weak pthread_sigmask
+
 #  pragma weak pthread_join
 #  ifndef pthread_self
 #   pragma weak pthread_self
@@ -147,8 +164,20 @@ typedef pthread_t gl_thread_t;
     (pthread_in_use () ? pthread_sigmask (HOW, SET, OSET) : 0)
 # define glthread_join(THREAD, RETVALP) \
     (pthread_in_use () ? pthread_join (THREAD, RETVALP) : 0)
-# define gl_thread_self() \
-    (pthread_in_use () ? (void *) pthread_self () : NULL)
+# ifdef PTW32_VERSION
+   /* In pthreads-win32, pthread_t is a struct with a pointer field 'p' and
+      other fields.  */
+#  define gl_thread_self() \
+     (pthread_in_use () ? pthread_self () : gl_null_thread)
+#  define gl_thread_self_pointer() \
+     (pthread_in_use () ? pthread_self ().p : NULL)
+extern const gl_thread_t gl_null_thread;
+# else
+#  define gl_thread_self() \
+     (pthread_in_use () ? pthread_self () : (pthread_t) NULL)
+#  define gl_thread_self_pointer() \
+     (pthread_in_use () ? (void *) pthread_self () : NULL)
+# endif
 # define gl_thread_exit(RETVAL) \
     (pthread_in_use () ? pthread_exit (RETVAL) : 0)
 
@@ -205,7 +234,9 @@ typedef pth_t gl_thread_t;
 # define glthread_join(THREAD, RETVALP) \
     (pth_in_use () && !pth_join (THREAD, RETVALP) ? errno : 0)
 # define gl_thread_self() \
-    (pth_in_use () ? (void *) pth_self () : 0)
+    (pth_in_use () ? (void *) pth_self () : NULL)
+# define gl_thread_self_pointer() \
+    gl_thread_self ()
 # define gl_thread_exit(RETVAL) \
     (pth_in_use () ? pth_exit (RETVAL) : 0)
 # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0
@@ -257,7 +288,9 @@ typedef thread_t gl_thread_t;
 # define glthread_join(THREAD, RETVALP) \
     (thread_in_use () ? thr_join (THREAD, NULL, RETVALP) : 0)
 # define gl_thread_self() \
-    (thread_in_use () ? (void *) thr_self () : 0)
+    (thread_in_use () ? (void *) thr_self () : NULL)
+# define gl_thread_self_pointer() \
+    gl_thread_self ()
 # define gl_thread_exit(RETVAL) \
     (thread_in_use () ? thr_exit (RETVAL) : 0)
 # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0
@@ -270,8 +303,9 @@ typedef thread_t gl_thread_t;
 
 /* ========================================================================= */
 
-#if USE_WIN32_THREADS
+#if USE_WINDOWS_THREADS
 
+# define WIN32_LEAN_AND_MEAN  /* avoid including junk */
 # include <windows.h>
 
 # ifdef __cplusplus
@@ -298,6 +332,8 @@ typedef struct gl_thread_struct *gl_thread_t;
     glthread_join_func (THREAD, RETVALP)
 # define gl_thread_self() \
     gl_thread_self_func ()
+# define gl_thread_self_pointer() \
+    gl_thread_self ()
 # define gl_thread_exit(RETVAL) \
     gl_thread_exit_func (RETVAL)
 # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0
@@ -314,7 +350,7 @@ extern int gl_thread_exit_func (void *retval);
 
 /* ========================================================================= */
 
-#if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WIN32_THREADS)
+#if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS)
 
 /* Provide dummy implementation if threads are not supported.  */
 
@@ -322,7 +358,9 @@ typedef int gl_thread_t;
 # define glthread_create(THREADP, FUNC, ARG) ENOSYS
 # define glthread_sigmask(HOW, SET, OSET) 0
 # define glthread_join(THREAD, RETVALP) 0
-# define gl_thread_self() NULL
+# define gl_thread_self() 0
+# define gl_thread_self_pointer() \
+    ((void *) gl_thread_self ())
 # define gl_thread_exit(RETVAL) 0
 # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0
 
@@ -336,7 +374,7 @@ typedef int gl_thread_t;
 extern "C" {
 #endif
 
-static inline gl_thread_t
+_GLTHREAD_THREAD_INLINE gl_thread_t
 gl_thread_create (void *(*func) (void *arg), void *arg)
 {
   gl_thread_t thread;
@@ -373,4 +411,6 @@ gl_thread_create (void *(*func) (void *arg), void *arg)
 }
 #endif
 
+_GL_INLINE_HEADER_END
+
 #endif /* _GLTHREAD_THREAD_H */
index df61ac4..b929224 100644 (file)
@@ -1,5 +1,5 @@
 /* Yielding the processor to other threads and processes.
-   Copyright (C) 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 2005-2014 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
@@ -12,8 +12,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* This file contains a primitive for yielding the processor to other threads.
      extern void gl_thread_yield (void);
@@ -89,8 +88,9 @@ extern "C" {
 
 /* ========================================================================= */
 
-#if USE_WIN32_THREADS
+#if USE_WINDOWS_THREADS
 
+# define WIN32_LEAN_AND_MEAN  /* avoid including junk */
 # include <windows.h>
 
 # ifdef __cplusplus
@@ -108,7 +108,7 @@ extern "C" {
 
 /* ========================================================================= */
 
-#if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WIN32_THREADS)
+#if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS)
 
 /* Provide dummy implementation if threads are not supported.  */
 
diff --git a/tests/infinity.h b/tests/infinity.h
new file mode 100644 (file)
index 0000000..ec9dba4
--- /dev/null
@@ -0,0 +1,60 @@
+/* Macros for infinity.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+
+/* Infinityf () returns a 'float' +Infinity.  */
+
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f.  */
+#if defined _MSC_VER
+static float
+Infinityf ()
+{
+  static float zero = 0.0f;
+  return 1.0f / zero;
+}
+#else
+# define Infinityf() (1.0f / 0.0f)
+#endif
+
+
+/* Infinityd () returns a 'double' +Infinity.  */
+
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0.  */
+#if defined _MSC_VER
+static double
+Infinityd ()
+{
+  static double zero = 0.0;
+  return 1.0 / zero;
+}
+#else
+# define Infinityd() (1.0 / 0.0)
+#endif
+
+
+/* Infinityl () returns a 'long double' +Infinity.  */
+
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L.  */
+#if defined _MSC_VER
+static double
+Infinityl ()
+{
+  static long double zero = 0.0L;
+  return 1.0L / zero;
+}
+#else
+# define Infinityl() (1.0L / 0.0L)
+#endif
index 512e876..fbd293d 100644 (file)
@@ -1,6 +1,6 @@
 # source this file; set up for tests
 
-# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2009-2014 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # The typical skeleton of a test looks like this:
 #
 #   #!/bin/sh
-#   : ${srcdir=.}
-#   . "$srcdir/init.sh"; path_prepend_ .
+#   . "${srcdir=.}/init.sh"; path_prepend_ .
 #   Execute some commands.
 #   Note that these commands are executed in a subdirectory, therefore you
 #   need to prepend "../" to relative filenames in the build directory.
+#   Note that the "path_prepend_ ." is useful only if the body of your
+#   test invokes programs residing in the initial directory.
+#   For example, if the programs you want to test are in src/, and this test
+#   script is named tests/test-1, then you would use "path_prepend_ ../src",
+#   or perhaps export PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH"
+#   to all tests via automake's TESTS_ENVIRONMENT.
 #   Set the exit code 0 for success, 77 for skipped, or 1 or other for failure.
 #   Use the skip_ and fail_ functions to print a diagnostic and then exit
 #   with the corresponding exit code.
 #   4. Finally
 #   $ exit
 
+ME_=`expr "./$0" : '.*/\(.*\)$'`
+
+# We use a trap below for cleanup.  This requires us to go through
+# hoops to get the right exit status transported through the handler.
+# So use 'Exit STATUS' instead of 'exit STATUS' inside of the tests.
+# Turn off errexit here so that we don't trip the bug with OSF1/Tru64
+# sh inside this function.
+Exit () { set +e; (exit $1); exit $1; }
+
+# Print warnings (e.g., about skipped and failed tests) to this file number.
+# Override by defining to say, 9, in init.cfg, and putting say,
+#   export ...ENVVAR_SETTINGS...; $(SHELL) 9>&2
+# in the definition of TESTS_ENVIRONMENT in your tests/Makefile.am file.
+# This is useful when using automake's parallel tests mode, to print
+# the reason for skip/failure to console, rather than to the .log files.
+: ${stderr_fileno_=2}
+
+# Note that correct expansion of "$*" depends on IFS starting with ' '.
+# Always write the full diagnostic to stderr.
+# When stderr_fileno_ is not 2, also emit the first line of the
+# diagnostic to that file descriptor.
+warn_ ()
+{
+  # If IFS does not start with ' ', set it and emit the warning in a subshell.
+  case $IFS in
+    ' '*) printf '%s\n' "$*" >&2
+          test $stderr_fileno_ = 2 \
+            || { printf '%s\n' "$*" | sed 1q >&$stderr_fileno_ ; } ;;
+    *) (IFS=' '; warn_ "$@");;
+  esac
+}
+fail_ () { warn_ "$ME_: failed test: $@"; Exit 1; }
+skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; }
+fatal_ () { warn_ "$ME_: hard error: $@"; Exit 99; }
+framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; }
+
+# Sanitize this shell to POSIX mode, if possible.
+DUALCASE=1; export DUALCASE
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+    *posix*) set -o posix ;;
+  esac
+fi
+
 # We require $(...) support unconditionally.
 # We require a few additional shell features only when $EXEEXT is nonempty,
 # in order to support automatic $EXEEXT emulation:
 # - hyphen-containing alias names
 # - we prefer to use ${var#...} substitution, rather than having
 #   to work around lack of support for that feature.
-# The following code attempts to find a shell with support for these features
-# and re-exec's it.  If not, it skips the current test.
+# The following code attempts to find a shell with support for these features.
+# If the current shell passes the test, we're done.  Otherwise, test other
+# shells until we find one that passes.  If one is found, re-exec it.
+# If no acceptable shell is found, skip the current test.
+#
+# The "...set -x; P=1 true 2>err..." test is to disqualify any shell that
+# emits "P=1" into err, as /bin/sh from SunOS 5.11 and OpenBSD 4.7 do.
+#
+# Use "9" to indicate success (rather than 0), in case some shell acts
+# like Solaris 10's /bin/sh but exits successfully instead of with status 2.
 
+# Eval this code in a subshell to determine a shell's suitability.
+# 10 - passes all tests; ok to use
+#  9 - ok, but enabling "set -x" corrupts app stderr; prefer higher score
+#  ? - not ok
 gl_shell_test_script_='
 test $(echo y) = y || exit 1
-test -z "$EXEEXT" && exit 0
+score_=10
+if test "$VERBOSE" = yes; then
+  test -n "$( (exec 3>&1; set -x; P=1 true 2>&3) 2> /dev/null)" && score_=9
+fi
+test -z "$EXEEXT" && exit $score_
 shopt -s expand_aliases
 alias a-b="echo zoo"
 v=abx
      test ${v%x} = ab \
   && test ${v#a} = bx \
-  && test $(a-b) = zoo
+  && test $(a-b) = zoo \
+  && exit $score_
 '
 
 if test "x$1" = "x--no-reexec"; then
   shift
 else
-  for re_shell_ in "${CONFIG_SHELL:-no_shell}" /bin/sh bash dash zsh pdksh fail
+  # Assume a working shell.  Export to subshells (setup_ needs this).
+  gl_set_x_corrupts_stderr_=false
+  export gl_set_x_corrupts_stderr_
+
+  # Record the first marginally acceptable shell.
+  marginal_=
+
+  # Search for a shell that meets our requirements.
+  for re_shell_ in __current__ "${CONFIG_SHELL:-no_shell}" \
+      /bin/sh bash dash zsh pdksh fail
   do
     test "$re_shell_" = no_shell && continue
-    test "$re_shell_" = fail && skip_ failed to find an adequate shell
-    if "$re_shell_" -c "$gl_shell_test_script_" 2>/dev/null; then
-      exec "$re_shell_" "$0" --no-reexec "$@"
-      echo "$ME_: exec failed" 1>&2
-      exit 127
+
+    # If we've made it all the way to the sentinel, "fail" without
+    # finding even a marginal shell, skip this test.
+    if test "$re_shell_" = fail; then
+      test -z "$marginal_" && skip_ failed to find an adequate shell
+      re_shell_=$marginal_
+      break
+    fi
+
+    # When testing the current shell, simply "eval" the test code.
+    # Otherwise, run it via $re_shell_ -c ...
+    if test "$re_shell_" = __current__; then
+      # 'eval'ing this code makes Solaris 10's /bin/sh exit with
+      # $? set to 2.  It does not evaluate any of the code after the
+      # "unexpected" first '('.  Thus, we must run it in a subshell.
+      ( eval "$gl_shell_test_script_" ) > /dev/null 2>&1
+    else
+      "$re_shell_" -c "$gl_shell_test_script_" 2>/dev/null
+    fi
+
+    st_=$?
+
+    # $re_shell_ works just fine.  Use it.
+    if test $st_ = 10; then
+      gl_set_x_corrupts_stderr_=false
+      break
+    fi
+
+    # If this is our first marginally acceptable shell, remember it.
+    if test "$st_:$marginal_" = 9: ; then
+      marginal_="$re_shell_"
+      gl_set_x_corrupts_stderr_=true
     fi
   done
+
+  if test "$re_shell_" != __current__; then
+    # Found a usable shell.  Preserve -v and -x.
+    case $- in
+      *v*x* | *x*v*) opts_=-vx ;;
+      *v*) opts_=-v ;;
+      *x*) opts_=-x ;;
+      *) opts_= ;;
+    esac
+    re_shell=$re_shell_
+    export re_shell
+    exec "$re_shell_" $opts_ "$0" --no-reexec "$@"
+    echo "$ME_: exec failed" 1>&2
+    exit 127
+  fi
 fi
 
-test -n "$EXEEXT" && shopt -s expand_aliases
+# If this is bash, turn off all aliases.
+test -n "$BASH_VERSION" && unalias -a
 
-# We use a trap below for cleanup.  This requires us to go through
-# hoops to get the right exit status transported through the handler.
-# So use `Exit STATUS' instead of `exit STATUS' inside of the tests.
-# Turn off errexit here so that we don't trip the bug with OSF1/Tru64
-# sh inside this function.
-Exit () { set +e; (exit $1); exit $1; }
-
-# Print warnings (e.g., about skipped and failed tests) to this file number.
-# Override by defining to say, 9, in init.cfg, and putting say,
-# "export ...ENVVAR_SETTINGS...; exec 9>&2; $(SHELL)" in the definition
-# of TESTS_ENVIRONMENT in your tests/Makefile.am file.
-# This is useful when using automake's parallel tests mode, to print
-# the reason for skip/failure to console, rather than to the .log files.
-: ${stderr_fileno_=2}
+# Note that when supporting $EXEEXT (transparently mapping from PROG_NAME to
+# PROG_NAME.exe), we want to support hyphen-containing names like test-acos.
+# That is part of the shell-selection test above.  Why use aliases rather
+# than functions?  Because support for hyphen-containing aliases is more
+# widespread than that for hyphen-containing function names.
+test -n "$EXEEXT" && shopt -s expand_aliases
 
-warn_() { echo "$@" 1>&$stderr_fileno_; }
-fail_() { warn_ "$ME_: failed test: $@"; Exit 1; }
-skip_() { warn_ "$ME_: skipped test: $@"; Exit 77; }
-framework_failure_() { warn_ "$ME_: set-up failure: $@"; Exit 1; }
+# Enable glibc's malloc-perturbing option.
+# This is useful for exposing code that depends on the fact that
+# malloc-related functions often return memory that is mostly zeroed.
+# If you have the time and cycles, use valgrind to do an even better job.
+: ${MALLOC_PERTURB_=87}
+export MALLOC_PERTURB_
 
 # This is a stub function that is run upon trap (upon regular exit and
 # interrupt).  Override it with a per-test function, e.g., to unmount
 # a partition, or to undo any other global state changes.
-cleanup_() { :; }
+cleanup_ () { :; }
 
-if ( diff --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then
-  compare() { diff -u "$@"; }
-elif ( cmp --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then
-  compare() { cmp -s "$@"; }
+# Emit a header similar to that from diff -u;  Print the simulated "diff"
+# command so that the order of arguments is clear.  Don't bother with @@ lines.
+emit_diff_u_header_ ()
+{
+  printf '%s\n' "diff -u $*" \
+    "--- $1    1970-01-01" \
+    "+++ $2    1970-01-01"
+}
+
+# Arrange not to let diff or cmp operate on /dev/null,
+# since on some systems (at least OSF/1 5.1), that doesn't work.
+# When there are not two arguments, or no argument is /dev/null, return 2.
+# When one argument is /dev/null and the other is not empty,
+# cat the nonempty file to stderr and return 1.
+# Otherwise, return 0.
+compare_dev_null_ ()
+{
+  test $# = 2 || return 2
+
+  if test "x$1" = x/dev/null; then
+    test -s "$2" || return 0
+    emit_diff_u_header_ "$@"; sed 's/^/+/' "$2"
+    return 1
+  fi
+
+  if test "x$2" = x/dev/null; then
+    test -s "$1" || return 0
+    emit_diff_u_header_ "$@"; sed 's/^/-/' "$1"
+    return 1
+  fi
+
+  return 2
+}
+
+if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \
+   && diff -u Makefile "$0" 2>/dev/null | grep '^[+]#!' >/dev/null; then
+  # diff accepts the -u option and does not (like AIX 7 'diff') produce an
+  # extra space on column 1 of every content line.
+  if test -z "$diff_out_"; then
+    compare_ () { diff -u "$@"; }
+  else
+    compare_ ()
+    {
+      if diff -u "$@" > diff.out; then
+        # No differences were found, but Solaris 'diff' produces output
+        # "No differences encountered". Hide this output.
+        rm -f diff.out
+        true
+      else
+        cat diff.out
+        rm -f diff.out
+        false
+      fi
+    }
+  fi
+elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then
+  if test -z "$diff_out_"; then
+    compare_ () { diff -c "$@"; }
+  else
+    compare_ ()
+    {
+      if diff -c "$@" > diff.out; then
+        # No differences were found, but AIX and HP-UX 'diff' produce output
+        # "No differences encountered" or "There are no differences between the
+        # files.". Hide this output.
+        rm -f diff.out
+        true
+      else
+        cat diff.out
+        rm -f diff.out
+        false
+      fi
+    }
+  fi
+elif ( cmp --version < /dev/null 2>&1 | grep GNU ) > /dev/null 2>&1; then
+  compare_ () { cmp -s "$@"; }
 else
-  compare() { cmp "$@"; }
+  compare() { cmp "$@"; }
 fi
 
+# Usage: compare EXPECTED ACTUAL
+#
+# Given compare_dev_null_'s preprocessing, defer to compare_ if 2 or more.
+# Otherwise, propagate $? to caller: any diffs have already been printed.
+compare ()
+{
+  # This looks like it can be factored to use a simple "case $?"
+  # after unchecked compare_dev_null_ invocation, but that would
+  # fail in a "set -e" environment.
+  if compare_dev_null_ "$@"; then
+    return 0
+  else
+    case $? in
+      1) return 1;;
+      *) compare_ "$@";;
+    esac
+  fi
+}
+
 # An arbitrary prefix to help distinguish test directories.
-testdir_prefix_() { printf gt; }
+testdir_prefix_ () { printf gt; }
 
 # Run the user-overridable cleanup_ function, remove the temporary
 # directory and exit with the incoming value of $?.
-remove_tmp_()
+remove_tmp_ ()
 {
   __st=$?
   cleanup_
@@ -143,13 +351,21 @@ remove_tmp_()
 # contains only the specified bytes (see the case stmt below), then print
 # a space-separated list of those names and return 0.  Otherwise, don't
 # print anything and return 1.  Naming constraints apply also to DIR.
-find_exe_basenames_()
+find_exe_basenames_ ()
 {
   feb_dir_=$1
   feb_fail_=0
   feb_result_=
   feb_sp_=
   for feb_file_ in $feb_dir_/*.exe; do
+    # If there was no *.exe file, or there existed a file named "*.exe" that
+    # was deleted between the above glob expansion and the existence test
+    # below, just skip it.
+    test "x$feb_file_" = "x$feb_dir_/*.exe" && test ! -f "$feb_file_" \
+      && continue
+    # Exempt [.exe, since we can't create a function by that name, yet
+    # we can't invoke [ by PATH search anyways due to shell builtins.
+    test "x$feb_file_" = "x$feb_dir_/[.exe" && continue
     case $feb_file_ in
       *[!-a-zA-Z/0-9_.+]*) feb_fail_=1; break;;
       *) # Remove leading file name components as well as the .exe suffix.
@@ -167,8 +383,8 @@ find_exe_basenames_()
 # For each file name of the form PROG.exe, create an alias named
 # PROG that simply invokes PROG.exe, then return 0.  If any selected
 # file name or the directory name, $1, contains an unexpected character,
-# define no function and return 1.
-create_exe_shims_()
+# define no alias and return 1.
+create_exe_shims_ ()
 {
   case $EXEEXT in
     '') return 0 ;;
@@ -177,7 +393,7 @@ create_exe_shims_()
   esac
 
   base_names_=`find_exe_basenames_ $1` \
-    || { echo "$0 (exe_shim): skipping directory: $1" 1>&2; return 1; }
+    || { echo "$0 (exe_shim): skipping directory: $1" 1>&2; return 0; }
 
   if test -n "$base_names_"; then
     for base_ in $base_names_; do
@@ -190,15 +406,14 @@ create_exe_shims_()
 
 # Use this function to prepend to PATH an absolute name for each
 # specified, possibly-$initial_cwd_-relative, directory.
-path_prepend_()
+path_prepend_ ()
 {
   while test $# != 0; do
     path_dir_=$1
     case $path_dir_ in
       '') fail_ "invalid path dir: '$1'";;
       /*) abs_path_dir_=$path_dir_;;
-      *) abs_path_dir_=`cd "$initial_cwd_/$path_dir_" && echo "$PWD"` \
-           || fail_ "invalid path dir: $path_dir_";;
+      *) abs_path_dir_=$initial_cwd_/$path_dir_;;
     esac
     case $abs_path_dir_ in
       *:*) fail_ "invalid path dir: '$abs_path_dir_'";;
@@ -213,21 +428,38 @@ path_prepend_()
   export PATH
 }
 
-setup_()
+setup_ ()
 {
-  test "$VERBOSE" = yes && set -x
+  if test "$VERBOSE" = yes; then
+    # Test whether set -x may cause the selected shell to corrupt an
+    # application's stderr.  Many do, including zsh-4.3.10 and the /bin/sh
+    # from SunOS 5.11, OpenBSD 4.7 and Irix 5.x and 6.5.
+    # If enabling verbose output this way would cause trouble, simply
+    # issue a warning and refrain.
+    if $gl_set_x_corrupts_stderr_; then
+      warn_ "using SHELL=$SHELL with 'set -x' corrupts stderr"
+    else
+      set -x
+    fi
+  fi
 
   initial_cwd_=$PWD
-  ME_=`expr "./$0" : '.*/\(.*\)$'`
+  fail=0
 
   pfx_=`testdir_prefix_`
   test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \
     || fail_ "failed to create temporary directory in $initial_cwd_"
-  cd "$test_dir_"
+  cd "$test_dir_" || fail_ "failed to cd to temporary directory"
 
-  # These trap statements ensure that the temporary directory, $test_dir_,
-  # is removed upon exit as well as upon receipt of any of the listed signals.
-  trap remove_tmp_ 0
+  # As autoconf-generated configure scripts do, ensure that IFS
+  # is defined initially, so that saving and restoring $IFS works.
+  gl_init_sh_nl_='
+'
+  IFS=" ""     $gl_init_sh_nl_"
+
+  # This trap statement, along with a trap on 0 below, ensure that the
+  # temporary directory, $test_dir_, is removed upon exit as well as
+  # upon receipt of any of the listed signals.
   for sig_ in 1 2 3 13 15; do
     eval "trap 'Exit $(expr $sig_ + 128)' $sig_"
   done
@@ -249,7 +481,7 @@ setup_()
 #  - make only $MAX_TRIES_ attempts
 
 # Helper function.  Print $N pseudo-random bytes from a-zA-Z0-9.
-rand_bytes_()
+rand_bytes_ ()
 {
   n_=$1
 
@@ -281,11 +513,11 @@ rand_bytes_()
     | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_
 }
 
-mktempd_()
+mktempd_ ()
 {
   case $# in
   2);;
-  *) fail_ "Usage: $ME DIR TEMPLATE";;
+  *) fail_ "Usage: mktempd_ DIR TEMPLATE";;
   esac
 
   destdir_=$1
@@ -302,13 +534,12 @@ mktempd_()
 
   case $template_ in
   *XXXX) ;;
-  *) fail_ "invalid template: $template_ (must have a suffix of at least 4 X's)";;
+  *) fail_ \
+       "invalid template: $template_ (must have a suffix of at least 4 X's)";;
   esac
 
-  fail=0
-
   # First, try to use mktemp.
-  d=`unset TMPDIR; mktemp -d -t -p "$destdir_" "$template_" 2>/dev/null` \
+  d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` \
     || fail=1
 
   # The resulting name must be in the specified directory.
@@ -355,3 +586,6 @@ test -f "$srcdir/init.cfg" \
   && . "$srcdir/init.cfg"
 
 setup_ "$@"
+# This trap is here, rather than in the setup_ function, because some
+# shells run the exit trap at shell function exit, rather than script exit.
+trap remove_tmp_ 0
index 46f4d47..d0bb7a6 100644 (file)
@@ -1,7 +1,6 @@
 /* intprops.h -- properties of integer types
 
-   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009, 2010 Free Software
-   Foundation, Inc.
+   Copyright (C) 2001-2005, 2009-2014 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
 
 /* Written by Paul Eggert.  */
 
-#ifndef GL_INTPROPS_H
-# define GL_INTPROPS_H
+#ifndef _GL_INTPROPS_H
+#define _GL_INTPROPS_H
 
-# include <limits.h>
+#include <limits.h>
+
+/* Return an integer value, converted to the same type as the integer
+   expression E after integer type promotion.  V is the unconverted value.  */
+#define _GL_INT_CONVERT(e, v) (0 * (e) + (v))
+
+/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
+   <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>.  */
+#define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v))
 
 /* The extra casts in the following macros work around compiler bugs,
    e.g., in Cray C 5.0.3.0.  */
 
 /* True if the arithmetic type T is an integer type.  bool counts as
    an integer.  */
-# define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
+#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
 
 /* True if negative values of the signed integer type T use two's
    complement, ones' complement, or signed magnitude representation,
    respectively.  Much GNU code assumes two's complement, but some
    people like to be portable to all possible C hosts.  */
-# define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
-# define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0)
-# define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1)
+#define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
+#define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0)
+#define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1)
+
+/* True if the signed integer expression E uses two's complement.  */
+#define _GL_INT_TWOS_COMPLEMENT(e) (~ _GL_INT_CONVERT (e, 0) == -1)
 
 /* True if the arithmetic type T is signed.  */
-# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
 
-/* The maximum and minimum values for the integer type T.  These
+/* Return 1 if the integer expression E, after integer promotion, has
+   a signed type.  */
+#define _GL_INT_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
+
+
+/* Minimum and maximum values for integer types and expressions.  These
    macros have undefined behavior if T is signed and has padding bits.
    If this is a problem for you, please let us know how to fix it for
    your host.  */
-# define TYPE_MINIMUM(t) \
-  ((t) (! TYPE_SIGNED (t) \
-        ? (t) 0 \
-        : TYPE_SIGNED_MAGNITUDE (t) \
-        ? ~ (t) 0 \
-        : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
-# define TYPE_MAXIMUM(t) \
-  ((t) (! TYPE_SIGNED (t) \
-        ? (t) -1 \
-        : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
-
-/* Return zero if T can be determined to be an unsigned type.
-   Otherwise, return 1.
-   When compiling with GCC, INT_STRLEN_BOUND uses this macro to obtain a
-   tighter bound.  Otherwise, it overestimates the true bound by one byte
-   when applied to unsigned types of size 2, 4, 16, ... bytes.
-   The symbol signed_type_or_expr__ is private to this header file.  */
-# if __GNUC__ >= 2
-#  define signed_type_or_expr__(t) TYPE_SIGNED (__typeof__ (t))
-# else
-#  define signed_type_or_expr__(t) 1
-# endif
+
+/* The maximum and minimum values for the integer type T.  */
+#define TYPE_MINIMUM(t)                                                 \
+  ((t) (! TYPE_SIGNED (t)                                               \
+        ? (t) 0                                                         \
+        : TYPE_SIGNED_MAGNITUDE (t)                                     \
+        ? ~ (t) 0                                                       \
+        : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t)                                                 \
+  ((t) (! TYPE_SIGNED (t)                                               \
+        ? (t) -1                                                        \
+        : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+
+/* The maximum and minimum values for the type of the expression E,
+   after integer promotion.  E should not have side effects.  */
+#define _GL_INT_MINIMUM(e)                                              \
+  (_GL_INT_SIGNED (e)                                                   \
+   ? - _GL_INT_TWOS_COMPLEMENT (e) - _GL_SIGNED_INT_MAXIMUM (e)         \
+   : _GL_INT_CONVERT (e, 0))
+#define _GL_INT_MAXIMUM(e)                                              \
+  (_GL_INT_SIGNED (e)                                                   \
+   ? _GL_SIGNED_INT_MAXIMUM (e)                                         \
+   : _GL_INT_NEGATE_CONVERT (e, 1))
+#define _GL_SIGNED_INT_MAXIMUM(e)                                       \
+  (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1)
+
+
+/* Return 1 if the __typeof__ keyword works.  This could be done by
+   'configure', but for now it's easier to do it by hand.  */
+#if (2 <= __GNUC__ || defined __IBM__TYPEOF__ \
+     || (0x5110 <= __SUNPRO_C && !__STDC__))
+# define _GL_HAVE___TYPEOF__ 1
+#else
+# define _GL_HAVE___TYPEOF__ 0
+#endif
+
+/* Return 1 if the integer type or expression T might be signed.  Return 0
+   if it is definitely unsigned.  This macro does not evaluate its argument,
+   and expands to an integer constant expression.  */
+#if _GL_HAVE___TYPEOF__
+# define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t))
+#else
+# define _GL_SIGNED_TYPE_OR_EXPR(t) 1
+#endif
+
+/* Bound on length of the string representing an unsigned integer
+   value representable in B bits.  log10 (2.0) < 146/485.  The
+   smallest value of B where this bound is not tight is 2621.  */
+#define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485)
 
 /* Bound on length of the string representing an integer type or expression T.
-   Subtract 1 for the sign bit if T is signed; log10 (2.0) < 146/485;
-   add 1 for integer division truncation; add 1 more for a minus sign
-   if needed.  */
-# define INT_STRLEN_BOUND(t) \
-  ((sizeof (t) * CHAR_BIT - signed_type_or_expr__ (t)) * 146 / 485 \
-   + signed_type_or_expr__ (t) + 1)
+   Subtract 1 for the sign bit if T is signed, and then add 1 more for
+   a minus sign if needed.
+
+   Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is
+   signed, this macro may overestimate the true bound by one byte when
+   applied to unsigned types of size 2, 4, 16, ... bytes.  */
+#define INT_STRLEN_BOUND(t)                                     \
+  (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT                 \
+                          - _GL_SIGNED_TYPE_OR_EXPR (t))        \
+   + _GL_SIGNED_TYPE_OR_EXPR (t))
 
 /* Bound on buffer size needed to represent an integer type or expression T,
    including the terminating null.  */
-# define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
+#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
+
+
+/* Range overflow checks.
+
+   The INT_<op>_RANGE_OVERFLOW macros return 1 if the corresponding C
+   operators might not yield numerically correct answers due to
+   arithmetic overflow.  They do not rely on undefined or
+   implementation-defined behavior.  Their implementations are simple
+   and straightforward, but they are a bit harder to use than the
+   INT_<op>_OVERFLOW macros described below.
+
+   Example usage:
+
+     long int i = ...;
+     long int j = ...;
+     if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX))
+       printf ("multiply would overflow");
+     else
+       printf ("product is %ld", i * j);
+
+   Restrictions on *_RANGE_OVERFLOW macros:
+
+   These macros do not check for all possible numerical problems or
+   undefined or unspecified behavior: they do not check for division
+   by zero, for bad shift counts, or for shifting negative numbers.
+
+   These macros may evaluate their arguments zero or multiple times,
+   so the arguments should not have side effects.  The arithmetic
+   arguments (including the MIN and MAX arguments) must be of the same
+   integer type after the usual arithmetic conversions, and the type
+   must have minimum value MIN and maximum MAX.  Unsigned types should
+   use a zero MIN of the proper type.
+
+   These macros are tuned for constant MIN and MAX.  For commutative
+   operations such as A + B, they are also tuned for constant B.  */
+
+/* Return 1 if A + B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  */
+#define INT_ADD_RANGE_OVERFLOW(a, b, min, max)          \
+  ((b) < 0                                              \
+   ? (a) < (min) - (b)                                  \
+   : (max) - (b) < (a))
+
+/* Return 1 if A - B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  */
+#define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max)     \
+  ((b) < 0                                              \
+   ? (max) + (b) < (a)                                  \
+   : (a) < (min) + (b))
+
+/* Return 1 if - A would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  */
+#define INT_NEGATE_RANGE_OVERFLOW(a, min, max)          \
+  ((min) < 0                                            \
+   ? (a) < - (max)                                      \
+   : 0 < (a))
+
+/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Avoid && and || as they tickle
+   bugs in Sun C 5.11 2010/08/13 and other compilers; see
+   <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.  */
+#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max)     \
+  ((b) < 0                                              \
+   ? ((a) < 0                                           \
+      ? (a) < (max) / (b)                               \
+      : (b) == -1                                       \
+      ? 0                                               \
+      : (min) / (b) < (a))                              \
+   : (b) == 0                                           \
+   ? 0                                                  \
+   : ((a) < 0                                           \
+      ? (a) < (min) / (b)                               \
+      : (max) / (b) < (a)))
+
+/* Return 1 if A / B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Do not check for division by zero.  */
+#define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max)       \
+  ((min) < 0 && (b) == -1 && (a) < - (max))
+
+/* Return 1 if A % B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Do not check for division by zero.
+   Mathematically, % should never overflow, but on x86-like hosts
+   INT_MIN % -1 traps, and the C standard permits this, so treat this
+   as an overflow too.  */
+#define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max)    \
+  INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max)
+
+/* Return 1 if A << B would overflow in [MIN,MAX] arithmetic.
+   See above for restrictions.  Here, MIN and MAX are for A only, and B need
+   not be of the same type as the other arguments.  The C standard says that
+   behavior is undefined for shifts unless 0 <= B < wordwidth, and that when
+   A is negative then A << B has undefined behavior and A >> B has
+   implementation-defined behavior, but do not check these other
+   restrictions.  */
+#define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max)   \
+  ((a) < 0                                              \
+   ? (a) < (min) >> (b)                                 \
+   : (max) >> (b) < (a))
+
+
+/* The _GL*_OVERFLOW macros have the same restrictions as the
+   *_RANGE_OVERFLOW macros, except that they do not assume that operands
+   (e.g., A and B) have the same type as MIN and MAX.  Instead, they assume
+   that the result (e.g., A + B) has that type.  */
+#define _GL_ADD_OVERFLOW(a, b, min, max)                                \
+  ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max)                  \
+   : (a) < 0 ? (b) <= (a) + (b)                                         \
+   : (b) < 0 ? (a) <= (a) + (b)                                         \
+   : (a) + (b) < (b))
+#define _GL_SUBTRACT_OVERFLOW(a, b, min, max)                           \
+  ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max)             \
+   : (a) < 0 ? 1                                                        \
+   : (b) < 0 ? (a) - (b) <= (a)                                         \
+   : (a) < (b))
+#define _GL_MULTIPLY_OVERFLOW(a, b, min, max)                           \
+  (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a))))       \
+   || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max))
+#define _GL_DIVIDE_OVERFLOW(a, b, min, max)                             \
+  ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max)  \
+   : (a) < 0 ? (b) <= (a) + (b) - 1                                     \
+   : (b) < 0 && (a) + (b) <= (a))
+#define _GL_REMAINDER_OVERFLOW(a, b, min, max)                          \
+  ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max)  \
+   : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b)                     \
+   : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max))
+
+/* Return a nonzero value if A is a mathematical multiple of B, where
+   A is unsigned, B is negative, and MAX is the maximum value of A's
+   type.  A's type must be the same as (A % B)'s type.  Normally (A %
+   -B == 0) suffices, but things get tricky if -B would overflow.  */
+#define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max)                            \
+  (((b) < -_GL_SIGNED_INT_MAXIMUM (b)                                   \
+    ? (_GL_SIGNED_INT_MAXIMUM (b) == (max)                              \
+       ? (a)                                                            \
+       : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1))   \
+    : (a) % - (b))                                                      \
+   == 0)
+
+
+/* Integer overflow checks.
+
+   The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators
+   might not yield numerically correct answers due to arithmetic overflow.
+   They work correctly on all known practical hosts, and do not rely
+   on undefined behavior due to signed arithmetic overflow.
+
+   Example usage:
+
+     long int i = ...;
+     long int j = ...;
+     if (INT_MULTIPLY_OVERFLOW (i, j))
+       printf ("multiply would overflow");
+     else
+       printf ("product is %ld", i * j);
+
+   These macros do not check for all possible numerical problems or
+   undefined or unspecified behavior: they do not check for division
+   by zero, for bad shift counts, or for shifting negative numbers.
+
+   These macros may evaluate their arguments zero or multiple times, so the
+   arguments should not have side effects.
+
+   These macros are tuned for their last argument being a constant.
+
+   Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B,
+   A % B, and A << B would overflow, respectively.  */
+
+#define INT_ADD_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW)
+#define INT_SUBTRACT_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW)
+#define INT_NEGATE_OVERFLOW(a) \
+  INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
+#define INT_MULTIPLY_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW)
+#define INT_DIVIDE_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW)
+#define INT_REMAINDER_OVERFLOW(a, b) \
+  _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW)
+#define INT_LEFT_SHIFT_OVERFLOW(a, b) \
+  INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \
+                                 _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
+
+/* Return 1 if the expression A <op> B would overflow,
+   where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test,
+   assuming MIN and MAX are the minimum and maximum for the result type.
+   Arguments should be free of side effects.  */
+#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow)        \
+  op_result_overflow (a, b,                                     \
+                      _GL_INT_MINIMUM (0 * (b) + (a)),          \
+                      _GL_INT_MAXIMUM (0 * (b) + (a)))
 
-#endif /* GL_INTPROPS_H */
+#endif /* _GL_INTPROPS_H */
diff --git a/tests/inttypes.in.h b/tests/inttypes.in.h
new file mode 100644 (file)
index 0000000..4b2a13b
--- /dev/null
@@ -0,0 +1,1140 @@
+/* Copyright (C) 2006-2014 Free Software Foundation, Inc.
+   Written by Paul Eggert, Bruno Haible, Derek Price.
+   This file is part of gnulib.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/*
+ * ISO C 99 <inttypes.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/inttypes.h.html>
+ */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* Include the original <inttypes.h> if it exists, and if this file
+   has not been included yet or if this file includes gnulib stdint.h
+   which in turn includes this file.
+   The include_next requires a split double-inclusion guard.  */
+#if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+# if @HAVE_INTTYPES_H@
+
+   /* Some pre-C++11 <stdint.h> implementations need this.  */
+#  if defined __cplusplus && ! defined __STDC_FORMAT_MACROS
+#   define __STDC_FORMAT_MACROS 1
+#  endif
+
+#  @INCLUDE_NEXT@ @NEXT_INTTYPES_H@
+# endif
+#endif
+
+#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+#define INTTYPES_H
+
+/* Include <stdint.h> or the gnulib replacement.
+   But avoid namespace pollution on glibc systems.  */
+#ifndef __GLIBC__
+# include <stdint.h>
+#endif
+/* Get CHAR_BIT.  */
+#include <limits.h>
+
+#if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX)
+# error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib@gnu.org>."
+#endif
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
+
+/* The definition of _GL_ARG_NONNULL is copied here.  */
+
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
+/* 7.8.1 Macros for format specifiers */
+
+#if defined _TNS_R_TARGET
+   /* Tandem NonStop R series and compatible platforms released before
+      July 2005 support %Ld but not %lld.  */
+# define _LONG_LONG_FORMAT_PREFIX "L"
+#else
+# define _LONG_LONG_FORMAT_PREFIX "ll"
+#endif
+
+#if !defined PRId8 || @PRI_MACROS_BROKEN@
+# undef PRId8
+# ifdef INT8_MAX
+#  define PRId8 "d"
+# endif
+#endif
+#if !defined PRIi8 || @PRI_MACROS_BROKEN@
+# undef PRIi8
+# ifdef INT8_MAX
+#  define PRIi8 "i"
+# endif
+#endif
+#if !defined PRIo8 || @PRI_MACROS_BROKEN@
+# undef PRIo8
+# ifdef UINT8_MAX
+#  define PRIo8 "o"
+# endif
+#endif
+#if !defined PRIu8 || @PRI_MACROS_BROKEN@
+# undef PRIu8
+# ifdef UINT8_MAX
+#  define PRIu8 "u"
+# endif
+#endif
+#if !defined PRIx8 || @PRI_MACROS_BROKEN@
+# undef PRIx8
+# ifdef UINT8_MAX
+#  define PRIx8 "x"
+# endif
+#endif
+#if !defined PRIX8 || @PRI_MACROS_BROKEN@
+# undef PRIX8
+# ifdef UINT8_MAX
+#  define PRIX8 "X"
+# endif
+#endif
+#if !defined PRId16 || @PRI_MACROS_BROKEN@
+# undef PRId16
+# ifdef INT16_MAX
+#  define PRId16 "d"
+# endif
+#endif
+#if !defined PRIi16 || @PRI_MACROS_BROKEN@
+# undef PRIi16
+# ifdef INT16_MAX
+#  define PRIi16 "i"
+# endif
+#endif
+#if !defined PRIo16 || @PRI_MACROS_BROKEN@
+# undef PRIo16
+# ifdef UINT16_MAX
+#  define PRIo16 "o"
+# endif
+#endif
+#if !defined PRIu16 || @PRI_MACROS_BROKEN@
+# undef PRIu16
+# ifdef UINT16_MAX
+#  define PRIu16 "u"
+# endif
+#endif
+#if !defined PRIx16 || @PRI_MACROS_BROKEN@
+# undef PRIx16
+# ifdef UINT16_MAX
+#  define PRIx16 "x"
+# endif
+#endif
+#if !defined PRIX16 || @PRI_MACROS_BROKEN@
+# undef PRIX16
+# ifdef UINT16_MAX
+#  define PRIX16 "X"
+# endif
+#endif
+#if !defined PRId32 || @PRI_MACROS_BROKEN@
+# undef PRId32
+# ifdef INT32_MAX
+#  define PRId32 "d"
+# endif
+#endif
+#if !defined PRIi32 || @PRI_MACROS_BROKEN@
+# undef PRIi32
+# ifdef INT32_MAX
+#  define PRIi32 "i"
+# endif
+#endif
+#if !defined PRIo32 || @PRI_MACROS_BROKEN@
+# undef PRIo32
+# ifdef UINT32_MAX
+#  define PRIo32 "o"
+# endif
+#endif
+#if !defined PRIu32 || @PRI_MACROS_BROKEN@
+# undef PRIu32
+# ifdef UINT32_MAX
+#  define PRIu32 "u"
+# endif
+#endif
+#if !defined PRIx32 || @PRI_MACROS_BROKEN@
+# undef PRIx32
+# ifdef UINT32_MAX
+#  define PRIx32 "x"
+# endif
+#endif
+#if !defined PRIX32 || @PRI_MACROS_BROKEN@
+# undef PRIX32
+# ifdef UINT32_MAX
+#  define PRIX32 "X"
+# endif
+#endif
+#ifdef INT64_MAX
+# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@)
+#  define _PRI64_PREFIX "l"
+# elif defined _MSC_VER || defined __MINGW32__
+#  define _PRI64_PREFIX "I64"
+# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+#  define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined PRId64 || @PRI_MACROS_BROKEN@
+#  undef PRId64
+#  define PRId64 _PRI64_PREFIX "d"
+# endif
+# if !defined PRIi64 || @PRI_MACROS_BROKEN@
+#  undef PRIi64
+#  define PRIi64 _PRI64_PREFIX "i"
+# endif
+#endif
+#ifdef UINT64_MAX
+# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@)
+#  define _PRIu64_PREFIX "l"
+# elif defined _MSC_VER || defined __MINGW32__
+#  define _PRIu64_PREFIX "I64"
+# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+#  define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined PRIo64 || @PRI_MACROS_BROKEN@
+#  undef PRIo64
+#  define PRIo64 _PRIu64_PREFIX "o"
+# endif
+# if !defined PRIu64 || @PRI_MACROS_BROKEN@
+#  undef PRIu64
+#  define PRIu64 _PRIu64_PREFIX "u"
+# endif
+# if !defined PRIx64 || @PRI_MACROS_BROKEN@
+#  undef PRIx64
+#  define PRIx64 _PRIu64_PREFIX "x"
+# endif
+# if !defined PRIX64 || @PRI_MACROS_BROKEN@
+#  undef PRIX64
+#  define PRIX64 _PRIu64_PREFIX "X"
+# endif
+#endif
+
+#if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIdLEAST8
+# define PRIdLEAST8 "d"
+#endif
+#if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIiLEAST8
+# define PRIiLEAST8 "i"
+#endif
+#if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIoLEAST8
+# define PRIoLEAST8 "o"
+#endif
+#if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIuLEAST8
+# define PRIuLEAST8 "u"
+#endif
+#if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIxLEAST8
+# define PRIxLEAST8 "x"
+#endif
+#if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIXLEAST8
+# define PRIXLEAST8 "X"
+#endif
+#if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIdLEAST16
+# define PRIdLEAST16 "d"
+#endif
+#if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIiLEAST16
+# define PRIiLEAST16 "i"
+#endif
+#if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIoLEAST16
+# define PRIoLEAST16 "o"
+#endif
+#if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIuLEAST16
+# define PRIuLEAST16 "u"
+#endif
+#if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIxLEAST16
+# define PRIxLEAST16 "x"
+#endif
+#if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIXLEAST16
+# define PRIXLEAST16 "X"
+#endif
+#if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIdLEAST32
+# define PRIdLEAST32 "d"
+#endif
+#if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIiLEAST32
+# define PRIiLEAST32 "i"
+#endif
+#if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIoLEAST32
+# define PRIoLEAST32 "o"
+#endif
+#if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIuLEAST32
+# define PRIuLEAST32 "u"
+#endif
+#if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIxLEAST32
+# define PRIxLEAST32 "x"
+#endif
+#if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIXLEAST32
+# define PRIXLEAST32 "X"
+#endif
+#ifdef INT64_MAX
+# if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIdLEAST64
+#  define PRIdLEAST64 PRId64
+# endif
+# if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIiLEAST64
+#  define PRIiLEAST64 PRIi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIoLEAST64
+#  define PRIoLEAST64 PRIo64
+# endif
+# if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIuLEAST64
+#  define PRIuLEAST64 PRIu64
+# endif
+# if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIxLEAST64
+#  define PRIxLEAST64 PRIx64
+# endif
+# if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIXLEAST64
+#  define PRIXLEAST64 PRIX64
+# endif
+#endif
+
+#if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIdFAST8
+# if INT_FAST8_MAX > INT32_MAX
+#  define PRIdFAST8 PRId64
+# else
+#  define PRIdFAST8 "d"
+# endif
+#endif
+#if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIiFAST8
+# if INT_FAST8_MAX > INT32_MAX
+#  define PRIiFAST8 PRIi64
+# else
+#  define PRIiFAST8 "i"
+# endif
+#endif
+#if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIoFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define PRIoFAST8 PRIo64
+# else
+#  define PRIoFAST8 "o"
+# endif
+#endif
+#if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIuFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define PRIuFAST8 PRIu64
+# else
+#  define PRIuFAST8 "u"
+# endif
+#endif
+#if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIxFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define PRIxFAST8 PRIx64
+# else
+#  define PRIxFAST8 "x"
+# endif
+#endif
+#if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIXFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define PRIXFAST8 PRIX64
+# else
+#  define PRIXFAST8 "X"
+# endif
+#endif
+#if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIdFAST16
+# if INT_FAST16_MAX > INT32_MAX
+#  define PRIdFAST16 PRId64
+# else
+#  define PRIdFAST16 "d"
+# endif
+#endif
+#if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIiFAST16
+# if INT_FAST16_MAX > INT32_MAX
+#  define PRIiFAST16 PRIi64
+# else
+#  define PRIiFAST16 "i"
+# endif
+#endif
+#if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIoFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define PRIoFAST16 PRIo64
+# else
+#  define PRIoFAST16 "o"
+# endif
+#endif
+#if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIuFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define PRIuFAST16 PRIu64
+# else
+#  define PRIuFAST16 "u"
+# endif
+#endif
+#if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIxFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define PRIxFAST16 PRIx64
+# else
+#  define PRIxFAST16 "x"
+# endif
+#endif
+#if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIXFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define PRIXFAST16 PRIX64
+# else
+#  define PRIXFAST16 "X"
+# endif
+#endif
+#if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIdFAST32
+# if INT_FAST32_MAX > INT32_MAX
+#  define PRIdFAST32 PRId64
+# else
+#  define PRIdFAST32 "d"
+# endif
+#endif
+#if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIiFAST32
+# if INT_FAST32_MAX > INT32_MAX
+#  define PRIiFAST32 PRIi64
+# else
+#  define PRIiFAST32 "i"
+# endif
+#endif
+#if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIoFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define PRIoFAST32 PRIo64
+# else
+#  define PRIoFAST32 "o"
+# endif
+#endif
+#if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIuFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define PRIuFAST32 PRIu64
+# else
+#  define PRIuFAST32 "u"
+# endif
+#endif
+#if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIxFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define PRIxFAST32 PRIx64
+# else
+#  define PRIxFAST32 "x"
+# endif
+#endif
+#if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIXFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define PRIXFAST32 PRIX64
+# else
+#  define PRIXFAST32 "X"
+# endif
+#endif
+#ifdef INT64_MAX
+# if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIdFAST64
+#  define PRIdFAST64 PRId64
+# endif
+# if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIiFAST64
+#  define PRIiFAST64 PRIi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIoFAST64
+#  define PRIoFAST64 PRIo64
+# endif
+# if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIuFAST64
+#  define PRIuFAST64 PRIu64
+# endif
+# if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIxFAST64
+#  define PRIxFAST64 PRIx64
+# endif
+# if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@
+#  undef PRIXFAST64
+#  define PRIXFAST64 PRIX64
+# endif
+#endif
+
+#if !defined PRIdMAX || @PRI_MACROS_BROKEN@
+# undef PRIdMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+#  define PRIdMAX PRId64
+# else
+#  define PRIdMAX "ld"
+# endif
+#endif
+#if !defined PRIiMAX || @PRI_MACROS_BROKEN@
+# undef PRIiMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+#  define PRIiMAX PRIi64
+# else
+#  define PRIiMAX "li"
+# endif
+#endif
+#if !defined PRIoMAX || @PRI_MACROS_BROKEN@
+# undef PRIoMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define PRIoMAX PRIo64
+# else
+#  define PRIoMAX "lo"
+# endif
+#endif
+#if !defined PRIuMAX || @PRI_MACROS_BROKEN@
+# undef PRIuMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define PRIuMAX PRIu64
+# else
+#  define PRIuMAX "lu"
+# endif
+#endif
+#if !defined PRIxMAX || @PRI_MACROS_BROKEN@
+# undef PRIxMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define PRIxMAX PRIx64
+# else
+#  define PRIxMAX "lx"
+# endif
+#endif
+#if !defined PRIXMAX || @PRI_MACROS_BROKEN@
+# undef PRIXMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define PRIXMAX PRIX64
+# else
+#  define PRIXMAX "lX"
+# endif
+#endif
+
+#if !defined PRIdPTR || @PRI_MACROS_BROKEN@
+# undef PRIdPTR
+# ifdef INTPTR_MAX
+#  define PRIdPTR @PRIPTR_PREFIX@ "d"
+# endif
+#endif
+#if !defined PRIiPTR || @PRI_MACROS_BROKEN@
+# undef PRIiPTR
+# ifdef INTPTR_MAX
+#  define PRIiPTR @PRIPTR_PREFIX@ "i"
+# endif
+#endif
+#if !defined PRIoPTR || @PRI_MACROS_BROKEN@
+# undef PRIoPTR
+# ifdef UINTPTR_MAX
+#  define PRIoPTR @PRIPTR_PREFIX@ "o"
+# endif
+#endif
+#if !defined PRIuPTR || @PRI_MACROS_BROKEN@
+# undef PRIuPTR
+# ifdef UINTPTR_MAX
+#  define PRIuPTR @PRIPTR_PREFIX@ "u"
+# endif
+#endif
+#if !defined PRIxPTR || @PRI_MACROS_BROKEN@
+# undef PRIxPTR
+# ifdef UINTPTR_MAX
+#  define PRIxPTR @PRIPTR_PREFIX@ "x"
+# endif
+#endif
+#if !defined PRIXPTR || @PRI_MACROS_BROKEN@
+# undef PRIXPTR
+# ifdef UINTPTR_MAX
+#  define PRIXPTR @PRIPTR_PREFIX@ "X"
+# endif
+#endif
+
+#if !defined SCNd8 || @PRI_MACROS_BROKEN@
+# undef SCNd8
+# ifdef INT8_MAX
+#  define SCNd8 "hhd"
+# endif
+#endif
+#if !defined SCNi8 || @PRI_MACROS_BROKEN@
+# undef SCNi8
+# ifdef INT8_MAX
+#  define SCNi8 "hhi"
+# endif
+#endif
+#if !defined SCNo8 || @PRI_MACROS_BROKEN@
+# undef SCNo8
+# ifdef UINT8_MAX
+#  define SCNo8 "hho"
+# endif
+#endif
+#if !defined SCNu8 || @PRI_MACROS_BROKEN@
+# undef SCNu8
+# ifdef UINT8_MAX
+#  define SCNu8 "hhu"
+# endif
+#endif
+#if !defined SCNx8 || @PRI_MACROS_BROKEN@
+# undef SCNx8
+# ifdef UINT8_MAX
+#  define SCNx8 "hhx"
+# endif
+#endif
+#if !defined SCNd16 || @PRI_MACROS_BROKEN@
+# undef SCNd16
+# ifdef INT16_MAX
+#  define SCNd16 "hd"
+# endif
+#endif
+#if !defined SCNi16 || @PRI_MACROS_BROKEN@
+# undef SCNi16
+# ifdef INT16_MAX
+#  define SCNi16 "hi"
+# endif
+#endif
+#if !defined SCNo16 || @PRI_MACROS_BROKEN@
+# undef SCNo16
+# ifdef UINT16_MAX
+#  define SCNo16 "ho"
+# endif
+#endif
+#if !defined SCNu16 || @PRI_MACROS_BROKEN@
+# undef SCNu16
+# ifdef UINT16_MAX
+#  define SCNu16 "hu"
+# endif
+#endif
+#if !defined SCNx16 || @PRI_MACROS_BROKEN@
+# undef SCNx16
+# ifdef UINT16_MAX
+#  define SCNx16 "hx"
+# endif
+#endif
+#if !defined SCNd32 || @PRI_MACROS_BROKEN@
+# undef SCNd32
+# ifdef INT32_MAX
+#  define SCNd32 "d"
+# endif
+#endif
+#if !defined SCNi32 || @PRI_MACROS_BROKEN@
+# undef SCNi32
+# ifdef INT32_MAX
+#  define SCNi32 "i"
+# endif
+#endif
+#if !defined SCNo32 || @PRI_MACROS_BROKEN@
+# undef SCNo32
+# ifdef UINT32_MAX
+#  define SCNo32 "o"
+# endif
+#endif
+#if !defined SCNu32 || @PRI_MACROS_BROKEN@
+# undef SCNu32
+# ifdef UINT32_MAX
+#  define SCNu32 "u"
+# endif
+#endif
+#if !defined SCNx32 || @PRI_MACROS_BROKEN@
+# undef SCNx32
+# ifdef UINT32_MAX
+#  define SCNx32 "x"
+# endif
+#endif
+#ifdef INT64_MAX
+# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@)
+#  define _SCN64_PREFIX "l"
+# elif defined _MSC_VER || defined __MINGW32__
+#  define _SCN64_PREFIX "I64"
+# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+#  define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined SCNd64 || @PRI_MACROS_BROKEN@
+#  undef SCNd64
+#  define SCNd64 _SCN64_PREFIX "d"
+# endif
+# if !defined SCNi64 || @PRI_MACROS_BROKEN@
+#  undef SCNi64
+#  define SCNi64 _SCN64_PREFIX "i"
+# endif
+#endif
+#ifdef UINT64_MAX
+# if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@)
+#  define _SCNu64_PREFIX "l"
+# elif defined _MSC_VER || defined __MINGW32__
+#  define _SCNu64_PREFIX "I64"
+# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+#  define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined SCNo64 || @PRI_MACROS_BROKEN@
+#  undef SCNo64
+#  define SCNo64 _SCNu64_PREFIX "o"
+# endif
+# if !defined SCNu64 || @PRI_MACROS_BROKEN@
+#  undef SCNu64
+#  define SCNu64 _SCNu64_PREFIX "u"
+# endif
+# if !defined SCNx64 || @PRI_MACROS_BROKEN@
+#  undef SCNx64
+#  define SCNx64 _SCNu64_PREFIX "x"
+# endif
+#endif
+
+#if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNdLEAST8
+# define SCNdLEAST8 "hhd"
+#endif
+#if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNiLEAST8
+# define SCNiLEAST8 "hhi"
+#endif
+#if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNoLEAST8
+# define SCNoLEAST8 "hho"
+#endif
+#if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNuLEAST8
+# define SCNuLEAST8 "hhu"
+#endif
+#if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNxLEAST8
+# define SCNxLEAST8 "hhx"
+#endif
+#if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNdLEAST16
+# define SCNdLEAST16 "hd"
+#endif
+#if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNiLEAST16
+# define SCNiLEAST16 "hi"
+#endif
+#if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNoLEAST16
+# define SCNoLEAST16 "ho"
+#endif
+#if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNuLEAST16
+# define SCNuLEAST16 "hu"
+#endif
+#if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNxLEAST16
+# define SCNxLEAST16 "hx"
+#endif
+#if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNdLEAST32
+# define SCNdLEAST32 "d"
+#endif
+#if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNiLEAST32
+# define SCNiLEAST32 "i"
+#endif
+#if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNoLEAST32
+# define SCNoLEAST32 "o"
+#endif
+#if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNuLEAST32
+# define SCNuLEAST32 "u"
+#endif
+#if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNxLEAST32
+# define SCNxLEAST32 "x"
+#endif
+#ifdef INT64_MAX
+# if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNdLEAST64
+#  define SCNdLEAST64 SCNd64
+# endif
+# if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNiLEAST64
+#  define SCNiLEAST64 SCNi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNoLEAST64
+#  define SCNoLEAST64 SCNo64
+# endif
+# if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNuLEAST64
+#  define SCNuLEAST64 SCNu64
+# endif
+# if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNxLEAST64
+#  define SCNxLEAST64 SCNx64
+# endif
+#endif
+
+#if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNdFAST8
+# if INT_FAST8_MAX > INT32_MAX
+#  define SCNdFAST8 SCNd64
+# elif INT_FAST8_MAX == 0x7fff
+#  define SCNdFAST8 "hd"
+# elif INT_FAST8_MAX == 0x7f
+#  define SCNdFAST8 "hhd"
+# else
+#  define SCNdFAST8 "d"
+# endif
+#endif
+#if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNiFAST8
+# if INT_FAST8_MAX > INT32_MAX
+#  define SCNiFAST8 SCNi64
+# elif INT_FAST8_MAX == 0x7fff
+#  define SCNiFAST8 "hi"
+# elif INT_FAST8_MAX == 0x7f
+#  define SCNiFAST8 "hhi"
+# else
+#  define SCNiFAST8 "i"
+# endif
+#endif
+#if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNoFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define SCNoFAST8 SCNo64
+# elif UINT_FAST8_MAX == 0xffff
+#  define SCNoFAST8 "ho"
+# elif UINT_FAST8_MAX == 0xff
+#  define SCNoFAST8 "hho"
+# else
+#  define SCNoFAST8 "o"
+# endif
+#endif
+#if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNuFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define SCNuFAST8 SCNu64
+# elif UINT_FAST8_MAX == 0xffff
+#  define SCNuFAST8 "hu"
+# elif UINT_FAST8_MAX == 0xff
+#  define SCNuFAST8 "hhu"
+# else
+#  define SCNuFAST8 "u"
+# endif
+#endif
+#if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNxFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+#  define SCNxFAST8 SCNx64
+# elif UINT_FAST8_MAX == 0xffff
+#  define SCNxFAST8 "hx"
+# elif UINT_FAST8_MAX == 0xff
+#  define SCNxFAST8 "hhx"
+# else
+#  define SCNxFAST8 "x"
+# endif
+#endif
+#if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNdFAST16
+# if INT_FAST16_MAX > INT32_MAX
+#  define SCNdFAST16 SCNd64
+# elif INT_FAST16_MAX == 0x7fff
+#  define SCNdFAST16 "hd"
+# else
+#  define SCNdFAST16 "d"
+# endif
+#endif
+#if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNiFAST16
+# if INT_FAST16_MAX > INT32_MAX
+#  define SCNiFAST16 SCNi64
+# elif INT_FAST16_MAX == 0x7fff
+#  define SCNiFAST16 "hi"
+# else
+#  define SCNiFAST16 "i"
+# endif
+#endif
+#if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNoFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define SCNoFAST16 SCNo64
+# elif UINT_FAST16_MAX == 0xffff
+#  define SCNoFAST16 "ho"
+# else
+#  define SCNoFAST16 "o"
+# endif
+#endif
+#if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNuFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define SCNuFAST16 SCNu64
+# elif UINT_FAST16_MAX == 0xffff
+#  define SCNuFAST16 "hu"
+# else
+#  define SCNuFAST16 "u"
+# endif
+#endif
+#if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNxFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+#  define SCNxFAST16 SCNx64
+# elif UINT_FAST16_MAX == 0xffff
+#  define SCNxFAST16 "hx"
+# else
+#  define SCNxFAST16 "x"
+# endif
+#endif
+#if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNdFAST32
+# if INT_FAST32_MAX > INT32_MAX
+#  define SCNdFAST32 SCNd64
+# else
+#  define SCNdFAST32 "d"
+# endif
+#endif
+#if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNiFAST32
+# if INT_FAST32_MAX > INT32_MAX
+#  define SCNiFAST32 SCNi64
+# else
+#  define SCNiFAST32 "i"
+# endif
+#endif
+#if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNoFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define SCNoFAST32 SCNo64
+# else
+#  define SCNoFAST32 "o"
+# endif
+#endif
+#if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNuFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define SCNuFAST32 SCNu64
+# else
+#  define SCNuFAST32 "u"
+# endif
+#endif
+#if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNxFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+#  define SCNxFAST32 SCNx64
+# else
+#  define SCNxFAST32 "x"
+# endif
+#endif
+#ifdef INT64_MAX
+# if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNdFAST64
+#  define SCNdFAST64 SCNd64
+# endif
+# if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNiFAST64
+#  define SCNiFAST64 SCNi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNoFAST64
+#  define SCNoFAST64 SCNo64
+# endif
+# if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNuFAST64
+#  define SCNuFAST64 SCNu64
+# endif
+# if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@
+#  undef SCNxFAST64
+#  define SCNxFAST64 SCNx64
+# endif
+#endif
+
+#if !defined SCNdMAX || @PRI_MACROS_BROKEN@
+# undef SCNdMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+#  define SCNdMAX SCNd64
+# else
+#  define SCNdMAX "ld"
+# endif
+#endif
+#if !defined SCNiMAX || @PRI_MACROS_BROKEN@
+# undef SCNiMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+#  define SCNiMAX SCNi64
+# else
+#  define SCNiMAX "li"
+# endif
+#endif
+#if !defined SCNoMAX || @PRI_MACROS_BROKEN@
+# undef SCNoMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define SCNoMAX SCNo64
+# else
+#  define SCNoMAX "lo"
+# endif
+#endif
+#if !defined SCNuMAX || @PRI_MACROS_BROKEN@
+# undef SCNuMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define SCNuMAX SCNu64
+# else
+#  define SCNuMAX "lu"
+# endif
+#endif
+#if !defined SCNxMAX || @PRI_MACROS_BROKEN@
+# undef SCNxMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+#  define SCNxMAX SCNx64
+# else
+#  define SCNxMAX "lx"
+# endif
+#endif
+
+#if !defined SCNdPTR || @PRI_MACROS_BROKEN@
+# undef SCNdPTR
+# ifdef INTPTR_MAX
+#  define SCNdPTR @PRIPTR_PREFIX@ "d"
+# endif
+#endif
+#if !defined SCNiPTR || @PRI_MACROS_BROKEN@
+# undef SCNiPTR
+# ifdef INTPTR_MAX
+#  define SCNiPTR @PRIPTR_PREFIX@ "i"
+# endif
+#endif
+#if !defined SCNoPTR || @PRI_MACROS_BROKEN@
+# undef SCNoPTR
+# ifdef UINTPTR_MAX
+#  define SCNoPTR @PRIPTR_PREFIX@ "o"
+# endif
+#endif
+#if !defined SCNuPTR || @PRI_MACROS_BROKEN@
+# undef SCNuPTR
+# ifdef UINTPTR_MAX
+#  define SCNuPTR @PRIPTR_PREFIX@ "u"
+# endif
+#endif
+#if !defined SCNxPTR || @PRI_MACROS_BROKEN@
+# undef SCNxPTR
+# ifdef UINTPTR_MAX
+#  define SCNxPTR @PRIPTR_PREFIX@ "x"
+# endif
+#endif
+
+/* 7.8.2 Functions for greatest-width integer types */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if @GNULIB_IMAXABS@
+# if !@HAVE_DECL_IMAXABS@
+extern intmax_t imaxabs (intmax_t);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef imaxabs
+# if HAVE_RAW_DECL_IMAXABS
+_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - "
+                 "use gnulib module imaxabs for portability");
+# endif
+#endif
+
+#if @GNULIB_IMAXDIV@
+# if !@HAVE_DECL_IMAXDIV@
+#  if !GNULIB_defined_imaxdiv_t
+typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
+#   define GNULIB_defined_imaxdiv_t 1
+#  endif
+extern imaxdiv_t imaxdiv (intmax_t, intmax_t);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef imaxdiv
+# if HAVE_RAW_DECL_IMAXDIV
+_GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - "
+                 "use gnulib module imaxdiv for portability");
+# endif
+#endif
+
+#if @GNULIB_STRTOIMAX@
+# if @REPLACE_STRTOIMAX@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef strtoimax
+#   define strtoimax rpl_strtoimax
+#  endif
+_GL_FUNCDECL_RPL (strtoimax, intmax_t,
+                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int));
+# else
+#  if !@HAVE_DECL_STRTOIMAX@
+#   undef strtoimax
+_GL_FUNCDECL_SYS (strtoimax, intmax_t,
+                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int));
+# endif
+_GL_CXXALIASWARN (strtoimax);
+#elif defined GNULIB_POSIXCHECK
+# undef strtoimax
+# if HAVE_RAW_DECL_STRTOIMAX
+_GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - "
+                 "use gnulib module strtoimax for portability");
+# endif
+#endif
+
+#if @GNULIB_STRTOUMAX@
+# if @REPLACE_STRTOUMAX@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef strtoumax
+#   define strtoumax rpl_strtoumax
+#  endif
+_GL_FUNCDECL_RPL (strtoumax, uintmax_t,
+                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strtoumax, uintmax_t, (const char *, char **, int));
+# else
+#  if !@HAVE_DECL_STRTOUMAX@
+#   undef strtoumax
+_GL_FUNCDECL_SYS (strtoumax, uintmax_t,
+                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int));
+# endif
+_GL_CXXALIASWARN (strtoumax);
+#elif defined GNULIB_POSIXCHECK
+# undef strtoumax
+# if HAVE_RAW_DECL_STRTOUMAX
+_GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - "
+                 "use gnulib module strtoumax for portability");
+# endif
+#endif
+
+/* Don't bother defining or declaring wcstoimax and wcstoumax, since
+   wide-character functions like this are hardly ever useful.  */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */
index 75b5299..10cc44b 100644 (file)
@@ -1,5 +1,5 @@
 /* A POSIX <locale.h>.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef _GL_LOCALE_H
-
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
+@PRAGMA_COLUMNS@
+
+#ifdef _GL_ALREADY_INCLUDING_LOCALE_H
+
+/* Special invocation conventions to handle Solaris header files
+   (through Solaris 10) when combined with gettext's libintl.h.  */
+
+#@INCLUDE_NEXT@ @NEXT_LOCALE_H@
+
+#else
+/* Normal invocation convention.  */
+
+#ifndef _@GUARD_PREFIX@_LOCALE_H
+
+#define _GL_ALREADY_INCLUDING_LOCALE_H
 
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_LOCALE_H@
 
-#ifndef _GL_LOCALE_H
-#define _GL_LOCALE_H
+#undef _GL_ALREADY_INCLUDING_LOCALE_H
+
+#ifndef _@GUARD_PREFIX@_LOCALE_H
+#define _@GUARD_PREFIX@_LOCALE_H
 
 /* NetBSD 5.0 mis-defines NULL.  */
 #include <stddef.h>
 
-/* MacOS X 10.5 defines the locale_t type in <xlocale.h>.  */
+/* Mac OS X 10.5 defines the locale_t type in <xlocale.h>.  */
 #if @HAVE_XLOCALE_H@
 # include <xlocale.h>
 #endif
 # define LC_MESSAGES 1729
 #endif
 
+/* Bionic libc's 'struct lconv' is just a dummy.  */
+#if @REPLACE_STRUCT_LCONV@
+# define lconv rpl_lconv
+struct lconv
+{
+  /* All 'char *' are actually 'const char *'.  */
+
+  /* Members that depend on the LC_NUMERIC category of the locale.  See
+     <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07_03_04> */
+
+  /* Symbol used as decimal point.  */
+  char *decimal_point;
+  /* Symbol used to separate groups of digits to the left of the decimal
+     point.  */
+  char *thousands_sep;
+  /* Definition of the size of groups of digits to the left of the decimal
+     point.  */
+  char *grouping;
+
+  /* Members that depend on the LC_MONETARY category of the locale.  See
+     <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07_03_03> */
+
+  /* Symbol used as decimal point.  */
+  char *mon_decimal_point;
+  /* Symbol used to separate groups of digits to the left of the decimal
+     point.  */
+  char *mon_thousands_sep;
+  /* Definition of the size of groups of digits to the left of the decimal
+     point.  */
+  char *mon_grouping;
+  /* Sign used to indicate a value >= 0.  */
+  char *positive_sign;
+  /* Sign used to indicate a value < 0.  */
+  char *negative_sign;
+
+  /* For formatting local currency.  */
+  /* Currency symbol (3 characters) followed by separator (1 character).  */
+  char *currency_symbol;
+  /* Number of digits after the decimal point.  */
+  char frac_digits;
+  /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it
+     comes after the number.  */
+  char p_cs_precedes;
+  /* For values >= 0: Position of the sign.  */
+  char p_sign_posn;
+  /* For values >= 0: Placement of spaces between currency symbol, sign, and
+     number.  */
+  char p_sep_by_space;
+  /* For values < 0: 1 if the currency symbol precedes the number, 0 if it
+     comes after the number.  */
+  char n_cs_precedes;
+  /* For values < 0: Position of the sign.  */
+  char n_sign_posn;
+  /* For values < 0: Placement of spaces between currency symbol, sign, and
+     number.  */
+  char n_sep_by_space;
+
+  /* For formatting international currency.  */
+  /* Currency symbol (3 characters) followed by separator (1 character).  */
+  char *int_curr_symbol;
+  /* Number of digits after the decimal point.  */
+  char int_frac_digits;
+  /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it
+     comes after the number.  */
+  char int_p_cs_precedes;
+  /* For values >= 0: Position of the sign.  */
+  char int_p_sign_posn;
+  /* For values >= 0: Placement of spaces between currency symbol, sign, and
+     number.  */
+  char int_p_sep_by_space;
+  /* For values < 0: 1 if the currency symbol precedes the number, 0 if it
+     comes after the number.  */
+  char int_n_cs_precedes;
+  /* For values < 0: Position of the sign.  */
+  char int_n_sign_posn;
+  /* For values < 0: Placement of spaces between currency symbol, sign, and
+     number.  */
+  char int_n_sep_by_space;
+};
+#endif
+
+#if @GNULIB_LOCALECONV@
+# if @REPLACE_LOCALECONV@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef localeconv
+#   define localeconv rpl_localeconv
+#  endif
+_GL_FUNCDECL_RPL (localeconv, struct lconv *, (void));
+_GL_CXXALIAS_RPL (localeconv, struct lconv *, (void));
+# else
+_GL_CXXALIAS_SYS (localeconv, struct lconv *, (void));
+# endif
+_GL_CXXALIASWARN (localeconv);
+#elif @REPLACE_STRUCT_LCONV@
+# undef localeconv
+# define localeconv localeconv_used_without_requesting_gnulib_module_localeconv
+#elif defined GNULIB_POSIXCHECK
+# undef localeconv
+# if HAVE_RAW_DECL_LOCALECONV
+_GL_WARN_ON_USE (localeconv,
+                 "localeconv returns too few information on some platforms - "
+                 "use gnulib module localeconv for portability");
+# endif
+#endif
+
+#if @GNULIB_SETLOCALE@
+# if @REPLACE_SETLOCALE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef setlocale
+#   define setlocale rpl_setlocale
+#   define GNULIB_defined_setlocale 1
+#  endif
+_GL_FUNCDECL_RPL (setlocale, char *, (int category, const char *locale));
+_GL_CXXALIAS_RPL (setlocale, char *, (int category, const char *locale));
+# else
+_GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale));
+# endif
+_GL_CXXALIASWARN (setlocale);
+#elif defined GNULIB_POSIXCHECK
+# undef setlocale
+# if HAVE_RAW_DECL_SETLOCALE
+_GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - "
+                 "use gnulib module setlocale for portability");
+# endif
+#endif
+
 #if @GNULIB_DUPLOCALE@
 # if @REPLACE_DUPLOCALE@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
@@ -70,5 +211,6 @@ _GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - "
 # endif
 #endif
 
-#endif /* _GL_LOCALE_H */
-#endif /* _GL_LOCALE_H */
+#endif /* _@GUARD_PREFIX@_LOCALE_H */
+#endif /* ! _GL_ALREADY_INCLUDING_LOCALE_H */
+#endif /* _@GUARD_PREFIX@_LOCALE_H */
index 11db5a8..0d7e378 100644 (file)
@@ -1,5 +1,5 @@
 /* Common macros used by gnulib tests.
-   Copyright (C) 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2006-2014 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
@@ -48,8 +48,8 @@
     {                                                                        \
       if (!(expr))                                                           \
         {                                                                    \
-          fprintf (ASSERT_STREAM, "%s:%d: assertion failed\n",               \
-                   __FILE__, __LINE__);                                      \
+          fprintf (ASSERT_STREAM, "%s:%d: assertion '%s' failed\n",     \
+                   __FILE__, __LINE__, #expr);                          \
           fflush (ASSERT_STREAM);                                            \
           abort ();                                                          \
         }                                                                    \
    *not* work for function parameters of array type, because they are actually
    parameters of pointer type.  */
 #define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
+
+/* STREQ (str1, str2)
+   Return true if two strings compare equal.  */
+#define STREQ(a, b) (strcmp (a, b) == 0)
+
+/* Some numbers in the interval [0,1).  */
+extern const float randomf[1000];
+extern const double randomd[1000];
+extern const long double randoml[1000];
diff --git a/tests/mbtowc-impl.h b/tests/mbtowc-impl.h
new file mode 100644 (file)
index 0000000..3cc70b0
--- /dev/null
@@ -0,0 +1,44 @@
+/* Convert multibyte character to wide character.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* We don't need a static internal state, because the encoding is not state
+   dependent, and when mbrtowc returns (size_t)(-2). we throw the result
+   away. */
+
+int
+mbtowc (wchar_t *pwc, const char *s, size_t n)
+{
+  if (s == NULL)
+    return 0;
+  else
+    {
+      mbstate_t state;
+      wchar_t wc;
+      size_t result;
+
+      memset (&state, 0, sizeof (mbstate_t));
+      result = mbrtowc (&wc, s, n, &state);
+      if (result == (size_t)-1 || result == (size_t)-2)
+        {
+          errno = EILSEQ;
+          return -1;
+        }
+      if (pwc != NULL)
+        *pwc = wc;
+      return (wc == 0 ? 0 : result);
+    }
+}
diff --git a/tests/mbtowc.c b/tests/mbtowc.c
new file mode 100644 (file)
index 0000000..93a7445
--- /dev/null
@@ -0,0 +1,26 @@
+/* Convert multibyte character to wide character.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include <errno.h>
+#include <string.h>
+#include <wchar.h>
+
+#include "mbtowc-impl.h"
diff --git a/tests/minus-zero.h b/tests/minus-zero.h
new file mode 100644 (file)
index 0000000..be65edc
--- /dev/null
@@ -0,0 +1,74 @@
+/* Macros for floating-point negative zero.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Keep in sync with m4/minus-zero.m4!  */
+
+#include <float.h>
+
+
+/* minus_zerof represents the value -0.0f.  */
+
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -FLT_MIN * FLT_MIN does not work when cross-compiling
+   to PowerPC on Mac OS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static float
+compute_minus_zerof (void)
+{
+  return -FLT_MIN * FLT_MIN;
+}
+# define minus_zerof compute_minus_zerof ()
+#else
+float minus_zerof = -0.0f;
+#endif
+
+
+/* minus_zerod represents the value -0.0.  */
+
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -DBL_MIN * DBL_MIN does not work when cross-compiling
+   to PowerPC on Mac OS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static double
+compute_minus_zerod (void)
+{
+  return -DBL_MIN * DBL_MIN;
+}
+# define minus_zerod compute_minus_zerod ()
+#else
+double minus_zerod = -0.0;
+#endif
+
+
+/* minus_zerol represents the value -0.0L.  */
+
+/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
+   IRIX cc can't put -0.0L into .data, but can compute at runtime.
+   ICC 10.0 has a bug when optimizing the expression -zero.
+   The expression -LDBL_MIN * LDBL_MIN does not work when cross-compiling
+   to PowerPC on Mac OS X 10.5.  */
+#if defined __hpux || defined __sgi || defined __ICC
+static long double
+compute_minus_zerol (void)
+{
+  return -LDBL_MIN * LDBL_MIN;
+}
+# define minus_zerol compute_minus_zerol ()
+#else
+long double minus_zerol = -0.0L;
+#endif
diff --git a/tests/msvc-inval.c b/tests/msvc-inval.c
new file mode 100644 (file)
index 0000000..f83827f
--- /dev/null
@@ -0,0 +1,129 @@
+/* Invalid parameter handler for MSVC runtime libraries.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "msvc-inval.h"
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+    && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING)
+
+/* Get _invalid_parameter_handler type and _set_invalid_parameter_handler
+   declaration.  */
+# include <stdlib.h>
+
+# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+
+static void __cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+                                   const wchar_t *function,
+                                   const wchar_t *file,
+                                   unsigned int line,
+                                   uintptr_t dummy)
+{
+}
+
+# else
+
+/* Get declarations of the native Windows API functions.  */
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+
+#  if defined _MSC_VER
+
+static void __cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+                                   const wchar_t *function,
+                                   const wchar_t *file,
+                                   unsigned int line,
+                                   uintptr_t dummy)
+{
+  RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL);
+}
+
+#  else
+
+/* An index to thread-local storage.  */
+static DWORD tls_index;
+static int tls_initialized /* = 0 */;
+
+/* Used as a fallback only.  */
+static struct gl_msvc_inval_per_thread not_per_thread;
+
+struct gl_msvc_inval_per_thread *
+gl_msvc_inval_current (void)
+{
+  if (!tls_initialized)
+    {
+      tls_index = TlsAlloc ();
+      tls_initialized = 1;
+    }
+  if (tls_index == TLS_OUT_OF_INDEXES)
+    /* TlsAlloc had failed.  */
+    return &not_per_thread;
+  else
+    {
+      struct gl_msvc_inval_per_thread *pointer =
+        (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index);
+      if (pointer == NULL)
+        {
+          /* First call.  Allocate a new 'struct gl_msvc_inval_per_thread'.  */
+          pointer =
+            (struct gl_msvc_inval_per_thread *)
+            malloc (sizeof (struct gl_msvc_inval_per_thread));
+          if (pointer == NULL)
+            /* Could not allocate memory.  Use the global storage.  */
+            pointer = &not_per_thread;
+          TlsSetValue (tls_index, pointer);
+        }
+      return pointer;
+    }
+}
+
+static void __cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+                                   const wchar_t *function,
+                                   const wchar_t *file,
+                                   unsigned int line,
+                                   uintptr_t dummy)
+{
+  struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current ();
+  if (current->restart_valid)
+    longjmp (current->restart, 1);
+  else
+    /* An invalid parameter notification from outside the gnulib code.
+       Give the caller a chance to intervene.  */
+    RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL);
+}
+
+#  endif
+
+# endif
+
+static int gl_msvc_inval_initialized /* = 0 */;
+
+void
+gl_msvc_inval_ensure_handler (void)
+{
+  if (gl_msvc_inval_initialized == 0)
+    {
+      _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler);
+      gl_msvc_inval_initialized = 1;
+    }
+}
+
+#endif
diff --git a/tests/msvc-inval.h b/tests/msvc-inval.h
new file mode 100644 (file)
index 0000000..a0ef540
--- /dev/null
@@ -0,0 +1,222 @@
+/* Invalid parameter handler for MSVC runtime libraries.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MSVC_INVAL_H
+#define _MSVC_INVAL_H
+
+/* With MSVC runtime libraries with the "invalid parameter handler" concept,
+   functions like fprintf(), dup2(), or close() crash when the caller passes
+   an invalid argument.  But POSIX wants error codes (such as EINVAL or EBADF)
+   instead.
+   This file defines macros that turn such an invalid parameter notification
+   into a non-local exit.  An error code can then be produced at the target
+   of this exit.  You can thus write code like
+
+     TRY_MSVC_INVAL
+       {
+         <Code that can trigger an invalid parameter notification
+          but does not do 'return', 'break', 'continue', nor 'goto'.>
+       }
+     CATCH_MSVC_INVAL
+       {
+         <Code that handles an invalid parameter notification
+          but does not do 'return', 'break', 'continue', nor 'goto'.>
+       }
+     DONE_MSVC_INVAL;
+
+   This entire block expands to a single statement.
+
+   The handling of invalid parameters can be done in three ways:
+
+     * The default way, which is reasonable for programs (not libraries):
+       AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING])
+
+     * The way for libraries that make "hairy" calls (like close(-1), or
+       fclose(fp) where fileno(fp) is closed, or simply getdtablesize()):
+       AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING])
+
+     * The way for libraries that make no "hairy" calls:
+       AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING])
+ */
+
+#define DEFAULT_HANDLING       0
+#define HAIRY_LIBRARY_HANDLING 1
+#define SANE_LIBRARY_HANDLING  2
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+    && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING)
+/* A native Windows platform with the "invalid parameter handler" concept,
+   and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING.  */
+
+# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+/* Default handling.  */
+
+#  ifdef __cplusplus
+extern "C" {
+#  endif
+
+/* Ensure that the invalid parameter handler in installed that just returns.
+   Because we assume no other part of the program installs a different
+   invalid parameter handler, this solution is multithread-safe.  */
+extern void gl_msvc_inval_ensure_handler (void);
+
+#  ifdef __cplusplus
+}
+#  endif
+
+#  define TRY_MSVC_INVAL \
+     do                                                                        \
+       {                                                                       \
+         gl_msvc_inval_ensure_handler ();                                      \
+         if (1)
+#  define CATCH_MSVC_INVAL \
+         else
+#  define DONE_MSVC_INVAL \
+       }                                                                       \
+     while (0)
+
+# else
+/* Handling for hairy libraries.  */
+
+#  include <excpt.h>
+
+/* Gnulib can define its own status codes, as described in the page
+   "Raising Software Exceptions" on microsoft.com
+   <http://msdn.microsoft.com/en-us/library/het71c37.aspx>.
+   Our status codes are composed of
+     - 0xE0000000, mandatory for all user-defined status codes,
+     - 0x474E550, a API identifier ("GNU"),
+     - 0, 1, 2, ..., used to distinguish different status codes from the
+       same API.  */
+#  define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0)
+
+#  if defined _MSC_VER
+/* A compiler that supports __try/__except, as described in the page
+   "try-except statement" on microsoft.com
+   <http://msdn.microsoft.com/en-us/library/s58ftw19.aspx>.
+   With __try/__except, we can use the multithread-safe exception handling.  */
+
+#   ifdef __cplusplus
+extern "C" {
+#   endif
+
+/* Ensure that the invalid parameter handler in installed that raises a
+   software exception with code STATUS_GNULIB_INVALID_PARAMETER.
+   Because we assume no other part of the program installs a different
+   invalid parameter handler, this solution is multithread-safe.  */
+extern void gl_msvc_inval_ensure_handler (void);
+
+#   ifdef __cplusplus
+}
+#   endif
+
+#   define TRY_MSVC_INVAL \
+      do                                                                       \
+        {                                                                      \
+          gl_msvc_inval_ensure_handler ();                                     \
+          __try
+#   define CATCH_MSVC_INVAL \
+          __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER     \
+                    ? EXCEPTION_EXECUTE_HANDLER                                \
+                    : EXCEPTION_CONTINUE_SEARCH)
+#   define DONE_MSVC_INVAL \
+        }                                                                      \
+      while (0)
+
+#  else
+/* Any compiler.
+   We can only use setjmp/longjmp.  */
+
+#   include <setjmp.h>
+
+#   ifdef __cplusplus
+extern "C" {
+#   endif
+
+struct gl_msvc_inval_per_thread
+{
+  /* The restart that will resume execution at the code between
+     CATCH_MSVC_INVAL and DONE_MSVC_INVAL.  It is enabled only between
+     TRY_MSVC_INVAL and CATCH_MSVC_INVAL.  */
+  jmp_buf restart;
+
+  /* Tells whether the contents of restart is valid.  */
+  int restart_valid;
+};
+
+/* Ensure that the invalid parameter handler in installed that passes
+   control to the gl_msvc_inval_restart if it is valid, or raises a
+   software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise.
+   Because we assume no other part of the program installs a different
+   invalid parameter handler, this solution is multithread-safe.  */
+extern void gl_msvc_inval_ensure_handler (void);
+
+/* Return a pointer to the per-thread data for the current thread.  */
+extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void);
+
+#   ifdef __cplusplus
+}
+#   endif
+
+#   define TRY_MSVC_INVAL \
+      do                                                                       \
+        {                                                                      \
+          struct gl_msvc_inval_per_thread *msvc_inval_current;                 \
+          gl_msvc_inval_ensure_handler ();                                     \
+          msvc_inval_current = gl_msvc_inval_current ();                       \
+          /* First, initialize gl_msvc_inval_restart.  */                      \
+          if (setjmp (msvc_inval_current->restart) == 0)                       \
+            {                                                                  \
+              /* Then, mark it as valid.  */                                   \
+              msvc_inval_current->restart_valid = 1;
+#   define CATCH_MSVC_INVAL \
+              /* Execution completed.                                          \
+                 Mark gl_msvc_inval_restart as invalid.  */                    \
+              msvc_inval_current->restart_valid = 0;                           \
+            }                                                                  \
+          else                                                                 \
+            {                                                                  \
+              /* Execution triggered an invalid parameter notification.        \
+                 Mark gl_msvc_inval_restart as invalid.  */                    \
+              msvc_inval_current->restart_valid = 0;
+#   define DONE_MSVC_INVAL \
+            }                                                                  \
+        }                                                                      \
+      while (0)
+
+#  endif
+
+# endif
+
+#else
+/* A platform that does not need to the invalid parameter handler,
+   or when SANE_LIBRARY_HANDLING is desired.  */
+
+/* The braces here avoid GCC warnings like
+   "warning: suggest explicit braces to avoid ambiguous 'else'".  */
+# define TRY_MSVC_INVAL \
+    do                                                                         \
+      {                                                                        \
+        if (1)
+# define CATCH_MSVC_INVAL \
+        else
+# define DONE_MSVC_INVAL \
+      }                                                                        \
+    while (0)
+
+#endif
+
+#endif /* _MSVC_INVAL_H */
diff --git a/tests/msvc-nothrow.c b/tests/msvc-nothrow.c
new file mode 100644 (file)
index 0000000..b1e5f0c
--- /dev/null
@@ -0,0 +1,49 @@
+/* Wrappers that don't throw invalid parameter notifications
+   with MSVC runtime libraries.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "msvc-nothrow.h"
+
+/* Get declarations of the native Windows API functions.  */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+#include "msvc-inval.h"
+
+#undef _get_osfhandle
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+intptr_t
+_gl_nothrow_get_osfhandle (int fd)
+{
+  intptr_t result;
+
+  TRY_MSVC_INVAL
+    {
+      result = _get_osfhandle (fd);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = (intptr_t) INVALID_HANDLE_VALUE;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#endif
diff --git a/tests/msvc-nothrow.h b/tests/msvc-nothrow.h
new file mode 100644 (file)
index 0000000..0d4dea5
--- /dev/null
@@ -0,0 +1,43 @@
+/* Wrappers that don't throw invalid parameter notifications
+   with MSVC runtime libraries.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MSVC_NOTHROW_H
+#define _MSVC_NOTHROW_H
+
+/* With MSVC runtime libraries with the "invalid parameter handler" concept,
+   functions like fprintf(), dup2(), or close() crash when the caller passes
+   an invalid argument.  But POSIX wants error codes (such as EINVAL or EBADF)
+   instead.
+   This file defines wrappers that turn such an invalid parameter notification
+   into an error code.  */
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+/* Get original declaration of _get_osfhandle.  */
+# include <io.h>
+
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+
+/* Override _get_osfhandle.  */
+extern intptr_t _gl_nothrow_get_osfhandle (int fd);
+#  define _get_osfhandle _gl_nothrow_get_osfhandle
+
+# endif
+
+#endif
+
+#endif /* _MSVC_NOTHROW_H */
index 611eed3..9da3684 100644 (file)
@@ -1,5 +1,5 @@
 /* Macros for not-a-number.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
@@ -17,8 +17,9 @@
 
 /* NaNf () returns a 'float' not-a-number.  */
 
-/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0.  */
-#ifdef __DECC
+/* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler choke
+   on the expression 0.0 / 0.0.  */
+#if defined __DECC || defined _MSC_VER
 static float
 NaNf ()
 {
@@ -32,8 +33,9 @@ NaNf ()
 
 /* NaNd () returns a 'double' not-a-number.  */
 
-/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0.  */
-#ifdef __DECC
+/* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler choke
+   on the expression 0.0 / 0.0.  */
+#if defined __DECC || defined _MSC_VER
 static double
 NaNd ()
 {
@@ -48,13 +50,21 @@ NaNd ()
 /* NaNl () returns a 'long double' not-a-number.  */
 
 /* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the
-   runtime type conversion.  */
+   runtime type conversion.
+   The Microsoft MSVC 9 compiler chokes on the expression 0.0L / 0.0L.  */
 #ifdef __sgi
 static long double NaNl ()
 {
   double zero = 0.0;
   return zero / zero;
 }
+#elif defined _MSC_VER
+static long double
+NaNl ()
+{
+  static long double zero = 0.0L;
+  return zero / zero;
+}
 #else
 # define NaNl() (0.0L / 0.0L)
 #endif
index 1415e6a..2919be9 100644 (file)
@@ -1,5 +1,5 @@
 /* Program name management.
-   Copyright (C) 2001-2003, 2005-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify
index 5ba303b..fa15871 100644 (file)
@@ -1,5 +1,5 @@
 /* Program name management.
-   Copyright (C) 2001-2004, 2006, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006, 2009-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify
index 030f567..b9f5079 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2010 Free Software
+/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2014 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C
 #include <string.h>
 #include <unistd.h>
 
-#if HAVE_GNU_LD
-# define environ __environ
-#else
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+
+#if _LIBC
+# if HAVE_GNU_LD
+#  define environ __environ
+# else
 extern char **environ;
+# endif
 #endif
 
 #if _LIBC
-/* This lock protects against simultaneous modifications of `environ'.  */
+/* This lock protects against simultaneous modifications of 'environ'.  */
 # include <bits/libc-lock.h>
 __libc_lock_define_initialized (static, envlock)
 # define LOCK   __libc_lock_lock (envlock)
@@ -55,7 +62,9 @@ static int
 _unsetenv (const char *name)
 {
   size_t len;
+#if !HAVE_DECL__PUTENV
   char **ep;
+#endif
 
   if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
     {
@@ -65,6 +74,21 @@ _unsetenv (const char *name)
 
   len = strlen (name);
 
+#if HAVE_DECL__PUTENV
+  {
+    int putenv_result, putenv_errno;
+    char *name_ = malloc (len + 2);
+    memcpy (name_, name, len);
+    name_[len] = '=';
+    name_[len + 1] = 0;
+    putenv_result = _putenv (name_);
+    putenv_errno = errno;
+    free (name_);
+    __set_errno (putenv_errno);
+    return putenv_result;
+  }
+#else
+
   LOCK;
 
   ep = environ;
@@ -85,17 +109,17 @@ _unsetenv (const char *name)
   UNLOCK;
 
   return 0;
+#endif
 }
 
 
 /* Put STRING, which is of the form "NAME=VALUE", in the environment.
-   If STRING contains no `=', then remove STRING from the environment.  */
+   If STRING contains no '=', then remove STRING from the environment.  */
 int
 putenv (char *string)
 {
-  const char *const name_end = strchr (string, '=');
-  register size_t size;
-  register char **ep;
+  const char *name_end = strchr (string, '=');
+  char **ep;
 
   if (name_end == NULL)
     {
@@ -103,30 +127,68 @@ putenv (char *string)
       return _unsetenv (string);
     }
 
-  size = 0;
-  for (ep = environ; *ep != NULL; ++ep)
-    if (!strncmp (*ep, string, name_end - string) &&
-        (*ep)[name_end - string] == '=')
+#if HAVE_DECL__PUTENV
+  /* Rely on _putenv to allocate the new environment.  If other
+     parts of the application use _putenv, the !HAVE_DECL__PUTENV code
+     would fight over who owns the environ vector, causing a crash.  */
+  if (name_end[1])
+    return _putenv (string);
+  else
+    {
+      /* _putenv ("NAME=") unsets NAME, so invoke _putenv ("NAME= ")
+         to allocate the environ vector and then replace the new
+         entry with "NAME=".  */
+      int putenv_result, putenv_errno;
+      char *name_x = malloc (name_end - string + sizeof "= ");
+      if (!name_x)
+        return -1;
+      memcpy (name_x, string, name_end - string + 1);
+      name_x[name_end - string + 1] = ' ';
+      name_x[name_end - string + 2] = 0;
+      putenv_result = _putenv (name_x);
+      putenv_errno = errno;
+      for (ep = environ; *ep; ep++)
+        if (strcmp (*ep, name_x) == 0)
+          {
+            *ep = string;
+            break;
+          }
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+      if (putenv_result == 0)
+        {
+          /* _putenv propagated "NAME= " into the subprocess environment;
+             fix that by calling SetEnvironmentVariable directly.  */
+          name_x[name_end - string] = 0;
+          putenv_result = SetEnvironmentVariable (name_x, "") ? 0 : -1;
+          putenv_errno = ENOMEM; /* ENOMEM is the only way to fail.  */
+        }
+# endif
+      free (name_x);
+      __set_errno (putenv_errno);
+      return putenv_result;
+    }
+#else
+  for (ep = environ; *ep; ep++)
+    if (strncmp (*ep, string, name_end - string) == 0
+        && (*ep)[name_end - string] == '=')
       break;
-    else
-      ++size;
 
-  if (*ep == NULL)
+  if (*ep)
+    *ep = string;
+  else
     {
       static char **last_environ = NULL;
-      char **new_environ = (char **) malloc ((size + 2) * sizeof (char *));
-      if (new_environ == NULL)
+      size_t size = ep - environ;
+      char **new_environ = malloc ((size + 2) * sizeof *new_environ);
+      if (! new_environ)
         return -1;
-      (void) memcpy ((void *) new_environ, (void *) environ,
-                     size * sizeof (char *));
-      new_environ[size] = (char *) string;
-      new_environ[size + 1] = NULL;
+      new_environ[0] = string;
+      memcpy (new_environ + 1, environ, (size + 1) * sizeof *new_environ);
       free (last_environ);
       last_environ = new_environ;
       environ = new_environ;
     }
-  else
-    *ep = string;
 
   return 0;
+#endif
 }
diff --git a/tests/randomd.c b/tests/randomd.c
new file mode 100644 (file)
index 0000000..85cd981
--- /dev/null
@@ -0,0 +1,1028 @@
+/* Some random 'double' numbers used by gnulib tests.
+   Copyright (C) 2012-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "macros.h"
+
+/* Some numbers in the interval [0,1).  */
+
+const double randomd[1000] =
+{
+  /* Some not so random numbers at the beginning.  */
+  0.0,
+  /* Then some numbers generated by GNU clisp.  */
+  0.89255299921822260894833866359,
+  0.56160033401164667976788987953,
+  0.51743003502243816003616725706,
+  0.78419011286685927826225711525,
+  0.64400370685467819470063888148,
+  0.38151255107934048933308886009,
+  0.279822118770531878839000163945,
+  0.51983544681375980919751125922,
+  0.314601557551148376372971500376,
+  0.44551938964685651088492647794,
+  0.44235192503793823441729544512,
+  0.0040120762636767874958681841509,
+  0.57608572759464216512285032474,
+  0.69151953350396585566714564265,
+  0.65634190642598148152780718322,
+  0.68520459394253807590733184567,
+  0.60728078832107635628786818115,
+  0.376679934380311318950949959986,
+  0.48893422455419005003224231708,
+  0.59664228319132670346209747371,
+  0.70162191594290728927555900075,
+  0.70981089000005327192380201706,
+  0.480574069305863387682360414433,
+  0.369264627455974856929910550376,
+  0.42224495444170593700839286742,
+  0.96974027194201320964041066537,
+  0.69950081092902694549973698004,
+  0.366921803754944985368022837045,
+  0.19460757354611588216534077527,
+  0.046437559879825520495822908204,
+  0.57694149138457596563075731094,
+  0.49632733844850578203860859535,
+  0.80735347459453553970910033766,
+  0.210271595033975357161360058967,
+  0.176539870249396534142059724214,
+  0.75320267419158828905982021879,
+  0.09535042912249636739069790414,
+  0.41433965906065337672703334968,
+  0.62189345390648146852641556292,
+  0.322595610794052908153116342595,
+  0.173860860827838938281708881865,
+  0.55258425878412963601205794028,
+  0.066559056629606284504735241978,
+  0.0193835990781649263368095562556,
+  0.127101629778251450428653553143,
+  0.9603475517586241593077319367,
+  0.68429794014738591042302507235,
+  0.0139808909843634026741151214975,
+  0.0036035679428138856395527711611,
+  0.072656401341518399752950821809,
+  0.229562863635014486626281702425,
+  0.88337277579960676546469424767,
+  0.88850212167800818244030104263,
+  0.208063225990716089095767541316,
+  0.268304917462565269805874454916,
+  0.3195427196271617997151392088,
+  0.59101407246003811289573881403,
+  0.972093867752368095080492689,
+  0.409246208960242309650511849637,
+  0.84250639316418167849010246997,
+  0.063842712141624332977179722113,
+  0.96470327141354888687046060373,
+  0.43109879978424216966175314888,
+  0.14551248610248934836482236208,
+  0.84819094513299136408788493212,
+  0.41166757935215520377191731704,
+  0.96020915727830366672170130175,
+  0.55313106883839046701902022583,
+  0.9796595451013758579218900134,
+  0.74222694300533435700276764516,
+  0.117294243075539310976051880564,
+  0.32216824750097146958151447387,
+  0.59090211400137031908131441,
+  0.116841680533127258304897076543,
+  0.83595865401141052310417569507,
+  0.249488155772987988074361149176,
+  0.67896015287499211280971531326,
+  0.72256498621401843299673078876,
+  0.327315362968271601258667297595,
+  0.37438214921868498405279953481,
+  0.76929694812658272272027330778,
+  0.44282297788821568912463681727,
+  0.59517407740270913902014268964,
+  0.346217547960702024419571713567,
+  0.68339868731911838904373225224,
+  0.057507087039986776837238366719,
+  0.1189343986186977384509521024,
+  0.65646666532916174831489781194,
+  0.80925124288745606089697795707,
+  0.61302937875769552609444313984,
+  0.64367434863387777107222872563,
+  0.059228300879437554416166010005,
+  0.76899237494115809397158171526,
+  0.335797991302131791511629123206,
+  0.72923178692628392090326699514,
+  0.79300056654108221012876564405,
+  0.58866760551158502690719665335,
+  0.65249222174748700395779659047,
+  0.79573528799715877963614353006,
+  0.101363067664632247385474166088,
+  0.392494669960902131436398643207,
+  0.37323453200630776302168616197,
+  0.29857554596542776498065634631,
+  0.9796202149626312305197715787,
+  0.58770219934833805722677794788,
+  0.126574575737099431915356308504,
+  0.51086682994362911961448609847,
+  0.26221303911946316754295166201,
+  0.87331402410090670707406246035,
+  0.08604799064198292716037672196,
+  0.77880380648915901962140523059,
+  0.34131646312914811415381942246,
+  0.422787222735822749759714960156,
+  0.16550478231620269333824890372,
+  0.84087065799129220871741135711,
+  0.96561976597443996963329538915,
+  0.059890627133354026356081805998,
+  0.09359839900604706997291172522,
+  0.61463026659668017286248279853,
+  0.220582135665522265733252389516,
+  0.30146695094150797543070759948,
+  0.406591688270652513808216198946,
+  0.206959751707199812083987569348,
+  0.71382992952779021033600406503,
+  0.98971690700151825984363090029,
+  0.86339958328134745391858859595,
+  0.70037828363249257457230217791,
+  0.97380974339470107231135690474,
+  0.9184635965630883290893011311,
+  0.418605216026507942885819265225,
+  0.61793227858714759711625818653,
+  0.67394880797682685081908511723,
+  0.98871101941805039780826467279,
+  0.65973593853137069988371349845,
+  0.93348525072186907424189028727,
+  0.59164378220465485142298641014,
+  0.95303768733773138214124075961,
+  0.88667310242538944858141870801,
+  0.83785319781204861623008709825,
+  0.54026788227426708201242457367,
+  0.74842599257855801522259951132,
+  0.286624102305531463268442510375,
+  0.41180484980938874161376712508,
+  0.22754664620316922947541651384,
+  0.62360609793949755240041318939,
+  0.3311618194042077047850111557,
+  0.315407885695867020730009836503,
+  0.215221706711430951961780213436,
+  0.168600630933631406101821024413,
+  0.62661489373200405241464923618,
+  0.95357070304277219756741072036,
+  0.5186418766697788447635039428,
+  0.70772930521061953327927296944,
+  0.410376884797056150221504703145,
+  0.39705302343406249619577860633,
+  0.79215885822696034431481699125,
+  0.157831717946112504384603002152,
+  0.26892306298536012837855426922,
+  0.15697088614321016223211167568,
+  0.41395315712905823355235182393,
+  0.043977876945327860015049914653,
+  0.91453495544799358550673657283,
+  0.46230093259088633973148827911,
+  0.79479146768024434444120965094,
+  0.1466704986407674407377422815,
+  0.093614591443204076599999803382,
+  0.66061870961706149406527099303,
+  0.087462146328394574476138187113,
+  0.79683664444310818297700615557,
+  0.39732728185755441060070738751,
+  0.141934473990413594291362391075,
+  0.63111751995951919258061547632,
+  0.78521985432793823024330967029,
+  0.53307346282606806792796696141,
+  0.61679109370763781010143645189,
+  0.40696293619387120891515025426,
+  0.68670343879278712242412028794,
+  0.0115112936831136012901340526452,
+  0.70866056737692430987650236649,
+  0.75378980574358943122474800795,
+  0.17133202766710894969283150847,
+  0.36771201738922655520549864974,
+  0.64614182581953931840374311331,
+  0.354495602088990708111406368474,
+  0.96418771817934443444348833491,
+  0.51633426669933834634574104246,
+  0.064671329812306055349433587193,
+  0.084335079914541732137341401384,
+  0.98578018340150609333535890283,
+  0.32988119060114570391488875477,
+  0.70568290443337103364762141207,
+  0.7501960060851696034137148851,
+  0.141312840936106004164373056114,
+  0.60721022154106372815080238296,
+  0.49179275887283771965744826261,
+  0.85530668893284708999269819019,
+  0.09730053915339358769067661488,
+  0.48817911888023094845428570434,
+  0.37116312252354470380676793579,
+  0.61870369881699387959990992873,
+  0.381874188039839457469043174076,
+  0.68193837613090719561872304949,
+  0.4773618313988618747215621251,
+  0.152383599292709764750406667286,
+  0.54317522808228983459963725598,
+  0.363848788591302782268887022354,
+  0.0105589810271147011378412305973,
+  0.55582445068669939957392951111,
+  0.99910376130213936748996659383,
+  0.90286867348280161480903197439,
+  0.48268382934936288156485037692,
+  0.0976084557356802030533675394,
+  0.29004949962481398455881920169,
+  0.99169758897256717005011514856,
+  0.20722895154834288274430061308,
+  0.50294863638464584121275744208,
+  0.71094033855350495714847377558,
+  0.94078709219520224551350834268,
+  0.48088262771516317628650315489,
+  0.80538698628980761175811796611,
+  0.83495029615293903361580945571,
+  0.67996381940825251937974905761,
+  0.57936805772275234468590364926,
+  0.41778137764942046281708286844,
+  0.161602687591454506771276482303,
+  0.093910625156097743113739432334,
+  0.45716763620641108625606409874,
+  0.96455075374827233820027584808,
+  0.5179966880512917274934448216,
+  0.046797382046060065926143985952,
+  0.83673567319931334127111064225,
+  0.44224504444533247245974476514,
+  0.73281179385894336737033582786,
+  0.5642490153724193432309549673,
+  0.83700200507325250303481208805,
+  0.152714941779871552944298597052,
+  0.38606607994977770238226473985,
+  0.0155140917516105439042442246577,
+  0.51621537013393688713546096688,
+  0.311969390991657895966526156064,
+  0.83890647777450698803932943984,
+  0.54370750820133482930695388638,
+  0.98636765788772465929756760473,
+  0.77334255661128878905675504339,
+  0.57070354296508751519811368688,
+  0.8365252076669013372866223481,
+  0.344601601940890721182485798794,
+  0.92658930620470543221158939208,
+  0.72724523363899270076210273102,
+  0.413672082025645586061788451734,
+  0.5132836422023222169840403333,
+  0.82135610583961360173883281975,
+  0.423835065039748889417547786563,
+  0.87083598844595488941471761572,
+  0.59009392451459866513886634656,
+  0.206124826643305920436961792363,
+  0.288685540685143988030522421633,
+  0.7944357933456167153993184889,
+  0.090945230657758780394996530608,
+  0.52981750421369669363095418817,
+  0.091368944984485824360107751981,
+  0.81824925769562351657564377069,
+  0.083315412912658535228751011063,
+  0.59602276778799576464600065047,
+  0.52258035262146456789454411102,
+  0.394692074165738897132014378974,
+  0.92031214264405188928824363967,
+  0.32812665356161216265971156268,
+  0.79754299890007289545033977389,
+  0.3029021512227565310021437326,
+  0.81425785760698537744367921928,
+  0.85199399843570233736733560413,
+  0.096629890212080240754541391968,
+  0.60643798959967098211181910285,
+  0.75368518979236587723780129098,
+  0.451368813651510369666120626045,
+  0.86189868235067352904955566961,
+  0.239506411296874624231401913963,
+  0.143392266376287906568670938457,
+  0.035585084401323981008798496622,
+  0.89407531932950775763701297226,
+  0.56699767164913732414312190205,
+  0.6107715946195223295493238966,
+  0.980870588312723808697191463,
+  0.37603666613089681502774907483,
+  0.19565477083291620146833762404,
+  0.70326913680165706368122461762,
+  0.98247770640436619202690080984,
+  0.54911931698472764719220618506,
+  0.96749331150477343995263612791,
+  0.9349501605275792139661332597,
+  0.067704019779021886031495084945,
+  0.52883185005352261786874768842,
+  0.03879817199556086106868125058,
+  0.011268895714104342862021635882,
+  0.86781395233112768504418642287,
+  0.73610697666830606371057497872,
+  0.22595829849389174304359852447,
+  0.95990840938724981323147621815,
+  0.5938079875208820675776232526,
+  0.78655922365792476391655372464,
+  0.51099073264725007373467108776,
+  0.66474884887866769539664215292,
+  0.88640025828226102852258218854,
+  0.39889893489572927635368967129,
+  0.76340426725003756852384366924,
+  0.485534753598641026618647825146,
+  0.55957578573824837450384728978,
+  0.50840543283094885180866842941,
+  0.0102415845792896532313226969615,
+  0.74666891036262398733922051708,
+  0.49044748088989431070743849791,
+  0.184017043174756439606592004597,
+  0.0225210121470402648790231578307,
+  0.096909683465740960387467976065,
+  0.0521874432095560437920256545446,
+  0.108114343037383115951564617563,
+  0.77430486784405922952977031491,
+  0.73286432949907824441702845144,
+  0.083559249182272369453587951223,
+  0.074541345541671560054508020717,
+  0.55130541064331728019681677403,
+  0.101450912226971008587146654246,
+  0.74564503962660370005995595861,
+  0.55903832180264925580029280922,
+  0.86098138284846671753408133719,
+  0.76146956314354797691373262733,
+  0.5569854467166466965564479865,
+  0.61138555623626762560168304163,
+  0.93778268377974305185411499629,
+  0.106728342608615813606903105742,
+  0.51139895550624845300079248199,
+  0.8826404150665399364200384063,
+  0.79849755952621824621632991954,
+  0.60058338183244813128378689372,
+  0.57271235605091257806409062354,
+  0.134476676178095582804914204515,
+  0.62710051406343298533266304307,
+  0.21517566131268423511744492316,
+  0.87763268502269127056352092234,
+  0.259516013975152388767641295316,
+  0.54026961752737864438921779715,
+  0.0321012344232942464157113655476,
+  0.047765687217921465801489989111,
+  0.17851281529041807770891682623,
+  0.67864372391481596436180177405,
+  0.27188630999531652193578141334,
+  0.76570352378902765382129471855,
+  0.55727605717645959087760838806,
+  0.40035295538031700787360193533,
+  0.65772683660586524086245866733,
+  0.87515739410383285146563935658,
+  0.51637173718066431535845791928,
+  0.32843440805452173782945632394,
+  0.46789250836790673252530282969,
+  0.153916136058705475580104911632,
+  0.38115724589238346986896925035,
+  0.96911901452270741576104655076,
+  0.327510878721849788805057952285,
+  0.52921188196053063832762822112,
+  0.357891066893689952162669812174,
+  0.8109495999496825638917226258,
+  0.87378695338223548954000159812,
+  0.071735687760291841872657613394,
+  0.22099818521305441851106524174,
+  0.61319403424123059973018445501,
+  0.49185069904977836269777464774,
+  0.8465618819298531473261910176,
+  0.88263955123256235889766657732,
+  0.264605739218701311737446373095,
+  0.157257748694727606809000832224,
+  0.61172692557424578980817509135,
+  0.89224381101792427145783648267,
+  0.049436313890546252030141534714,
+  0.78472068655126867546237630366,
+  0.94890896727672958163705440614,
+  0.61244719025309458330037069759,
+  0.69652639673616920270100103049,
+  0.82306805868313923466426022855,
+  0.4619352653236511042512479492,
+  0.248913888569715263431474781448,
+  0.64972077945521993267494748532,
+  0.058989138867897862567374093665,
+  0.97969837050674699927934092348,
+  0.112860503606029382332397067852,
+  0.9148268966080465389473749031,
+  0.80522292073416096202056634334,
+  0.80810563925192214527344776336,
+  0.082994810842601316055993203972,
+  0.58154183958194788097113770541,
+  0.91401321304178026032151961143,
+  0.064162440925738934087179609749,
+  0.15233762499249088696399602351,
+  0.05051666992337641462246832006,
+  0.138526581114846840617440323377,
+  0.3330645447918149831766264793,
+  0.217487368997014213919568641696,
+  0.61893770768550649722673903221,
+  0.48128956859001312165262121487,
+  0.67074178502738313699688470847,
+  0.74389636308055141796746779725,
+  0.78623735396470085242463142878,
+  0.74044466560335570728816983391,
+  0.44977042205766449238521848558,
+  0.04936658918716696558210777333,
+  0.46898154881467544198433735515,
+  0.86577421926732888331279455256,
+  0.351697801257336354285066689416,
+  0.44607679846684358775746123434,
+  0.68542184287580537292736482205,
+  0.044146424753083577398366558491,
+  0.84496717026871403905274974765,
+  0.20398318496314438897842101827,
+  0.75107700174605698650069666924,
+  0.178571061661964354577482608798,
+  0.67178502534981979941629966218,
+  0.90847842600882488644789391115,
+  0.073076683947302775918335357377,
+  0.33981323802799502107773228774,
+  0.88205531070102240708858032672,
+  0.52395959911163033140017417074,
+  0.339537812421755656306362620887,
+  0.54102447887624739438002987695,
+  0.99615637434542139613844677579,
+  0.91178029521112995461052949527,
+  0.75825739605806537625994927603,
+  0.20376049709427102495755901889,
+  0.414724980644126108685694310425,
+  0.33340705339227162790042902392,
+  0.63442350111338002489027718102,
+  0.79083735924049231993808201264,
+  0.7022290803727963570326957922,
+  0.073051026670174816217706335151,
+  0.50842348505687696224462184336,
+  0.32363091931107924009593033016,
+  0.097074638787613630803324174721,
+  0.79231345620836950165162896374,
+  0.46134517653790366185204412042,
+  0.87767180094474465071641454817,
+  0.30504377737897498569142680272,
+  0.96430402804903305707372788262,
+  0.58722709934909516402891605024,
+  0.36287829330987989626587492725,
+  0.341369045118572012709880807167,
+  0.18622546427505557603629823709,
+  0.71794779555885705340742601105,
+  0.098775720656078510422828040021,
+  0.94170390436210924588938028149,
+  0.6256516749208606216856038288,
+  0.84990648194056707180867958453,
+  0.24897158268824763099382644974,
+  0.67126976686560821454618204853,
+  0.18287142221906188751198231263,
+  0.58301735289988287890086250316,
+  0.39451451502323596545833498888,
+  0.64778726863510310777659172018,
+  0.344060647976610102257104623935,
+  0.8543225374577925606075052273,
+  0.41721025737118350088955048104,
+  0.346301150923723212219486824146,
+  0.430145349151890094004681136873,
+  0.083653676599147505357408467754,
+  0.89927285917733406113015320169,
+  0.87717630249665962395834008139,
+  0.114609060439245285884826496387,
+  0.19079403943711412757743782207,
+  0.095752662525740063245815699042,
+  0.79249438764728213221559489213,
+  0.36889557473162465630046043798,
+  0.076691690566591062968137595944,
+  0.82502767429905549906741868154,
+  0.7665582347663079379259164121,
+  0.40329445688627141530172819257,
+  0.76025417855373928649612014969,
+  0.67742016809536470259225177395,
+  0.56458198627250149175789836481,
+  0.78923506303765674533158921804,
+  0.242546191857944356752822856477,
+  0.5429792204847717222270173404,
+  0.7269010821579782458839227112,
+  0.68884017933657182784660476876,
+  0.037868346502260087811459749823,
+  0.5900507745679403546108564628,
+  0.2867946536016681954708929644,
+  0.47061390957475445523849010039,
+  0.51289737877965767076806069599,
+  0.422963220866519099525024712084,
+  0.056516063514784913538055836342,
+  0.77559606292381102490968685122,
+  0.44812023547000818124896526252,
+  0.8496368064876247362896528731,
+  0.272242276648834925536741986616,
+  0.21366791927514210787832263868,
+  0.458126557153035507756298880855,
+  0.59095285049337797286946531198,
+  0.41387171106200290943847880691,
+  0.040527832792286543640976926214,
+  0.84749051864346812142321430329,
+  0.6591922374100337646083630177,
+  0.30504037894556796180304594549,
+  0.69588062596190762407598122745,
+  0.54615362946297678668402889519,
+  0.27179536774730804380125320985,
+  0.16312965572910266758089041195,
+  0.60443803311418335000528681396,
+  0.76221957063947757300487766314,
+  0.0012561481228798307955579245318,
+  0.38477311712200424042679172286,
+  0.86336953839931184684851388121,
+  0.85132017314817690655384788334,
+  0.79741410166633177181313320738,
+  0.81142674213295830272567127246,
+  0.90095974521916505411272740187,
+  0.461262866736651478343958282766,
+  0.163149749038393754125992055513,
+  0.079563568933303239293664877234,
+  0.0076308467066608702534098522771,
+  0.74020408989686798939059759005,
+  0.68004244363120265645245845544,
+  0.99423282025586676895879517721,
+  0.256512790150101579655974619204,
+  0.15841489307390214447222985222,
+  0.53156533193583516285295078457,
+  0.51195175518666885397864463638,
+  0.2688502522458221215136352473,
+  0.290743998007688539265414246556,
+  0.375642431327791011131765421904,
+  0.73366824563603699669790620984,
+  0.89031055476039433366324605036,
+  0.63269458446317741594059410575,
+  0.79677646360837164675956632,
+  0.91096051787867659208019728176,
+  0.056411022047894420770349313174,
+  0.7117937367428418076554349793,
+  0.494496454398059649677550547185,
+  0.9944698091905991687808626336,
+  0.195654008095567563746040882677,
+  0.33245249703376584453346565181,
+  0.91671965905832444523554539619,
+  0.104159073216349402499760928077,
+  0.78250381705179599027513221262,
+  0.82221952254403323129879405024,
+  0.25404653774104883427079980313,
+  0.89334850648967094099280368977,
+  0.2721479244387740074938025269,
+  0.58627710421889854554604323774,
+  0.80740872172002770008164688167,
+  0.295213737773499230779293451686,
+  0.366266263469556210902410635735,
+  0.72189449997560167388059780325,
+  0.91339160960295327548014703572,
+  0.27978723834100283634925494393,
+  0.44312275285067091147157546317,
+  0.88264479919648468925459438057,
+  0.74860386620420068665117140949,
+  0.97534502025842784289380076051,
+  0.183653687608870314454061893335,
+  0.14143760686328530307343938507,
+  0.7794390875763962068165432699,
+  0.79988123088296718350409621263,
+  0.91344402454829897860268279997,
+  0.3003753710559256572305330721,
+  0.92236868180619898327118824659,
+  0.85128995509445007265453349716,
+  0.51226586850988855988005111668,
+  0.59328586801467434659081264762,
+  0.131543061349700789237108200816,
+  0.97962864281984756641024957818,
+  0.80003961712390827564285728721,
+  0.07332191035039234849987853587,
+  0.33710892945255754021249327366,
+  0.237798240512212115424045579506,
+  0.050628096786899757905464602857,
+  0.36368141580193860149061967396,
+  0.074547282281222729072803274018,
+  0.32013351651022219595136046535,
+  0.50087363542319392259892635316,
+  0.95534128322832584718763016378,
+  0.63089810554419660091974256912,
+  0.45937043591639452731937380837,
+  0.77794827072126710252068287081,
+  0.5833967217973934570703322242,
+  0.89948711130168823436943591707,
+  0.88448792344727137087709578749,
+  0.75774410588649351850782212564,
+  0.51545850808454807305763364038,
+  0.89535564141616759448334976604,
+  0.433876155086630438489414332084,
+  0.263145194001722566517185175524,
+  0.094513715303174637696079970882,
+  0.0067905149976316075236601623182,
+  0.3746548325271489972742277758,
+  0.81418012245523025207375976459,
+  0.7382555515800124086679648947,
+  0.71505454385778976492869269043,
+  0.7698698840252614242858413632,
+  0.53096667868591647121855295207,
+  0.5913146508318579789498085478,
+  0.82865413011200335887487636747,
+  0.246477924915753655378269255135,
+  0.7718625116939460952174295485,
+  0.33088224685104582360581424038,
+  0.077396220323469426942810035952,
+  0.399851739373243384531661374094,
+  0.74828949567652386217126904324,
+  0.55533476993642340021791702209,
+  0.475356366587838670689554086714,
+  0.99199926249299355831492581518,
+  0.60739053074816626181185925167,
+  0.94570422855790142383862352906,
+  0.67410117583869264525962136333,
+  0.99340016295179621471645098914,
+  0.30521664837678549625426072163,
+  0.82786899862234431119578444516,
+  0.0246054418785779831964997687095,
+  0.33057040500642957115284791089,
+  0.325865542252271051046671982904,
+  0.116469964535698881624567000313,
+  0.38792519202192930208550481713,
+  0.147033252049062199325747990948,
+  0.333360890210745561370686771174,
+  0.267717098935309378552279527125,
+  0.473606191830554736751491306975,
+  0.69379726024488030302072707274,
+  0.39866105325920152799379542147,
+  0.075996151521605600512218326895,
+  0.43692155239290098173990417979,
+  0.63183509185797834489905365016,
+  0.327726835190132824885685947736,
+  0.82769389015654780671213364517,
+  0.38036542617183448008870457384,
+  0.06416363778906221378580326597,
+  0.95989693996326393340364540321,
+  0.77473792948077472252492320019,
+  0.73353080354752465520384745159,
+  0.79531316211939777703706647305,
+  0.31887745411495362933791547194,
+  0.5504233366621661345254817397,
+  0.133841546560512334978343647306,
+  0.93323316393590598213508657757,
+  0.219534116905903225236593922786,
+  0.352227557302752346568799070044,
+  0.50699048681296139093781410327,
+  0.56063256677949754339755086295,
+  0.97859418495668224120337606178,
+  0.43217748779939454097021337034,
+  0.6118800794139137562939270606,
+  0.8826339041571606455078384688,
+  0.190654349423411314990846249777,
+  0.0272323818569649486990095499454,
+  0.13501820915175992368033644254,
+  0.34430252524220055863712676536,
+  0.135013324503164182485257894453,
+  0.83301344777287732687815180326,
+  0.71146270180847724757833953093,
+  0.059584725284656364940760846576,
+  0.124388342467555907606115942139,
+  0.86760011350010388002288781466,
+  0.43443235444248399222879725088,
+  0.62257025564267773540408523682,
+  0.42224480338939459869117553607,
+  0.122203729563367693705179104655,
+  0.86763329805228175173701751082,
+  0.61852711996472568821866689006,
+  0.9981036801779161471700405786,
+  0.177126618334123901292041594724,
+  0.37033568941002233661950847289,
+  0.81720705981865203019383851894,
+  0.194752883553301253160228353622,
+  0.5399475493930702257701115294,
+  0.21555050095259535717046390477,
+  0.031480898918419061738395489394,
+  0.0108626235742996694506893658131,
+  0.29439861659506237876675916168,
+  0.25969803792963051605662393213,
+  0.64305111681301349941082616522,
+  0.398301763391130971280749586885,
+  0.82959279528518208376169366062,
+  0.494452121232255582677051524076,
+  0.032046850110252624668328949032,
+  0.304808216164121089322038632124,
+  0.43743086801077933536332835933,
+  0.067635143022119684849606244687,
+  0.062601171413915686472972559687,
+  0.80704249768256597155262089974,
+  0.049090587901867220876053770281,
+  0.14290280489067737067786839775,
+  0.85153414385190808252068833198,
+  0.052035578866778404379096518691,
+  0.84803461110488710482683367176,
+  0.323391780352303842858779454674,
+  0.52713499343541339922976296515,
+  0.91034109375479019837692785976,
+  0.106146556890642346491650008212,
+  0.291532189474064930184344798145,
+  0.330494959183718721493342551525,
+  0.6236537208920888603043773443,
+  0.89122121355780761549659392994,
+  0.51799810738861013193016943087,
+  0.249256177739037963581221438965,
+  0.76322106809612787470242640888,
+  0.97852511972383831461233976406,
+  0.52255677693690499607690355455,
+  0.4450034860583097087122794844,
+  0.79114162250324775713725095404,
+  0.94756217345536380876998110362,
+  0.58677918818329126036021764787,
+  0.84845252924877884299669190981,
+  0.30081720041370757827674016113,
+  0.27920525653128846538023076229,
+  0.33471466998109052439193176801,
+  0.77432114969973711331784009482,
+  0.79975078898170550460312445454,
+  0.90029380309155505829673878957,
+  0.22735855793472972935624370264,
+  0.83917898101167717908999667914,
+  0.96001063929762371813642857618,
+  0.80557845129235602137075744771,
+  0.227828260252387705994553631692,
+  0.45514459312672738783331856798,
+  0.6996049090759249573037751274,
+  0.76407211467383802388153449844,
+  0.35750763601712374361686514082,
+  0.090157662209549066428683554241,
+  0.95043897530001474792481472865,
+  0.97262166470012788338731033975,
+  0.203045895422423613196589718133,
+  0.217437635156560627036179586425,
+  0.5222956932204809424910993278,
+  0.52865060708104384493756729767,
+  0.97715373213739469800445297208,
+  0.5740174414400501666597490431,
+  0.172348314420047937640907870932,
+  0.57197038071649167881433868039,
+  0.26289948915209002196358225729,
+  0.177903112174726341611524884074,
+  0.74917239660013094610681443816,
+  0.59837085384984040836442442706,
+  0.065070324689375259831989322427,
+  0.44807493892928848916566949155,
+  0.59027783360778386064107723777,
+  0.122058971772529617939528531479,
+  0.18965096763129552013799044806,
+  0.179455202785822708296801760066,
+  0.032170979041981235014758366854,
+  0.297222966386620738492021519056,
+  0.91323423393143490893801153646,
+  0.75998869946268189685327906564,
+  0.83934073246383862944110864099,
+  0.17898779712956184324621175982,
+  0.480986398855505957279379560397,
+  0.60860751560721289727164165043,
+  0.298927282590269088379100218673,
+  0.77935020447343759584143119835,
+  0.480545242963934573648858250607,
+  0.85619790637736236353631524289,
+  0.96488893882602300700764346564,
+  0.36351865634843046736230405883,
+  0.82895257550724293657223335349,
+  0.79749691055514662573933190753,
+  0.20106705267868388883102752272,
+  0.33623918491977977623116871123,
+  0.93256466340279772952587363977,
+  0.88648669501682764515636262464,
+  0.47662235152771500250187825963,
+  0.52659238455883068245922982067,
+  0.94111676559395948458425469814,
+  0.323317713690175795284098362026,
+  0.34796405933091263994264450729,
+  0.52445433363119391822452105405,
+  0.525140277317638922334264421,
+  0.64469482443585357444532895759,
+  0.33472685924872903603447879104,
+  0.42400458791646499703641118014,
+  0.8222662798441265944554029489,
+  0.75524567154228028735673060411,
+  0.90790601849806560799894333131,
+  0.75164241313793249434488428193,
+  0.38724602290468111557712203885,
+  0.36352513950081020449187506395,
+  0.078398790907179055722325452963,
+  0.5003676822199407758422514133,
+  0.86055044548361328714384972985,
+  0.66748567445598821900669819042,
+  0.95450644393912187127659765969,
+  0.9536501355878008523425355652,
+  0.56207573012593503802043957099,
+  0.99057795680550440527031916411,
+  0.056136908924222021770088579728,
+  0.89322960593560085272815946927,
+  0.19380351076299398770342941398,
+  0.036881975481577328074706357897,
+  0.38834900979665334617449710449,
+  0.77196507761008668275581490587,
+  0.87539115393397618421355963533,
+  0.9131721846286054396553858461,
+  0.62245648254908013430163665866,
+  0.56021174819199355559539089633,
+  0.86987294559046384230921358438,
+  0.474584307464076041054198211805,
+  0.37224942408757353492416873571,
+  0.198307276357215222087716993615,
+  0.81633548414328354008913860616,
+  0.071192681637945014051745371309,
+  0.227203421058334439883665388655,
+  0.50527083273847576806586104904,
+  0.25911353175247232791676189983,
+  0.103567996992606824957067451526,
+  0.98316826751311017109085781757,
+  0.99206610065531611133123425907,
+  0.63838444880264351660305680771,
+  0.90013304139719692321619239255,
+  0.541419881593941428911392944,
+  0.434681681520065487913409442927,
+  0.0277935905905462584654818408167,
+  0.28736085880215502013374946299,
+  0.204706679291990486471085620508,
+  0.29639415300325412139805373353,
+  0.316818074164048785111401123944,
+  0.58068268044073033182148412246,
+  0.137736206950094621238996907006,
+  0.80907996549523150166492783923,
+  0.73799561611209772635015717353,
+  0.84013433924397440368969968592,
+  0.46126521311414726401422152854,
+  0.78013716447507497359555980298,
+  0.83405708922951231042933175851,
+  0.6366367969739079258896472192,
+  0.77353748358406402598000037557,
+  0.17489624725635947111471117775,
+  0.80267952648428412026314875447,
+  0.80437106861315296029137160672,
+  0.62834462177566783487584779777,
+  0.31539602345858033626133832055,
+  0.50541890853061839219557074283,
+  0.0195874476781850222509795360627,
+  0.011676447193909007242643314705,
+  0.85675479754070644130150816794,
+  0.09391269154749661204040398199,
+  0.369625667102334643216258483376,
+  0.84311577046357953313746551837,
+  0.66438426715728382263582851036,
+  0.70530906415261448155650458603,
+  0.446783684004800041373395690117,
+  0.75627790284213576819810990131,
+  0.57190285913753158265774292274,
+  0.97785681370875218892539297465,
+  0.0244503386494348881614690746194,
+  0.48528430854909558202793141933,
+  0.89436155397807056672243211894,
+  0.40757489194485346255194449191,
+  0.91772837786834838909335779229,
+  0.28020326531649972709359017096,
+  0.28847822326776188982020803144,
+  0.93193769743225684077624356649,
+  0.58336147304815741644785105161,
+  0.4004241800179331174134885947,
+  0.265790823692672203607418801725,
+  0.4137092141145146388568879939,
+  0.0255090449126572366852573357318,
+  0.47601725598948555645487446626,
+  0.69141516452580797436419291497,
+  0.187709862166242786826507443003,
+  0.31177816288567708916778389045,
+  0.79635247302484103596788484137,
+  0.14648403361265752358955335086,
+  0.0088027047060531475573345163528,
+  0.90053967411241805345616039474,
+  0.373822238382428585287035417224,
+  0.94303097002109978273901800507,
+  0.037263906643698883423150604649,
+  0.98416823398276433881119247311,
+  0.257766562836474661728601317803,
+  0.09336855716941364387765222813,
+  0.057604551843195630210060755775,
+  0.37732024813036636644231432449,
+  0.437099108019093398068604946814,
+  0.0298274889889844501626534131975,
+  0.54161045457572229928359302347,
+  0.354192069739745951755754451894,
+  0.9952629304832433588789284291,
+  0.61362350596285189174752077338,
+  0.23176197923774029736185020682,
+  0.259000332877923815426717028414,
+  0.77171708810079063604185854121,
+  0.87278431247491539306511051532,
+  0.386310463821549823085972724515,
+  0.19043920209178263945663905422,
+  0.77200547833114724875436606573,
+  0.2683024354984293205497398925,
+  0.144270112550972640008446091075,
+  0.36996280314557984925474224612,
+  0.163548224543250866742712583905,
+  0.54541238293503241055380526708,
+  0.54270760938500008382580072956,
+  0.7374073253240524865446763851,
+  0.93470960326436177572863031654,
+  0.71417607213823278615975270201,
+  0.65837463356664939532769528292,
+  0.433323451649582925271830911365,
+  0.79664580661766246494864588315,
+  0.392079017934601610514677836005,
+  0.212454387416532999103471570235,
+  0.198678082418012501322802116335,
+  0.61525672800559338657275986197,
+  0.99339589895181138684928419014,
+  0.53563057949945927383392076793,
+  0.68817192513245948798192690082,
+  0.59671938169380086666866042956,
+  0.5686075254645125832635026196,
+  0.25860953535454698758704936914,
+  0.60779864941995215785819783969,
+  0.46515241662568547274625942204,
+  0.8756966078479474164213834749,
+  0.89153160343113076353740745469,
+  0.57055911159151577684982200009,
+  0.39366246576557783924065683256,
+  0.53789676931469921495851209609,
+  0.95842028586447684249630374944,
+  0.25218284880717367924827402845,
+  0.23718965807272971860203662735,
+  0.334222632819004380754702693406,
+  0.6370849366068287810411454729,
+  0.722665796162802454203702773,
+  0.50216248905279887048328225791,
+  0.34529823309520970630714708672,
+  0.45098892404492692601908443802,
+  0.64640019115293913591196874603,
+  0.137077316379736192931987264458,
+  0.29368115076039970149731521521,
+  0.20091822953913855557804069085,
+  0.066267083813833718511605782276,
+  0.88094596104423280074202839474,
+  0.071730322265966936504743175424,
+  0.69735904142296779896396736035,
+  0.91352594564083795862432502567,
+  0.13244220377041278512040316988,
+  0.6283911312781029516331064494,
+  0.34896540167805105781090114462,
+  0.6795367801751911186206756471,
+  0.74898526486791573083377925403,
+  0.71700182398199203349731046015,
+  0.121142833366516620257163901501,
+  0.32678002036857151533698078636,
+  0.327511655875027224450064555456,
+  0.0079152053645354575349489795814,
+  0.84748954479623021059675156738,
+  0.75041561033954009809301550159,
+  0.41101693712463238996746228193,
+  0.90155864029338267639417046915,
+  0.35464670537047753945618208157,
+  0.68848712573944472430623590326,
+  0.08893193373618063124738179594,
+  0.58932830480784385636485098641,
+  0.0501618828375381577588978271165,
+  0.9451968329901169788400753848,
+  0.074994725566097580721185016702,
+  0.191860088196691871607965261685,
+  0.67853841063536805868885844477,
+  0.179445375284033906887325905976,
+  0.84157620913886056000430779083,
+  0.7377942162322144186341324232,
+  0.231126715579023126062082806996,
+  0.127662509645324778320005407937,
+  0.63062414859560283674777403205,
+  0.55283326072907470543330204975,
+  0.81243486031688046850257374808,
+  0.299095175225750536694802628506,
+  0.34284433830834748530634854762,
+  0.92098838107935607957057329632,
+  0.6334432153537539286206936299,
+  0.49203336326915182548719200464,
+  0.70089872986754081776092540042,
+  0.410346112246289262244008861334,
+  0.689375704219352519232614571,
+  0.53543492718830214408075484368,
+  0.78985504761729292283075540625,
+  0.66802245726332267870092702429,
+  0.75600588548341120124374250114,
+  0.83217485519464083512235296359,
+  0.77758150309412736979136465746,
+  0.067382141804836913185384124002,
+  0.7289836962356747770023887674,
+  0.453434776313686590560640460504,
+  0.3160796148757468204057886796,
+  0.0098933475787107681104048511314,
+  0.3620064234142809735084479026,
+  0.85993179373877360456391909506,
+  0.90684883450763884954227285187,
+  0.75959171037325548903969803948,
+  0.91219881792279148536349496306,
+  0.97175430264940118917041244436,
+  0.292364544897748356834218017667,
+  0.126096590956329503351026499397,
+  0.058210669685805595156500555938,
+  0.207143479048534791976348255132,
+  0.202837039257860939456824357966,
+  0.459137240079351948795601640776,
+  0.65480905235794807223708347609
+};
diff --git a/tests/randoml.c b/tests/randoml.c
new file mode 100644 (file)
index 0000000..42f51e2
--- /dev/null
@@ -0,0 +1,1028 @@
+/* Some random 'long double' numbers used by gnulib tests.
+   Copyright (C) 2012-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "macros.h"
+
+/* Some numbers in the interval [0,1).  */
+
+const long double randoml[1000] =
+{
+  /* Some not so random numbers at the beginning.  */
+  0.0L,
+  /* Then some numbers generated by GNU clisp.  */
+  0.709874756135422554674614242046304686448L,
+  0.486497838502717923110029188864352615388L,
+  0.474019570990182753146861083750226106848L,
+  0.998821069612940336401792152067298257397L,
+  0.68230324395444341476284133813649237509L,
+  0.0812383212795450007980350531141537177532L,
+  0.43131112016001535977175708439191217567L,
+  0.1596337172541222285215378906083607753005L,
+  0.0447361192177328171952931546845870270203L,
+  0.669148550486018286115665314826153614017L,
+  0.398752708644620313955955676251505325896L,
+  0.600019492390024166744893736290881101244L,
+  0.78337397012688890834008412364808365851L,
+  0.747414410152603863408503379239564644402L,
+  0.550615721371501982864462175362996180322L,
+  0.0073983673767251687422683917248311760491L,
+  0.693846360902780799478892082407382699085L,
+  0.751592057901191172906159475240427353057L,
+  0.74000578784995401707243054106755282117L,
+  0.847264623235961908747497547605068838836L,
+  0.917431426585209425652777605148791919017L,
+  0.267532476015101748449269162884835638528L,
+  0.486834088208986505203048715784492259319L,
+  0.4580154564181484580770749178538567666L,
+  0.391521076582874764982597286237947922907L,
+  0.69173131929214083677828129436922728366L,
+  0.995268639187054867212755710743514657877L,
+  0.553189251912843822062196619876802699895L,
+  0.632300552505301947698796653386744186037L,
+  0.445572801006840927064646197943103543344L,
+  0.993634311396905276414701816228609517838L,
+  0.611582274481091436495638926486363711255L,
+  0.017611091105275929341544154464243038417L,
+  0.598936378040443270534796418637146416803L,
+  0.939730325871014729497001074244817030738L,
+  0.385712528561693907444911228190200940125L,
+  0.48796444333495738271693214259711532603L,
+  0.508634972895891442259656591497940133962L,
+  0.88453398179301716552318999435310293852L,
+  0.509099535482633468613040057130206639612L,
+  0.333677997666677081186230843198919594355L,
+  0.82715349353996770180499230535973424237L,
+  0.0372593663309767971914036990047894757662L,
+  0.932828780275931267421133064996449298348L,
+  0.486099261359133830842098860485004683725L,
+  0.987156392631551825781809767746170502002L,
+  0.824739790678073493124786291053674093535L,
+  0.671869573118280976952523743592826377585L,
+  0.48088844444394888967684860088619551899L,
+  0.017233021606613044454327510797750273989L,
+  0.988102711714879869326666071903065279145L,
+  0.091615081537455465573860363408517029583L,
+  0.0113278995312253231106729997476313183323L,
+  0.294349528513080028346115860151112891433L,
+  0.0097058790914280197566968241982258935964L,
+  0.715113281550035710673074854712220192465L,
+  0.739627170474553083453358265804562580162L,
+  0.588476045636558489860462119645353521893L,
+  0.91330346819098343970944232526748274664L,
+  0.281457572112513183673653575304242456425L,
+  0.784192391468991402261628322552430383283L,
+  0.504857923842698553133786835061714061812L,
+  0.230410937725986177704701374433825197397L,
+  0.535805811877939822805608704986961969659L,
+  0.0508287955596506952822240797812703550548L,
+  0.179399756999629053194209501169297540332L,
+  0.675837373242984020977236431747771655704L,
+  0.981496523455084073391380532008173135055L,
+  0.325845075647804753424852268729037997407L,
+  0.832630951427200447589084239299500129776L,
+  0.825354056334755646582091209610369762364L,
+  0.574731012869980895104127749738122205757L,
+  0.799028354294603017571131513193291020045L,
+  0.537721586879667191016369071169775496218L,
+  0.83846801885738807298552515294277869191L,
+  0.0922901597877978587435698953162723703674L,
+  0.434458505758559675954739433438496373717L,
+  0.308017320632506922735963882703835222897L,
+  0.0192693232310748837390370764187488626234L,
+  0.65275462537999797862908920689650691667L,
+  0.357130585286320841741290333260811815153L,
+  0.359562085720204868627653630044659240449L,
+  0.758320826841831017712067337815543048118L,
+  0.62169722559489484088614873429559348682L,
+  0.17335411409874538731529771306978631118L,
+  0.154077331752487118534287271363344964006L,
+  0.148559174998934930922746358844164455867L,
+  0.881316225913391098839630896554038163768L,
+  0.89289796752480477623907740261818685845L,
+  0.57786655574695620371527391411424563834L,
+  0.318175774295281868509200498351278930862L,
+  0.194978302204782205514236430086515458283L,
+  0.87084962252516402992532937666368998137L,
+  0.362113882465068209502300826516448793743L,
+  0.273446496762640462316848141032810658473L,
+  0.1471399192242189033406154289397228481905L,
+  0.937157507052090331728212622934524925056L,
+  0.600045430164287985733450402316667890373L,
+  0.794478865621258499047814379367829521507L,
+  0.889115878933706260333129391997704491913L,
+  0.631825206206982866021784416451887594472L,
+  0.966422225095067311240936396545408962515L,
+  0.676845470105427028205320649846678927664L,
+  0.671163783319728784750606328490914935783L,
+  0.213726274743505026386536996423761328083L,
+  0.99483340496284948345969144891145513965L,
+  0.362072360280863974302182899205431874295L,
+  0.89135316959373017710710890812308229361L,
+  0.861008403776277958081202417380537907424L,
+  0.518258469677886348298849030872657409393L,
+  0.74995117457421590827489329835282465567L,
+  0.141688060236646135992059548400562463963L,
+  0.231055693687838328234866575264314255906L,
+  0.128367320195147852998795956530756587271L,
+  0.735643745226188370911313880883935933086L,
+  0.481951681233521227023903083881246017963L,
+  0.29797778097740396719094352844253033076L,
+  0.259026843185033526978277511857498182853L,
+  0.76454793636766387350530239448634042225L,
+  0.921742101320371872828332060575170679558L,
+  0.135594574885855893452962438848740230435L,
+  0.249482789438500604376469100084029356821L,
+  0.447893460512394580798054060401740249162L,
+  0.841167533365717681130523968098862274883L,
+  0.063885342343669943206116658917625959392L,
+  0.49268569222220133343083683720155184169L,
+  0.0320364278163828327673837310979596079469L,
+  0.83067006037141488187036282222404336846L,
+  0.32687090604018629599351990634445890267L,
+  0.524229581985562678867475657633756672726L,
+  0.26442137331545990230136529620604338964L,
+  0.1804465247704923307363156457827584866855L,
+  0.219897692414720290686302976466475627349L,
+  0.657372240957848561373923532613997515665L,
+  0.94917951707325275578037456019158874452L,
+  0.999935336870950506894538846120127792282L,
+  0.334292387732229479489367107895450895382L,
+  0.519605753222230586160238890634421180626L,
+  0.2353320030331258205431171147281090084686L,
+  0.697837952881171466097464830413620278996L,
+  0.337355949172173312279209733133367570558L,
+  0.59624609578396787690174902306338541087L,
+  0.430566868363073838098964774826687118822L,
+  0.303143768470597821848720008902412356097L,
+  0.45566572082779255052299434804712613961L,
+  0.63651052470632278377988990008643926753L,
+  0.88355849548999550762491205909993278845L,
+  0.857627182143034336666679544569747793963L,
+  0.579654405386150422035981447661995358225L,
+  0.527551502180559045145630115424486189773L,
+  0.227798290812497436015108334865799792168L,
+  0.860285575656798735433746383563482660567L,
+  0.657434642899561800145850990323893418457L,
+  0.991915916857419346367596676050775541352L,
+  0.0299053482258395117883768309912517801074L,
+  0.494186962160200346319995839440170254278L,
+  0.795837941248740362154274095100822390282L,
+  0.213898349709271555518444444268604992712L,
+  0.635385838537788174234352352696939407706L,
+  0.1161960540496013767418067989853615145483L,
+  0.236636716576793997613161803474856412323L,
+  0.250257128320679509772248555959408855321L,
+  0.754809883956726591031066199439807350575L,
+  0.240047496212680591313028855365466345707L,
+  0.125918185384015376472834932789271923263L,
+  0.830761928512260978768305988740912711273L,
+  0.0833746595456954680423678981938324373477L,
+  0.993235018876045312632920249583820095078L,
+  0.74457886551486005017424251252790500917L,
+  0.904041666312003998553971236017433817041L,
+  0.99682247674917724207607173416904094376L,
+  0.778185258630194559195184600522592063632L,
+  0.617908428541966249479693433082678846704L,
+  0.034201434638706652764862810175677292771L,
+  0.1166825963578175046863759835887066398776L,
+  0.618184997077951045734597662867931774914L,
+  0.67223166229200793562043589747700629457L,
+  0.50367723015643325152991864733820551338L,
+  0.287805524504497224349445840278160308547L,
+  0.418530565562949537953621246456529701546L,
+  0.356577284504836083965140033686046682705L,
+  0.727797226876543100474285620953868682292L,
+  0.261158535215243995918166290296126543963L,
+  0.1233681715943113445590872776925938156L,
+  0.397342365090131218507373938120760734013L,
+  0.33651833905580176460704582099080050591L,
+  0.124851176251609572087737060478799388707L,
+  0.49869389018540295598691678028277690211L,
+  0.603921102513219725593707198424421456834L,
+  0.0288068305492076274901316515486696644854L,
+  0.27635950491121559708402485015430409745L,
+  0.0219820746750707161670181537628175322048L,
+  0.893266704905772978187424688068554761406L,
+  0.055131714446612192984065196401480701447L,
+  0.478917803887421452005543212818108274705L,
+  0.1089109338581245135310441557812062287244L,
+  0.451355129465699006367714322379179082201L,
+  0.933539696310061306235683130737189659555L,
+  0.295046527696521751967458467625754033345L,
+  0.657654030109877699469191835246373699585L,
+  0.699519422709288537538980841108763784234L,
+  0.754780411476609088293217972311402262028L,
+  0.940185229424181440596885768821586612845L,
+  0.641206442188302531301220212171259413504L,
+  0.483623421775598486212538785028426545698L,
+  0.1819507033406890598006456890391145571876L,
+  0.3493992184159313422014002142021878866L,
+  0.2282143482135155999703670773974654680736L,
+  0.65404355620292102948676570623901452325L,
+  0.000126697620991797753719907018394969483701L,
+  0.000128697615694221449450257101713351917085L,
+  0.66277677565136622936757573048183355679L,
+  0.954427508631091518542647272554320259L,
+  0.821452416615550557725422642536361482673L,
+  0.783949133156224682132225528942727293192L,
+  0.883688268329322182794294084718215227776L,
+  0.887198477924019626901140168907684736036L,
+  0.301153686936585019868640358522761168745L,
+  0.97031160152938862140377079439908121466L,
+  0.613591225576913510391808189718881180802L,
+  0.973773801885628446394837963774216539007L,
+  0.969946092528631153860793542995840284225L,
+  0.0552318705490405481104532089875456066346L,
+  0.398506652226642658353465649824893657953L,
+  0.577466681084525459648007205600389579233L,
+  0.538305717497527581210294472297571817608L,
+  0.0378969572225333661087665511893845011475L,
+  0.82821208446292402852221418490682507414L,
+  0.207039760611344134455359310666092356869L,
+  0.278071434395492049592363658721835175976L,
+  0.418157919791356829061560807874478279737L,
+  0.917935426878916775097393966246600470752L,
+  0.968879316988430839484738642933327229065L,
+  0.836847484003257581736597938908686488306L,
+  0.95787762740618523171012745852536482523L,
+  0.381833463284092269744674988738521423563L,
+  0.585758801118634412354899474049588357203L,
+  0.590675098878457580254555486356030743515L,
+  0.999102261786447498899644398829003134788L,
+  0.278723779765613710807952395929736248799L,
+  0.150160483677965826860533794972733497469L,
+  0.39044191915595120943090707935299688844L,
+  0.882025297705744570797306391637391855587L,
+  0.26053886056730883704893455389142056588L,
+  0.530123960707389279621444598593626923328L,
+  0.307497951588709795568291546230129131789L,
+  0.755712717002473210112772528495042985208L,
+  0.403971099596680128749039001982260210321L,
+  0.0955902605698226580325595772471302440213L,
+  0.733946822526846681865131682504158670327L,
+  0.824558199580936798107294631591949429405L,
+  0.355777480091076251706346214380424670616L,
+  0.183210308747040172107746729630689571628L,
+  0.943081072447366944673610412439697363267L,
+  0.823437046917209496498923793615721213912L,
+  0.272212671889142468847791216625072718846L,
+  0.467586497114075237282436742306271250655L,
+  0.965430243779957305809196327799423550657L,
+  0.264527585376739963287684763043832918263L,
+  0.78305929918791974277407705060017330726L,
+  0.1569161089271269079867408493909342109635L,
+  0.385890512318945048667111881493883277209L,
+  0.748768801714747310036929893375463390286L,
+  0.9607241213632062657075501565333113635L,
+  0.681005349771442926258254424282975745535L,
+  0.417404611754855157969846623218352380733L,
+  0.384922954690351156114438668003273806442L,
+  0.0248688875333777009659560293287195312336L,
+  0.289622732329138351547499030028075517487L,
+  0.356660798938142089830284922931103513564L,
+  0.1092119220339924538904809107210351902013L,
+  0.263044604533896828574983495057823392153L,
+  0.72916056882229781356884933113775509031L,
+  0.277279616044198734111166028359400949283L,
+  0.448496025651349045553194567962243478962L,
+  0.397797975606664545700620422788810306397L,
+  0.915573317477921170464219734057440942223L,
+  0.565957191780698852582910000301549192135L,
+  0.0199640867363067059474765492007910956547L,
+  0.380718754942963039702539139065633248878L,
+  0.271561535356661429325107452975658450244L,
+  0.65703383768996023094650337496290243735L,
+  0.810303462640169412310932301780031244584L,
+  0.34389677270659068303923976829417662132L,
+  0.1459701849396526086771469906702178205394L,
+  0.0709566883230581731990192048699199874356L,
+  0.0273188133279639766234319338307950998466L,
+  0.189257375093862859152281617127963424911L,
+  0.483370049027267515091110020077746913052L,
+  0.6121051307445822901845022667347352688L,
+  0.0669683489197768142011855877890933175548L,
+  0.0462440353376468071116256899031962430102L,
+  0.66179099750239749196171922709429044667L,
+  0.331447780875915347204488922360787127231L,
+  0.88878630766137716878808504113561041651L,
+  0.57831688009568937419273238575083437733L,
+  0.1665758643537997337473156606765968668944L,
+  0.609499751553850514507525575752744468325L,
+  0.842660412678850878529299409778020570114L,
+  0.868735885617006579468607975714721515953L,
+  0.518323673739076029376626898444587264186L,
+  0.465048961779768578307935679739067346325L,
+  0.739933063031511059934522150792493137138L,
+  0.366097491036976922528977805725731033037L,
+  0.622890978255856721366594654155975719428L,
+  0.945120241233001881267096151974150875442L,
+  0.711795000549305806399598132955701848342L,
+  0.120093380051693652573317820347038096902L,
+  0.461420048084338423641881546847056927696L,
+  0.201645977777376722385295339631509175754L,
+  0.1479402104137110360277226090924965371445L,
+  0.287960179369955828242600303166176042591L,
+  0.788362667534075941033937374958276358103L,
+  0.610312055398887641020833805884097007991L,
+  0.758450801974187424825814780682156814865L,
+  0.64208882693968320907867911523798381855L,
+  0.255468285690834138126389042932304445888L,
+  0.0370478385689831649949675007793815537737L,
+  0.551880617631056560992613768623601574096L,
+  0.559262357532227558112085482526038868046L,
+  0.129705275018847798920129782613409588523L,
+  0.1076289463968801831500602693982998566697L,
+  0.272506325706516323678193293634687081578L,
+  0.721990855538151706841764025895777805643L,
+  0.523084042169573467351077180119310086396L,
+  0.0858615712848179826840482241961243288956L,
+  0.589714739430299853251893655400362103563L,
+  0.512412326166823937685402214713910254025L,
+  0.802350747297003067442509635888112412853L,
+  0.715817091619681167941132068164905209087L,
+  0.0824951218034037355816988555328185436778L,
+  0.829228234554153070848595829448989414728L,
+  0.59652037694553054648270061009002150308L,
+  0.133585725647906582691822880117773950377L,
+  0.812005216254498654412124509257882599085L,
+  0.808142463854396488512203093936737654517L,
+  0.570217922503074432494487309472855783614L,
+  0.704017977813333280013384719294741845102L,
+  0.0251797587779118690185681150429720019843L,
+  0.676272439608475367571481578590700290242L,
+  0.880796414989798318500723261307937258554L,
+  0.387922631107753361553377889431536170676L,
+  0.282350224157064849683455744598629321323L,
+  0.721001172978128539392551761867898599807L,
+  0.98720056526474911920598612334425157851L,
+  0.9951900286811655251775209231187451065L,
+  0.051844546479017627818996668613208776283L,
+  0.103738972117399718145836730690615155693L,
+  0.228544758674525285763674099492074936604L,
+  0.429309402103194762341587536897342160049L,
+  0.564535575507982971760351294178163523416L,
+  0.999063571593237112671743187500362701266L,
+  0.340374156369508513494787137157934959152L,
+  0.778748988242111504661479799747122556733L,
+  0.471307010869691772647781526213794708743L,
+  0.289707428078962269353959639691462373973L,
+  0.826577651264033230456965284610788939828L,
+  0.860667694131974131835140122175480202008L,
+  0.596405567348984902495263677852931818947L,
+  0.79786093770390728560184577433203234578L,
+  0.85492142888696693237980696048371212203L,
+  0.57242705004809831263405538576519171441L,
+  0.829648119655355629047392239460860046016L,
+  0.783260316181642610272420809845230036294L,
+  0.0941718863377651336163202407301145871807L,
+  0.156372209579300482444127671309443664823L,
+  0.95045258077372510217507306087908380692L,
+  0.1885289021059534081345247308001373861575L,
+  0.660776653890123229320677431688026234587L,
+  0.2333507388961794003755022400755269739225L,
+  0.926661255852332295794894190183342387092L,
+  0.862240624886232672002503279536846219655L,
+  0.093072473040365648693897225471155002338L,
+  0.210437952956145192084247103889970459783L,
+  0.98112543168220233380555460117617724093L,
+  0.740174391774267645790688716222038485627L,
+  0.0209886798500615011013258311339617682421L,
+  0.41833754096087514377582590206105535614L,
+  0.469019942905167330505858885046130048223L,
+  0.715228143253914303084091910768414947468L,
+  0.949215045400946624794326433082702896278L,
+  0.0839262379919984011512905346130401074556L,
+  0.358856470231875479544116669678510859691L,
+  0.676461324144301815445903930221360844898L,
+  0.321802718137104975636543941512529575137L,
+  0.993411285955596090334951526803325817472L,
+  0.860164319140927797258503749506400508873L,
+  0.94773452678939638468420772776729628408L,
+  0.786167026315331965750413583155691260173L,
+  0.45156944204188755542678210840170293585L,
+  0.490807428869058127589400400723875752095L,
+  0.1064150484458768919266881304357565451445L,
+  0.324460881496927069927267886879512784128L,
+  0.892536276084459403262968666925514247957L,
+  0.626906362142556286375622503025155623158L,
+  0.912617117728752553677432546319200457076L,
+  0.670287539555608481364011494943625670644L,
+  0.247614513279178220157281399165275150246L,
+  0.328334024179281412037962820247065990969L,
+  0.829445540957824174480776183273738605512L,
+  0.1787214688659462728637669907628671276175L,
+  0.925570168885833135397413435137754040344L,
+  0.98275386432184844551191217367555375122L,
+  0.364711512670624901280733420446798813805L,
+  0.0676060703890593392691073615176801081634L,
+  0.01088522590112897075539168583333589679446L,
+  0.0611693052224598303672047526429160913973L,
+  0.214589347780615411637055343786045569195L,
+  0.698097005257153990899739747284349971478L,
+  0.0354356066334430559162358810601367856981L,
+  0.0279531560831790454930326667914520406377L,
+  0.939682879995515407044885888120427639943L,
+  0.312419879113847025637130107480365284706L,
+  0.429063186024752762548549652686423948472L,
+  0.198325752893057589388425455067795077316L,
+  0.653970278037364931023007417819508007502L,
+  0.396811027519564931158159336303275106925L,
+  0.50451059823222344440248588902992099958L,
+  0.0862505815838354201964323759027263746603L,
+  0.957096030216378795442646824371057760147L,
+  0.587610162738417619467784731999441435863L,
+  0.582187586992416238476426545279573456436L,
+  0.535716130421670802716666237861890374707L,
+  0.090478847153957807764386571203708454605L,
+  0.788473620511487574655894325144660477707L,
+  0.610237648835883657058234607228408957708L,
+  0.678372723016422015853594971922211368707L,
+  0.0477042323920128297852928999674240977938L,
+  0.916676966783686851658830754268116450562L,
+  0.385373716764729378193009393283577714611L,
+  0.51049308234047313597601380814795899816L,
+  0.1196704708003806819299545192341910042065L,
+  0.446475706132336496196697021305914636716L,
+  0.22995164195921866005337396330755244987L,
+  0.632225374693904589951305492826903497058L,
+  0.1049567841702419598059377515889392050297L,
+  0.66749284825574584532432314559877621928L,
+  0.730750212627697291852996268443402535667L,
+  0.44210748459007730373853303409845654876L,
+  0.165882407048533464405922485111215401752L,
+  0.326102079042974476137893383568312181916L,
+  0.894926469777796621626659556932174565354L,
+  0.829811268916354531033773068150153342864L,
+  0.0607253283595596933368529290946492114805L,
+  0.0677752868787034912813695724240479638585L,
+  0.82861506635734784945473366382511846348L,
+  0.160085543323090657960949278634908144601L,
+  0.232569451519550129004668131405568301759L,
+  0.848363194546104528297512566450812116666L,
+  0.793640414525406609723674517332020118566L,
+  0.0908665486135344605492576594616215607582L,
+  0.98524892289773367881284955458176900047L,
+  0.232277847265217861619371474795084074907L,
+  0.2478103820537262599906715455471023544214L,
+  0.518524645780409202282547691600231775584L,
+  0.726858378884955244314303315523158335615L,
+  0.245545705017836867827662773158398435754L,
+  0.2242602776132220616213985660229694803996L,
+  0.69321599409749039262414070240230983052L,
+  0.0112978587458533729787299027903363211672L,
+  0.201700091442640051051557572594860881596L,
+  0.1553158804742445432796353137546288871905L,
+  0.297307958467221836656545818754009116053L,
+  0.858321137590160233755873079497950982112L,
+  0.66848174756798322137180974713907803341L,
+  0.996344263106353369755981871581860505522L,
+  0.0298469963581545313060582891253178820216L,
+  0.5825562269883888340326171333296281312L,
+  0.493316240919863194534203651249074989694L,
+  0.25506115557073666386519530923416434445L,
+  0.990037777634583670683401168871182857585L,
+  0.111966792328779238876716387539738843995L,
+  0.555536981182848652400091282463345207445L,
+  0.281763605895317871765768390877174374161L,
+  0.902702281907817546029803311979267829958L,
+  0.526223239446627547666226037912343453756L,
+  0.663322588876953268851644820272004691035L,
+  0.925956679854174995001911256195736125327L,
+  0.978687628923344717267490649565202182013L,
+  0.295452218109470204949110043833472171496L,
+  0.763317372768444290934585368155544717374L,
+  0.41484295515622153189510360412010755096L,
+  0.95319138766107113957717501566306191772L,
+  0.449833295238493367386837134824022661087L,
+  0.380903660964162496124546078818966824203L,
+  0.0591435603332779390763767398658188273838L,
+  0.594973116752510574186847848340951992488L,
+  0.66051154347057943107777082783767373976L,
+  0.9590947364014878778361002605613544034L,
+  0.141719503437180601174660143271258240733L,
+  0.72942088503531365739564056985302156428L,
+  0.96229479992042091317494337141213026865L,
+  0.51401712994901482942061876482808737646L,
+  0.09446204537625467018781365109090483186L,
+  0.568441523568450417056301286402539600564L,
+  0.598604342726174263070596195546293250945L,
+  0.774951017988365558347613104226790833317L,
+  0.81892086730816467017537310019875247387L,
+  0.890143355483709851496792149649550808793L,
+  0.2191477338352410954693547610221317715285L,
+  0.726897475480314385643181203422499653L,
+  0.756138778886812022822443490226271392144L,
+  0.36128016023552084266898937740898271179L,
+  0.410782581318000192446155911986931996913L,
+  0.223641334296034708685419059866928946095L,
+  0.0611617201563377229556630546893173872466L,
+  0.0454251140845604672274274573289906520655L,
+  0.292039969549662442463090760177927466818L,
+  0.0892783972345646734854765244000589132126L,
+  0.98769280749877429524697464655962686569L,
+  0.889843464657722517503667653048728011052L,
+  0.651776307404858375062718114948328477704L,
+  0.87617575855504123004785690824244025026L,
+  0.338359170956885135997817905734588127076L,
+  0.734032684330295341291816774804886223887L,
+  0.862422342223053851459695185679195132964L,
+  0.197333977370262353727756586852240555633L,
+  0.586060335783457129849055206578505427124L,
+  0.132898852938756538479400358451026471607L,
+  0.548298096092246267871555639877296879195L,
+  0.301119859270324657077136364646995297056L,
+  0.02186689635349189676964089313754648484195L,
+  0.037538023766844046167768352700498359816L,
+  0.739462465806194132819844936199304370748L,
+  0.306338591475158278790432712666553704959L,
+  0.0349382326130091592369352494672121905505L,
+  0.12659131714329909411210854142389581492L,
+  0.991566243159047696662802015340988687108L,
+  0.265613985138476447081523915107505113653L,
+  0.379928020809782559672193104868857287448L,
+  0.3311424971073397473661763760151895103L,
+  0.702177302636984264408758773725210449873L,
+  0.975045571615360787500646118846671455125L,
+  0.0373462862349996603561237755410350012631L,
+  0.846126776062337124521510357150131165153L,
+  0.604046707233534456382774833817964498043L,
+  0.1981113045697699450375369418161865703455L,
+  0.0223467484405979164693956414316536174577L,
+  0.67121960182601511325776586363807504696L,
+  0.165784481427263519151726479123968726022L,
+  0.721784618575898210943875783221281669927L,
+  0.247408211201465904622132596487935205602L,
+  0.474174174442367430962454680799704832459L,
+  0.38041380356189313505762491005159753494L,
+  0.412834591083812886132307610186713638625L,
+  0.294378742681402760124595985235966036022L,
+  0.319576442623415298744966071520183847465L,
+  0.17227236515412864866186439447886640924L,
+  0.19227796294349462194111033545303573433L,
+  0.701351402612222654905938605774127547107L,
+  0.55598633289035034815584162421930015865L,
+  0.402729648554369906881359212431684355721L,
+  0.595951760748834493622338584190905994085L,
+  0.119840257870361007206544525046135477756L,
+  0.90443395581066590152525534589406902782L,
+  0.205188871300477881549673944463237196075L,
+  0.339175278174772519132232276502457660768L,
+  0.447725444308107151040888910769680233742L,
+  0.541239546708188153505885726785683096117L,
+  0.12984235126732767588700711245028426254L,
+  0.0534701599183773436559514525508752846737L,
+  0.793436019832695131646422778046763975325L,
+  0.718125883729211211336344362949260539072L,
+  0.328649037343445105052694618356980072933L,
+  0.113307342739499399477248133420602576291L,
+  0.87683936228301044929749768481864525904L,
+  0.212591937265603187751611886807532831791L,
+  0.761002958456888912899646497131654914807L,
+  0.220849601519164170820922984026707209176L,
+  0.222305857213559738578093188054272365062L,
+  0.651516500020930005107266726995614198887L,
+  0.1505613416188572288472651067305496894266L,
+  0.166658450989632252583252879193540688162L,
+  0.249417632511505538283736333645627460544L,
+  0.50096054904291170172998992288713266662L,
+  0.173701146801321486346972068110605414347L,
+  0.93433415280052265881674202089278791561L,
+  0.1167900820460300938880016624066890278452L,
+  0.265137084235229705213901240937609442947L,
+  0.110072770364904306470596762714108445086L,
+  0.0670575770615268870829070207384379655213L,
+  0.92447493539224566948960065689964970346L,
+  0.187517201307673207566548753071237315229L,
+  0.935719666366703749433556454391358561756L,
+  0.964002672100646458888742916175546552353L,
+  0.6304136194377902875122727617639812134L,
+  0.497041144725381002743104205240568050483L,
+  0.589232636183711897405482721407549359295L,
+  0.524588285641300028631908965527617181296L,
+  0.786409662511483672510756944887012261427L,
+  0.9924030873238807048291154748671174581L,
+  0.891407534733792276848059682970952672076L,
+  0.308538095910260975496982224956384014562L,
+  0.949088891149549225900320967233005245566L,
+  0.507378396004105004571665876613293881214L,
+  0.348875146873077771786031143309488031474L,
+  0.129717394366372388305812826098578876617L,
+  0.371316171885006633822161450072014737125L,
+  0.550162123072752251266003313454007126843L,
+  0.822171979807031777641565545578299345138L,
+  0.75171547658293988559512988487590040284L,
+  0.329537443635543385256682239450819107475L,
+  0.159687481361602477899361671181005148163L,
+  0.788720723813465707294018605642035752394L,
+  0.1031423865826241581828274573741444954832L,
+  0.1925157943560383416361499973635531049876L,
+  0.771893047929845637497166550933789470487L,
+  0.681189132819106369246924892765206195007L,
+  0.180608768713011918428603967211913698036L,
+  0.0869303304414286810402604783458783443746L,
+  0.63890744831302111307395023326393791462L,
+  0.531696069328179766265158866360885671855L,
+  0.557357572478102464274432325432400878297L,
+  0.765306589402879669413870462450921612475L,
+  0.0941202729911292570046371838018359372082L,
+  0.902333472113108821746674873990738636997L,
+  0.165516366160118370026922089795742876131L,
+  0.0317472434880413278821576585103363607157L,
+  0.706107972335163251316361316043030620453L,
+  0.832472986392763388669796997227437520663L,
+  0.769939001736494466971306881365718899207L,
+  0.83093185023987157595917781461722256739L,
+  0.1143834825195292986705373579359335590854L,
+  0.283326017120251162360393258571085609729L,
+  0.301605389836836671045912951769199753359L,
+  0.855854391727628505548518803309296566532L,
+  0.089938332734139699450960989316391404434L,
+  0.310225946153425747793112265736973169299L,
+  0.96854812596413627994714291059983626441L,
+  0.279767360423571836833858253122290577619L,
+  0.113545981876279916290815278422648489865L,
+  0.943101270554056170747004305255027939268L,
+  0.812274724978801470221644756549524210083L,
+  0.9678011347395447510273023981530290554L,
+  0.514795136336602722878788704708053145966L,
+  0.50560840616487841567055789750974674943L,
+  0.127654209842819812026603428361923670116L,
+  0.273727399985085036497076514726791191553L,
+  0.964821797874257789566527793136425594082L,
+  0.853392912197074096341317268954834390727L,
+  0.914236806849585335611299422695886165192L,
+  0.277335361137281076359079507288838688219L,
+  0.865708792613433194377422367016717680172L,
+  0.761947879929658945814013586634774725302L,
+  0.276975494384441865188273120642155257808L,
+  0.0678895000408079241574268817560335475378L,
+  0.929521528875748672899760603996998763144L,
+  0.44453824299955605846877126958322272066L,
+  0.444318159420536625223816052640621069982L,
+  0.42913762214779045597457741573009821738L,
+  0.98994873802399078252493194985812582986L,
+  0.93065975343157446755652147574743540714L,
+  0.821639107980128580428385838275355600123L,
+  0.031337950421787684669360817154012683829L,
+  0.839516942888416107002513723437531514126L,
+  0.785501376812531727571251496474527490183L,
+  0.247978681554054401906203846371863203863L,
+  0.985774009303654108868853196421131421187L,
+  0.635347409930173147315815281304257764708L,
+  0.40087985483327734740658289294086718422L,
+  0.374059729085540852289174052767716446502L,
+  0.367226053686019780853702834825808619761L,
+  0.166424328898161772576167906091392715805L,
+  0.838115185925303343477055122060982270143L,
+  0.829549684532006011608856001441012324216L,
+  0.059867788238866724897690318151639504149L,
+  0.0253429734563284738087263277549928280781L,
+  0.953315773263436653713242828719775352192L,
+  0.597536998796130884349662459732857817956L,
+  0.0320571321493587106457025626624408278814L,
+  0.477506594803204144826488443400695434979L,
+  0.285541992141868221897101891229394096707L,
+  0.764190678950226854486968785768647879005L,
+  0.895489776830293129781335242249167913705L,
+  0.570740793029533496018083006013191540077L,
+  0.938316924714444954315906773563465846538L,
+  0.56157168133328941481074926451373503549L,
+  0.354184283860505415751320741296599995231L,
+  0.778294119283540721552919906619543293274L,
+  0.434953011661757598127924745629053141294L,
+  0.37156491156117895854194599593687697796L,
+  0.898767478977082606651667259049374990828L,
+  0.21819365919403129548458400006737057993L,
+  0.278163373548978939704874687746089548269L,
+  0.1089005781457343817756962209721573336768L,
+  0.85152888717082537570752846642305937149L,
+  0.2419243481761527583754399630924438738944L,
+  0.69442654829377168239365980152821108287L,
+  0.1512336533453368944625038813397779875445L,
+  0.617712962492924013140729661730350287525L,
+  0.935400762900002313827620435729493050175L,
+  0.79357339902161958573967958515254111256L,
+  0.734250188990467683521536859220675412636L,
+  0.748517858206364295837674601491185485078L,
+  0.82520014781239194590337105462135253912L,
+  0.1240649365160101108753438662971422995014L,
+  0.479769236133748631678854875312914195598L,
+  0.171269492636258554036912204801376697988L,
+  0.833025419245729049117746814929956940986L,
+  0.354429813451205200141830318428840891828L,
+  0.474809123369344367691189422128776480146L,
+  0.692239655770541262287308180705629028608L,
+  0.271366901464125731413801963807240905363L,
+  0.561330233800121182669429172066686942393L,
+  0.0695868383638479426233449148171168522655L,
+  0.627576910684655924911125045007979454546L,
+  0.423331542652214907262628326674848471962L,
+  0.354725031694671387579309719042578580595L,
+  0.312419264533145363169359084710774849388L,
+  0.167819037053563697473931127337972350099L,
+  0.99960836112225007722014049168024866743L,
+  0.820598666739967434549389339457492152643L,
+  0.689495024741546551592649728378054973272L,
+  0.831455766750164249604246627812180304754L,
+  0.515538871956858025876039391193370146897L,
+  0.011724889011994886395520178564059346913L,
+  0.587485679650311054946861235938601293477L,
+  0.113010564497810081892271654273794311467L,
+  0.381261245177928587613552004600730320213L,
+  0.466933821322235841488251157296771536952L,
+  0.646965031311287534221872388017990968767L,
+  0.1811101995014685369939482409137380098995L,
+  0.247896943912780884738461558340983142645L,
+  0.989351208835640462928338658234638846217L,
+  0.924605283008839688813842975338096967047L,
+  0.232010860908797395869871518793187418799L,
+  0.90274859050487649728273938229764570199L,
+  0.664078588165617572819884867627266650356L,
+  0.532118803501055886836301096658125012493L,
+  0.854049566634563277356849166147057535436L,
+  0.756477818237029394317820041473365538516L,
+  0.84578312219074068824832318394711642503L,
+  0.169914247711153055959592721695068126213L,
+  0.50848961455796310913779527189620088788L,
+  0.715231849280217810525151667911662744854L,
+  0.59666585539439202929452535210623694053L,
+  0.72343578283497935670188130618697814035L,
+  0.982228826906846431195861293729527133844L,
+  0.98068755339273420823366752414155272462L,
+  0.805277135157133623039231303778838094716L,
+  0.840154168539481858495551656699708834713L,
+  0.41783933695481411993780663692806809771L,
+  0.070981740672048589027432942629842679319L,
+  0.96664795205679820656636930925268162457L,
+  0.155178444292580006807274171645675417735L,
+  0.276407670358590477524508525465318694191L,
+  0.1054964292635286397825421772930229411286L,
+  0.354205947516472098240472076653525679013L,
+  0.583456972150065135260312420865576513532L,
+  0.338643867118430587299252775116788065723L,
+  0.146467849593879827355466951871059968293L,
+  0.0639448405747942007938896940026153617467L,
+  0.846536583732599902600485371566229612512L,
+  0.599728399399342923058515558777947417833L,
+  0.140387922890235239162309673093379598453L,
+  0.1613160217694973394489944660056369626715L,
+  0.151848582163159668039725770584081620756L,
+  0.663365628518336712743995463098831995163L,
+  0.752166976367665534193146852225632451022L,
+  0.911311062532571765386023433215793121138L,
+  0.692490353635171096989434518397248623866L,
+  0.990512559245857089458980255962574316578L,
+  0.135026433195284768293027372762691869458L,
+  0.82220389984592453325084678614092535756L,
+  0.385471328555065081327630832374267955206L,
+  0.108251633446048989722318564345306848022L,
+  0.429090236713339412878596384043906547999L,
+  0.983421429305507423332481562450757515935L,
+  0.0163920521681887489391607174895946079877L,
+  0.634276319224952361916496263299135133978L,
+  0.53164375434562160610011793242431018808L,
+  0.92801127390978303506935520414803575609L,
+  0.708525110316144414918831897015500504675L,
+  0.722458240987313977092360928226487539067L,
+  0.432028911017122242491499522489684865593L,
+  0.0001754664935299182587224394863719217640876L,
+  0.384266658709383389800969077999970411222L,
+  0.284964603427904715461598563563830112021L,
+  0.1541443027599544245798778784933517572175L,
+  0.958338802063400795313378181913830622686L,
+  0.636927309395779701122460610729048286624L,
+  0.0963946603295477475541191401069719222887L,
+  0.0995190436935072136624400787867889652226L,
+  0.294220607618706451139091631947946466958L,
+  0.180831121994104393794487526888221966969L,
+  0.635403971764105414766318934434540385347L,
+  0.333929089029202997624323059191296321991L,
+  0.498378678845335358166419186432789231466L,
+  0.79769145046274241777533636404451138797L,
+  0.269285209299779365433012558225847643041L,
+  0.110524792990169183853219228066613162975L,
+  0.252694136970632381193559370648931722998L,
+  0.447232396115786457656991370803052298542L,
+  0.136974250599080636030665381278567779455L,
+  0.67243844394695156696032636816317618716L,
+  0.280265952023932940327982570523639258968L,
+  0.960024614746466668963206103951264089396L,
+  0.83595031847062668345135859090890188348L,
+  0.127840531352213174558502027846545305518L,
+  0.333183884044346150282363573006579940787L,
+  0.480504229384957927069515726093850498988L,
+  0.768498913093287331615443023486434378468L,
+  0.940413493411219283289136687423264928073L,
+  0.548648592555019577089750862504091661273L,
+  0.57814360039222917342516307696519676185L,
+  0.752806287004316513987155718410926624384L,
+  0.328211694133870995310455637563825433641L,
+  0.153907665030571878436793446358668488233L,
+  0.694742699178286984320321272531890059073L,
+  0.25435421168640709608520313542078743933L,
+  0.61387638208113240104328972389071498415L,
+  0.250476311300881635346483832554226742174L,
+  0.345809836897231980069633800588202859833L,
+  0.343083789419841923142937785323119943136L,
+  0.319174378869537109008405333721782689566L,
+  0.158111477528301687597604325494967120237L,
+  0.244000500810322900960285910812181460829L,
+  0.23179705702278726416861948783067588642L,
+  0.54682924846605062799436489677774333716L,
+  0.549008127982055819651521103931442895238L,
+  0.262583044663608129412956518168777449925L,
+  0.00126513153702681878410946802239924274583L,
+  0.942613696151881635585127791325641506562L,
+  0.352686443706689559388572818776843215083L,
+  0.90689998425792029984240460273113807702L,
+  0.867511650419363872431681377574762734184L,
+  0.280671949468087158951852027769013272607L,
+  0.162038690615698843560500386213858514888L,
+  0.71179364933082197276587611716632482938L,
+  0.0967402545497599384082792036477527703823L,
+  0.465040868275334873151726613879001199556L,
+  0.621004503662486553272117361134036130264L,
+  0.732964940483576253705474121238830973672L,
+  0.423374863473223783721502627532544136435L,
+  0.490338535425760290944218064913112069833L,
+  0.0243433415988311460557576165617657963508L,
+  0.0502339423891456566961808478207103394328L,
+  0.57668149339841029115236469576085057193L,
+  0.654589079253818313716855283653923913987L,
+  0.1099728579252794893221972017964445810946L,
+  0.95067113980240197864048876003001477344L,
+  0.271440369581834169312179003284604198334L,
+  0.067152474145377434478612939162576726923L,
+  0.77434193893477314687843638736266814713L,
+  0.2095679937785625400917773512669417520444L,
+  0.7681370807102749183539277908648691358L,
+  0.24472807400083103884984122018932641814L,
+  0.191307162486577428460074174309309551616L,
+  0.637215617752531571162184184570005111405L,
+  0.858141525396878877938747690015117846998L,
+  0.338400625200720062249435065450813258281L,
+  0.564981422008979753676981861330327611986L,
+  0.809460314261206431741632790718777271837L,
+  0.879343403409393604462128113991125533726L,
+  0.284697509116613252542034824007026845569L,
+  0.497023470648395180497606069099534119801L,
+  0.650004713241995983979792197286941523L,
+  0.1177129995341492896184329340448111002318L,
+  0.923625966014428778639333261268345799732L,
+  0.698837131343914189577155394009532120604L,
+  0.28242326745092132457477019796509942259L,
+  0.70025600885251684699238650783454037429L,
+  0.876659050276528114198964471020380705343L,
+  0.52914892693002332233566353042454639365L,
+  0.319860854431864688430502078275989809115L,
+  0.83483115610648557287441551698147898778L,
+  0.727639064249568383685922880431792837046L,
+  0.58743287662861037184349933549802687836L,
+  0.510383231616356949495559076196319035197L,
+  0.00229935944348919214521608305418404052343L,
+  0.799567224020488433652933994297769381902L,
+  0.343651210821093611687224166251624444254L,
+  0.405948097827175151257603419529941300798L,
+  0.456473183882957921169800992232941517586L,
+  0.570248304776860782392105323292264026118L,
+  0.534779754769153667870756893044557559557L,
+  0.472965511839676757434979299779809656808L,
+  0.137335340499076127280155831169214403285L,
+  0.51975901660926295231312276736119435645L,
+  0.8085867293332018994761547260739912451L,
+  0.812416413241484848007226874256949892893L,
+  0.852994977709961112714176162016389410712L,
+  0.95270886248643660114015239563660004248L,
+  0.845133719240648570417568652136630304138L,
+  0.4074980021816323645978397907609428101L,
+  0.335850514497730546494305840184055599972L,
+  0.0882622233237065445998153436898044995127L,
+  0.936467561027640943446178111237050277205L,
+  0.56676472173638044722431698799123577376L,
+  0.528427769051008704179988533062745663408L,
+  0.460890427579778855697205646060084318038L,
+  0.754971897131798313468797543428083655928L,
+  0.980733597969419782109470537306886067907L,
+  0.204362127415649555111877580124343815074L,
+  0.424822548090499017266619697426652494042L,
+  0.790847149074521364262028407892114384257L,
+  0.559922683392730473870877613727301497865L,
+  0.779993507158626042106006393237738208875L,
+  0.30516368089713691312418593599115685319L,
+  0.68918765842229398168455844072311006826L,
+  0.972291357858071465096079542885284602882L,
+  0.92204286423973856982373873105566928589L,
+  0.488649453783638471576482476648021023315L,
+  0.467124744623849284659862825278549932824L,
+  0.548051233865943557014854568009331816852L,
+  0.306838990296265483205551142903402056051L,
+  0.497005516835688988273805238236922199451L,
+  0.341504433884138135798086132528045458722L,
+  0.969816416247460790089503289400709886528L,
+  0.63656435610220447227337751650167349487L,
+  0.83588076122262875881859751942918794857L,
+  0.647568600604975972308348018018445212894L,
+  0.916061870307308870029862807808332479077L,
+  0.767988745496844638880672392122527991445L,
+  0.1623230195628039449666927123215281227666L,
+  0.0791082835859634251558587844284289799848L,
+  0.575858643610197202634665099752882990844L,
+  0.559159434263749620344702466000799724913L,
+  0.063765998380760211208741798736948488376L,
+  0.230557913975359017084357477142151415967L,
+  0.702854691657277602758421942319022953845L,
+  0.789516660466782621905392733079230211954L,
+  0.491496186820051632244513986127898500904L,
+  0.171499215418269578563458417238340672634L,
+  0.626470061831746666081979158043673024967L,
+  0.258903137813870706268979320963343541457L,
+  0.64156850108405218894694811301875120511L,
+  0.534043520260340661507140771088018906496L,
+  0.388275182018399247097875416106759899469L,
+  0.920936363560998030495046998224168162945L,
+  0.826139404694006088220407338888245165242L,
+  0.343561253523163451528918423980552161597L,
+  0.921521003270491194867019217479780072647L,
+  0.656212467754097185125864111703195343744L,
+  0.628186262290474398328350301885606581942L,
+  0.573227336542237665153422986363073650388L,
+  0.94178975003001342039795597242477049832L,
+  0.0408103561362355768975182155847755354614L,
+  0.382581672073273072487550945526454964287L,
+  0.152851256046525520308098129538613498254L,
+  0.966735024597183045592313880114075824298L,
+  0.215564894798334550271993595018433286244L,
+  0.776491530531523589201618375156272004616L,
+  0.912460554179311241821569665648929177608L,
+  0.632880016212040018958086886452474382272L,
+  0.711577891112709305169603082360885583086L,
+  0.1120655756066491784920471129299439607153L,
+  0.691106483958832651050573402690448368687L,
+  0.227442567846797646970770128970529357636L,
+  0.837435613090485891584882062239924101455L,
+  0.524389161590691896070067767400758142565L,
+  0.591360583466508186135247682666313136762L,
+  0.103155847462960450706124014839446958843L,
+  0.98360160577671960281465138408293984545L,
+  0.197665014114674630647437622579741018817L,
+  0.1099709194312379594014239398842185159354L,
+  0.394053373921474751303577685990936074485L,
+  0.94945354787200894450508557094182436657L,
+  0.372593716084661547440393809983835348274L,
+  0.62514674616343692328572382301636412566L,
+  0.2001871481416310130073795585638383984926L,
+  0.148432902421401306477690922498335475507L,
+  0.687921673269487018193347305425182239764L,
+  0.470940334348984370262797433659013738143L,
+  0.1592476430730276812200821020958787823795L,
+  0.296776110696565927524970058176467314578L,
+  0.1491253105142218631726813695413369166796L,
+  0.579194717868638955003571989739802264354L,
+  0.0730543936466744761440131951539370917776L,
+  0.941296077873340797733875467209629660594L,
+  0.76720024949523806992504865943580486187L,
+  0.419526107681583337049761526455092560735L,
+  0.00688594806937144144337797612615981618743L,
+  0.931682704636487927763651991274577493318L,
+  0.660524215847727125058815911433184924133L,
+  0.71780972384903067744609138100002205676L,
+  0.02961791918271995070621856302848439458175L,
+  0.692791206212428997136050006631240567502L,
+  0.162762426697948445642880183096693062538L,
+  0.183637795551464341949019870428026949035L,
+  0.51263789620316407488619761125039609046L,
+  0.90238698122728366178818828411640824056L,
+  0.229784208410123517024401367798925386038L,
+  0.227218480059027721044118324890061381517L,
+  0.6555059570778176955459672492237825867L,
+  0.929815767583615624563413584598741896834L,
+  0.188559597559312695774663933876436875041L,
+  0.396184448063913762028147791554346199354L,
+  0.656329540957568516760105602115555736073L,
+  0.1410678455413176345310401990667063246115L,
+  0.621004667838855651847651367745487628637L,
+  0.01277988784767030635209958407461792778387L,
+  0.69482142276844418673788732511112265014L,
+  0.925705031133221932065307191539105635005L,
+  0.925744341385232535963050430363763081603L,
+  0.24189467813699258571134382505828701386L,
+  0.646009544609703485845605410919901799L,
+  0.051119212999532673562206731603906295406L,
+  0.85076142804383409765024452942896578158L
+};
index ee9da0d..06791a9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2003, 2005-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2003, 2005-2014 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #if !_LIBC
-# include <config.h>
-#endif
-
 /* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
    optimizes away the name == NULL test below.  */
-#define _GL_ARG_NONNULL(params)
+# define _GL_ARG_NONNULL(params)
+
+# define _GL_USE_STDLIB_ALLOC 1
+# include <config.h>
+#endif
 
 #include <alloca.h>
 
@@ -48,7 +49,7 @@
 #endif
 
 #if _LIBC
-/* This lock protects against simultaneous modifications of `environ'.  */
+/* This lock protects against simultaneous modifications of 'environ'.  */
 # include <bits/libc-lock.h>
 __libc_lock_define_initialized (static, envlock)
 # define LOCK   __libc_lock_lock (envlock)
@@ -102,11 +103,11 @@ static void *known_values;
 static char **last_environ;
 
 
-/* This function is used by `setenv' and `putenv'.  The difference between
+/* This function is used by 'setenv' and 'putenv'.  The difference between
    the two functions is that for the former must create a new string which
-   is then placed in the environment, while the argument of `putenv'
+   is then placed in the environment, while the argument of 'putenv'
    must be used directly.  This is all complicated by the fact that we try
-   to reuse values once generated for a `setenv' call since we can never
+   to reuse values once generated for a 'setenv' call since we can never
    free the strings.  */
 int
 __add_to_environ (const char *name, const char *value, const char *combined,
@@ -147,6 +148,9 @@ __add_to_environ (const char *name, const char *value, const char *combined,
                    : realloc (last_environ, (size + 2) * sizeof (char *)));
       if (new_environ == NULL)
         {
+          /* It's easier to set errno to ENOMEM than to rely on the
+             'malloc-posix' and 'realloc-posix' gnulib modules.  */
+          __set_errno (ENOMEM);
           UNLOCK;
           return -1;
         }
@@ -295,7 +299,7 @@ setenv (const char *name, const char *value, int replace)
   return __add_to_environ (name, value, NULL, replace);
 }
 
-/* The `clearenv' was planned to be added to POSIX.1 but probably
+/* The 'clearenv' was planned to be added to POSIX.1 but probably
    never made it.  Nevertheless the POSIX.9 standard (POSIX bindings
    for Fortran 77) requires this function.  */
 int
@@ -346,6 +350,9 @@ weak_alias (__clearenv, clearenv)
 #if HAVE_SETENV
 
 # undef setenv
+# if !HAVE_DECL_SETENV
+extern int setenv (const char *, const char *, int);
+# endif
 # define STREQ(a, b) (strcmp (a, b) == 0)
 
 int
diff --git a/tests/setlocale.c b/tests/setlocale.c
new file mode 100644 (file)
index 0000000..3009d2c
--- /dev/null
@@ -0,0 +1,938 @@
+/* Set the current locale.
+   Copyright (C) 2009, 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009.  */
+
+#include <config.h>
+
+/* Override setlocale() so that when the default locale is requested
+   (locale = ""), the environment variables LC_ALL, LC_*, and LANG are
+   considered.
+   Also include all the functionality from libintl's setlocale() override.  */
+
+/* Please keep this file in sync with
+   gettext/gettext-runtime/intl/setlocale.c !  */
+
+/* Specification.  */
+#include <locale.h>
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "localename.h"
+
+#if 1
+
+# undef setlocale
+
+/* Return string representation of locale category CATEGORY.  */
+static const char *
+category_to_name (int category)
+{
+  const char *retval;
+
+  switch (category)
+  {
+  case LC_COLLATE:
+    retval = "LC_COLLATE";
+    break;
+  case LC_CTYPE:
+    retval = "LC_CTYPE";
+    break;
+  case LC_MONETARY:
+    retval = "LC_MONETARY";
+    break;
+  case LC_NUMERIC:
+    retval = "LC_NUMERIC";
+    break;
+  case LC_TIME:
+    retval = "LC_TIME";
+    break;
+  case LC_MESSAGES:
+    retval = "LC_MESSAGES";
+    break;
+  default:
+    /* If you have a better idea for a default value let me know.  */
+    retval = "LC_XXX";
+  }
+
+  return retval;
+}
+
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+/* The native Windows setlocale() function expects locale names of the form
+   "German" or "German_Germany" or "DEU", but not "de" or "de_DE".  We need
+   to convert the names from the form with ISO 639 language code and ISO 3166
+   country code to the form with English names or with three-letter identifier.
+   The three-letter identifiers known by a Windows XP SP2 or SP3 are:
+     AFK  Afrikaans_South Africa.1252
+     ARA  Arabic_Saudi Arabia.1256
+     ARB  Arabic_Lebanon.1256
+     ARE  Arabic_Egypt.1256
+     ARG  Arabic_Algeria.1256
+     ARH  Arabic_Bahrain.1256
+     ARI  Arabic_Iraq.1256
+     ARJ  Arabic_Jordan.1256
+     ARK  Arabic_Kuwait.1256
+     ARL  Arabic_Libya.1256
+     ARM  Arabic_Morocco.1256
+     ARO  Arabic_Oman.1256
+     ARQ  Arabic_Qatar.1256
+     ARS  Arabic_Syria.1256
+     ART  Arabic_Tunisia.1256
+     ARU  Arabic_U.A.E..1256
+     ARY  Arabic_Yemen.1256
+     AZE  Azeri (Latin)_Azerbaijan.1254
+     BEL  Belarusian_Belarus.1251
+     BGR  Bulgarian_Bulgaria.1251
+     BSB  Bosnian_Bosnia and Herzegovina.1250
+     BSC  Bosnian (Cyrillic)_Bosnia and Herzegovina.1250  (wrong encoding!)
+     CAT  Catalan_Spain.1252
+     CHH  Chinese_Hong Kong S.A.R..950
+     CHI  Chinese_Singapore.936
+     CHS  Chinese_People's Republic of China.936
+     CHT  Chinese_Taiwan.950
+     CSY  Czech_Czech Republic.1250
+     CYM  Welsh_United Kingdom.1252
+     DAN  Danish_Denmark.1252
+     DEA  German_Austria.1252
+     DEC  German_Liechtenstein.1252
+     DEL  German_Luxembourg.1252
+     DES  German_Switzerland.1252
+     DEU  German_Germany.1252
+     ELL  Greek_Greece.1253
+     ENA  English_Australia.1252
+     ENB  English_Caribbean.1252
+     ENC  English_Canada.1252
+     ENG  English_United Kingdom.1252
+     ENI  English_Ireland.1252
+     ENJ  English_Jamaica.1252
+     ENL  English_Belize.1252
+     ENP  English_Republic of the Philippines.1252
+     ENS  English_South Africa.1252
+     ENT  English_Trinidad and Tobago.1252
+     ENU  English_United States.1252
+     ENW  English_Zimbabwe.1252
+     ENZ  English_New Zealand.1252
+     ESA  Spanish_Panama.1252
+     ESB  Spanish_Bolivia.1252
+     ESC  Spanish_Costa Rica.1252
+     ESD  Spanish_Dominican Republic.1252
+     ESE  Spanish_El Salvador.1252
+     ESF  Spanish_Ecuador.1252
+     ESG  Spanish_Guatemala.1252
+     ESH  Spanish_Honduras.1252
+     ESI  Spanish_Nicaragua.1252
+     ESL  Spanish_Chile.1252
+     ESM  Spanish_Mexico.1252
+     ESN  Spanish_Spain.1252
+     ESO  Spanish_Colombia.1252
+     ESP  Spanish_Spain.1252
+     ESR  Spanish_Peru.1252
+     ESS  Spanish_Argentina.1252
+     ESU  Spanish_Puerto Rico.1252
+     ESV  Spanish_Venezuela.1252
+     ESY  Spanish_Uruguay.1252
+     ESZ  Spanish_Paraguay.1252
+     ETI  Estonian_Estonia.1257
+     EUQ  Basque_Spain.1252
+     FAR  Farsi_Iran.1256
+     FIN  Finnish_Finland.1252
+     FOS  Faroese_Faroe Islands.1252
+     FPO  Filipino_Philippines.1252
+     FRA  French_France.1252
+     FRB  French_Belgium.1252
+     FRC  French_Canada.1252
+     FRL  French_Luxembourg.1252
+     FRM  French_Principality of Monaco.1252
+     FRS  French_Switzerland.1252
+     FYN  Frisian_Netherlands.1252
+     GLC  Galician_Spain.1252
+     HEB  Hebrew_Israel.1255
+     HRB  Croatian_Bosnia and Herzegovina.1250
+     HRV  Croatian_Croatia.1250
+     HUN  Hungarian_Hungary.1250
+     IND  Indonesian_Indonesia.1252
+     IRE  Irish_Ireland.1252
+     ISL  Icelandic_Iceland.1252
+     ITA  Italian_Italy.1252
+     ITS  Italian_Switzerland.1252
+     IUK  Inuktitut (Latin)_Canada.1252
+     JPN  Japanese_Japan.932
+     KKZ  Kazakh_Kazakhstan.1251
+     KOR  Korean_Korea.949
+     KYR  Kyrgyz_Kyrgyzstan.1251
+     LBX  Luxembourgish_Luxembourg.1252
+     LTH  Lithuanian_Lithuania.1257
+     LVI  Latvian_Latvia.1257
+     MKI  FYRO Macedonian_Former Yugoslav Republic of Macedonia.1251
+     MON  Mongolian_Mongolia.1251
+     MPD  Mapudungun_Chile.1252
+     MSB  Malay_Brunei Darussalam.1252
+     MSL  Malay_Malaysia.1252
+     MWK  Mohawk_Canada.1252
+     NLB  Dutch_Belgium.1252
+     NLD  Dutch_Netherlands.1252
+     NON  Norwegian-Nynorsk_Norway.1252
+     NOR  Norwegian (Bokmål)_Norway.1252
+     NSO  Northern Sotho_South Africa.1252
+     PLK  Polish_Poland.1250
+     PTB  Portuguese_Brazil.1252
+     PTG  Portuguese_Portugal.1252
+     QUB  Quechua_Bolivia.1252
+     QUE  Quechua_Ecuador.1252
+     QUP  Quechua_Peru.1252
+     RMC  Romansh_Switzerland.1252
+     ROM  Romanian_Romania.1250
+     RUS  Russian_Russia.1251
+     SKY  Slovak_Slovakia.1250
+     SLV  Slovenian_Slovenia.1250
+     SMA  Sami (Southern)_Norway.1252
+     SMB  Sami (Southern)_Sweden.1252
+     SME  Sami (Northern)_Norway.1252
+     SMF  Sami (Northern)_Sweden.1252
+     SMG  Sami (Northern)_Finland.1252
+     SMJ  Sami (Lule)_Norway.1252
+     SMK  Sami (Lule)_Sweden.1252
+     SMN  Sami (Inari)_Finland.1252
+     SMS  Sami (Skolt)_Finland.1252
+     SQI  Albanian_Albania.1250
+     SRB  Serbian (Cyrillic)_Serbia and Montenegro.1251
+     SRL  Serbian (Latin)_Serbia and Montenegro.1250
+     SRN  Serbian (Cyrillic)_Bosnia and Herzegovina.1251
+     SRS  Serbian (Latin)_Bosnia and Herzegovina.1250
+     SVE  Swedish_Sweden.1252
+     SVF  Swedish_Finland.1252
+     SWK  Swahili_Kenya.1252
+     THA  Thai_Thailand.874
+     TRK  Turkish_Turkey.1254
+     TSN  Tswana_South Africa.1252
+     TTT  Tatar_Russia.1251
+     UKR  Ukrainian_Ukraine.1251
+     URD  Urdu_Islamic Republic of Pakistan.1256
+     USA  English_United States.1252
+     UZB  Uzbek (Latin)_Uzbekistan.1254
+     VIT  Vietnamese_Viet Nam.1258
+     XHO  Xhosa_South Africa.1252
+     ZHH  Chinese_Hong Kong S.A.R..950
+     ZHI  Chinese_Singapore.936
+     ZHM  Chinese_Macau S.A.R..950
+     ZUL  Zulu_South Africa.1252
+ */
+
+/* Table from ISO 639 language code, optionally with country or script suffix,
+   to English name.
+   Keep in sync with the gl_locale_name_from_win32_LANGID function in
+   localename.c!  */
+struct table_entry
+{
+  const char *code;
+  const char *english;
+};
+static const struct table_entry language_table[] =
+  {
+    { "af", "Afrikaans" },
+    { "am", "Amharic" },
+    { "ar", "Arabic" },
+    { "arn", "Mapudungun" },
+    { "as", "Assamese" },
+    { "az@cyrillic", "Azeri (Cyrillic)" },
+    { "az@latin", "Azeri (Latin)" },
+    { "ba", "Bashkir" },
+    { "be", "Belarusian" },
+    { "ber", "Tamazight" },
+    { "ber@arabic", "Tamazight (Arabic)" },
+    { "ber@latin", "Tamazight (Latin)" },
+    { "bg", "Bulgarian" },
+    { "bin", "Edo" },
+    { "bn", "Bengali" },
+    { "bn_BD", "Bengali (Bangladesh)" },
+    { "bn_IN", "Bengali (India)" },
+    { "bnt", "Sutu" },
+    { "bo", "Tibetan" },
+    { "br", "Breton" },
+    { "bs", "BSB" }, /* "Bosnian (Latin)" */
+    { "bs@cyrillic", "BSC" }, /* Bosnian (Cyrillic) */
+    { "ca", "Catalan" },
+    { "chr", "Cherokee" },
+    { "co", "Corsican" },
+    { "cpe", "Hawaiian" },
+    { "cs", "Czech" },
+    { "cy", "Welsh" },
+    { "da", "Danish" },
+    { "de", "German" },
+    { "dsb", "Lower Sorbian" },
+    { "dv", "Divehi" },
+    { "el", "Greek" },
+    { "en", "English" },
+    { "es", "Spanish" },
+    { "et", "Estonian" },
+    { "eu", "Basque" },
+    { "fa", "Farsi" },
+    { "ff", "Fulfulde" },
+    { "fi", "Finnish" },
+    { "fo", "Faroese" }, /* "Faeroese" does not work */
+    { "fr", "French" },
+    { "fy", "Frisian" },
+    { "ga", "IRE" }, /* Gaelic (Ireland) */
+    { "gd", "Gaelic (Scotland)" },
+    { "gd", "Scottish Gaelic" },
+    { "gl", "Galician" },
+    { "gn", "Guarani" },
+    { "gsw", "Alsatian" },
+    { "gu", "Gujarati" },
+    { "ha", "Hausa" },
+    { "he", "Hebrew" },
+    { "hi", "Hindi" },
+    { "hr", "Croatian" },
+    { "hsb", "Upper Sorbian" },
+    { "hu", "Hungarian" },
+    { "hy", "Armenian" },
+    { "id", "Indonesian" },
+    { "ig", "Igbo" },
+    { "ii", "Yi" },
+    { "is", "Icelandic" },
+    { "it", "Italian" },
+    { "iu", "IUK" }, /* Inuktitut */
+    { "ja", "Japanese" },
+    { "ka", "Georgian" },
+    { "kk", "Kazakh" },
+    { "kl", "Greenlandic" },
+    { "km", "Cambodian" },
+    { "km", "Khmer" },
+    { "kn", "Kannada" },
+    { "ko", "Korean" },
+    { "kok", "Konkani" },
+    { "kr", "Kanuri" },
+    { "ks", "Kashmiri" },
+    { "ks_IN", "Kashmiri_India" },
+    { "ks_PK", "Kashmiri (Arabic)_Pakistan" },
+    { "ky", "Kyrgyz" },
+    { "la", "Latin" },
+    { "lb", "Luxembourgish" },
+    { "lo", "Lao" },
+    { "lt", "Lithuanian" },
+    { "lv", "Latvian" },
+    { "mi", "Maori" },
+    { "mk", "FYRO Macedonian" },
+    { "mk", "Macedonian" },
+    { "ml", "Malayalam" },
+    { "mn", "Mongolian" },
+    { "mni", "Manipuri" },
+    { "moh", "Mohawk" },
+    { "mr", "Marathi" },
+    { "ms", "Malay" },
+    { "mt", "Maltese" },
+    { "my", "Burmese" },
+    { "nb", "NOR" }, /* Norwegian Bokmål */
+    { "ne", "Nepali" },
+    { "nic", "Ibibio" },
+    { "nl", "Dutch" },
+    { "nn", "NON" }, /* Norwegian Nynorsk */
+    { "no", "Norwegian" },
+    { "nso", "Northern Sotho" },
+    { "nso", "Sepedi" },
+    { "oc", "Occitan" },
+    { "om", "Oromo" },
+    { "or", "Oriya" },
+    { "pa", "Punjabi" },
+    { "pap", "Papiamentu" },
+    { "pl", "Polish" },
+    { "prs", "Dari" },
+    { "ps", "Pashto" },
+    { "pt", "Portuguese" },
+    { "qu", "Quechua" },
+    { "qut", "K'iche'" },
+    { "rm", "Romansh" },
+    { "ro", "Romanian" },
+    { "ru", "Russian" },
+    { "rw", "Kinyarwanda" },
+    { "sa", "Sanskrit" },
+    { "sah", "Yakut" },
+    { "sd", "Sindhi" },
+    { "se", "Sami (Northern)" },
+    { "se", "Northern Sami" },
+    { "si", "Sinhalese" },
+    { "sk", "Slovak" },
+    { "sl", "Slovenian" },
+    { "sma", "Sami (Southern)" },
+    { "sma", "Southern Sami" },
+    { "smj", "Sami (Lule)" },
+    { "smj", "Lule Sami" },
+    { "smn", "Sami (Inari)" },
+    { "smn", "Inari Sami" },
+    { "sms", "Sami (Skolt)" },
+    { "sms", "Skolt Sami" },
+    { "so", "Somali" },
+    { "sq", "Albanian" },
+    { "sr", "Serbian (Latin)" },
+    { "sr@cyrillic", "SRB" }, /* Serbian (Cyrillic) */
+    { "sw", "Swahili" },
+    { "syr", "Syriac" },
+    { "ta", "Tamil" },
+    { "te", "Telugu" },
+    { "tg", "Tajik" },
+    { "th", "Thai" },
+    { "ti", "Tigrinya" },
+    { "tk", "Turkmen" },
+    { "tl", "Filipino" },
+    { "tn", "Tswana" },
+    { "tr", "Turkish" },
+    { "ts", "Tsonga" },
+    { "tt", "Tatar" },
+    { "ug", "Uighur" },
+    { "uk", "Ukrainian" },
+    { "ur", "Urdu" },
+    { "uz", "Uzbek" },
+    { "uz", "Uzbek (Latin)" },
+    { "uz@cyrillic", "Uzbek (Cyrillic)" },
+    { "ve", "Venda" },
+    { "vi", "Vietnamese" },
+    { "wen", "Sorbian" },
+    { "wo", "Wolof" },
+    { "xh", "Xhosa" },
+    { "yi", "Yiddish" },
+    { "yo", "Yoruba" },
+    { "zh", "Chinese" },
+    { "zu", "Zulu" }
+  };
+
+/* Table from ISO 3166 country code to English name.
+   Keep in sync with the gl_locale_name_from_win32_LANGID function in
+   localename.c!  */
+static const struct table_entry country_table[] =
+  {
+    { "AE", "U.A.E." },
+    { "AF", "Afghanistan" },
+    { "AL", "Albania" },
+    { "AM", "Armenia" },
+    { "AN", "Netherlands Antilles" },
+    { "AR", "Argentina" },
+    { "AT", "Austria" },
+    { "AU", "Australia" },
+    { "AZ", "Azerbaijan" },
+    { "BA", "Bosnia and Herzegovina" },
+    { "BD", "Bangladesh" },
+    { "BE", "Belgium" },
+    { "BG", "Bulgaria" },
+    { "BH", "Bahrain" },
+    { "BN", "Brunei Darussalam" },
+    { "BO", "Bolivia" },
+    { "BR", "Brazil" },
+    { "BT", "Bhutan" },
+    { "BY", "Belarus" },
+    { "BZ", "Belize" },
+    { "CA", "Canada" },
+    { "CG", "Congo" },
+    { "CH", "Switzerland" },
+    { "CI", "Cote d'Ivoire" },
+    { "CL", "Chile" },
+    { "CM", "Cameroon" },
+    { "CN", "People's Republic of China" },
+    { "CO", "Colombia" },
+    { "CR", "Costa Rica" },
+    { "CS", "Serbia and Montenegro" },
+    { "CZ", "Czech Republic" },
+    { "DE", "Germany" },
+    { "DK", "Denmark" },
+    { "DO", "Dominican Republic" },
+    { "DZ", "Algeria" },
+    { "EC", "Ecuador" },
+    { "EE", "Estonia" },
+    { "EG", "Egypt" },
+    { "ER", "Eritrea" },
+    { "ES", "Spain" },
+    { "ET", "Ethiopia" },
+    { "FI", "Finland" },
+    { "FO", "Faroe Islands" },
+    { "FR", "France" },
+    { "GB", "United Kingdom" },
+    { "GD", "Caribbean" },
+    { "GE", "Georgia" },
+    { "GL", "Greenland" },
+    { "GR", "Greece" },
+    { "GT", "Guatemala" },
+    { "HK", "Hong Kong" },
+    { "HK", "Hong Kong S.A.R." },
+    { "HN", "Honduras" },
+    { "HR", "Croatia" },
+    { "HT", "Haiti" },
+    { "HU", "Hungary" },
+    { "ID", "Indonesia" },
+    { "IE", "Ireland" },
+    { "IL", "Israel" },
+    { "IN", "India" },
+    { "IQ", "Iraq" },
+    { "IR", "Iran" },
+    { "IS", "Iceland" },
+    { "IT", "Italy" },
+    { "JM", "Jamaica" },
+    { "JO", "Jordan" },
+    { "JP", "Japan" },
+    { "KE", "Kenya" },
+    { "KG", "Kyrgyzstan" },
+    { "KH", "Cambodia" },
+    { "KR", "South Korea" },
+    { "KW", "Kuwait" },
+    { "KZ", "Kazakhstan" },
+    { "LA", "Laos" },
+    { "LB", "Lebanon" },
+    { "LI", "Liechtenstein" },
+    { "LK", "Sri Lanka" },
+    { "LT", "Lithuania" },
+    { "LU", "Luxembourg" },
+    { "LV", "Latvia" },
+    { "LY", "Libya" },
+    { "MA", "Morocco" },
+    { "MC", "Principality of Monaco" },
+    { "MD", "Moldava" },
+    { "MD", "Moldova" },
+    { "ME", "Montenegro" },
+    { "MK", "Former Yugoslav Republic of Macedonia" },
+    { "ML", "Mali" },
+    { "MM", "Myanmar" },
+    { "MN", "Mongolia" },
+    { "MO", "Macau S.A.R." },
+    { "MT", "Malta" },
+    { "MV", "Maldives" },
+    { "MX", "Mexico" },
+    { "MY", "Malaysia" },
+    { "NG", "Nigeria" },
+    { "NI", "Nicaragua" },
+    { "NL", "Netherlands" },
+    { "NO", "Norway" },
+    { "NP", "Nepal" },
+    { "NZ", "New Zealand" },
+    { "OM", "Oman" },
+    { "PA", "Panama" },
+    { "PE", "Peru" },
+    { "PH", "Philippines" },
+    { "PK", "Islamic Republic of Pakistan" },
+    { "PL", "Poland" },
+    { "PR", "Puerto Rico" },
+    { "PT", "Portugal" },
+    { "PY", "Paraguay" },
+    { "QA", "Qatar" },
+    { "RE", "Reunion" },
+    { "RO", "Romania" },
+    { "RS", "Serbia" },
+    { "RU", "Russia" },
+    { "RW", "Rwanda" },
+    { "SA", "Saudi Arabia" },
+    { "SE", "Sweden" },
+    { "SG", "Singapore" },
+    { "SI", "Slovenia" },
+    { "SK", "Slovak" },
+    { "SN", "Senegal" },
+    { "SO", "Somalia" },
+    { "SR", "Suriname" },
+    { "SV", "El Salvador" },
+    { "SY", "Syria" },
+    { "TH", "Thailand" },
+    { "TJ", "Tajikistan" },
+    { "TM", "Turkmenistan" },
+    { "TN", "Tunisia" },
+    { "TR", "Turkey" },
+    { "TT", "Trinidad and Tobago" },
+    { "TW", "Taiwan" },
+    { "TZ", "Tanzania" },
+    { "UA", "Ukraine" },
+    { "US", "United States" },
+    { "UY", "Uruguay" },
+    { "VA", "Vatican" },
+    { "VE", "Venezuela" },
+    { "VN", "Viet Nam" },
+    { "YE", "Yemen" },
+    { "ZA", "South Africa" },
+    { "ZW", "Zimbabwe" }
+  };
+
+/* Given a string STRING, find the set of indices i such that TABLE[i].code is
+   the given STRING.  It is a range [lo,hi-1].  */
+typedef struct { size_t lo; size_t hi; } range_t;
+static void
+search (const struct table_entry *table, size_t table_size, const char *string,
+        range_t *result)
+{
+  /* The table is sorted.  Perform a binary search.  */
+  size_t hi = table_size;
+  size_t lo = 0;
+  while (lo < hi)
+    {
+      /* Invariant:
+         for i < lo, strcmp (table[i].code, string) < 0,
+         for i >= hi, strcmp (table[i].code, string) > 0.  */
+      size_t mid = (hi + lo) >> 1; /* >= lo, < hi */
+      int cmp = strcmp (table[mid].code, string);
+      if (cmp < 0)
+        lo = mid + 1;
+      else if (cmp > 0)
+        hi = mid;
+      else
+        {
+          /* Found an i with
+               strcmp (language_table[i].code, string) == 0.
+             Find the entire interval of such i.  */
+          {
+            size_t i;
+
+            for (i = mid; i > lo; )
+              {
+                i--;
+                if (strcmp (table[i].code, string) < 0)
+                  {
+                    lo = i + 1;
+                    break;
+                  }
+              }
+          }
+          {
+            size_t i;
+
+            for (i = mid; i < hi; i++)
+              {
+                if (strcmp (table[i].code, string) > 0)
+                  {
+                    hi = i;
+                    break;
+                  }
+              }
+          }
+          /* The set of i with
+               strcmp (language_table[i].code, string) == 0
+             is the interval [lo, hi-1].  */
+          break;
+        }
+    }
+  result->lo = lo;
+  result->hi = hi;
+}
+
+/* Like setlocale, but accept also locale names in the form ll or ll_CC,
+   where ll is an ISO 639 language code and CC is an ISO 3166 country code.  */
+static char *
+setlocale_unixlike (int category, const char *locale)
+{
+  char *result;
+  char llCC_buf[64];
+  char ll_buf[64];
+  char CC_buf[64];
+
+  /* First, try setlocale with the original argument unchanged.  */
+  result = setlocale (category, locale);
+  if (result != NULL)
+    return result;
+
+  /* Otherwise, assume the argument is in the form
+       language[_territory][.codeset][@modifier]
+     and try to map it using the tables.  */
+  if (strlen (locale) < sizeof (llCC_buf))
+    {
+      /* Second try: Remove the codeset part.  */
+      {
+        const char *p = locale;
+        char *q = llCC_buf;
+
+        /* Copy the part before the dot.  */
+        for (; *p != '\0' && *p != '.'; p++, q++)
+          *q = *p;
+        if (*p == '.')
+          /* Skip the part up to the '@', if any.  */
+          for (; *p != '\0' && *p != '@'; p++)
+            ;
+        /* Copy the part starting with '@', if any.  */
+        for (; *p != '\0'; p++, q++)
+          *q = *p;
+        *q = '\0';
+      }
+      /* llCC_buf now contains
+           language[_territory][@modifier]
+       */
+      if (strcmp (llCC_buf, locale) != 0)
+        {
+          result = setlocale (category, llCC_buf);
+          if (result != NULL)
+            return result;
+        }
+      /* Look it up in language_table.  */
+      {
+        range_t range;
+        size_t i;
+
+        search (language_table,
+                sizeof (language_table) / sizeof (language_table[0]),
+                llCC_buf,
+                &range);
+
+        for (i = range.lo; i < range.hi; i++)
+          {
+            /* Try the replacement in language_table[i].  */
+            result = setlocale (category, language_table[i].english);
+            if (result != NULL)
+              return result;
+          }
+      }
+      /* Split language[_territory][@modifier]
+         into  ll_buf = language[@modifier]
+         and   CC_buf = territory
+       */
+      {
+        const char *underscore = strchr (llCC_buf, '_');
+        if (underscore != NULL)
+          {
+            const char *territory_start = underscore + 1;
+            const char *territory_end = strchr (territory_start, '@');
+            if (territory_end == NULL)
+              territory_end = territory_start + strlen (territory_start);
+
+            memcpy (ll_buf, llCC_buf, underscore - llCC_buf);
+            strcpy (ll_buf + (underscore - llCC_buf), territory_end);
+
+            memcpy (CC_buf, territory_start, territory_end - territory_start);
+            CC_buf[territory_end - territory_start] = '\0';
+
+            {
+              /* Look up ll_buf in language_table
+                 and CC_buf in country_table.  */
+              range_t language_range;
+
+              search (language_table,
+                      sizeof (language_table) / sizeof (language_table[0]),
+                      ll_buf,
+                      &language_range);
+              if (language_range.lo < language_range.hi)
+                {
+                  range_t country_range;
+
+                  search (country_table,
+                          sizeof (country_table) / sizeof (country_table[0]),
+                          CC_buf,
+                          &country_range);
+                  if (country_range.lo < country_range.hi)
+                    {
+                      size_t i;
+                      size_t j;
+
+                      for (i = language_range.lo; i < language_range.hi; i++)
+                        for (j = country_range.lo; j < country_range.hi; j++)
+                          {
+                            /* Concatenate the replacements.  */
+                            const char *part1 = language_table[i].english;
+                            size_t part1_len = strlen (part1);
+                            const char *part2 = country_table[j].english;
+                            size_t part2_len = strlen (part2) + 1;
+                            char buf[64+64];
+
+                            if (!(part1_len + 1 + part2_len <= sizeof (buf)))
+                              abort ();
+                            memcpy (buf, part1, part1_len);
+                            buf[part1_len] = '_';
+                            memcpy (buf + part1_len + 1, part2, part2_len);
+
+                            /* Try the concatenated replacements.  */
+                            result = setlocale (category, buf);
+                            if (result != NULL)
+                              return result;
+                          }
+                    }
+
+                  /* Try omitting the country entirely.  This may set a locale
+                     corresponding to the wrong country, but is better than
+                     failing entirely.  */
+                  {
+                    size_t i;
+
+                    for (i = language_range.lo; i < language_range.hi; i++)
+                      {
+                        /* Try only the language replacement.  */
+                        result =
+                          setlocale (category, language_table[i].english);
+                        if (result != NULL)
+                          return result;
+                      }
+                  }
+                }
+            }
+          }
+      }
+    }
+
+  /* Failed.  */
+  return NULL;
+}
+
+# else
+#  define setlocale_unixlike setlocale
+# endif
+
+# if LC_MESSAGES == 1729
+
+/* The system does not store an LC_MESSAGES locale category.  Do it here.  */
+static char lc_messages_name[64] = "C";
+
+/* Like setlocale, but support also LC_MESSAGES.  */
+static char *
+setlocale_single (int category, const char *locale)
+{
+  if (category == LC_MESSAGES)
+    {
+      if (locale != NULL)
+        {
+          lc_messages_name[sizeof (lc_messages_name) - 1] = '\0';
+          strncpy (lc_messages_name, locale, sizeof (lc_messages_name) - 1);
+        }
+      return lc_messages_name;
+    }
+  else
+    return setlocale_unixlike (category, locale);
+}
+
+# else
+#  define setlocale_single setlocale_unixlike
+# endif
+
+char *
+rpl_setlocale (int category, const char *locale)
+{
+  if (locale != NULL && locale[0] == '\0')
+    {
+      /* A request to the set the current locale to the default locale.  */
+      if (category == LC_ALL)
+        {
+          /* Set LC_CTYPE first.  Then the other categories.  */
+          static int const categories[] =
+            {
+              LC_NUMERIC,
+              LC_TIME,
+              LC_COLLATE,
+              LC_MONETARY,
+              LC_MESSAGES
+            };
+          char *saved_locale;
+          const char *base_name;
+          unsigned int i;
+
+          /* Back up the old locale, in case one of the steps fails.  */
+          saved_locale = setlocale (LC_ALL, NULL);
+          if (saved_locale == NULL)
+            return NULL;
+          saved_locale = strdup (saved_locale);
+          if (saved_locale == NULL)
+            return NULL;
+
+          /* Set LC_CTYPE category.  Set all other categories (except possibly
+             LC_MESSAGES) to the same value in the same call; this is likely to
+             save calls.  */
+          base_name =
+            gl_locale_name_environ (LC_CTYPE, category_to_name (LC_CTYPE));
+          if (base_name == NULL)
+            base_name = gl_locale_name_default ();
+
+          if (setlocale_unixlike (LC_ALL, base_name) == NULL)
+            goto fail;
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+          /* On native Windows, setlocale(LC_ALL,...) may succeed but set the
+             LC_CTYPE category to an invalid value ("C") when it does not
+             support the specified encoding.  Report a failure instead.  */
+          if (strchr (base_name, '.') != NULL
+              && strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+            goto fail;
+# endif
+
+          for (i = 0; i < sizeof (categories) / sizeof (categories[0]); i++)
+            {
+              int cat = categories[i];
+              const char *name;
+
+              name = gl_locale_name_environ (cat, category_to_name (cat));
+              if (name == NULL)
+                name = gl_locale_name_default ();
+
+              /* If name is the same as base_name, it has already been set
+                 through the setlocale call before the loop.  */
+              if (strcmp (name, base_name) != 0
+# if LC_MESSAGES == 1729
+                  || cat == LC_MESSAGES
+# endif
+                 )
+                if (setlocale_single (cat, name) == NULL)
+                  goto fail;
+            }
+
+          /* All steps were successful.  */
+          free (saved_locale);
+          return setlocale (LC_ALL, NULL);
+
+        fail:
+          if (saved_locale[0] != '\0') /* don't risk an endless recursion */
+            setlocale (LC_ALL, saved_locale);
+          free (saved_locale);
+          return NULL;
+        }
+      else
+        {
+          const char *name =
+            gl_locale_name_environ (category, category_to_name (category));
+          if (name == NULL)
+            name = gl_locale_name_default ();
+
+          return setlocale_single (category, name);
+        }
+    }
+  else
+    {
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+      if (category == LC_ALL && locale != NULL && strchr (locale, '.') != NULL)
+        {
+          char *saved_locale;
+
+          /* Back up the old locale.  */
+          saved_locale = setlocale (LC_ALL, NULL);
+          if (saved_locale == NULL)
+            return NULL;
+          saved_locale = strdup (saved_locale);
+          if (saved_locale == NULL)
+            return NULL;
+
+          if (setlocale_unixlike (LC_ALL, locale) == NULL)
+            {
+              free (saved_locale);
+              return NULL;
+            }
+
+          /* On native Windows, setlocale(LC_ALL,...) may succeed but set the
+             LC_CTYPE category to an invalid value ("C") when it does not
+             support the specified encoding.  Report a failure instead.  */
+          if (strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+            {
+              if (saved_locale[0] != '\0') /* don't risk an endless recursion */
+                setlocale (LC_ALL, saved_locale);
+              free (saved_locale);
+              return NULL;
+            }
+
+          /* It was really successful.  */
+          free (saved_locale);
+          return setlocale (LC_ALL, NULL);
+        }
+      else
+# endif
+        return setlocale_single (category, locale);
+    }
+}
+
+#endif
index 6e15c43..0ae64e7 100644 (file)
@@ -1,5 +1,5 @@
 /* Macro for checking that a function declaration is compliant.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
diff --git a/tests/stdio.in.h b/tests/stdio.in.h
new file mode 100644 (file)
index 0000000..1e1fe84
--- /dev/null
@@ -0,0 +1,1353 @@
+/* A GNU-like <stdio.h>.
+
+   Copyright (C) 2004, 2007-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+#if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H
+/* Special invocation convention:
+   - Inside glibc header files.
+   - On OSF/1 5.1 we have a sequence of nested includes
+     <stdio.h> -> <getopt.h> -> <ctype.h> -> <sys/localedef.h> ->
+     <sys/lc_core.h> -> <nl_types.h> -> <mesg.h> -> <stdio.h>.
+     In this situation, the functions are not yet declared, therefore we cannot
+     provide the C++ aliases.  */
+
+#@INCLUDE_NEXT@ @NEXT_STDIO_H@
+
+#else
+/* Normal invocation convention.  */
+
+#ifndef _@GUARD_PREFIX@_STDIO_H
+
+#define _GL_ALREADY_INCLUDING_STDIO_H
+
+/* The include_next requires a split double-inclusion guard.  */
+#@INCLUDE_NEXT@ @NEXT_STDIO_H@
+
+#undef _GL_ALREADY_INCLUDING_STDIO_H
+
+#ifndef _@GUARD_PREFIX@_STDIO_H
+#define _@GUARD_PREFIX@_STDIO_H
+
+/* Get va_list.  Needed on many systems, including glibc 2.8.  */
+#include <stdarg.h>
+
+#include <stddef.h>
+
+/* Get off_t and ssize_t.  Needed on many systems, including glibc 2.8
+   and eglibc 2.11.2.
+   May also define off_t to a 64-bit type on native Windows.  */
+#include <sys/types.h>
+
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+   The __-protected variants of the attributes 'format' and 'printf' are
+   accepted by gcc versions 2.6.4 (effectively 2.7) and later.
+   We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because
+   gnulib and libintl do '#define printf __printf__' when they override
+   the 'printf' function.  */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+#else
+# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
+#endif
+
+/* _GL_ATTRIBUTE_FORMAT_PRINTF
+   indicates to GCC that the function takes a format string and arguments,
+   where the format string directives are the ones standardized by ISO C99
+   and POSIX.  */
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
+# define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
+   _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument))
+#else
+# define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
+   _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
+#endif
+
+/* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF,
+   except that it indicates to GCC that the supported format string directives
+   are the ones of the system printf(), rather than the ones standardized by
+   ISO C99 and POSIX.  */
+#define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \
+  _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
+
+/* _GL_ATTRIBUTE_FORMAT_SCANF
+   indicates to GCC that the function takes a format string and arguments,
+   where the format string directives are the ones standardized by ISO C99
+   and POSIX.  */
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
+# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
+   _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument))
+#else
+# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
+   _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
+#endif
+
+/* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF,
+   except that it indicates to GCC that the supported format string directives
+   are the ones of the system scanf(), rather than the ones standardized by
+   ISO C99 and POSIX.  */
+#define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \
+  _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
+
+/* Solaris 10 declares renameat in <unistd.h>, not in <stdio.h>.  */
+/* But in any case avoid namespace pollution on glibc systems.  */
+#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \
+    && ! defined __GLIBC__
+# include <unistd.h>
+#endif
+
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
+
+/* The definition of _GL_ARG_NONNULL is copied here.  */
+
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
+/* Macros for stringification.  */
+#define _GL_STDIO_STRINGIZE(token) #token
+#define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token)
+
+/* When also using extern inline, suppress the use of static inline in
+   standard headers of problematic Apple configurations, as Libc at
+   least through Libc-825.26 (2013-04-09) mishandles it; see, e.g.,
+   <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
+   Perhaps Apple will fix this some day.  */
+#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \
+     && defined __GNUC__ && defined __STDC__)
+# undef putc_unlocked
+#endif
+
+#if @GNULIB_DPRINTF@
+# if @REPLACE_DPRINTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define dprintf rpl_dprintf
+#  endif
+_GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...)
+                                _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
+                                _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...));
+# else
+#  if !@HAVE_DPRINTF@
+_GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...)
+                                _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
+                                _GL_ARG_NONNULL ((2)));
+#  endif
+_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...));
+# endif
+_GL_CXXALIASWARN (dprintf);
+#elif defined GNULIB_POSIXCHECK
+# undef dprintf
+# if HAVE_RAW_DECL_DPRINTF
+_GL_WARN_ON_USE (dprintf, "dprintf is unportable - "
+                 "use gnulib module dprintf for portability");
+# endif
+#endif
+
+#if @GNULIB_FCLOSE@
+/* Close STREAM and its underlying file descriptor.  */
+# if @REPLACE_FCLOSE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define fclose rpl_fclose
+#  endif
+_GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (fclose, int, (FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fclose, int, (FILE *stream));
+# endif
+_GL_CXXALIASWARN (fclose);
+#elif defined GNULIB_POSIXCHECK
+# undef fclose
+/* Assume fclose is always declared.  */
+_GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - "
+                 "use gnulib module fclose for portable POSIX compliance");
+#endif
+
+#if @GNULIB_FDOPEN@
+# if @REPLACE_FDOPEN@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fdopen
+#   define fdopen rpl_fdopen
+#  endif
+_GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode)
+                                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode));
+# else
+_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode));
+# endif
+_GL_CXXALIASWARN (fdopen);
+#elif defined GNULIB_POSIXCHECK
+# undef fdopen
+/* Assume fdopen is always declared.  */
+_GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - "
+                 "use gnulib module fdopen for portability");
+#endif
+
+#if @GNULIB_FFLUSH@
+/* Flush all pending data on STREAM according to POSIX rules.  Both
+   output and seekable input streams are supported.
+   Note! LOSS OF DATA can occur if fflush is applied on an input stream
+   that is _not_seekable_ or on an update stream that is _not_seekable_
+   and in which the most recent operation was input.  Seekability can
+   be tested with lseek(fileno(fp),0,SEEK_CUR).  */
+# if @REPLACE_FFLUSH@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define fflush rpl_fflush
+#  endif
+_GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream));
+_GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream));
+# else
+_GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream));
+# endif
+_GL_CXXALIASWARN (fflush);
+#elif defined GNULIB_POSIXCHECK
+# undef fflush
+/* Assume fflush is always declared.  */
+_GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - "
+                 "use gnulib module fflush for portable POSIX compliance");
+#endif
+
+#if @GNULIB_FGETC@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fgetc
+#   define fgetc rpl_fgetc
+#  endif
+_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (fgetc, int, (FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fgetc, int, (FILE *stream));
+# endif
+_GL_CXXALIASWARN (fgetc);
+#endif
+
+#if @GNULIB_FGETS@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fgets
+#   define fgets rpl_fgets
+#  endif
+_GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream)
+                                 _GL_ARG_NONNULL ((1, 3)));
+_GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream));
+# endif
+_GL_CXXALIASWARN (fgets);
+#endif
+
+#if @GNULIB_FOPEN@
+# if @REPLACE_FOPEN@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fopen
+#   define fopen rpl_fopen
+#  endif
+_GL_FUNCDECL_RPL (fopen, FILE *, (const char *filename, const char *mode)
+                                 _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (fopen, FILE *, (const char *filename, const char *mode));
+# else
+_GL_CXXALIAS_SYS (fopen, FILE *, (const char *filename, const char *mode));
+# endif
+_GL_CXXALIASWARN (fopen);
+#elif defined GNULIB_POSIXCHECK
+# undef fopen
+/* Assume fopen is always declared.  */
+_GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - "
+                 "use gnulib module fopen for portability");
+#endif
+
+#if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@
+# if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \
+     || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define fprintf rpl_fprintf
+#  endif
+#  define GNULIB_overrides_fprintf 1
+#  if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
+_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
+                                _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
+                                _GL_ARG_NONNULL ((1, 2)));
+#  else
+_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
+                                _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3)
+                                _GL_ARG_NONNULL ((1, 2)));
+#  endif
+_GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...));
+# else
+_GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...));
+# endif
+_GL_CXXALIASWARN (fprintf);
+#endif
+#if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
+# if !GNULIB_overrides_fprintf
+#  undef fprintf
+# endif
+/* Assume fprintf is always declared.  */
+_GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - "
+                 "use gnulib module fprintf-posix for portable "
+                 "POSIX compliance");
+#endif
+
+#if @GNULIB_FPURGE@
+/* Discard all pending buffered I/O data on STREAM.
+   STREAM must not be wide-character oriented.
+   When discarding pending output, the file position is set back to where it
+   was before the write calls.  When discarding pending input, the file
+   position is advanced to match the end of the previously read input.
+   Return 0 if successful.  Upon error, return -1 and set errno.  */
+# if @REPLACE_FPURGE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define fpurge rpl_fpurge
+#  endif
+_GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream));
+# else
+#  if !@HAVE_DECL_FPURGE@
+_GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream));
+# endif
+_GL_CXXALIASWARN (fpurge);
+#elif defined GNULIB_POSIXCHECK
+# undef fpurge
+# if HAVE_RAW_DECL_FPURGE
+_GL_WARN_ON_USE (fpurge, "fpurge is not always present - "
+                 "use gnulib module fpurge for portability");
+# endif
+#endif
+
+#if @GNULIB_FPUTC@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fputc
+#   define fputc rpl_fputc
+#  endif
+_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream));
+# endif
+_GL_CXXALIASWARN (fputc);
+#endif
+
+#if @GNULIB_FPUTS@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fputs
+#   define fputs rpl_fputs
+#  endif
+_GL_FUNCDECL_RPL (fputs, int, (const char *string, FILE *stream)
+                              _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (fputs, int, (const char *string, FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream));
+# endif
+_GL_CXXALIASWARN (fputs);
+#endif
+
+#if @GNULIB_FREAD@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fread
+#   define fread rpl_fread
+#  endif
+_GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)
+                                 _GL_ARG_NONNULL ((4)));
+_GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream));
+# endif
+_GL_CXXALIASWARN (fread);
+#endif
+
+#if @GNULIB_FREOPEN@
+# if @REPLACE_FREOPEN@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef freopen
+#   define freopen rpl_freopen
+#  endif
+_GL_FUNCDECL_RPL (freopen, FILE *,
+                  (const char *filename, const char *mode, FILE *stream)
+                  _GL_ARG_NONNULL ((2, 3)));
+_GL_CXXALIAS_RPL (freopen, FILE *,
+                  (const char *filename, const char *mode, FILE *stream));
+# else
+_GL_CXXALIAS_SYS (freopen, FILE *,
+                  (const char *filename, const char *mode, FILE *stream));
+# endif
+_GL_CXXALIASWARN (freopen);
+#elif defined GNULIB_POSIXCHECK
+# undef freopen
+/* Assume freopen is always declared.  */
+_GL_WARN_ON_USE (freopen,
+                 "freopen on native Windows platforms is not POSIX compliant - "
+                 "use gnulib module freopen for portability");
+#endif
+
+#if @GNULIB_FSCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fscanf
+#   define fscanf rpl_fscanf
+#  endif
+_GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...)
+                               _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3)
+                               _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...));
+# else
+_GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...));
+# endif
+_GL_CXXALIASWARN (fscanf);
+#endif
+
+
+/* Set up the following warnings, based on which modules are in use.
+   GNU Coding Standards discourage the use of fseek, since it imposes
+   an arbitrary limitation on some 32-bit hosts.  Remember that the
+   fseek module depends on the fseeko module, so we only have three
+   cases to consider:
+
+   1. The developer is not using either module.  Issue a warning under
+   GNULIB_POSIXCHECK for both functions, to remind them that both
+   functions have bugs on some systems.  _GL_NO_LARGE_FILES has no
+   impact on this warning.
+
+   2. The developer is using both modules.  They may be unaware of the
+   arbitrary limitations of fseek, so issue a warning under
+   GNULIB_POSIXCHECK.  On the other hand, they may be using both
+   modules intentionally, so the developer can define
+   _GL_NO_LARGE_FILES in the compilation units where the use of fseek
+   is safe, to silence the warning.
+
+   3. The developer is using the fseeko module, but not fseek.  Gnulib
+   guarantees that fseek will still work around platform bugs in that
+   case, but we presume that the developer is aware of the pitfalls of
+   fseek and was trying to avoid it, so issue a warning even when
+   GNULIB_POSIXCHECK is undefined.  Again, _GL_NO_LARGE_FILES can be
+   defined to silence the warning in particular compilation units.
+   In C++ compilations with GNULIB_NAMESPACE, in order to avoid that
+   fseek gets defined as a macro, it is recommended that the developer
+   uses the fseek module, even if he is not calling the fseek function.
+
+   Most gnulib clients that perform stream operations should fall into
+   category 3.  */
+
+#if @GNULIB_FSEEK@
+# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES
+#  define _GL_FSEEK_WARN /* Category 2, above.  */
+#  undef fseek
+# endif
+# if @REPLACE_FSEEK@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fseek
+#   define fseek rpl_fseek
+#  endif
+_GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence)
+                              _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence));
+# else
+_GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence));
+# endif
+_GL_CXXALIASWARN (fseek);
+#endif
+
+#if @GNULIB_FSEEKO@
+# if !@GNULIB_FSEEK@ && !defined _GL_NO_LARGE_FILES
+#  define _GL_FSEEK_WARN /* Category 3, above.  */
+#  undef fseek
+# endif
+# if @REPLACE_FSEEKO@
+/* Provide an fseeko function that is aware of a preceding fflush(), and which
+   detects pipes.  */
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fseeko
+#   define fseeko rpl_fseeko
+#  endif
+_GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)
+                               _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence));
+# else
+#  if ! @HAVE_DECL_FSEEKO@
+_GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)
+                               _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence));
+# endif
+_GL_CXXALIASWARN (fseeko);
+#elif defined GNULIB_POSIXCHECK
+# define _GL_FSEEK_WARN /* Category 1, above.  */
+# undef fseek
+# undef fseeko
+# if HAVE_RAW_DECL_FSEEKO
+_GL_WARN_ON_USE (fseeko, "fseeko is unportable - "
+                 "use gnulib module fseeko for portability");
+# endif
+#endif
+
+#ifdef _GL_FSEEK_WARN
+# undef _GL_FSEEK_WARN
+/* Here, either fseek is undefined (but C89 guarantees that it is
+   declared), or it is defined as rpl_fseek (declared above).  */
+_GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB "
+                 "on 32-bit platforms - "
+                 "use fseeko function for handling of large files");
+#endif
+
+
+/* ftell, ftello.  See the comments on fseek/fseeko.  */
+
+#if @GNULIB_FTELL@
+# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES
+#  define _GL_FTELL_WARN /* Category 2, above.  */
+#  undef ftell
+# endif
+# if @REPLACE_FTELL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ftell
+#   define ftell rpl_ftell
+#  endif
+_GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (ftell, long, (FILE *fp));
+# else
+_GL_CXXALIAS_SYS (ftell, long, (FILE *fp));
+# endif
+_GL_CXXALIASWARN (ftell);
+#endif
+
+#if @GNULIB_FTELLO@
+# if !@GNULIB_FTELL@ && !defined _GL_NO_LARGE_FILES
+#  define _GL_FTELL_WARN /* Category 3, above.  */
+#  undef ftell
+# endif
+# if @REPLACE_FTELLO@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ftello
+#   define ftello rpl_ftello
+#  endif
+_GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp));
+# else
+#  if ! @HAVE_DECL_FTELLO@
+_GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp));
+# endif
+_GL_CXXALIASWARN (ftello);
+#elif defined GNULIB_POSIXCHECK
+# define _GL_FTELL_WARN /* Category 1, above.  */
+# undef ftell
+# undef ftello
+# if HAVE_RAW_DECL_FTELLO
+_GL_WARN_ON_USE (ftello, "ftello is unportable - "
+                 "use gnulib module ftello for portability");
+# endif
+#endif
+
+#ifdef _GL_FTELL_WARN
+# undef _GL_FTELL_WARN
+/* Here, either ftell is undefined (but C89 guarantees that it is
+   declared), or it is defined as rpl_ftell (declared above).  */
+_GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB "
+                 "on 32-bit platforms - "
+                 "use ftello function for handling of large files");
+#endif
+
+
+#if @GNULIB_FWRITE@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef fwrite
+#   define fwrite rpl_fwrite
+#  endif
+_GL_FUNCDECL_RPL (fwrite, size_t,
+                  (const void *ptr, size_t s, size_t n, FILE *stream)
+                  _GL_ARG_NONNULL ((1, 4)));
+_GL_CXXALIAS_RPL (fwrite, size_t,
+                  (const void *ptr, size_t s, size_t n, FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fwrite, size_t,
+                  (const void *ptr, size_t s, size_t n, FILE *stream));
+
+/* Work around bug 11959 when fortifying glibc 2.4 through 2.15
+   <http://sources.redhat.com/bugzilla/show_bug.cgi?id=11959>,
+   which sometimes causes an unwanted diagnostic for fwrite calls.
+   This affects only function declaration attributes under certain
+   versions of gcc and clang, and is not needed for C++.  */
+#  if (0 < __USE_FORTIFY_LEVEL                                          \
+       && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \
+       && 3 < __GNUC__ + (4 <= __GNUC_MINOR__)                          \
+       && !defined __cplusplus)
+#   undef fwrite
+#   undef fwrite_unlocked
+extern size_t __REDIRECT (rpl_fwrite,
+                          (const void *__restrict, size_t, size_t,
+                           FILE *__restrict),
+                          fwrite);
+extern size_t __REDIRECT (rpl_fwrite_unlocked,
+                          (const void *__restrict, size_t, size_t,
+                           FILE *__restrict),
+                          fwrite_unlocked);
+#   define fwrite rpl_fwrite
+#   define fwrite_unlocked rpl_fwrite_unlocked
+#  endif
+# endif
+_GL_CXXALIASWARN (fwrite);
+#endif
+
+#if @GNULIB_GETC@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getc
+#   define getc rpl_fgetc
+#  endif
+_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream));
+# else
+_GL_CXXALIAS_SYS (getc, int, (FILE *stream));
+# endif
+_GL_CXXALIASWARN (getc);
+#endif
+
+#if @GNULIB_GETCHAR@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getchar
+#   define getchar rpl_getchar
+#  endif
+_GL_FUNCDECL_RPL (getchar, int, (void));
+_GL_CXXALIAS_RPL (getchar, int, (void));
+# else
+_GL_CXXALIAS_SYS (getchar, int, (void));
+# endif
+_GL_CXXALIASWARN (getchar);
+#endif
+
+#if @GNULIB_GETDELIM@
+/* Read input, up to (and including) the next occurrence of DELIMITER, from
+   STREAM, store it in *LINEPTR (and NUL-terminate it).
+   *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
+   bytes of space.  It is realloc'd as necessary.
+   Return the number of bytes read and stored at *LINEPTR (not including the
+   NUL terminator), or -1 on error or EOF.  */
+# if @REPLACE_GETDELIM@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getdelim
+#   define getdelim rpl_getdelim
+#  endif
+_GL_FUNCDECL_RPL (getdelim, ssize_t,
+                  (char **lineptr, size_t *linesize, int delimiter,
+                   FILE *stream)
+                  _GL_ARG_NONNULL ((1, 2, 4)));
+_GL_CXXALIAS_RPL (getdelim, ssize_t,
+                  (char **lineptr, size_t *linesize, int delimiter,
+                   FILE *stream));
+# else
+#  if !@HAVE_DECL_GETDELIM@
+_GL_FUNCDECL_SYS (getdelim, ssize_t,
+                  (char **lineptr, size_t *linesize, int delimiter,
+                   FILE *stream)
+                  _GL_ARG_NONNULL ((1, 2, 4)));
+#  endif
+_GL_CXXALIAS_SYS (getdelim, ssize_t,
+                  (char **lineptr, size_t *linesize, int delimiter,
+                   FILE *stream));
+# endif
+_GL_CXXALIASWARN (getdelim);
+#elif defined GNULIB_POSIXCHECK
+# undef getdelim
+# if HAVE_RAW_DECL_GETDELIM
+_GL_WARN_ON_USE (getdelim, "getdelim is unportable - "
+                 "use gnulib module getdelim for portability");
+# endif
+#endif
+
+#if @GNULIB_GETLINE@
+/* Read a line, up to (and including) the next newline, from STREAM, store it
+   in *LINEPTR (and NUL-terminate it).
+   *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE
+   bytes of space.  It is realloc'd as necessary.
+   Return the number of bytes read and stored at *LINEPTR (not including the
+   NUL terminator), or -1 on error or EOF.  */
+# if @REPLACE_GETLINE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getline
+#   define getline rpl_getline
+#  endif
+_GL_FUNCDECL_RPL (getline, ssize_t,
+                  (char **lineptr, size_t *linesize, FILE *stream)
+                  _GL_ARG_NONNULL ((1, 2, 3)));
+_GL_CXXALIAS_RPL (getline, ssize_t,
+                  (char **lineptr, size_t *linesize, FILE *stream));
+# else
+#  if !@HAVE_DECL_GETLINE@
+_GL_FUNCDECL_SYS (getline, ssize_t,
+                  (char **lineptr, size_t *linesize, FILE *stream)
+                  _GL_ARG_NONNULL ((1, 2, 3)));
+#  endif
+_GL_CXXALIAS_SYS (getline, ssize_t,
+                  (char **lineptr, size_t *linesize, FILE *stream));
+# endif
+# if @HAVE_DECL_GETLINE@
+_GL_CXXALIASWARN (getline);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef getline
+# if HAVE_RAW_DECL_GETLINE
+_GL_WARN_ON_USE (getline, "getline is unportable - "
+                 "use gnulib module getline for portability");
+# endif
+#endif
+
+/* It is very rare that the developer ever has full control of stdin,
+   so any use of gets warrants an unconditional warning; besides, C11
+   removed it.  */
+#undef gets
+#if HAVE_RAW_DECL_GETS
+_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#endif
+
+
+#if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
+struct obstack;
+/* Grow an obstack with formatted output.  Return the number of
+   bytes added to OBS.  No trailing nul byte is added, and the
+   object should be closed with obstack_finish before use.  Upon
+   memory allocation error, call obstack_alloc_failed_handler.  Upon
+   other error, return -1.  */
+# if @REPLACE_OBSTACK_PRINTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define obstack_printf rpl_obstack_printf
+#  endif
+_GL_FUNCDECL_RPL (obstack_printf, int,
+                  (struct obstack *obs, const char *format, ...)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (obstack_printf, int,
+                  (struct obstack *obs, const char *format, ...));
+# else
+#  if !@HAVE_DECL_OBSTACK_PRINTF@
+_GL_FUNCDECL_SYS (obstack_printf, int,
+                  (struct obstack *obs, const char *format, ...)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
+                  _GL_ARG_NONNULL ((1, 2)));
+#  endif
+_GL_CXXALIAS_SYS (obstack_printf, int,
+                  (struct obstack *obs, const char *format, ...));
+# endif
+_GL_CXXALIASWARN (obstack_printf);
+# if @REPLACE_OBSTACK_PRINTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define obstack_vprintf rpl_obstack_vprintf
+#  endif
+_GL_FUNCDECL_RPL (obstack_vprintf, int,
+                  (struct obstack *obs, const char *format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (obstack_vprintf, int,
+                  (struct obstack *obs, const char *format, va_list args));
+# else
+#  if !@HAVE_DECL_OBSTACK_PRINTF@
+_GL_FUNCDECL_SYS (obstack_vprintf, int,
+                  (struct obstack *obs, const char *format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+                  _GL_ARG_NONNULL ((1, 2)));
+#  endif
+_GL_CXXALIAS_SYS (obstack_vprintf, int,
+                  (struct obstack *obs, const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (obstack_vprintf);
+#endif
+
+#if @GNULIB_PCLOSE@
+# if !@HAVE_PCLOSE@
+_GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (pclose, int, (FILE *stream));
+_GL_CXXALIASWARN (pclose);
+#elif defined GNULIB_POSIXCHECK
+# undef pclose
+# if HAVE_RAW_DECL_PCLOSE
+_GL_WARN_ON_USE (pclose, "pclose is unportable - "
+                 "use gnulib module pclose for more portability");
+# endif
+#endif
+
+#if @GNULIB_PERROR@
+/* Print a message to standard error, describing the value of ERRNO,
+   (if STRING is not NULL and not empty) prefixed with STRING and ": ",
+   and terminated with a newline.  */
+# if @REPLACE_PERROR@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define perror rpl_perror
+#  endif
+_GL_FUNCDECL_RPL (perror, void, (const char *string));
+_GL_CXXALIAS_RPL (perror, void, (const char *string));
+# else
+_GL_CXXALIAS_SYS (perror, void, (const char *string));
+# endif
+_GL_CXXALIASWARN (perror);
+#elif defined GNULIB_POSIXCHECK
+# undef perror
+/* Assume perror is always declared.  */
+_GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - "
+                 "use gnulib module perror for portability");
+#endif
+
+#if @GNULIB_POPEN@
+# if @REPLACE_POPEN@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef popen
+#   define popen rpl_popen
+#  endif
+_GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode)
+                                 _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode));
+# else
+#  if !@HAVE_POPEN@
+_GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode)
+                                 _GL_ARG_NONNULL ((1, 2)));
+#  endif
+_GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode));
+# endif
+_GL_CXXALIASWARN (popen);
+#elif defined GNULIB_POSIXCHECK
+# undef popen
+# if HAVE_RAW_DECL_POPEN
+_GL_WARN_ON_USE (popen, "popen is buggy on some platforms - "
+                 "use gnulib module popen or pipe for more portability");
+# endif
+#endif
+
+#if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@
+# if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \
+     || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
+#  if defined __GNUC__
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+/* Don't break __attribute__((format(printf,M,N))).  */
+#    define printf __printf__
+#   endif
+#   if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
+_GL_FUNCDECL_RPL_1 (__printf__, int,
+                    (const char *format, ...)
+                    __asm__ (@ASM_SYMBOL_PREFIX@
+                             _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
+                    _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2)
+                    _GL_ARG_NONNULL ((1)));
+#   else
+_GL_FUNCDECL_RPL_1 (__printf__, int,
+                    (const char *format, ...)
+                    __asm__ (@ASM_SYMBOL_PREFIX@
+                             _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
+                    _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2)
+                    _GL_ARG_NONNULL ((1)));
+#   endif
+_GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...));
+#  else
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    define printf rpl_printf
+#   endif
+_GL_FUNCDECL_RPL (printf, int,
+                  (const char *format, ...)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2)
+                  _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (printf, int, (const char *format, ...));
+#  endif
+#  define GNULIB_overrides_printf 1
+# else
+_GL_CXXALIAS_SYS (printf, int, (const char *format, ...));
+# endif
+_GL_CXXALIASWARN (printf);
+#endif
+#if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK
+# if !GNULIB_overrides_printf
+#  undef printf
+# endif
+/* Assume printf is always declared.  */
+_GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - "
+                 "use gnulib module printf-posix for portable "
+                 "POSIX compliance");
+#endif
+
+#if @GNULIB_PUTC@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef putc
+#   define putc rpl_fputc
+#  endif
+_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream));
+# else
+_GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream));
+# endif
+_GL_CXXALIASWARN (putc);
+#endif
+
+#if @GNULIB_PUTCHAR@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef putchar
+#   define putchar rpl_putchar
+#  endif
+_GL_FUNCDECL_RPL (putchar, int, (int c));
+_GL_CXXALIAS_RPL (putchar, int, (int c));
+# else
+_GL_CXXALIAS_SYS (putchar, int, (int c));
+# endif
+_GL_CXXALIASWARN (putchar);
+#endif
+
+#if @GNULIB_PUTS@
+# if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef puts
+#   define puts rpl_puts
+#  endif
+_GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (puts, int, (const char *string));
+# else
+_GL_CXXALIAS_SYS (puts, int, (const char *string));
+# endif
+_GL_CXXALIASWARN (puts);
+#endif
+
+#if @GNULIB_REMOVE@
+# if @REPLACE_REMOVE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef remove
+#   define remove rpl_remove
+#  endif
+_GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (remove, int, (const char *name));
+# else
+_GL_CXXALIAS_SYS (remove, int, (const char *name));
+# endif
+_GL_CXXALIASWARN (remove);
+#elif defined GNULIB_POSIXCHECK
+# undef remove
+/* Assume remove is always declared.  */
+_GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - "
+                 "use gnulib module remove for more portability");
+#endif
+
+#if @GNULIB_RENAME@
+# if @REPLACE_RENAME@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef rename
+#   define rename rpl_rename
+#  endif
+_GL_FUNCDECL_RPL (rename, int,
+                  (const char *old_filename, const char *new_filename)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (rename, int,
+                  (const char *old_filename, const char *new_filename));
+# else
+_GL_CXXALIAS_SYS (rename, int,
+                  (const char *old_filename, const char *new_filename));
+# endif
+_GL_CXXALIASWARN (rename);
+#elif defined GNULIB_POSIXCHECK
+# undef rename
+/* Assume rename is always declared.  */
+_GL_WARN_ON_USE (rename, "rename is buggy on some platforms - "
+                 "use gnulib module rename for more portability");
+#endif
+
+#if @GNULIB_RENAMEAT@
+# if @REPLACE_RENAMEAT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef renameat
+#   define renameat rpl_renameat
+#  endif
+_GL_FUNCDECL_RPL (renameat, int,
+                  (int fd1, char const *file1, int fd2, char const *file2)
+                  _GL_ARG_NONNULL ((2, 4)));
+_GL_CXXALIAS_RPL (renameat, int,
+                  (int fd1, char const *file1, int fd2, char const *file2));
+# else
+#  if !@HAVE_RENAMEAT@
+_GL_FUNCDECL_SYS (renameat, int,
+                  (int fd1, char const *file1, int fd2, char const *file2)
+                  _GL_ARG_NONNULL ((2, 4)));
+#  endif
+_GL_CXXALIAS_SYS (renameat, int,
+                  (int fd1, char const *file1, int fd2, char const *file2));
+# endif
+_GL_CXXALIASWARN (renameat);
+#elif defined GNULIB_POSIXCHECK
+# undef renameat
+# if HAVE_RAW_DECL_RENAMEAT
+_GL_WARN_ON_USE (renameat, "renameat is not portable - "
+                 "use gnulib module renameat for portability");
+# endif
+#endif
+
+#if @GNULIB_SCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if defined __GNUC__
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    undef scanf
+/* Don't break __attribute__((format(scanf,M,N))).  */
+#    define scanf __scanf__
+#   endif
+_GL_FUNCDECL_RPL_1 (__scanf__, int,
+                    (const char *format, ...)
+                    __asm__ (@ASM_SYMBOL_PREFIX@
+                             _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf))
+                    _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
+                    _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...));
+#  else
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    undef scanf
+#    define scanf rpl_scanf
+#   endif
+_GL_FUNCDECL_RPL (scanf, int, (const char *format, ...)
+                              _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
+                              _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (scanf, int, (const char *format, ...));
+#  endif
+# else
+_GL_CXXALIAS_SYS (scanf, int, (const char *format, ...));
+# endif
+_GL_CXXALIASWARN (scanf);
+#endif
+
+#if @GNULIB_SNPRINTF@
+# if @REPLACE_SNPRINTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define snprintf rpl_snprintf
+#  endif
+_GL_FUNCDECL_RPL (snprintf, int,
+                  (char *str, size_t size, const char *format, ...)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4)
+                  _GL_ARG_NONNULL ((3)));
+_GL_CXXALIAS_RPL (snprintf, int,
+                  (char *str, size_t size, const char *format, ...));
+# else
+#  if !@HAVE_DECL_SNPRINTF@
+_GL_FUNCDECL_SYS (snprintf, int,
+                  (char *str, size_t size, const char *format, ...)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4)
+                  _GL_ARG_NONNULL ((3)));
+#  endif
+_GL_CXXALIAS_SYS (snprintf, int,
+                  (char *str, size_t size, const char *format, ...));
+# endif
+_GL_CXXALIASWARN (snprintf);
+#elif defined GNULIB_POSIXCHECK
+# undef snprintf
+# if HAVE_RAW_DECL_SNPRINTF
+_GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
+                 "use gnulib module snprintf for portability");
+# endif
+#endif
+
+/* Some people would argue that all sprintf uses should be warned about
+   (for example, OpenBSD issues a link warning for it),
+   since it can cause security holes due to buffer overruns.
+   However, we believe that sprintf can be used safely, and is more
+   efficient than snprintf in those safe cases; and as proof of our
+   belief, we use sprintf in several gnulib modules.  So this header
+   intentionally avoids adding a warning to sprintf except when
+   GNULIB_POSIXCHECK is defined.  */
+
+#if @GNULIB_SPRINTF_POSIX@
+# if @REPLACE_SPRINTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define sprintf rpl_sprintf
+#  endif
+_GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...)
+                                _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
+                                _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...));
+# else
+_GL_CXXALIAS_SYS (sprintf, int, (char *str, const char *format, ...));
+# endif
+_GL_CXXALIASWARN (sprintf);
+#elif defined GNULIB_POSIXCHECK
+# undef sprintf
+/* Assume sprintf is always declared.  */
+_GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - "
+                 "use gnulib module sprintf-posix for portable "
+                 "POSIX compliance");
+#endif
+
+#if @GNULIB_TMPFILE@
+# if @REPLACE_TMPFILE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define tmpfile rpl_tmpfile
+#  endif
+_GL_FUNCDECL_RPL (tmpfile, FILE *, (void));
+_GL_CXXALIAS_RPL (tmpfile, FILE *, (void));
+# else
+_GL_CXXALIAS_SYS (tmpfile, FILE *, (void));
+# endif
+_GL_CXXALIASWARN (tmpfile);
+#elif defined GNULIB_POSIXCHECK
+# undef tmpfile
+# if HAVE_RAW_DECL_TMPFILE
+_GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - "
+                 "use gnulib module tmpfile for portability");
+# endif
+#endif
+
+#if @GNULIB_VASPRINTF@
+/* Write formatted output to a string dynamically allocated with malloc().
+   If the memory allocation succeeds, store the address of the string in
+   *RESULT and return the number of resulting bytes, excluding the trailing
+   NUL.  Upon memory allocation error, or some other error, return -1.  */
+# if @REPLACE_VASPRINTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define asprintf rpl_asprintf
+#  endif
+_GL_FUNCDECL_RPL (asprintf, int,
+                  (char **result, const char *format, ...)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (asprintf, int,
+                  (char **result, const char *format, ...));
+# else
+#  if !@HAVE_VASPRINTF@
+_GL_FUNCDECL_SYS (asprintf, int,
+                  (char **result, const char *format, ...)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
+                  _GL_ARG_NONNULL ((1, 2)));
+#  endif
+_GL_CXXALIAS_SYS (asprintf, int,
+                  (char **result, const char *format, ...));
+# endif
+_GL_CXXALIASWARN (asprintf);
+# if @REPLACE_VASPRINTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define vasprintf rpl_vasprintf
+#  endif
+_GL_FUNCDECL_RPL (vasprintf, int,
+                  (char **result, const char *format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (vasprintf, int,
+                  (char **result, const char *format, va_list args));
+# else
+#  if !@HAVE_VASPRINTF@
+_GL_FUNCDECL_SYS (vasprintf, int,
+                  (char **result, const char *format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+                  _GL_ARG_NONNULL ((1, 2)));
+#  endif
+_GL_CXXALIAS_SYS (vasprintf, int,
+                  (char **result, const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vasprintf);
+#endif
+
+#if @GNULIB_VDPRINTF@
+# if @REPLACE_VDPRINTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define vdprintf rpl_vdprintf
+#  endif
+_GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args)
+                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+                                 _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args));
+# else
+#  if !@HAVE_VDPRINTF@
+_GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args)
+                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+                                 _GL_ARG_NONNULL ((2)));
+#  endif
+/* Need to cast, because on Solaris, the third parameter will likely be
+                                                    __va_list args.  */
+_GL_CXXALIAS_SYS_CAST (vdprintf, int,
+                       (int fd, const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vdprintf);
+#elif defined GNULIB_POSIXCHECK
+# undef vdprintf
+# if HAVE_RAW_DECL_VDPRINTF
+_GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - "
+                 "use gnulib module vdprintf for portability");
+# endif
+#endif
+
+#if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@
+# if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \
+     || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define vfprintf rpl_vfprintf
+#  endif
+#  define GNULIB_overrides_vfprintf 1
+#  if @GNULIB_VFPRINTF_POSIX@
+_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
+                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+                                 _GL_ARG_NONNULL ((1, 2)));
+#  else
+_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
+                                 _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0)
+                                 _GL_ARG_NONNULL ((1, 2)));
+#  endif
+_GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args));
+# else
+/* Need to cast, because on Solaris, the third parameter is
+                                                      __va_list args
+   and GCC's fixincludes did not change this to __gnuc_va_list.  */
+_GL_CXXALIAS_SYS_CAST (vfprintf, int,
+                       (FILE *fp, const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vfprintf);
+#endif
+#if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
+# if !GNULIB_overrides_vfprintf
+#  undef vfprintf
+# endif
+/* Assume vfprintf is always declared.  */
+_GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - "
+                 "use gnulib module vfprintf-posix for portable "
+                      "POSIX compliance");
+#endif
+
+#if @GNULIB_VFSCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef vfscanf
+#   define vfscanf rpl_vfscanf
+#  endif
+_GL_FUNCDECL_RPL (vfscanf, int,
+                  (FILE *stream, const char *format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (vfscanf, int,
+                  (FILE *stream, const char *format, va_list args));
+# else
+_GL_CXXALIAS_SYS (vfscanf, int,
+                  (FILE *stream, const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vfscanf);
+#endif
+
+#if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@
+# if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \
+     || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define vprintf rpl_vprintf
+#  endif
+#  define GNULIB_overrides_vprintf 1
+#  if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
+_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
+                                _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0)
+                                _GL_ARG_NONNULL ((1)));
+#  else
+_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
+                                _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0)
+                                _GL_ARG_NONNULL ((1)));
+#  endif
+_GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args));
+# else
+/* Need to cast, because on Solaris, the second parameter is
+                                                          __va_list args
+   and GCC's fixincludes did not change this to __gnuc_va_list.  */
+_GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vprintf);
+#endif
+#if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK
+# if !GNULIB_overrides_vprintf
+#  undef vprintf
+# endif
+/* Assume vprintf is always declared.  */
+_GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - "
+                 "use gnulib module vprintf-posix for portable "
+                 "POSIX compliance");
+#endif
+
+#if @GNULIB_VSCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef vscanf
+#   define vscanf rpl_vscanf
+#  endif
+_GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args)
+                               _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0)
+                               _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args));
+# else
+_GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vscanf);
+#endif
+
+#if @GNULIB_VSNPRINTF@
+# if @REPLACE_VSNPRINTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define vsnprintf rpl_vsnprintf
+#  endif
+_GL_FUNCDECL_RPL (vsnprintf, int,
+                  (char *str, size_t size, const char *format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0)
+                  _GL_ARG_NONNULL ((3)));
+_GL_CXXALIAS_RPL (vsnprintf, int,
+                  (char *str, size_t size, const char *format, va_list args));
+# else
+#  if !@HAVE_DECL_VSNPRINTF@
+_GL_FUNCDECL_SYS (vsnprintf, int,
+                  (char *str, size_t size, const char *format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0)
+                  _GL_ARG_NONNULL ((3)));
+#  endif
+_GL_CXXALIAS_SYS (vsnprintf, int,
+                  (char *str, size_t size, const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vsnprintf);
+#elif defined GNULIB_POSIXCHECK
+# undef vsnprintf
+# if HAVE_RAW_DECL_VSNPRINTF
+_GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - "
+                 "use gnulib module vsnprintf for portability");
+# endif
+#endif
+
+#if @GNULIB_VSPRINTF_POSIX@
+# if @REPLACE_VSPRINTF@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define vsprintf rpl_vsprintf
+#  endif
+_GL_FUNCDECL_RPL (vsprintf, int,
+                  (char *str, const char *format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (vsprintf, int,
+                  (char *str, const char *format, va_list args));
+# else
+/* Need to cast, because on Solaris, the third parameter is
+                                                       __va_list args
+   and GCC's fixincludes did not change this to __gnuc_va_list.  */
+_GL_CXXALIAS_SYS_CAST (vsprintf, int,
+                       (char *str, const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vsprintf);
+#elif defined GNULIB_POSIXCHECK
+# undef vsprintf
+/* Assume vsprintf is always declared.  */
+_GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - "
+                 "use gnulib module vsprintf-posix for portable "
+                      "POSIX compliance");
+#endif
+
+#endif /* _@GUARD_PREFIX@_STDIO_H */
+#endif /* _@GUARD_PREFIX@_STDIO_H */
+#endif
diff --git a/tests/strerror-override.c b/tests/strerror-override.c
new file mode 100644 (file)
index 0000000..255d933
--- /dev/null
@@ -0,0 +1,302 @@
+/* strerror-override.c --- POSIX compatible system error routine
+
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2010.  */
+
+#include <config.h>
+
+#include "strerror-override.h"
+
+#include <errno.h>
+
+#if GNULIB_defined_EWINSOCK /* native Windows platforms */
+# if HAVE_WINSOCK2_H
+#  include <winsock2.h>
+# endif
+#endif
+
+/* If ERRNUM maps to an errno value defined by gnulib, return a string
+   describing the error.  Otherwise return NULL.  */
+const char *
+strerror_override (int errnum)
+{
+  /* These error messages are taken from glibc/sysdeps/gnu/errlist.c.  */
+  switch (errnum)
+    {
+#if REPLACE_STRERROR_0
+    case 0:
+      return "Success";
+#endif
+
+#if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
+    case EINPROGRESS:
+      return "Operation now in progress";
+    case EALREADY:
+      return "Operation already in progress";
+    case ENOTSOCK:
+      return "Socket operation on non-socket";
+    case EDESTADDRREQ:
+      return "Destination address required";
+    case EMSGSIZE:
+      return "Message too long";
+    case EPROTOTYPE:
+      return "Protocol wrong type for socket";
+    case ENOPROTOOPT:
+      return "Protocol not available";
+    case EPROTONOSUPPORT:
+      return "Protocol not supported";
+    case EOPNOTSUPP:
+      return "Operation not supported";
+    case EAFNOSUPPORT:
+      return "Address family not supported by protocol";
+    case EADDRINUSE:
+      return "Address already in use";
+    case EADDRNOTAVAIL:
+      return "Cannot assign requested address";
+    case ENETDOWN:
+      return "Network is down";
+    case ENETUNREACH:
+      return "Network is unreachable";
+    case ECONNRESET:
+      return "Connection reset by peer";
+    case ENOBUFS:
+      return "No buffer space available";
+    case EISCONN:
+      return "Transport endpoint is already connected";
+    case ENOTCONN:
+      return "Transport endpoint is not connected";
+    case ETIMEDOUT:
+      return "Connection timed out";
+    case ECONNREFUSED:
+      return "Connection refused";
+    case ELOOP:
+      return "Too many levels of symbolic links";
+    case EHOSTUNREACH:
+      return "No route to host";
+    case EWOULDBLOCK:
+      return "Operation would block";
+#endif
+#if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */
+    case ETXTBSY:
+      return "Text file busy";
+    case ENODATA:
+      return "No data available";
+    case ENOSR:
+      return "Out of streams resources";
+    case ENOSTR:
+      return "Device not a stream";
+    case ETIME:
+      return "Timer expired";
+    case EOTHER:
+      return "Other error";
+#endif
+#if GNULIB_defined_EWINSOCK /* native Windows platforms */
+    case ESOCKTNOSUPPORT:
+      return "Socket type not supported";
+    case EPFNOSUPPORT:
+      return "Protocol family not supported";
+    case ESHUTDOWN:
+      return "Cannot send after transport endpoint shutdown";
+    case ETOOMANYREFS:
+      return "Too many references: cannot splice";
+    case EHOSTDOWN:
+      return "Host is down";
+    case EPROCLIM:
+      return "Too many processes";
+    case EUSERS:
+      return "Too many users";
+    case EDQUOT:
+      return "Disk quota exceeded";
+    case ESTALE:
+      return "Stale NFS file handle";
+    case EREMOTE:
+      return "Object is remote";
+# if HAVE_WINSOCK2_H
+      /* WSA_INVALID_HANDLE maps to EBADF */
+      /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
+      /* WSA_INVALID_PARAMETER maps to EINVAL */
+    case WSA_OPERATION_ABORTED:
+      return "Overlapped operation aborted";
+    case WSA_IO_INCOMPLETE:
+      return "Overlapped I/O event object not in signaled state";
+    case WSA_IO_PENDING:
+      return "Overlapped operations will complete later";
+      /* WSAEINTR maps to EINTR */
+      /* WSAEBADF maps to EBADF */
+      /* WSAEACCES maps to EACCES */
+      /* WSAEFAULT maps to EFAULT */
+      /* WSAEINVAL maps to EINVAL */
+      /* WSAEMFILE maps to EMFILE */
+      /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
+      /* WSAEINPROGRESS maps to EINPROGRESS */
+      /* WSAEALREADY maps to EALREADY */
+      /* WSAENOTSOCK maps to ENOTSOCK */
+      /* WSAEDESTADDRREQ maps to EDESTADDRREQ */
+      /* WSAEMSGSIZE maps to EMSGSIZE */
+      /* WSAEPROTOTYPE maps to EPROTOTYPE */
+      /* WSAENOPROTOOPT maps to ENOPROTOOPT */
+      /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */
+      /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
+      /* WSAEOPNOTSUPP maps to EOPNOTSUPP */
+      /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
+      /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */
+      /* WSAEADDRINUSE maps to EADDRINUSE */
+      /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */
+      /* WSAENETDOWN maps to ENETDOWN */
+      /* WSAENETUNREACH maps to ENETUNREACH */
+      /* WSAENETRESET maps to ENETRESET */
+      /* WSAECONNABORTED maps to ECONNABORTED */
+      /* WSAECONNRESET maps to ECONNRESET */
+      /* WSAENOBUFS maps to ENOBUFS */
+      /* WSAEISCONN maps to EISCONN */
+      /* WSAENOTCONN maps to ENOTCONN */
+      /* WSAESHUTDOWN is ESHUTDOWN */
+      /* WSAETOOMANYREFS is ETOOMANYREFS */
+      /* WSAETIMEDOUT maps to ETIMEDOUT */
+      /* WSAECONNREFUSED maps to ECONNREFUSED */
+      /* WSAELOOP maps to ELOOP */
+      /* WSAENAMETOOLONG maps to ENAMETOOLONG */
+      /* WSAEHOSTDOWN is EHOSTDOWN */
+      /* WSAEHOSTUNREACH maps to EHOSTUNREACH */
+      /* WSAENOTEMPTY maps to ENOTEMPTY */
+      /* WSAEPROCLIM is EPROCLIM */
+      /* WSAEUSERS is EUSERS */
+      /* WSAEDQUOT is EDQUOT */
+      /* WSAESTALE is ESTALE */
+      /* WSAEREMOTE is EREMOTE */
+    case WSASYSNOTREADY:
+      return "Network subsystem is unavailable";
+    case WSAVERNOTSUPPORTED:
+      return "Winsock.dll version out of range";
+    case WSANOTINITIALISED:
+      return "Successful WSAStartup not yet performed";
+    case WSAEDISCON:
+      return "Graceful shutdown in progress";
+    case WSAENOMORE: case WSA_E_NO_MORE:
+      return "No more results";
+    case WSAECANCELLED: case WSA_E_CANCELLED:
+      return "Call was canceled";
+    case WSAEINVALIDPROCTABLE:
+      return "Procedure call table is invalid";
+    case WSAEINVALIDPROVIDER:
+      return "Service provider is invalid";
+    case WSAEPROVIDERFAILEDINIT:
+      return "Service provider failed to initialize";
+    case WSASYSCALLFAILURE:
+      return "System call failure";
+    case WSASERVICE_NOT_FOUND:
+      return "Service not found";
+    case WSATYPE_NOT_FOUND:
+      return "Class type not found";
+    case WSAEREFUSED:
+      return "Database query was refused";
+    case WSAHOST_NOT_FOUND:
+      return "Host not found";
+    case WSATRY_AGAIN:
+      return "Nonauthoritative host not found";
+    case WSANO_RECOVERY:
+      return "Nonrecoverable error";
+    case WSANO_DATA:
+      return "Valid name, no data record of requested type";
+      /* WSA_QOS_* omitted */
+# endif
+#endif
+
+#if GNULIB_defined_ENOMSG
+    case ENOMSG:
+      return "No message of desired type";
+#endif
+
+#if GNULIB_defined_EIDRM
+    case EIDRM:
+      return "Identifier removed";
+#endif
+
+#if GNULIB_defined_ENOLINK
+    case ENOLINK:
+      return "Link has been severed";
+#endif
+
+#if GNULIB_defined_EPROTO
+    case EPROTO:
+      return "Protocol error";
+#endif
+
+#if GNULIB_defined_EMULTIHOP
+    case EMULTIHOP:
+      return "Multihop attempted";
+#endif
+
+#if GNULIB_defined_EBADMSG
+    case EBADMSG:
+      return "Bad message";
+#endif
+
+#if GNULIB_defined_EOVERFLOW
+    case EOVERFLOW:
+      return "Value too large for defined data type";
+#endif
+
+#if GNULIB_defined_ENOTSUP
+    case ENOTSUP:
+      return "Not supported";
+#endif
+
+#if GNULIB_defined_ENETRESET
+    case ENETRESET:
+      return "Network dropped connection on reset";
+#endif
+
+#if GNULIB_defined_ECONNABORTED
+    case ECONNABORTED:
+      return "Software caused connection abort";
+#endif
+
+#if GNULIB_defined_ESTALE
+    case ESTALE:
+      return "Stale NFS file handle";
+#endif
+
+#if GNULIB_defined_EDQUOT
+    case EDQUOT:
+      return "Disk quota exceeded";
+#endif
+
+#if GNULIB_defined_ECANCELED
+    case ECANCELED:
+      return "Operation canceled";
+#endif
+
+#if GNULIB_defined_EOWNERDEAD
+    case EOWNERDEAD:
+      return "Owner died";
+#endif
+
+#if GNULIB_defined_ENOTRECOVERABLE
+    case ENOTRECOVERABLE:
+      return "State not recoverable";
+#endif
+
+#if GNULIB_defined_EILSEQ
+    case EILSEQ:
+      return "Invalid or incomplete multibyte or wide character";
+#endif
+
+    default:
+      return NULL;
+    }
+}
diff --git a/tests/strerror-override.h b/tests/strerror-override.h
new file mode 100644 (file)
index 0000000..e98c1c1
--- /dev/null
@@ -0,0 +1,56 @@
+/* strerror-override.h --- POSIX compatible system error routine
+
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _GL_STRERROR_OVERRIDE_H
+# define _GL_STRERROR_OVERRIDE_H
+
+# include <errno.h>
+# include <stddef.h>
+
+/* Reasonable buffer size that should never trigger ERANGE; if this
+   proves too small, we intentionally abort(), to remind us to fix
+   this value.  */
+# define STACKBUF_LEN 256
+
+/* If ERRNUM maps to an errno value defined by gnulib, return a string
+   describing the error.  Otherwise return NULL.  */
+# if REPLACE_STRERROR_0 \
+     || GNULIB_defined_ESOCK \
+     || GNULIB_defined_ESTREAMS \
+     || GNULIB_defined_EWINSOCK \
+     || GNULIB_defined_ENOMSG \
+     || GNULIB_defined_EIDRM \
+     || GNULIB_defined_ENOLINK \
+     || GNULIB_defined_EPROTO \
+     || GNULIB_defined_EMULTIHOP \
+     || GNULIB_defined_EBADMSG \
+     || GNULIB_defined_EOVERFLOW \
+     || GNULIB_defined_ENOTSUP \
+     || GNULIB_defined_ENETRESET \
+     || GNULIB_defined_ECONNABORTED \
+     || GNULIB_defined_ESTALE \
+     || GNULIB_defined_EDQUOT \
+     || GNULIB_defined_ECANCELED \
+     || GNULIB_defined_EOWNERDEAD \
+     || GNULIB_defined_ENOTRECOVERABLE \
+     || GNULIB_defined_EILSEQ
+extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST;
+# else
+#  define strerror_override(ignored) NULL
+# endif
+
+#endif /* _GL_STRERROR_OVERRIDE_H */
index b0df778..e54f0cc 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror.c --- POSIX compatible system error routine
 
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
 
 #include <config.h>
 
+/* Specification.  */
 #include <string.h>
 
-#if REPLACE_STRERROR
-
-# include <errno.h>
-# include <stdio.h>
-
-# if GNULIB_defined_ESOCK /* native Windows platforms */
-#  if HAVE_WINSOCK2_H
-#   include <winsock2.h>
-#  endif
-# endif
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 
-# include "intprops.h"
+#include "intprops.h"
+#include "strerror-override.h"
+#include "verify.h"
 
-# undef strerror
-# if ! HAVE_DECL_STRERROR
-#  define strerror(n) NULL
-# endif
+/* Use the system functions, not the gnulib overrides in this file.  */
+#undef sprintf
 
 char *
-rpl_strerror (int n)
+strerror (int n)
+#undef strerror
 {
-  char const *msg = NULL;
-  /* These error messages are taken from glibc/sysdeps/gnu/errlist.c.  */
-  switch (n)
-    {
-# if GNULIB_defined_ETXTBSY
-    case ETXTBSY:
-      msg = "Text file busy";
-      break;
-# endif
-
-# if GNULIB_defined_ESOCK /* native Windows platforms */
-    /* EWOULDBLOCK is the same as EAGAIN.  */
-    case EINPROGRESS:
-      msg = "Operation now in progress";
-      break;
-    case EALREADY:
-      msg = "Operation already in progress";
-      break;
-    case ENOTSOCK:
-      msg = "Socket operation on non-socket";
-      break;
-    case EDESTADDRREQ:
-      msg = "Destination address required";
-      break;
-    case EMSGSIZE:
-      msg = "Message too long";
-      break;
-    case EPROTOTYPE:
-      msg = "Protocol wrong type for socket";
-      break;
-    case ENOPROTOOPT:
-      msg = "Protocol not available";
-      break;
-    case EPROTONOSUPPORT:
-      msg = "Protocol not supported";
-      break;
-    case ESOCKTNOSUPPORT:
-      msg = "Socket type not supported";
-      break;
-    case EOPNOTSUPP:
-      msg = "Operation not supported";
-      break;
-    case EPFNOSUPPORT:
-      msg = "Protocol family not supported";
-      break;
-    case EAFNOSUPPORT:
-      msg = "Address family not supported by protocol";
-      break;
-    case EADDRINUSE:
-      msg = "Address already in use";
-      break;
-    case EADDRNOTAVAIL:
-      msg = "Cannot assign requested address";
-      break;
-    case ENETDOWN:
-      msg = "Network is down";
-      break;
-    case ENETUNREACH:
-      msg = "Network is unreachable";
-      break;
-    case ENETRESET:
-      msg = "Network dropped connection on reset";
-      break;
-    case ECONNABORTED:
-      msg = "Software caused connection abort";
-      break;
-    case ECONNRESET:
-      msg = "Connection reset by peer";
-      break;
-    case ENOBUFS:
-      msg = "No buffer space available";
-      break;
-    case EISCONN:
-      msg = "Transport endpoint is already connected";
-      break;
-    case ENOTCONN:
-      msg = "Transport endpoint is not connected";
-      break;
-    case ESHUTDOWN:
-      msg = "Cannot send after transport endpoint shutdown";
-      break;
-    case ETOOMANYREFS:
-      msg = "Too many references: cannot splice";
-      break;
-    case ETIMEDOUT:
-      msg = "Connection timed out";
-      break;
-    case ECONNREFUSED:
-      msg = "Connection refused";
-      break;
-    case ELOOP:
-      msg = "Too many levels of symbolic links";
-      break;
-    case EHOSTDOWN:
-      msg = "Host is down";
-      break;
-    case EHOSTUNREACH:
-      msg = "No route to host";
-      break;
-    case EPROCLIM:
-      msg = "Too many processes";
-      break;
-    case EUSERS:
-      msg = "Too many users";
-      break;
-    case EDQUOT:
-      msg = "Disk quota exceeded";
-      break;
-    case ESTALE:
-      msg = "Stale NFS file handle";
-      break;
-    case EREMOTE:
-      msg = "Object is remote";
-      break;
-#  if HAVE_WINSOCK2_H
-    /* WSA_INVALID_HANDLE maps to EBADF */
-    /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
-    /* WSA_INVALID_PARAMETER maps to EINVAL */
-    case WSA_OPERATION_ABORTED:
-      msg = "Overlapped operation aborted";
-      break;
-    case WSA_IO_INCOMPLETE:
-      msg = "Overlapped I/O event object not in signaled state";
-      break;
-    case WSA_IO_PENDING:
-      msg = "Overlapped operations will complete later";
-      break;
-    /* WSAEINTR maps to EINTR */
-    /* WSAEBADF maps to EBADF */
-    /* WSAEACCES maps to EACCES */
-    /* WSAEFAULT maps to EFAULT */
-    /* WSAEINVAL maps to EINVAL */
-    /* WSAEMFILE maps to EMFILE */
-    /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
-    /* WSAEINPROGRESS is EINPROGRESS */
-    /* WSAEALREADY is EALREADY */
-    /* WSAENOTSOCK is ENOTSOCK */
-    /* WSAEDESTADDRREQ is EDESTADDRREQ */
-    /* WSAEMSGSIZE is EMSGSIZE */
-    /* WSAEPROTOTYPE is EPROTOTYPE */
-    /* WSAENOPROTOOPT is ENOPROTOOPT */
-    /* WSAEPROTONOSUPPORT is EPROTONOSUPPORT */
-    /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
-    /* WSAEOPNOTSUPP is EOPNOTSUPP */
-    /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
-    /* WSAEAFNOSUPPORT is EAFNOSUPPORT */
-    /* WSAEADDRINUSE is EADDRINUSE */
-    /* WSAEADDRNOTAVAIL is EADDRNOTAVAIL */
-    /* WSAENETDOWN is ENETDOWN */
-    /* WSAENETUNREACH is ENETUNREACH */
-    /* WSAENETRESET is ENETRESET */
-    /* WSAECONNABORTED is ECONNABORTED */
-    /* WSAECONNRESET is ECONNRESET */
-    /* WSAENOBUFS is ENOBUFS */
-    /* WSAEISCONN is EISCONN */
-    /* WSAENOTCONN is ENOTCONN */
-    /* WSAESHUTDOWN is ESHUTDOWN */
-    /* WSAETOOMANYREFS is ETOOMANYREFS */
-    /* WSAETIMEDOUT is ETIMEDOUT */
-    /* WSAECONNREFUSED is ECONNREFUSED */
-    /* WSAELOOP is ELOOP */
-    /* WSAENAMETOOLONG maps to ENAMETOOLONG */
-    /* WSAEHOSTDOWN is EHOSTDOWN */
-    /* WSAEHOSTUNREACH is EHOSTUNREACH */
-    /* WSAENOTEMPTY maps to ENOTEMPTY */
-    /* WSAEPROCLIM is EPROCLIM */
-    /* WSAEUSERS is EUSERS */
-    /* WSAEDQUOT is EDQUOT */
-    /* WSAESTALE is ESTALE */
-    /* WSAEREMOTE is EREMOTE */
-    case WSASYSNOTREADY:
-      msg = "Network subsystem is unavailable";
-      break;
-    case WSAVERNOTSUPPORTED:
-      msg = "Winsock.dll version out of range";
-      break;
-    case WSANOTINITIALISED:
-      msg = "Successful WSAStartup not yet performed";
-      break;
-    case WSAEDISCON:
-      msg = "Graceful shutdown in progress";
-      break;
-    case WSAENOMORE: case WSA_E_NO_MORE:
-      msg = "No more results";
-      break;
-    case WSAECANCELLED: case WSA_E_CANCELLED:
-      msg = "Call was canceled";
-      break;
-    case WSAEINVALIDPROCTABLE:
-      msg = "Procedure call table is invalid";
-      break;
-    case WSAEINVALIDPROVIDER:
-      msg = "Service provider is invalid";
-      break;
-    case WSAEPROVIDERFAILEDINIT:
-      msg = "Service provider failed to initialize";
-      break;
-    case WSASYSCALLFAILURE:
-      msg = "System call failure";
-      break;
-    case WSASERVICE_NOT_FOUND:
-      msg = "Service not found";
-      break;
-    case WSATYPE_NOT_FOUND:
-      msg = "Class type not found";
-      break;
-    case WSAEREFUSED:
-      msg = "Database query was refused";
-      break;
-    case WSAHOST_NOT_FOUND:
-      msg = "Host not found";
-      break;
-    case WSATRY_AGAIN:
-      msg = "Nonauthoritative host not found";
-      break;
-    case WSANO_RECOVERY:
-      msg = "Nonrecoverable error";
-      break;
-    case WSANO_DATA:
-      msg = "Valid name, no data record of requested type";
-      break;
-    /* WSA_QOS_* omitted */
-#  endif
-# endif
-
-# if GNULIB_defined_ENOMSG
-    case ENOMSG:
-      msg = "No message of desired type";
-      break;
-# endif
-
-# if GNULIB_defined_EIDRM
-    case EIDRM:
-      msg = "Identifier removed";
-      break;
-# endif
-
-# if GNULIB_defined_ENOLINK
-    case ENOLINK:
-      msg = "Link has been severed";
-      break;
-# endif
-
-# if GNULIB_defined_EPROTO
-    case EPROTO:
-      msg = "Protocol error";
-      break;
-# endif
-
-# if GNULIB_defined_EMULTIHOP
-    case EMULTIHOP:
-      msg = "Multihop attempted";
-      break;
-# endif
-
-# if GNULIB_defined_EBADMSG
-    case EBADMSG:
-      msg = "Bad message";
-      break;
-# endif
-
-# if GNULIB_defined_EOVERFLOW
-    case EOVERFLOW:
-      msg = "Value too large for defined data type";
-      break;
-# endif
-
-# if GNULIB_defined_ENOTSUP
-    case ENOTSUP:
-      msg = "Not supported";
-      break;
-# endif
-
-# if GNULIB_defined_ESTALE
-    case ESTALE:
-      msg = "Stale NFS file handle";
-      break;
-# endif
-
-# if GNULIB_defined_ECANCELED
-    case ECANCELED:
-      msg = "Operation canceled";
-      break;
-# endif
-    }
+  static char buf[STACKBUF_LEN];
+  size_t len;
 
+  /* Cast away const, due to the historical signature of strerror;
+     callers should not be modifying the string.  */
+  const char *msg = strerror_override (n);
   if (msg)
     return (char *) msg;
 
-  {
-    char *result = strerror (n);
+  msg = strerror (n);
 
-    if (result == NULL || result[0] == '\0')
-      {
-        static char const fmt[] = "Unknown error (%d)";
-        static char msg_buf[sizeof fmt + INT_STRLEN_BOUND (n)];
-        sprintf (msg_buf, fmt, n);
-        return msg_buf;
-      }
+  /* Our strerror_r implementation might use the system's strerror
+     buffer, so all other clients of strerror have to see the error
+     copied into a buffer that we manage.  This is not thread-safe,
+     even if the system strerror is, but portable programs shouldn't
+     be using strerror if they care about thread-safety.  */
+  if (!msg || !*msg)
+    {
+      static char const fmt[] = "Unknown error %d";
+      verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n));
+      sprintf (buf, fmt, n);
+      errno = EINVAL;
+      return buf;
+    }
 
-    return result;
-  }
-}
+  /* Fix STACKBUF_LEN if this ever aborts.  */
+  len = strlen (msg);
+  if (sizeof buf <= len)
+    abort ();
 
-#endif
+  return memcpy (buf, msg, len + 1);
+}
index cfbecaf..3d8acc4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of optional automatic memory allocation.
-   Copyright (C) 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2014 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
@@ -44,7 +44,7 @@ main ()
     {
       /* Try various values.
          n = 0 gave a crash on Alpha with gcc-2.5.8.
-         Some versions of MacOS X have a stack size limit of 512 KB.  */
+         Some versions of Mac OS X have a stack size limit of 512 KB.  */
       func (34);
       func (134);
       func (399);
index 3f5d082..2205138 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of stable-sorting of an array using mergesort.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
diff --git a/tests/test-btowc.c b/tests/test-btowc.c
new file mode 100644 (file)
index 0000000..b9df2f0
--- /dev/null
@@ -0,0 +1,63 @@
+/* Test of conversion of unibyte character to wide character.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008.  */
+
+#include <config.h>
+
+#include <wchar.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (btowc, wint_t, (int));
+
+#include <locale.h>
+#include <stdio.h>
+
+#include "macros.h"
+
+int
+main (int argc, char *argv[])
+{
+  int c;
+
+  /* configure should already have checked that the locale is supported.  */
+  if (setlocale (LC_ALL, "") == NULL)
+    return 1;
+
+  ASSERT (btowc (EOF) == WEOF);
+
+  if (argc > 1)
+    switch (argv[1][0])
+      {
+      case '1':
+        /* Locale encoding is ISO-8859-1 or ISO-8859-15.  */
+        for (c = 0; c < 0x80; c++)
+          ASSERT (btowc (c) == c);
+        for (c = 0xA0; c < 0x100; c++)
+          ASSERT (btowc (c) != WEOF);
+        return 0;
+
+      case '2':
+        /* Locale encoding is UTF-8.  */
+        for (c = 0; c < 0x80; c++)
+          ASSERT (btowc (c) == c);
+        for (c = 0x80; c < 0x100; c++)
+          ASSERT (btowc (c) == WEOF);
+        return 0;
+      }
+
+  return 1;
+}
diff --git a/tests/test-btowc1.sh b/tests/test-btowc1.sh
new file mode 100755 (executable)
index 0000000..aaef48d
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test in an ISO-8859-1 or ISO-8859-15 locale.
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR = none; then
+  if test -f /usr/bin/localedef; then
+    echo "Skipping test: no traditional french locale is installed"
+  else
+    echo "Skipping test: no traditional french locale is supported"
+  fi
+  exit 77
+fi
+
+LC_ALL=$LOCALE_FR \
+./test-btowc${EXEEXT} 1
diff --git a/tests/test-btowc2.sh b/tests/test-btowc2.sh
new file mode 100755 (executable)
index 0000000..2e06038
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test whether a specific UTF-8 locale is installed.
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 = none; then
+  if test -f /usr/bin/localedef; then
+    echo "Skipping test: no french Unicode locale is installed"
+  else
+    echo "Skipping test: no french Unicode locale is supported"
+  fi
+  exit 77
+fi
+
+LC_ALL=$LOCALE_FR_UTF8 \
+./test-btowc${EXEEXT} 2
index ebe594d..80bf703 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of character handling in C locale.
-   Copyright (C) 2005, 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007-2014 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
index 84ea9b5..03088ff 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of case-insensitive string comparison function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index f02cb2d..0fba0e5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of case-insensitive string comparison function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 534c4e6..46a2eab 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of environ variable.
-   Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
index 129b236..495242b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <errno.h> substitute.
-   Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
@@ -98,6 +98,8 @@ int e115 = EINPROGRESS;
 int e116 = ESTALE;
 int e122 = EDQUOT;
 int e125 = ECANCELED;
+int e130 = EOWNERDEAD;
+int e131 = ENOTRECOVERABLE;
 
 /* Don't verify that these errno values are all different, except for possibly
    EWOULDBLOCK == EAGAIN.  Even Linux/x86 does not pass this check: it has
diff --git a/tests/test-fdopen.c b/tests/test-fdopen.c
new file mode 100644 (file)
index 0000000..743511e
--- /dev/null
@@ -0,0 +1,49 @@
+/* Test opening a stream with a file descriptor.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (fdopen, FILE *, (int, const char *));
+
+#include <errno.h>
+#include <unistd.h>
+
+#include "macros.h"
+
+int
+main (void)
+{
+  /* Test behavior on failure.  POSIX makes it hard to check for
+     failure, since the behavior is not well-defined on invalid file
+     descriptors, so try fdopen 1000 times and if that's not enough to
+     fail due to EMFILE, so be it.  */
+
+  int i;
+  for (i = 0; i < 1000; i++)
+    {
+      errno = 0;
+      if (! fdopen (STDOUT_FILENO, "w"))
+        {
+          ASSERT (errno != 0);
+          break;
+        }
+    }
+
+  return 0;
+}
diff --git a/tests/test-fgetc.c b/tests/test-fgetc.c
new file mode 100644 (file)
index 0000000..2534d4b
--- /dev/null
@@ -0,0 +1,97 @@
+/* Test of fgetc() function.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (fgetc, int, (FILE *));
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "msvc-inval.h"
+
+#include "macros.h"
+
+int
+main (int argc, char **argv)
+{
+  const char *filename = "test-fgetc.txt";
+
+  /* We don't have an fgetc() function that installs an invalid parameter
+     handler so far.  So install that handler here, explicitly.  */
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+    && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+  gl_msvc_inval_ensure_handler ();
+#endif
+
+  /* Prepare a file.  */
+  {
+    const char text[] = "hello world";
+    int fd = open (filename, O_RDWR | O_CREAT | O_TRUNC, 0600);
+    ASSERT (fd >= 0);
+    ASSERT (write (fd, text, sizeof (text)) == sizeof (text));
+    ASSERT (close (fd) == 0);
+  }
+
+  /* Test that fgetc() sets errno if someone else closes the stream
+     fd behind the back of stdio.  */
+  {
+    FILE *fp = fopen (filename, "r");
+    ASSERT (fp != NULL);
+    ASSERT (close (fileno (fp)) == 0);
+    errno = 0;
+    ASSERT (fgetc (fp) == EOF);
+    ASSERT (errno == EBADF);
+    ASSERT (ferror (fp));
+    fclose (fp);
+  }
+
+  /* Test that fgetc() sets errno if the stream was constructed with
+     an invalid file descriptor.  */
+  {
+    FILE *fp = fdopen (-1, "r");
+    if (fp != NULL)
+      {
+        errno = 0;
+        ASSERT (fgetc (fp) == EOF);
+        ASSERT (errno == EBADF);
+        ASSERT (ferror (fp));
+        fclose (fp);
+      }
+  }
+  {
+    FILE *fp;
+    close (99);
+    fp = fdopen (99, "r");
+    if (fp != NULL)
+      {
+        errno = 0;
+        ASSERT (fgetc (fp) == EOF);
+        ASSERT (errno == EBADF);
+        ASSERT (ferror (fp));
+        fclose (fp);
+      }
+  }
+
+  /* Clean up.  */
+  unlink (filename);
+
+  return 0;
+}
diff --git a/tests/test-float.c b/tests/test-float.c
new file mode 100644 (file)
index 0000000..28a67bb
--- /dev/null
@@ -0,0 +1,384 @@
+/* Test of <float.h> substitute.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011.  */
+
+#include <config.h>
+
+#include <float.h>
+
+#include "fpucw.h"
+#include "macros.h"
+
+/* Check that FLT_RADIX is a constant expression.  */
+int a[] = { FLT_RADIX };
+
+#if FLT_RADIX == 2
+
+/* Return 2^n.  */
+static float
+pow2f (int n)
+{
+  int k = n;
+  volatile float x = 1;
+  volatile float y = 2;
+  /* Invariant: 2^n == x * y^k.  */
+  if (k < 0)
+    {
+      y = 0.5f;
+      k = - k;
+    }
+  while (k > 0)
+    {
+      if (k != 2 * (k / 2))
+        {
+          x = x * y;
+          k = k - 1;
+        }
+      if (k == 0)
+        break;
+      y = y * y;
+      k = k / 2;
+    }
+  /* Now k == 0, hence x == 2^n.  */
+  return x;
+}
+
+/* Return 2^n.  */
+static double
+pow2d (int n)
+{
+  int k = n;
+  volatile double x = 1;
+  volatile double y = 2;
+  /* Invariant: 2^n == x * y^k.  */
+  if (k < 0)
+    {
+      y = 0.5;
+      k = - k;
+    }
+  while (k > 0)
+    {
+      if (k != 2 * (k / 2))
+        {
+          x = x * y;
+          k = k - 1;
+        }
+      if (k == 0)
+        break;
+      y = y * y;
+      k = k / 2;
+    }
+  /* Now k == 0, hence x == 2^n.  */
+  return x;
+}
+
+/* Return 2^n.  */
+static long double
+pow2l (int n)
+{
+  int k = n;
+  volatile long double x = 1;
+  volatile long double y = 2;
+  /* Invariant: 2^n == x * y^k.  */
+  if (k < 0)
+    {
+      y = 0.5L;
+      k = - k;
+    }
+  while (k > 0)
+    {
+      if (k != 2 * (k / 2))
+        {
+          x = x * y;
+          k = k - 1;
+        }
+      if (k == 0)
+        break;
+      y = y * y;
+      k = k / 2;
+    }
+  /* Now k == 0, hence x == 2^n.  */
+  return x;
+}
+
+/* ----------------------- Check macros for 'float' ----------------------- */
+
+/* Check that the FLT_* macros expand to constant expressions.  */
+int fb[] =
+  {
+    FLT_MANT_DIG, FLT_MIN_EXP, FLT_MAX_EXP,
+    FLT_DIG, FLT_MIN_10_EXP, FLT_MAX_10_EXP
+  };
+float fc[] = { FLT_EPSILON, FLT_MIN, FLT_MAX };
+
+static void
+test_float (void)
+{
+  /* Check that the value of FLT_MIN_EXP is well parenthesized.  */
+  ASSERT ((FLT_MIN_EXP % 101111) == (FLT_MIN_EXP) % 101111);
+
+  /* Check that the value of DBL_MIN_10_EXP is well parenthesized.  */
+  ASSERT ((FLT_MIN_10_EXP % 101111) == (FLT_MIN_10_EXP) % 101111);
+
+  /* Check that 'float' is as specified in IEEE 754.  */
+  ASSERT (FLT_MANT_DIG == 24);
+  ASSERT (FLT_MIN_EXP == -125);
+  ASSERT (FLT_MAX_EXP == 128);
+
+  /* Check the value of FLT_MIN_10_EXP.  */
+  ASSERT (FLT_MIN_10_EXP == - (int) (- (FLT_MIN_EXP - 1) * 0.30103));
+
+  /* Check the value of FLT_DIG.  */
+  ASSERT (FLT_DIG == (int) ((FLT_MANT_DIG - 1) * 0.30103));
+
+  /* Check the value of FLT_MIN_10_EXP.  */
+  ASSERT (FLT_MIN_10_EXP == - (int) (- (FLT_MIN_EXP - 1) * 0.30103));
+
+  /* Check the value of FLT_MAX_10_EXP.  */
+  ASSERT (FLT_MAX_10_EXP == (int) (FLT_MAX_EXP * 0.30103));
+
+  /* Check the value of FLT_MAX.  */
+  {
+    volatile float m = FLT_MAX;
+    int n;
+
+    ASSERT (m + m > m);
+    for (n = 0; n <= 2 * FLT_MANT_DIG; n++)
+      {
+        volatile float pow2_n = pow2f (n); /* 2^n */
+        volatile float x = m + (m / pow2_n);
+        if (x > m)
+          ASSERT (x + x == x);
+        else
+          ASSERT (!(x + x == x));
+      }
+  }
+
+  /* Check the value of FLT_MIN.  */
+  {
+    volatile float m = FLT_MIN;
+    volatile float x = pow2f (FLT_MIN_EXP - 1);
+    ASSERT (m == x);
+  }
+
+  /* Check the value of FLT_EPSILON.  */
+  {
+    volatile float e = FLT_EPSILON;
+    volatile float me;
+    int n;
+
+    me = 1.0f + e;
+    ASSERT (me > 1.0f);
+    ASSERT (me - 1.0f == e);
+    for (n = 0; n <= 2 * FLT_MANT_DIG; n++)
+      {
+        volatile float half_n = pow2f (- n); /* 2^-n */
+        volatile float x = me - half_n;
+        if (x < me)
+          ASSERT (x <= 1.0f);
+      }
+  }
+}
+
+/* ----------------------- Check macros for 'double' ----------------------- */
+
+/* Check that the DBL_* macros expand to constant expressions.  */
+int db[] =
+  {
+    DBL_MANT_DIG, DBL_MIN_EXP, DBL_MAX_EXP,
+    DBL_DIG, DBL_MIN_10_EXP, DBL_MAX_10_EXP
+  };
+double dc[] = { DBL_EPSILON, DBL_MIN, DBL_MAX };
+
+static void
+test_double (void)
+{
+  /* Check that the value of DBL_MIN_EXP is well parenthesized.  */
+  ASSERT ((DBL_MIN_EXP % 101111) == (DBL_MIN_EXP) % 101111);
+
+  /* Check that the value of DBL_MIN_10_EXP is well parenthesized.  */
+  ASSERT ((DBL_MIN_10_EXP % 101111) == (DBL_MIN_10_EXP) % 101111);
+
+  /* Check that 'double' is as specified in IEEE 754.  */
+  ASSERT (DBL_MANT_DIG == 53);
+  ASSERT (DBL_MIN_EXP == -1021);
+  ASSERT (DBL_MAX_EXP == 1024);
+
+  /* Check the value of DBL_MIN_10_EXP.  */
+  ASSERT (DBL_MIN_10_EXP == - (int) (- (DBL_MIN_EXP - 1) * 0.30103));
+
+  /* Check the value of DBL_DIG.  */
+  ASSERT (DBL_DIG == (int) ((DBL_MANT_DIG - 1) * 0.30103));
+
+  /* Check the value of DBL_MIN_10_EXP.  */
+  ASSERT (DBL_MIN_10_EXP == - (int) (- (DBL_MIN_EXP - 1) * 0.30103));
+
+  /* Check the value of DBL_MAX_10_EXP.  */
+  ASSERT (DBL_MAX_10_EXP == (int) (DBL_MAX_EXP * 0.30103));
+
+  /* Check the value of DBL_MAX.  */
+  {
+    volatile double m = DBL_MAX;
+    int n;
+
+    ASSERT (m + m > m);
+    for (n = 0; n <= 2 * DBL_MANT_DIG; n++)
+      {
+        volatile double pow2_n = pow2d (n); /* 2^n */
+        volatile double x = m + (m / pow2_n);
+        if (x > m)
+          ASSERT (x + x == x);
+        else
+          ASSERT (!(x + x == x));
+      }
+  }
+
+  /* Check the value of DBL_MIN.  */
+  {
+    volatile double m = DBL_MIN;
+    volatile double x = pow2d (DBL_MIN_EXP - 1);
+    ASSERT (m == x);
+  }
+
+  /* Check the value of DBL_EPSILON.  */
+  {
+    volatile double e = DBL_EPSILON;
+    volatile double me;
+    int n;
+
+    me = 1.0 + e;
+    ASSERT (me > 1.0);
+    ASSERT (me - 1.0 == e);
+    for (n = 0; n <= 2 * DBL_MANT_DIG; n++)
+      {
+        volatile double half_n = pow2d (- n); /* 2^-n */
+        volatile double x = me - half_n;
+        if (x < me)
+          ASSERT (x <= 1.0);
+      }
+  }
+}
+
+/* -------------------- Check macros for 'long double' -------------------- */
+
+/* Check that the LDBL_* macros expand to constant expressions.  */
+int lb[] =
+  {
+    LDBL_MANT_DIG, LDBL_MIN_EXP, LDBL_MAX_EXP,
+    LDBL_DIG, LDBL_MIN_10_EXP, LDBL_MAX_10_EXP
+  };
+long double lc1 = LDBL_EPSILON;
+long double lc2 = LDBL_MIN;
+#if 0 /* LDBL_MAX is not a constant expression on some platforms.  */
+long double lc3 = LDBL_MAX;
+#endif
+
+static void
+test_long_double (void)
+{
+  /* Check that the value of LDBL_MIN_EXP is well parenthesized.  */
+  ASSERT ((LDBL_MIN_EXP % 101111) == (LDBL_MIN_EXP) % 101111);
+
+  /* Check that the value of LDBL_MIN_10_EXP is well parenthesized.  */
+  ASSERT ((LDBL_MIN_10_EXP % 101111) == (LDBL_MIN_10_EXP) % 101111);
+
+  /* Check that 'long double' is at least as wide as 'double'.  */
+  ASSERT (LDBL_MANT_DIG >= DBL_MANT_DIG);
+  ASSERT (LDBL_MIN_EXP - LDBL_MANT_DIG <= DBL_MIN_EXP - DBL_MANT_DIG);
+  ASSERT (LDBL_MAX_EXP >= DBL_MAX_EXP);
+
+  /* Check the value of LDBL_DIG.  */
+  ASSERT (LDBL_DIG == (int)((LDBL_MANT_DIG - 1) * 0.30103));
+
+  /* Check the value of LDBL_MIN_10_EXP.  */
+  ASSERT (LDBL_MIN_10_EXP == - (int) (- (LDBL_MIN_EXP - 1) * 0.30103));
+
+  /* Check the value of LDBL_MAX_10_EXP.  */
+  ASSERT (LDBL_MAX_10_EXP == (int) (LDBL_MAX_EXP * 0.30103));
+
+  /* Check the value of LDBL_MAX.  */
+  {
+    volatile long double m = LDBL_MAX;
+    int n;
+
+    ASSERT (m + m > m);
+    for (n = 0; n <= 2 * LDBL_MANT_DIG; n++)
+      {
+        volatile long double pow2_n = pow2l (n); /* 2^n */
+        volatile long double x = m + (m / pow2_n);
+        if (x > m)
+          ASSERT (x + x == x);
+        else
+          ASSERT (!(x + x == x));
+      }
+  }
+
+  /* Check the value of LDBL_MIN.  */
+  {
+    volatile long double m = LDBL_MIN;
+    volatile long double x = pow2l (LDBL_MIN_EXP - 1);
+    ASSERT (m == x);
+  }
+
+  /* Check the value of LDBL_EPSILON.  */
+  {
+    volatile long double e = LDBL_EPSILON;
+    volatile long double me;
+    int n;
+
+    me = 1.0L + e;
+    ASSERT (me > 1.0L);
+    ASSERT (me - 1.0L == e);
+    for (n = 0; n <= 2 * LDBL_MANT_DIG; n++)
+      {
+        volatile long double half_n = pow2l (- n); /* 2^-n */
+        volatile long double x = me - half_n;
+        if (x < me)
+          ASSERT (x <= 1.0L);
+      }
+  }
+}
+
+int
+main ()
+{
+  test_float ();
+  test_double ();
+
+  {
+    DECL_LONG_DOUBLE_ROUNDING
+
+    BEGIN_LONG_DOUBLE_ROUNDING ();
+
+    test_long_double ();
+
+    END_LONG_DOUBLE_ROUNDING ();
+  }
+
+  return 0;
+}
+
+#else
+
+int
+main ()
+{
+  fprintf (stderr, "Skipping test: FLT_RADIX is not 2.\n");
+  return 77;
+}
+
+#endif
diff --git a/tests/test-fputc.c b/tests/test-fputc.c
new file mode 100644 (file)
index 0000000..befb582
--- /dev/null
@@ -0,0 +1,91 @@
+/* Test of fputc() function.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (fputc, int, (int, FILE *));
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "msvc-inval.h"
+
+#include "macros.h"
+
+int
+main (int argc, char **argv)
+{
+  const char *filename = "test-fputc.txt";
+
+  /* We don't have an fputc() function that installs an invalid parameter
+     handler so far.  So install that handler here, explicitly.  */
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+    && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+  gl_msvc_inval_ensure_handler ();
+#endif
+
+  /* Test that fputc() on an unbuffered stream sets errno if someone else
+     closes the stream fd behind the back of stdio.  */
+  {
+    FILE *fp = fopen (filename, "w");
+    ASSERT (fp != NULL);
+    setvbuf (fp, NULL, _IONBF, 0);
+    ASSERT (close (fileno (fp)) == 0);
+    errno = 0;
+    ASSERT (fputc ('x', fp) == EOF);
+    ASSERT (errno == EBADF);
+    ASSERT (ferror (fp));
+    fclose (fp);
+  }
+
+  /* Test that fputc() on an unbuffered stream sets errno if the stream
+     was constructed with an invalid file descriptor.  */
+  {
+    FILE *fp = fdopen (-1, "w");
+    if (fp != NULL)
+      {
+        setvbuf (fp, NULL, _IONBF, 0);
+        errno = 0;
+        ASSERT (fputc ('x', fp) == EOF);
+        ASSERT (errno == EBADF);
+        ASSERT (ferror (fp));
+        fclose (fp);
+      }
+  }
+  {
+    FILE *fp;
+    close (99);
+    fp = fdopen (99, "w");
+    if (fp != NULL)
+      {
+        setvbuf (fp, NULL, _IONBF, 0);
+        errno = 0;
+        ASSERT (fputc ('x', fp) == EOF);
+        ASSERT (errno == EBADF);
+        ASSERT (ferror (fp));
+        fclose (fp);
+      }
+  }
+
+  /* Clean up.  */
+  unlink (filename);
+
+  return 0;
+}
diff --git a/tests/test-fread.c b/tests/test-fread.c
new file mode 100644 (file)
index 0000000..72b93a9
--- /dev/null
@@ -0,0 +1,100 @@
+/* Test of fread() function.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (fread, size_t, (void *, size_t, size_t, FILE *));
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "msvc-inval.h"
+
+#include "macros.h"
+
+int
+main (int argc, char **argv)
+{
+  const char *filename = "test-fread.txt";
+
+  /* We don't have an fread() function that installs an invalid parameter
+     handler so far.  So install that handler here, explicitly.  */
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+    && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+  gl_msvc_inval_ensure_handler ();
+#endif
+
+  /* Prepare a file.  */
+  {
+    const char text[] = "hello world";
+    int fd = open (filename, O_RDWR | O_CREAT | O_TRUNC, 0600);
+    ASSERT (fd >= 0);
+    ASSERT (write (fd, text, sizeof (text)) == sizeof (text));
+    ASSERT (close (fd) == 0);
+  }
+
+  /* Test that fread() sets errno if someone else closes the stream
+     fd behind the back of stdio.  */
+  {
+    FILE *fp = fopen (filename, "r");
+    char buf[5];
+    ASSERT (fp != NULL);
+    ASSERT (close (fileno (fp)) == 0);
+    errno = 0;
+    ASSERT (fread (buf, 1, sizeof (buf), fp) == 0);
+    ASSERT (errno == EBADF);
+    ASSERT (ferror (fp));
+    fclose (fp);
+  }
+
+  /* Test that fread() sets errno if the stream was constructed with
+     an invalid file descriptor.  */
+  {
+    FILE *fp = fdopen (-1, "r");
+    if (fp != NULL)
+      {
+        char buf[1];
+        errno = 0;
+        ASSERT (fread (buf, 1, 1, fp) == 0);
+        ASSERT (errno == EBADF);
+        ASSERT (ferror (fp));
+        fclose (fp);
+      }
+  }
+  {
+    FILE *fp;
+    close (99);
+    fp = fdopen (99, "r");
+    if (fp != NULL)
+      {
+        char buf[1];
+        errno = 0;
+        ASSERT (fread (buf, 1, 1, fp) == 0);
+        ASSERT (errno == EBADF);
+        ASSERT (ferror (fp));
+        fclose (fp);
+      }
+  }
+
+  /* Clean up.  */
+  unlink (filename);
+
+  return 0;
+}
diff --git a/tests/test-frexp.c b/tests/test-frexp.c
new file mode 100644 (file)
index 0000000..f7a10f5
--- /dev/null
@@ -0,0 +1,67 @@
+/* Test of splitting a double into fraction and mantissa.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#include <config.h>
+
+#include <math.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (frexp, double, (double, int *));
+
+#include <float.h>
+
+#include "isnand-nolibm.h"
+#include "minus-zero.h"
+#include "infinity.h"
+#include "nan.h"
+#include "macros.h"
+
+/* Avoid some warnings from "gcc -Wshadow".
+   This file doesn't use the exp() function.  */
+#undef exp
+#define exp exponent
+
+#undef INFINITY
+#undef NAN
+
+#define DOUBLE double
+/* The use of 'volatile' guarantees that excess precision bits are dropped
+   when dealing with denormalized numbers.  It is necessary on x86 systems
+   where double-floats are not IEEE compliant by default, to avoid that the
+   results become platform and compiler option dependent.  'volatile' is a
+   portable alternative to gcc's -ffloat-store option.  */
+#define VOLATILE volatile
+#define ISNAN isnand
+#define INFINITY Infinityd ()
+#define NAN NaNd ()
+#define L_(literal) literal
+#define MINUS_ZERO minus_zerod
+#define MAX_EXP DBL_MAX_EXP
+#define MIN_EXP DBL_MIN_EXP
+#define MIN_NORMAL_EXP DBL_MIN_EXP
+#define FREXP frexp
+#define RANDOM randomd
+#include "test-frexp.h"
+
+int
+main ()
+{
+  test_function ();
+
+  return 0;
+}
diff --git a/tests/test-frexp.h b/tests/test-frexp.h
new file mode 100644 (file)
index 0000000..1cdc6de
--- /dev/null
@@ -0,0 +1,179 @@
+/* Test of splitting a double into fraction and mantissa.
+   Copyright (C) 2012-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+static DOUBLE
+my_ldexp (DOUBLE x, int d)
+{
+  for (; d > 0; d--)
+    x *= L_(2.0);
+  for (; d < 0; d++)
+    x *= L_(0.5);
+  return x;
+}
+
+static void
+test_function (void)
+{
+  int i;
+  VOLATILE DOUBLE x;
+
+  { /* NaN.  */
+    int exp = -9999;
+    DOUBLE mantissa;
+    x = NAN;
+    mantissa = FREXP (x, &exp);
+    ASSERT (ISNAN (mantissa));
+  }
+
+  { /* Positive infinity.  */
+    int exp = -9999;
+    DOUBLE mantissa;
+    x = INFINITY;
+    mantissa = FREXP (x, &exp);
+    ASSERT (mantissa == x);
+  }
+
+  { /* Negative infinity.  */
+    int exp = -9999;
+    DOUBLE mantissa;
+    x = - INFINITY;
+    mantissa = FREXP (x, &exp);
+    ASSERT (mantissa == x);
+  }
+
+  { /* Positive zero.  */
+    int exp = -9999;
+    DOUBLE mantissa;
+    x = L_(0.0);
+    mantissa = FREXP (x, &exp);
+    ASSERT (exp == 0);
+    ASSERT (mantissa == x);
+    ASSERT (!signbit (mantissa));
+  }
+
+  { /* Negative zero.  */
+    int exp = -9999;
+    DOUBLE mantissa;
+    x = MINUS_ZERO;
+    mantissa = FREXP (x, &exp);
+    ASSERT (exp == 0);
+    ASSERT (mantissa == x);
+    ASSERT (signbit (mantissa));
+  }
+
+  for (i = 1, x = L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.5));
+    }
+  for (i = 1, x = L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.5));
+    }
+  for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.5));
+    }
+
+  for (i = 1, x = - L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == - L_(0.5));
+    }
+  for (i = 1, x = - L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == - L_(0.5));
+    }
+  for (; i >= MIN_EXP - 100 && x < L_(0.0); i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == - L_(0.5));
+    }
+
+  for (i = 1, x = L_(1.01); i <= MAX_EXP; i++, x *= L_(2.0))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.505));
+    }
+  for (i = 1, x = L_(1.01); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.505));
+    }
+  for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa >= L_(0.5));
+      ASSERT (mantissa < L_(1.0));
+      ASSERT (mantissa == my_ldexp (x, - exp));
+    }
+
+  for (i = 1, x = L_(1.73205); i <= MAX_EXP; i++, x *= L_(2.0))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.866025));
+    }
+  for (i = 1, x = L_(1.73205); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i);
+      ASSERT (mantissa == L_(0.866025));
+    }
+  for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+    {
+      int exp = -9999;
+      DOUBLE mantissa = FREXP (x, &exp);
+      ASSERT (exp == i || exp == i + 1);
+      ASSERT (mantissa >= L_(0.5));
+      ASSERT (mantissa < L_(1.0));
+      ASSERT (mantissa == my_ldexp (x, - exp));
+    }
+
+  /* Randomized tests.  */
+  for (i = 0; i < SIZEOF (RANDOM); i++)
+    {
+      x = L_(20.0) * RANDOM[i] - L_(10.0); /* -10.0 <= x <= 10.0 */
+      {
+        int exp = -9999;
+        DOUBLE mantissa = FREXP (x, &exp);
+        ASSERT (x == my_ldexp (mantissa, exp));
+      }
+    }
+}
index 8d9d41d..b897e66 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of splitting a 'long double' into fraction and mantissa.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
@@ -27,6 +27,8 @@ SIGNATURE_CHECK (frexpl, long double, (long double, int *));
 
 #include "fpucw.h"
 #include "isnanl-nolibm.h"
+#include "minus-zero.h"
+#include "infinity.h"
 #include "nan.h"
 #include "macros.h"
 
@@ -35,6 +37,18 @@ SIGNATURE_CHECK (frexpl, long double, (long double, int *));
 #undef exp
 #define exp exponent
 
+#undef INFINITY
+#undef NAN
+
+#define DOUBLE long double
+#define VOLATILE
+#define ISNAN isnanl
+#define INFINITY Infinityl ()
+#define NAN NaNl ()
+#define L_(literal) literal##L
+#define MINUS_ZERO minus_zerol
+#define MAX_EXP LDBL_MAX_EXP
+#define MIN_EXP LDBL_MIN_EXP
 /* On MIPS IRIX machines, LDBL_MIN_EXP is -1021, but the smallest reliable
    exponent for 'long double' is -964.  Similarly, on PowerPC machines,
    LDBL_MIN_EXP is -1021, but the smallest reliable exponent for 'long double'
@@ -47,177 +61,18 @@ SIGNATURE_CHECK (frexpl, long double, (long double, int *));
 #else
 # define MIN_NORMAL_EXP LDBL_MIN_EXP
 #endif
-
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zero instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zero (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zero compute_minus_zero ()
-#else
-long double minus_zero = -0.0L;
-#endif
-
-static long double
-my_ldexp (long double x, int d)
-{
-  for (; d > 0; d--)
-    x *= 2.0L;
-  for (; d < 0; d++)
-    x *= 0.5L;
-  return x;
-}
+#define FREXP frexpl
+#define RANDOM randoml
+#include "test-frexp.h"
 
 int
 main ()
 {
-  int i;
-  long double x;
   DECL_LONG_DOUBLE_ROUNDING
 
   BEGIN_LONG_DOUBLE_ROUNDING ();
 
-  { /* NaN.  */
-    int exp = -9999;
-    long double mantissa;
-    x = NaNl ();
-    mantissa = frexpl (x, &exp);
-    ASSERT (isnanl (mantissa));
-  }
-
-  { /* Positive infinity.  */
-    int exp = -9999;
-    long double mantissa;
-    x = 1.0L / 0.0L;
-    mantissa = frexpl (x, &exp);
-    ASSERT (mantissa == x);
-  }
-
-  { /* Negative infinity.  */
-    int exp = -9999;
-    long double mantissa;
-    x = -1.0L / 0.0L;
-    mantissa = frexpl (x, &exp);
-    ASSERT (mantissa == x);
-  }
-
-  { /* Positive zero.  */
-    int exp = -9999;
-    long double mantissa;
-    x = 0.0L;
-    mantissa = frexpl (x, &exp);
-    ASSERT (exp == 0);
-    ASSERT (mantissa == x);
-    ASSERT (!signbit (mantissa));
-  }
-
-  { /* Negative zero.  */
-    int exp = -9999;
-    long double mantissa;
-    x = minus_zero;
-    mantissa = frexpl (x, &exp);
-    ASSERT (exp == 0);
-    ASSERT (mantissa == x);
-    ASSERT (signbit (mantissa));
-  }
-
-  for (i = 1, x = 1.0L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.5L);
-    }
-  for (i = 1, x = 1.0L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.5L);
-    }
-  for (; i >= LDBL_MIN_EXP - 100 && x > 0.0L; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.5L);
-    }
-
-  for (i = 1, x = -1.0L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == -0.5L);
-    }
-  for (i = 1, x = -1.0L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == -0.5L);
-    }
-  for (; i >= LDBL_MIN_EXP - 100 && x < 0.0L; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == -0.5L);
-    }
-
-  for (i = 1, x = 1.01L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.505L);
-    }
-  for (i = 1, x = 1.01L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.505L);
-    }
-  for (; i >= LDBL_MIN_EXP - 100 && x > 0.0L; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa >= 0.5L);
-      ASSERT (mantissa < 1.0L);
-      ASSERT (mantissa == my_ldexp (x, - exp));
-    }
-
-  for (i = 1, x = 1.73205L; i <= LDBL_MAX_EXP; i++, x *= 2.0L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.866025L);
-    }
-  for (i = 1, x = 1.73205L; i >= MIN_NORMAL_EXP; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i);
-      ASSERT (mantissa == 0.866025L);
-    }
-  for (; i >= LDBL_MIN_EXP - 100 && x > 0.0L; i--, x *= 0.5L)
-    {
-      int exp = -9999;
-      long double mantissa = frexpl (x, &exp);
-      ASSERT (exp == i || exp == i + 1);
-      ASSERT (mantissa >= 0.5L);
-      ASSERT (mantissa < 1.0L);
-      ASSERT (mantissa == my_ldexp (x, - exp));
-    }
+  test_function ();
 
   return 0;
 }
index c114f1a..7ea9fcb 100644 (file)
@@ -1,5 +1,5 @@
 /* Test setting the error indicator of a stream.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
diff --git a/tests/test-fwrite.c b/tests/test-fwrite.c
new file mode 100644 (file)
index 0000000..e51b2ab
--- /dev/null
@@ -0,0 +1,94 @@
+/* Test of fwrite() function.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (fwrite, size_t, (const void *, size_t, size_t, FILE *));
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "msvc-inval.h"
+
+#include "macros.h"
+
+int
+main (int argc, char **argv)
+{
+  const char *filename = "test-fwrite.txt";
+
+  /* We don't have an fwrite() function that installs an invalid parameter
+     handler so far.  So install that handler here, explicitly.  */
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+    && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+  gl_msvc_inval_ensure_handler ();
+#endif
+
+  /* Test that fwrite() on an unbuffered stream sets errno if someone else
+     closes the stream fd behind the back of stdio.  */
+  {
+    FILE *fp = fopen (filename, "w");
+    char buf[5] = "world";
+    ASSERT (fp != NULL);
+    setvbuf (fp, NULL, _IONBF, 0);
+    ASSERT (close (fileno (fp)) == 0);
+    errno = 0;
+    ASSERT (fwrite (buf, 1, sizeof (buf), fp) == 0);
+    ASSERT (errno == EBADF);
+    ASSERT (ferror (fp));
+    fclose (fp);
+  }
+
+  /* Test that fwrite() on an unbuffered stream sets errno if the stream
+     was constructed with an invalid file descriptor.  */
+  {
+    FILE *fp = fdopen (-1, "w");
+    if (fp != NULL)
+      {
+        char buf[5] = "world";
+        setvbuf (fp, NULL, _IONBF, 0);
+        errno = 0;
+        ASSERT (fwrite (buf, 1, sizeof (buf), fp) == 0);
+        ASSERT (errno == EBADF);
+        ASSERT (ferror (fp));
+        fclose (fp);
+      }
+  }
+  {
+    FILE *fp;
+    close (99);
+    fp = fdopen (99, "w");
+    if (fp != NULL)
+      {
+        char buf[5] = "world";
+        setvbuf (fp, NULL, _IONBF, 0);
+        errno = 0;
+        ASSERT (fwrite (buf, 1, sizeof (buf), fp) == 0);
+        ASSERT (errno == EBADF);
+        ASSERT (ferror (fp));
+        fclose (fp);
+      }
+  }
+
+  /* Clean up.  */
+  unlink (filename);
+
+  return 0;
+}
index 10a8e3d..e72e373 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <iconv.h> substitute.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
 
 #if HAVE_ICONV
 # include <iconv.h>
-
-# ifndef ICONV_CONST
-#  define ICONV_CONST /* empty */
-# endif
 #endif
 
 int
index cf00ac8..3c1b193 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of character set conversion.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
diff --git a/tests/test-init.sh b/tests/test-init.sh
new file mode 100755 (executable)
index 0000000..be447b3
--- /dev/null
@@ -0,0 +1,73 @@
+#!/bin/sh
+# Unit tests for init.sh
+# Copyright (C) 2011-2014 Free Software Foundation, Inc.
+# This file is part of the GNUlib Library.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+: ${srcdir=.}
+. "$srcdir/init.sh"; path_prepend_ .
+
+fail=0
+
+test_compare()
+{
+  touch empty || fail=1
+  echo xyz > in || fail=1
+
+  compare /dev/null /dev/null >out 2>err || fail=1
+  test -s out && fail_ "out not empty: $(cat out)"
+  # "err" should be empty, too, but has "set -x" output when VERBOSE=yes
+  case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac
+
+  compare /dev/null empty >out 2>err || fail=1
+  test -s out && fail_ "out not empty: $(cat out)"
+  case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac
+
+  compare in in >out 2>err || fail=1
+  test -s out && fail_ "out not empty: $(cat out)"
+  case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac
+
+  compare /dev/null in >out 2>err && fail=1
+  cat <<\EOF > exp
+diff -u /dev/null in
+--- /dev/null  1970-01-01
++++ in 1970-01-01
++xyz
+EOF
+  compare exp out || fail=1
+  case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac
+
+  compare empty in >out 2>err && fail=1
+  # Compare against expected output only if compare is using diff -u.
+  if grep @ out >/dev/null; then
+    # Remove the TAB-date suffix on each --- and +++ line,
+    # for both the expected and the actual output files.
+    # Also remove the @@ line, since Solaris 5.10 and GNU diff formats differ:
+    # -@@ -0,0 +1 @@
+    # +@@ -1,0 +1,1 @@
+    sed 's/    .*//;/^@@/d' out > k && mv k out
+    cat <<\EOF > exp
+--- empty
++++ in
++xyz
+EOF
+    compare exp out || fail=1
+  fi
+  case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac
+}
+
+test_compare
+
+Exit $fail
diff --git a/tests/test-intprops.c b/tests/test-intprops.c
new file mode 100644 (file)
index 0000000..97553e7
--- /dev/null
@@ -0,0 +1,275 @@
+/* Test intprops.h.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paul Eggert.  */
+
+/* Tell gcc not to warn about the many (X < 0) expressions that
+   the overflow macros expand to.  */
+#if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__
+# pragma GCC diagnostic ignored "-Wtype-limits"
+#endif
+
+#include <config.h>
+
+#include "intprops.h"
+#include "verify.h"
+
+#include <stdbool.h>
+#include <inttypes.h>
+
+#include "macros.h"
+
+/* VERIFY (X) uses a static assertion for compilers that are known to work,
+   and falls back on a dynamic assertion for other compilers.
+   These tests should be checkable via 'verify' rather than 'ASSERT', but
+   using 'verify' would run into a bug with HP-UX 11.23 cc; see
+   <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.  */
+#if __GNUC__ || __SUNPRO_C
+# define VERIFY(x) do { verify (x); } while (0)
+#else
+# define VERIFY(x) ASSERT (x)
+#endif
+
+int
+main (void)
+{
+  /* Use VERIFY for tests that must be integer constant expressions,
+     ASSERT otherwise.  */
+
+  /* TYPE_IS_INTEGER.  */
+  ASSERT (TYPE_IS_INTEGER (bool));
+  ASSERT (TYPE_IS_INTEGER (char));
+  ASSERT (TYPE_IS_INTEGER (signed char));
+  ASSERT (TYPE_IS_INTEGER (unsigned char));
+  ASSERT (TYPE_IS_INTEGER (short int));
+  ASSERT (TYPE_IS_INTEGER (unsigned short int));
+  ASSERT (TYPE_IS_INTEGER (int));
+  ASSERT (TYPE_IS_INTEGER (unsigned int));
+  ASSERT (TYPE_IS_INTEGER (long int));
+  ASSERT (TYPE_IS_INTEGER (unsigned long int));
+  ASSERT (TYPE_IS_INTEGER (intmax_t));
+  ASSERT (TYPE_IS_INTEGER (uintmax_t));
+  ASSERT (! TYPE_IS_INTEGER (float));
+  ASSERT (! TYPE_IS_INTEGER (double));
+  ASSERT (! TYPE_IS_INTEGER (long double));
+
+  /* TYPE_SIGNED.  */
+  /* VERIFY (! TYPE_SIGNED (bool)); // not guaranteed by gnulib substitute */
+  VERIFY (TYPE_SIGNED (signed char));
+  VERIFY (! TYPE_SIGNED (unsigned char));
+  VERIFY (TYPE_SIGNED (short int));
+  VERIFY (! TYPE_SIGNED (unsigned short int));
+  VERIFY (TYPE_SIGNED (int));
+  VERIFY (! TYPE_SIGNED (unsigned int));
+  VERIFY (TYPE_SIGNED (long int));
+  VERIFY (! TYPE_SIGNED (unsigned long int));
+  VERIFY (TYPE_SIGNED (intmax_t));
+  VERIFY (! TYPE_SIGNED (uintmax_t));
+  ASSERT (TYPE_SIGNED (float));
+  ASSERT (TYPE_SIGNED (double));
+  ASSERT (TYPE_SIGNED (long double));
+
+  /* Integer representation.  */
+  VERIFY (INT_MIN + INT_MAX < 0
+          ? (TYPE_TWOS_COMPLEMENT (int)
+             && ! TYPE_ONES_COMPLEMENT (int) && ! TYPE_SIGNED_MAGNITUDE (int))
+          : (! TYPE_TWOS_COMPLEMENT (int)
+             && (TYPE_ONES_COMPLEMENT (int) || TYPE_SIGNED_MAGNITUDE (int))));
+
+  /* TYPE_MINIMUM, TYPE_MAXIMUM.  */
+  VERIFY (TYPE_MINIMUM (char) == CHAR_MIN);
+  VERIFY (TYPE_MAXIMUM (char) == CHAR_MAX);
+  VERIFY (TYPE_MINIMUM (unsigned char) == 0);
+  VERIFY (TYPE_MAXIMUM (unsigned char) == UCHAR_MAX);
+  VERIFY (TYPE_MINIMUM (signed char) == SCHAR_MIN);
+  VERIFY (TYPE_MAXIMUM (signed char) == SCHAR_MAX);
+  VERIFY (TYPE_MINIMUM (short int) == SHRT_MIN);
+  VERIFY (TYPE_MAXIMUM (short int) == SHRT_MAX);
+  VERIFY (TYPE_MINIMUM (unsigned short int) == 0);
+  VERIFY (TYPE_MAXIMUM (unsigned short int) == USHRT_MAX);
+  VERIFY (TYPE_MINIMUM (int) == INT_MIN);
+  VERIFY (TYPE_MAXIMUM (int) == INT_MAX);
+  VERIFY (TYPE_MINIMUM (unsigned int) == 0);
+  VERIFY (TYPE_MAXIMUM (unsigned int) == UINT_MAX);
+  VERIFY (TYPE_MINIMUM (long int) == LONG_MIN);
+  VERIFY (TYPE_MAXIMUM (long int) == LONG_MAX);
+  VERIFY (TYPE_MINIMUM (unsigned long int) == 0);
+  VERIFY (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX);
+  VERIFY (TYPE_MINIMUM (intmax_t) == INTMAX_MIN);
+  VERIFY (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX);
+  VERIFY (TYPE_MINIMUM (uintmax_t) == 0);
+  VERIFY (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX);
+
+  /* INT_BITS_STRLEN_BOUND.  */
+  VERIFY (INT_BITS_STRLEN_BOUND (1) == 1);
+  VERIFY (INT_BITS_STRLEN_BOUND (2620) == 789);
+
+  /* INT_STRLEN_BOUND, INT_BUFSIZE_BOUND.  */
+  #ifdef INT32_MAX /* POSIX guarantees int32_t; this ports to non-POSIX.  */
+  VERIFY (INT_STRLEN_BOUND (int32_t) == sizeof ("-2147483648") - 1);
+  VERIFY (INT_BUFSIZE_BOUND (int32_t) == sizeof ("-2147483648"));
+  #endif
+  #ifdef INT64_MAX
+  VERIFY (INT_STRLEN_BOUND (int64_t) == sizeof ("-9223372036854775808") - 1);
+  VERIFY (INT_BUFSIZE_BOUND (int64_t) == sizeof ("-9223372036854775808"));
+  #endif
+
+  /* All the INT_<op>_RANGE_OVERFLOW tests are equally valid as
+     INT_<op>_OVERFLOW tests, so define a single macro to do both.  */
+  #define CHECK_BINOP(op, a, b, min, max, overflow)                      \
+    (INT_##op##_RANGE_OVERFLOW (a, b, min, max) == (overflow)            \
+     && INT_##op##_OVERFLOW (a, b) == (overflow))
+  #define CHECK_UNOP(op, a, min, max, overflow)                          \
+    (INT_##op##_RANGE_OVERFLOW (a, min, max) == (overflow)               \
+     && INT_##op##_OVERFLOW (a) == (overflow))
+
+  /* INT_<op>_RANGE_OVERFLOW, INT_<op>_OVERFLOW.  */
+  VERIFY (INT_ADD_RANGE_OVERFLOW (INT_MAX, 1, INT_MIN, INT_MAX));
+  VERIFY (INT_ADD_OVERFLOW (INT_MAX, 1));
+  VERIFY (CHECK_BINOP (ADD, INT_MAX, 1, INT_MIN, INT_MAX, true));
+  VERIFY (CHECK_BINOP (ADD, INT_MAX, -1, INT_MIN, INT_MAX, false));
+  VERIFY (CHECK_BINOP (ADD, INT_MIN, 1, INT_MIN, INT_MAX, false));
+  VERIFY (CHECK_BINOP (ADD, INT_MIN, -1, INT_MIN, INT_MAX, true));
+  VERIFY (CHECK_BINOP (ADD, UINT_MAX, 1u, 0u, UINT_MAX, true));
+  VERIFY (CHECK_BINOP (ADD, 0u, 1u, 0u, UINT_MAX, false));
+
+  VERIFY (CHECK_BINOP (SUBTRACT, INT_MAX, 1, INT_MIN, INT_MAX, false));
+  VERIFY (CHECK_BINOP (SUBTRACT, INT_MAX, -1, INT_MIN, INT_MAX, true));
+  VERIFY (CHECK_BINOP (SUBTRACT, INT_MIN, 1, INT_MIN, INT_MAX, true));
+  VERIFY (CHECK_BINOP (SUBTRACT, INT_MIN, -1, INT_MIN, INT_MAX, false));
+  VERIFY (CHECK_BINOP (SUBTRACT, UINT_MAX, 1u, 0u, UINT_MAX, false));
+  VERIFY (CHECK_BINOP (SUBTRACT, 0u, 1u, 0u, UINT_MAX, true));
+
+  VERIFY (CHECK_UNOP (NEGATE, INT_MIN, INT_MIN, INT_MAX,
+                      TYPE_TWOS_COMPLEMENT (int)));
+  VERIFY (CHECK_UNOP (NEGATE, 0, INT_MIN, INT_MAX, false));
+  VERIFY (CHECK_UNOP (NEGATE, INT_MAX, INT_MIN, INT_MAX, false));
+  VERIFY (CHECK_UNOP (NEGATE, 0u, 0u, UINT_MAX, false));
+  VERIFY (CHECK_UNOP (NEGATE, 1u, 0u, UINT_MAX, true));
+  VERIFY (CHECK_UNOP (NEGATE, UINT_MAX, 0u, UINT_MAX, true));
+
+  VERIFY (CHECK_BINOP (MULTIPLY, INT_MAX, INT_MAX, INT_MIN, INT_MAX, true));
+  VERIFY (CHECK_BINOP (MULTIPLY, INT_MAX, INT_MIN, INT_MIN, INT_MAX, true));
+  VERIFY (CHECK_BINOP (MULTIPLY, INT_MIN, INT_MAX, INT_MIN, INT_MAX, true));
+  VERIFY (CHECK_BINOP (MULTIPLY, INT_MIN, INT_MIN, INT_MIN, INT_MAX, true));
+  VERIFY (CHECK_BINOP (MULTIPLY, -1, INT_MIN, INT_MIN, INT_MAX,
+                       INT_NEGATE_OVERFLOW (INT_MIN)));
+  VERIFY (CHECK_BINOP (MULTIPLY, LONG_MIN / INT_MAX, (long int) INT_MAX,
+                       LONG_MIN, LONG_MIN, false));
+
+  VERIFY (CHECK_BINOP (DIVIDE, INT_MIN, -1, INT_MIN, INT_MAX,
+                       INT_NEGATE_OVERFLOW (INT_MIN)));
+  VERIFY (CHECK_BINOP (DIVIDE, INT_MAX, 1, INT_MIN, INT_MAX, false));
+  VERIFY (CHECK_BINOP (DIVIDE, (unsigned int) INT_MIN,
+                       -1u, 0u, UINT_MAX, false));
+
+  VERIFY (CHECK_BINOP (REMAINDER, INT_MIN, -1, INT_MIN, INT_MAX,
+                       INT_NEGATE_OVERFLOW (INT_MIN)));
+  VERIFY (CHECK_BINOP (REMAINDER, INT_MAX, 1, INT_MIN, INT_MAX, false));
+  VERIFY (CHECK_BINOP (REMAINDER, (unsigned int) INT_MIN,
+                       -1u, 0u, UINT_MAX, false));
+
+  VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX, 1, 0u, UINT_MAX, true));
+  VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX / 2 + 1, 1, 0u, UINT_MAX, true));
+  VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX / 2, 1, 0u, UINT_MAX, false));
+
+  /* INT_<op>_OVERFLOW with mixed types.  */
+  #define CHECK_SUM(a, b, overflow)                       \
+    VERIFY (INT_ADD_OVERFLOW (a, b) == (overflow));       \
+    VERIFY (INT_ADD_OVERFLOW (b, a) == (overflow))
+  CHECK_SUM (-1, LONG_MIN, true);
+  CHECK_SUM (-1, UINT_MAX, false);
+  CHECK_SUM (-1L, INT_MIN, INT_MIN == LONG_MIN);
+  CHECK_SUM (0u, -1, true);
+  CHECK_SUM (0u, 0, false);
+  CHECK_SUM (0u, 1, false);
+  CHECK_SUM (1, LONG_MAX, true);
+  CHECK_SUM (1, UINT_MAX, true);
+  CHECK_SUM (1L, INT_MAX, INT_MAX == LONG_MAX);
+  CHECK_SUM (1u, INT_MAX, INT_MAX == UINT_MAX);
+  CHECK_SUM (1u, INT_MIN, true);
+
+  VERIFY (! INT_SUBTRACT_OVERFLOW (INT_MAX, 1u));
+  VERIFY (! INT_SUBTRACT_OVERFLOW (UINT_MAX, 1));
+  VERIFY (! INT_SUBTRACT_OVERFLOW (0u, -1));
+  VERIFY (INT_SUBTRACT_OVERFLOW (UINT_MAX, -1));
+  VERIFY (INT_SUBTRACT_OVERFLOW (INT_MIN, 1u));
+  VERIFY (INT_SUBTRACT_OVERFLOW (-1, 0u));
+
+  #define CHECK_PRODUCT(a, b, overflow)                   \
+    VERIFY (INT_MULTIPLY_OVERFLOW (a, b) == (overflow));   \
+    VERIFY (INT_MULTIPLY_OVERFLOW (b, a) == (overflow))
+
+  CHECK_PRODUCT (-1, 1u, true);
+  CHECK_PRODUCT (-1, INT_MIN, INT_NEGATE_OVERFLOW (INT_MIN));
+  CHECK_PRODUCT (-1, UINT_MAX, true);
+  CHECK_PRODUCT (-12345, LONG_MAX / -12345 - 1, true);
+  CHECK_PRODUCT (-12345, LONG_MAX / -12345, false);
+  CHECK_PRODUCT (0, -1, false);
+  CHECK_PRODUCT (0, 0, false);
+  CHECK_PRODUCT (0, 0u, false);
+  CHECK_PRODUCT (0, 1, false);
+  CHECK_PRODUCT (0, INT_MAX, false);
+  CHECK_PRODUCT (0, INT_MIN, false);
+  CHECK_PRODUCT (0, UINT_MAX, false);
+  CHECK_PRODUCT (0u, -1, false);
+  CHECK_PRODUCT (0u, 0, false);
+  CHECK_PRODUCT (0u, 0u, false);
+  CHECK_PRODUCT (0u, 1, false);
+  CHECK_PRODUCT (0u, INT_MAX, false);
+  CHECK_PRODUCT (0u, INT_MIN, false);
+  CHECK_PRODUCT (0u, UINT_MAX, false);
+  CHECK_PRODUCT (1, INT_MAX, false);
+  CHECK_PRODUCT (1, INT_MIN, false);
+  CHECK_PRODUCT (1, UINT_MAX, false);
+  CHECK_PRODUCT (1u, INT_MIN, true);
+  CHECK_PRODUCT (1u, INT_MAX, UINT_MAX < INT_MAX);
+  CHECK_PRODUCT (INT_MAX, UINT_MAX, true);
+  CHECK_PRODUCT (INT_MAX, ULONG_MAX, true);
+  CHECK_PRODUCT (INT_MIN, LONG_MAX / INT_MIN - 1, true);
+  CHECK_PRODUCT (INT_MIN, LONG_MAX / INT_MIN, false);
+  CHECK_PRODUCT (INT_MIN, UINT_MAX, true);
+  CHECK_PRODUCT (INT_MIN, ULONG_MAX, true);
+
+  VERIFY (INT_DIVIDE_OVERFLOW (INT_MIN, -1L)
+          == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN));
+  VERIFY (! INT_DIVIDE_OVERFLOW (INT_MIN, UINT_MAX));
+  VERIFY (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINTMAX_MAX));
+  VERIFY (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINT_MAX));
+  VERIFY (INT_DIVIDE_OVERFLOW (-11, 10u));
+  VERIFY (INT_DIVIDE_OVERFLOW (-10, 10u));
+  VERIFY (! INT_DIVIDE_OVERFLOW (-9, 10u));
+  VERIFY (INT_DIVIDE_OVERFLOW (11u, -10));
+  VERIFY (INT_DIVIDE_OVERFLOW (10u, -10));
+  VERIFY (! INT_DIVIDE_OVERFLOW (9u, -10));
+
+  VERIFY (INT_REMAINDER_OVERFLOW (INT_MIN, -1L)
+          == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN));
+  VERIFY (INT_REMAINDER_OVERFLOW (-1, UINT_MAX));
+  VERIFY (INT_REMAINDER_OVERFLOW ((intmax_t) -1, UINTMAX_MAX));
+  VERIFY (INT_REMAINDER_OVERFLOW (INTMAX_MIN, UINT_MAX)
+          == (INTMAX_MAX < UINT_MAX
+              && - (unsigned int) INTMAX_MIN % UINT_MAX != 0));
+  VERIFY (INT_REMAINDER_OVERFLOW (INT_MIN, ULONG_MAX)
+          == (INT_MIN % ULONG_MAX != 1));
+  VERIFY (! INT_REMAINDER_OVERFLOW (1u, -1));
+  VERIFY (! INT_REMAINDER_OVERFLOW (37*39u, -39));
+  VERIFY (INT_REMAINDER_OVERFLOW (37*39u + 1, -39));
+  VERIFY (INT_REMAINDER_OVERFLOW (37*39u - 1, -39));
+  VERIFY (! INT_REMAINDER_OVERFLOW (LONG_MAX, -INT_MAX));
+
+  return 0;
+}
diff --git a/tests/test-inttypes.c b/tests/test-inttypes.c
new file mode 100644 (file)
index 0000000..35deeab
--- /dev/null
@@ -0,0 +1,118 @@
+/* Test of <inttypes.h> substitute.
+   Copyright (C) 2006-2007, 2009-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#include <config.h>
+
+#include <inttypes.h>
+
+#include <stddef.h>
+
+/* Tests for macros supposed to be defined in inttypes.h.  */
+
+const char *k = /* implicit string concatenation */
+#ifdef INT8_MAX
+  PRId8 PRIi8
+#endif
+#ifdef UINT8_MAX
+  PRIo8 PRIu8 PRIx8 PRIX8
+#endif
+#ifdef INT16_MAX
+  PRId16 PRIi16
+#endif
+#ifdef UINT16_MAX
+  PRIo16 PRIu16 PRIx16 PRIX16
+#endif
+#ifdef INT32_MAX
+  PRId32 PRIi32
+#endif
+#ifdef UINT32_MAX
+  PRIo32 PRIu32 PRIx32 PRIX32
+#endif
+#ifdef INT64_MAX
+  PRId64 PRIi64
+#endif
+#ifdef UINT64_MAX
+  PRIo64 PRIu64 PRIx64 PRIX64
+#endif
+  PRIdLEAST8 PRIiLEAST8 PRIoLEAST8 PRIuLEAST8 PRIxLEAST8 PRIXLEAST8
+  PRIdLEAST16 PRIiLEAST16 PRIoLEAST16 PRIuLEAST16 PRIxLEAST16 PRIXLEAST16
+  PRIdLEAST32 PRIiLEAST32 PRIoLEAST32 PRIuLEAST32 PRIxLEAST32 PRIXLEAST32
+  PRIdLEAST64 PRIiLEAST64
+  PRIoLEAST64 PRIuLEAST64 PRIxLEAST64 PRIXLEAST64
+  PRIdFAST8 PRIiFAST8 PRIoFAST8 PRIuFAST8 PRIxFAST8 PRIXFAST8
+  PRIdFAST16 PRIiFAST16 PRIoFAST16 PRIuFAST16 PRIxFAST16 PRIXFAST16
+  PRIdFAST32 PRIiFAST32 PRIoFAST32 PRIuFAST32 PRIxFAST32 PRIXFAST32
+  PRIdFAST64 PRIiFAST64
+  PRIoFAST64 PRIuFAST64 PRIxFAST64 PRIXFAST64
+  PRIdMAX PRIiMAX PRIoMAX PRIuMAX PRIxMAX PRIXMAX
+#ifdef INTPTR_MAX
+  PRIdPTR PRIiPTR
+#endif
+#ifdef UINTPTR_MAX
+  PRIoPTR PRIuPTR PRIxPTR PRIXPTR
+#endif
+  ;
+const char *l = /* implicit string concatenation */
+#ifdef INT8_MAX
+  SCNd8 SCNi8
+#endif
+#ifdef UINT8_MAX
+  SCNo8 SCNu8 SCNx8
+#endif
+#ifdef INT16_MAX
+  SCNd16 SCNi16
+#endif
+#ifdef UINT16_MAX
+  SCNo16 SCNu16 SCNx16
+#endif
+#ifdef INT32_MAX
+  SCNd32 SCNi32
+#endif
+#ifdef UINT32_MAX
+  SCNo32 SCNu32 SCNx32
+#endif
+#ifdef INT64_MAX
+  SCNd64 SCNi64
+#endif
+#ifdef UINT64_MAX
+  SCNo64 SCNu64 SCNx64
+#endif
+  SCNdLEAST8 SCNiLEAST8 SCNoLEAST8 SCNuLEAST8 SCNxLEAST8
+  SCNdLEAST16 SCNiLEAST16 SCNoLEAST16 SCNuLEAST16 SCNxLEAST16
+  SCNdLEAST32 SCNiLEAST32 SCNoLEAST32 SCNuLEAST32 SCNxLEAST32
+  SCNdLEAST64 SCNiLEAST64
+  SCNoLEAST64 SCNuLEAST64 SCNxLEAST64
+  SCNdFAST8 SCNiFAST8 SCNoFAST8 SCNuFAST8 SCNxFAST8
+  SCNdFAST16 SCNiFAST16 SCNoFAST16 SCNuFAST16 SCNxFAST16
+  SCNdFAST32 SCNiFAST32 SCNoFAST32 SCNuFAST32 SCNxFAST32
+  SCNdFAST64 SCNiFAST64
+  SCNoFAST64 SCNuFAST64 SCNxFAST64
+  SCNdMAX SCNiMAX SCNoMAX SCNuMAX SCNxMAX
+#ifdef INTPTR_MAX
+  SCNdPTR SCNiPTR
+#endif
+#ifdef UINTPTR_MAX
+  SCNoPTR SCNuPTR SCNxPTR
+#endif
+  ;
+
+int
+main (void)
+{
+  return 0;
+}
index b0ac0ba..d7b6405 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnand() substitute.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
@@ -19,4 +19,3 @@
 #include "isnand-nolibm.h"
 
 #include "test-isnand.h"
-
index f986621..c6d216e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnand() substitute.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
 
 #include <limits.h>
 
+#include "minus-zero.h"
+#include "infinity.h"
 #include "nan.h"
 #include "macros.h"
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zero instead.  */
-double zero = 0.0;
-
 int
 main ()
 {
@@ -36,10 +34,10 @@ main ()
   ASSERT (!isnand (-2.718e30));
   ASSERT (!isnand (-2.718e-30));
   ASSERT (!isnand (0.0));
-  ASSERT (!isnand (-zero));
+  ASSERT (!isnand (minus_zerod));
   /* Infinite values.  */
-  ASSERT (!isnand (1.0 / 0.0));
-  ASSERT (!isnand (-1.0 / 0.0));
+  ASSERT (!isnand (Infinityd ()));
+  ASSERT (!isnand (- Infinityd ()));
   /* Quiet NaN.  */
   ASSERT (isnand (NaNd ()));
 #if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
index 6ac69e0..222bde7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnanf() substitute.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index d071b2c..463ac7e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnanf() substitute.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
 
 #include <limits.h>
 
+#include "minus-zero.h"
+#include "infinity.h"
 #include "nan.h"
 #include "macros.h"
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
-   So we use -zero instead.  */
-float zero = 0.0f;
-
 int
 main ()
 {
@@ -36,10 +34,10 @@ main ()
   ASSERT (!isnanf (-2.718e30f));
   ASSERT (!isnanf (-2.718e-30f));
   ASSERT (!isnanf (0.0f));
-  ASSERT (!isnanf (-zero));
+  ASSERT (!isnanf (minus_zerof));
   /* Infinite values.  */
-  ASSERT (!isnanf (1.0f / 0.0f));
-  ASSERT (!isnanf (-1.0f / 0.0f));
+  ASSERT (!isnanf (Infinityf ()));
+  ASSERT (!isnanf (- Infinityf ()));
   /* Quiet NaN.  */
   ASSERT (isnanf (NaNf ()));
 #if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
index eeca6d8..15a32c5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnanl() substitute.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
index 1665cf4..015b086 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of isnanl() substitute.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
 #include <float.h>
 #include <limits.h>
 
+#include "minus-zero.h"
+#include "infinity.h"
 #include "nan.h"
 #include "macros.h"
 
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zero instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zero (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zero compute_minus_zero ()
-#else
-long double minus_zero = -0.0L;
-#endif
-
 int
 main ()
 {
@@ -54,10 +40,10 @@ main ()
   ASSERT (!isnanl (-2.718e30L));
   ASSERT (!isnanl (-2.718e-30L));
   ASSERT (!isnanl (0.0L));
-  ASSERT (!isnanl (minus_zero));
+  ASSERT (!isnanl (minus_zerol));
   /* Infinite values.  */
-  ASSERT (!isnanl (1.0L / 0.0L));
-  ASSERT (!isnanl (-1.0L / 0.0L));
+  ASSERT (!isnanl (Infinityl ()));
+  ASSERT (!isnanl (- Infinityl ()));
   /* Quiet NaN.  */
   ASSERT (isnanl (NaNl ()));
 
@@ -65,6 +51,15 @@ main ()
   /* A bit pattern that is different from a Quiet NaN.  With a bit of luck,
      it's a Signalling NaN.  */
   {
+#if defined __powerpc__ && LDBL_MANT_DIG == 106
+    /* This is PowerPC "double double", a pair of two doubles.  Inf and Nan are
+       represented as the corresponding 64-bit IEEE values in the first double;
+       the second is ignored.  Manipulate only the first double.  */
+    #undef NWORDS
+    #define NWORDS \
+      ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+#endif
+
     memory_long_double m;
     m.value = NaNl ();
 # if LDBL_EXPBIT0_BIT > 0
@@ -79,7 +74,7 @@ main ()
   }
 #endif
 
-#if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_))
+#if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
 /* Representation of an 80-bit 'long double' as an initializer for a sequence
    of 'unsigned int' words.  */
 # ifdef WORDS_BIGENDIAN
diff --git a/tests/test-iswblank.c b/tests/test-iswblank.c
new file mode 100644 (file)
index 0000000..68ede5c
--- /dev/null
@@ -0,0 +1,35 @@
+/* Test of iswblank() function.
+   Copyright (C) 2007-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <wctype.h>
+
+#include "macros.h"
+
+/* Check that WEOF is defined.  */
+wint_t e = WEOF;
+
+int
+main (void)
+{
+  /* Check that the function exist as a function or as a macro.  */
+  (void) iswblank (0);
+  /* Check that the isw* functions map WEOF to 0.  */
+  ASSERT (!iswblank (e));
+
+  return 0;
+}
index 2e5c4fc..cf4e6e8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <locale.h> substitute.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
@@ -38,6 +38,10 @@ int a[] =
 locale_t b = LC_GLOBAL_LOCALE;
 #endif
 
+/* Check that the 'struct lconv' type is defined.  */
+struct lconv l;
+int ls;
+
 /* Check that NULL can be passed through varargs as a pointer type,
    per POSIX 2008.  */
 verify (sizeof NULL == sizeof (void *));
@@ -45,5 +49,31 @@ verify (sizeof NULL == sizeof (void *));
 int
 main ()
 {
+  /* Check that 'struct lconv' has the ISO C and POSIX specified members.  */
+  ls += sizeof (*l.decimal_point);
+  ls += sizeof (*l.thousands_sep);
+  ls += sizeof (*l.grouping);
+  ls += sizeof (*l.mon_decimal_point);
+  ls += sizeof (*l.mon_thousands_sep);
+  ls += sizeof (*l.mon_grouping);
+  ls += sizeof (*l.positive_sign);
+  ls += sizeof (*l.negative_sign);
+  ls += sizeof (*l.currency_symbol);
+  ls += sizeof (l.frac_digits);
+  ls += sizeof (l.p_cs_precedes);
+  ls += sizeof (l.p_sign_posn);
+  ls += sizeof (l.p_sep_by_space);
+  ls += sizeof (l.n_cs_precedes);
+  ls += sizeof (l.n_sign_posn);
+  ls += sizeof (l.n_sep_by_space);
+  ls += sizeof (*l.int_curr_symbol);
+  ls += sizeof (l.int_frac_digits);
+  ls += sizeof (l.int_p_cs_precedes);
+  ls += sizeof (l.int_p_sign_posn);
+  ls += sizeof (l.int_p_sep_by_space);
+  ls += sizeof (l.int_n_cs_precedes);
+  ls += sizeof (l.int_n_sign_posn);
+  ls += sizeof (l.int_n_sep_by_space);
+
   return 0;
 }
index 8f081b3..df6c1d6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of gl_locale_name function and its variants.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
@@ -715,7 +715,7 @@ test_locale_name_default (void)
 
   ASSERT (name != NULL);
 
-  /* Only MacOS X and Windows have a facility for the user to set the default
+  /* Only Mac OS X and Windows have a facility for the user to set the default
      locale.  */
 #if !((defined __APPLE__ && defined __MACH__) || (defined _WIN32 || defined __WIN32__ || defined __CYGWIN__))
   ASSERT (strcmp (name, "C") == 0);
index 7792dca..fd2ed26 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of locking in multithreaded situations.
-   Copyright (C) 2005, 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2008-2014 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
@@ -18,7 +18,7 @@
 
 #include <config.h>
 
-#if USE_POSIX_THREADS || USE_SOLARIS_THREADS || USE_PTH_THREADS || USE_WIN32_THREADS
+#if USE_POSIX_THREADS || USE_SOLARIS_THREADS || USE_PTH_THREADS || USE_WINDOWS_THREADS
 
 #if USE_POSIX_THREADS
 # define TEST_POSIX_THREADS 1
@@ -29,8 +29,8 @@
 #if USE_PTH_THREADS
 # define TEST_PTH_THREADS 1
 #endif
-#if USE_WIN32_THREADS
-# define TEST_WIN32_THREADS 1
+#if USE_WINDOWS_THREADS
+# define TEST_WINDOWS_THREADS 1
 #endif
 
 /* Whether to enable locking.
@@ -69,7 +69,7 @@
 # undef USE_POSIX_THREADS
 # undef USE_SOLARIS_THREADS
 # undef USE_PTH_THREADS
-# undef USE_WIN32_THREADS
+# undef USE_WINDOWS_THREADS
 #endif
 #include "glthread/lock.h"
 
@@ -83,8 +83,8 @@
 # if TEST_PTH_THREADS
 #  define USE_PTH_THREADS 1
 # endif
-# if TEST_WIN32_THREADS
-#  define USE_WIN32_THREADS 1
+# if TEST_WINDOWS_THREADS
+#  define USE_WINDOWS_THREADS 1
 # endif
 #endif
 
@@ -143,9 +143,9 @@ lock_mutator_thread (void *arg)
     {
       int i1, i2, value;
 
-      dbgprintf ("Mutator %p before lock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p before lock\n", gl_thread_self_pointer ());
       gl_lock_lock (my_lock);
-      dbgprintf ("Mutator %p after  lock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p after  lock\n", gl_thread_self_pointer ());
 
       i1 = random_account ();
       i2 = random_account ();
@@ -153,20 +153,20 @@ lock_mutator_thread (void *arg)
       account[i1] += value;
       account[i2] -= value;
 
-      dbgprintf ("Mutator %p before unlock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ());
       gl_lock_unlock (my_lock);
-      dbgprintf ("Mutator %p after  unlock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p after  unlock\n", gl_thread_self_pointer ());
 
-      dbgprintf ("Mutator %p before check lock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p before check lock\n", gl_thread_self_pointer ());
       gl_lock_lock (my_lock);
       check_accounts ();
       gl_lock_unlock (my_lock);
-      dbgprintf ("Mutator %p after  check unlock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p after  check unlock\n", gl_thread_self_pointer ());
 
       yield ();
     }
 
-  dbgprintf ("Mutator %p dying.\n", gl_thread_self ());
+  dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ());
   return NULL;
 }
 
@@ -177,16 +177,16 @@ lock_checker_thread (void *arg)
 {
   while (!lock_checker_done)
     {
-      dbgprintf ("Checker %p before check lock\n", gl_thread_self ());
+      dbgprintf ("Checker %p before check lock\n", gl_thread_self_pointer ());
       gl_lock_lock (my_lock);
       check_accounts ();
       gl_lock_unlock (my_lock);
-      dbgprintf ("Checker %p after  check unlock\n", gl_thread_self ());
+      dbgprintf ("Checker %p after  check unlock\n", gl_thread_self_pointer ());
 
       yield ();
     }
 
-  dbgprintf ("Checker %p dying.\n", gl_thread_self ());
+  dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ());
   return NULL;
 }
 
@@ -233,9 +233,9 @@ rwlock_mutator_thread (void *arg)
     {
       int i1, i2, value;
 
-      dbgprintf ("Mutator %p before wrlock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p before wrlock\n", gl_thread_self_pointer ());
       gl_rwlock_wrlock (my_rwlock);
-      dbgprintf ("Mutator %p after  wrlock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p after  wrlock\n", gl_thread_self_pointer ());
 
       i1 = random_account ();
       i2 = random_account ();
@@ -243,14 +243,14 @@ rwlock_mutator_thread (void *arg)
       account[i1] += value;
       account[i2] -= value;
 
-      dbgprintf ("Mutator %p before unlock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ());
       gl_rwlock_unlock (my_rwlock);
-      dbgprintf ("Mutator %p after  unlock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p after  unlock\n", gl_thread_self_pointer ());
 
       yield ();
     }
 
-  dbgprintf ("Mutator %p dying.\n", gl_thread_self ());
+  dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ());
   return NULL;
 }
 
@@ -261,16 +261,16 @@ rwlock_checker_thread (void *arg)
 {
   while (!rwlock_checker_done)
     {
-      dbgprintf ("Checker %p before check rdlock\n", gl_thread_self ());
+      dbgprintf ("Checker %p before check rdlock\n", gl_thread_self_pointer ());
       gl_rwlock_rdlock (my_rwlock);
       check_accounts ();
       gl_rwlock_unlock (my_rwlock);
-      dbgprintf ("Checker %p after  check unlock\n", gl_thread_self ());
+      dbgprintf ("Checker %p after  check unlock\n", gl_thread_self_pointer ());
 
       yield ();
     }
 
-  dbgprintf ("Checker %p dying.\n", gl_thread_self ());
+  dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ());
   return NULL;
 }
 
@@ -315,9 +315,9 @@ recshuffle (void)
 {
   int i1, i2, value;
 
-  dbgprintf ("Mutator %p before lock\n", gl_thread_self ());
+  dbgprintf ("Mutator %p before lock\n", gl_thread_self_pointer ());
   gl_recursive_lock_lock (my_reclock);
-  dbgprintf ("Mutator %p after  lock\n", gl_thread_self ());
+  dbgprintf ("Mutator %p after  lock\n", gl_thread_self_pointer ());
 
   i1 = random_account ();
   i2 = random_account ();
@@ -329,9 +329,9 @@ recshuffle (void)
   if (((unsigned int) rand () >> 3) % 2)
     recshuffle ();
 
-  dbgprintf ("Mutator %p before unlock\n", gl_thread_self ());
+  dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ());
   gl_recursive_lock_unlock (my_reclock);
-  dbgprintf ("Mutator %p after  unlock\n", gl_thread_self ());
+  dbgprintf ("Mutator %p after  unlock\n", gl_thread_self_pointer ());
 }
 
 static void *
@@ -343,16 +343,16 @@ reclock_mutator_thread (void *arg)
     {
       recshuffle ();
 
-      dbgprintf ("Mutator %p before check lock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p before check lock\n", gl_thread_self_pointer ());
       gl_recursive_lock_lock (my_reclock);
       check_accounts ();
       gl_recursive_lock_unlock (my_reclock);
-      dbgprintf ("Mutator %p after  check unlock\n", gl_thread_self ());
+      dbgprintf ("Mutator %p after  check unlock\n", gl_thread_self_pointer ());
 
       yield ();
     }
 
-  dbgprintf ("Mutator %p dying.\n", gl_thread_self ());
+  dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ());
   return NULL;
 }
 
@@ -363,16 +363,16 @@ reclock_checker_thread (void *arg)
 {
   while (!reclock_checker_done)
     {
-      dbgprintf ("Checker %p before check lock\n", gl_thread_self ());
+      dbgprintf ("Checker %p before check lock\n", gl_thread_self_pointer ());
       gl_recursive_lock_lock (my_reclock);
       check_accounts ();
       gl_recursive_lock_unlock (my_reclock);
-      dbgprintf ("Checker %p after  check unlock\n", gl_thread_self ());
+      dbgprintf ("Checker %p after  check unlock\n", gl_thread_self_pointer ());
 
       yield ();
     }
 
-  dbgprintf ("Checker %p dying.\n", gl_thread_self ());
+  dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ());
   return NULL;
 }
 
@@ -444,7 +444,7 @@ once_contender_thread (void *arg)
         break;
 
       dbgprintf ("Contender %p waiting for signal for round %d\n",
-                 gl_thread_self (), repeat);
+                 gl_thread_self_pointer (), repeat);
 #if ENABLE_LOCKING
       /* Wait for the signal to go.  */
       gl_rwlock_rdlock (fire_signal[repeat]);
@@ -456,7 +456,7 @@ once_contender_thread (void *arg)
         yield ();
 #endif
       dbgprintf ("Contender %p got the     signal for round %d\n",
-                 gl_thread_self (), repeat);
+                 gl_thread_self_pointer (), repeat);
 
       /* Contend for execution.  */
       gl_once (once_control, once_execute);
@@ -495,7 +495,7 @@ test_once (void)
   for (repeat = 0; repeat <= REPEAT_COUNT; repeat++)
     {
       /* Wait until every thread is ready.  */
-      dbgprintf ("Main thread before synchonizing for round %d\n", repeat);
+      dbgprintf ("Main thread before synchronizing for round %d\n", repeat);
       for (;;)
         {
           int ready_count = 0;
@@ -509,7 +509,7 @@ test_once (void)
             break;
           yield ();
         }
-      dbgprintf ("Main thread after  synchonizing for round %d\n", repeat);
+      dbgprintf ("Main thread after  synchronizing for round %d\n", repeat);
 
       if (repeat > 0)
         {
index 14ef3a9..6f94d0d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of safe automatic memory allocation.
-   Copyright (C) 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2014 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
@@ -27,7 +27,7 @@ do_allocation (int n)
 {
   void *ptr = malloca (n);
   freea (ptr);
-  ptr = safe_alloca (n);
+  safe_alloca (n);
 }
 
 void (*func) (int) = do_allocation;
@@ -37,12 +37,15 @@ main ()
 {
   int i;
 
+  /* This slows down malloc a lot.  */
+  unsetenv ("MALLOC_PERTURB_");
+
   /* Repeat a lot of times, to make sure there's no memory leak.  */
   for (i = 0; i < 50000; i++)
     {
       /* Try various values.
          n = 0 gave a crash on Alpha with gcc-2.5.8.
-         Some versions of MacOS X have a stack size limit of 512 KB.  */
+         Some versions of Mac OS X have a stack size limit of 512 KB.  */
       func (34);
       func (134);
       func (399);
index f940a24..f3975ee 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <math.h> substitute.
-   Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
 choke me
 #endif
 
+#ifndef HUGE_VALF
+# error HUGE_VALF should be defined
+choke me
+#endif
+
+#ifndef HUGE_VAL
+# error HUGE_VAL should be defined
+choke me
+#endif
+
+#ifndef HUGE_VALL
+# error HUGE_VALL should be defined
+choke me
+#endif
+
+#ifndef FP_ILOGB0
+# error FP_ILOGB0 should be defined
+choke me
+#endif
+
+#ifndef FP_ILOGBNAN
+# error FP_ILOGBNAN should be defined
+choke me
+#endif
+
+#include <limits.h>
+
+#include "macros.h"
+
 #if 0
 /* Check that NAN expands into a constant expression.  */
 static float n = NAN;
@@ -34,7 +63,17 @@ static float n = NAN;
    This is a separate function because IRIX 6.5 "cc -O" miscompiles an
    'x == x' test.  */
 static int
-numeric_equal (double x, double y)
+numeric_equalf (float x, float y)
+{
+  return x == y;
+}
+static int
+numeric_equald (double x, double y)
+{
+  return x == y;
+}
+static int
+numeric_equall (long double x, long double y)
 {
   return x == y;
 }
@@ -44,10 +83,22 @@ main (void)
 {
   double d = NAN;
   double zero = 0.0;
-  if (numeric_equal (d, d))
-    return 1;
+  ASSERT (!numeric_equald (d, d));
+
   d = HUGE_VAL;
-  if (!numeric_equal (d, 1.0 / zero))
-    return 1;
+  ASSERT (numeric_equald (d, 1.0 / zero));
+
+  ASSERT (numeric_equalf (HUGE_VALF, HUGE_VALF + HUGE_VALF));
+
+  ASSERT (numeric_equald (HUGE_VAL, HUGE_VAL + HUGE_VAL));
+
+  ASSERT (numeric_equall (HUGE_VALL, HUGE_VALL + HUGE_VALL));
+
+  /* Check the value of FP_ILOGB0.  */
+  ASSERT (FP_ILOGB0 == INT_MIN || FP_ILOGB0 == - INT_MAX);
+
+  /* Check the value of FP_ILOGBNAN.  */
+  ASSERT (FP_ILOGBNAN == INT_MIN || FP_ILOGBNAN == INT_MAX);
+
   return 0;
 }
diff --git a/tests/test-mbrtowc-w32-1.sh b/tests/test-mbrtowc-w32-1.sh
new file mode 100755 (executable)
index 0000000..3f12e44
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Test a CP1252 locale.
+./test-mbrtowc-w32${EXEEXT} French_France 1252
diff --git a/tests/test-mbrtowc-w32-2.sh b/tests/test-mbrtowc-w32-2.sh
new file mode 100755 (executable)
index 0000000..9e1a765
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Test a CP1256 locale.
+./test-mbrtowc-w32${EXEEXT} "Arabic_Saudi Arabia" 1256
diff --git a/tests/test-mbrtowc-w32-3.sh b/tests/test-mbrtowc-w32-3.sh
new file mode 100755 (executable)
index 0000000..782c2d0
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Test a CP932 locale.
+./test-mbrtowc-w32${EXEEXT} Japanese_Japan 932
diff --git a/tests/test-mbrtowc-w32-4.sh b/tests/test-mbrtowc-w32-4.sh
new file mode 100755 (executable)
index 0000000..0630f30
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Test a CP950 locale.
+./test-mbrtowc-w32${EXEEXT} Chinese_Taiwan 950
diff --git a/tests/test-mbrtowc-w32-5.sh b/tests/test-mbrtowc-w32-5.sh
new file mode 100755 (executable)
index 0000000..7d7faa9
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Test a CP936 locale.
+./test-mbrtowc-w32${EXEEXT} Chinese_China 936
diff --git a/tests/test-mbrtowc-w32.c b/tests/test-mbrtowc-w32.c
new file mode 100644 (file)
index 0000000..06f07aa
--- /dev/null
@@ -0,0 +1,735 @@
+/* Test of conversion of multibyte character to wide character.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <wchar.h>
+
+#include <errno.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "macros.h"
+
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+
+static int
+test_one_locale (const char *name, int codepage)
+{
+  mbstate_t state;
+  wchar_t wc;
+  size_t ret;
+
+# if 1
+  /* Portable code to set the locale.  */
+  {
+    char name_with_codepage[1024];
+
+    sprintf (name_with_codepage, "%s.%d", name, codepage);
+
+    /* Set the locale.  */
+    if (setlocale (LC_ALL, name_with_codepage) == NULL)
+      return 77;
+  }
+# else
+  /* Hacky way to set a locale.codepage combination that setlocale() refuses
+     to set.  */
+  {
+    /* Codepage of the current locale, set with setlocale().
+       Not necessarily the same as GetACP().  */
+    extern __declspec(dllimport) unsigned int __lc_codepage;
+
+    /* Set the locale.  */
+    if (setlocale (LC_ALL, name) == NULL)
+      return 77;
+
+    /* Clobber the codepage and MB_CUR_MAX, both set by setlocale().  */
+    __lc_codepage = codepage;
+    switch (codepage)
+      {
+      case 1252:
+      case 1256:
+        MB_CUR_MAX = 1;
+        break;
+      case 932:
+      case 950:
+      case 936:
+        MB_CUR_MAX = 2;
+        break;
+      case 54936:
+      case 65001:
+        MB_CUR_MAX = 4;
+        break;
+      }
+
+    /* Test whether the codepage is really available.  */
+    memset (&state, '\0', sizeof (mbstate_t));
+    if (mbrtowc (&wc, " ", 1, &state) == (size_t)(-1))
+      return 77;
+  }
+# endif
+
+  /* Test zero-length input.  */
+  {
+    memset (&state, '\0', sizeof (mbstate_t));
+    wc = (wchar_t) 0xBADFACE;
+    ret = mbrtowc (&wc, "x", 0, &state);
+    /* gnulib's implementation returns (size_t)(-2).
+       The AIX 5.1 implementation returns (size_t)(-1).
+       glibc's implementation returns 0.  */
+    ASSERT (ret == (size_t)(-2) || ret == (size_t)(-1) || ret == 0);
+    ASSERT (mbsinit (&state));
+  }
+
+  /* Test NUL byte input.  */
+  {
+    memset (&state, '\0', sizeof (mbstate_t));
+    wc = (wchar_t) 0xBADFACE;
+    ret = mbrtowc (&wc, "", 1, &state);
+    ASSERT (ret == 0);
+    ASSERT (wc == 0);
+    ASSERT (mbsinit (&state));
+    ret = mbrtowc (NULL, "", 1, &state);
+    ASSERT (ret == 0);
+    ASSERT (mbsinit (&state));
+  }
+
+  /* Test single-byte input.  */
+  {
+    int c;
+    char buf[1];
+
+    memset (&state, '\0', sizeof (mbstate_t));
+    for (c = 0; c < 0x100; c++)
+      switch (c)
+        {
+        case '\t': case '\v': case '\f':
+        case ' ': case '!': case '"': case '#': case '%':
+        case '&': case '\'': case '(': case ')': case '*':
+        case '+': case ',': case '-': case '.': case '/':
+        case '0': case '1': case '2': case '3': case '4':
+        case '5': case '6': case '7': case '8': case '9':
+        case ':': case ';': case '<': case '=': case '>':
+        case '?':
+        case 'A': case 'B': case 'C': case 'D': case 'E':
+        case 'F': case 'G': case 'H': case 'I': case 'J':
+        case 'K': case 'L': case 'M': case 'N': case 'O':
+        case 'P': case 'Q': case 'R': case 'S': case 'T':
+        case 'U': case 'V': case 'W': case 'X': case 'Y':
+        case 'Z':
+        case '[': case '\\': case ']': case '^': case '_':
+        case 'a': case 'b': case 'c': case 'd': case 'e':
+        case 'f': case 'g': case 'h': case 'i': case 'j':
+        case 'k': case 'l': case 'm': case 'n': case 'o':
+        case 'p': case 'q': case 'r': case 's': case 't':
+        case 'u': case 'v': case 'w': case 'x': case 'y':
+        case 'z': case '{': case '|': case '}': case '~':
+          /* c is in the ISO C "basic character set".  */
+          buf[0] = c;
+          wc = (wchar_t) 0xBADFACE;
+          ret = mbrtowc (&wc, buf, 1, &state);
+          ASSERT (ret == 1);
+          ASSERT (wc == c);
+          ASSERT (mbsinit (&state));
+          ret = mbrtowc (NULL, buf, 1, &state);
+          ASSERT (ret == 1);
+          ASSERT (mbsinit (&state));
+          break;
+        }
+  }
+
+  /* Test special calling convention, passing a NULL pointer.  */
+  {
+    memset (&state, '\0', sizeof (mbstate_t));
+    wc = (wchar_t) 0xBADFACE;
+    ret = mbrtowc (&wc, NULL, 5, &state);
+    ASSERT (ret == 0);
+    ASSERT (wc == (wchar_t) 0xBADFACE);
+    ASSERT (mbsinit (&state));
+  }
+
+  switch (codepage)
+    {
+    case 1252:
+      /* Locale encoding is CP1252, an extension of ISO-8859-1.  */
+      {
+        char input[] = "B\374\337er"; /* "Büßer" */
+        memset (&state, '\0', sizeof (mbstate_t));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 'B');
+        ASSERT (mbsinit (&state));
+        input[0] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 1, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wctob (wc) == (unsigned char) '\374');
+        ASSERT (wc == 0x00FC);
+        ASSERT (mbsinit (&state));
+        input[1] = '\0';
+
+        /* Test support of NULL first argument.  */
+        ret = mbrtowc (NULL, input + 2, 3, &state);
+        ASSERT (ret == 1);
+        ASSERT (mbsinit (&state));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 2, 3, &state);
+        ASSERT (ret == 1);
+        ASSERT (wctob (wc) == (unsigned char) '\337');
+        ASSERT (wc == 0x00DF);
+        ASSERT (mbsinit (&state));
+        input[2] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 3, 2, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 'e');
+        ASSERT (mbsinit (&state));
+        input[3] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 4, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 'r');
+        ASSERT (mbsinit (&state));
+      }
+      return 0;
+
+    case 1256:
+      /* Locale encoding is CP1256, not the same as ISO-8859-6.  */
+      {
+        char input[] = "x\302\341\346y"; /* "xآلوy" */
+        memset (&state, '\0', sizeof (mbstate_t));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 'x');
+        ASSERT (mbsinit (&state));
+        input[0] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 1, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wctob (wc) == (unsigned char) '\302');
+        ASSERT (wc == 0x0622);
+        ASSERT (mbsinit (&state));
+        input[1] = '\0';
+
+        /* Test support of NULL first argument.  */
+        ret = mbrtowc (NULL, input + 2, 3, &state);
+        ASSERT (ret == 1);
+        ASSERT (mbsinit (&state));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 2, 3, &state);
+        ASSERT (ret == 1);
+        ASSERT (wctob (wc) == (unsigned char) '\341');
+        ASSERT (wc == 0x0644);
+        ASSERT (mbsinit (&state));
+        input[2] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 3, 2, &state);
+        ASSERT (ret == 1);
+        ASSERT (wctob (wc) == (unsigned char) '\346');
+        ASSERT (wc == 0x0648);
+        ASSERT (mbsinit (&state));
+        input[3] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 4, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 'y');
+        ASSERT (mbsinit (&state));
+      }
+      return 0;
+
+    case 932:
+      /* Locale encoding is CP932, similar to Shift_JIS.  */
+      {
+        char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */
+        memset (&state, '\0', sizeof (mbstate_t));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == '<');
+        ASSERT (mbsinit (&state));
+        input[0] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 1, 2, &state);
+        ASSERT (ret == 2);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x65E5);
+        ASSERT (mbsinit (&state));
+        input[1] = '\0';
+        input[2] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 3, 1, &state);
+        ASSERT (ret == (size_t)(-2));
+        ASSERT (wc == (wchar_t) 0xBADFACE);
+        ASSERT (!mbsinit (&state));
+        input[3] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 4, 4, &state);
+        ASSERT (ret == 1);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x672C);
+        ASSERT (mbsinit (&state));
+        input[4] = '\0';
+
+        /* Test support of NULL first argument.  */
+        ret = mbrtowc (NULL, input + 5, 3, &state);
+        ASSERT (ret == 2);
+        ASSERT (mbsinit (&state));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 5, 3, &state);
+        ASSERT (ret == 2);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x8A9E);
+        ASSERT (mbsinit (&state));
+        input[5] = '\0';
+        input[6] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 7, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == '>');
+        ASSERT (mbsinit (&state));
+
+        /* Test some invalid input.  */
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+      }
+      return 0;
+
+    case 950:
+      /* Locale encoding is CP950, similar to Big5.  */
+      {
+        char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */
+        memset (&state, '\0', sizeof (mbstate_t));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == '<');
+        ASSERT (mbsinit (&state));
+        input[0] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 1, 2, &state);
+        ASSERT (ret == 2);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x65E5);
+        ASSERT (mbsinit (&state));
+        input[1] = '\0';
+        input[2] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 3, 1, &state);
+        ASSERT (ret == (size_t)(-2));
+        ASSERT (wc == (wchar_t) 0xBADFACE);
+        ASSERT (!mbsinit (&state));
+        input[3] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 4, 4, &state);
+        ASSERT (ret == 1);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x672C);
+        ASSERT (mbsinit (&state));
+        input[4] = '\0';
+
+        /* Test support of NULL first argument.  */
+        ret = mbrtowc (NULL, input + 5, 3, &state);
+        ASSERT (ret == 2);
+        ASSERT (mbsinit (&state));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 5, 3, &state);
+        ASSERT (ret == 2);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x8A9E);
+        ASSERT (mbsinit (&state));
+        input[5] = '\0';
+        input[6] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 7, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == '>');
+        ASSERT (mbsinit (&state));
+
+        /* Test some invalid input.  */
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+      }
+      return 0;
+
+    case 936:
+      /* Locale encoding is CP936 = GBK, an extension of GB2312.  */
+      {
+        char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */
+        memset (&state, '\0', sizeof (mbstate_t));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == '<');
+        ASSERT (mbsinit (&state));
+        input[0] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 1, 2, &state);
+        ASSERT (ret == 2);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x65E5);
+        ASSERT (mbsinit (&state));
+        input[1] = '\0';
+        input[2] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 3, 1, &state);
+        ASSERT (ret == (size_t)(-2));
+        ASSERT (wc == (wchar_t) 0xBADFACE);
+        ASSERT (!mbsinit (&state));
+        input[3] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 4, 4, &state);
+        ASSERT (ret == 1);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x672C);
+        ASSERT (mbsinit (&state));
+        input[4] = '\0';
+
+        /* Test support of NULL first argument.  */
+        ret = mbrtowc (NULL, input + 5, 3, &state);
+        ASSERT (ret == 2);
+        ASSERT (mbsinit (&state));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 5, 3, &state);
+        ASSERT (ret == 2);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x8A9E);
+        ASSERT (mbsinit (&state));
+        input[5] = '\0';
+        input[6] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 7, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == '>');
+        ASSERT (mbsinit (&state));
+
+        /* Test some invalid input.  */
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+      }
+      return 0;
+
+    case 54936:
+      /* Locale encoding is CP54936 = GB18030.  */
+      {
+        char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
+        memset (&state, '\0', sizeof (mbstate_t));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 'B');
+        ASSERT (mbsinit (&state));
+        input[0] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 1, 1, &state);
+        ASSERT (ret == (size_t)(-2));
+        ASSERT (wc == (wchar_t) 0xBADFACE);
+        ASSERT (!mbsinit (&state));
+        input[1] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 2, 7, &state);
+        ASSERT (ret == 1);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x00FC);
+        ASSERT (mbsinit (&state));
+        input[2] = '\0';
+
+        /* Test support of NULL first argument.  */
+        ret = mbrtowc (NULL, input + 3, 6, &state);
+        ASSERT (ret == 4);
+        ASSERT (mbsinit (&state));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 3, 6, &state);
+        ASSERT (ret == 4);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x00DF);
+        ASSERT (mbsinit (&state));
+        input[3] = '\0';
+        input[4] = '\0';
+        input[5] = '\0';
+        input[6] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 7, 2, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 'e');
+        ASSERT (mbsinit (&state));
+        input[5] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 8, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 'r');
+        ASSERT (mbsinit (&state));
+
+        /* Test some invalid input.  */
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\201\045", 2, &state); /* 0x81 0x25 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\201\060\377", 3, &state); /* 0x81 0x30 0xFF */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\201\060\377\064", 4, &state); /* 0x81 0x30 0xFF 0x34 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\201\060\211\072", 4, &state); /* 0x81 0x30 0x89 0x3A */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+      }
+      return 0;
+
+    case 65001:
+      /* Locale encoding is CP65001 = UTF-8.  */
+      {
+        char input[] = "B\303\274\303\237er"; /* "Büßer" */
+        memset (&state, '\0', sizeof (mbstate_t));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 'B');
+        ASSERT (mbsinit (&state));
+        input[0] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 1, 1, &state);
+        ASSERT (ret == (size_t)(-2));
+        ASSERT (wc == (wchar_t) 0xBADFACE);
+        ASSERT (!mbsinit (&state));
+        input[1] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 2, 5, &state);
+        ASSERT (ret == 1);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x00FC);
+        ASSERT (mbsinit (&state));
+        input[2] = '\0';
+
+        /* Test support of NULL first argument.  */
+        ret = mbrtowc (NULL, input + 3, 4, &state);
+        ASSERT (ret == 2);
+        ASSERT (mbsinit (&state));
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 3, 4, &state);
+        ASSERT (ret == 2);
+        ASSERT (wctob (wc) == EOF);
+        ASSERT (wc == 0x00DF);
+        ASSERT (mbsinit (&state));
+        input[3] = '\0';
+        input[4] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 5, 2, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 'e');
+        ASSERT (mbsinit (&state));
+        input[5] = '\0';
+
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, input + 6, 1, &state);
+        ASSERT (ret == 1);
+        ASSERT (wc == 'r');
+        ASSERT (mbsinit (&state));
+
+        /* Test some invalid input.  */
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\303\300", 2, &state); /* 0xC3 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\343\300", 2, &state); /* 0xE3 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\343\300\200", 3, &state); /* 0xE3 0xC0 0x80 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\343\200\300", 3, &state); /* 0xE3 0x80 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\363\300", 2, &state); /* 0xF3 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\363\300\200\200", 4, &state); /* 0xF3 0xC0 0x80 0x80 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\363\200\300", 3, &state); /* 0xF3 0x80 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\363\200\300\200", 4, &state); /* 0xF3 0x80 0xC0 0x80 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+
+        memset (&state, '\0', sizeof (mbstate_t));
+        wc = (wchar_t) 0xBADFACE;
+        ret = mbrtowc (&wc, "\363\200\200\300", 4, &state); /* 0xF3 0x80 0x80 0xC0 */
+        ASSERT (ret == (size_t)-1);
+        ASSERT (errno == EILSEQ);
+      }
+      return 0;
+
+    default:
+      return 1;
+    }
+}
+
+int
+main (int argc, char *argv[])
+{
+  int codepage = atoi (argv[argc - 1]);
+  int result;
+  int i;
+
+  result = 77;
+  for (i = 1; i < argc - 1; i++)
+    {
+      int ret = test_one_locale (argv[i], codepage);
+
+      if (ret != 77)
+        result = ret;
+    }
+
+  if (result == 77)
+    {
+      fprintf (stderr, "Skipping test: found no locale with codepage %d\n",
+               codepage);
+    }
+  return result;
+}
+
+#else
+
+int
+main (int argc, char *argv[])
+{
+  fputs ("Skipping test: not a native Windows system\n", stderr);
+  return 77;
+}
+
+#endif
index 5477677..e8cdea0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion of multibyte character to wide character.
-   Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
@@ -46,10 +46,7 @@ main (int argc, char *argv[])
     memset (&state, '\0', sizeof (mbstate_t));
     wc = (wchar_t) 0xBADFACE;
     ret = mbrtowc (&wc, "x", 0, &state);
-    /* gnulib's implementation returns (size_t)(-2).
-       The AIX 5.1 implementation returns (size_t)(-1).
-       glibc's implementation returns 0.  */
-    ASSERT (ret == (size_t)(-2) || ret == (size_t)(-1) || ret == 0);
+    ASSERT (ret == (size_t)(-2));
     ASSERT (mbsinit (&state));
   }
 
@@ -143,6 +140,11 @@ main (int argc, char *argv[])
           ASSERT (mbsinit (&state));
           input[1] = '\0';
 
+          /* Test support of NULL first argument.  */
+          ret = mbrtowc (NULL, input + 2, 3, &state);
+          ASSERT (ret == 1);
+          ASSERT (mbsinit (&state));
+
           wc = (wchar_t) 0xBADFACE;
           ret = mbrtowc (&wc, input + 2, 3, &state);
           ASSERT (ret == 1);
@@ -192,6 +194,11 @@ main (int argc, char *argv[])
           ASSERT (mbsinit (&state));
           input[2] = '\0';
 
+          /* Test support of NULL first argument.  */
+          ret = mbrtowc (NULL, input + 3, 4, &state);
+          ASSERT (ret == 2);
+          ASSERT (mbsinit (&state));
+
           wc = (wchar_t) 0xBADFACE;
           ret = mbrtowc (&wc, input + 3, 4, &state);
           ASSERT (ret == 2);
@@ -250,6 +257,11 @@ main (int argc, char *argv[])
           ASSERT (mbsinit (&state));
           input[4] = '\0';
 
+          /* Test support of NULL first argument.  */
+          ret = mbrtowc (NULL, input + 5, 3, &state);
+          ASSERT (ret == 2);
+          ASSERT (mbsinit (&state));
+
           wc = (wchar_t) 0xBADFACE;
           ret = mbrtowc (&wc, input + 5, 3, &state);
           ASSERT (ret == 2);
@@ -293,6 +305,11 @@ main (int argc, char *argv[])
           ASSERT (mbsinit (&state));
           input[2] = '\0';
 
+          /* Test support of NULL first argument.  */
+          ret = mbrtowc (NULL, input + 3, 6, &state);
+          ASSERT (ret == 4);
+          ASSERT (mbsinit (&state));
+
           wc = (wchar_t) 0xBADFACE;
           ret = mbrtowc (&wc, input + 3, 6, &state);
           ASSERT (ret == 4);
index 4ca0fc3..56548db 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test for initial conversion state.
-   Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
@@ -32,6 +32,8 @@ main (int argc, char *argv[])
 {
   static mbstate_t state;
 
+  ASSERT (mbsinit (NULL));
+
   ASSERT (mbsinit (&state));
 
   if (argc > 1)
index a801614..223c8e7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2010 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2014 Free Software Foundation, Inc.
  * Written by Eric Blake and Bruno Haible
  *
  * This program is free software: you can redistribute it and/or modify
@@ -57,6 +57,7 @@ main (void)
 
   ASSERT (MEMCHR (input + 1, 'a', n - 1) == input + n - 1);
   ASSERT (MEMCHR (input + 1, 'e', n - 1) == input + n - 2);
+  ASSERT (MEMCHR (input + 1, 0x789abc00 | 'e', n - 1) == input + n - 2);
 
   ASSERT (MEMCHR (input, 'f', n) == NULL);
   ASSERT (MEMCHR (input, '\0', n) == NULL);
@@ -87,25 +88,37 @@ main (void)
 
   /* Check that memchr() does not read past the first occurrence of the
      byte being searched.  See the Austin Group's clarification
-     <http://www.opengroup.org/austin/docs/austin_454.txt>.  */
+     <http://www.opengroup.org/austin/docs/austin_454.txt>.
+     Test both '\0' and something else, since some implementations
+     special-case searching for NUL.
+  */
   {
     char *page_boundary = (char *) zerosize_ptr ();
+    /* Too small, and we miss cache line boundary tests; too large,
+       and the test takes cubically longer to complete.  */
+    int limit = 257;
 
     if (page_boundary != NULL)
       {
-        for (n = 1; n <= 500; n++)
+        for (n = 1; n <= limit; n++)
           {
             char *mem = page_boundary - n;
             memset (mem, 'X', n);
             ASSERT (MEMCHR (mem, 'U', n) == NULL);
+            ASSERT (MEMCHR (mem, 0, n) == NULL);
 
             {
               size_t i;
+              size_t k;
 
               for (i = 0; i < n; i++)
                 {
                   mem[i] = 'U';
-                  ASSERT (MEMCHR (mem, 'U', 4000) == mem + i);
+                  for (k = i + 1; k < n + limit; k++)
+                    ASSERT (MEMCHR (mem, 'U', k) == mem + i);
+                  mem[i] = 0;
+                  for (k = i + 1; k < n + limit; k++)
+                    ASSERT (MEMCHR (mem, 0, k) == mem + i);
                   mem[i] = 'X';
                 }
             }
index 13e1c30..57d57b7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of splitting a double into fraction and mantissa.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 6f7e4f7..95801da 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of splitting a 'long double' into fraction and mantissa.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index de589c1..548e4fb 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of setenv.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
diff --git a/tests/test-setlocale1.c b/tests/test-setlocale1.c
new file mode 100644 (file)
index 0000000..0434d7b
--- /dev/null
@@ -0,0 +1,59 @@
+/* Test of setting the current locale.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <locale.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (setlocale, char *, (int, const char *));
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "macros.h"
+
+int
+main (int argc, char *argv[])
+{
+  char *name1;
+  char *name2;
+
+  /* Try to set the locale by implicitly looking at the LC_ALL environment
+     variable.
+     configure should already have checked that the locale is supported.  */
+  if (setlocale (LC_ALL, "") == NULL)
+    return 1;
+
+  name1 = strdup (setlocale (LC_ALL, NULL));
+
+  /* Reset the locale.  */
+  if (setlocale (LC_ALL, "C") == NULL)
+    return 1;
+
+  /* Try to set the locale by explicitly looking at the LC_ALL environment
+     variable.
+     configure should already have checked that the locale is supported.  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL)
+    return 1;
+
+  name2 = strdup (setlocale (LC_ALL, NULL));
+
+  /* Test that the two results are the same.  */
+  ASSERT (strcmp (name1, name2) == 0);
+
+  return 0;
+}
diff --git a/tests/test-setlocale1.sh b/tests/test-setlocale1.sh
new file mode 100755 (executable)
index 0000000..59a0532
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+: ${LOCALE_FR=fr_FR}
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+: ${LOCALE_JA=ja_JP}
+: ${LOCALE_ZH_CN=zh_CN.GB18030}
+
+if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none \
+   && test $LOCALE_JA = none && test $LOCALE_ZH_CN = none; then
+  if test -f /usr/bin/localedef; then
+    echo "Skipping test: no locale for testing is installed"
+  else
+    echo "Skipping test: no locale for testing is supported"
+  fi
+  exit 77
+fi
+
+if test $LOCALE_FR != none; then
+  LC_ALL=$LOCALE_FR      ./test-setlocale1${EXEEXT} || exit 1
+fi
+
+if test $LOCALE_FR_UTF8 != none; then
+  LC_ALL=$LOCALE_FR_UTF8 ./test-setlocale1${EXEEXT} || exit 1
+fi
+
+if test $LOCALE_JA != none; then
+  LC_ALL=$LOCALE_JA      ./test-setlocale1${EXEEXT} || exit 1
+fi
+
+if test $LOCALE_ZH_CN != none; then
+  LC_ALL=$LOCALE_ZH_CN   ./test-setlocale1${EXEEXT} || exit 1
+fi
+
+exit 0
diff --git a/tests/test-setlocale2.c b/tests/test-setlocale2.c
new file mode 100644 (file)
index 0000000..2f52fe0
--- /dev/null
@@ -0,0 +1,55 @@
+/* Test of setting the current locale.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <locale.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main ()
+{
+  /* Try to set the locale by implicitly looking at the LC_ALL environment
+     variable.  */
+  if (setlocale (LC_ALL, "") != NULL)
+    /* It was successful.  Check whether LC_CTYPE is non-trivial.  */
+    if (strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+      {
+        fprintf (stderr, "setlocale did not fail for implicit %s\n",
+                 getenv ("LC_ALL"));
+        return 1;
+      }
+
+  /* Reset the locale.  */
+  if (setlocale (LC_ALL, "C") == NULL)
+    return 1;
+
+  /* Try to set the locale by explicitly looking at the LC_ALL environment
+     variable.  */
+  if (setlocale (LC_ALL, getenv ("LC_ALL")) != NULL)
+    /* It was successful.  Check whether LC_CTYPE is non-trivial.  */
+    if (strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+      {
+        fprintf (stderr, "setlocale did not fail for explicit %s\n",
+                 getenv ("LC_ALL"));
+        return 1;
+      }
+
+  return 0;
+}
diff --git a/tests/test-setlocale2.sh b/tests/test-setlocale2.sh
new file mode 100755 (executable)
index 0000000..904e147
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+# Test locale names with likely unsupported encoding in Unix syntax.
+for name in ar_SA.ISO-8859-1 fr_FR.CP1251 zh_TW.GB18030 zh_CN.BIG5; do
+  env LC_ALL=$name ./test-setlocale2${EXEEXT} 1 || exit 1
+done
+
+# Test locale names with likely unsupported encoding in native Windows syntax.
+for name in "Arabic_Saudi Arabia.1252" "Arabic_Saudi Arabia.65001" \
+            French_France.65001 Japanese_Japan.65001 Turkish_Turkey.65001 \
+            Chinese_Taiwan.65001 Chinese_China.54936 Chinese_China.65001; do
+  # Here we use 'env' to set the LC_ALL environment variable, because on
+  # Solaris 11 2011-11, the /bin/sh refuses to do it for Turkish_Turkey.65001.
+  env LC_ALL="$name" ./test-setlocale2${EXEEXT} 1 || exit 1
+done
+
+exit 0
index 9581190..584bf4f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of signbit() substitute.
-   Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
 #include <float.h>
 #include <limits.h>
 
+#include "minus-zero.h"
+#include "infinity.h"
 #include "macros.h"
 
 float zerof = 0.0f;
 double zerod = 0.0;
 long double zerol = 0.0L;
 
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
-   So we use -zerof instead.  */
-
-/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
-   So we use -zerod instead.  */
-
-/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
-   So we use minus_zerol instead.
-   IRIX cc can't put -0.0L into .data, but can compute at runtime.
-   Note that the expression -LDBL_MIN * LDBL_MIN does not work on other
-   platforms, such as when cross-compiling to PowerPC on MacOS X 10.5.  */
-#if defined __hpux || defined __sgi
-static long double
-compute_minus_zerol (void)
-{
-  return -LDBL_MIN * LDBL_MIN;
-}
-# define minus_zerol compute_minus_zerol ()
-#else
-long double minus_zerol = -0.0L;
-#endif
-
 static void
 test_signbitf ()
 {
@@ -68,13 +48,13 @@ test_signbitf ()
   ASSERT (signbit (-2.718e-30f));
   /* Zeros.  */
   ASSERT (!signbit (0.0f));
-  if (1.0f / -zerof < 0)
-    ASSERT (signbit (-zerof));
+  if (1.0f / minus_zerof < 0)
+    ASSERT (signbit (minus_zerof));
   else
-    ASSERT (!signbit (-zerof));
+    ASSERT (!signbit (minus_zerof));
   /* Infinite values.  */
-  ASSERT (!signbit (1.0f / 0.0f));
-  ASSERT (signbit (-1.0f / 0.0f));
+  ASSERT (!signbit (Infinityf ()));
+  ASSERT (signbit (- Infinityf ()));
   /* Quiet NaN.  */
   (void) signbit (zerof / zerof);
 #if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
@@ -113,13 +93,13 @@ test_signbitd ()
   ASSERT (signbit (-2.718e-30));
   /* Zeros.  */
   ASSERT (!signbit (0.0));
-  if (1.0 / -zerod < 0)
-    ASSERT (signbit (-zerod));
+  if (1.0 / minus_zerod < 0)
+    ASSERT (signbit (minus_zerod));
   else
-    ASSERT (!signbit (-zerod));
+    ASSERT (!signbit (minus_zerod));
   /* Infinite values.  */
-  ASSERT (!signbit (1.0 / 0.0));
-  ASSERT (signbit (-1.0 / 0.0));
+  ASSERT (!signbit (Infinityd ()));
+  ASSERT (signbit (- Infinityd ()));
   /* Quiet NaN.  */
   (void) signbit (zerod / zerod);
 #if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
@@ -161,8 +141,8 @@ test_signbitl ()
   else
     ASSERT (!signbit (minus_zerol));
   /* Infinite values.  */
-  ASSERT (!signbit (1.0L / 0.0L));
-  ASSERT (signbit (-1.0L / 0.0L));
+  ASSERT (!signbit (Infinityl ()));
+  ASSERT (signbit (- Infinityl ()));
   /* Quiet NaN.  */
   (void) signbit (zerol / zerol);
 #if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
@@ -171,6 +151,16 @@ test_signbitl ()
     #define NWORDS \
       ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
     typedef union { long double value; unsigned int word[NWORDS]; } memory_long_double;
+
+#if defined __powerpc__ && LDBL_MANT_DIG == 106
+    /* This is PowerPC "double double", a pair of two doubles.  Inf and Nan are
+       represented as the corresponding 64-bit IEEE values in the first double;
+       the second is ignored.  Manipulate only the first double.  */
+    #undef NWORDS
+    #define NWORDS \
+      ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+#endif
+
     memory_long_double m;
     m.value = zerol / zerol;
 # if LDBL_EXPBIT0_BIT > 0
index fcb534d..efa8324 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdbool.h> substitute.
-   Copyright (C) 2002-2007, 2009-2010 Free Software Foundation, Inc.
+   Copyright (C) 2002-2007, 2009-2014 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
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
 
+/* We want this test to succeed even when using gcc's -Werror; but to
+   do that requires a pragma that didn't exist before 4.3.0.  */
+#ifndef __GNUC__
+# define ADDRESS_CHECK_OKAY
+#elif __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
+/* No way to silence -Waddress.  */
+#else
+# pragma GCC diagnostic ignored "-Waddress"
+# define ADDRESS_CHECK_OKAY
+#endif
+
 #include <config.h>
 
 #include <stdbool.h>
  "error: __bool_true_false_are_defined is not defined"
 #endif
 
-#if 0 /* Cannot be guaranteed with gnulib's <stdbool.h>.  */
+/* Several tests cannot be guaranteed with gnulib's <stdbool.h>, at
+   least, not for all compilers and compiler options.  */
+#if HAVE_STDBOOL_H || 3 <= __GNUC__
 struct s { _Bool s: 1; _Bool t; } s;
 #endif
 
 char a[true == 1 ? 1 : -1];
 char b[false == 0 ? 1 : -1];
 char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-#if 0 /* Cannot be guaranteed with gnulib's <stdbool.h>, at least,
-not for all compilers.  */
+#if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above.  */
 char d[(bool) 0.5 == true ? 1 : -1];
+# ifdef ADDRESS_CHECK_OKAY /* Avoid gcc warning.  */
+/* C99 may plausibly be interpreted as not requiring support for a cast from
+   a variable's address to bool in a static initializer.  So treat it like a
+   GCC extension.  */
+#  ifdef __GNUC__
 bool e = &s;
+#  endif
+# endif
 char f[(_Bool) 0.0 == false ? 1 : -1];
 #endif
 char g[true];
 char h[sizeof (_Bool)];
-#if 0 /* See above.  */
+#if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above.  */
 char i[sizeof s.t];
 #endif
 enum { j = false, k = true, l = false * true, m = true * 256 };
 _Bool n[m];
 char o[sizeof n == m * sizeof n[0] ? 1 : -1];
 char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-#if 0 /* Cannot be guaranteed with gnulib's <stdbool.h>.  */
-#if defined __xlc__ || defined __GNUC__
- /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
-    reported by James Lemley on 2005-10-05; see
-    http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
-    This test is not quite right, since xlc is allowed to
-    reject this program, as the initializer for xlcbug is
-    not one of the forms that C requires support for.
-    However, doing the test right would require a run-time
-    test, and that would make cross-compilation harder.
-    Let us hope that IBM fixes the xlc bug, and also adds
-    support for this kind of constant expression.  In the
-    meantime, this test will reject xlc, which is OK, since
-    our stdbool.h substitute should suffice.  We also test
-    this with GCC, where it should work, to detect more
-    quickly whether someone messes up the test in the
-    future.  */
- char digs[] = "0123456789";
- int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
-#endif
-#endif
 /* Catch a bug in an HP-UX C compiler.  See
    http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
    http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
@@ -92,5 +90,29 @@ _Bool *pq = &q;
 int
 main ()
 {
-  return 0;
+  int error = 0;
+
+#if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above.  */
+# ifdef ADDRESS_CHECK_OKAY /* Avoid gcc warning.  */
+  /* A cast from a variable's address to bool is valid in expressions.  */
+  {
+    bool e1 = &s;
+    if (!e1)
+      error = 1;
+  }
+# endif
+#endif
+
+  /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
+     reported by James Lemley on 2005-10-05; see
+     http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+     This is a runtime test, since a corresponding compile-time
+     test would rely on initializer extensions.  */
+  {
+    char digs[] = "0123456789";
+    if (&(digs + 5)[-2 + (bool) 1] != &digs[4])
+      error = 1;
+  }
+
+  return error;
 }
index d047e57..d5d887e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stddef.h> substitute.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
@@ -31,6 +31,20 @@ size_t c = 2;
    per POSIX 2008.  */
 verify (sizeof NULL == sizeof (void *));
 
+/* Check that offsetof produces integer constants with correct type.  */
+struct d
+{
+  char e;
+  char f;
+};
+/* Solaris 10 has a bug where offsetof is under-parenthesized, and
+   cannot be used as an arbitrary expression.  However, since it is
+   unlikely to bite real code, we ignore that short-coming.  */
+/* verify (sizeof offsetof (struct d, e) == sizeof (size_t)); */
+verify (sizeof (offsetof (struct d, e)) == sizeof (size_t));
+verify (offsetof (struct d, e) < -1); /* Must be unsigned.  */
+verify (offsetof (struct d, f) == 1);
+
 int
 main (void)
 {
index d64057a..008b517 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdint.h> substitute.
-   Copyright (C) 2006-2010 Free Software Foundation, Inc.
+   Copyright (C) 2006-2014 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
@@ -21,8 +21,6 @@
 /* Whether to enable pedantic checks. */
 #define DO_PEDANTIC 0
 
-#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
-#define __STDC_CONSTANT_MACROS 1 /* likewise */
 #include <stdint.h>
 
 #include "verify.h"
diff --git a/tests/test-stdio.c b/tests/test-stdio.c
new file mode 100644 (file)
index 0000000..d3f0e6b
--- /dev/null
@@ -0,0 +1,43 @@
+/* Test of <stdio.h> substitute.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#include "verify.h"
+
+/* Check that the various SEEK_* macros are defined.  */
+int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET };
+
+/* Check that NULL can be passed through varargs as a pointer type,
+   per POSIX 2008.  */
+verify (sizeof NULL == sizeof (void *));
+
+/* Check that the types are all defined.  */
+fpos_t t1;
+off_t t2;
+size_t t3;
+ssize_t t4;
+va_list t5;
+
+int
+main (void)
+{
+  return 0;
+}
index 4bd8715..a2743e4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdlib.h> substitute.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
 
 #include "verify.h"
 
-int exitcode;
+/* Check that EXIT_SUCCESS is 0, per POSIX.  */
+static int exitcode = EXIT_SUCCESS;
+#if EXIT_SUCCESS
+"oops"
+#endif
+
+/* Check for GNU value (not guaranteed by POSIX, but is guaranteed by
+   gnulib).  */
+#if EXIT_FAILURE != 1
+"oops"
+#endif
 
 /* Check that NULL can be passed through varargs as a pointer type,
    per POSIX 2008.  */
 verify (sizeof NULL == sizeof (void *));
 
+#if GNULIB_TEST_SYSTEM_POSIX
+# include "test-sys_wait.h"
+#else
+# define test_sys_wait_macros() 0
+#endif
+
 int
 main (void)
 {
-  /* Check that some macros are defined and different integer constants.  */
-  switch (exitcode)
-    {
-    case EXIT_SUCCESS:
-    case EXIT_FAILURE:
-      break;
-    }
-
-  return 0;
+  if (test_sys_wait_macros ())
+    return 1;
+
+  return exitcode;
 }
index 11ab7e3..8e2ed7c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of strerror() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
@@ -12,8 +12,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Eric Blake <ebb9@byu.net>, 2007.  */
 
@@ -33,25 +32,44 @@ main (void)
 {
   char *str;
 
+  errno = 0;
   str = strerror (EACCES);
   ASSERT (str);
   ASSERT (*str);
+  ASSERT (errno == 0);
 
+  errno = 0;
   str = strerror (ETIMEDOUT);
   ASSERT (str);
   ASSERT (*str);
+  ASSERT (errno == 0);
 
+  errno = 0;
   str = strerror (EOVERFLOW);
   ASSERT (str);
   ASSERT (*str);
+  ASSERT (errno == 0);
 
+  /* POSIX requires strerror (0) to succeed.  Reject use of "Unknown
+     error", but allow "Success", "No error", or even Solaris' "Error
+     0" which are distinct patterns from true out-of-range strings.
+     http://austingroupbugs.net/view.php?id=382  */
+  errno = 0;
   str = strerror (0);
   ASSERT (str);
   ASSERT (*str);
-
+  ASSERT (errno == 0);
+  ASSERT (strstr (str, "nknown") == NULL);
+  ASSERT (strstr (str, "ndefined") == NULL);
+
+  /* POSIX requires strerror to produce a non-NULL result for all
+     inputs; as an extension, we also guarantee a non-empty result.
+     Reporting EINVAL is optional.  */
+  errno = 0;
   str = strerror (-3);
   ASSERT (str);
   ASSERT (*str);
+  ASSERT (errno == 0 || errno == EINVAL);
 
   return 0;
 }
index 679bb0e..4c6b1e1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of character set conversion with error handling.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
@@ -496,6 +496,9 @@ main ()
           free (result);
         }
 
+      /* Disabled on NetBSD, because NetBSD 5.0 iconv() is buggy: it converts
+         the input "+2D/YQNhB" to U+1FED8 U+3FD8 U+40D8.  */
+#  if !(defined __NetBSD__ && !defined _LIBICONV_VERSION)
       /* Test conversion from UTF-7 to UTF-8 with EILSEQ.  */
       for (h = 0; h < SIZEOF (handlers); h++)
         {
@@ -543,6 +546,7 @@ main ()
               break;
             }
         }
+#  endif
 # endif
     }
 
index 1da674e..ecfa79e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of character set conversion with error handling and autodetection.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
@@ -401,7 +401,7 @@ main ()
     }
 # endif
 
-# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+# if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) && !defined __UCLIBC__) || _LIBICONV_VERSION >= 0x0105
   /* Test conversion from UTF-8 to ISO-8859-1 with transliteration.  */
   for (h = 0; h < SIZEOF (handlers); h++)
     {
@@ -577,7 +577,7 @@ main ()
     }
 # endif
 
-# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 || _LIBICONV_VERSION >= 0x0105
+# if (((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2) && !defined __UCLIBC__) || _LIBICONV_VERSION >= 0x0105
   /* Test conversion from UTF-8 to ISO-8859-1 with transliteration.  */
   for (h = 0; h < SIZEOF (handlers); h++)
     {
index 019a817..d890c8b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <string.h> substitute.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
index 49cf396..1262b98 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of strncat() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
diff --git a/tests/test-strstr.c b/tests/test-strstr.c
new file mode 100644 (file)
index 0000000..d580cad
--- /dev/null
@@ -0,0 +1,278 @@
+/*
+ * Copyright (C) 2004, 2007-2014 Free Software Foundation, Inc.
+ * Written by Bruno Haible and Eric Blake
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <string.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (strstr, char *, (char const *, char const *));
+
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "zerosize-ptr.h"
+#include "macros.h"
+
+int
+main (int argc, char *argv[])
+{
+#if HAVE_DECL_ALARM
+  /* Declare failure if test takes too long, by using default abort
+     caused by SIGALRM.  All known platforms that lack alarm also have
+     a quadratic strstr, and the replacement strstr is known to not
+     take too long.  */
+  int alarm_value = 50;
+  signal (SIGALRM, SIG_DFL);
+  alarm (alarm_value);
+#endif
+
+  {
+    const char input[] = "foo";
+    const char *result = strstr (input, "");
+    ASSERT (result == input);
+  }
+
+  {
+    const char input[] = "foo";
+    const char *result = strstr (input, "o");
+    ASSERT (result == input + 1);
+  }
+
+  {
+    /* On some platforms, the memchr() functions reads past the first
+       occurrence of the byte to be searched, leading to an out-of-bounds
+       read access for strstr().
+       See <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=521737>.
+       This is a bug in memchr(), see the Austin Group's clarification
+       <http://www.opengroup.org/austin/docs/austin_454.txt>.  */
+    const char *fix = "aBaaaaaaaaaaax";
+    char *page_boundary = (char *) zerosize_ptr ();
+    size_t len = strlen (fix) + 1;
+    char *input = page_boundary ? page_boundary - len : malloc (len);
+    const char *result;
+
+    strcpy (input, fix);
+    result = strstr (input, "B1x");
+    ASSERT (result == NULL);
+    if (!page_boundary)
+      free (input);
+  }
+
+  {
+    const char input[] = "ABC ABCDAB ABCDABCDABDE";
+    const char *result = strstr (input, "ABCDABD");
+    ASSERT (result == input + 15);
+  }
+
+  {
+    const char input[] = "ABC ABCDAB ABCDABCDABDE";
+    const char *result = strstr (input, "ABCDABE");
+    ASSERT (result == NULL);
+  }
+
+  {
+    const char input[] = "ABC ABCDAB ABCDABCDABDE";
+    const char *result = strstr (input, "ABCDABCD");
+    ASSERT (result == input + 11);
+  }
+
+  /* Check that a long periodic needle does not cause false positives.  */
+  {
+    const char input[] = "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_A7_20_EF_BF_BD";
+    const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
+    const char *result = strstr (input, need);
+    ASSERT (result == NULL);
+  }
+  {
+    const char input[] = "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD"
+                         "_C3_A7_20_EF_BF_BD_DA_B5_C2_A6_20"
+                         "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
+    const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
+    const char *result = strstr (input, need);
+    ASSERT (result == input + 115);
+  }
+
+  /* Check that a very long haystack is handled quickly if the needle is
+     short and occurs near the beginning.  */
+  {
+    size_t repeat = 10000;
+    size_t m = 1000000;
+    const char *needle =
+      "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+      "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
+    char *haystack = (char *) malloc (m + 1);
+    if (haystack != NULL)
+      {
+        memset (haystack, 'A', m);
+        haystack[0] = 'B';
+        haystack[m] = '\0';
+
+        for (; repeat > 0; repeat--)
+          {
+            ASSERT (strstr (haystack, needle) == haystack + 1);
+          }
+
+        free (haystack);
+      }
+  }
+
+  /* Check that a very long needle is discarded quickly if the haystack is
+     short.  */
+  {
+    size_t repeat = 10000;
+    size_t m = 1000000;
+    const char *haystack =
+      "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+      "ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB";
+    char *needle = (char *) malloc (m + 1);
+    if (needle != NULL)
+      {
+        memset (needle, 'A', m);
+        needle[m] = '\0';
+
+        for (; repeat > 0; repeat--)
+          {
+            ASSERT (strstr (haystack, needle) == NULL);
+          }
+
+        free (needle);
+      }
+  }
+
+  /* Check that the asymptotic worst-case complexity is not quadratic.  */
+  {
+    size_t m = 1000000;
+    char *haystack = (char *) malloc (2 * m + 2);
+    char *needle = (char *) malloc (m + 2);
+    if (haystack != NULL && needle != NULL)
+      {
+        const char *result;
+
+        memset (haystack, 'A', 2 * m);
+        haystack[2 * m] = 'B';
+        haystack[2 * m + 1] = '\0';
+
+        memset (needle, 'A', m);
+        needle[m] = 'B';
+        needle[m + 1] = '\0';
+
+        result = strstr (haystack, needle);
+        ASSERT (result == haystack + m);
+      }
+    free (needle);
+    free (haystack);
+  }
+
+  /* Sublinear speed is only possible in memmem; strstr must examine
+     every character of haystack to find its length.  */
+
+
+  {
+    /* Ensure that with a barely periodic "short" needle, strstr's
+       search does not mistakenly skip just past the match point.
+       This use of strstr would mistakenly return NULL before
+       gnulib v0.0-4927.  */
+    const char *haystack =
+      "\n"
+      "with_build_libsubdir\n"
+      "with_local_prefix\n"
+      "with_gxx_include_dir\n"
+      "with_cpp_install_dir\n"
+      "enable_generated_files_in_srcdir\n"
+      "with_gnu_ld\n"
+      "with_ld\n"
+      "with_demangler_in_ld\n"
+      "with_gnu_as\n"
+      "with_as\n"
+      "enable_largefile\n"
+      "enable_werror_always\n"
+      "enable_checking\n"
+      "enable_coverage\n"
+      "enable_gather_detailed_mem_stats\n"
+      "enable_build_with_cxx\n"
+      "with_stabs\n"
+      "enable_multilib\n"
+      "enable___cxa_atexit\n"
+      "enable_decimal_float\n"
+      "enable_fixed_point\n"
+      "enable_threads\n"
+      "enable_tls\n"
+      "enable_objc_gc\n"
+      "with_dwarf2\n"
+      "enable_shared\n"
+      "with_build_sysroot\n"
+      "with_sysroot\n"
+      "with_specs\n"
+      "with_pkgversion\n"
+      "with_bugurl\n"
+      "enable_languages\n"
+      "with_multilib_list\n";
+    const char *needle = "\n"
+      "with_gnu_ld\n";
+    const char* p = strstr (haystack, needle);
+    ASSERT (p - haystack == 114);
+  }
+
+  {
+    /* Same bug, shorter trigger.  */
+    const char *haystack = "..wi.d.";
+    const char *needle = ".d.";
+    const char* p = strstr (haystack, needle);
+    ASSERT (p - haystack == 4);
+  }
+
+  {
+    /* Like the above, but trigger the flaw in two_way_long_needle
+       by using a needle of length LONG_NEEDLE_THRESHOLD (32) or greater.
+       Rather than trying to find the right alignment manually, I've
+       arbitrarily chosen the following needle and template for the
+       haystack, and ensure that for each placement of the needle in
+       that haystack, strstr finds it.  */
+    const char *needle = "\nwith_gnu_ld-extend-to-len-32-b\n";
+    const char *h =
+      "\n"
+      "with_build_libsubdir\n"
+      "with_local_prefix\n"
+      "with_gxx_include_dir\n"
+      "with_cpp_install_dir\n"
+      "with_e_\n"
+      "..............................\n"
+      "with_FGHIJKLMNOPQRSTUVWXYZ\n"
+      "with_567890123456789\n"
+      "with_multilib_list\n";
+    size_t h_len = strlen (h);
+    char *haystack = malloc (h_len + 1);
+    size_t i;
+    ASSERT (haystack);
+    for (i = 0; i < h_len - strlen (needle); i++)
+      {
+        const char *p;
+        memcpy (haystack, h, h_len + 1);
+        memcpy (haystack + i, needle, strlen (needle) + 1);
+        p = strstr (haystack, needle);
+        ASSERT (p);
+        ASSERT (p - haystack == i);
+      }
+  }
+
+  return 0;
+}
diff --git a/tests/test-sys_types.c b/tests/test-sys_types.c
new file mode 100644 (file)
index 0000000..ddcb6d2
--- /dev/null
@@ -0,0 +1,34 @@
+/* Test of <sys/types.h> substitute.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011.  */
+
+#include <config.h>
+
+#include <sys/types.h>
+
+/* Check that the types are all defined.  */
+pid_t t1;
+size_t t2;
+ssize_t t3;
+off_t t4;
+mode_t t5;
+
+int
+main (void)
+{
+  return 0;
+}
diff --git a/tests/test-sys_wait.h b/tests/test-sys_wait.h
new file mode 100644 (file)
index 0000000..ed20219
--- /dev/null
@@ -0,0 +1,53 @@
+/* Test of macros shared between <sys/wait.h> and <stdlib.h>.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Eric Blake <ebb9@byu.net>, 2010.  */
+
+static int
+test_sys_wait_macros (void)
+{
+  /* Check subset of <sys/wait.h> macros that must be visible here.
+     Note that some of these macros are only portable when operating
+     on an lvalue.  */
+  int i;
+  for (i = 0; i < 0x8000; i = (i ? i << 1 : 1))
+    {
+      /* POSIX requires that for all valid process statuses, that
+         exactly one of these three macros is true.  But not all
+         possible 16-bit values map to valid process status.
+         Traditionally, 8 of the bits are for WIFEXITED, 7 of the bits
+         to tell between WIFSIGNALED and WIFSTOPPED, and either 0x80
+         or 0x8000 to flag that core was also dumped.  Since we don't
+         know which byte is WIFEXITED, we skip the both possible bits
+         that can signal core dump.  */
+      if (i == 0x80)
+        continue;
+      if (!!WIFSIGNALED (i) + !!WIFEXITED (i) + !!WIFSTOPPED (i) != 1)
+        return 1;
+    }
+  i = WEXITSTATUS (i) + WSTOPSIG (i) + WTERMSIG (i);
+
+  switch (i)
+    {
+#if 0
+  /* Gnulib doesn't guarantee these, yet.  */
+    case WNOHANG:
+    case WUNTRACED:
+#endif
+      break;
+    }
+  return 0;
+}
diff --git a/tests/test-thread_create.c b/tests/test-thread_create.c
new file mode 100644 (file)
index 0000000..12ba79d
--- /dev/null
@@ -0,0 +1,78 @@
+/* Test of gl_thread_create () macro.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011.  */
+
+#include <config.h>
+
+#include "glthread/thread.h"
+
+#include <stdio.h>
+#include <string.h>
+
+#include "macros.h"
+
+static gl_thread_t main_thread_before;
+static gl_thread_t main_thread_after;
+static gl_thread_t worker_thread;
+
+static int dummy;
+static volatile int work_done;
+
+static void *
+worker_thread_func (void *arg)
+{
+  work_done = 1;
+  return &dummy;
+}
+
+int
+main ()
+{
+  main_thread_before = gl_thread_self ();
+
+  if (glthread_create (&worker_thread, worker_thread_func, NULL) == 0)
+    {
+      void *ret;
+
+      /* Check that gl_thread_self () has the same value before than after the
+         first call to gl_thread_create ().  */
+      main_thread_after = gl_thread_self ();
+      ASSERT (memcmp (&main_thread_before, &main_thread_after,
+                      sizeof (gl_thread_t))
+              == 0);
+
+      gl_thread_join (worker_thread, &ret);
+
+      /* Check the return value of the thread.  */
+      ASSERT (ret == &dummy);
+
+      /* Check that worker_thread_func () has finished executing.  */
+      ASSERT (work_done);
+
+      return 0;
+    }
+  else
+    {
+#if USE_POSIX_THREADS || USE_SOLARIS_THREADS || USE_PTH_THREADS || USE_WINDOWS_THREADS
+      fputs ("glthread_create failed\n", stderr);
+      return 1;
+#else
+      fputs ("Skipping test: multithreading not enabled\n", stderr);
+      return 77;
+#endif
+    }
+}
diff --git a/tests/test-thread_self.c b/tests/test-thread_self.c
new file mode 100644 (file)
index 0000000..3629a82
--- /dev/null
@@ -0,0 +1,34 @@
+/* Test of gl_thread_self () macro.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011.  */
+
+#include <config.h>
+
+#include "glthread/thread.h"
+
+gl_thread_t main_thread;
+
+int
+main ()
+{
+  /* Check that gl_thread_self () can be used with just $(LIBTHREAD), not
+     $(LIBMULTITHREAD), i.e. in libraries that are multithread-safe but don't
+     create threads themselves.  */
+  main_thread = gl_thread_self ();
+
+  return 0;
+}
index ec02eee..6d3fa00 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <unistd.h> substitute.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
index 7b92ff3..50600a9 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of unsetenv.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
diff --git a/tests/test-verify.c b/tests/test-verify.c
new file mode 100644 (file)
index 0000000..2a41eb1
--- /dev/null
@@ -0,0 +1,69 @@
+/* Test the "verify" module.
+
+   Copyright (C) 2005, 2009-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible.  */
+
+#include <config.h>
+
+#include "verify.h"
+
+#ifndef EXP_FAIL
+# define EXP_FAIL 0
+#endif
+
+int x;
+enum { a, b, c };
+
+#if EXP_FAIL == 1
+verify (x >= 0);                  /* should give ERROR: non-constant expression */
+#endif
+verify (c == 2);                  /* should be ok */
+#if EXP_FAIL == 2
+verify (1 + 1 == 3);              /* should give ERROR */
+#endif
+verify (1 == 1); verify (1 == 1); /* should be ok */
+
+enum
+{
+  item = verify_true (1 == 1) * 0 + 17 /* should be ok */
+};
+
+static int
+function (int n)
+{
+#if EXP_FAIL == 3
+  verify (n >= 0);                  /* should give ERROR: non-constant expression */
+#endif
+  verify (c == 2);                  /* should be ok */
+#if EXP_FAIL == 4
+  verify (1 + 1 == 3);              /* should give ERROR */
+#endif
+  verify (1 == 1); verify (1 == 1); /* should be ok */
+
+  if (n)
+    return ((void) verify_expr (1 == 1, 1), verify_expr (1 == 1, 8)); /* should be ok */
+#if EXP_FAIL == 5
+  return verify_expr (1 == 2, 5); /* should give ERROR */
+#endif
+  return 0;
+}
+
+int
+main (void)
+{
+  return !(function (0) == 0 && function (1) == 8);
+}
diff --git a/tests/test-verify.sh b/tests/test-verify.sh
new file mode 100755 (executable)
index 0000000..3e76761
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/sh
+. "${srcdir=.}/init.sh"
+
+# We are not interested in triggering bugs in the compilers and tools
+# (such as gcc 4.3.1 on openSUSE 11.0).
+unset MALLOC_PERTURB_
+
+# Rather than figure out how to invoke the compiler with the right
+# include path ourselves, we let make do it:
+(cd "$initial_cwd_" && rm -f test-verify.o \
+    && $MAKE test-verify.o >/dev/null 2>&1) \
+  || skip_ "cannot compile error-free"
+
+# Now, prove that we encounter all expected compilation failures:
+: >out
+: >err
+for i in 1 2 3 4 5; do
+  (cd "$initial_cwd_"
+   rm -f test-verify.o
+   $MAKE CFLAGS=-DEXP_FAIL=$i test-verify.o) >>out 2>>err \
+  && { warn_ "compiler didn't detect verification failure $i"; fail=1; }
+done
+
+Exit $fail
index 2a03d6b..d9807ec 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <wchar.h> substitute.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
diff --git a/tests/test-wcrtomb-w32-1.sh b/tests/test-wcrtomb-w32-1.sh
new file mode 100755 (executable)
index 0000000..50c82f5
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Test a CP1252 locale.
+./test-wcrtomb-w32${EXEEXT} French_France 1252
diff --git a/tests/test-wcrtomb-w32-2.sh b/tests/test-wcrtomb-w32-2.sh
new file mode 100755 (executable)
index 0000000..783c70c
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Test a CP1256 locale.
+./test-wcrtomb-w32${EXEEXT} "Arabic_Saudi Arabia" 1256
diff --git a/tests/test-wcrtomb-w32-3.sh b/tests/test-wcrtomb-w32-3.sh
new file mode 100755 (executable)
index 0000000..619ea64
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Test a CP932 locale.
+./test-wcrtomb-w32${EXEEXT} Japanese_Japan 932
diff --git a/tests/test-wcrtomb-w32-4.sh b/tests/test-wcrtomb-w32-4.sh
new file mode 100755 (executable)
index 0000000..67b6803
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Test a CP950 locale.
+./test-wcrtomb-w32${EXEEXT} Chinese_Taiwan 950
diff --git a/tests/test-wcrtomb-w32-5.sh b/tests/test-wcrtomb-w32-5.sh
new file mode 100755 (executable)
index 0000000..9841fa9
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Test a CP936 locale.
+./test-wcrtomb-w32${EXEEXT} Chinese_China 936
diff --git a/tests/test-wcrtomb-w32.c b/tests/test-wcrtomb-w32.c
new file mode 100644 (file)
index 0000000..793bbce
--- /dev/null
@@ -0,0 +1,332 @@
+/* Test of conversion of wide character to multibyte character.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <wchar.h>
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "macros.h"
+
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+
+static int
+test_one_locale (const char *name, int codepage)
+{
+  char buf[64];
+  size_t ret;
+
+# if 1
+  /* Portable code to set the locale.  */
+  {
+    char name_with_codepage[1024];
+
+    sprintf (name_with_codepage, "%s.%d", name, codepage);
+
+    /* Set the locale.  */
+    if (setlocale (LC_ALL, name_with_codepage) == NULL)
+      return 77;
+  }
+# else
+  /* Hacky way to set a locale.codepage combination that setlocale() refuses
+     to set.  */
+  {
+    /* Codepage of the current locale, set with setlocale().
+       Not necessarily the same as GetACP().  */
+    extern __declspec(dllimport) unsigned int __lc_codepage;
+
+    /* Set the locale.  */
+    if (setlocale (LC_ALL, name) == NULL)
+      return 77;
+
+    /* Clobber the codepage and MB_CUR_MAX, both set by setlocale().  */
+    __lc_codepage = codepage;
+    switch (codepage)
+      {
+      case 1252:
+      case 1256:
+        MB_CUR_MAX = 1;
+        break;
+      case 932:
+      case 950:
+      case 936:
+        MB_CUR_MAX = 2;
+        break;
+      case 54936:
+      case 65001:
+        MB_CUR_MAX = 4;
+        break;
+      }
+
+    /* Test whether the codepage is really available.  */
+    {
+      mbstate_t state;
+      wchar_t wc;
+
+      memset (&state, '\0', sizeof (mbstate_t));
+      if (mbrtowc (&wc, " ", 1, &state) == (size_t)(-1))
+        return 77;
+    }
+  }
+# endif
+
+  /* Test NUL character.  */
+  {
+    buf[0] = 'x';
+    ret = wcrtomb (buf, 0, NULL);
+    ASSERT (ret == 1);
+    ASSERT (buf[0] == '\0');
+  }
+
+  /* Test single bytes.  */
+  {
+    int c;
+
+    for (c = 0; c < 0x100; c++)
+      switch (c)
+        {
+        case '\t': case '\v': case '\f':
+        case ' ': case '!': case '"': case '#': case '%':
+        case '&': case '\'': case '(': case ')': case '*':
+        case '+': case ',': case '-': case '.': case '/':
+        case '0': case '1': case '2': case '3': case '4':
+        case '5': case '6': case '7': case '8': case '9':
+        case ':': case ';': case '<': case '=': case '>':
+        case '?':
+        case 'A': case 'B': case 'C': case 'D': case 'E':
+        case 'F': case 'G': case 'H': case 'I': case 'J':
+        case 'K': case 'L': case 'M': case 'N': case 'O':
+        case 'P': case 'Q': case 'R': case 'S': case 'T':
+        case 'U': case 'V': case 'W': case 'X': case 'Y':
+        case 'Z':
+        case '[': case '\\': case ']': case '^': case '_':
+        case 'a': case 'b': case 'c': case 'd': case 'e':
+        case 'f': case 'g': case 'h': case 'i': case 'j':
+        case 'k': case 'l': case 'm': case 'n': case 'o':
+        case 'p': case 'q': case 'r': case 's': case 't':
+        case 'u': case 'v': case 'w': case 'x': case 'y':
+        case 'z': case '{': case '|': case '}': case '~':
+          /* c is in the ISO C "basic character set".  */
+          ret = wcrtomb (buf, btowc (c), NULL);
+          ASSERT (ret == 1);
+          ASSERT (buf[0] == (char) c);
+          break;
+        }
+  }
+
+  /* Test special calling convention, passing a NULL pointer.  */
+  {
+    ret = wcrtomb (NULL, '\0', NULL);
+    ASSERT (ret == 1);
+    ret = wcrtomb (NULL, btowc ('x'), NULL);
+    ASSERT (ret == 1);
+  }
+
+  switch (codepage)
+    {
+    case 1252:
+      /* Locale encoding is CP1252, an extension of ISO-8859-1.  */
+      {
+        /* Convert "B\374\337er": "Büßer" */
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x00FC, NULL);
+        ASSERT (ret == 1);
+        ASSERT (memcmp (buf, "\374", 1) == 0);
+        ASSERT (buf[1] == 'x');
+
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x00DF, NULL);
+        ASSERT (ret == 1);
+        ASSERT (memcmp (buf, "\337", 1) == 0);
+        ASSERT (buf[1] == 'x');
+      }
+      return 0;
+
+    case 1256:
+      /* Locale encoding is CP1256, not the same as ISO-8859-6.  */
+      {
+        /* Convert "x\302\341\346y": "xآلوy" */
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x0622, NULL);
+        ASSERT (ret == 1);
+        ASSERT (memcmp (buf, "\302", 1) == 0);
+        ASSERT (buf[1] == 'x');
+
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x0644, NULL);
+        ASSERT (ret == 1);
+        ASSERT (memcmp (buf, "\341", 1) == 0);
+        ASSERT (buf[1] == 'x');
+
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x0648, NULL);
+        ASSERT (ret == 1);
+        ASSERT (memcmp (buf, "\346", 1) == 0);
+        ASSERT (buf[1] == 'x');
+      }
+      return 0;
+
+    case 932:
+      /* Locale encoding is CP932, similar to Shift_JIS.  */
+      {
+        /* Convert "<\223\372\226\173\214\352>": "<日本語>" */
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x65E5, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\223\372", 2) == 0);
+        ASSERT (buf[2] == 'x');
+
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x672C, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\226\173", 2) == 0);
+        ASSERT (buf[2] == 'x');
+
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x8A9E, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\214\352", 2) == 0);
+        ASSERT (buf[2] == 'x');
+      }
+      return 0;
+
+    case 950:
+      /* Locale encoding is CP950, similar to Big5.  */
+      {
+        /* Convert "<\244\351\245\273\273\171>": "<日本語>" */
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x65E5, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\244\351", 2) == 0);
+        ASSERT (buf[2] == 'x');
+
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x672C, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\245\273", 2) == 0);
+        ASSERT (buf[2] == 'x');
+
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x8A9E, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\273\171", 2) == 0);
+        ASSERT (buf[2] == 'x');
+      }
+      return 0;
+
+    case 936:
+      /* Locale encoding is CP936 = GBK, an extension of GB2312.  */
+      {
+        /* Convert "<\310\325\261\276\325\132>": "<日本語>" */
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x65E5, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\310\325", 2) == 0);
+        ASSERT (buf[2] == 'x');
+
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x672C, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\261\276", 2) == 0);
+        ASSERT (buf[2] == 'x');
+
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x8A9E, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\325\132", 2) == 0);
+        ASSERT (buf[2] == 'x');
+      }
+      return 0;
+
+    case 54936:
+      /* Locale encoding is CP54936 = GB18030.  */
+      {
+        /* Convert "B\250\271\201\060\211\070er": "Büßer" */
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x00FC, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\250\271", 2) == 0);
+        ASSERT (buf[2] == 'x');
+
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x00DF, NULL);
+        ASSERT (ret == 4);
+        ASSERT (memcmp (buf, "\201\060\211\070", 4) == 0);
+        ASSERT (buf[4] == 'x');
+      }
+      return 0;
+
+    case 65001:
+      /* Locale encoding is CP65001 = UTF-8.  */
+      {
+        /* Convert "B\303\274\303\237er": "Büßer" */
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x00FC, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\303\274", 2) == 0);
+        ASSERT (buf[2] == 'x');
+
+        memset (buf, 'x', 8);
+        ret = wcrtomb (buf, 0x00DF, NULL);
+        ASSERT (ret == 2);
+        ASSERT (memcmp (buf, "\303\237", 2) == 0);
+        ASSERT (buf[2] == 'x');
+      }
+      return 0;
+
+    default:
+      return 1;
+    }
+}
+
+int
+main (int argc, char *argv[])
+{
+  int codepage = atoi (argv[argc - 1]);
+  int result;
+  int i;
+
+  result = 77;
+  for (i = 1; i < argc - 1; i++)
+    {
+      int ret = test_one_locale (argv[i], codepage);
+
+      if (ret != 77)
+        result = ret;
+    }
+
+  if (result == 77)
+    {
+      fprintf (stderr, "Skipping test: found no locale with codepage %d\n",
+               codepage);
+    }
+  return result;
+}
+
+#else
+
+int
+main (int argc, char *argv[])
+{
+  fputs ("Skipping test: not a native Windows system\n", stderr);
+  return 77;
+}
+
+#endif
diff --git a/tests/test-wcrtomb.c b/tests/test-wcrtomb.c
new file mode 100644 (file)
index 0000000..5b14050
--- /dev/null
@@ -0,0 +1,162 @@
+/* Test of conversion of wide character to multibyte character.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008.  */
+
+#include <config.h>
+
+#include <wchar.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (wcrtomb, size_t, (char *, wchar_t, mbstate_t *));
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "macros.h"
+
+/* Check the multibyte character s[0..n-1].  */
+static void
+check_character (const char *s, size_t n)
+{
+  wchar_t wc;
+  char buf[64];
+  int iret;
+  size_t ret;
+
+  wc = (wchar_t) 0xBADFACE;
+  iret = mbtowc (&wc, s, n);
+  ASSERT (iret == n);
+
+  ret = wcrtomb (buf, wc, NULL);
+  ASSERT (ret == n);
+  ASSERT (memcmp (buf, s, n) == 0);
+
+  /* Test special calling convention, passing a NULL pointer.  */
+  ret = wcrtomb (NULL, wc, NULL);
+  ASSERT (ret == 1);
+}
+
+int
+main (int argc, char *argv[])
+{
+  char buf[64];
+  size_t ret;
+
+  /* configure should already have checked that the locale is supported.  */
+  if (setlocale (LC_ALL, "") == NULL)
+    return 1;
+
+  /* Test NUL character.  */
+  {
+    buf[0] = 'x';
+    ret = wcrtomb (buf, 0, NULL);
+    ASSERT (ret == 1);
+    ASSERT (buf[0] == '\0');
+  }
+
+  /* Test single bytes.  */
+  {
+    int c;
+
+    for (c = 0; c < 0x100; c++)
+      switch (c)
+        {
+        case '\t': case '\v': case '\f':
+        case ' ': case '!': case '"': case '#': case '%':
+        case '&': case '\'': case '(': case ')': case '*':
+        case '+': case ',': case '-': case '.': case '/':
+        case '0': case '1': case '2': case '3': case '4':
+        case '5': case '6': case '7': case '8': case '9':
+        case ':': case ';': case '<': case '=': case '>':
+        case '?':
+        case 'A': case 'B': case 'C': case 'D': case 'E':
+        case 'F': case 'G': case 'H': case 'I': case 'J':
+        case 'K': case 'L': case 'M': case 'N': case 'O':
+        case 'P': case 'Q': case 'R': case 'S': case 'T':
+        case 'U': case 'V': case 'W': case 'X': case 'Y':
+        case 'Z':
+        case '[': case '\\': case ']': case '^': case '_':
+        case 'a': case 'b': case 'c': case 'd': case 'e':
+        case 'f': case 'g': case 'h': case 'i': case 'j':
+        case 'k': case 'l': case 'm': case 'n': case 'o':
+        case 'p': case 'q': case 'r': case 's': case 't':
+        case 'u': case 'v': case 'w': case 'x': case 'y':
+        case 'z': case '{': case '|': case '}': case '~':
+          /* c is in the ISO C "basic character set".  */
+          ret = wcrtomb (buf, btowc (c), NULL);
+          ASSERT (ret == 1);
+          ASSERT (buf[0] == (char) c);
+          break;
+        }
+  }
+
+  /* Test special calling convention, passing a NULL pointer.  */
+  {
+    ret = wcrtomb (NULL, '\0', NULL);
+    ASSERT (ret == 1);
+    ret = wcrtomb (NULL, btowc ('x'), NULL);
+    ASSERT (ret == 1);
+  }
+
+  if (argc > 1)
+    switch (argv[1][0])
+      {
+      case '1':
+        /* Locale encoding is ISO-8859-1 or ISO-8859-15.  */
+        {
+          const char input[] = "B\374\337er"; /* "Büßer" */
+
+          check_character (input + 1, 1);
+          check_character (input + 2, 1);
+        }
+        return 0;
+
+      case '2':
+        /* Locale encoding is UTF-8.  */
+        {
+          const char input[] = "B\303\274\303\237er"; /* "Büßer" */
+
+          check_character (input + 1, 2);
+          check_character (input + 3, 2);
+        }
+        return 0;
+
+      case '3':
+        /* Locale encoding is EUC-JP.  */
+        {
+          const char input[] = "<\306\374\313\334\270\354>"; /* "<日本語>" */
+
+          check_character (input + 1, 2);
+          check_character (input + 3, 2);
+          check_character (input + 5, 2);
+        }
+        return 0;
+
+      case '4':
+        /* Locale encoding is GB18030.  */
+        {
+          const char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */
+
+          check_character (input + 1, 2);
+          check_character (input + 3, 4);
+        }
+        return 0;
+      }
+
+  return 1;
+}
diff --git a/tests/test-wcrtomb.sh b/tests/test-wcrtomb.sh
new file mode 100755 (executable)
index 0000000..3eda8f3
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+# Test in an ISO-8859-1 or ISO-8859-15 locale.
+: ${LOCALE_FR=fr_FR}
+if test $LOCALE_FR != none; then
+  LC_ALL=$LOCALE_FR \
+  ./test-wcrtomb${EXEEXT} 1 \
+  || exit 1
+fi
+
+# Test whether a specific UTF-8 locale is installed.
+: ${LOCALE_FR_UTF8=fr_FR.UTF-8}
+if test $LOCALE_FR_UTF8 != none; then
+  LC_ALL=$LOCALE_FR_UTF8 \
+  ./test-wcrtomb${EXEEXT} 2 \
+  || exit 1
+fi
+
+# Test whether a specific EUC-JP locale is installed.
+: ${LOCALE_JA=ja_JP}
+if test $LOCALE_JA != none; then
+  LC_ALL=$LOCALE_JA \
+  ./test-wcrtomb${EXEEXT} 3 \
+  || exit 1
+fi
+
+# Test whether a specific GB18030 locale is installed.
+: ${LOCALE_ZH_CN=zh_CN.GB18030}
+if test $LOCALE_ZH_CN != none; then
+  LC_ALL=$LOCALE_ZH_CN \
+  ./test-wcrtomb${EXEEXT} 4 \
+  || exit 1
+fi
+
+exit 0
similarity index 91%
rename from tests/test-wctype.c
rename to tests/test-wctype-h.c
index 5db215e..904a185 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <wctype.h> substitute.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
@@ -27,13 +27,18 @@ wint_t a = 'x';
 /* Check that WEOF is defined.  */
 wint_t e = WEOF;
 
+/* Check that the type wctype_t is defined.  */
+wctype_t p;
+
+/* Check that the type wctrans_t is defined.  */
+wctrans_t q;
+
 int
 main (void)
 {
   /* Check that the isw* functions exist as functions or as macros.  */
   (void) iswalnum (0);
   (void) iswalpha (0);
-  (void) iswblank (0);
   (void) iswcntrl (0);
   (void) iswdigit (0);
   (void) iswgraph (0);
@@ -47,7 +52,6 @@ main (void)
   /* Check that the isw* functions map WEOF to 0.  */
   ASSERT (!iswalnum (e));
   ASSERT (!iswalpha (e));
-  ASSERT (!iswblank (e));
   ASSERT (!iswcntrl (e));
   ASSERT (!iswdigit (e));
   ASSERT (!iswgraph (e));
index f6f9792..d571a79 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of wcwidth() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 67edd92..baf7924 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of xalloc_die() function.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 80d6208..cf2ad40 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Test suite for xalloc_die.
-# Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2009-2014 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
@@ -18,7 +18,7 @@
 
 . "${srcdir=.}/init.sh"; path_prepend_ .
 
-test-xalloc-die${EXEEXT} 2> err > out
+test-xalloc-die${EXEEXT} > out 2> err
 case $? in
   1) ;;
   *) Exit 1;;
index eb06113..eb97774 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of case and normalization insensitive comparison of Unicode strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index d9cc432..6ff6a6f 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Test the Unicode character type functions.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007 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
@@ -40,7 +40,7 @@
     { 0x038E, 0x03A1 },
     { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0523 },
+    { 0x048A, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0561, 0x0587 },
     { 0x10A0, 0x10C5 },
@@ -64,8 +64,6 @@
     { 0x1FE0, 0x1FEC },
     { 0x1FF2, 0x1FF4 },
     { 0x1FF6, 0x1FFC },
-    { 0x2071, 0x2071 },
-    { 0x207F, 0x207F },
     { 0x2090, 0x2094 },
     { 0x2102, 0x2102 },
     { 0x2107, 0x2107 },
     { 0x24B6, 0x24E9 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CE4 },
+    { 0x2C60, 0x2CE4 },
+    { 0x2CEB, 0x2CEE },
     { 0x2D00, 0x2D25 },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA66D },
+    { 0xA640, 0xA66D },
     { 0xA680, 0xA697 },
     { 0xA722, 0xA787 },
-    { 0xA78B, 0xA78C },
+    { 0xA78B, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA7FA },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0xFF21, 0xFF3A },
index 90f7b8e..d567640 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Test the Unicode character type functions.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007 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
     { 0x0600, 0x0603 },
     { 0x0610, 0x061A },
     { 0x0640, 0x0640 },
-    { 0x064B, 0x065E },
+    { 0x064B, 0x065F },
     { 0x0670, 0x0670 },
-    { 0x06D6, 0x06E8 },
+    { 0x06D6, 0x06DD },
+    { 0x06DF, 0x06E8 },
     { 0x06EA, 0x06ED },
     { 0x070F, 0x070F },
     { 0x0711, 0x0711 },
     { 0x07A6, 0x07B0 },
     { 0x07EB, 0x07F5 },
     { 0x07FA, 0x07FA },
-    { 0x0901, 0x0902 },
+    { 0x0816, 0x082D },
+    { 0x0859, 0x085B },
+    { 0x0900, 0x0902 },
+    { 0x093A, 0x093A },
     { 0x093C, 0x093C },
     { 0x0941, 0x0948 },
     { 0x094D, 0x094D },
-    { 0x0951, 0x0954 },
+    { 0x0951, 0x0957 },
     { 0x0962, 0x0963 },
     { 0x0971, 0x0971 },
     { 0x0981, 0x0981 },
     { 0x0F71, 0x0F7E },
     { 0x0F80, 0x0F84 },
     { 0x0F86, 0x0F87 },
-    { 0x0F90, 0x0F97 },
+    { 0x0F8D, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
     { 0x102D, 0x1030 },
     { 0x1082, 0x1082 },
     { 0x1085, 0x1086 },
     { 0x108D, 0x108D },
+    { 0x109D, 0x109D },
     { 0x10FC, 0x10FC },
-    { 0x135F, 0x135F },
+    { 0x135D, 0x135F },
     { 0x1712, 0x1714 },
     { 0x1732, 0x1734 },
     { 0x1752, 0x1753 },
     { 0x1932, 0x1932 },
     { 0x1939, 0x193B },
     { 0x1A17, 0x1A18 },
+    { 0x1A56, 0x1A56 },
+    { 0x1A58, 0x1A5E },
+    { 0x1A60, 0x1A60 },
+    { 0x1A62, 0x1A62 },
+    { 0x1A65, 0x1A6C },
+    { 0x1A73, 0x1A7C },
+    { 0x1A7F, 0x1A7F },
+    { 0x1AA7, 0x1AA7 },
     { 0x1B00, 0x1B03 },
     { 0x1B34, 0x1B34 },
     { 0x1B36, 0x1B3A },
     { 0x1B80, 0x1B81 },
     { 0x1BA2, 0x1BA5 },
     { 0x1BA8, 0x1BA9 },
+    { 0x1BE6, 0x1BE6 },
+    { 0x1BE8, 0x1BE9 },
+    { 0x1BED, 0x1BED },
+    { 0x1BEF, 0x1BF1 },
     { 0x1C2C, 0x1C33 },
     { 0x1C36, 0x1C37 },
     { 0x1C78, 0x1C7D },
+    { 0x1CD0, 0x1CD2 },
+    { 0x1CD4, 0x1CE0 },
+    { 0x1CE2, 0x1CE8 },
+    { 0x1CED, 0x1CED },
     { 0x1DC0, 0x1DE6 },
-    { 0x1DFE, 0x1DFF },
+    { 0x1DFC, 0x1DFF },
     { 0x1FBD, 0x1FBD },
     { 0x1FBF, 0x1FC1 },
     { 0x1FCD, 0x1FCF },
     { 0x202A, 0x202E },
     { 0x2060, 0x2064 },
     { 0x206A, 0x206F },
+    { 0x2071, 0x2071 },
+    { 0x207F, 0x207F },
+    { 0x2095, 0x209C },
     { 0x20D0, 0x20F0 },
+    { 0x2CEF, 0x2CF1 },
     { 0x2D6F, 0x2D6F },
+    { 0x2D7F, 0x2D7F },
     { 0x2DE0, 0x2DFF },
     { 0x2E2F, 0x2E2F },
     { 0x3005, 0x3005 },
     { 0x3099, 0x309E },
     { 0x30FC, 0x30FE },
     { 0xA015, 0xA015 },
+    { 0xA4F8, 0xA4FD },
     { 0xA60C, 0xA60C },
     { 0xA66F, 0xA672 },
     { 0xA67C, 0xA67D },
     { 0xA67F, 0xA67F },
+    { 0xA6F0, 0xA6F1 },
     { 0xA700, 0xA721 },
     { 0xA788, 0xA78A },
     { 0xA802, 0xA802 },
     { 0xA80B, 0xA80B },
     { 0xA825, 0xA826 },
     { 0xA8C4, 0xA8C4 },
+    { 0xA8E0, 0xA8F1 },
     { 0xA926, 0xA92D },
     { 0xA947, 0xA951 },
+    { 0xA980, 0xA982 },
+    { 0xA9B3, 0xA9B3 },
+    { 0xA9B6, 0xA9B9 },
+    { 0xA9BC, 0xA9BC },
+    { 0xA9CF, 0xA9CF },
     { 0xAA29, 0xAA2E },
     { 0xAA31, 0xAA32 },
     { 0xAA35, 0xAA36 },
     { 0xAA43, 0xAA43 },
     { 0xAA4C, 0xAA4C },
+    { 0xAA70, 0xAA70 },
+    { 0xAAB0, 0xAAB0 },
+    { 0xAAB2, 0xAAB4 },
+    { 0xAAB7, 0xAAB8 },
+    { 0xAABE, 0xAABF },
+    { 0xAAC1, 0xAAC1 },
+    { 0xAADD, 0xAADD },
+    { 0xABE5, 0xABE5 },
+    { 0xABE8, 0xABE8 },
+    { 0xABED, 0xABED },
     { 0xFB1E, 0xFB1E },
+    { 0xFBB2, 0xFBC1 },
     { 0xFE00, 0xFE0F },
     { 0xFE13, 0xFE13 },
     { 0xFE20, 0xFE26 },
     { 0x10A0C, 0x10A0F },
     { 0x10A38, 0x10A3A },
     { 0x10A3F, 0x10A3F },
+    { 0x11001, 0x11001 },
+    { 0x11038, 0x11046 },
+    { 0x11080, 0x11081 },
+    { 0x110B3, 0x110B6 },
+    { 0x110B9, 0x110BA },
+    { 0x110BD, 0x110BD },
     { 0x1D167, 0x1D169 },
     { 0x1D173, 0x1D182 },
     { 0x1D185, 0x1D18B },
index a00b8b8..409b8ed 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether case matters for a Unicode string.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 9a1f3d8..01976cf 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether a Unicode string is already case-folded.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index b780fcd..b5fe002 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether a Unicode string is entirely lower case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index edfc60b..6ab7aa7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether a Unicode string is entirely title case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 6134d9d..dd9084f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether a Unicode string is entirely upper case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 4a62261..5bc417a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of language code determination.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index dbb93db..a30749c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of single character case mapping functions.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 15c24c4..3ae121d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of single character case mapping functions.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 8aca7a8..0f45965 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the Unicode character type functions.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index ac95ba2..236b7da 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the Unicode character type functions.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
index d70b356..f7623ec 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of case and normalization insensitive comparison of UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 253aadc..dcf7d9f 100644 (file)
@@ -1,6 +1,6 @@
 /* Test of locale dependent, case and normalization insensitive comparison of
    UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 1c188e4..5f53f98 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of casefolding mapping for UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 801d4ee..db5189f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether case matters for an UTF-16 string.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index cd242f6..bc41dd2 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-16 string is already case-folded.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 9f17439..68e555d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-16 string is entirely lower case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index e7000db..7b28d49 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-16 string is entirely title case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 9844846..7ebac5f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-16 string is entirely upper case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index af5f9d2..c8e5e0a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of lowercase mapping for UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index e08b82e..7def03d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of titlecase mapping for UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index ec87fc7..4384808 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uppercase mapping for UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 97f6277..54af979 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of case and normalization insensitive comparison of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 65e2aed..88fc907 100644 (file)
@@ -1,6 +1,6 @@
 /* Test of locale dependent, case and normalization insensitive comparison of
    UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 77b037d..531f704 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of casefolding mapping for UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 6f0f535..95cde48 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether case matters for an UTF-32 string.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 440c8d3..dac2013 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-32 string is already case-folded.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index a4b9511..4ae1e2d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-32 string is entirely lower case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 0ce2498..99516d0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-32 string is entirely title case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index b1b8320..22b28b2 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-32 string is entirely upper case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 530f0e7..f5d1f27 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of lowercase mapping for UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 9e1b3e6..543ee48 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of titlecase mapping for UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 17ce1fe..dfe9826 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uppercase mapping for UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index cb854eb..81ddc2e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of case and normalization insensitive comparison of UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 861ee2c..f8d2f4e 100644 (file)
@@ -1,6 +1,6 @@
 /* Test of locale dependent, case and normalization insensitive comparison of
    UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index b110d5c..05ab33c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of casefolding mapping for UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 15109ba..3914d71 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether case matters for an UTF-8 string.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index fc421ab..489187f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-8 string is already case-folded.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 2b0800f..d3836d6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-8 string is entirely lower case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 40716a1..e2d737b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-8 string is entirely title case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index a6be37e..3c1c29e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test whether an UTF-8 string is entirely upper case.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 8c625e8..9095684 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of lowercase mapping for UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 93284c0..d1a5751 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of titlecase mapping for UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 23e418f..3493d42 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uppercase mapping for UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 6ed3fde..3c1bd89 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Test the Unicode character mapping functions.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009 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
@@ -15,7 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-/* Generated automatically by gen-case.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-case.c for Unicode 6.0.0.  */
 
 #include "test-mapping-part1.h"
 
     { 0x051E, 0x051F },
     { 0x0520, 0x0521 },
     { 0x0522, 0x0523 },
+    { 0x0524, 0x0525 },
+    { 0x0526, 0x0527 },
     { 0x0531, 0x0561 },
     { 0x0532, 0x0562 },
     { 0x0533, 0x0563 },
     { 0x2C6D, 0x0251 },
     { 0x2C6E, 0x0271 },
     { 0x2C6F, 0x0250 },
+    { 0x2C70, 0x0252 },
     { 0x2C72, 0x2C73 },
     { 0x2C75, 0x2C76 },
+    { 0x2C7E, 0x023F },
+    { 0x2C7F, 0x0240 },
     { 0x2C80, 0x2C81 },
     { 0x2C82, 0x2C83 },
     { 0x2C84, 0x2C85 },
     { 0x2CDE, 0x2CDF },
     { 0x2CE0, 0x2CE1 },
     { 0x2CE2, 0x2CE3 },
+    { 0x2CEB, 0x2CEC },
+    { 0x2CED, 0x2CEE },
     { 0xA640, 0xA641 },
     { 0xA642, 0xA643 },
     { 0xA644, 0xA645 },
     { 0xA65A, 0xA65B },
     { 0xA65C, 0xA65D },
     { 0xA65E, 0xA65F },
+    { 0xA660, 0xA661 },
     { 0xA662, 0xA663 },
     { 0xA664, 0xA665 },
     { 0xA666, 0xA667 },
     { 0xA784, 0xA785 },
     { 0xA786, 0xA787 },
     { 0xA78B, 0xA78C },
+    { 0xA78D, 0x0265 },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A1 },
+    { 0xA7A2, 0xA7A3 },
+    { 0xA7A4, 0xA7A5 },
+    { 0xA7A6, 0xA7A7 },
+    { 0xA7A8, 0xA7A9 },
     { 0xFF21, 0xFF41 },
     { 0xFF22, 0xFF42 },
     { 0xFF23, 0xFF43 },
index e187bd4..b44e112 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Test the Unicode character mapping functions.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009 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
@@ -15,7 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-/* Generated automatically by gen-case.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-case.c for Unicode 6.0.0.  */
 
 #include "test-mapping-part1.h"
 
     { 0x0231, 0x0230 },
     { 0x0233, 0x0232 },
     { 0x023C, 0x023B },
+    { 0x023F, 0x2C7E },
+    { 0x0240, 0x2C7F },
     { 0x0242, 0x0241 },
     { 0x0247, 0x0246 },
     { 0x0249, 0x0248 },
     { 0x024F, 0x024E },
     { 0x0250, 0x2C6F },
     { 0x0251, 0x2C6D },
+    { 0x0252, 0x2C70 },
     { 0x0253, 0x0181 },
     { 0x0254, 0x0186 },
     { 0x0256, 0x0189 },
     { 0x025B, 0x0190 },
     { 0x0260, 0x0193 },
     { 0x0263, 0x0194 },
+    { 0x0265, 0xA78D },
     { 0x0268, 0x0197 },
     { 0x0269, 0x0196 },
     { 0x026B, 0x2C62 },
     { 0x051F, 0x051E },
     { 0x0521, 0x0520 },
     { 0x0523, 0x0522 },
+    { 0x0525, 0x0524 },
+    { 0x0527, 0x0526 },
     { 0x0561, 0x0531 },
     { 0x0562, 0x0532 },
     { 0x0563, 0x0533 },
     { 0x2CDF, 0x2CDE },
     { 0x2CE1, 0x2CE0 },
     { 0x2CE3, 0x2CE2 },
+    { 0x2CEC, 0x2CEB },
+    { 0x2CEE, 0x2CED },
     { 0x2D00, 0x10A0 },
     { 0x2D01, 0x10A1 },
     { 0x2D02, 0x10A2 },
     { 0xA65B, 0xA65A },
     { 0xA65D, 0xA65C },
     { 0xA65F, 0xA65E },
+    { 0xA661, 0xA660 },
     { 0xA663, 0xA662 },
     { 0xA665, 0xA664 },
     { 0xA667, 0xA666 },
     { 0xA785, 0xA784 },
     { 0xA787, 0xA786 },
     { 0xA78C, 0xA78B },
+    { 0xA791, 0xA790 },
+    { 0xA7A1, 0xA7A0 },
+    { 0xA7A3, 0xA7A2 },
+    { 0xA7A5, 0xA7A4 },
+    { 0xA7A7, 0xA7A6 },
+    { 0xA7A9, 0xA7A8 },
     { 0xFF41, 0xFF21 },
     { 0xFF42, 0xFF22 },
     { 0xFF43, 0xFF23 },
index 481e9f0..57e1a86 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Test the Unicode character mapping functions.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009 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
@@ -15,7 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-/* Generated automatically by gen-case.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-case.c for Unicode 6.0.0.  */
 
 #include "test-mapping-part1.h"
 
     { 0x0231, 0x0230 },
     { 0x0233, 0x0232 },
     { 0x023C, 0x023B },
+    { 0x023F, 0x2C7E },
+    { 0x0240, 0x2C7F },
     { 0x0242, 0x0241 },
     { 0x0247, 0x0246 },
     { 0x0249, 0x0248 },
     { 0x024F, 0x024E },
     { 0x0250, 0x2C6F },
     { 0x0251, 0x2C6D },
+    { 0x0252, 0x2C70 },
     { 0x0253, 0x0181 },
     { 0x0254, 0x0186 },
     { 0x0256, 0x0189 },
     { 0x025B, 0x0190 },
     { 0x0260, 0x0193 },
     { 0x0263, 0x0194 },
+    { 0x0265, 0xA78D },
     { 0x0268, 0x0197 },
     { 0x0269, 0x0196 },
     { 0x026B, 0x2C62 },
     { 0x051F, 0x051E },
     { 0x0521, 0x0520 },
     { 0x0523, 0x0522 },
+    { 0x0525, 0x0524 },
+    { 0x0527, 0x0526 },
     { 0x0561, 0x0531 },
     { 0x0562, 0x0532 },
     { 0x0563, 0x0533 },
     { 0x2CDF, 0x2CDE },
     { 0x2CE1, 0x2CE0 },
     { 0x2CE3, 0x2CE2 },
+    { 0x2CEC, 0x2CEB },
+    { 0x2CEE, 0x2CED },
     { 0x2D00, 0x10A0 },
     { 0x2D01, 0x10A1 },
     { 0x2D02, 0x10A2 },
     { 0xA65B, 0xA65A },
     { 0xA65D, 0xA65C },
     { 0xA65F, 0xA65E },
+    { 0xA661, 0xA660 },
     { 0xA663, 0xA662 },
     { 0xA665, 0xA664 },
     { 0xA667, 0xA666 },
     { 0xA785, 0xA784 },
     { 0xA787, 0xA786 },
     { 0xA78C, 0xA78B },
+    { 0xA791, 0xA790 },
+    { 0xA7A1, 0xA7A0 },
+    { 0xA7A3, 0xA7A2 },
+    { 0xA7A5, 0xA7A4 },
+    { 0xA7A7, 0xA7A6 },
+    { 0xA7A9, 0xA7A8 },
     { 0xFF41, 0xFF21 },
     { 0xFF42, 0xFF22 },
     { 0xFF43, 0xFF23 },
index fd86613..a3302a9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of case and normalization insensitive comparison of strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index d3b759c..cc88e95 100644 (file)
@@ -1,6 +1,6 @@
 /* Test of locale dependent, case and normalization insensitive comparison of
    strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 05e8b24..0be1d98 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion to UTF-16 from legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 27b2b44..3768789 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion from UTF-16 to legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index fb6696a..0c2cab5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion to UTF-16 from legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 819a993..e4e9697 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion from UTF-16 to legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 6dcb615..f5caf16 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion to UTF-32 from legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 24cb72a..62fc307 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion from UTF-32 to legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index e1a46f5..85b58e0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion to UTF-32 from legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 2ce125c..3fa7fae 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion from UTF-32 to legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 9655c75..968bc83 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion to UTF-8 from legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index d758e9b..6f04407 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion from UTF-8 to legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 30ebe76..c92cd5a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion to UTF-8 from legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index bbdb6d8..32a1c3b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion from UTF-8 to legacy encodings.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 9139131..3449c5b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the Unicode character type functions.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2011 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
 int
 main ()
 {
-  ASSERT (uc_bidi_category_byname ("L") == UC_BIDI_L);
-  ASSERT (uc_bidi_category_byname ("LRE") == UC_BIDI_LRE);
-  ASSERT (uc_bidi_category_byname ("LRO") == UC_BIDI_LRO);
-  ASSERT (uc_bidi_category_byname ("R") == UC_BIDI_R);
-  ASSERT (uc_bidi_category_byname ("AL") == UC_BIDI_AL);
-  ASSERT (uc_bidi_category_byname ("RLE") == UC_BIDI_RLE);
-  ASSERT (uc_bidi_category_byname ("RLO") == UC_BIDI_RLO);
-  ASSERT (uc_bidi_category_byname ("PDF") == UC_BIDI_PDF);
-  ASSERT (uc_bidi_category_byname ("EN") == UC_BIDI_EN);
-  ASSERT (uc_bidi_category_byname ("ES") == UC_BIDI_ES);
-  ASSERT (uc_bidi_category_byname ("ET") == UC_BIDI_ET);
-  ASSERT (uc_bidi_category_byname ("AN") == UC_BIDI_AN);
-  ASSERT (uc_bidi_category_byname ("CS") == UC_BIDI_CS);
-  ASSERT (uc_bidi_category_byname ("NSM") == UC_BIDI_NSM);
-  ASSERT (uc_bidi_category_byname ("BN") == UC_BIDI_BN);
-  ASSERT (uc_bidi_category_byname ("B") == UC_BIDI_B);
-  ASSERT (uc_bidi_category_byname ("S") == UC_BIDI_S);
-  ASSERT (uc_bidi_category_byname ("WS") == UC_BIDI_WS);
-  ASSERT (uc_bidi_category_byname ("ON") == UC_BIDI_ON);
-  ASSERT (uc_bidi_category_byname ("X") < 0);
-  ASSERT (uc_bidi_category_byname ("") < 0);
+  ASSERT (uc_bidi_class_byname ("L") == UC_BIDI_L);
+  ASSERT (uc_bidi_class_byname ("LRE") == UC_BIDI_LRE);
+  ASSERT (uc_bidi_class_byname ("LRO") == UC_BIDI_LRO);
+  ASSERT (uc_bidi_class_byname ("R") == UC_BIDI_R);
+  ASSERT (uc_bidi_class_byname ("AL") == UC_BIDI_AL);
+  ASSERT (uc_bidi_class_byname ("RLE") == UC_BIDI_RLE);
+  ASSERT (uc_bidi_class_byname ("RLO") == UC_BIDI_RLO);
+  ASSERT (uc_bidi_class_byname ("PDF") == UC_BIDI_PDF);
+  ASSERT (uc_bidi_class_byname ("EN") == UC_BIDI_EN);
+  ASSERT (uc_bidi_class_byname ("ES") == UC_BIDI_ES);
+  ASSERT (uc_bidi_class_byname ("ET") == UC_BIDI_ET);
+  ASSERT (uc_bidi_class_byname ("AN") == UC_BIDI_AN);
+  ASSERT (uc_bidi_class_byname ("CS") == UC_BIDI_CS);
+  ASSERT (uc_bidi_class_byname ("NSM") == UC_BIDI_NSM);
+  ASSERT (uc_bidi_class_byname ("BN") == UC_BIDI_BN);
+  ASSERT (uc_bidi_class_byname ("B") == UC_BIDI_B);
+  ASSERT (uc_bidi_class_byname ("S") == UC_BIDI_S);
+  ASSERT (uc_bidi_class_byname ("WS") == UC_BIDI_WS);
+  ASSERT (uc_bidi_class_byname ("ON") == UC_BIDI_ON);
+
+  ASSERT (uc_bidi_class_byname ("ARABIC LETTER") == UC_BIDI_AL);
+  ASSERT (uc_bidi_class_byname ("Arabic Letter") == UC_BIDI_AL);
+  ASSERT (uc_bidi_class_byname ("Arabic_Letter") == UC_BIDI_AL);
+  ASSERT (uc_bidi_class_byname ("ArabicLetter") == UC_BIDI_AL);
+  ASSERT (uc_bidi_class_byname ("ARABIC NUMBER") == UC_BIDI_AN);
+  ASSERT (uc_bidi_class_byname ("Arabic Number") == UC_BIDI_AN);
+  ASSERT (uc_bidi_class_byname ("Arabic_Number") == UC_BIDI_AN);
+  ASSERT (uc_bidi_class_byname ("ArabicNumber") == UC_BIDI_AN);
+  ASSERT (uc_bidi_class_byname ("PARAGRAPH SEPARATOR") == UC_BIDI_B);
+  ASSERT (uc_bidi_class_byname ("Paragraph Separator") == UC_BIDI_B);
+  ASSERT (uc_bidi_class_byname ("Paragraph_Separator") == UC_BIDI_B);
+  ASSERT (uc_bidi_class_byname ("ParagraphSeparator") == UC_BIDI_B);
+  ASSERT (uc_bidi_class_byname ("BOUNDARY NEUTRAL") == UC_BIDI_BN);
+  ASSERT (uc_bidi_class_byname ("Boundary Neutral") == UC_BIDI_BN);
+  ASSERT (uc_bidi_class_byname ("Boundary_Neutral") == UC_BIDI_BN);
+  ASSERT (uc_bidi_class_byname ("BoundaryNeutral") == UC_BIDI_BN);
+  ASSERT (uc_bidi_class_byname ("COMMON SEPARATOR") == UC_BIDI_CS);
+  ASSERT (uc_bidi_class_byname ("Common Separator") == UC_BIDI_CS);
+  ASSERT (uc_bidi_class_byname ("Common_Separator") == UC_BIDI_CS);
+  ASSERT (uc_bidi_class_byname ("CommonSeparator") == UC_BIDI_CS);
+  ASSERT (uc_bidi_class_byname ("EUROPEAN NUMBER") == UC_BIDI_EN);
+  ASSERT (uc_bidi_class_byname ("European Number") == UC_BIDI_EN);
+  ASSERT (uc_bidi_class_byname ("European_Number") == UC_BIDI_EN);
+  ASSERT (uc_bidi_class_byname ("EuropeanNumber") == UC_BIDI_EN);
+  ASSERT (uc_bidi_class_byname ("EUROPEAN SEPARATOR") == UC_BIDI_ES);
+  ASSERT (uc_bidi_class_byname ("European Separator") == UC_BIDI_ES);
+  ASSERT (uc_bidi_class_byname ("European_Separator") == UC_BIDI_ES);
+  ASSERT (uc_bidi_class_byname ("EuropeanSeparator") == UC_BIDI_ES);
+  ASSERT (uc_bidi_class_byname ("EUROPEAN TERMINATOR") == UC_BIDI_ET);
+  ASSERT (uc_bidi_class_byname ("European Terminator") == UC_BIDI_ET);
+  ASSERT (uc_bidi_class_byname ("European_Terminator") == UC_BIDI_ET);
+  ASSERT (uc_bidi_class_byname ("EuropeanTerminator") == UC_BIDI_ET);
+  ASSERT (uc_bidi_class_byname ("LEFT TO RIGHT") == UC_BIDI_L);
+  ASSERT (uc_bidi_class_byname ("Left To Right") == UC_BIDI_L);
+  ASSERT (uc_bidi_class_byname ("Left_To_Right") == UC_BIDI_L);
+  ASSERT (uc_bidi_class_byname ("LeftToRight") == UC_BIDI_L);
+  ASSERT (uc_bidi_class_byname ("LEFT TO RIGHT EMBEDDING") == UC_BIDI_LRE);
+  ASSERT (uc_bidi_class_byname ("Left To Right Embedding") == UC_BIDI_LRE);
+  ASSERT (uc_bidi_class_byname ("Left_To_Right_Embedding") == UC_BIDI_LRE);
+  ASSERT (uc_bidi_class_byname ("LeftToRightEmbedding") == UC_BIDI_LRE);
+  ASSERT (uc_bidi_class_byname ("LEFT TO RIGHT OVERRIDE") == UC_BIDI_LRO);
+  ASSERT (uc_bidi_class_byname ("Left To Right Override") == UC_BIDI_LRO);
+  ASSERT (uc_bidi_class_byname ("Left_To_Right_Override") == UC_BIDI_LRO);
+  ASSERT (uc_bidi_class_byname ("LeftToRightOverride") == UC_BIDI_LRO);
+  ASSERT (uc_bidi_class_byname ("NONSPACING MARK") == UC_BIDI_NSM);
+  ASSERT (uc_bidi_class_byname ("Nonspacing Mark") == UC_BIDI_NSM);
+  ASSERT (uc_bidi_class_byname ("Nonspacing_Mark") == UC_BIDI_NSM);
+  ASSERT (uc_bidi_class_byname ("NonspacingMark") == UC_BIDI_NSM);
+  ASSERT (uc_bidi_class_byname ("OTHER NEUTRAL") == UC_BIDI_ON);
+  ASSERT (uc_bidi_class_byname ("Other Neutral") == UC_BIDI_ON);
+  ASSERT (uc_bidi_class_byname ("Other_Neutral") == UC_BIDI_ON);
+  ASSERT (uc_bidi_class_byname ("OtherNeutral") == UC_BIDI_ON);
+  ASSERT (uc_bidi_class_byname ("POP DIRECTIONAL FORMAT") == UC_BIDI_PDF);
+  ASSERT (uc_bidi_class_byname ("Pop Directional Format") == UC_BIDI_PDF);
+  ASSERT (uc_bidi_class_byname ("Pop_Directional_Format") == UC_BIDI_PDF);
+  ASSERT (uc_bidi_class_byname ("PopDirectionalFormat") == UC_BIDI_PDF);
+  ASSERT (uc_bidi_class_byname ("RIGHT TO LEFT") == UC_BIDI_R);
+  ASSERT (uc_bidi_class_byname ("Right To Left") == UC_BIDI_R);
+  ASSERT (uc_bidi_class_byname ("Right_To_Left") == UC_BIDI_R);
+  ASSERT (uc_bidi_class_byname ("RightToLeft") == UC_BIDI_R);
+  ASSERT (uc_bidi_class_byname ("RIGHT TO LEFT EMBEDDING") == UC_BIDI_RLE);
+  ASSERT (uc_bidi_class_byname ("Right To Left Embedding") == UC_BIDI_RLE);
+  ASSERT (uc_bidi_class_byname ("Right_To_Left_Embedding") == UC_BIDI_RLE);
+  ASSERT (uc_bidi_class_byname ("RightToLeftEmbedding") == UC_BIDI_RLE);
+  ASSERT (uc_bidi_class_byname ("RIGHT TO LEFT OVERRIDE") == UC_BIDI_RLO);
+  ASSERT (uc_bidi_class_byname ("Right To Left Override") == UC_BIDI_RLO);
+  ASSERT (uc_bidi_class_byname ("Right_To_Left_Override") == UC_BIDI_RLO);
+  ASSERT (uc_bidi_class_byname ("RightToLeftOverride") == UC_BIDI_RLO);
+  ASSERT (uc_bidi_class_byname ("SEGMENT SEPARATOR") == UC_BIDI_S);
+  ASSERT (uc_bidi_class_byname ("Segment Separator") == UC_BIDI_S);
+  ASSERT (uc_bidi_class_byname ("Segment_Separator") == UC_BIDI_S);
+  ASSERT (uc_bidi_class_byname ("SegmentSeparator") == UC_BIDI_S);
+  ASSERT (uc_bidi_class_byname ("WHITE SPACE") == UC_BIDI_WS);
+  ASSERT (uc_bidi_class_byname ("White Space") == UC_BIDI_WS);
+  ASSERT (uc_bidi_class_byname ("White_Space") == UC_BIDI_WS);
+  ASSERT (uc_bidi_class_byname ("WhiteSpace") == UC_BIDI_WS);
+
+  ASSERT (uc_bidi_class_byname ("X") < 0);
+  ASSERT (uc_bidi_class_byname ("") < 0);
 
   return 0;
 }
diff --git a/tests/unictype/test-bidi_longname.c b/tests/unictype/test-bidi_longname.c
new file mode 100644 (file)
index 0000000..b7618d2
--- /dev/null
@@ -0,0 +1,50 @@
+/* Test the Unicode character type functions.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+int
+main ()
+{
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_AL), "Arabic Letter") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_AN), "Arabic Number") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_B), "Paragraph Separator") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_BN), "Boundary Neutral") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_CS), "Common Separator") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_EN), "European Number") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_ES), "European Separator") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_ET), "European Terminator") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_L), "Left To Right") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_LRE), "Left To Right Embedding") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_LRO), "Left To Right Override") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_NSM), "Nonspacing Mark") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_ON), "Other Neutral") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_PDF), "Pop Directional Format") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_R), "Right To Left") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_RLE), "Right To Left Embedding") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_RLO), "Right To Left Override") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_S), "Segment Separator") == 0);
+  ASSERT (strcmp (uc_bidi_class_long_name (UC_BIDI_WS), "White Space") == 0);
+  ASSERT (uc_bidi_class_long_name (-1) == NULL);
+
+  return 0;
+}
index 1a4ef0b..03b3674 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the Unicode character type functions.
-   Copyright (C) 2007-2009 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009, 2011 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
@@ -25,8 +25,8 @@
 int
 main ()
 {
-  ASSERT (strcmp (uc_bidi_category_name (UC_BIDI_NSM), "NSM") == 0);
-  ASSERT (uc_bidi_category_name (-1) == NULL);
+  ASSERT (strcmp (uc_bidi_class_name (UC_BIDI_NSM), "NSM") == 0);
+  ASSERT (uc_bidi_class_name (-1) == NULL);
 
   return 0;
 }
index 91fda15..5b7a33d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the Unicode character type functions.
-   Copyright (C) 2007-2009 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009, 2011 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
@@ -25,9 +25,9 @@
 int
 main ()
 {
-  ASSERT (uc_bidi_category ('x') == UC_BIDI_L);
-  ASSERT (uc_bidi_category (0x05D7) == UC_BIDI_R);
-  ASSERT (uc_bidi_category ('7') == UC_BIDI_EN);
+  ASSERT (uc_bidi_class ('x') == UC_BIDI_L);
+  ASSERT (uc_bidi_class (0x05D7) == UC_BIDI_R);
+  ASSERT (uc_bidi_class ('7') == UC_BIDI_EN);
 
   return 0;
 }
index c9e7b39..908d1b7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the Unicode character type functions.
-   Copyright (C) 2007-2009 Free Software Foundation, Inc.
+   Copyright (C) 2007-2009, 2011 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
 int
 main ()
 {
-  ASSERT (uc_is_bidi_category ('x', UC_BIDI_L));
-  ASSERT (!uc_is_bidi_category ('x', UC_BIDI_R));
-  ASSERT (!uc_is_bidi_category ('x', UC_BIDI_EN));
+  ASSERT (uc_is_bidi_class ('x', UC_BIDI_L));
+  ASSERT (!uc_is_bidi_class ('x', UC_BIDI_R));
+  ASSERT (!uc_is_bidi_class ('x', UC_BIDI_EN));
 
-  ASSERT (uc_is_bidi_category (0x05D7, UC_BIDI_R));
-  ASSERT (!uc_is_bidi_category (0x05D7, UC_BIDI_L));
-  ASSERT (!uc_is_bidi_category (0x05D7, UC_BIDI_EN));
+  ASSERT (uc_is_bidi_class (0x05D7, UC_BIDI_R));
+  ASSERT (!uc_is_bidi_class (0x05D7, UC_BIDI_L));
+  ASSERT (!uc_is_bidi_class (0x05D7, UC_BIDI_EN));
 
-  ASSERT (uc_is_bidi_category ('7', UC_BIDI_EN));
-  ASSERT (!uc_is_bidi_category ('7', UC_BIDI_L));
-  ASSERT (!uc_is_bidi_category ('7', UC_BIDI_R));
+  ASSERT (uc_is_bidi_class ('7', UC_BIDI_EN));
+  ASSERT (!uc_is_bidi_class ('7', UC_BIDI_L));
+  ASSERT (!uc_is_bidi_class ('7', UC_BIDI_R));
 
   {
     unsigned int c;
 
     for (c = 0; c < 0x110000; c++)
-      ASSERT (uc_is_bidi_category (c, uc_bidi_category (c)));
+      ASSERT (uc_is_bidi_class (c, uc_bidi_class (c)));
   }
 
   return 0;
index e057af8..631974d 100644 (file)
@@ -25,7 +25,7 @@
     { 0x038B, 0x038B },
     { 0x038D, 0x038D },
     { 0x03A2, 0x03A2 },
-    { 0x0524, 0x0530 },
+    { 0x0528, 0x0530 },
     { 0x0557, 0x0558 },
     { 0x0560, 0x0560 },
     { 0x0588, 0x0588 },
     { 0x05EB, 0x05EF },
     { 0x05F5, 0x0605 },
     { 0x061C, 0x061D },
-    { 0x0620, 0x0620 },
-    { 0x065F, 0x065F },
     { 0x06DD, 0x06DD },
     { 0x070E, 0x070F },
     { 0x074B, 0x074C },
     { 0x07B2, 0x07BF },
-    { 0x07FB, 0x0900 },
-    { 0x093A, 0x093B },
-    { 0x094E, 0x094F },
-    { 0x0955, 0x0957 },
-    { 0x0973, 0x097A },
+    { 0x07FB, 0x07FF },
+    { 0x082E, 0x082F },
+    { 0x083F, 0x083F },
+    { 0x085C, 0x085D },
+    { 0x085F, 0x08FF },
+    { 0x0978, 0x0978 },
     { 0x0980, 0x0980 },
     { 0x0984, 0x0984 },
     { 0x098D, 0x098E },
@@ -59,7 +58,7 @@
     { 0x09D8, 0x09DB },
     { 0x09DE, 0x09DE },
     { 0x09E4, 0x09E5 },
-    { 0x09FB, 0x0A00 },
+    { 0x09FC, 0x0A00 },
     { 0x0A04, 0x0A04 },
     { 0x0A0B, 0x0A0E },
     { 0x0A11, 0x0A12 },
     { 0x0B58, 0x0B5B },
     { 0x0B5E, 0x0B5E },
     { 0x0B64, 0x0B65 },
-    { 0x0B72, 0x0B81 },
+    { 0x0B78, 0x0B81 },
     { 0x0B84, 0x0B84 },
     { 0x0B8B, 0x0B8D },
     { 0x0B91, 0x0B91 },
     { 0x0D04, 0x0D04 },
     { 0x0D0D, 0x0D0D },
     { 0x0D11, 0x0D11 },
-    { 0x0D29, 0x0D29 },
-    { 0x0D3A, 0x0D3C },
+    { 0x0D3B, 0x0D3C },
     { 0x0D45, 0x0D45 },
     { 0x0D49, 0x0D49 },
-    { 0x0D4E, 0x0D56 },
+    { 0x0D4F, 0x0D56 },
     { 0x0D58, 0x0D5F },
     { 0x0D64, 0x0D65 },
     { 0x0D76, 0x0D78 },
     { 0x0EDE, 0x0EFF },
     { 0x0F48, 0x0F48 },
     { 0x0F6D, 0x0F70 },
-    { 0x0F8C, 0x0F8F },
     { 0x0F98, 0x0F98 },
     { 0x0FBD, 0x0FBD },
     { 0x0FCD, 0x0FCD },
-    { 0x0FD5, 0x0FFF },
-    { 0x109A, 0x109D },
+    { 0x0FDB, 0x0FFF },
     { 0x10C6, 0x10CF },
     { 0x10FD, 0x10FF },
-    { 0x115A, 0x115E },
-    { 0x11A3, 0x11A7 },
-    { 0x11FA, 0x11FF },
     { 0x1249, 0x1249 },
     { 0x124E, 0x124F },
     { 0x1257, 0x1257 },
     { 0x12D7, 0x12D7 },
     { 0x1311, 0x1311 },
     { 0x1316, 0x1317 },
-    { 0x135B, 0x135E },
+    { 0x135B, 0x135C },
     { 0x137D, 0x137F },
     { 0x139A, 0x139F },
-    { 0x13F5, 0x1400 },
-    { 0x1677, 0x167F },
+    { 0x13F5, 0x13FF },
     { 0x169D, 0x169F },
     { 0x16F1, 0x16FF },
     { 0x170D, 0x170D },
     { 0x180F, 0x180F },
     { 0x181A, 0x181F },
     { 0x1878, 0x187F },
-    { 0x18AB, 0x18FF },
+    { 0x18AB, 0x18AF },
+    { 0x18F6, 0x18FF },
     { 0x191D, 0x191F },
     { 0x192C, 0x192F },
     { 0x193C, 0x193F },
     { 0x1941, 0x1943 },
     { 0x196E, 0x196F },
     { 0x1975, 0x197F },
-    { 0x19AA, 0x19AF },
+    { 0x19AC, 0x19AF },
     { 0x19CA, 0x19CF },
-    { 0x19DA, 0x19DD },
+    { 0x19DB, 0x19DD },
     { 0x1A1C, 0x1A1D },
-    { 0x1A20, 0x1AFF },
+    { 0x1A5F, 0x1A5F },
+    { 0x1A7D, 0x1A7E },
+    { 0x1A8A, 0x1A8F },
+    { 0x1A9A, 0x1A9F },
+    { 0x1AAE, 0x1AFF },
     { 0x1B4C, 0x1B4F },
     { 0x1B7D, 0x1B7F },
     { 0x1BAB, 0x1BAD },
-    { 0x1BBA, 0x1BFF },
+    { 0x1BBA, 0x1BBF },
+    { 0x1BF4, 0x1BFB },
     { 0x1C38, 0x1C3A },
     { 0x1C4A, 0x1C4C },
-    { 0x1C80, 0x1CFF },
-    { 0x1DE7, 0x1DFD },
+    { 0x1C80, 0x1CCF },
+    { 0x1CF3, 0x1CFF },
+    { 0x1DE7, 0x1DFB },
     { 0x1F16, 0x1F17 },
     { 0x1F1E, 0x1F1F },
     { 0x1F46, 0x1F47 },
     { 0x2060, 0x206F },
     { 0x2072, 0x2073 },
     { 0x208F, 0x208F },
-    { 0x2095, 0x209F },
-    { 0x20B6, 0x20CF },
+    { 0x209D, 0x209F },
+    { 0x20BA, 0x20CF },
     { 0x20F1, 0x20FF },
-    { 0x2150, 0x2152 },
-    { 0x2189, 0x218F },
-    { 0x23E8, 0x23FF },
+    { 0x218A, 0x218F },
+    { 0x23F4, 0x23FF },
     { 0x2427, 0x243F },
     { 0x244B, 0x245F },
-    { 0x269E, 0x269F },
-    { 0x26BD, 0x26BF },
-    { 0x26C4, 0x2700 },
-    { 0x2705, 0x2705 },
-    { 0x270A, 0x270B },
-    { 0x2728, 0x2728 },
-    { 0x274C, 0x274C },
-    { 0x274E, 0x274E },
-    { 0x2753, 0x2755 },
-    { 0x2757, 0x2757 },
-    { 0x275F, 0x2760 },
-    { 0x2795, 0x2797 },
-    { 0x27B0, 0x27B0 },
-    { 0x27BF, 0x27BF },
+    { 0x2700, 0x2700 },
     { 0x27CB, 0x27CB },
-    { 0x27CD, 0x27CF },
+    { 0x27CD, 0x27CD },
     { 0x2B4D, 0x2B4F },
-    { 0x2B55, 0x2BFF },
+    { 0x2B5A, 0x2BFF },
     { 0x2C2F, 0x2C2F },
     { 0x2C5F, 0x2C5F },
-    { 0x2C70, 0x2C70 },
-    { 0x2C7E, 0x2C7F },
-    { 0x2CEB, 0x2CF8 },
+    { 0x2CF2, 0x2CF8 },
     { 0x2D26, 0x2D2F },
     { 0x2D66, 0x2D6E },
-    { 0x2D70, 0x2D7F },
+    { 0x2D71, 0x2D7E },
     { 0x2D97, 0x2D9F },
     { 0x2DA7, 0x2DA7 },
     { 0x2DAF, 0x2DAF },
     { 0x2DCF, 0x2DCF },
     { 0x2DD7, 0x2DD7 },
     { 0x2DDF, 0x2DDF },
-    { 0x2E31, 0x2E7F },
+    { 0x2E32, 0x2E7F },
     { 0x2E9A, 0x2E9A },
     { 0x2EF4, 0x2EFF },
     { 0x2FD6, 0x2FEF },
     { 0x3100, 0x3104 },
     { 0x312E, 0x3130 },
     { 0x318F, 0x318F },
-    { 0x31B8, 0x31BF },
+    { 0x31BB, 0x31BF },
     { 0x31E4, 0x31EF },
     { 0x321F, 0x321F },
-    { 0x3244, 0x324F },
     { 0x32FF, 0x32FF },
     { 0x4DB6, 0x4DBF },
-    { 0x9FC4, 0x9FFF },
+    { 0x9FCC, 0x9FFF },
     { 0xA48D, 0xA48F },
-    { 0xA4C7, 0xA4FF },
+    { 0xA4C7, 0xA4CF },
     { 0xA62C, 0xA63F },
-    { 0xA660, 0xA661 },
     { 0xA674, 0xA67B },
-    { 0xA698, 0xA6FF },
-    { 0xA78D, 0xA7FA },
-    { 0xA82C, 0xA83F },
+    { 0xA698, 0xA69F },
+    { 0xA6F8, 0xA6FF },
+    { 0xA78F, 0xA78F },
+    { 0xA792, 0xA79F },
+    { 0xA7AA, 0xA7F9 },
+    { 0xA82C, 0xA82F },
+    { 0xA83A, 0xA83F },
     { 0xA878, 0xA87F },
     { 0xA8C5, 0xA8CD },
-    { 0xA8DA, 0xA8FF },
+    { 0xA8DA, 0xA8DF },
+    { 0xA8FC, 0xA8FF },
     { 0xA954, 0xA95E },
-    { 0xA960, 0xA9FF },
+    { 0xA97D, 0xA97F },
+    { 0xA9CE, 0xA9CE },
+    { 0xA9DA, 0xA9DD },
+    { 0xA9E0, 0xA9FF },
     { 0xAA37, 0xAA3F },
     { 0xAA4E, 0xAA4F },
     { 0xAA5A, 0xAA5B },
-    { 0xAA60, 0xABFF },
-    { 0xD7A4, 0xF8FF },
+    { 0xAA7C, 0xAA7F },
+    { 0xAAC3, 0xAADA },
+    { 0xAAE0, 0xAB00 },
+    { 0xAB07, 0xAB08 },
+    { 0xAB0F, 0xAB10 },
+    { 0xAB17, 0xAB1F },
+    { 0xAB27, 0xAB27 },
+    { 0xAB2F, 0xABBF },
+    { 0xABEE, 0xABEF },
+    { 0xABFA, 0xABFF },
+    { 0xD7A4, 0xD7AF },
+    { 0xD7C7, 0xD7CA },
+    { 0xD7FC, 0xF8FF },
     { 0xFA2E, 0xFA2F },
-    { 0xFA6B, 0xFA6F },
+    { 0xFA6E, 0xFA6F },
     { 0xFADA, 0xFAFF },
     { 0xFB07, 0xFB12 },
     { 0xFB18, 0xFB1C },
     { 0xFB3F, 0xFB3F },
     { 0xFB42, 0xFB42 },
     { 0xFB45, 0xFB45 },
-    { 0xFBB2, 0xFBD2 },
+    { 0xFBC2, 0xFBD2 },
     { 0xFD40, 0xFD4F },
     { 0xFD90, 0xFD91 },
     { 0xFDC8, 0xFDEF },
     { 0x10836, 0x10836 },
     { 0x10839, 0x1083B },
     { 0x1083D, 0x1083E },
-    { 0x10840, 0x108FF },
-    { 0x1091A, 0x1091E },
+    { 0x10856, 0x10856 },
+    { 0x10860, 0x108FF },
+    { 0x1091C, 0x1091E },
     { 0x1093A, 0x1093E },
     { 0x10940, 0x109FF },
     { 0x10A04, 0x10A04 },
     { 0x10A34, 0x10A37 },
     { 0x10A3B, 0x10A3E },
     { 0x10A48, 0x10A4F },
-    { 0x10A59, 0x11FFF },
+    { 0x10A59, 0x10A5F },
+    { 0x10A80, 0x10AFF },
+    { 0x10B36, 0x10B38 },
+    { 0x10B56, 0x10B57 },
+    { 0x10B73, 0x10B77 },
+    { 0x10B80, 0x10BFF },
+    { 0x10C49, 0x10E5F },
+    { 0x10E7F, 0x10FFF },
+    { 0x1104E, 0x11051 },
+    { 0x11070, 0x1107F },
+    { 0x110BD, 0x110BD },
+    { 0x110C2, 0x11FFF },
     { 0x1236F, 0x123FF },
     { 0x12463, 0x1246F },
-    { 0x12474, 0x1CFFF },
+    { 0x12474, 0x12FFF },
+    { 0x1342F, 0x167FF },
+    { 0x16A39, 0x1AFFF },
+    { 0x1B002, 0x1CFFF },
     { 0x1D0F6, 0x1D0FF },
     { 0x1D127, 0x1D128 },
     { 0x1D173, 0x1D17A },
     { 0x1D7CC, 0x1D7CD },
     { 0x1D800, 0x1EFFF },
     { 0x1F02C, 0x1F02F },
-    { 0x1F094, 0x1FFFF },
-    { 0x2A6D7, 0x2F7FF },
+    { 0x1F094, 0x1F09F },
+    { 0x1F0AF, 0x1F0B0 },
+    { 0x1F0BF, 0x1F0C0 },
+    { 0x1F0D0, 0x1F0D0 },
+    { 0x1F0E0, 0x1F0FF },
+    { 0x1F10B, 0x1F10F },
+    { 0x1F12F, 0x1F12F },
+    { 0x1F16A, 0x1F16F },
+    { 0x1F19B, 0x1F1E5 },
+    { 0x1F203, 0x1F20F },
+    { 0x1F23B, 0x1F23F },
+    { 0x1F249, 0x1F24F },
+    { 0x1F252, 0x1F2FF },
+    { 0x1F321, 0x1F32F },
+    { 0x1F336, 0x1F336 },
+    { 0x1F37D, 0x1F37F },
+    { 0x1F394, 0x1F39F },
+    { 0x1F3C5, 0x1F3C5 },
+    { 0x1F3CB, 0x1F3DF },
+    { 0x1F3F1, 0x1F3FF },
+    { 0x1F43F, 0x1F43F },
+    { 0x1F441, 0x1F441 },
+    { 0x1F4F8, 0x1F4F8 },
+    { 0x1F4FD, 0x1F4FF },
+    { 0x1F53E, 0x1F54F },
+    { 0x1F568, 0x1F5FA },
+    { 0x1F600, 0x1F600 },
+    { 0x1F611, 0x1F611 },
+    { 0x1F615, 0x1F615 },
+    { 0x1F617, 0x1F617 },
+    { 0x1F619, 0x1F619 },
+    { 0x1F61B, 0x1F61B },
+    { 0x1F61F, 0x1F61F },
+    { 0x1F626, 0x1F627 },
+    { 0x1F62C, 0x1F62C },
+    { 0x1F62E, 0x1F62F },
+    { 0x1F634, 0x1F634 },
+    { 0x1F641, 0x1F644 },
+    { 0x1F650, 0x1F67F },
+    { 0x1F6C6, 0x1F6FF },
+    { 0x1F774, 0x1FFFF },
+    { 0x2A6D7, 0x2A6FF },
+    { 0x2B735, 0x2B73F },
+    { 0x2B81E, 0x2F7FF },
     { 0x2FA1E, 0xE00FF },
     { 0xE01F0, 0x10FFFF }
 
index bcaf2f2..513415f 100644 (file)
@@ -28,6 +28,7 @@
     { 0x206A, 0x206F },
     { 0xFEFF, 0xFEFF },
     { 0xFFF9, 0xFFFB },
+    { 0x110BD, 0x110BD },
     { 0x1D173, 0x1D17A },
     { 0xE0001, 0xE0001 },
     { 0xE0020, 0xE007F }
index 5430ea2..9fd70c9 100644 (file)
@@ -22,7 +22,7 @@
     { 0x038B, 0x038B },
     { 0x038D, 0x038D },
     { 0x03A2, 0x03A2 },
-    { 0x0524, 0x0530 },
+    { 0x0528, 0x0530 },
     { 0x0557, 0x0558 },
     { 0x0560, 0x0560 },
     { 0x0588, 0x0588 },
     { 0x05F5, 0x05FF },
     { 0x0604, 0x0605 },
     { 0x061C, 0x061D },
-    { 0x0620, 0x0620 },
-    { 0x065F, 0x065F },
     { 0x070E, 0x070E },
     { 0x074B, 0x074C },
     { 0x07B2, 0x07BF },
-    { 0x07FB, 0x0900 },
-    { 0x093A, 0x093B },
-    { 0x094E, 0x094F },
-    { 0x0955, 0x0957 },
-    { 0x0973, 0x097A },
+    { 0x07FB, 0x07FF },
+    { 0x082E, 0x082F },
+    { 0x083F, 0x083F },
+    { 0x085C, 0x085D },
+    { 0x085F, 0x08FF },
+    { 0x0978, 0x0978 },
     { 0x0980, 0x0980 },
     { 0x0984, 0x0984 },
     { 0x098D, 0x098E },
@@ -56,7 +55,7 @@
     { 0x09D8, 0x09DB },
     { 0x09DE, 0x09DE },
     { 0x09E4, 0x09E5 },
-    { 0x09FB, 0x0A00 },
+    { 0x09FC, 0x0A00 },
     { 0x0A04, 0x0A04 },
     { 0x0A0B, 0x0A0E },
     { 0x0A11, 0x0A12 },
     { 0x0B58, 0x0B5B },
     { 0x0B5E, 0x0B5E },
     { 0x0B64, 0x0B65 },
-    { 0x0B72, 0x0B81 },
+    { 0x0B78, 0x0B81 },
     { 0x0B84, 0x0B84 },
     { 0x0B8B, 0x0B8D },
     { 0x0B91, 0x0B91 },
     { 0x0D04, 0x0D04 },
     { 0x0D0D, 0x0D0D },
     { 0x0D11, 0x0D11 },
-    { 0x0D29, 0x0D29 },
-    { 0x0D3A, 0x0D3C },
+    { 0x0D3B, 0x0D3C },
     { 0x0D45, 0x0D45 },
     { 0x0D49, 0x0D49 },
-    { 0x0D4E, 0x0D56 },
+    { 0x0D4F, 0x0D56 },
     { 0x0D58, 0x0D5F },
     { 0x0D64, 0x0D65 },
     { 0x0D76, 0x0D78 },
     { 0x0EDE, 0x0EFF },
     { 0x0F48, 0x0F48 },
     { 0x0F6D, 0x0F70 },
-    { 0x0F8C, 0x0F8F },
     { 0x0F98, 0x0F98 },
     { 0x0FBD, 0x0FBD },
     { 0x0FCD, 0x0FCD },
-    { 0x0FD5, 0x0FFF },
-    { 0x109A, 0x109D },
+    { 0x0FDB, 0x0FFF },
     { 0x10C6, 0x10CF },
     { 0x10FD, 0x10FF },
-    { 0x115A, 0x115E },
-    { 0x11A3, 0x11A7 },
-    { 0x11FA, 0x11FF },
     { 0x1249, 0x1249 },
     { 0x124E, 0x124F },
     { 0x1257, 0x1257 },
     { 0x12D7, 0x12D7 },
     { 0x1311, 0x1311 },
     { 0x1316, 0x1317 },
-    { 0x135B, 0x135E },
+    { 0x135B, 0x135C },
     { 0x137D, 0x137F },
     { 0x139A, 0x139F },
-    { 0x13F5, 0x1400 },
-    { 0x1677, 0x167F },
+    { 0x13F5, 0x13FF },
     { 0x169D, 0x169F },
     { 0x16F1, 0x16FF },
     { 0x170D, 0x170D },
     { 0x180F, 0x180F },
     { 0x181A, 0x181F },
     { 0x1878, 0x187F },
-    { 0x18AB, 0x18FF },
+    { 0x18AB, 0x18AF },
+    { 0x18F6, 0x18FF },
     { 0x191D, 0x191F },
     { 0x192C, 0x192F },
     { 0x193C, 0x193F },
     { 0x1941, 0x1943 },
     { 0x196E, 0x196F },
     { 0x1975, 0x197F },
-    { 0x19AA, 0x19AF },
+    { 0x19AC, 0x19AF },
     { 0x19CA, 0x19CF },
-    { 0x19DA, 0x19DD },
+    { 0x19DB, 0x19DD },
     { 0x1A1C, 0x1A1D },
-    { 0x1A20, 0x1AFF },
+    { 0x1A5F, 0x1A5F },
+    { 0x1A7D, 0x1A7E },
+    { 0x1A8A, 0x1A8F },
+    { 0x1A9A, 0x1A9F },
+    { 0x1AAE, 0x1AFF },
     { 0x1B4C, 0x1B4F },
     { 0x1B7D, 0x1B7F },
     { 0x1BAB, 0x1BAD },
-    { 0x1BBA, 0x1BFF },
+    { 0x1BBA, 0x1BBF },
+    { 0x1BF4, 0x1BFB },
     { 0x1C38, 0x1C3A },
     { 0x1C4A, 0x1C4C },
-    { 0x1C80, 0x1CFF },
-    { 0x1DE7, 0x1DFD },
+    { 0x1C80, 0x1CCF },
+    { 0x1CF3, 0x1CFF },
+    { 0x1DE7, 0x1DFB },
     { 0x1F16, 0x1F17 },
     { 0x1F1E, 0x1F1F },
     { 0x1F46, 0x1F47 },
     { 0x2065, 0x2069 },
     { 0x2072, 0x2073 },
     { 0x208F, 0x208F },
-    { 0x2095, 0x209F },
-    { 0x20B6, 0x20CF },
+    { 0x209D, 0x209F },
+    { 0x20BA, 0x20CF },
     { 0x20F1, 0x20FF },
-    { 0x2150, 0x2152 },
-    { 0x2189, 0x218F },
-    { 0x23E8, 0x23FF },
+    { 0x218A, 0x218F },
+    { 0x23F4, 0x23FF },
     { 0x2427, 0x243F },
     { 0x244B, 0x245F },
-    { 0x269E, 0x269F },
-    { 0x26BD, 0x26BF },
-    { 0x26C4, 0x2700 },
-    { 0x2705, 0x2705 },
-    { 0x270A, 0x270B },
-    { 0x2728, 0x2728 },
-    { 0x274C, 0x274C },
-    { 0x274E, 0x274E },
-    { 0x2753, 0x2755 },
-    { 0x2757, 0x2757 },
-    { 0x275F, 0x2760 },
-    { 0x2795, 0x2797 },
-    { 0x27B0, 0x27B0 },
-    { 0x27BF, 0x27BF },
+    { 0x2700, 0x2700 },
     { 0x27CB, 0x27CB },
-    { 0x27CD, 0x27CF },
+    { 0x27CD, 0x27CD },
     { 0x2B4D, 0x2B4F },
-    { 0x2B55, 0x2BFF },
+    { 0x2B5A, 0x2BFF },
     { 0x2C2F, 0x2C2F },
     { 0x2C5F, 0x2C5F },
-    { 0x2C70, 0x2C70 },
-    { 0x2C7E, 0x2C7F },
-    { 0x2CEB, 0x2CF8 },
+    { 0x2CF2, 0x2CF8 },
     { 0x2D26, 0x2D2F },
     { 0x2D66, 0x2D6E },
-    { 0x2D70, 0x2D7F },
+    { 0x2D71, 0x2D7E },
     { 0x2D97, 0x2D9F },
     { 0x2DA7, 0x2DA7 },
     { 0x2DAF, 0x2DAF },
     { 0x2DCF, 0x2DCF },
     { 0x2DD7, 0x2DD7 },
     { 0x2DDF, 0x2DDF },
-    { 0x2E31, 0x2E7F },
+    { 0x2E32, 0x2E7F },
     { 0x2E9A, 0x2E9A },
     { 0x2EF4, 0x2EFF },
     { 0x2FD6, 0x2FEF },
     { 0x3100, 0x3104 },
     { 0x312E, 0x3130 },
     { 0x318F, 0x318F },
-    { 0x31B8, 0x31BF },
+    { 0x31BB, 0x31BF },
     { 0x31E4, 0x31EF },
     { 0x321F, 0x321F },
-    { 0x3244, 0x324F },
     { 0x32FF, 0x32FF },
     { 0x4DB6, 0x4DBF },
-    { 0x9FC4, 0x9FFF },
+    { 0x9FCC, 0x9FFF },
     { 0xA48D, 0xA48F },
-    { 0xA4C7, 0xA4FF },
+    { 0xA4C7, 0xA4CF },
     { 0xA62C, 0xA63F },
-    { 0xA660, 0xA661 },
     { 0xA674, 0xA67B },
-    { 0xA698, 0xA6FF },
-    { 0xA78D, 0xA7FA },
-    { 0xA82C, 0xA83F },
+    { 0xA698, 0xA69F },
+    { 0xA6F8, 0xA6FF },
+    { 0xA78F, 0xA78F },
+    { 0xA792, 0xA79F },
+    { 0xA7AA, 0xA7F9 },
+    { 0xA82C, 0xA82F },
+    { 0xA83A, 0xA83F },
     { 0xA878, 0xA87F },
     { 0xA8C5, 0xA8CD },
-    { 0xA8DA, 0xA8FF },
+    { 0xA8DA, 0xA8DF },
+    { 0xA8FC, 0xA8FF },
     { 0xA954, 0xA95E },
-    { 0xA960, 0xA9FF },
+    { 0xA97D, 0xA97F },
+    { 0xA9CE, 0xA9CE },
+    { 0xA9DA, 0xA9DD },
+    { 0xA9E0, 0xA9FF },
     { 0xAA37, 0xAA3F },
     { 0xAA4E, 0xAA4F },
     { 0xAA5A, 0xAA5B },
-    { 0xAA60, 0xABFF },
-    { 0xD7A4, 0xD7FF },
+    { 0xAA7C, 0xAA7F },
+    { 0xAAC3, 0xAADA },
+    { 0xAAE0, 0xAB00 },
+    { 0xAB07, 0xAB08 },
+    { 0xAB0F, 0xAB10 },
+    { 0xAB17, 0xAB1F },
+    { 0xAB27, 0xAB27 },
+    { 0xAB2F, 0xABBF },
+    { 0xABEE, 0xABEF },
+    { 0xABFA, 0xABFF },
+    { 0xD7A4, 0xD7AF },
+    { 0xD7C7, 0xD7CA },
+    { 0xD7FC, 0xD7FF },
     { 0xFA2E, 0xFA2F },
-    { 0xFA6B, 0xFA6F },
+    { 0xFA6E, 0xFA6F },
     { 0xFADA, 0xFAFF },
     { 0xFB07, 0xFB12 },
     { 0xFB18, 0xFB1C },
     { 0xFB3F, 0xFB3F },
     { 0xFB42, 0xFB42 },
     { 0xFB45, 0xFB45 },
-    { 0xFBB2, 0xFBD2 },
+    { 0xFBC2, 0xFBD2 },
     { 0xFD40, 0xFD4F },
     { 0xFD90, 0xFD91 },
     { 0xFDC8, 0xFDEF },
     { 0x10836, 0x10836 },
     { 0x10839, 0x1083B },
     { 0x1083D, 0x1083E },
-    { 0x10840, 0x108FF },
-    { 0x1091A, 0x1091E },
+    { 0x10856, 0x10856 },
+    { 0x10860, 0x108FF },
+    { 0x1091C, 0x1091E },
     { 0x1093A, 0x1093E },
     { 0x10940, 0x109FF },
     { 0x10A04, 0x10A04 },
     { 0x10A34, 0x10A37 },
     { 0x10A3B, 0x10A3E },
     { 0x10A48, 0x10A4F },
-    { 0x10A59, 0x11FFF },
+    { 0x10A59, 0x10A5F },
+    { 0x10A80, 0x10AFF },
+    { 0x10B36, 0x10B38 },
+    { 0x10B56, 0x10B57 },
+    { 0x10B73, 0x10B77 },
+    { 0x10B80, 0x10BFF },
+    { 0x10C49, 0x10E5F },
+    { 0x10E7F, 0x10FFF },
+    { 0x1104E, 0x11051 },
+    { 0x11070, 0x1107F },
+    { 0x110C2, 0x11FFF },
     { 0x1236F, 0x123FF },
     { 0x12463, 0x1246F },
-    { 0x12474, 0x1CFFF },
+    { 0x12474, 0x12FFF },
+    { 0x1342F, 0x167FF },
+    { 0x16A39, 0x1AFFF },
+    { 0x1B002, 0x1CFFF },
     { 0x1D0F6, 0x1D0FF },
     { 0x1D127, 0x1D128 },
     { 0x1D1DE, 0x1D1FF },
     { 0x1D7CC, 0x1D7CD },
     { 0x1D800, 0x1EFFF },
     { 0x1F02C, 0x1F02F },
-    { 0x1F094, 0x1FFFF },
-    { 0x2A6D7, 0x2F7FF },
+    { 0x1F094, 0x1F09F },
+    { 0x1F0AF, 0x1F0B0 },
+    { 0x1F0BF, 0x1F0C0 },
+    { 0x1F0D0, 0x1F0D0 },
+    { 0x1F0E0, 0x1F0FF },
+    { 0x1F10B, 0x1F10F },
+    { 0x1F12F, 0x1F12F },
+    { 0x1F16A, 0x1F16F },
+    { 0x1F19B, 0x1F1E5 },
+    { 0x1F203, 0x1F20F },
+    { 0x1F23B, 0x1F23F },
+    { 0x1F249, 0x1F24F },
+    { 0x1F252, 0x1F2FF },
+    { 0x1F321, 0x1F32F },
+    { 0x1F336, 0x1F336 },
+    { 0x1F37D, 0x1F37F },
+    { 0x1F394, 0x1F39F },
+    { 0x1F3C5, 0x1F3C5 },
+    { 0x1F3CB, 0x1F3DF },
+    { 0x1F3F1, 0x1F3FF },
+    { 0x1F43F, 0x1F43F },
+    { 0x1F441, 0x1F441 },
+    { 0x1F4F8, 0x1F4F8 },
+    { 0x1F4FD, 0x1F4FF },
+    { 0x1F53E, 0x1F54F },
+    { 0x1F568, 0x1F5FA },
+    { 0x1F600, 0x1F600 },
+    { 0x1F611, 0x1F611 },
+    { 0x1F615, 0x1F615 },
+    { 0x1F617, 0x1F617 },
+    { 0x1F619, 0x1F619 },
+    { 0x1F61B, 0x1F61B },
+    { 0x1F61F, 0x1F61F },
+    { 0x1F626, 0x1F627 },
+    { 0x1F62C, 0x1F62C },
+    { 0x1F62E, 0x1F62F },
+    { 0x1F634, 0x1F634 },
+    { 0x1F641, 0x1F644 },
+    { 0x1F650, 0x1F67F },
+    { 0x1F6C6, 0x1F6FF },
+    { 0x1F774, 0x1FFFF },
+    { 0x2A6D7, 0x2A6FF },
+    { 0x2B735, 0x2B73F },
+    { 0x2B81E, 0x2F7FF },
     { 0x2FA1E, 0xE0000 },
     { 0xE0002, 0xE001F },
     { 0xE0080, 0xE00FF },
index f401917..ea09ed0 100644 (file)
     { 0x038E, 0x03A1 },
     { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0523 },
+    { 0x048A, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x064A },
+    { 0x0620, 0x064A },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
     { 0x06D5, 0x06D5 },
     { 0x07CA, 0x07EA },
     { 0x07F4, 0x07F5 },
     { 0x07FA, 0x07FA },
+    { 0x0800, 0x0815 },
+    { 0x081A, 0x081A },
+    { 0x0824, 0x0824 },
+    { 0x0828, 0x0828 },
+    { 0x0840, 0x0858 },
     { 0x0904, 0x0939 },
     { 0x093D, 0x093D },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
-    { 0x0971, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x0971, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
     { 0x0993, 0x09A8 },
     { 0x0CBD, 0x0CBD },
     { 0x0CDE, 0x0CDE },
     { 0x0CE0, 0x0CE1 },
+    { 0x0CF1, 0x0CF2 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D3D },
+    { 0x0D4E, 0x0D4E },
     { 0x0D60, 0x0D61 },
     { 0x0D7A, 0x0D7F },
     { 0x0D85, 0x0D96 },
     { 0x0F00, 0x0F00 },
     { 0x0F40, 0x0F47 },
     { 0x0F49, 0x0F6C },
-    { 0x0F88, 0x0F8B },
+    { 0x0F88, 0x0F8C },
     { 0x1000, 0x102A },
     { 0x103F, 0x103F },
     { 0x1050, 0x1055 },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x1380, 0x138F },
     { 0x13A0, 0x13F4 },
     { 0x1401, 0x166C },
-    { 0x166F, 0x1676 },
+    { 0x166F, 0x167F },
     { 0x1681, 0x169A },
     { 0x16A0, 0x16EA },
     { 0x1700, 0x170C },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
     { 0x18AA, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1950, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19C1, 0x19C7 },
     { 0x1A00, 0x1A16 },
+    { 0x1A20, 0x1A54 },
+    { 0x1AA7, 0x1AA7 },
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
     { 0x1B83, 0x1BA0 },
     { 0x1BAE, 0x1BAF },
+    { 0x1BC0, 0x1BE5 },
     { 0x1C00, 0x1C23 },
     { 0x1C4D, 0x1C4F },
     { 0x1C5A, 0x1C7D },
+    { 0x1CE9, 0x1CEC },
+    { 0x1CEE, 0x1CF1 },
     { 0x1D00, 0x1DBF },
     { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1FF6, 0x1FFC },
     { 0x2071, 0x2071 },
     { 0x207F, 0x207F },
-    { 0x2090, 0x2094 },
+    { 0x2090, 0x209C },
     { 0x2102, 0x2102 },
     { 0x2107, 0x2107 },
     { 0x210A, 0x2113 },
     { 0x2183, 0x2184 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CE4 },
+    { 0x2C60, 0x2CE4 },
+    { 0x2CEB, 0x2CEE },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
     { 0x2D6F, 0x2D6F },
     { 0x30FC, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x31A0, 0x31B7 },
+    { 0x31A0, 0x31BA },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FC3 },
+    { 0x4E00, 0x9FCB },
     { 0xA000, 0xA48C },
+    { 0xA4D0, 0xA4FD },
     { 0xA500, 0xA60C },
     { 0xA610, 0xA61F },
     { 0xA62A, 0xA62B },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA66E },
+    { 0xA640, 0xA66E },
     { 0xA67F, 0xA697 },
+    { 0xA6A0, 0xA6E5 },
     { 0xA717, 0xA71F },
     { 0xA722, 0xA788 },
-    { 0xA78B, 0xA78C },
-    { 0xA7FB, 0xA801 },
+    { 0xA78B, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
     { 0xA882, 0xA8B3 },
+    { 0xA8F2, 0xA8F7 },
+    { 0xA8FB, 0xA8FB },
     { 0xA90A, 0xA925 },
     { 0xA930, 0xA946 },
+    { 0xA960, 0xA97C },
+    { 0xA984, 0xA9B2 },
+    { 0xA9CF, 0xA9CF },
     { 0xAA00, 0xAA28 },
     { 0xAA40, 0xAA42 },
     { 0xAA44, 0xAA4B },
+    { 0xAA60, 0xAA76 },
+    { 0xAA7A, 0xAA7A },
+    { 0xAA80, 0xAAAF },
+    { 0xAAB1, 0xAAB1 },
+    { 0xAAB5, 0xAAB6 },
+    { 0xAAB9, 0xAABD },
+    { 0xAAC0, 0xAAC0 },
+    { 0xAAC2, 0xAAC2 },
+    { 0xAADB, 0xAADD },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABE2 },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xF900, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
+    { 0x1083F, 0x10855 },
     { 0x10900, 0x10915 },
     { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
     { 0x10A19, 0x10A33 },
+    { 0x10A60, 0x10A7C },
+    { 0x10B00, 0x10B35 },
+    { 0x10B40, 0x10B55 },
+    { 0x10B60, 0x10B72 },
+    { 0x10C00, 0x10C48 },
+    { 0x11003, 0x11037 },
+    { 0x11083, 0x110AF },
     { 0x12000, 0x1236E },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x1D400, 0x1D454 },
     { 0x1D456, 0x1D49C },
     { 0x1D49E, 0x1D49F },
     { 0x1D7AA, 0x1D7C2 },
     { 0x1D7C4, 0x1D7CB },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_L)
diff --git a/tests/unictype/test-categ_LC.c b/tests/unictype/test-categ_LC.c
new file mode 100644 (file)
index 0000000..7dcadaf
--- /dev/null
@@ -0,0 +1,132 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "test-predicate-part1.h"
+
+    { 0x0041, 0x005A },
+    { 0x0061, 0x007A },
+    { 0x00AA, 0x00AA },
+    { 0x00B5, 0x00B5 },
+    { 0x00BA, 0x00BA },
+    { 0x00C0, 0x00D6 },
+    { 0x00D8, 0x00F6 },
+    { 0x00F8, 0x01BA },
+    { 0x01BC, 0x01BF },
+    { 0x01C4, 0x0293 },
+    { 0x0295, 0x02AF },
+    { 0x0370, 0x0373 },
+    { 0x0376, 0x0377 },
+    { 0x037B, 0x037D },
+    { 0x0386, 0x0386 },
+    { 0x0388, 0x038A },
+    { 0x038C, 0x038C },
+    { 0x038E, 0x03A1 },
+    { 0x03A3, 0x03F5 },
+    { 0x03F7, 0x0481 },
+    { 0x048A, 0x0527 },
+    { 0x0531, 0x0556 },
+    { 0x0561, 0x0587 },
+    { 0x10A0, 0x10C5 },
+    { 0x1D00, 0x1D2B },
+    { 0x1D62, 0x1D77 },
+    { 0x1D79, 0x1D9A },
+    { 0x1E00, 0x1F15 },
+    { 0x1F18, 0x1F1D },
+    { 0x1F20, 0x1F45 },
+    { 0x1F48, 0x1F4D },
+    { 0x1F50, 0x1F57 },
+    { 0x1F59, 0x1F59 },
+    { 0x1F5B, 0x1F5B },
+    { 0x1F5D, 0x1F5D },
+    { 0x1F5F, 0x1F7D },
+    { 0x1F80, 0x1FB4 },
+    { 0x1FB6, 0x1FBC },
+    { 0x1FBE, 0x1FBE },
+    { 0x1FC2, 0x1FC4 },
+    { 0x1FC6, 0x1FCC },
+    { 0x1FD0, 0x1FD3 },
+    { 0x1FD6, 0x1FDB },
+    { 0x1FE0, 0x1FEC },
+    { 0x1FF2, 0x1FF4 },
+    { 0x1FF6, 0x1FFC },
+    { 0x2102, 0x2102 },
+    { 0x2107, 0x2107 },
+    { 0x210A, 0x2113 },
+    { 0x2115, 0x2115 },
+    { 0x2119, 0x211D },
+    { 0x2124, 0x2124 },
+    { 0x2126, 0x2126 },
+    { 0x2128, 0x2128 },
+    { 0x212A, 0x212D },
+    { 0x212F, 0x2134 },
+    { 0x2139, 0x2139 },
+    { 0x213C, 0x213F },
+    { 0x2145, 0x2149 },
+    { 0x214E, 0x214E },
+    { 0x2183, 0x2184 },
+    { 0x2C00, 0x2C2E },
+    { 0x2C30, 0x2C5E },
+    { 0x2C60, 0x2C7C },
+    { 0x2C7E, 0x2CE4 },
+    { 0x2CEB, 0x2CEE },
+    { 0x2D00, 0x2D25 },
+    { 0xA640, 0xA66D },
+    { 0xA680, 0xA697 },
+    { 0xA722, 0xA76F },
+    { 0xA771, 0xA787 },
+    { 0xA78B, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA7FA },
+    { 0xFB00, 0xFB06 },
+    { 0xFB13, 0xFB17 },
+    { 0xFF21, 0xFF3A },
+    { 0xFF41, 0xFF5A },
+    { 0x10400, 0x1044F },
+    { 0x1D400, 0x1D454 },
+    { 0x1D456, 0x1D49C },
+    { 0x1D49E, 0x1D49F },
+    { 0x1D4A2, 0x1D4A2 },
+    { 0x1D4A5, 0x1D4A6 },
+    { 0x1D4A9, 0x1D4AC },
+    { 0x1D4AE, 0x1D4B9 },
+    { 0x1D4BB, 0x1D4BB },
+    { 0x1D4BD, 0x1D4C3 },
+    { 0x1D4C5, 0x1D505 },
+    { 0x1D507, 0x1D50A },
+    { 0x1D50D, 0x1D514 },
+    { 0x1D516, 0x1D51C },
+    { 0x1D51E, 0x1D539 },
+    { 0x1D53B, 0x1D53E },
+    { 0x1D540, 0x1D544 },
+    { 0x1D546, 0x1D546 },
+    { 0x1D54A, 0x1D550 },
+    { 0x1D552, 0x1D6A5 },
+    { 0x1D6A8, 0x1D6C0 },
+    { 0x1D6C2, 0x1D6DA },
+    { 0x1D6DC, 0x1D6FA },
+    { 0x1D6FC, 0x1D714 },
+    { 0x1D716, 0x1D734 },
+    { 0x1D736, 0x1D74E },
+    { 0x1D750, 0x1D76E },
+    { 0x1D770, 0x1D788 },
+    { 0x1D78A, 0x1D7A8 },
+    { 0x1D7AA, 0x1D7C2 },
+    { 0x1D7C4, 0x1D7CB }
+
+#define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_LC)
+#include "test-predicate-part2.h"
index 7cd4ac3..51770c1 100644 (file)
     { 0x051F, 0x051F },
     { 0x0521, 0x0521 },
     { 0x0523, 0x0523 },
+    { 0x0525, 0x0525 },
+    { 0x0527, 0x0527 },
     { 0x0561, 0x0587 },
     { 0x1D00, 0x1D2B },
     { 0x1D62, 0x1D77 },
     { 0x1FE0, 0x1FE7 },
     { 0x1FF2, 0x1FF4 },
     { 0x1FF6, 0x1FF7 },
-    { 0x2071, 0x2071 },
-    { 0x207F, 0x207F },
     { 0x210A, 0x210A },
     { 0x210E, 0x210F },
     { 0x2113, 0x2113 },
     { 0x2CDF, 0x2CDF },
     { 0x2CE1, 0x2CE1 },
     { 0x2CE3, 0x2CE4 },
+    { 0x2CEC, 0x2CEC },
+    { 0x2CEE, 0x2CEE },
     { 0x2D00, 0x2D25 },
     { 0xA641, 0xA641 },
     { 0xA643, 0xA643 },
     { 0xA65B, 0xA65B },
     { 0xA65D, 0xA65D },
     { 0xA65F, 0xA65F },
+    { 0xA661, 0xA661 },
     { 0xA663, 0xA663 },
     { 0xA665, 0xA665 },
     { 0xA667, 0xA667 },
     { 0xA785, 0xA785 },
     { 0xA787, 0xA787 },
     { 0xA78C, 0xA78C },
+    { 0xA78E, 0xA78E },
+    { 0xA791, 0xA791 },
+    { 0xA7A1, 0xA7A1 },
+    { 0xA7A3, 0xA7A3 },
+    { 0xA7A5, 0xA7A5 },
+    { 0xA7A7, 0xA7A7 },
+    { 0xA7A9, 0xA7A9 },
+    { 0xA7FA, 0xA7FA },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0xFF41, 0xFF5A },
index 7444b16..38c0f1e 100644 (file)
     { 0x06E5, 0x06E6 },
     { 0x07F4, 0x07F5 },
     { 0x07FA, 0x07FA },
+    { 0x081A, 0x081A },
+    { 0x0824, 0x0824 },
+    { 0x0828, 0x0828 },
     { 0x0971, 0x0971 },
     { 0x0E46, 0x0E46 },
     { 0x0EC6, 0x0EC6 },
     { 0x10FC, 0x10FC },
     { 0x17D7, 0x17D7 },
     { 0x1843, 0x1843 },
+    { 0x1AA7, 0x1AA7 },
     { 0x1C78, 0x1C7D },
     { 0x1D2C, 0x1D61 },
     { 0x1D78, 0x1D78 },
     { 0x1D9B, 0x1DBF },
-    { 0x2090, 0x2094 },
+    { 0x2071, 0x2071 },
+    { 0x207F, 0x207F },
+    { 0x2090, 0x209C },
     { 0x2C7D, 0x2C7D },
     { 0x2D6F, 0x2D6F },
     { 0x2E2F, 0x2E2F },
     { 0x309D, 0x309E },
     { 0x30FC, 0x30FE },
     { 0xA015, 0xA015 },
+    { 0xA4F8, 0xA4FD },
     { 0xA60C, 0xA60C },
     { 0xA67F, 0xA67F },
     { 0xA717, 0xA71F },
     { 0xA770, 0xA770 },
     { 0xA788, 0xA788 },
+    { 0xA9CF, 0xA9CF },
+    { 0xAA70, 0xAA70 },
+    { 0xAADD, 0xAADD },
     { 0xFF70, 0xFF70 },
     { 0xFF9E, 0xFF9F }
 
index aaf6996..e271bc3 100644 (file)
@@ -22,7 +22,7 @@
     { 0x0294, 0x0294 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x063F },
+    { 0x0620, 0x063F },
     { 0x0641, 0x064A },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
     { 0x074D, 0x07A5 },
     { 0x07B1, 0x07B1 },
     { 0x07CA, 0x07EA },
+    { 0x0800, 0x0815 },
+    { 0x0840, 0x0858 },
     { 0x0904, 0x0939 },
     { 0x093D, 0x093D },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
-    { 0x0972, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x0972, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
     { 0x0993, 0x09A8 },
     { 0x0CBD, 0x0CBD },
     { 0x0CDE, 0x0CDE },
     { 0x0CE0, 0x0CE1 },
+    { 0x0CF1, 0x0CF2 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D3D },
+    { 0x0D4E, 0x0D4E },
     { 0x0D60, 0x0D61 },
     { 0x0D7A, 0x0D7F },
     { 0x0D85, 0x0D96 },
     { 0x0F00, 0x0F00 },
     { 0x0F40, 0x0F47 },
     { 0x0F49, 0x0F6C },
-    { 0x0F88, 0x0F8B },
+    { 0x0F88, 0x0F8C },
     { 0x1000, 0x102A },
     { 0x103F, 0x103F },
     { 0x1050, 0x1055 },
     { 0x1075, 0x1081 },
     { 0x108E, 0x108E },
     { 0x10D0, 0x10FA },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x1380, 0x138F },
     { 0x13A0, 0x13F4 },
     { 0x1401, 0x166C },
-    { 0x166F, 0x1676 },
+    { 0x166F, 0x167F },
     { 0x1681, 0x169A },
     { 0x16A0, 0x16EA },
     { 0x1700, 0x170C },
     { 0x1844, 0x1877 },
     { 0x1880, 0x18A8 },
     { 0x18AA, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1950, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19C1, 0x19C7 },
     { 0x1A00, 0x1A16 },
+    { 0x1A20, 0x1A54 },
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
     { 0x1B83, 0x1BA0 },
     { 0x1BAE, 0x1BAF },
+    { 0x1BC0, 0x1BE5 },
     { 0x1C00, 0x1C23 },
     { 0x1C4D, 0x1C4F },
     { 0x1C5A, 0x1C77 },
+    { 0x1CE9, 0x1CEC },
+    { 0x1CEE, 0x1CF1 },
     { 0x2135, 0x2138 },
     { 0x2D30, 0x2D65 },
     { 0x2D80, 0x2D96 },
     { 0x30FF, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x31A0, 0x31B7 },
+    { 0x31A0, 0x31BA },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FC3 },
+    { 0x4E00, 0x9FCB },
     { 0xA000, 0xA014 },
     { 0xA016, 0xA48C },
+    { 0xA4D0, 0xA4F7 },
     { 0xA500, 0xA60B },
     { 0xA610, 0xA61F },
     { 0xA62A, 0xA62B },
     { 0xA66E, 0xA66E },
+    { 0xA6A0, 0xA6E5 },
     { 0xA7FB, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
     { 0xA882, 0xA8B3 },
+    { 0xA8F2, 0xA8F7 },
+    { 0xA8FB, 0xA8FB },
     { 0xA90A, 0xA925 },
     { 0xA930, 0xA946 },
+    { 0xA960, 0xA97C },
+    { 0xA984, 0xA9B2 },
     { 0xAA00, 0xAA28 },
     { 0xAA40, 0xAA42 },
     { 0xAA44, 0xAA4B },
+    { 0xAA60, 0xAA6F },
+    { 0xAA71, 0xAA76 },
+    { 0xAA7A, 0xAA7A },
+    { 0xAA80, 0xAAAF },
+    { 0xAAB1, 0xAAB1 },
+    { 0xAAB5, 0xAAB6 },
+    { 0xAAB9, 0xAABD },
+    { 0xAAC0, 0xAAC0 },
+    { 0xAAC2, 0xAAC2 },
+    { 0xAADB, 0xAADC },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABE2 },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xF900, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB1D, 0xFB1D },
     { 0xFB1F, 0xFB28 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
+    { 0x1083F, 0x10855 },
     { 0x10900, 0x10915 },
     { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
     { 0x10A19, 0x10A33 },
+    { 0x10A60, 0x10A7C },
+    { 0x10B00, 0x10B35 },
+    { 0x10B40, 0x10B55 },
+    { 0x10B60, 0x10B72 },
+    { 0x10C00, 0x10C48 },
+    { 0x11003, 0x11037 },
+    { 0x11083, 0x110AF },
     { 0x12000, 0x1236E },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Lo)
index 1ed6b40..b10df2e 100644 (file)
     { 0x051E, 0x051E },
     { 0x0520, 0x0520 },
     { 0x0522, 0x0522 },
+    { 0x0524, 0x0524 },
+    { 0x0526, 0x0526 },
     { 0x0531, 0x0556 },
     { 0x10A0, 0x10C5 },
     { 0x1E00, 0x1E00 },
     { 0x2C67, 0x2C67 },
     { 0x2C69, 0x2C69 },
     { 0x2C6B, 0x2C6B },
-    { 0x2C6D, 0x2C6F },
+    { 0x2C6D, 0x2C70 },
     { 0x2C72, 0x2C72 },
     { 0x2C75, 0x2C75 },
-    { 0x2C80, 0x2C80 },
+    { 0x2C7E, 0x2C80 },
     { 0x2C82, 0x2C82 },
     { 0x2C84, 0x2C84 },
     { 0x2C86, 0x2C86 },
     { 0x2CDE, 0x2CDE },
     { 0x2CE0, 0x2CE0 },
     { 0x2CE2, 0x2CE2 },
+    { 0x2CEB, 0x2CEB },
+    { 0x2CED, 0x2CED },
     { 0xA640, 0xA640 },
     { 0xA642, 0xA642 },
     { 0xA644, 0xA644 },
     { 0xA65A, 0xA65A },
     { 0xA65C, 0xA65C },
     { 0xA65E, 0xA65E },
+    { 0xA660, 0xA660 },
     { 0xA662, 0xA662 },
     { 0xA664, 0xA664 },
     { 0xA666, 0xA666 },
     { 0xA784, 0xA784 },
     { 0xA786, 0xA786 },
     { 0xA78B, 0xA78B },
+    { 0xA78D, 0xA78D },
+    { 0xA790, 0xA790 },
+    { 0xA7A0, 0xA7A0 },
+    { 0xA7A2, 0xA7A2 },
+    { 0xA7A4, 0xA7A4 },
+    { 0xA7A6, 0xA7A6 },
+    { 0xA7A8, 0xA7A8 },
     { 0xFF21, 0xFF3A },
     { 0x10400, 0x10427 },
     { 0x1D400, 0x1D419 },
index c6138d6..e009a4b 100644 (file)
     { 0x05C4, 0x05C5 },
     { 0x05C7, 0x05C7 },
     { 0x0610, 0x061A },
-    { 0x064B, 0x065E },
+    { 0x064B, 0x065F },
     { 0x0670, 0x0670 },
     { 0x06D6, 0x06DC },
-    { 0x06DE, 0x06E4 },
+    { 0x06DF, 0x06E4 },
     { 0x06E7, 0x06E8 },
     { 0x06EA, 0x06ED },
     { 0x0711, 0x0711 },
     { 0x0730, 0x074A },
     { 0x07A6, 0x07B0 },
     { 0x07EB, 0x07F3 },
-    { 0x0901, 0x0903 },
-    { 0x093C, 0x093C },
-    { 0x093E, 0x094D },
-    { 0x0951, 0x0954 },
+    { 0x0816, 0x0819 },
+    { 0x081B, 0x0823 },
+    { 0x0825, 0x0827 },
+    { 0x0829, 0x082D },
+    { 0x0859, 0x085B },
+    { 0x0900, 0x0903 },
+    { 0x093A, 0x093C },
+    { 0x093E, 0x094F },
+    { 0x0951, 0x0957 },
     { 0x0962, 0x0963 },
     { 0x0981, 0x0983 },
     { 0x09BC, 0x09BC },
     { 0x0F3E, 0x0F3F },
     { 0x0F71, 0x0F84 },
     { 0x0F86, 0x0F87 },
-    { 0x0F90, 0x0F97 },
+    { 0x0F8D, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
     { 0x102B, 0x103E },
     { 0x1071, 0x1074 },
     { 0x1082, 0x108D },
     { 0x108F, 0x108F },
-    { 0x135F, 0x135F },
+    { 0x109A, 0x109D },
+    { 0x135D, 0x135F },
     { 0x1712, 0x1714 },
     { 0x1732, 0x1734 },
     { 0x1752, 0x1753 },
     { 0x19B0, 0x19C0 },
     { 0x19C8, 0x19C9 },
     { 0x1A17, 0x1A1B },
+    { 0x1A55, 0x1A5E },
+    { 0x1A60, 0x1A7C },
+    { 0x1A7F, 0x1A7F },
     { 0x1B00, 0x1B04 },
     { 0x1B34, 0x1B44 },
     { 0x1B6B, 0x1B73 },
     { 0x1B80, 0x1B82 },
     { 0x1BA1, 0x1BAA },
+    { 0x1BE6, 0x1BF3 },
     { 0x1C24, 0x1C37 },
+    { 0x1CD0, 0x1CD2 },
+    { 0x1CD4, 0x1CE8 },
+    { 0x1CED, 0x1CED },
+    { 0x1CF2, 0x1CF2 },
     { 0x1DC0, 0x1DE6 },
-    { 0x1DFE, 0x1DFF },
+    { 0x1DFC, 0x1DFF },
     { 0x20D0, 0x20F0 },
+    { 0x2CEF, 0x2CF1 },
+    { 0x2D7F, 0x2D7F },
     { 0x2DE0, 0x2DFF },
     { 0x302A, 0x302F },
     { 0x3099, 0x309A },
     { 0xA66F, 0xA672 },
     { 0xA67C, 0xA67D },
+    { 0xA6F0, 0xA6F1 },
     { 0xA802, 0xA802 },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA823, 0xA827 },
     { 0xA880, 0xA881 },
     { 0xA8B4, 0xA8C4 },
+    { 0xA8E0, 0xA8F1 },
     { 0xA926, 0xA92D },
     { 0xA947, 0xA953 },
+    { 0xA980, 0xA983 },
+    { 0xA9B3, 0xA9C0 },
     { 0xAA29, 0xAA36 },
     { 0xAA43, 0xAA43 },
     { 0xAA4C, 0xAA4D },
+    { 0xAA7B, 0xAA7B },
+    { 0xAAB0, 0xAAB0 },
+    { 0xAAB2, 0xAAB4 },
+    { 0xAAB7, 0xAAB8 },
+    { 0xAABE, 0xAABF },
+    { 0xAAC1, 0xAAC1 },
+    { 0xABE3, 0xABEA },
+    { 0xABEC, 0xABED },
     { 0xFB1E, 0xFB1E },
     { 0xFE00, 0xFE0F },
     { 0xFE20, 0xFE26 },
     { 0x10A0C, 0x10A0F },
     { 0x10A38, 0x10A3A },
     { 0x10A3F, 0x10A3F },
+    { 0x11000, 0x11002 },
+    { 0x11038, 0x11046 },
+    { 0x11080, 0x11082 },
+    { 0x110B0, 0x110BA },
     { 0x1D165, 0x1D169 },
     { 0x1D16D, 0x1D172 },
     { 0x1D17B, 0x1D182 },
index 4984b4b..1008eae 100644 (file)
 #include "test-predicate-part1.h"
 
     { 0x0903, 0x0903 },
+    { 0x093B, 0x093B },
     { 0x093E, 0x0940 },
     { 0x0949, 0x094C },
+    { 0x094E, 0x094F },
     { 0x0982, 0x0983 },
     { 0x09BE, 0x09C0 },
     { 0x09C7, 0x09C8 },
@@ -71,6 +73,7 @@
     { 0x1083, 0x1084 },
     { 0x1087, 0x108C },
     { 0x108F, 0x108F },
+    { 0x109A, 0x109C },
     { 0x17B6, 0x17B6 },
     { 0x17BE, 0x17C5 },
     { 0x17C7, 0x17C8 },
     { 0x19B0, 0x19C0 },
     { 0x19C8, 0x19C9 },
     { 0x1A19, 0x1A1B },
+    { 0x1A55, 0x1A55 },
+    { 0x1A57, 0x1A57 },
+    { 0x1A61, 0x1A61 },
+    { 0x1A63, 0x1A64 },
+    { 0x1A6D, 0x1A72 },
     { 0x1B04, 0x1B04 },
     { 0x1B35, 0x1B35 },
     { 0x1B3B, 0x1B3B },
     { 0x1BA1, 0x1BA1 },
     { 0x1BA6, 0x1BA7 },
     { 0x1BAA, 0x1BAA },
+    { 0x1BE7, 0x1BE7 },
+    { 0x1BEA, 0x1BEC },
+    { 0x1BEE, 0x1BEE },
+    { 0x1BF2, 0x1BF3 },
     { 0x1C24, 0x1C2B },
     { 0x1C34, 0x1C35 },
+    { 0x1CE1, 0x1CE1 },
+    { 0x1CF2, 0x1CF2 },
     { 0xA823, 0xA824 },
     { 0xA827, 0xA827 },
     { 0xA880, 0xA881 },
     { 0xA8B4, 0xA8C3 },
     { 0xA952, 0xA953 },
+    { 0xA983, 0xA983 },
+    { 0xA9B4, 0xA9B5 },
+    { 0xA9BA, 0xA9BB },
+    { 0xA9BD, 0xA9C0 },
     { 0xAA2F, 0xAA30 },
     { 0xAA33, 0xAA34 },
     { 0xAA4D, 0xAA4D },
+    { 0xAA7B, 0xAA7B },
+    { 0xABE3, 0xABE4 },
+    { 0xABE6, 0xABE7 },
+    { 0xABE9, 0xABEA },
+    { 0xABEC, 0xABEC },
+    { 0x11000, 0x11000 },
+    { 0x11002, 0x11002 },
+    { 0x11082, 0x11082 },
+    { 0x110B0, 0x110B2 },
+    { 0x110B7, 0x110B8 },
     { 0x1D165, 0x1D166 },
     { 0x1D16D, 0x1D172 }
 
index f8aa385..0352ed2 100644 (file)
@@ -18,7 +18,6 @@
 #include "test-predicate-part1.h"
 
     { 0x0488, 0x0489 },
-    { 0x06DE, 0x06DE },
     { 0x20DD, 0x20E0 },
     { 0x20E2, 0x20E4 },
     { 0xA670, 0xA672 }
index a29b6e5..4c7a838 100644 (file)
@@ -25,7 +25,7 @@
     { 0x05C4, 0x05C5 },
     { 0x05C7, 0x05C7 },
     { 0x0610, 0x061A },
-    { 0x064B, 0x065E },
+    { 0x064B, 0x065F },
     { 0x0670, 0x0670 },
     { 0x06D6, 0x06DC },
     { 0x06DF, 0x06E4 },
     { 0x0730, 0x074A },
     { 0x07A6, 0x07B0 },
     { 0x07EB, 0x07F3 },
-    { 0x0901, 0x0902 },
+    { 0x0816, 0x0819 },
+    { 0x081B, 0x0823 },
+    { 0x0825, 0x0827 },
+    { 0x0829, 0x082D },
+    { 0x0859, 0x085B },
+    { 0x0900, 0x0902 },
+    { 0x093A, 0x093A },
     { 0x093C, 0x093C },
     { 0x0941, 0x0948 },
     { 0x094D, 0x094D },
-    { 0x0951, 0x0954 },
+    { 0x0951, 0x0957 },
     { 0x0962, 0x0963 },
     { 0x0981, 0x0981 },
     { 0x09BC, 0x09BC },
     { 0x0F71, 0x0F7E },
     { 0x0F80, 0x0F84 },
     { 0x0F86, 0x0F87 },
-    { 0x0F90, 0x0F97 },
+    { 0x0F8D, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
     { 0x102D, 0x1030 },
     { 0x1082, 0x1082 },
     { 0x1085, 0x1086 },
     { 0x108D, 0x108D },
-    { 0x135F, 0x135F },
+    { 0x109D, 0x109D },
+    { 0x135D, 0x135F },
     { 0x1712, 0x1714 },
     { 0x1732, 0x1734 },
     { 0x1752, 0x1753 },
     { 0x1932, 0x1932 },
     { 0x1939, 0x193B },
     { 0x1A17, 0x1A18 },
+    { 0x1A56, 0x1A56 },
+    { 0x1A58, 0x1A5E },
+    { 0x1A60, 0x1A60 },
+    { 0x1A62, 0x1A62 },
+    { 0x1A65, 0x1A6C },
+    { 0x1A73, 0x1A7C },
+    { 0x1A7F, 0x1A7F },
     { 0x1B00, 0x1B03 },
     { 0x1B34, 0x1B34 },
     { 0x1B36, 0x1B3A },
     { 0x1B80, 0x1B81 },
     { 0x1BA2, 0x1BA5 },
     { 0x1BA8, 0x1BA9 },
+    { 0x1BE6, 0x1BE6 },
+    { 0x1BE8, 0x1BE9 },
+    { 0x1BED, 0x1BED },
+    { 0x1BEF, 0x1BF1 },
     { 0x1C2C, 0x1C33 },
     { 0x1C36, 0x1C37 },
+    { 0x1CD0, 0x1CD2 },
+    { 0x1CD4, 0x1CE0 },
+    { 0x1CE2, 0x1CE8 },
+    { 0x1CED, 0x1CED },
     { 0x1DC0, 0x1DE6 },
-    { 0x1DFE, 0x1DFF },
+    { 0x1DFC, 0x1DFF },
     { 0x20D0, 0x20DC },
     { 0x20E1, 0x20E1 },
     { 0x20E5, 0x20F0 },
+    { 0x2CEF, 0x2CF1 },
+    { 0x2D7F, 0x2D7F },
     { 0x2DE0, 0x2DFF },
     { 0x302A, 0x302F },
     { 0x3099, 0x309A },
     { 0xA66F, 0xA66F },
     { 0xA67C, 0xA67D },
+    { 0xA6F0, 0xA6F1 },
     { 0xA802, 0xA802 },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA825, 0xA826 },
     { 0xA8C4, 0xA8C4 },
+    { 0xA8E0, 0xA8F1 },
     { 0xA926, 0xA92D },
     { 0xA947, 0xA951 },
+    { 0xA980, 0xA982 },
+    { 0xA9B3, 0xA9B3 },
+    { 0xA9B6, 0xA9B9 },
+    { 0xA9BC, 0xA9BC },
     { 0xAA29, 0xAA2E },
     { 0xAA31, 0xAA32 },
     { 0xAA35, 0xAA36 },
     { 0xAA43, 0xAA43 },
     { 0xAA4C, 0xAA4C },
+    { 0xAAB0, 0xAAB0 },
+    { 0xAAB2, 0xAAB4 },
+    { 0xAAB7, 0xAAB8 },
+    { 0xAABE, 0xAABF },
+    { 0xAAC1, 0xAAC1 },
+    { 0xABE5, 0xABE5 },
+    { 0xABE8, 0xABE8 },
+    { 0xABED, 0xABED },
     { 0xFB1E, 0xFB1E },
     { 0xFE00, 0xFE0F },
     { 0xFE20, 0xFE26 },
     { 0x10A0C, 0x10A0F },
     { 0x10A38, 0x10A3A },
     { 0x10A3F, 0x10A3F },
+    { 0x11001, 0x11001 },
+    { 0x11038, 0x11046 },
+    { 0x11080, 0x11081 },
+    { 0x110B3, 0x110B6 },
+    { 0x110B9, 0x110BA },
     { 0x1D167, 0x1D169 },
     { 0x1D17B, 0x1D182 },
     { 0x1D185, 0x1D18B },
index 219b6c7..f58ddd0 100644 (file)
@@ -30,6 +30,7 @@
     { 0x0A66, 0x0A6F },
     { 0x0AE6, 0x0AEF },
     { 0x0B66, 0x0B6F },
+    { 0x0B72, 0x0B77 },
     { 0x0BE6, 0x0BF2 },
     { 0x0C66, 0x0C6F },
     { 0x0C78, 0x0C7E },
@@ -46,7 +47,9 @@
     { 0x17F0, 0x17F9 },
     { 0x1810, 0x1819 },
     { 0x1946, 0x194F },
-    { 0x19D0, 0x19D9 },
+    { 0x19D0, 0x19DA },
+    { 0x1A80, 0x1A89 },
+    { 0x1A90, 0x1A99 },
     { 0x1B50, 0x1B59 },
     { 0x1BB0, 0x1BB9 },
     { 0x1C40, 0x1C49 },
@@ -54,8 +57,8 @@
     { 0x2070, 0x2070 },
     { 0x2074, 0x2079 },
     { 0x2080, 0x2089 },
-    { 0x2153, 0x2182 },
-    { 0x2185, 0x2188 },
+    { 0x2150, 0x2182 },
+    { 0x2185, 0x2189 },
     { 0x2460, 0x249B },
     { 0x24EA, 0x24FF },
     { 0x2776, 0x2793 },
     { 0x3280, 0x3289 },
     { 0x32B1, 0x32BF },
     { 0xA620, 0xA629 },
+    { 0xA6E6, 0xA6EF },
+    { 0xA830, 0xA835 },
     { 0xA8D0, 0xA8D9 },
     { 0xA900, 0xA909 },
+    { 0xA9D0, 0xA9D9 },
     { 0xAA50, 0xAA59 },
+    { 0xABF0, 0xABF9 },
     { 0xFF10, 0xFF19 },
     { 0x10107, 0x10133 },
     { 0x10140, 0x10178 },
     { 0x1034A, 0x1034A },
     { 0x103D1, 0x103D5 },
     { 0x104A0, 0x104A9 },
-    { 0x10916, 0x10919 },
+    { 0x10858, 0x1085F },
+    { 0x10916, 0x1091B },
     { 0x10A40, 0x10A47 },
+    { 0x10A7D, 0x10A7E },
+    { 0x10B58, 0x10B5F },
+    { 0x10B78, 0x10B7F },
+    { 0x10E60, 0x10E7E },
+    { 0x11052, 0x1106F },
     { 0x12400, 0x12462 },
     { 0x1D360, 0x1D371 },
-    { 0x1D7CE, 0x1D7FF }
+    { 0x1D7CE, 0x1D7FF },
+    { 0x1F100, 0x1F10A }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_N)
 #include "test-predicate-part2.h"
index a6170ae..af4138b 100644 (file)
@@ -39,6 +39,8 @@
     { 0x1810, 0x1819 },
     { 0x1946, 0x194F },
     { 0x19D0, 0x19D9 },
+    { 0x1A80, 0x1A89 },
+    { 0x1A90, 0x1A99 },
     { 0x1B50, 0x1B59 },
     { 0x1BB0, 0x1BB9 },
     { 0x1C40, 0x1C49 },
     { 0xA620, 0xA629 },
     { 0xA8D0, 0xA8D9 },
     { 0xA900, 0xA909 },
+    { 0xA9D0, 0xA9D9 },
     { 0xAA50, 0xAA59 },
+    { 0xABF0, 0xABF9 },
     { 0xFF10, 0xFF19 },
     { 0x104A0, 0x104A9 },
+    { 0x11066, 0x1106F },
     { 0x1D7CE, 0x1D7FF }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Nd)
index 0a3207f..f932f4a 100644 (file)
@@ -23,6 +23,7 @@
     { 0x3007, 0x3007 },
     { 0x3021, 0x3029 },
     { 0x3038, 0x303A },
+    { 0xA6E6, 0xA6EF },
     { 0x10140, 0x10174 },
     { 0x10341, 0x10341 },
     { 0x1034A, 0x1034A },
index d800a59..872a038 100644 (file)
     { 0x00B9, 0x00B9 },
     { 0x00BC, 0x00BE },
     { 0x09F4, 0x09F9 },
+    { 0x0B72, 0x0B77 },
     { 0x0BF0, 0x0BF2 },
     { 0x0C78, 0x0C7E },
     { 0x0D70, 0x0D75 },
     { 0x0F2A, 0x0F33 },
     { 0x1369, 0x137C },
     { 0x17F0, 0x17F9 },
+    { 0x19DA, 0x19DA },
     { 0x2070, 0x2070 },
     { 0x2074, 0x2079 },
     { 0x2080, 0x2089 },
-    { 0x2153, 0x215F },
+    { 0x2150, 0x215F },
+    { 0x2189, 0x2189 },
     { 0x2460, 0x249B },
     { 0x24EA, 0x24FF },
     { 0x2776, 0x2793 },
     { 0x3251, 0x325F },
     { 0x3280, 0x3289 },
     { 0x32B1, 0x32BF },
+    { 0xA830, 0xA835 },
     { 0x10107, 0x10133 },
     { 0x10175, 0x10178 },
     { 0x1018A, 0x1018A },
     { 0x10320, 0x10323 },
-    { 0x10916, 0x10919 },
+    { 0x10858, 0x1085F },
+    { 0x10916, 0x1091B },
     { 0x10A40, 0x10A47 },
-    { 0x1D360, 0x1D371 }
+    { 0x10A7D, 0x10A7E },
+    { 0x10B58, 0x10B5F },
+    { 0x10B78, 0x10B7F },
+    { 0x10E60, 0x10E7E },
+    { 0x11052, 0x11065 },
+    { 0x1D360, 0x1D371 },
+    { 0x1F100, 0x1F10A }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_No)
 #include "test-predicate-part2.h"
index 38587b0..8454bf7 100644 (file)
@@ -48,6 +48,8 @@
     { 0x06D4, 0x06D4 },
     { 0x0700, 0x070D },
     { 0x07F7, 0x07F9 },
+    { 0x0830, 0x083E },
+    { 0x085E, 0x085E },
     { 0x0964, 0x0965 },
     { 0x0970, 0x0970 },
     { 0x0DF4, 0x0DF4 },
     { 0x0F3A, 0x0F3D },
     { 0x0F85, 0x0F85 },
     { 0x0FD0, 0x0FD4 },
+    { 0x0FD9, 0x0FDA },
     { 0x104A, 0x104F },
     { 0x10FB, 0x10FB },
     { 0x1361, 0x1368 },
+    { 0x1400, 0x1400 },
     { 0x166D, 0x166E },
     { 0x169B, 0x169C },
     { 0x16EB, 0x16ED },
     { 0x17D8, 0x17DA },
     { 0x1800, 0x180A },
     { 0x1944, 0x1945 },
-    { 0x19DE, 0x19DF },
     { 0x1A1E, 0x1A1F },
+    { 0x1AA0, 0x1AA6 },
+    { 0x1AA8, 0x1AAD },
     { 0x1B5A, 0x1B60 },
+    { 0x1BFC, 0x1BFF },
     { 0x1C3B, 0x1C3F },
     { 0x1C7E, 0x1C7F },
+    { 0x1CD3, 0x1CD3 },
     { 0x2010, 0x2027 },
     { 0x2030, 0x2043 },
     { 0x2045, 0x2051 },
@@ -88,8 +95,9 @@
     { 0x29FC, 0x29FD },
     { 0x2CF9, 0x2CFC },
     { 0x2CFE, 0x2CFF },
+    { 0x2D70, 0x2D70 },
     { 0x2E00, 0x2E2E },
-    { 0x2E30, 0x2E30 },
+    { 0x2E30, 0x2E31 },
     { 0x3001, 0x3003 },
     { 0x3008, 0x3011 },
     { 0x3014, 0x301F },
     { 0x303D, 0x303D },
     { 0x30A0, 0x30A0 },
     { 0x30FB, 0x30FB },
+    { 0xA4FE, 0xA4FF },
     { 0xA60D, 0xA60F },
     { 0xA673, 0xA673 },
     { 0xA67E, 0xA67E },
+    { 0xA6F2, 0xA6F7 },
     { 0xA874, 0xA877 },
     { 0xA8CE, 0xA8CF },
+    { 0xA8F8, 0xA8FA },
     { 0xA92E, 0xA92F },
     { 0xA95F, 0xA95F },
+    { 0xA9C1, 0xA9CD },
+    { 0xA9DE, 0xA9DF },
     { 0xAA5C, 0xAA5F },
+    { 0xAADE, 0xAADF },
+    { 0xABEB, 0xABEB },
     { 0xFD3E, 0xFD3F },
     { 0xFE10, 0xFE19 },
     { 0xFE30, 0xFE52 },
     { 0x10100, 0x10101 },
     { 0x1039F, 0x1039F },
     { 0x103D0, 0x103D0 },
+    { 0x10857, 0x10857 },
     { 0x1091F, 0x1091F },
     { 0x1093F, 0x1093F },
     { 0x10A50, 0x10A58 },
+    { 0x10A7F, 0x10A7F },
+    { 0x10B39, 0x10B3F },
+    { 0x11047, 0x1104D },
+    { 0x110BB, 0x110BC },
+    { 0x110BE, 0x110C1 },
     { 0x12470, 0x12473 }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_P)
index aae4aea..224b4a6 100644 (file)
@@ -20,6 +20,7 @@
     { 0x002D, 0x002D },
     { 0x058A, 0x058A },
     { 0x05BE, 0x05BE },
+    { 0x1400, 0x1400 },
     { 0x1806, 0x1806 },
     { 0x2010, 0x2015 },
     { 0x2E17, 0x2E17 },
index e84ec76..9ecb505 100644 (file)
@@ -44,6 +44,8 @@
     { 0x06D4, 0x06D4 },
     { 0x0700, 0x070D },
     { 0x07F7, 0x07F9 },
+    { 0x0830, 0x083E },
+    { 0x085E, 0x085E },
     { 0x0964, 0x0965 },
     { 0x0970, 0x0970 },
     { 0x0DF4, 0x0DF4 },
@@ -52,6 +54,7 @@
     { 0x0F04, 0x0F12 },
     { 0x0F85, 0x0F85 },
     { 0x0FD0, 0x0FD4 },
+    { 0x0FD9, 0x0FDA },
     { 0x104A, 0x104F },
     { 0x10FB, 0x10FB },
     { 0x1361, 0x1368 },
     { 0x1800, 0x1805 },
     { 0x1807, 0x180A },
     { 0x1944, 0x1945 },
-    { 0x19DE, 0x19DF },
     { 0x1A1E, 0x1A1F },
+    { 0x1AA0, 0x1AA6 },
+    { 0x1AA8, 0x1AAD },
     { 0x1B5A, 0x1B60 },
+    { 0x1BFC, 0x1BFF },
     { 0x1C3B, 0x1C3F },
     { 0x1C7E, 0x1C7F },
+    { 0x1CD3, 0x1CD3 },
     { 0x2016, 0x2017 },
     { 0x2020, 0x2027 },
     { 0x2030, 0x2038 },
@@ -78,6 +84,7 @@
     { 0x2055, 0x205E },
     { 0x2CF9, 0x2CFC },
     { 0x2CFE, 0x2CFF },
+    { 0x2D70, 0x2D70 },
     { 0x2E00, 0x2E01 },
     { 0x2E06, 0x2E08 },
     { 0x2E0B, 0x2E0B },
     { 0x2E1B, 0x2E1B },
     { 0x2E1E, 0x2E1F },
     { 0x2E2A, 0x2E2E },
-    { 0x2E30, 0x2E30 },
+    { 0x2E30, 0x2E31 },
     { 0x3001, 0x3003 },
     { 0x303D, 0x303D },
     { 0x30FB, 0x30FB },
+    { 0xA4FE, 0xA4FF },
     { 0xA60D, 0xA60F },
     { 0xA673, 0xA673 },
     { 0xA67E, 0xA67E },
+    { 0xA6F2, 0xA6F7 },
     { 0xA874, 0xA877 },
     { 0xA8CE, 0xA8CF },
+    { 0xA8F8, 0xA8FA },
     { 0xA92E, 0xA92F },
     { 0xA95F, 0xA95F },
+    { 0xA9C1, 0xA9CD },
+    { 0xA9DE, 0xA9DF },
     { 0xAA5C, 0xAA5F },
+    { 0xAADE, 0xAADF },
+    { 0xABEB, 0xABEB },
     { 0xFE10, 0xFE16 },
     { 0xFE19, 0xFE19 },
     { 0xFE30, 0xFE30 },
     { 0x10100, 0x10101 },
     { 0x1039F, 0x1039F },
     { 0x103D0, 0x103D0 },
+    { 0x10857, 0x10857 },
     { 0x1091F, 0x1091F },
     { 0x1093F, 0x1093F },
     { 0x10A50, 0x10A58 },
+    { 0x10A7F, 0x10A7F },
+    { 0x10B39, 0x10B3F },
+    { 0x11047, 0x1104D },
+    { 0x110BB, 0x110BC },
+    { 0x110BE, 0x110C1 },
     { 0x12470, 0x12473 }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_Po)
index 6f6cdd5..020a009 100644 (file)
     { 0x0606, 0x0608 },
     { 0x060B, 0x060B },
     { 0x060E, 0x060F },
+    { 0x06DE, 0x06DE },
     { 0x06E9, 0x06E9 },
     { 0x06FD, 0x06FE },
     { 0x07F6, 0x07F6 },
     { 0x09F2, 0x09F3 },
-    { 0x09FA, 0x09FA },
+    { 0x09FA, 0x09FB },
     { 0x0AF1, 0x0AF1 },
     { 0x0B70, 0x0B70 },
     { 0x0BF3, 0x0BFA },
     { 0x0C7F, 0x0C7F },
-    { 0x0CF1, 0x0CF2 },
     { 0x0D79, 0x0D79 },
     { 0x0E3F, 0x0E3F },
     { 0x0F01, 0x0F03 },
     { 0x0FBE, 0x0FC5 },
     { 0x0FC7, 0x0FCC },
     { 0x0FCE, 0x0FCF },
+    { 0x0FD5, 0x0FD8 },
     { 0x109E, 0x109F },
     { 0x1360, 0x1360 },
     { 0x1390, 0x1399 },
     { 0x17DB, 0x17DB },
     { 0x1940, 0x1940 },
-    { 0x19E0, 0x19FF },
+    { 0x19DE, 0x19FF },
     { 0x1B61, 0x1B6A },
     { 0x1B74, 0x1B7C },
     { 0x1FBD, 0x1FBD },
@@ -83,7 +84,7 @@
     { 0x2052, 0x2052 },
     { 0x207A, 0x207C },
     { 0x208A, 0x208C },
-    { 0x20A0, 0x20B5 },
+    { 0x20A0, 0x20B9 },
     { 0x2100, 0x2101 },
     { 0x2103, 0x2106 },
     { 0x2108, 0x2109 },
     { 0x214A, 0x214D },
     { 0x214F, 0x214F },
     { 0x2190, 0x2328 },
-    { 0x232B, 0x23E7 },
+    { 0x232B, 0x23F3 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
     { 0x249C, 0x24E9 },
-    { 0x2500, 0x269D },
-    { 0x26A0, 0x26BC },
-    { 0x26C0, 0x26C3 },
-    { 0x2701, 0x2704 },
-    { 0x2706, 0x2709 },
-    { 0x270C, 0x2727 },
-    { 0x2729, 0x274B },
-    { 0x274D, 0x274D },
-    { 0x274F, 0x2752 },
-    { 0x2756, 0x2756 },
-    { 0x2758, 0x275E },
-    { 0x2761, 0x2767 },
-    { 0x2794, 0x2794 },
-    { 0x2798, 0x27AF },
-    { 0x27B1, 0x27BE },
-    { 0x27C0, 0x27C4 },
+    { 0x2500, 0x26FF },
+    { 0x2701, 0x2767 },
+    { 0x2794, 0x27C4 },
     { 0x27C7, 0x27CA },
     { 0x27CC, 0x27CC },
-    { 0x27D0, 0x27E5 },
+    { 0x27CE, 0x27E5 },
     { 0x27F0, 0x2982 },
     { 0x2999, 0x29D7 },
     { 0x29DC, 0x29FB },
     { 0x29FE, 0x2B4C },
-    { 0x2B50, 0x2B54 },
+    { 0x2B50, 0x2B59 },
     { 0x2CE5, 0x2CEA },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x3196, 0x319F },
     { 0x31C0, 0x31E3 },
     { 0x3200, 0x321E },
-    { 0x322A, 0x3243 },
-    { 0x3250, 0x3250 },
+    { 0x322A, 0x3250 },
     { 0x3260, 0x327F },
     { 0x328A, 0x32B0 },
     { 0x32C0, 0x32FE },
     { 0xA720, 0xA721 },
     { 0xA789, 0xA78A },
     { 0xA828, 0xA82B },
+    { 0xA836, 0xA839 },
+    { 0xAA77, 0xAA79 },
     { 0xFB29, 0xFB29 },
+    { 0xFBB2, 0xFBC1 },
     { 0xFDFC, 0xFDFD },
     { 0xFE62, 0xFE62 },
     { 0xFE64, 0xFE66 },
     { 0x1D7A9, 0x1D7A9 },
     { 0x1D7C3, 0x1D7C3 },
     { 0x1F000, 0x1F02B },
-    { 0x1F030, 0x1F093 }
+    { 0x1F030, 0x1F093 },
+    { 0x1F0A0, 0x1F0AE },
+    { 0x1F0B1, 0x1F0BE },
+    { 0x1F0C1, 0x1F0CF },
+    { 0x1F0D1, 0x1F0DF },
+    { 0x1F110, 0x1F12E },
+    { 0x1F130, 0x1F169 },
+    { 0x1F170, 0x1F19A },
+    { 0x1F1E6, 0x1F202 },
+    { 0x1F210, 0x1F23A },
+    { 0x1F240, 0x1F248 },
+    { 0x1F250, 0x1F251 },
+    { 0x1F300, 0x1F320 },
+    { 0x1F330, 0x1F335 },
+    { 0x1F337, 0x1F37C },
+    { 0x1F380, 0x1F393 },
+    { 0x1F3A0, 0x1F3C4 },
+    { 0x1F3C6, 0x1F3CA },
+    { 0x1F3E0, 0x1F3F0 },
+    { 0x1F400, 0x1F43E },
+    { 0x1F440, 0x1F440 },
+    { 0x1F442, 0x1F4F7 },
+    { 0x1F4F9, 0x1F4FC },
+    { 0x1F500, 0x1F53D },
+    { 0x1F550, 0x1F567 },
+    { 0x1F5FB, 0x1F5FF },
+    { 0x1F601, 0x1F610 },
+    { 0x1F612, 0x1F614 },
+    { 0x1F616, 0x1F616 },
+    { 0x1F618, 0x1F618 },
+    { 0x1F61A, 0x1F61A },
+    { 0x1F61C, 0x1F61E },
+    { 0x1F620, 0x1F625 },
+    { 0x1F628, 0x1F62B },
+    { 0x1F62D, 0x1F62D },
+    { 0x1F630, 0x1F633 },
+    { 0x1F635, 0x1F640 },
+    { 0x1F645, 0x1F64F },
+    { 0x1F680, 0x1F6C5 },
+    { 0x1F700, 0x1F773 }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_S)
 #include "test-predicate-part2.h"
index 8ec99a6..d0136c2 100644 (file)
     { 0x00A2, 0x00A5 },
     { 0x060B, 0x060B },
     { 0x09F2, 0x09F3 },
+    { 0x09FB, 0x09FB },
     { 0x0AF1, 0x0AF1 },
     { 0x0BF9, 0x0BF9 },
     { 0x0E3F, 0x0E3F },
     { 0x17DB, 0x17DB },
-    { 0x20A0, 0x20B5 },
+    { 0x20A0, 0x20B9 },
+    { 0xA838, 0xA838 },
     { 0xFDFC, 0xFDFC },
     { 0xFE69, 0xFE69 },
     { 0xFF04, 0xFF04 },
index b0961aa..8bc4e26 100644 (file)
@@ -40,6 +40,7 @@
     { 0xA700, 0xA716 },
     { 0xA720, 0xA721 },
     { 0xA789, 0xA78A },
+    { 0xFBB2, 0xFBC1 },
     { 0xFF3E, 0xFF3E },
     { 0xFF40, 0xFF40 },
     { 0xFFE3, 0xFFE3 }
index b373cb4..6281db9 100644 (file)
@@ -31,6 +31,7 @@
     { 0x2052, 0x2052 },
     { 0x207A, 0x207C },
     { 0x208A, 0x208C },
+    { 0x2118, 0x2118 },
     { 0x2140, 0x2144 },
     { 0x214B, 0x214B },
     { 0x2190, 0x2194 },
@@ -55,7 +56,7 @@
     { 0x27C0, 0x27C4 },
     { 0x27C7, 0x27CA },
     { 0x27CC, 0x27CC },
-    { 0x27D0, 0x27E5 },
+    { 0x27CE, 0x27E5 },
     { 0x27F0, 0x27FF },
     { 0x2900, 0x2982 },
     { 0x2999, 0x29D7 },
index c4c5e3e..a7fcdc6 100644 (file)
@@ -24,6 +24,7 @@
     { 0x00B6, 0x00B6 },
     { 0x0482, 0x0482 },
     { 0x060E, 0x060F },
+    { 0x06DE, 0x06DE },
     { 0x06E9, 0x06E9 },
     { 0x06FD, 0x06FE },
     { 0x07F6, 0x07F6 },
@@ -32,7 +33,6 @@
     { 0x0BF3, 0x0BF8 },
     { 0x0BFA, 0x0BFA },
     { 0x0C7F, 0x0C7F },
-    { 0x0CF1, 0x0CF2 },
     { 0x0D79, 0x0D79 },
     { 0x0F01, 0x0F03 },
     { 0x0F13, 0x0F17 },
     { 0x0FBE, 0x0FC5 },
     { 0x0FC7, 0x0FCC },
     { 0x0FCE, 0x0FCF },
+    { 0x0FD5, 0x0FD8 },
     { 0x109E, 0x109F },
     { 0x1360, 0x1360 },
     { 0x1390, 0x1399 },
     { 0x1940, 0x1940 },
-    { 0x19E0, 0x19FF },
+    { 0x19DE, 0x19FF },
     { 0x1B61, 0x1B6A },
     { 0x1B74, 0x1B7C },
     { 0x2100, 0x2101 },
     { 0x2103, 0x2106 },
     { 0x2108, 0x2109 },
     { 0x2114, 0x2114 },
-    { 0x2116, 0x2118 },
+    { 0x2116, 0x2117 },
     { 0x211E, 0x2123 },
     { 0x2125, 0x2125 },
     { 0x2127, 0x2127 },
@@ -79,7 +80,7 @@
     { 0x232B, 0x237B },
     { 0x237D, 0x239A },
     { 0x23B4, 0x23DB },
-    { 0x23E2, 0x23E7 },
+    { 0x23E2, 0x23F3 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
     { 0x249C, 0x24E9 },
     { 0x25B8, 0x25C0 },
     { 0x25C2, 0x25F7 },
     { 0x2600, 0x266E },
-    { 0x2670, 0x269D },
-    { 0x26A0, 0x26BC },
-    { 0x26C0, 0x26C3 },
-    { 0x2701, 0x2704 },
-    { 0x2706, 0x2709 },
-    { 0x270C, 0x2727 },
-    { 0x2729, 0x274B },
-    { 0x274D, 0x274D },
-    { 0x274F, 0x2752 },
-    { 0x2756, 0x2756 },
-    { 0x2758, 0x275E },
-    { 0x2761, 0x2767 },
-    { 0x2794, 0x2794 },
-    { 0x2798, 0x27AF },
-    { 0x27B1, 0x27BE },
+    { 0x2670, 0x26FF },
+    { 0x2701, 0x2767 },
+    { 0x2794, 0x27BF },
     { 0x2800, 0x28FF },
     { 0x2B00, 0x2B2F },
     { 0x2B45, 0x2B46 },
-    { 0x2B50, 0x2B54 },
+    { 0x2B50, 0x2B59 },
     { 0x2CE5, 0x2CEA },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x3196, 0x319F },
     { 0x31C0, 0x31E3 },
     { 0x3200, 0x321E },
-    { 0x322A, 0x3243 },
-    { 0x3250, 0x3250 },
+    { 0x322A, 0x3250 },
     { 0x3260, 0x327F },
     { 0x328A, 0x32B0 },
     { 0x32C0, 0x32FE },
     { 0x4DC0, 0x4DFF },
     { 0xA490, 0xA4C6 },
     { 0xA828, 0xA82B },
+    { 0xA836, 0xA837 },
+    { 0xA839, 0xA839 },
+    { 0xAA77, 0xAA79 },
     { 0xFDFD, 0xFDFD },
     { 0xFFE4, 0xFFE4 },
     { 0xFFE8, 0xFFE8 },
     { 0x1D245, 0x1D245 },
     { 0x1D300, 0x1D356 },
     { 0x1F000, 0x1F02B },
-    { 0x1F030, 0x1F093 }
+    { 0x1F030, 0x1F093 },
+    { 0x1F0A0, 0x1F0AE },
+    { 0x1F0B1, 0x1F0BE },
+    { 0x1F0C1, 0x1F0CF },
+    { 0x1F0D1, 0x1F0DF },
+    { 0x1F110, 0x1F12E },
+    { 0x1F130, 0x1F169 },
+    { 0x1F170, 0x1F19A },
+    { 0x1F1E6, 0x1F202 },
+    { 0x1F210, 0x1F23A },
+    { 0x1F240, 0x1F248 },
+    { 0x1F250, 0x1F251 },
+    { 0x1F300, 0x1F320 },
+    { 0x1F330, 0x1F335 },
+    { 0x1F337, 0x1F37C },
+    { 0x1F380, 0x1F393 },
+    { 0x1F3A0, 0x1F3C4 },
+    { 0x1F3C6, 0x1F3CA },
+    { 0x1F3E0, 0x1F3F0 },
+    { 0x1F400, 0x1F43E },
+    { 0x1F440, 0x1F440 },
+    { 0x1F442, 0x1F4F7 },
+    { 0x1F4F9, 0x1F4FC },
+    { 0x1F500, 0x1F53D },
+    { 0x1F550, 0x1F567 },
+    { 0x1F5FB, 0x1F5FF },
+    { 0x1F601, 0x1F610 },
+    { 0x1F612, 0x1F614 },
+    { 0x1F616, 0x1F616 },
+    { 0x1F618, 0x1F618 },
+    { 0x1F61A, 0x1F61A },
+    { 0x1F61C, 0x1F61E },
+    { 0x1F620, 0x1F625 },
+    { 0x1F628, 0x1F62B },
+    { 0x1F62D, 0x1F62D },
+    { 0x1F630, 0x1F633 },
+    { 0x1F635, 0x1F640 },
+    { 0x1F645, 0x1F64F },
+    { 0x1F680, 0x1F6C5 },
+    { 0x1F700, 0x1F773 }
 
 #define PREDICATE(c) uc_is_general_category (c, UC_CATEGORY_So)
 #include "test-predicate-part2.h"
index 0da1625..b07962a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the Unicode character type functions.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2011 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
@@ -38,6 +38,7 @@ int
 main ()
 {
   ASSERT (category_equals (uc_general_category_byname ("L"), UC_CATEGORY_L));
+  ASSERT (category_equals (uc_general_category_byname ("LC"), UC_CATEGORY_LC));
   ASSERT (category_equals (uc_general_category_byname ("Lu"), UC_CATEGORY_Lu));
   ASSERT (category_equals (uc_general_category_byname ("Ll"), UC_CATEGORY_Ll));
   ASSERT (category_equals (uc_general_category_byname ("Lt"), UC_CATEGORY_Lt));
@@ -75,6 +76,137 @@ main ()
   ASSERT (category_equals (uc_general_category_byname ("Co"), UC_CATEGORY_Co));
   ASSERT (category_equals (uc_general_category_byname ("Cn"), UC_CATEGORY_Cn));
 
+  ASSERT (category_equals (uc_general_category_byname ("LETTER"), UC_CATEGORY_L));
+  ASSERT (category_equals (uc_general_category_byname ("Letter"), UC_CATEGORY_L));
+  ASSERT (category_equals (uc_general_category_byname ("CASED LETTER"), UC_CATEGORY_LC));
+  ASSERT (category_equals (uc_general_category_byname ("Cased Letter"), UC_CATEGORY_LC));
+  ASSERT (category_equals (uc_general_category_byname ("Cased_Letter"), UC_CATEGORY_LC));
+  ASSERT (category_equals (uc_general_category_byname ("CasedLetter"), UC_CATEGORY_LC));
+  ASSERT (category_equals (uc_general_category_byname ("UPPERCASE LETTER"), UC_CATEGORY_Lu));
+  ASSERT (category_equals (uc_general_category_byname ("Uppercase Letter"), UC_CATEGORY_Lu));
+  ASSERT (category_equals (uc_general_category_byname ("Uppercase_Letter"), UC_CATEGORY_Lu));
+  ASSERT (category_equals (uc_general_category_byname ("UppercaseLetter"), UC_CATEGORY_Lu));
+  ASSERT (category_equals (uc_general_category_byname ("LOWERCASE LETTER"), UC_CATEGORY_Ll));
+  ASSERT (category_equals (uc_general_category_byname ("Lowercase Letter"), UC_CATEGORY_Ll));
+  ASSERT (category_equals (uc_general_category_byname ("Lowercase_Letter"), UC_CATEGORY_Ll));
+  ASSERT (category_equals (uc_general_category_byname ("LowercaseLetter"), UC_CATEGORY_Ll));
+  ASSERT (category_equals (uc_general_category_byname ("TITLECASE LETTER"), UC_CATEGORY_Lt));
+  ASSERT (category_equals (uc_general_category_byname ("Titlecase Letter"), UC_CATEGORY_Lt));
+  ASSERT (category_equals (uc_general_category_byname ("Titlecase_Letter"), UC_CATEGORY_Lt));
+  ASSERT (category_equals (uc_general_category_byname ("TitlecaseLetter"), UC_CATEGORY_Lt));
+  ASSERT (category_equals (uc_general_category_byname ("MODIFIER LETTER"), UC_CATEGORY_Lm));
+  ASSERT (category_equals (uc_general_category_byname ("Modifier Letter"), UC_CATEGORY_Lm));
+  ASSERT (category_equals (uc_general_category_byname ("Modifier_Letter"), UC_CATEGORY_Lm));
+  ASSERT (category_equals (uc_general_category_byname ("ModifierLetter"), UC_CATEGORY_Lm));
+  ASSERT (category_equals (uc_general_category_byname ("OTHER LETTER"), UC_CATEGORY_Lo));
+  ASSERT (category_equals (uc_general_category_byname ("Other Letter"), UC_CATEGORY_Lo));
+  ASSERT (category_equals (uc_general_category_byname ("Other_Letter"), UC_CATEGORY_Lo));
+  ASSERT (category_equals (uc_general_category_byname ("OtherLetter"), UC_CATEGORY_Lo));
+  ASSERT (category_equals (uc_general_category_byname ("MARK"), UC_CATEGORY_M));
+  ASSERT (category_equals (uc_general_category_byname ("Mark"), UC_CATEGORY_M));
+  ASSERT (category_equals (uc_general_category_byname ("NONSPACING MARK"), UC_CATEGORY_Mn));
+  ASSERT (category_equals (uc_general_category_byname ("Nonspacing Mark"), UC_CATEGORY_Mn));
+  ASSERT (category_equals (uc_general_category_byname ("Nonspacing_Mark"), UC_CATEGORY_Mn));
+  ASSERT (category_equals (uc_general_category_byname ("NonspacingMark"), UC_CATEGORY_Mn));
+  ASSERT (category_equals (uc_general_category_byname ("SPACING MARK"), UC_CATEGORY_Mc));
+  ASSERT (category_equals (uc_general_category_byname ("Spacing Mark"), UC_CATEGORY_Mc));
+  ASSERT (category_equals (uc_general_category_byname ("Spacing_Mark"), UC_CATEGORY_Mc));
+  ASSERT (category_equals (uc_general_category_byname ("SpacingMark"), UC_CATEGORY_Mc));
+  ASSERT (category_equals (uc_general_category_byname ("ENCLOSING MARK"), UC_CATEGORY_Me));
+  ASSERT (category_equals (uc_general_category_byname ("Enclosing Mark"), UC_CATEGORY_Me));
+  ASSERT (category_equals (uc_general_category_byname ("Enclosing_Mark"), UC_CATEGORY_Me));
+  ASSERT (category_equals (uc_general_category_byname ("EnclosingMark"), UC_CATEGORY_Me));
+  ASSERT (category_equals (uc_general_category_byname ("NUMBER"), UC_CATEGORY_N));
+  ASSERT (category_equals (uc_general_category_byname ("Number"), UC_CATEGORY_N));
+  ASSERT (category_equals (uc_general_category_byname ("DECIMAL NUMBER"), UC_CATEGORY_Nd));
+  ASSERT (category_equals (uc_general_category_byname ("Decimal Number"), UC_CATEGORY_Nd));
+  ASSERT (category_equals (uc_general_category_byname ("Decimal_Number"), UC_CATEGORY_Nd));
+  ASSERT (category_equals (uc_general_category_byname ("DecimalNumber"), UC_CATEGORY_Nd));
+  ASSERT (category_equals (uc_general_category_byname ("LETTER NUMBER"), UC_CATEGORY_Nl));
+  ASSERT (category_equals (uc_general_category_byname ("Letter Number"), UC_CATEGORY_Nl));
+  ASSERT (category_equals (uc_general_category_byname ("Letter_Number"), UC_CATEGORY_Nl));
+  ASSERT (category_equals (uc_general_category_byname ("LetterNumber"), UC_CATEGORY_Nl));
+  ASSERT (category_equals (uc_general_category_byname ("OTHER NUMBER"), UC_CATEGORY_No));
+  ASSERT (category_equals (uc_general_category_byname ("Other Number"), UC_CATEGORY_No));
+  ASSERT (category_equals (uc_general_category_byname ("Other_Number"), UC_CATEGORY_No));
+  ASSERT (category_equals (uc_general_category_byname ("OtherNumber"), UC_CATEGORY_No));
+  ASSERT (category_equals (uc_general_category_byname ("PUNCTUATION"), UC_CATEGORY_P));
+  ASSERT (category_equals (uc_general_category_byname ("Punctuation"), UC_CATEGORY_P));
+  ASSERT (category_equals (uc_general_category_byname ("CONNECTOR PUNCTUATION"), UC_CATEGORY_Pc));
+  ASSERT (category_equals (uc_general_category_byname ("Connector Punctuation"), UC_CATEGORY_Pc));
+  ASSERT (category_equals (uc_general_category_byname ("Connector_Punctuation"), UC_CATEGORY_Pc));
+  ASSERT (category_equals (uc_general_category_byname ("ConnectorPunctuation"), UC_CATEGORY_Pc));
+  ASSERT (category_equals (uc_general_category_byname ("DASH PUNCTUATION"), UC_CATEGORY_Pd));
+  ASSERT (category_equals (uc_general_category_byname ("Dash Punctuation"), UC_CATEGORY_Pd));
+  ASSERT (category_equals (uc_general_category_byname ("Dash_Punctuation"), UC_CATEGORY_Pd));
+  ASSERT (category_equals (uc_general_category_byname ("DashPunctuation"), UC_CATEGORY_Pd));
+  ASSERT (category_equals (uc_general_category_byname ("OPEN PUNCTUATION"), UC_CATEGORY_Ps));
+  ASSERT (category_equals (uc_general_category_byname ("Open Punctuation"), UC_CATEGORY_Ps));
+  ASSERT (category_equals (uc_general_category_byname ("Open_Punctuation"), UC_CATEGORY_Ps));
+  ASSERT (category_equals (uc_general_category_byname ("OpenPunctuation"), UC_CATEGORY_Ps));
+  ASSERT (category_equals (uc_general_category_byname ("CLOSE PUNCTUATION"), UC_CATEGORY_Pe));
+  ASSERT (category_equals (uc_general_category_byname ("Close Punctuation"), UC_CATEGORY_Pe));
+  ASSERT (category_equals (uc_general_category_byname ("Close_Punctuation"), UC_CATEGORY_Pe));
+  ASSERT (category_equals (uc_general_category_byname ("ClosePunctuation"), UC_CATEGORY_Pe));
+  ASSERT (category_equals (uc_general_category_byname ("INITIAL PUNCTUATION"), UC_CATEGORY_Pi));
+  ASSERT (category_equals (uc_general_category_byname ("Initial Punctuation"), UC_CATEGORY_Pi));
+  ASSERT (category_equals (uc_general_category_byname ("Initial_Punctuation"), UC_CATEGORY_Pi));
+  ASSERT (category_equals (uc_general_category_byname ("InitialPunctuation"), UC_CATEGORY_Pi));
+  ASSERT (category_equals (uc_general_category_byname ("FINAL PUNCTUATION"), UC_CATEGORY_Pf));
+  ASSERT (category_equals (uc_general_category_byname ("Final Punctuation"), UC_CATEGORY_Pf));
+  ASSERT (category_equals (uc_general_category_byname ("Final_Punctuation"), UC_CATEGORY_Pf));
+  ASSERT (category_equals (uc_general_category_byname ("FinalPunctuation"), UC_CATEGORY_Pf));
+  ASSERT (category_equals (uc_general_category_byname ("OTHER PUNCTUATION"), UC_CATEGORY_Po));
+  ASSERT (category_equals (uc_general_category_byname ("Other Punctuation"), UC_CATEGORY_Po));
+  ASSERT (category_equals (uc_general_category_byname ("Other_Punctuation"), UC_CATEGORY_Po));
+  ASSERT (category_equals (uc_general_category_byname ("OtherPunctuation"), UC_CATEGORY_Po));
+  ASSERT (category_equals (uc_general_category_byname ("SYMBOL"), UC_CATEGORY_S));
+  ASSERT (category_equals (uc_general_category_byname ("Symbol"), UC_CATEGORY_S));
+  ASSERT (category_equals (uc_general_category_byname ("MATH SYMBOL"), UC_CATEGORY_Sm));
+  ASSERT (category_equals (uc_general_category_byname ("Math Symbol"), UC_CATEGORY_Sm));
+  ASSERT (category_equals (uc_general_category_byname ("Math_Symbol"), UC_CATEGORY_Sm));
+  ASSERT (category_equals (uc_general_category_byname ("MathSymbol"), UC_CATEGORY_Sm));
+  ASSERT (category_equals (uc_general_category_byname ("CURRENCY SYMBOL"), UC_CATEGORY_Sc));
+  ASSERT (category_equals (uc_general_category_byname ("Currency Symbol"), UC_CATEGORY_Sc));
+  ASSERT (category_equals (uc_general_category_byname ("Currency_Symbol"), UC_CATEGORY_Sc));
+  ASSERT (category_equals (uc_general_category_byname ("CurrencySymbol"), UC_CATEGORY_Sc));
+  ASSERT (category_equals (uc_general_category_byname ("MODIFIER SYMBOL"), UC_CATEGORY_Sk));
+  ASSERT (category_equals (uc_general_category_byname ("Modifier Symbol"), UC_CATEGORY_Sk));
+  ASSERT (category_equals (uc_general_category_byname ("Modifier_Symbol"), UC_CATEGORY_Sk));
+  ASSERT (category_equals (uc_general_category_byname ("ModifierSymbol"), UC_CATEGORY_Sk));
+  ASSERT (category_equals (uc_general_category_byname ("OTHER SYMBOL"), UC_CATEGORY_So));
+  ASSERT (category_equals (uc_general_category_byname ("Other Symbol"), UC_CATEGORY_So));
+  ASSERT (category_equals (uc_general_category_byname ("Other_Symbol"), UC_CATEGORY_So));
+  ASSERT (category_equals (uc_general_category_byname ("OtherSymbol"), UC_CATEGORY_So));
+  ASSERT (category_equals (uc_general_category_byname ("SEPARATOR"), UC_CATEGORY_Z));
+  ASSERT (category_equals (uc_general_category_byname ("Separator"), UC_CATEGORY_Z));
+  ASSERT (category_equals (uc_general_category_byname ("SPACE SEPARATOR"), UC_CATEGORY_Zs));
+  ASSERT (category_equals (uc_general_category_byname ("Space Separator"), UC_CATEGORY_Zs));
+  ASSERT (category_equals (uc_general_category_byname ("Space_Separator"), UC_CATEGORY_Zs));
+  ASSERT (category_equals (uc_general_category_byname ("SpaceSeparator"), UC_CATEGORY_Zs));
+  ASSERT (category_equals (uc_general_category_byname ("LINE SEPARATOR"), UC_CATEGORY_Zl));
+  ASSERT (category_equals (uc_general_category_byname ("Line Separator"), UC_CATEGORY_Zl));
+  ASSERT (category_equals (uc_general_category_byname ("Line_Separator"), UC_CATEGORY_Zl));
+  ASSERT (category_equals (uc_general_category_byname ("LineSeparator"), UC_CATEGORY_Zl));
+  ASSERT (category_equals (uc_general_category_byname ("PARAGRAPH SEPARATOR"), UC_CATEGORY_Zp));
+  ASSERT (category_equals (uc_general_category_byname ("Paragraph Separator"), UC_CATEGORY_Zp));
+  ASSERT (category_equals (uc_general_category_byname ("Paragraph_Separator"), UC_CATEGORY_Zp));
+  ASSERT (category_equals (uc_general_category_byname ("ParagraphSeparator"), UC_CATEGORY_Zp));
+  ASSERT (category_equals (uc_general_category_byname ("OTHER"), UC_CATEGORY_C));
+  ASSERT (category_equals (uc_general_category_byname ("Other"), UC_CATEGORY_C));
+  ASSERT (category_equals (uc_general_category_byname ("CONTROL"), UC_CATEGORY_Cc));
+  ASSERT (category_equals (uc_general_category_byname ("Control"), UC_CATEGORY_Cc));
+  ASSERT (category_equals (uc_general_category_byname ("FORMAT"), UC_CATEGORY_Cf));
+  ASSERT (category_equals (uc_general_category_byname ("Format"), UC_CATEGORY_Cf));
+  ASSERT (category_equals (uc_general_category_byname ("SURROGATE"), UC_CATEGORY_Cs));
+  ASSERT (category_equals (uc_general_category_byname ("Surrogate"), UC_CATEGORY_Cs));
+  ASSERT (category_equals (uc_general_category_byname ("PRIVATE USE"), UC_CATEGORY_Co));
+  ASSERT (category_equals (uc_general_category_byname ("Private Use"), UC_CATEGORY_Co));
+  ASSERT (category_equals (uc_general_category_byname ("Private_Use"), UC_CATEGORY_Co));
+  ASSERT (category_equals (uc_general_category_byname ("PrivateUse"), UC_CATEGORY_Co));
+  ASSERT (category_equals (uc_general_category_byname ("UNASSIGNED"), UC_CATEGORY_Cn));
+  ASSERT (category_equals (uc_general_category_byname ("Unassigned"), UC_CATEGORY_Cn));
+
   uc_general_category_byname ("Nl");
 
   {
diff --git a/tests/unictype/test-categ_longname.c b/tests/unictype/test-categ_longname.c
new file mode 100644 (file)
index 0000000..bd6630e
--- /dev/null
@@ -0,0 +1,33 @@
+/* Test the Unicode character type functions.
+   Copyright (C) 2007-2009, 2011 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+int
+main ()
+{
+  ASSERT (strcmp (uc_general_category_long_name (UC_CATEGORY_Z), "Separator") == 0);
+  ASSERT (strcmp (uc_general_category_long_name (UC_CATEGORY_Nl), "Letter Number") == 0);
+  ASSERT (uc_general_category_long_name (uc_general_category_or (UC_CATEGORY_Z, UC_CATEGORY_Nl)) == NULL);
+
+  return 0;
+}
diff --git a/tests/unictype/test-combiningclass_byname.c b/tests/unictype/test-combiningclass_byname.c
new file mode 100644 (file)
index 0000000..157fa57
--- /dev/null
@@ -0,0 +1,118 @@
+/* Test the Unicode character Arabic joining group functions.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+int
+main ()
+{
+  ASSERT (uc_combining_class_byname ("NR") == UC_CCC_NR);
+  ASSERT (uc_combining_class_byname ("OV") == UC_CCC_OV);
+  ASSERT (uc_combining_class_byname ("NK") == UC_CCC_NK);
+  ASSERT (uc_combining_class_byname ("KV") == UC_CCC_KV);
+  ASSERT (uc_combining_class_byname ("VR") == UC_CCC_VR);
+  ASSERT (uc_combining_class_byname ("ATBL") == UC_CCC_ATBL);
+  ASSERT (uc_combining_class_byname ("ATB") == UC_CCC_ATB);
+  ASSERT (uc_combining_class_byname ("ATA") == UC_CCC_ATA);
+  ASSERT (uc_combining_class_byname ("ATAR") == UC_CCC_ATAR);
+  ASSERT (uc_combining_class_byname ("BL") == UC_CCC_BL);
+  ASSERT (uc_combining_class_byname ("B") == UC_CCC_B);
+  ASSERT (uc_combining_class_byname ("BR") == UC_CCC_BR);
+  ASSERT (uc_combining_class_byname ("L") == UC_CCC_L);
+  ASSERT (uc_combining_class_byname ("R") == UC_CCC_R);
+  ASSERT (uc_combining_class_byname ("AL") == UC_CCC_AL);
+  ASSERT (uc_combining_class_byname ("A") == UC_CCC_A);
+  ASSERT (uc_combining_class_byname ("AR") == UC_CCC_AR);
+  ASSERT (uc_combining_class_byname ("DB") == UC_CCC_DB);
+  ASSERT (uc_combining_class_byname ("DA") == UC_CCC_DA);
+  ASSERT (uc_combining_class_byname ("IS") == UC_CCC_IS);
+
+  ASSERT (uc_combining_class_byname ("NOT REORDERED") == UC_CCC_NR);
+  ASSERT (uc_combining_class_byname ("Not Reordered") == UC_CCC_NR);
+  ASSERT (uc_combining_class_byname ("Not_Reordered") == UC_CCC_NR);
+  ASSERT (uc_combining_class_byname ("NotReordered") == UC_CCC_NR);
+  ASSERT (uc_combining_class_byname ("OVERLAY") == UC_CCC_OV);
+  ASSERT (uc_combining_class_byname ("Overlay") == UC_CCC_OV);
+  ASSERT (uc_combining_class_byname ("NUKTA") == UC_CCC_NK);
+  ASSERT (uc_combining_class_byname ("Nukta") == UC_CCC_NK);
+  ASSERT (uc_combining_class_byname ("KANA VOICING") == UC_CCC_KV);
+  ASSERT (uc_combining_class_byname ("Kana Voicing") == UC_CCC_KV);
+  ASSERT (uc_combining_class_byname ("Kana_Voicing") == UC_CCC_KV);
+  ASSERT (uc_combining_class_byname ("KanaVoicing") == UC_CCC_KV);
+  ASSERT (uc_combining_class_byname ("VIRAMA") == UC_CCC_VR);
+  ASSERT (uc_combining_class_byname ("Virama") == UC_CCC_VR);
+  ASSERT (uc_combining_class_byname ("ATTACHED BELOW LEFT") == UC_CCC_ATBL);
+  ASSERT (uc_combining_class_byname ("Attached Below Left") == UC_CCC_ATBL);
+  ASSERT (uc_combining_class_byname ("Attached_Below_Left") == UC_CCC_ATBL);
+  ASSERT (uc_combining_class_byname ("AttachedBelowLeft") == UC_CCC_ATBL);
+  ASSERT (uc_combining_class_byname ("ATTACHED BELOW") == UC_CCC_ATB);
+  ASSERT (uc_combining_class_byname ("Attached Below") == UC_CCC_ATB);
+  ASSERT (uc_combining_class_byname ("Attached_Below") == UC_CCC_ATB);
+  ASSERT (uc_combining_class_byname ("AttachedBelow") == UC_CCC_ATB);
+  ASSERT (uc_combining_class_byname ("ATTACHED ABOVE") == UC_CCC_ATA);
+  ASSERT (uc_combining_class_byname ("Attached Above") == UC_CCC_ATA);
+  ASSERT (uc_combining_class_byname ("Attached_Above") == UC_CCC_ATA);
+  ASSERT (uc_combining_class_byname ("AttachedAbove") == UC_CCC_ATA);
+  ASSERT (uc_combining_class_byname ("ATTACHED ABOVE RIGHT") == UC_CCC_ATAR);
+  ASSERT (uc_combining_class_byname ("Attached Above Right") == UC_CCC_ATAR);
+  ASSERT (uc_combining_class_byname ("Attached_Above_Right") == UC_CCC_ATAR);
+  ASSERT (uc_combining_class_byname ("AttachedAboveRight") == UC_CCC_ATAR);
+  ASSERT (uc_combining_class_byname ("BELOW LEFT") == UC_CCC_BL);
+  ASSERT (uc_combining_class_byname ("Below Left") == UC_CCC_BL);
+  ASSERT (uc_combining_class_byname ("Below_Left") == UC_CCC_BL);
+  ASSERT (uc_combining_class_byname ("BelowLeft") == UC_CCC_BL);
+  ASSERT (uc_combining_class_byname ("BELOW") == UC_CCC_B);
+  ASSERT (uc_combining_class_byname ("Below") == UC_CCC_B);
+  ASSERT (uc_combining_class_byname ("BELOW RIGHT") == UC_CCC_BR);
+  ASSERT (uc_combining_class_byname ("Below Right") == UC_CCC_BR);
+  ASSERT (uc_combining_class_byname ("Below_Right") == UC_CCC_BR);
+  ASSERT (uc_combining_class_byname ("BelowRight") == UC_CCC_BR);
+  ASSERT (uc_combining_class_byname ("LEFT") == UC_CCC_L);
+  ASSERT (uc_combining_class_byname ("Left") == UC_CCC_L);
+  ASSERT (uc_combining_class_byname ("RIGHT") == UC_CCC_R);
+  ASSERT (uc_combining_class_byname ("Right") == UC_CCC_R);
+  ASSERT (uc_combining_class_byname ("ABOVE LEFT") == UC_CCC_AL);
+  ASSERT (uc_combining_class_byname ("Above Left") == UC_CCC_AL);
+  ASSERT (uc_combining_class_byname ("Above_Left") == UC_CCC_AL);
+  ASSERT (uc_combining_class_byname ("AboveLeft") == UC_CCC_AL);
+  ASSERT (uc_combining_class_byname ("ABOVE") == UC_CCC_A);
+  ASSERT (uc_combining_class_byname ("ABOVE RIGHT") == UC_CCC_AR);
+  ASSERT (uc_combining_class_byname ("Above Right") == UC_CCC_AR);
+  ASSERT (uc_combining_class_byname ("Above_Right") == UC_CCC_AR);
+  ASSERT (uc_combining_class_byname ("AboveRight") == UC_CCC_AR);
+  ASSERT (uc_combining_class_byname ("DOUBLE BELOW") == UC_CCC_DB);
+  ASSERT (uc_combining_class_byname ("Double Below") == UC_CCC_DB);
+  ASSERT (uc_combining_class_byname ("Double_Below") == UC_CCC_DB);
+  ASSERT (uc_combining_class_byname ("DoubleBelow") == UC_CCC_DB);
+  ASSERT (uc_combining_class_byname ("DOUBLE ABOVE") == UC_CCC_DA);
+  ASSERT (uc_combining_class_byname ("Double Above") == UC_CCC_DA);
+  ASSERT (uc_combining_class_byname ("Double_Above") == UC_CCC_DA);
+  ASSERT (uc_combining_class_byname ("DoubleAbove") == UC_CCC_DA);
+  ASSERT (uc_combining_class_byname ("IOTA SUBSCRIPT") == UC_CCC_IS);
+  ASSERT (uc_combining_class_byname ("Iota Subscript") == UC_CCC_IS);
+  ASSERT (uc_combining_class_byname ("Iota_Subscript") == UC_CCC_IS);
+  ASSERT (uc_combining_class_byname ("IotaSubscript") == UC_CCC_IS);
+
+  return 0;
+}
diff --git a/tests/unictype/test-combiningclass_longname.c b/tests/unictype/test-combiningclass_longname.c
new file mode 100644 (file)
index 0000000..7de89b8
--- /dev/null
@@ -0,0 +1,53 @@
+/* Test the Unicode character type functions.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+int
+main ()
+{
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_NR), "Not Reordered") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_OV), "Overlay") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_NK), "Nukta") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_KV), "Kana Voicing") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_VR), "Virama") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_ATBL), "Attached Below Left") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_ATB), "Attached Below") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_ATA), "Attached Above") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_ATAR), "Attached Above Right") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_BL), "Below Left") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_B), "Below") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_BR), "Below Right") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_L), "Left") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_R), "Right") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_AL), "Above Left") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_A), "Above") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_AR), "Above Right") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_DB), "Double Below") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_DA), "Double Above") == 0);
+  ASSERT (strcmp (uc_combining_class_long_name (UC_CCC_IS), "Iota Subscript") == 0);
+  ASSERT (uc_combining_class_long_name (-5) == NULL);
+  ASSERT (uc_combining_class_long_name (163) == NULL);
+  ASSERT (uc_combining_class_long_name (255) == NULL);
+
+  return 0;
+}
diff --git a/tests/unictype/test-combiningclass_name.c b/tests/unictype/test-combiningclass_name.c
new file mode 100644 (file)
index 0000000..02420ff
--- /dev/null
@@ -0,0 +1,53 @@
+/* Test the Unicode character type functions.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+int
+main ()
+{
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_NR), "NR") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_OV), "OV") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_NK), "NK") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_KV), "KV") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_VR), "VR") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_ATBL), "ATBL") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_ATB), "ATB") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_ATA), "ATA") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_ATAR), "ATAR") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_BL), "BL") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_B), "B") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_BR), "BR") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_L), "L") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_R), "R") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_AL), "AL") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_A), "A") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_AR), "AR") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_DB), "DB") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_DA), "DA") == 0);
+  ASSERT (strcmp (uc_combining_class_name (UC_CCC_IS), "IS") == 0);
+  ASSERT (uc_combining_class_name (-5) == NULL);
+  ASSERT (uc_combining_class_name (163) == NULL);
+  ASSERT (uc_combining_class_name (255) == NULL);
+
+  return 0;
+}
index 9a1c6ca..7f1eca4 100644 (file)
     { 0x038E, 0x03A1 },
     { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0523 },
+    { 0x048A, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x064A },
+    { 0x0620, 0x064A },
     { 0x0660, 0x0669 },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
     { 0x07C0, 0x07EA },
     { 0x07F4, 0x07F5 },
     { 0x07FA, 0x07FA },
+    { 0x0800, 0x0815 },
+    { 0x081A, 0x081A },
+    { 0x0824, 0x0824 },
+    { 0x0828, 0x0828 },
+    { 0x0840, 0x0858 },
     { 0x0904, 0x0939 },
     { 0x093D, 0x093D },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
     { 0x0966, 0x096F },
-    { 0x0971, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x0971, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
     { 0x0993, 0x09A8 },
     { 0x0CDE, 0x0CDE },
     { 0x0CE0, 0x0CE1 },
     { 0x0CE6, 0x0CEF },
+    { 0x0CF1, 0x0CF2 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D3D },
+    { 0x0D4E, 0x0D4E },
     { 0x0D60, 0x0D61 },
     { 0x0D66, 0x0D6F },
     { 0x0D7A, 0x0D7F },
     { 0x0F20, 0x0F29 },
     { 0x0F40, 0x0F47 },
     { 0x0F49, 0x0F6C },
-    { 0x0F88, 0x0F8B },
+    { 0x0F88, 0x0F8C },
     { 0x1000, 0x102A },
     { 0x103F, 0x1049 },
     { 0x1050, 0x1055 },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x1380, 0x138F },
     { 0x13A0, 0x13F4 },
     { 0x1401, 0x166C },
-    { 0x166F, 0x1676 },
+    { 0x166F, 0x167F },
     { 0x1681, 0x169A },
     { 0x16A0, 0x16EA },
     { 0x16EE, 0x16F0 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
     { 0x18AA, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1946, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19C1, 0x19C7 },
     { 0x19D0, 0x19D9 },
     { 0x1A00, 0x1A16 },
+    { 0x1A20, 0x1A54 },
+    { 0x1A80, 0x1A89 },
+    { 0x1A90, 0x1A99 },
+    { 0x1AA7, 0x1AA7 },
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
     { 0x1B50, 0x1B59 },
     { 0x1B83, 0x1BA0 },
     { 0x1BAE, 0x1BB9 },
+    { 0x1BC0, 0x1BE5 },
     { 0x1C00, 0x1C23 },
     { 0x1C40, 0x1C49 },
     { 0x1C4D, 0x1C7D },
+    { 0x1CE9, 0x1CEC },
+    { 0x1CEE, 0x1CF1 },
     { 0x1D00, 0x1DBF },
     { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1FF6, 0x1FFC },
     { 0x2071, 0x2071 },
     { 0x207F, 0x207F },
-    { 0x2090, 0x2094 },
+    { 0x2090, 0x209C },
     { 0x2102, 0x2102 },
     { 0x2107, 0x2107 },
     { 0x210A, 0x2113 },
     { 0x249C, 0x24E9 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CE4 },
+    { 0x2C60, 0x2CE4 },
+    { 0x2CEB, 0x2CEE },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
     { 0x2D6F, 0x2D6F },
     { 0x30FC, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x31A0, 0x31B7 },
+    { 0x31A0, 0x31BA },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FC3 },
+    { 0x4E00, 0x9FCB },
     { 0xA000, 0xA48C },
+    { 0xA4D0, 0xA4FD },
     { 0xA500, 0xA60C },
     { 0xA610, 0xA62B },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA66E },
+    { 0xA640, 0xA66E },
     { 0xA67F, 0xA697 },
+    { 0xA6A0, 0xA6EF },
     { 0xA717, 0xA71F },
     { 0xA722, 0xA788 },
-    { 0xA78B, 0xA78C },
-    { 0xA7FB, 0xA801 },
+    { 0xA78B, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
     { 0xA882, 0xA8B3 },
     { 0xA8D0, 0xA8D9 },
+    { 0xA8F2, 0xA8F7 },
+    { 0xA8FB, 0xA8FB },
     { 0xA900, 0xA925 },
     { 0xA930, 0xA946 },
+    { 0xA960, 0xA97C },
+    { 0xA984, 0xA9B2 },
+    { 0xA9CF, 0xA9D9 },
     { 0xAA00, 0xAA28 },
     { 0xAA40, 0xAA42 },
     { 0xAA44, 0xAA4B },
     { 0xAA50, 0xAA59 },
+    { 0xAA60, 0xAA76 },
+    { 0xAA7A, 0xAA7A },
+    { 0xAA80, 0xAAAF },
+    { 0xAAB1, 0xAAB1 },
+    { 0xAAB5, 0xAAB6 },
+    { 0xAAB9, 0xAABD },
+    { 0xAAC0, 0xAAC0 },
+    { 0xAAC2, 0xAAC2 },
+    { 0xAADB, 0xAADD },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABE2 },
+    { 0xABF0, 0xABF9 },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xF900, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
+    { 0x1083F, 0x10855 },
     { 0x10900, 0x10915 },
     { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
     { 0x10A19, 0x10A33 },
+    { 0x10A60, 0x10A7C },
+    { 0x10B00, 0x10B35 },
+    { 0x10B40, 0x10B55 },
+    { 0x10B60, 0x10B72 },
+    { 0x10C00, 0x10C48 },
+    { 0x11003, 0x11037 },
+    { 0x11066, 0x1106F },
+    { 0x11083, 0x110AF },
     { 0x12000, 0x1236E },
     { 0x12400, 0x12462 },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x1D400, 0x1D454 },
     { 0x1D456, 0x1D49C },
     { 0x1D49E, 0x1D49F },
     { 0x1D7AA, 0x1D7C2 },
     { 0x1D7C4, 0x1D7CB },
     { 0x1D7CE, 0x1D7FF },
+    { 0x1F110, 0x1F12C },
+    { 0x1F130, 0x1F149 },
+    { 0x1F150, 0x1F169 },
+    { 0x1F170, 0x1F18A },
+    { 0x1F1E6, 0x1F1FF },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D }
 
 #define PREDICATE(c) uc_is_alnum (c)
index c6100cf..41cc452 100644 (file)
     { 0x038E, 0x03A1 },
     { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0523 },
+    { 0x048A, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x064A },
+    { 0x0620, 0x064A },
     { 0x0660, 0x0669 },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
     { 0x07C0, 0x07EA },
     { 0x07F4, 0x07F5 },
     { 0x07FA, 0x07FA },
+    { 0x0800, 0x0815 },
+    { 0x081A, 0x081A },
+    { 0x0824, 0x0824 },
+    { 0x0828, 0x0828 },
+    { 0x0840, 0x0858 },
     { 0x0904, 0x0939 },
     { 0x093D, 0x093D },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
     { 0x0966, 0x096F },
-    { 0x0971, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x0971, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
     { 0x0993, 0x09A8 },
     { 0x0CDE, 0x0CDE },
     { 0x0CE0, 0x0CE1 },
     { 0x0CE6, 0x0CEF },
+    { 0x0CF1, 0x0CF2 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D3D },
+    { 0x0D4E, 0x0D4E },
     { 0x0D60, 0x0D61 },
     { 0x0D66, 0x0D6F },
     { 0x0D7A, 0x0D7F },
     { 0x0F20, 0x0F29 },
     { 0x0F40, 0x0F47 },
     { 0x0F49, 0x0F6C },
-    { 0x0F88, 0x0F8B },
+    { 0x0F88, 0x0F8C },
     { 0x1000, 0x102A },
     { 0x103F, 0x1049 },
     { 0x1050, 0x1055 },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x1380, 0x138F },
     { 0x13A0, 0x13F4 },
     { 0x1401, 0x166C },
-    { 0x166F, 0x1676 },
+    { 0x166F, 0x167F },
     { 0x1681, 0x169A },
     { 0x16A0, 0x16EA },
     { 0x16EE, 0x16F0 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
     { 0x18AA, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1946, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19C1, 0x19C7 },
     { 0x19D0, 0x19D9 },
     { 0x1A00, 0x1A16 },
+    { 0x1A20, 0x1A54 },
+    { 0x1A80, 0x1A89 },
+    { 0x1A90, 0x1A99 },
+    { 0x1AA7, 0x1AA7 },
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
     { 0x1B50, 0x1B59 },
     { 0x1B83, 0x1BA0 },
     { 0x1BAE, 0x1BB9 },
+    { 0x1BC0, 0x1BE5 },
     { 0x1C00, 0x1C23 },
     { 0x1C40, 0x1C49 },
     { 0x1C4D, 0x1C7D },
+    { 0x1CE9, 0x1CEC },
+    { 0x1CEE, 0x1CF1 },
     { 0x1D00, 0x1DBF },
     { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1FF6, 0x1FFC },
     { 0x2071, 0x2071 },
     { 0x207F, 0x207F },
-    { 0x2090, 0x2094 },
+    { 0x2090, 0x209C },
     { 0x2102, 0x2102 },
     { 0x2107, 0x2107 },
     { 0x210A, 0x2113 },
     { 0x249C, 0x24E9 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CE4 },
+    { 0x2C60, 0x2CE4 },
+    { 0x2CEB, 0x2CEE },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
     { 0x2D6F, 0x2D6F },
     { 0x30FC, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x31A0, 0x31B7 },
+    { 0x31A0, 0x31BA },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FC3 },
+    { 0x4E00, 0x9FCB },
     { 0xA000, 0xA48C },
+    { 0xA4D0, 0xA4FD },
     { 0xA500, 0xA60C },
     { 0xA610, 0xA62B },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA66E },
+    { 0xA640, 0xA66E },
     { 0xA67F, 0xA697 },
+    { 0xA6A0, 0xA6EF },
     { 0xA717, 0xA71F },
     { 0xA722, 0xA788 },
-    { 0xA78B, 0xA78C },
-    { 0xA7FB, 0xA801 },
+    { 0xA78B, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
     { 0xA882, 0xA8B3 },
     { 0xA8D0, 0xA8D9 },
+    { 0xA8F2, 0xA8F7 },
+    { 0xA8FB, 0xA8FB },
     { 0xA900, 0xA925 },
     { 0xA930, 0xA946 },
+    { 0xA960, 0xA97C },
+    { 0xA984, 0xA9B2 },
+    { 0xA9CF, 0xA9D9 },
     { 0xAA00, 0xAA28 },
     { 0xAA40, 0xAA42 },
     { 0xAA44, 0xAA4B },
     { 0xAA50, 0xAA59 },
+    { 0xAA60, 0xAA76 },
+    { 0xAA7A, 0xAA7A },
+    { 0xAA80, 0xAAAF },
+    { 0xAAB1, 0xAAB1 },
+    { 0xAAB5, 0xAAB6 },
+    { 0xAAB9, 0xAABD },
+    { 0xAAC0, 0xAAC0 },
+    { 0xAAC2, 0xAAC2 },
+    { 0xAADB, 0xAADD },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABE2 },
+    { 0xABF0, 0xABF9 },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xF900, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
+    { 0x1083F, 0x10855 },
     { 0x10900, 0x10915 },
     { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
     { 0x10A19, 0x10A33 },
+    { 0x10A60, 0x10A7C },
+    { 0x10B00, 0x10B35 },
+    { 0x10B40, 0x10B55 },
+    { 0x10B60, 0x10B72 },
+    { 0x10C00, 0x10C48 },
+    { 0x11003, 0x11037 },
+    { 0x11066, 0x1106F },
+    { 0x11083, 0x110AF },
     { 0x12000, 0x1236E },
     { 0x12400, 0x12462 },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x1D400, 0x1D454 },
     { 0x1D456, 0x1D49C },
     { 0x1D49E, 0x1D49F },
     { 0x1D7AA, 0x1D7C2 },
     { 0x1D7C4, 0x1D7CB },
     { 0x1D7CE, 0x1D7FF },
+    { 0x1F110, 0x1F12C },
+    { 0x1F130, 0x1F149 },
+    { 0x1F150, 0x1F169 },
+    { 0x1F170, 0x1F18A },
+    { 0x1F1E6, 0x1F1FF },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D }
 
 #define PREDICATE(c) uc_is_alpha (c)
index 32055ed..4098733 100644 (file)
@@ -23,7 +23,7 @@
     { 0x0384, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x0523 },
+    { 0x03A3, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x055F },
     { 0x0561, 0x0587 },
     { 0x05F0, 0x05F4 },
     { 0x0600, 0x0603 },
     { 0x0606, 0x061B },
-    { 0x061E, 0x061F },
-    { 0x0621, 0x065E },
-    { 0x0660, 0x070D },
+    { 0x061E, 0x070D },
     { 0x070F, 0x074A },
     { 0x074D, 0x07B1 },
     { 0x07C0, 0x07FA },
-    { 0x0901, 0x0939 },
-    { 0x093C, 0x094D },
-    { 0x0950, 0x0954 },
-    { 0x0958, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x0800, 0x082D },
+    { 0x0830, 0x083E },
+    { 0x0840, 0x085B },
+    { 0x085E, 0x085E },
+    { 0x0900, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0981, 0x0983 },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
@@ -57,7 +56,7 @@
     { 0x09D7, 0x09D7 },
     { 0x09DC, 0x09DD },
     { 0x09DF, 0x09E3 },
-    { 0x09E6, 0x09FA },
+    { 0x09E6, 0x09FB },
     { 0x0A01, 0x0A03 },
     { 0x0A05, 0x0A0A },
     { 0x0A0F, 0x0A10 },
     { 0x0B56, 0x0B57 },
     { 0x0B5C, 0x0B5D },
     { 0x0B5F, 0x0B63 },
-    { 0x0B66, 0x0B71 },
+    { 0x0B66, 0x0B77 },
     { 0x0B82, 0x0B83 },
     { 0x0B85, 0x0B8A },
     { 0x0B8E, 0x0B90 },
     { 0x0D02, 0x0D03 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D44 },
     { 0x0D46, 0x0D48 },
-    { 0x0D4A, 0x0D4D },
+    { 0x0D4A, 0x0D4E },
     { 0x0D57, 0x0D57 },
     { 0x0D60, 0x0D63 },
     { 0x0D66, 0x0D75 },
     { 0x0EDC, 0x0EDD },
     { 0x0F00, 0x0F47 },
     { 0x0F49, 0x0F6C },
-    { 0x0F71, 0x0F8B },
-    { 0x0F90, 0x0F97 },
+    { 0x0F71, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FBE, 0x0FCC },
-    { 0x0FCE, 0x0FD4 },
-    { 0x1000, 0x1099 },
-    { 0x109E, 0x10C5 },
+    { 0x0FCE, 0x0FDA },
+    { 0x1000, 0x10C5 },
     { 0x10D0, 0x10FC },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x12D8, 0x1310 },
     { 0x1312, 0x1315 },
     { 0x1318, 0x135A },
-    { 0x135F, 0x137C },
+    { 0x135D, 0x137C },
     { 0x1380, 0x1399 },
     { 0x13A0, 0x13F4 },
-    { 0x1401, 0x1676 },
+    { 0x1400, 0x167F },
     { 0x1681, 0x169C },
     { 0x16A0, 0x16F0 },
     { 0x1700, 0x170C },
     { 0x1810, 0x1819 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1920, 0x192B },
     { 0x1930, 0x193B },
     { 0x1940, 0x1940 },
     { 0x1944, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19B0, 0x19C9 },
-    { 0x19D0, 0x19D9 },
+    { 0x19D0, 0x19DA },
     { 0x19DE, 0x1A1B },
-    { 0x1A1E, 0x1A1F },
+    { 0x1A1E, 0x1A5E },
+    { 0x1A60, 0x1A7C },
+    { 0x1A7F, 0x1A89 },
+    { 0x1A90, 0x1A99 },
+    { 0x1AA0, 0x1AAD },
     { 0x1B00, 0x1B4B },
     { 0x1B50, 0x1B7C },
     { 0x1B80, 0x1BAA },
     { 0x1BAE, 0x1BB9 },
-    { 0x1C00, 0x1C37 },
+    { 0x1BC0, 0x1BF3 },
+    { 0x1BFC, 0x1C37 },
     { 0x1C3B, 0x1C49 },
     { 0x1C4D, 0x1C7F },
+    { 0x1CD0, 0x1CF2 },
     { 0x1D00, 0x1DE6 },
-    { 0x1DFE, 0x1F15 },
+    { 0x1DFC, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
     { 0x2060, 0x2064 },
     { 0x206A, 0x2071 },
     { 0x2074, 0x208E },
-    { 0x2090, 0x2094 },
-    { 0x20A0, 0x20B5 },
+    { 0x2090, 0x209C },
+    { 0x20A0, 0x20B9 },
     { 0x20D0, 0x20F0 },
-    { 0x2100, 0x214F },
-    { 0x2153, 0x2188 },
-    { 0x2190, 0x23E7 },
+    { 0x2100, 0x2189 },
+    { 0x2190, 0x23F3 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
-    { 0x2460, 0x269D },
-    { 0x26A0, 0x26BC },
-    { 0x26C0, 0x26C3 },
-    { 0x2701, 0x2704 },
-    { 0x2706, 0x2709 },
-    { 0x270C, 0x2727 },
-    { 0x2729, 0x274B },
-    { 0x274D, 0x274D },
-    { 0x274F, 0x2752 },
-    { 0x2756, 0x2756 },
-    { 0x2758, 0x275E },
-    { 0x2761, 0x2794 },
-    { 0x2798, 0x27AF },
-    { 0x27B1, 0x27BE },
-    { 0x27C0, 0x27CA },
+    { 0x2460, 0x26FF },
+    { 0x2701, 0x27CA },
     { 0x27CC, 0x27CC },
-    { 0x27D0, 0x2B4C },
-    { 0x2B50, 0x2B54 },
+    { 0x27CE, 0x2B4C },
+    { 0x2B50, 0x2B59 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CEA },
+    { 0x2C60, 0x2CF1 },
     { 0x2CF9, 0x2D25 },
     { 0x2D30, 0x2D65 },
-    { 0x2D6F, 0x2D6F },
-    { 0x2D80, 0x2D96 },
+    { 0x2D6F, 0x2D70 },
+    { 0x2D7F, 0x2D96 },
     { 0x2DA0, 0x2DA6 },
     { 0x2DA8, 0x2DAE },
     { 0x2DB0, 0x2DB6 },
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
-    { 0x2DE0, 0x2E30 },
+    { 0x2DE0, 0x2E31 },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x2F00, 0x2FD5 },
     { 0x3099, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x3190, 0x31B7 },
+    { 0x3190, 0x31BA },
     { 0x31C0, 0x31E3 },
     { 0x31F0, 0x321E },
-    { 0x3220, 0x3243 },
-    { 0x3250, 0x32FE },
+    { 0x3220, 0x32FE },
     { 0x3300, 0x4DB5 },
-    { 0x4DC0, 0x9FC3 },
+    { 0x4DC0, 0x9FCB },
     { 0xA000, 0xA48C },
     { 0xA490, 0xA4C6 },
-    { 0xA500, 0xA62B },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA673 },
+    { 0xA4D0, 0xA62B },
+    { 0xA640, 0xA673 },
     { 0xA67C, 0xA697 },
-    { 0xA700, 0xA78C },
-    { 0xA7FB, 0xA82B },
+    { 0xA6A0, 0xA6F7 },
+    { 0xA700, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA82B },
+    { 0xA830, 0xA839 },
     { 0xA840, 0xA877 },
     { 0xA880, 0xA8C4 },
     { 0xA8CE, 0xA8D9 },
+    { 0xA8E0, 0xA8FB },
     { 0xA900, 0xA953 },
-    { 0xA95F, 0xA95F },
+    { 0xA95F, 0xA97C },
+    { 0xA980, 0xA9CD },
+    { 0xA9CF, 0xA9D9 },
+    { 0xA9DE, 0xA9DF },
     { 0xAA00, 0xAA36 },
     { 0xAA40, 0xAA4D },
     { 0xAA50, 0xAA59 },
-    { 0xAA5C, 0xAA5F },
+    { 0xAA5C, 0xAA7B },
+    { 0xAA80, 0xAAC2 },
+    { 0xAADB, 0xAADF },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABED },
+    { 0xABF0, 0xABF9 },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xE000, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0xFB3E, 0xFB3E },
     { 0xFB40, 0xFB41 },
     { 0xFB43, 0xFB44 },
-    { 0xFB46, 0xFBB1 },
+    { 0xFB46, 0xFBC1 },
     { 0xFBD3, 0xFD3F },
     { 0xFD50, 0xFD8F },
     { 0xFD92, 0xFDC7 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
-    { 0x10900, 0x10919 },
+    { 0x1083F, 0x10855 },
+    { 0x10857, 0x1085F },
+    { 0x10900, 0x1091B },
     { 0x1091F, 0x10939 },
     { 0x1093F, 0x1093F },
     { 0x10A00, 0x10A03 },
     { 0x10A38, 0x10A3A },
     { 0x10A3F, 0x10A47 },
     { 0x10A50, 0x10A58 },
+    { 0x10A60, 0x10A7F },
+    { 0x10B00, 0x10B35 },
+    { 0x10B39, 0x10B55 },
+    { 0x10B58, 0x10B72 },
+    { 0x10B78, 0x10B7F },
+    { 0x10C00, 0x10C48 },
+    { 0x10E60, 0x10E7E },
+    { 0x11000, 0x1104D },
+    { 0x11052, 0x1106F },
+    { 0x11080, 0x110C1 },
     { 0x12000, 0x1236E },
     { 0x12400, 0x12462 },
     { 0x12470, 0x12473 },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x1D000, 0x1D0F5 },
     { 0x1D100, 0x1D126 },
     { 0x1D129, 0x1D1DD },
     { 0x1D7CE, 0x1D7FF },
     { 0x1F000, 0x1F02B },
     { 0x1F030, 0x1F093 },
+    { 0x1F0A0, 0x1F0AE },
+    { 0x1F0B1, 0x1F0BE },
+    { 0x1F0C1, 0x1F0CF },
+    { 0x1F0D1, 0x1F0DF },
+    { 0x1F100, 0x1F10A },
+    { 0x1F110, 0x1F12E },
+    { 0x1F130, 0x1F169 },
+    { 0x1F170, 0x1F19A },
+    { 0x1F1E6, 0x1F202 },
+    { 0x1F210, 0x1F23A },
+    { 0x1F240, 0x1F248 },
+    { 0x1F250, 0x1F251 },
+    { 0x1F300, 0x1F320 },
+    { 0x1F330, 0x1F335 },
+    { 0x1F337, 0x1F37C },
+    { 0x1F380, 0x1F393 },
+    { 0x1F3A0, 0x1F3C4 },
+    { 0x1F3C6, 0x1F3CA },
+    { 0x1F3E0, 0x1F3F0 },
+    { 0x1F400, 0x1F43E },
+    { 0x1F440, 0x1F440 },
+    { 0x1F442, 0x1F4F7 },
+    { 0x1F4F9, 0x1F4FC },
+    { 0x1F500, 0x1F53D },
+    { 0x1F550, 0x1F567 },
+    { 0x1F5FB, 0x1F5FF },
+    { 0x1F601, 0x1F610 },
+    { 0x1F612, 0x1F614 },
+    { 0x1F616, 0x1F616 },
+    { 0x1F618, 0x1F618 },
+    { 0x1F61A, 0x1F61A },
+    { 0x1F61C, 0x1F61E },
+    { 0x1F620, 0x1F625 },
+    { 0x1F628, 0x1F62B },
+    { 0x1F62D, 0x1F62D },
+    { 0x1F630, 0x1F633 },
+    { 0x1F635, 0x1F640 },
+    { 0x1F645, 0x1F64F },
+    { 0x1F680, 0x1F6C5 },
+    { 0x1F700, 0x1F773 },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D },
     { 0xE0001, 0xE0001 },
     { 0xE0020, 0xE007F },
index f7135fa..63b0e2c 100644 (file)
     { 0x0231, 0x0231 },
     { 0x0233, 0x0233 },
     { 0x023C, 0x023C },
+    { 0x023F, 0x0240 },
     { 0x0242, 0x0242 },
     { 0x0247, 0x0247 },
     { 0x0249, 0x0249 },
     { 0x024B, 0x024B },
     { 0x024D, 0x024D },
-    { 0x024F, 0x0251 },
-    { 0x0253, 0x0254 },
+    { 0x024F, 0x0254 },
     { 0x0256, 0x0257 },
     { 0x0259, 0x0259 },
     { 0x025B, 0x025B },
     { 0x0260, 0x0260 },
     { 0x0263, 0x0263 },
+    { 0x0265, 0x0265 },
     { 0x0268, 0x0269 },
     { 0x026B, 0x026B },
     { 0x026F, 0x026F },
     { 0x051F, 0x051F },
     { 0x0521, 0x0521 },
     { 0x0523, 0x0523 },
+    { 0x0525, 0x0525 },
+    { 0x0527, 0x0527 },
     { 0x0561, 0x0586 },
     { 0x1D79, 0x1D79 },
     { 0x1D7D, 0x1D7D },
     { 0x2CDF, 0x2CDF },
     { 0x2CE1, 0x2CE1 },
     { 0x2CE3, 0x2CE3 },
+    { 0x2CEC, 0x2CEC },
+    { 0x2CEE, 0x2CEE },
     { 0x2D00, 0x2D25 },
     { 0xA641, 0xA641 },
     { 0xA643, 0xA643 },
     { 0xA65B, 0xA65B },
     { 0xA65D, 0xA65D },
     { 0xA65F, 0xA65F },
+    { 0xA661, 0xA661 },
     { 0xA663, 0xA663 },
     { 0xA665, 0xA665 },
     { 0xA667, 0xA667 },
     { 0xA785, 0xA785 },
     { 0xA787, 0xA787 },
     { 0xA78C, 0xA78C },
+    { 0xA791, 0xA791 },
+    { 0xA7A1, 0xA7A1 },
+    { 0xA7A3, 0xA7A3 },
+    { 0xA7A5, 0xA7A5 },
+    { 0xA7A7, 0xA7A7 },
+    { 0xA7A9, 0xA7A9 },
     { 0xFF41, 0xFF5A },
     { 0x10428, 0x1044F }
 
index 7333d75..ee87974 100644 (file)
@@ -23,7 +23,7 @@
     { 0x0384, 0x038A },
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
-    { 0x03A3, 0x0523 },
+    { 0x03A3, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x055F },
     { 0x0561, 0x0587 },
     { 0x05F0, 0x05F4 },
     { 0x0600, 0x0603 },
     { 0x0606, 0x061B },
-    { 0x061E, 0x061F },
-    { 0x0621, 0x065E },
-    { 0x0660, 0x070D },
+    { 0x061E, 0x070D },
     { 0x070F, 0x074A },
     { 0x074D, 0x07B1 },
     { 0x07C0, 0x07FA },
-    { 0x0901, 0x0939 },
-    { 0x093C, 0x094D },
-    { 0x0950, 0x0954 },
-    { 0x0958, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x0800, 0x082D },
+    { 0x0830, 0x083E },
+    { 0x0840, 0x085B },
+    { 0x085E, 0x085E },
+    { 0x0900, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0981, 0x0983 },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
@@ -57,7 +56,7 @@
     { 0x09D7, 0x09D7 },
     { 0x09DC, 0x09DD },
     { 0x09DF, 0x09E3 },
-    { 0x09E6, 0x09FA },
+    { 0x09E6, 0x09FB },
     { 0x0A01, 0x0A03 },
     { 0x0A05, 0x0A0A },
     { 0x0A0F, 0x0A10 },
     { 0x0B56, 0x0B57 },
     { 0x0B5C, 0x0B5D },
     { 0x0B5F, 0x0B63 },
-    { 0x0B66, 0x0B71 },
+    { 0x0B66, 0x0B77 },
     { 0x0B82, 0x0B83 },
     { 0x0B85, 0x0B8A },
     { 0x0B8E, 0x0B90 },
     { 0x0D02, 0x0D03 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D44 },
     { 0x0D46, 0x0D48 },
-    { 0x0D4A, 0x0D4D },
+    { 0x0D4A, 0x0D4E },
     { 0x0D57, 0x0D57 },
     { 0x0D60, 0x0D63 },
     { 0x0D66, 0x0D75 },
     { 0x0EDC, 0x0EDD },
     { 0x0F00, 0x0F47 },
     { 0x0F49, 0x0F6C },
-    { 0x0F71, 0x0F8B },
-    { 0x0F90, 0x0F97 },
+    { 0x0F71, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FBE, 0x0FCC },
-    { 0x0FCE, 0x0FD4 },
-    { 0x1000, 0x1099 },
-    { 0x109E, 0x10C5 },
+    { 0x0FCE, 0x0FDA },
+    { 0x1000, 0x10C5 },
     { 0x10D0, 0x10FC },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x12D8, 0x1310 },
     { 0x1312, 0x1315 },
     { 0x1318, 0x135A },
-    { 0x135F, 0x137C },
+    { 0x135D, 0x137C },
     { 0x1380, 0x1399 },
     { 0x13A0, 0x13F4 },
-    { 0x1401, 0x1676 },
-    { 0x1680, 0x169C },
+    { 0x1400, 0x169C },
     { 0x16A0, 0x16F0 },
     { 0x1700, 0x170C },
     { 0x170E, 0x1714 },
     { 0x1810, 0x1819 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1920, 0x192B },
     { 0x1930, 0x193B },
     { 0x1940, 0x1940 },
     { 0x1944, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19B0, 0x19C9 },
-    { 0x19D0, 0x19D9 },
+    { 0x19D0, 0x19DA },
     { 0x19DE, 0x1A1B },
-    { 0x1A1E, 0x1A1F },
+    { 0x1A1E, 0x1A5E },
+    { 0x1A60, 0x1A7C },
+    { 0x1A7F, 0x1A89 },
+    { 0x1A90, 0x1A99 },
+    { 0x1AA0, 0x1AAD },
     { 0x1B00, 0x1B4B },
     { 0x1B50, 0x1B7C },
     { 0x1B80, 0x1BAA },
     { 0x1BAE, 0x1BB9 },
-    { 0x1C00, 0x1C37 },
+    { 0x1BC0, 0x1BF3 },
+    { 0x1BFC, 0x1C37 },
     { 0x1C3B, 0x1C49 },
     { 0x1C4D, 0x1C7F },
+    { 0x1CD0, 0x1CF2 },
     { 0x1D00, 0x1DE6 },
-    { 0x1DFE, 0x1F15 },
+    { 0x1DFC, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
     { 0x202A, 0x2064 },
     { 0x206A, 0x2071 },
     { 0x2074, 0x208E },
-    { 0x2090, 0x2094 },
-    { 0x20A0, 0x20B5 },
+    { 0x2090, 0x209C },
+    { 0x20A0, 0x20B9 },
     { 0x20D0, 0x20F0 },
-    { 0x2100, 0x214F },
-    { 0x2153, 0x2188 },
-    { 0x2190, 0x23E7 },
+    { 0x2100, 0x2189 },
+    { 0x2190, 0x23F3 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
-    { 0x2460, 0x269D },
-    { 0x26A0, 0x26BC },
-    { 0x26C0, 0x26C3 },
-    { 0x2701, 0x2704 },
-    { 0x2706, 0x2709 },
-    { 0x270C, 0x2727 },
-    { 0x2729, 0x274B },
-    { 0x274D, 0x274D },
-    { 0x274F, 0x2752 },
-    { 0x2756, 0x2756 },
-    { 0x2758, 0x275E },
-    { 0x2761, 0x2794 },
-    { 0x2798, 0x27AF },
-    { 0x27B1, 0x27BE },
-    { 0x27C0, 0x27CA },
+    { 0x2460, 0x26FF },
+    { 0x2701, 0x27CA },
     { 0x27CC, 0x27CC },
-    { 0x27D0, 0x2B4C },
-    { 0x2B50, 0x2B54 },
+    { 0x27CE, 0x2B4C },
+    { 0x2B50, 0x2B59 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CEA },
+    { 0x2C60, 0x2CF1 },
     { 0x2CF9, 0x2D25 },
     { 0x2D30, 0x2D65 },
-    { 0x2D6F, 0x2D6F },
-    { 0x2D80, 0x2D96 },
+    { 0x2D6F, 0x2D70 },
+    { 0x2D7F, 0x2D96 },
     { 0x2DA0, 0x2DA6 },
     { 0x2DA8, 0x2DAE },
     { 0x2DB0, 0x2DB6 },
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
-    { 0x2DE0, 0x2E30 },
+    { 0x2DE0, 0x2E31 },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x2F00, 0x2FD5 },
     { 0x3099, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x3190, 0x31B7 },
+    { 0x3190, 0x31BA },
     { 0x31C0, 0x31E3 },
     { 0x31F0, 0x321E },
-    { 0x3220, 0x3243 },
-    { 0x3250, 0x32FE },
+    { 0x3220, 0x32FE },
     { 0x3300, 0x4DB5 },
-    { 0x4DC0, 0x9FC3 },
+    { 0x4DC0, 0x9FCB },
     { 0xA000, 0xA48C },
     { 0xA490, 0xA4C6 },
-    { 0xA500, 0xA62B },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA673 },
+    { 0xA4D0, 0xA62B },
+    { 0xA640, 0xA673 },
     { 0xA67C, 0xA697 },
-    { 0xA700, 0xA78C },
-    { 0xA7FB, 0xA82B },
+    { 0xA6A0, 0xA6F7 },
+    { 0xA700, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA82B },
+    { 0xA830, 0xA839 },
     { 0xA840, 0xA877 },
     { 0xA880, 0xA8C4 },
     { 0xA8CE, 0xA8D9 },
+    { 0xA8E0, 0xA8FB },
     { 0xA900, 0xA953 },
-    { 0xA95F, 0xA95F },
+    { 0xA95F, 0xA97C },
+    { 0xA980, 0xA9CD },
+    { 0xA9CF, 0xA9D9 },
+    { 0xA9DE, 0xA9DF },
     { 0xAA00, 0xAA36 },
     { 0xAA40, 0xAA4D },
     { 0xAA50, 0xAA59 },
-    { 0xAA5C, 0xAA5F },
+    { 0xAA5C, 0xAA7B },
+    { 0xAA80, 0xAAC2 },
+    { 0xAADB, 0xAADF },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABED },
+    { 0xABF0, 0xABF9 },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xE000, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0xFB3E, 0xFB3E },
     { 0xFB40, 0xFB41 },
     { 0xFB43, 0xFB44 },
-    { 0xFB46, 0xFBB1 },
+    { 0xFB46, 0xFBC1 },
     { 0xFBD3, 0xFD3F },
     { 0xFD50, 0xFD8F },
     { 0xFD92, 0xFDC7 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
-    { 0x10900, 0x10919 },
+    { 0x1083F, 0x10855 },
+    { 0x10857, 0x1085F },
+    { 0x10900, 0x1091B },
     { 0x1091F, 0x10939 },
     { 0x1093F, 0x1093F },
     { 0x10A00, 0x10A03 },
     { 0x10A38, 0x10A3A },
     { 0x10A3F, 0x10A47 },
     { 0x10A50, 0x10A58 },
+    { 0x10A60, 0x10A7F },
+    { 0x10B00, 0x10B35 },
+    { 0x10B39, 0x10B55 },
+    { 0x10B58, 0x10B72 },
+    { 0x10B78, 0x10B7F },
+    { 0x10C00, 0x10C48 },
+    { 0x10E60, 0x10E7E },
+    { 0x11000, 0x1104D },
+    { 0x11052, 0x1106F },
+    { 0x11080, 0x110C1 },
     { 0x12000, 0x1236E },
     { 0x12400, 0x12462 },
     { 0x12470, 0x12473 },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x1D000, 0x1D0F5 },
     { 0x1D100, 0x1D126 },
     { 0x1D129, 0x1D1DD },
     { 0x1D7CE, 0x1D7FF },
     { 0x1F000, 0x1F02B },
     { 0x1F030, 0x1F093 },
+    { 0x1F0A0, 0x1F0AE },
+    { 0x1F0B1, 0x1F0BE },
+    { 0x1F0C1, 0x1F0CF },
+    { 0x1F0D1, 0x1F0DF },
+    { 0x1F100, 0x1F10A },
+    { 0x1F110, 0x1F12E },
+    { 0x1F130, 0x1F169 },
+    { 0x1F170, 0x1F19A },
+    { 0x1F1E6, 0x1F202 },
+    { 0x1F210, 0x1F23A },
+    { 0x1F240, 0x1F248 },
+    { 0x1F250, 0x1F251 },
+    { 0x1F300, 0x1F320 },
+    { 0x1F330, 0x1F335 },
+    { 0x1F337, 0x1F37C },
+    { 0x1F380, 0x1F393 },
+    { 0x1F3A0, 0x1F3C4 },
+    { 0x1F3C6, 0x1F3CA },
+    { 0x1F3E0, 0x1F3F0 },
+    { 0x1F400, 0x1F43E },
+    { 0x1F440, 0x1F440 },
+    { 0x1F442, 0x1F4F7 },
+    { 0x1F4F9, 0x1F4FC },
+    { 0x1F500, 0x1F53D },
+    { 0x1F550, 0x1F567 },
+    { 0x1F5FB, 0x1F5FF },
+    { 0x1F601, 0x1F610 },
+    { 0x1F612, 0x1F614 },
+    { 0x1F616, 0x1F616 },
+    { 0x1F618, 0x1F618 },
+    { 0x1F61A, 0x1F61A },
+    { 0x1F61C, 0x1F61E },
+    { 0x1F620, 0x1F625 },
+    { 0x1F628, 0x1F62B },
+    { 0x1F62D, 0x1F62D },
+    { 0x1F630, 0x1F633 },
+    { 0x1F635, 0x1F640 },
+    { 0x1F645, 0x1F64F },
+    { 0x1F680, 0x1F6C5 },
+    { 0x1F700, 0x1F773 },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D },
     { 0xE0001, 0xE0001 },
     { 0xE0020, 0xE007F },
index e9aa3f0..35a0ac5 100644 (file)
@@ -46,7 +46,7 @@
     { 0x0600, 0x0603 },
     { 0x0606, 0x061B },
     { 0x061E, 0x061F },
-    { 0x064B, 0x065E },
+    { 0x064B, 0x065F },
     { 0x066A, 0x066D },
     { 0x0670, 0x0670 },
     { 0x06D4, 0x06D4 },
     { 0x07A6, 0x07B0 },
     { 0x07EB, 0x07F3 },
     { 0x07F6, 0x07F9 },
-    { 0x0901, 0x0903 },
-    { 0x093C, 0x093C },
-    { 0x093E, 0x094D },
-    { 0x0951, 0x0954 },
+    { 0x0816, 0x0819 },
+    { 0x081B, 0x0823 },
+    { 0x0825, 0x0827 },
+    { 0x0829, 0x082D },
+    { 0x0830, 0x083E },
+    { 0x0859, 0x085B },
+    { 0x085E, 0x085E },
+    { 0x0900, 0x0903 },
+    { 0x093A, 0x093C },
+    { 0x093E, 0x094F },
+    { 0x0951, 0x0957 },
     { 0x0962, 0x0965 },
     { 0x0970, 0x0970 },
     { 0x0981, 0x0983 },
@@ -73,7 +80,7 @@
     { 0x09CB, 0x09CD },
     { 0x09D7, 0x09D7 },
     { 0x09E2, 0x09E3 },
-    { 0x09F2, 0x09FA },
+    { 0x09F2, 0x09FB },
     { 0x0A01, 0x0A03 },
     { 0x0A3C, 0x0A3C },
     { 0x0A3E, 0x0A42 },
     { 0x0B56, 0x0B57 },
     { 0x0B62, 0x0B63 },
     { 0x0B70, 0x0B70 },
+    { 0x0B72, 0x0B77 },
     { 0x0B82, 0x0B82 },
     { 0x0BBE, 0x0BC2 },
     { 0x0BC6, 0x0BC8 },
     { 0x0CCA, 0x0CCD },
     { 0x0CD5, 0x0CD6 },
     { 0x0CE2, 0x0CE3 },
-    { 0x0CF1, 0x0CF2 },
     { 0x0D02, 0x0D03 },
     { 0x0D3E, 0x0D44 },
     { 0x0D46, 0x0D48 },
     { 0x0F01, 0x0F1F },
     { 0x0F2A, 0x0F3F },
     { 0x0F71, 0x0F87 },
-    { 0x0F90, 0x0F97 },
+    { 0x0F8D, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FBE, 0x0FCC },
-    { 0x0FCE, 0x0FD4 },
+    { 0x0FCE, 0x0FDA },
     { 0x102B, 0x103E },
     { 0x104A, 0x104F },
     { 0x1056, 0x1059 },
     { 0x1071, 0x1074 },
     { 0x1082, 0x108D },
     { 0x108F, 0x108F },
-    { 0x109E, 0x109F },
+    { 0x109A, 0x109F },
     { 0x10FB, 0x10FB },
-    { 0x135F, 0x137C },
+    { 0x135D, 0x137C },
     { 0x1390, 0x1399 },
+    { 0x1400, 0x1400 },
     { 0x166D, 0x166E },
     { 0x169B, 0x169C },
     { 0x16EB, 0x16ED },
     { 0x1944, 0x1945 },
     { 0x19B0, 0x19C0 },
     { 0x19C8, 0x19C9 },
+    { 0x19DA, 0x19DA },
     { 0x19DE, 0x19FF },
     { 0x1A17, 0x1A1B },
     { 0x1A1E, 0x1A1F },
+    { 0x1A55, 0x1A5E },
+    { 0x1A60, 0x1A7C },
+    { 0x1A7F, 0x1A7F },
+    { 0x1AA0, 0x1AA6 },
+    { 0x1AA8, 0x1AAD },
     { 0x1B00, 0x1B04 },
     { 0x1B34, 0x1B44 },
     { 0x1B5A, 0x1B7C },
     { 0x1B80, 0x1B82 },
     { 0x1BA1, 0x1BAA },
+    { 0x1BE6, 0x1BF3 },
+    { 0x1BFC, 0x1BFF },
     { 0x1C24, 0x1C37 },
     { 0x1C3B, 0x1C3F },
     { 0x1C7E, 0x1C7F },
+    { 0x1CD0, 0x1CE8 },
+    { 0x1CED, 0x1CED },
+    { 0x1CF2, 0x1CF2 },
     { 0x1DC0, 0x1DE6 },
-    { 0x1DFE, 0x1DFF },
+    { 0x1DFC, 0x1DFF },
     { 0x1FBD, 0x1FBD },
     { 0x1FBF, 0x1FC1 },
     { 0x1FCD, 0x1FCF },
     { 0x206A, 0x2070 },
     { 0x2074, 0x207E },
     { 0x2080, 0x208E },
-    { 0x20A0, 0x20B5 },
+    { 0x20A0, 0x20B9 },
     { 0x20D0, 0x20F0 },
     { 0x2100, 0x2101 },
     { 0x2103, 0x2106 },
     { 0x213A, 0x213B },
     { 0x2140, 0x2144 },
     { 0x214A, 0x214D },
-    { 0x214F, 0x214F },
-    { 0x2153, 0x215F },
-    { 0x2190, 0x23E7 },
+    { 0x214F, 0x215F },
+    { 0x2189, 0x2189 },
+    { 0x2190, 0x23F3 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
     { 0x2460, 0x249B },
-    { 0x24EA, 0x269D },
-    { 0x26A0, 0x26BC },
-    { 0x26C0, 0x26C3 },
-    { 0x2701, 0x2704 },
-    { 0x2706, 0x2709 },
-    { 0x270C, 0x2727 },
-    { 0x2729, 0x274B },
-    { 0x274D, 0x274D },
-    { 0x274F, 0x2752 },
-    { 0x2756, 0x2756 },
-    { 0x2758, 0x275E },
-    { 0x2761, 0x2794 },
-    { 0x2798, 0x27AF },
-    { 0x27B1, 0x27BE },
-    { 0x27C0, 0x27CA },
+    { 0x24EA, 0x26FF },
+    { 0x2701, 0x27CA },
     { 0x27CC, 0x27CC },
-    { 0x27D0, 0x2B4C },
-    { 0x2B50, 0x2B54 },
+    { 0x27CE, 0x2B4C },
+    { 0x2B50, 0x2B59 },
     { 0x2CE5, 0x2CEA },
+    { 0x2CEF, 0x2CF1 },
     { 0x2CF9, 0x2CFF },
+    { 0x2D70, 0x2D70 },
+    { 0x2D7F, 0x2D7F },
     { 0x2DE0, 0x2E2E },
-    { 0x2E30, 0x2E30 },
+    { 0x2E30, 0x2E31 },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x2F00, 0x2FD5 },
     { 0x3190, 0x319F },
     { 0x31C0, 0x31E3 },
     { 0x3200, 0x321E },
-    { 0x3220, 0x3243 },
-    { 0x3250, 0x32FE },
+    { 0x3220, 0x32FE },
     { 0x3300, 0x33FF },
     { 0x4DC0, 0x4DFF },
     { 0xA490, 0xA4C6 },
+    { 0xA4FE, 0xA4FF },
     { 0xA60D, 0xA60F },
     { 0xA66F, 0xA673 },
     { 0xA67C, 0xA67E },
+    { 0xA6F0, 0xA6F7 },
     { 0xA700, 0xA716 },
     { 0xA720, 0xA721 },
     { 0xA789, 0xA78A },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA823, 0xA82B },
+    { 0xA830, 0xA839 },
     { 0xA874, 0xA877 },
     { 0xA880, 0xA881 },
     { 0xA8B4, 0xA8C4 },
     { 0xA8CE, 0xA8CF },
+    { 0xA8E0, 0xA8F1 },
+    { 0xA8F8, 0xA8FA },
     { 0xA926, 0xA92F },
     { 0xA947, 0xA953 },
     { 0xA95F, 0xA95F },
+    { 0xA980, 0xA983 },
+    { 0xA9B3, 0xA9CD },
+    { 0xA9DE, 0xA9DF },
     { 0xAA29, 0xAA36 },
     { 0xAA43, 0xAA43 },
     { 0xAA4C, 0xAA4D },
     { 0xAA5C, 0xAA5F },
+    { 0xAA77, 0xAA79 },
+    { 0xAA7B, 0xAA7B },
+    { 0xAAB0, 0xAAB0 },
+    { 0xAAB2, 0xAAB4 },
+    { 0xAAB7, 0xAAB8 },
+    { 0xAABE, 0xAABF },
+    { 0xAAC1, 0xAAC1 },
+    { 0xAADE, 0xAADF },
+    { 0xABE3, 0xABED },
     { 0xE000, 0xF8FF },
     { 0xFB1E, 0xFB1E },
     { 0xFB29, 0xFB29 },
+    { 0xFBB2, 0xFBC1 },
     { 0xFD3E, 0xFD3F },
     { 0xFDFC, 0xFDFD },
     { 0xFE00, 0xFE19 },
     { 0x10320, 0x10323 },
     { 0x1039F, 0x1039F },
     { 0x103D0, 0x103D0 },
-    { 0x10916, 0x10919 },
+    { 0x10857, 0x1085F },
+    { 0x10916, 0x1091B },
     { 0x1091F, 0x1091F },
     { 0x1093F, 0x1093F },
     { 0x10A01, 0x10A03 },
     { 0x10A38, 0x10A3A },
     { 0x10A3F, 0x10A47 },
     { 0x10A50, 0x10A58 },
+    { 0x10A7D, 0x10A7F },
+    { 0x10B39, 0x10B3F },
+    { 0x10B58, 0x10B5F },
+    { 0x10B78, 0x10B7F },
+    { 0x10E60, 0x10E7E },
+    { 0x11000, 0x11002 },
+    { 0x11038, 0x1104D },
+    { 0x11052, 0x11065 },
+    { 0x11080, 0x11082 },
+    { 0x110B0, 0x110C1 },
     { 0x12470, 0x12473 },
     { 0x1D000, 0x1D0F5 },
     { 0x1D100, 0x1D126 },
     { 0x1D7C3, 0x1D7C3 },
     { 0x1F000, 0x1F02B },
     { 0x1F030, 0x1F093 },
+    { 0x1F0A0, 0x1F0AE },
+    { 0x1F0B1, 0x1F0BE },
+    { 0x1F0C1, 0x1F0CF },
+    { 0x1F0D1, 0x1F0DF },
+    { 0x1F100, 0x1F10A },
+    { 0x1F12D, 0x1F12E },
+    { 0x1F14A, 0x1F14F },
+    { 0x1F18B, 0x1F19A },
+    { 0x1F200, 0x1F202 },
+    { 0x1F210, 0x1F23A },
+    { 0x1F240, 0x1F248 },
+    { 0x1F250, 0x1F251 },
+    { 0x1F300, 0x1F320 },
+    { 0x1F330, 0x1F335 },
+    { 0x1F337, 0x1F37C },
+    { 0x1F380, 0x1F393 },
+    { 0x1F3A0, 0x1F3C4 },
+    { 0x1F3C6, 0x1F3CA },
+    { 0x1F3E0, 0x1F3F0 },
+    { 0x1F400, 0x1F43E },
+    { 0x1F440, 0x1F440 },
+    { 0x1F442, 0x1F4F7 },
+    { 0x1F4F9, 0x1F4FC },
+    { 0x1F500, 0x1F53D },
+    { 0x1F550, 0x1F567 },
+    { 0x1F5FB, 0x1F5FF },
+    { 0x1F601, 0x1F610 },
+    { 0x1F612, 0x1F614 },
+    { 0x1F616, 0x1F616 },
+    { 0x1F618, 0x1F618 },
+    { 0x1F61A, 0x1F61A },
+    { 0x1F61C, 0x1F61E },
+    { 0x1F620, 0x1F625 },
+    { 0x1F628, 0x1F62B },
+    { 0x1F62D, 0x1F62D },
+    { 0x1F630, 0x1F633 },
+    { 0x1F635, 0x1F640 },
+    { 0x1F645, 0x1F64F },
+    { 0x1F680, 0x1F6C5 },
+    { 0x1F700, 0x1F773 },
     { 0xE0001, 0xE0001 },
     { 0xE0020, 0xE007F },
     { 0xE0100, 0xE01EF },
index d7f0c03..3c012a4 100644 (file)
     { 0x051E, 0x051E },
     { 0x0520, 0x0520 },
     { 0x0522, 0x0522 },
+    { 0x0524, 0x0524 },
+    { 0x0526, 0x0526 },
     { 0x0531, 0x0556 },
     { 0x10A0, 0x10C5 },
     { 0x1E00, 0x1E00 },
     { 0x2C67, 0x2C67 },
     { 0x2C69, 0x2C69 },
     { 0x2C6B, 0x2C6B },
-    { 0x2C6D, 0x2C6F },
+    { 0x2C6D, 0x2C70 },
     { 0x2C72, 0x2C72 },
     { 0x2C75, 0x2C75 },
-    { 0x2C80, 0x2C80 },
+    { 0x2C7E, 0x2C80 },
     { 0x2C82, 0x2C82 },
     { 0x2C84, 0x2C84 },
     { 0x2C86, 0x2C86 },
     { 0x2CDE, 0x2CDE },
     { 0x2CE0, 0x2CE0 },
     { 0x2CE2, 0x2CE2 },
+    { 0x2CEB, 0x2CEB },
+    { 0x2CED, 0x2CED },
     { 0xA640, 0xA640 },
     { 0xA642, 0xA642 },
     { 0xA644, 0xA644 },
     { 0xA65A, 0xA65A },
     { 0xA65C, 0xA65C },
     { 0xA65E, 0xA65E },
+    { 0xA660, 0xA660 },
     { 0xA662, 0xA662 },
     { 0xA664, 0xA664 },
     { 0xA666, 0xA666 },
     { 0xA784, 0xA784 },
     { 0xA786, 0xA786 },
     { 0xA78B, 0xA78B },
+    { 0xA78D, 0xA78D },
+    { 0xA790, 0xA790 },
+    { 0xA7A0, 0xA7A0 },
+    { 0xA7A2, 0xA7A2 },
+    { 0xA7A4, 0xA7A4 },
+    { 0xA7A6, 0xA7A6 },
+    { 0xA7A8, 0xA7A8 },
     { 0xFF21, 0xFF3A },
     { 0x10400, 0x10427 }
 
index afa88de..c7289bb 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Decimal digit values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
     { 0x0030, 0 },
     { 0x0031, 1 },
     { 0x0032, 2 },
     { 0x19D7, 7 },
     { 0x19D8, 8 },
     { 0x19D9, 9 },
+    { 0x1A80, 0 },
+    { 0x1A81, 1 },
+    { 0x1A82, 2 },
+    { 0x1A83, 3 },
+    { 0x1A84, 4 },
+    { 0x1A85, 5 },
+    { 0x1A86, 6 },
+    { 0x1A87, 7 },
+    { 0x1A88, 8 },
+    { 0x1A89, 9 },
+    { 0x1A90, 0 },
+    { 0x1A91, 1 },
+    { 0x1A92, 2 },
+    { 0x1A93, 3 },
+    { 0x1A94, 4 },
+    { 0x1A95, 5 },
+    { 0x1A96, 6 },
+    { 0x1A97, 7 },
+    { 0x1A98, 8 },
+    { 0x1A99, 9 },
     { 0x1B50, 0 },
     { 0x1B51, 1 },
     { 0x1B52, 2 },
     { 0xA907, 7 },
     { 0xA908, 8 },
     { 0xA909, 9 },
+    { 0xA9D0, 0 },
+    { 0xA9D1, 1 },
+    { 0xA9D2, 2 },
+    { 0xA9D3, 3 },
+    { 0xA9D4, 4 },
+    { 0xA9D5, 5 },
+    { 0xA9D6, 6 },
+    { 0xA9D7, 7 },
+    { 0xA9D8, 8 },
+    { 0xA9D9, 9 },
     { 0xAA50, 0 },
     { 0xAA51, 1 },
     { 0xAA52, 2 },
     { 0xAA57, 7 },
     { 0xAA58, 8 },
     { 0xAA59, 9 },
+    { 0xABF0, 0 },
+    { 0xABF1, 1 },
+    { 0xABF2, 2 },
+    { 0xABF3, 3 },
+    { 0xABF4, 4 },
+    { 0xABF5, 5 },
+    { 0xABF6, 6 },
+    { 0xABF7, 7 },
+    { 0xABF8, 8 },
+    { 0xABF9, 9 },
     { 0xFF10, 0 },
     { 0xFF11, 1 },
     { 0xFF12, 2 },
     { 0x104A7, 7 },
     { 0x104A8, 8 },
     { 0x104A9, 9 },
+    { 0x11066, 0 },
+    { 0x11067, 1 },
+    { 0x11068, 2 },
+    { 0x11069, 3 },
+    { 0x1106A, 4 },
+    { 0x1106B, 5 },
+    { 0x1106C, 6 },
+    { 0x1106D, 7 },
+    { 0x1106E, 8 },
+    { 0x1106F, 9 },
     { 0x1D7CE, 0 },
     { 0x1D7CF, 1 },
     { 0x1D7D0, 2 },
index 9902a7f..b04e6fb 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Digit values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
     { 0x0030, 0 },
     { 0x0031, 1 },
     { 0x0032, 2 },
     { 0x19D7, 7 },
     { 0x19D8, 8 },
     { 0x19D9, 9 },
+    { 0x19DA, 1 },
+    { 0x1A80, 0 },
+    { 0x1A81, 1 },
+    { 0x1A82, 2 },
+    { 0x1A83, 3 },
+    { 0x1A84, 4 },
+    { 0x1A85, 5 },
+    { 0x1A86, 6 },
+    { 0x1A87, 7 },
+    { 0x1A88, 8 },
+    { 0x1A89, 9 },
+    { 0x1A90, 0 },
+    { 0x1A91, 1 },
+    { 0x1A92, 2 },
+    { 0x1A93, 3 },
+    { 0x1A94, 4 },
+    { 0x1A95, 5 },
+    { 0x1A96, 6 },
+    { 0x1A97, 7 },
+    { 0x1A98, 8 },
+    { 0x1A99, 9 },
     { 0x1B50, 0 },
     { 0x1B51, 1 },
     { 0x1B52, 2 },
     { 0xA907, 7 },
     { 0xA908, 8 },
     { 0xA909, 9 },
+    { 0xA9D0, 0 },
+    { 0xA9D1, 1 },
+    { 0xA9D2, 2 },
+    { 0xA9D3, 3 },
+    { 0xA9D4, 4 },
+    { 0xA9D5, 5 },
+    { 0xA9D6, 6 },
+    { 0xA9D7, 7 },
+    { 0xA9D8, 8 },
+    { 0xA9D9, 9 },
     { 0xAA50, 0 },
     { 0xAA51, 1 },
     { 0xAA52, 2 },
     { 0xAA57, 7 },
     { 0xAA58, 8 },
     { 0xAA59, 9 },
+    { 0xABF0, 0 },
+    { 0xABF1, 1 },
+    { 0xABF2, 2 },
+    { 0xABF3, 3 },
+    { 0xABF4, 4 },
+    { 0xABF5, 5 },
+    { 0xABF6, 6 },
+    { 0xABF7, 7 },
+    { 0xABF8, 8 },
+    { 0xABF9, 9 },
     { 0xFF10, 0 },
     { 0xFF11, 1 },
     { 0xFF12, 2 },
     { 0x10A41, 2 },
     { 0x10A42, 3 },
     { 0x10A43, 4 },
+    { 0x10E60, 1 },
+    { 0x10E61, 2 },
+    { 0x10E62, 3 },
+    { 0x10E63, 4 },
+    { 0x10E64, 5 },
+    { 0x10E65, 6 },
+    { 0x10E66, 7 },
+    { 0x10E67, 8 },
+    { 0x10E68, 9 },
+    { 0x11052, 1 },
+    { 0x11053, 2 },
+    { 0x11054, 3 },
+    { 0x11055, 4 },
+    { 0x11056, 5 },
+    { 0x11057, 6 },
+    { 0x11058, 7 },
+    { 0x11059, 8 },
+    { 0x1105A, 9 },
+    { 0x11066, 0 },
+    { 0x11067, 1 },
+    { 0x11068, 2 },
+    { 0x11069, 3 },
+    { 0x1106A, 4 },
+    { 0x1106B, 5 },
+    { 0x1106C, 6 },
+    { 0x1106D, 7 },
+    { 0x1106E, 8 },
+    { 0x1106F, 9 },
     { 0x1D7CE, 0 },
     { 0x1D7CF, 1 },
     { 0x1D7D0, 2 },
     { 0x1D7FC, 6 },
     { 0x1D7FD, 7 },
     { 0x1D7FE, 8 },
-    { 0x1D7FF, 9 }
+    { 0x1D7FF, 9 },
+    { 0x1F100, 0 },
+    { 0x1F101, 0 },
+    { 0x1F102, 1 },
+    { 0x1F103, 2 },
+    { 0x1F104, 3 },
+    { 0x1F105, 4 },
+    { 0x1F106, 5 },
+    { 0x1F107, 6 },
+    { 0x1F108, 7 },
+    { 0x1F109, 8 },
+    { 0x1F10A, 9 }
diff --git a/tests/unictype/test-joininggroup_byname.c b/tests/unictype/test-joininggroup_byname.c
new file mode 100644 (file)
index 0000000..9f2119a
--- /dev/null
@@ -0,0 +1,178 @@
+/* Test the Unicode character Arabic joining group functions.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+int
+main ()
+{
+  ASSERT (uc_joining_group_byname ("NO JOINING GROUP") == UC_JOINING_GROUP_NONE);
+  ASSERT (uc_joining_group_byname ("No Joining Group") == UC_JOINING_GROUP_NONE);
+  ASSERT (uc_joining_group_byname ("No_Joining_Group") == UC_JOINING_GROUP_NONE);
+  ASSERT (uc_joining_group_byname ("NoJoiningGroup") == UC_JOINING_GROUP_NONE);
+  ASSERT (uc_joining_group_byname ("AIN") == UC_JOINING_GROUP_AIN);
+  ASSERT (uc_joining_group_byname ("Ain") == UC_JOINING_GROUP_AIN);
+  ASSERT (uc_joining_group_byname ("ALAPH") == UC_JOINING_GROUP_ALAPH);
+  ASSERT (uc_joining_group_byname ("Alaph") == UC_JOINING_GROUP_ALAPH);
+  ASSERT (uc_joining_group_byname ("ALEF") == UC_JOINING_GROUP_ALEF);
+  ASSERT (uc_joining_group_byname ("Alef") == UC_JOINING_GROUP_ALEF);
+  ASSERT (uc_joining_group_byname ("BEH") == UC_JOINING_GROUP_BEH);
+  ASSERT (uc_joining_group_byname ("Beh") == UC_JOINING_GROUP_BEH);
+  ASSERT (uc_joining_group_byname ("BETH") == UC_JOINING_GROUP_BETH);
+  ASSERT (uc_joining_group_byname ("Beth") == UC_JOINING_GROUP_BETH);
+  ASSERT (uc_joining_group_byname ("BURUSHASKI YEH BARREE") == UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE);
+  ASSERT (uc_joining_group_byname ("Burushaski Yeh Barree") == UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE);
+  ASSERT (uc_joining_group_byname ("Burushaski_Yeh_Barree") == UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE);
+  ASSERT (uc_joining_group_byname ("BurushaskiYehBarree") == UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE);
+  ASSERT (uc_joining_group_byname ("DAL") == UC_JOINING_GROUP_DAL);
+  ASSERT (uc_joining_group_byname ("Dal") == UC_JOINING_GROUP_DAL);
+  ASSERT (uc_joining_group_byname ("DALATH RISH") == UC_JOINING_GROUP_DALATH_RISH);
+  ASSERT (uc_joining_group_byname ("Dalath Rish") == UC_JOINING_GROUP_DALATH_RISH);
+  ASSERT (uc_joining_group_byname ("Dalath_Rish") == UC_JOINING_GROUP_DALATH_RISH);
+  ASSERT (uc_joining_group_byname ("DalathRish") == UC_JOINING_GROUP_DALATH_RISH);
+  ASSERT (uc_joining_group_byname ("E") == UC_JOINING_GROUP_E);
+  ASSERT (uc_joining_group_byname ("FARSI YEH") == UC_JOINING_GROUP_FARSI_YEH);
+  ASSERT (uc_joining_group_byname ("Farsi Yeh") == UC_JOINING_GROUP_FARSI_YEH);
+  ASSERT (uc_joining_group_byname ("Farsi_Yeh") == UC_JOINING_GROUP_FARSI_YEH);
+  ASSERT (uc_joining_group_byname ("FarsiYeh") == UC_JOINING_GROUP_FARSI_YEH);
+  ASSERT (uc_joining_group_byname ("FE") == UC_JOINING_GROUP_FE);
+  ASSERT (uc_joining_group_byname ("Fe") == UC_JOINING_GROUP_FE);
+  ASSERT (uc_joining_group_byname ("FEH") == UC_JOINING_GROUP_FEH);
+  ASSERT (uc_joining_group_byname ("Feh") == UC_JOINING_GROUP_FEH);
+  ASSERT (uc_joining_group_byname ("FINAL SEMKATH") == UC_JOINING_GROUP_FINAL_SEMKATH);
+  ASSERT (uc_joining_group_byname ("Final Semkath") == UC_JOINING_GROUP_FINAL_SEMKATH);
+  ASSERT (uc_joining_group_byname ("Final_Semkath") == UC_JOINING_GROUP_FINAL_SEMKATH);
+  ASSERT (uc_joining_group_byname ("FinalSemkath") == UC_JOINING_GROUP_FINAL_SEMKATH);
+  ASSERT (uc_joining_group_byname ("GAF") == UC_JOINING_GROUP_GAF);
+  ASSERT (uc_joining_group_byname ("Gaf") == UC_JOINING_GROUP_GAF);
+  ASSERT (uc_joining_group_byname ("GAMAL") == UC_JOINING_GROUP_GAMAL);
+  ASSERT (uc_joining_group_byname ("Gamal") == UC_JOINING_GROUP_GAMAL);
+  ASSERT (uc_joining_group_byname ("HAH") == UC_JOINING_GROUP_HAH);
+  ASSERT (uc_joining_group_byname ("Hah") == UC_JOINING_GROUP_HAH);
+  ASSERT (uc_joining_group_byname ("HE") == UC_JOINING_GROUP_HE);
+  ASSERT (uc_joining_group_byname ("He") == UC_JOINING_GROUP_HE);
+  ASSERT (uc_joining_group_byname ("HEH") == UC_JOINING_GROUP_HEH);
+  ASSERT (uc_joining_group_byname ("Heh") == UC_JOINING_GROUP_HEH);
+  ASSERT (uc_joining_group_byname ("HEH GOAL") == UC_JOINING_GROUP_HEH_GOAL);
+  ASSERT (uc_joining_group_byname ("Heh Goal") == UC_JOINING_GROUP_HEH_GOAL);
+  ASSERT (uc_joining_group_byname ("Heh_Goal") == UC_JOINING_GROUP_HEH_GOAL);
+  ASSERT (uc_joining_group_byname ("HehGoal") == UC_JOINING_GROUP_HEH_GOAL);
+  ASSERT (uc_joining_group_byname ("HETH") == UC_JOINING_GROUP_HETH);
+  ASSERT (uc_joining_group_byname ("Heth") == UC_JOINING_GROUP_HETH);
+  ASSERT (uc_joining_group_byname ("KAF") == UC_JOINING_GROUP_KAF);
+  ASSERT (uc_joining_group_byname ("Kaf") == UC_JOINING_GROUP_KAF);
+  ASSERT (uc_joining_group_byname ("KAPH") == UC_JOINING_GROUP_KAPH);
+  ASSERT (uc_joining_group_byname ("Kaph") == UC_JOINING_GROUP_KAPH);
+  ASSERT (uc_joining_group_byname ("KHAPH") == UC_JOINING_GROUP_KHAPH);
+  ASSERT (uc_joining_group_byname ("Khaph") == UC_JOINING_GROUP_KHAPH);
+  ASSERT (uc_joining_group_byname ("KNOTTED HEH") == UC_JOINING_GROUP_KNOTTED_HEH);
+  ASSERT (uc_joining_group_byname ("Knotted Heh") == UC_JOINING_GROUP_KNOTTED_HEH);
+  ASSERT (uc_joining_group_byname ("Knotted_Heh") == UC_JOINING_GROUP_KNOTTED_HEH);
+  ASSERT (uc_joining_group_byname ("KnottedHeh") == UC_JOINING_GROUP_KNOTTED_HEH);
+  ASSERT (uc_joining_group_byname ("LAM") == UC_JOINING_GROUP_LAM);
+  ASSERT (uc_joining_group_byname ("Lam") == UC_JOINING_GROUP_LAM);
+  ASSERT (uc_joining_group_byname ("LAMADH") == UC_JOINING_GROUP_LAMADH);
+  ASSERT (uc_joining_group_byname ("Lamadh") == UC_JOINING_GROUP_LAMADH);
+  ASSERT (uc_joining_group_byname ("MEEM") == UC_JOINING_GROUP_MEEM);
+  ASSERT (uc_joining_group_byname ("Meem") == UC_JOINING_GROUP_MEEM);
+  ASSERT (uc_joining_group_byname ("MIM") == UC_JOINING_GROUP_MIM);
+  ASSERT (uc_joining_group_byname ("Mim") == UC_JOINING_GROUP_MIM);
+  ASSERT (uc_joining_group_byname ("NOON") == UC_JOINING_GROUP_NOON);
+  ASSERT (uc_joining_group_byname ("Noon") == UC_JOINING_GROUP_NOON);
+  ASSERT (uc_joining_group_byname ("NUN") == UC_JOINING_GROUP_NUN);
+  ASSERT (uc_joining_group_byname ("Nun") == UC_JOINING_GROUP_NUN);
+  ASSERT (uc_joining_group_byname ("NYA") == UC_JOINING_GROUP_NYA);
+  ASSERT (uc_joining_group_byname ("Nya") == UC_JOINING_GROUP_NYA);
+  ASSERT (uc_joining_group_byname ("PE") == UC_JOINING_GROUP_PE);
+  ASSERT (uc_joining_group_byname ("Pe") == UC_JOINING_GROUP_PE);
+  ASSERT (uc_joining_group_byname ("QAF") == UC_JOINING_GROUP_QAF);
+  ASSERT (uc_joining_group_byname ("Qaf") == UC_JOINING_GROUP_QAF);
+  ASSERT (uc_joining_group_byname ("QAPH") == UC_JOINING_GROUP_QAPH);
+  ASSERT (uc_joining_group_byname ("Qaph") == UC_JOINING_GROUP_QAPH);
+  ASSERT (uc_joining_group_byname ("REH") == UC_JOINING_GROUP_REH);
+  ASSERT (uc_joining_group_byname ("Reh") == UC_JOINING_GROUP_REH);
+  ASSERT (uc_joining_group_byname ("REVERSED PE") == UC_JOINING_GROUP_REVERSED_PE);
+  ASSERT (uc_joining_group_byname ("Reversed Pe") == UC_JOINING_GROUP_REVERSED_PE);
+  ASSERT (uc_joining_group_byname ("Reversed_Pe") == UC_JOINING_GROUP_REVERSED_PE);
+  ASSERT (uc_joining_group_byname ("ReversedPe") == UC_JOINING_GROUP_REVERSED_PE);
+  ASSERT (uc_joining_group_byname ("SAD") == UC_JOINING_GROUP_SAD);
+  ASSERT (uc_joining_group_byname ("Sad") == UC_JOINING_GROUP_SAD);
+  ASSERT (uc_joining_group_byname ("SADHE") == UC_JOINING_GROUP_SADHE);
+  ASSERT (uc_joining_group_byname ("Sadhe") == UC_JOINING_GROUP_SADHE);
+  ASSERT (uc_joining_group_byname ("SEEN") == UC_JOINING_GROUP_SEEN);
+  ASSERT (uc_joining_group_byname ("Seen") == UC_JOINING_GROUP_SEEN);
+  ASSERT (uc_joining_group_byname ("SEMKATH") == UC_JOINING_GROUP_SEMKATH);
+  ASSERT (uc_joining_group_byname ("Semkath") == UC_JOINING_GROUP_SEMKATH);
+  ASSERT (uc_joining_group_byname ("SHIN") == UC_JOINING_GROUP_SHIN);
+  ASSERT (uc_joining_group_byname ("Shin") == UC_JOINING_GROUP_SHIN);
+  ASSERT (uc_joining_group_byname ("SWASH KAF") == UC_JOINING_GROUP_SWASH_KAF);
+  ASSERT (uc_joining_group_byname ("Swash Kaf") == UC_JOINING_GROUP_SWASH_KAF);
+  ASSERT (uc_joining_group_byname ("Swash_Kaf") == UC_JOINING_GROUP_SWASH_KAF);
+  ASSERT (uc_joining_group_byname ("SwashKaf") == UC_JOINING_GROUP_SWASH_KAF);
+  ASSERT (uc_joining_group_byname ("SYRIAC WAW") == UC_JOINING_GROUP_SYRIAC_WAW);
+  ASSERT (uc_joining_group_byname ("Syriac Waw") == UC_JOINING_GROUP_SYRIAC_WAW);
+  ASSERT (uc_joining_group_byname ("Syriac_Waw") == UC_JOINING_GROUP_SYRIAC_WAW);
+  ASSERT (uc_joining_group_byname ("SyriacWaw") == UC_JOINING_GROUP_SYRIAC_WAW);
+  ASSERT (uc_joining_group_byname ("TAH") == UC_JOINING_GROUP_TAH);
+  ASSERT (uc_joining_group_byname ("Tah") == UC_JOINING_GROUP_TAH);
+  ASSERT (uc_joining_group_byname ("TAW") == UC_JOINING_GROUP_TAW);
+  ASSERT (uc_joining_group_byname ("Taw") == UC_JOINING_GROUP_TAW);
+  ASSERT (uc_joining_group_byname ("TEH MARBUTA") == UC_JOINING_GROUP_TEH_MARBUTA);
+  ASSERT (uc_joining_group_byname ("Teh Marbuta") == UC_JOINING_GROUP_TEH_MARBUTA);
+  ASSERT (uc_joining_group_byname ("Teh_Marbuta") == UC_JOINING_GROUP_TEH_MARBUTA);
+  ASSERT (uc_joining_group_byname ("TehMarbuta") == UC_JOINING_GROUP_TEH_MARBUTA);
+  ASSERT (uc_joining_group_byname ("TEH MARBUTA GOAL") == UC_JOINING_GROUP_TEH_MARBUTA_GOAL);
+  ASSERT (uc_joining_group_byname ("Teh Marbuta Goal") == UC_JOINING_GROUP_TEH_MARBUTA_GOAL);
+  ASSERT (uc_joining_group_byname ("Teh_Marbuta_Goal") == UC_JOINING_GROUP_TEH_MARBUTA_GOAL);
+  ASSERT (uc_joining_group_byname ("TehMarbutaGoal") == UC_JOINING_GROUP_TEH_MARBUTA_GOAL);
+  ASSERT (uc_joining_group_byname ("TETH") == UC_JOINING_GROUP_TETH);
+  ASSERT (uc_joining_group_byname ("Teth") == UC_JOINING_GROUP_TETH);
+  ASSERT (uc_joining_group_byname ("WAW") == UC_JOINING_GROUP_WAW);
+  ASSERT (uc_joining_group_byname ("Waw") == UC_JOINING_GROUP_WAW);
+  ASSERT (uc_joining_group_byname ("YEH") == UC_JOINING_GROUP_YEH);
+  ASSERT (uc_joining_group_byname ("Yeh") == UC_JOINING_GROUP_YEH);
+  ASSERT (uc_joining_group_byname ("YEH BARREE") == UC_JOINING_GROUP_YEH_BARREE);
+  ASSERT (uc_joining_group_byname ("Yeh Barree") == UC_JOINING_GROUP_YEH_BARREE);
+  ASSERT (uc_joining_group_byname ("Yeh_Barree") == UC_JOINING_GROUP_YEH_BARREE);
+  ASSERT (uc_joining_group_byname ("YehBarree") == UC_JOINING_GROUP_YEH_BARREE);
+  ASSERT (uc_joining_group_byname ("YEH WITH TAIL") == UC_JOINING_GROUP_YEH_WITH_TAIL);
+  ASSERT (uc_joining_group_byname ("Yeh with tail") == UC_JOINING_GROUP_YEH_WITH_TAIL);
+  ASSERT (uc_joining_group_byname ("Yeh_with_tail") == UC_JOINING_GROUP_YEH_WITH_TAIL);
+  ASSERT (uc_joining_group_byname ("YehWithTail") == UC_JOINING_GROUP_YEH_WITH_TAIL);
+  ASSERT (uc_joining_group_byname ("YUDH") == UC_JOINING_GROUP_YUDH);
+  ASSERT (uc_joining_group_byname ("Yudh") == UC_JOINING_GROUP_YUDH);
+  ASSERT (uc_joining_group_byname ("YUDH HE") == UC_JOINING_GROUP_YUDH_HE);
+  ASSERT (uc_joining_group_byname ("Yudh He") == UC_JOINING_GROUP_YUDH_HE);
+  ASSERT (uc_joining_group_byname ("Yudh_He") == UC_JOINING_GROUP_YUDH_HE);
+  ASSERT (uc_joining_group_byname ("YudhHe") == UC_JOINING_GROUP_YUDH_HE);
+  ASSERT (uc_joining_group_byname ("ZAIN") == UC_JOINING_GROUP_ZAIN);
+  ASSERT (uc_joining_group_byname ("Zain") == UC_JOINING_GROUP_ZAIN);
+  ASSERT (uc_joining_group_byname ("ZHAIN") == UC_JOINING_GROUP_ZHAIN);
+  ASSERT (uc_joining_group_byname ("Zhain") == UC_JOINING_GROUP_ZHAIN);
+  ASSERT (uc_joining_group_byname ("SEEN WITH 3 DOTS BELOW AND 3 DOTS ABOVE") < 0);
+  ASSERT (uc_joining_group_byname ("X") < 0);
+  ASSERT (uc_joining_group_byname ("") < 0);
+
+  return 0;
+}
diff --git a/tests/unictype/test-joininggroup_name.c b/tests/unictype/test-joininggroup_name.c
new file mode 100644 (file)
index 0000000..a1d5c94
--- /dev/null
@@ -0,0 +1,90 @@
+/* Test the Unicode character Arabic joining group functions.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+int
+main ()
+{
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_NONE),                  "No Joining Group") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_AIN),                   "Ain") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_ALAPH),                 "Alaph") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_ALEF),                  "Alef") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_BEH),                   "Beh") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_BETH),                  "Beth") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE), "Burushaski Yeh Barree") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_DAL),                   "Dal") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_DALATH_RISH),           "Dalath Rish") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_E),                     "E") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_FARSI_YEH),             "Farsi Yeh") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_FE),                    "Fe") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_FEH),                   "Feh") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_FINAL_SEMKATH),         "Final Semkath") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_GAF),                   "Gaf") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_GAMAL),                 "Gamal") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_HAH),                   "Hah") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_HE),                    "He") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_HEH),                   "Heh") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_HEH_GOAL),              "Heh Goal") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_HETH),                  "Heth") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_KAF),                   "Kaf") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_KAPH),                  "Kaph") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_KHAPH),                 "Khaph") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_KNOTTED_HEH),           "Knotted Heh") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_LAM),                   "Lam") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_LAMADH),                "Lamadh") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_MEEM),                  "Meem") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_MIM),                   "Mim") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_NOON),                  "Noon") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_NUN),                   "Nun") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_NYA),                   "Nya") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_PE),                    "Pe") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_QAF),                   "Qaf") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_QAPH),                  "Qaph") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_REH),                   "Reh") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_REVERSED_PE),           "Reversed Pe") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_SAD),                   "Sad") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_SADHE),                 "Sadhe") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_SEEN),                  "Seen") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_SEMKATH),               "Semkath") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_SHIN),                  "Shin") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_SWASH_KAF),             "Swash Kaf") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_SYRIAC_WAW),            "Syriac Waw") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_TAH),                   "Tah") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_TAW),                   "Taw") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_TEH_MARBUTA),           "Teh Marbuta") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_TEH_MARBUTA_GOAL),      "Teh Marbuta Goal") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_TETH),                  "Teth") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_WAW),                   "Waw") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_YEH),                   "Yeh") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_YEH_BARREE),            "Yeh Barree") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_YEH_WITH_TAIL),         "Yeh With Tail") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_YUDH),                  "Yudh") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_YUDH_HE),               "Yudh He") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_ZAIN),                  "Zain") == 0);
+  ASSERT (strcmp (uc_joining_group_name (UC_JOINING_GROUP_ZHAIN),                 "Zhain") == 0);
+  ASSERT (uc_joining_group_name (-1) == NULL);
+
+  return 0;
+}
diff --git a/tests/unictype/test-joininggroup_of.c b/tests/unictype/test-joininggroup_of.c
new file mode 100644 (file)
index 0000000..ffbdaeb
--- /dev/null
@@ -0,0 +1,52 @@
+/* Test the Unicode character Arabic joining group functions.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+typedef struct { ucs4_t ch; int value; } pair_t;
+
+static const pair_t mapping[] =
+  {
+#include "test-joininggroup_of.h"
+  };
+
+int
+main ()
+{
+  unsigned int c;
+  size_t i;
+
+  c = 0;
+  for (i = 0; i < SIZEOF (mapping); i++)
+    {
+      for (; c < mapping[i].ch; c++)
+        ASSERT (uc_joining_group (c) == UC_JOINING_GROUP_NONE);
+      ASSERT (uc_joining_group (c) == mapping[i].value);
+      c++;
+    }
+  for (; c < 0x110000; c++)
+    ASSERT (uc_joining_group (c) == UC_JOINING_GROUP_NONE);
+
+  return 0;
+}
diff --git a/tests/unictype/test-joininggroup_of.h b/tests/unictype/test-joininggroup_of.h
new file mode 100644 (file)
index 0000000..89fe497
--- /dev/null
@@ -0,0 +1,233 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Arabic joining group of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+    { 0x0620, UC_JOINING_GROUP_YEH },
+    { 0x0622, UC_JOINING_GROUP_ALEF },
+    { 0x0623, UC_JOINING_GROUP_ALEF },
+    { 0x0624, UC_JOINING_GROUP_WAW },
+    { 0x0625, UC_JOINING_GROUP_ALEF },
+    { 0x0626, UC_JOINING_GROUP_YEH },
+    { 0x0627, UC_JOINING_GROUP_ALEF },
+    { 0x0628, UC_JOINING_GROUP_BEH },
+    { 0x0629, UC_JOINING_GROUP_TEH_MARBUTA },
+    { 0x062A, UC_JOINING_GROUP_BEH },
+    { 0x062B, UC_JOINING_GROUP_BEH },
+    { 0x062C, UC_JOINING_GROUP_HAH },
+    { 0x062D, UC_JOINING_GROUP_HAH },
+    { 0x062E, UC_JOINING_GROUP_HAH },
+    { 0x062F, UC_JOINING_GROUP_DAL },
+    { 0x0630, UC_JOINING_GROUP_DAL },
+    { 0x0631, UC_JOINING_GROUP_REH },
+    { 0x0632, UC_JOINING_GROUP_REH },
+    { 0x0633, UC_JOINING_GROUP_SEEN },
+    { 0x0634, UC_JOINING_GROUP_SEEN },
+    { 0x0635, UC_JOINING_GROUP_SAD },
+    { 0x0636, UC_JOINING_GROUP_SAD },
+    { 0x0637, UC_JOINING_GROUP_TAH },
+    { 0x0638, UC_JOINING_GROUP_TAH },
+    { 0x0639, UC_JOINING_GROUP_AIN },
+    { 0x063A, UC_JOINING_GROUP_AIN },
+    { 0x063B, UC_JOINING_GROUP_GAF },
+    { 0x063C, UC_JOINING_GROUP_GAF },
+    { 0x063D, UC_JOINING_GROUP_FARSI_YEH },
+    { 0x063E, UC_JOINING_GROUP_FARSI_YEH },
+    { 0x063F, UC_JOINING_GROUP_FARSI_YEH },
+    { 0x0641, UC_JOINING_GROUP_FEH },
+    { 0x0642, UC_JOINING_GROUP_QAF },
+    { 0x0643, UC_JOINING_GROUP_KAF },
+    { 0x0644, UC_JOINING_GROUP_LAM },
+    { 0x0645, UC_JOINING_GROUP_MEEM },
+    { 0x0646, UC_JOINING_GROUP_NOON },
+    { 0x0647, UC_JOINING_GROUP_HEH },
+    { 0x0648, UC_JOINING_GROUP_WAW },
+    { 0x0649, UC_JOINING_GROUP_YEH },
+    { 0x064A, UC_JOINING_GROUP_YEH },
+    { 0x066E, UC_JOINING_GROUP_BEH },
+    { 0x066F, UC_JOINING_GROUP_QAF },
+    { 0x0671, UC_JOINING_GROUP_ALEF },
+    { 0x0672, UC_JOINING_GROUP_ALEF },
+    { 0x0673, UC_JOINING_GROUP_ALEF },
+    { 0x0675, UC_JOINING_GROUP_ALEF },
+    { 0x0676, UC_JOINING_GROUP_WAW },
+    { 0x0677, UC_JOINING_GROUP_WAW },
+    { 0x0678, UC_JOINING_GROUP_YEH },
+    { 0x0679, UC_JOINING_GROUP_BEH },
+    { 0x067A, UC_JOINING_GROUP_BEH },
+    { 0x067B, UC_JOINING_GROUP_BEH },
+    { 0x067C, UC_JOINING_GROUP_BEH },
+    { 0x067D, UC_JOINING_GROUP_BEH },
+    { 0x067E, UC_JOINING_GROUP_BEH },
+    { 0x067F, UC_JOINING_GROUP_BEH },
+    { 0x0680, UC_JOINING_GROUP_BEH },
+    { 0x0681, UC_JOINING_GROUP_HAH },
+    { 0x0682, UC_JOINING_GROUP_HAH },
+    { 0x0683, UC_JOINING_GROUP_HAH },
+    { 0x0684, UC_JOINING_GROUP_HAH },
+    { 0x0685, UC_JOINING_GROUP_HAH },
+    { 0x0686, UC_JOINING_GROUP_HAH },
+    { 0x0687, UC_JOINING_GROUP_HAH },
+    { 0x0688, UC_JOINING_GROUP_DAL },
+    { 0x0689, UC_JOINING_GROUP_DAL },
+    { 0x068A, UC_JOINING_GROUP_DAL },
+    { 0x068B, UC_JOINING_GROUP_DAL },
+    { 0x068C, UC_JOINING_GROUP_DAL },
+    { 0x068D, UC_JOINING_GROUP_DAL },
+    { 0x068E, UC_JOINING_GROUP_DAL },
+    { 0x068F, UC_JOINING_GROUP_DAL },
+    { 0x0690, UC_JOINING_GROUP_DAL },
+    { 0x0691, UC_JOINING_GROUP_REH },
+    { 0x0692, UC_JOINING_GROUP_REH },
+    { 0x0693, UC_JOINING_GROUP_REH },
+    { 0x0694, UC_JOINING_GROUP_REH },
+    { 0x0695, UC_JOINING_GROUP_REH },
+    { 0x0696, UC_JOINING_GROUP_REH },
+    { 0x0697, UC_JOINING_GROUP_REH },
+    { 0x0698, UC_JOINING_GROUP_REH },
+    { 0x0699, UC_JOINING_GROUP_REH },
+    { 0x069A, UC_JOINING_GROUP_SEEN },
+    { 0x069B, UC_JOINING_GROUP_SEEN },
+    { 0x069C, UC_JOINING_GROUP_SEEN },
+    { 0x069D, UC_JOINING_GROUP_SAD },
+    { 0x069E, UC_JOINING_GROUP_SAD },
+    { 0x069F, UC_JOINING_GROUP_TAH },
+    { 0x06A0, UC_JOINING_GROUP_AIN },
+    { 0x06A1, UC_JOINING_GROUP_FEH },
+    { 0x06A2, UC_JOINING_GROUP_FEH },
+    { 0x06A3, UC_JOINING_GROUP_FEH },
+    { 0x06A4, UC_JOINING_GROUP_FEH },
+    { 0x06A5, UC_JOINING_GROUP_FEH },
+    { 0x06A6, UC_JOINING_GROUP_FEH },
+    { 0x06A7, UC_JOINING_GROUP_QAF },
+    { 0x06A8, UC_JOINING_GROUP_QAF },
+    { 0x06A9, UC_JOINING_GROUP_GAF },
+    { 0x06AA, UC_JOINING_GROUP_SWASH_KAF },
+    { 0x06AB, UC_JOINING_GROUP_GAF },
+    { 0x06AC, UC_JOINING_GROUP_KAF },
+    { 0x06AD, UC_JOINING_GROUP_KAF },
+    { 0x06AE, UC_JOINING_GROUP_KAF },
+    { 0x06AF, UC_JOINING_GROUP_GAF },
+    { 0x06B0, UC_JOINING_GROUP_GAF },
+    { 0x06B1, UC_JOINING_GROUP_GAF },
+    { 0x06B2, UC_JOINING_GROUP_GAF },
+    { 0x06B3, UC_JOINING_GROUP_GAF },
+    { 0x06B4, UC_JOINING_GROUP_GAF },
+    { 0x06B5, UC_JOINING_GROUP_LAM },
+    { 0x06B6, UC_JOINING_GROUP_LAM },
+    { 0x06B7, UC_JOINING_GROUP_LAM },
+    { 0x06B8, UC_JOINING_GROUP_LAM },
+    { 0x06B9, UC_JOINING_GROUP_NOON },
+    { 0x06BA, UC_JOINING_GROUP_NOON },
+    { 0x06BB, UC_JOINING_GROUP_NOON },
+    { 0x06BC, UC_JOINING_GROUP_NOON },
+    { 0x06BD, UC_JOINING_GROUP_NYA },
+    { 0x06BE, UC_JOINING_GROUP_KNOTTED_HEH },
+    { 0x06BF, UC_JOINING_GROUP_HAH },
+    { 0x06C0, UC_JOINING_GROUP_TEH_MARBUTA },
+    { 0x06C1, UC_JOINING_GROUP_HEH_GOAL },
+    { 0x06C2, UC_JOINING_GROUP_HEH_GOAL },
+    { 0x06C3, UC_JOINING_GROUP_TEH_MARBUTA_GOAL },
+    { 0x06C4, UC_JOINING_GROUP_WAW },
+    { 0x06C5, UC_JOINING_GROUP_WAW },
+    { 0x06C6, UC_JOINING_GROUP_WAW },
+    { 0x06C7, UC_JOINING_GROUP_WAW },
+    { 0x06C8, UC_JOINING_GROUP_WAW },
+    { 0x06C9, UC_JOINING_GROUP_WAW },
+    { 0x06CA, UC_JOINING_GROUP_WAW },
+    { 0x06CB, UC_JOINING_GROUP_WAW },
+    { 0x06CC, UC_JOINING_GROUP_FARSI_YEH },
+    { 0x06CD, UC_JOINING_GROUP_YEH_WITH_TAIL },
+    { 0x06CE, UC_JOINING_GROUP_FARSI_YEH },
+    { 0x06CF, UC_JOINING_GROUP_WAW },
+    { 0x06D0, UC_JOINING_GROUP_YEH },
+    { 0x06D1, UC_JOINING_GROUP_YEH },
+    { 0x06D2, UC_JOINING_GROUP_YEH_BARREE },
+    { 0x06D3, UC_JOINING_GROUP_YEH_BARREE },
+    { 0x06D5, UC_JOINING_GROUP_TEH_MARBUTA },
+    { 0x06EE, UC_JOINING_GROUP_DAL },
+    { 0x06EF, UC_JOINING_GROUP_REH },
+    { 0x06FA, UC_JOINING_GROUP_SEEN },
+    { 0x06FB, UC_JOINING_GROUP_SAD },
+    { 0x06FC, UC_JOINING_GROUP_AIN },
+    { 0x06FF, UC_JOINING_GROUP_KNOTTED_HEH },
+    { 0x0710, UC_JOINING_GROUP_ALAPH },
+    { 0x0712, UC_JOINING_GROUP_BETH },
+    { 0x0713, UC_JOINING_GROUP_GAMAL },
+    { 0x0714, UC_JOINING_GROUP_GAMAL },
+    { 0x0715, UC_JOINING_GROUP_DALATH_RISH },
+    { 0x0716, UC_JOINING_GROUP_DALATH_RISH },
+    { 0x0717, UC_JOINING_GROUP_HE },
+    { 0x0718, UC_JOINING_GROUP_SYRIAC_WAW },
+    { 0x0719, UC_JOINING_GROUP_ZAIN },
+    { 0x071A, UC_JOINING_GROUP_HETH },
+    { 0x071B, UC_JOINING_GROUP_TETH },
+    { 0x071C, UC_JOINING_GROUP_TETH },
+    { 0x071D, UC_JOINING_GROUP_YUDH },
+    { 0x071E, UC_JOINING_GROUP_YUDH_HE },
+    { 0x071F, UC_JOINING_GROUP_KAPH },
+    { 0x0720, UC_JOINING_GROUP_LAMADH },
+    { 0x0721, UC_JOINING_GROUP_MIM },
+    { 0x0722, UC_JOINING_GROUP_NUN },
+    { 0x0723, UC_JOINING_GROUP_SEMKATH },
+    { 0x0724, UC_JOINING_GROUP_FINAL_SEMKATH },
+    { 0x0725, UC_JOINING_GROUP_E },
+    { 0x0726, UC_JOINING_GROUP_PE },
+    { 0x0727, UC_JOINING_GROUP_REVERSED_PE },
+    { 0x0728, UC_JOINING_GROUP_SADHE },
+    { 0x0729, UC_JOINING_GROUP_QAPH },
+    { 0x072A, UC_JOINING_GROUP_DALATH_RISH },
+    { 0x072B, UC_JOINING_GROUP_SHIN },
+    { 0x072C, UC_JOINING_GROUP_TAW },
+    { 0x072D, UC_JOINING_GROUP_BETH },
+    { 0x072E, UC_JOINING_GROUP_GAMAL },
+    { 0x072F, UC_JOINING_GROUP_DALATH_RISH },
+    { 0x074D, UC_JOINING_GROUP_ZHAIN },
+    { 0x074E, UC_JOINING_GROUP_KHAPH },
+    { 0x074F, UC_JOINING_GROUP_FE },
+    { 0x0750, UC_JOINING_GROUP_BEH },
+    { 0x0751, UC_JOINING_GROUP_BEH },
+    { 0x0752, UC_JOINING_GROUP_BEH },
+    { 0x0753, UC_JOINING_GROUP_BEH },
+    { 0x0754, UC_JOINING_GROUP_BEH },
+    { 0x0755, UC_JOINING_GROUP_BEH },
+    { 0x0756, UC_JOINING_GROUP_BEH },
+    { 0x0757, UC_JOINING_GROUP_HAH },
+    { 0x0758, UC_JOINING_GROUP_HAH },
+    { 0x0759, UC_JOINING_GROUP_DAL },
+    { 0x075A, UC_JOINING_GROUP_DAL },
+    { 0x075B, UC_JOINING_GROUP_REH },
+    { 0x075C, UC_JOINING_GROUP_SEEN },
+    { 0x075D, UC_JOINING_GROUP_AIN },
+    { 0x075E, UC_JOINING_GROUP_AIN },
+    { 0x075F, UC_JOINING_GROUP_AIN },
+    { 0x0760, UC_JOINING_GROUP_FEH },
+    { 0x0761, UC_JOINING_GROUP_FEH },
+    { 0x0762, UC_JOINING_GROUP_GAF },
+    { 0x0763, UC_JOINING_GROUP_GAF },
+    { 0x0764, UC_JOINING_GROUP_GAF },
+    { 0x0765, UC_JOINING_GROUP_MEEM },
+    { 0x0766, UC_JOINING_GROUP_MEEM },
+    { 0x0767, UC_JOINING_GROUP_NOON },
+    { 0x0768, UC_JOINING_GROUP_NOON },
+    { 0x0769, UC_JOINING_GROUP_NOON },
+    { 0x076A, UC_JOINING_GROUP_LAM },
+    { 0x076B, UC_JOINING_GROUP_REH },
+    { 0x076C, UC_JOINING_GROUP_REH },
+    { 0x076D, UC_JOINING_GROUP_SEEN },
+    { 0x076E, UC_JOINING_GROUP_HAH },
+    { 0x076F, UC_JOINING_GROUP_HAH },
+    { 0x0770, UC_JOINING_GROUP_SEEN },
+    { 0x0771, UC_JOINING_GROUP_REH },
+    { 0x0772, UC_JOINING_GROUP_HAH },
+    { 0x0773, UC_JOINING_GROUP_ALEF },
+    { 0x0774, UC_JOINING_GROUP_ALEF },
+    { 0x0775, UC_JOINING_GROUP_FARSI_YEH },
+    { 0x0776, UC_JOINING_GROUP_FARSI_YEH },
+    { 0x0777, UC_JOINING_GROUP_YEH },
+    { 0x0778, UC_JOINING_GROUP_WAW },
+    { 0x0779, UC_JOINING_GROUP_WAW },
+    { 0x077A, UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE },
+    { 0x077B, UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE },
+    { 0x077C, UC_JOINING_GROUP_HAH },
+    { 0x077D, UC_JOINING_GROUP_SEEN },
+    { 0x077E, UC_JOINING_GROUP_SEEN },
+    { 0x077F, UC_JOINING_GROUP_KAF }
diff --git a/tests/unictype/test-joiningtype_byname.c b/tests/unictype/test-joiningtype_byname.c
new file mode 100644 (file)
index 0000000..1065bff
--- /dev/null
@@ -0,0 +1,64 @@
+/* Test the Unicode character Arabic joining type functions.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+int
+main ()
+{
+  ASSERT (uc_joining_type_byname ("U") == UC_JOINING_TYPE_U);
+  ASSERT (uc_joining_type_byname ("T") == UC_JOINING_TYPE_T);
+  ASSERT (uc_joining_type_byname ("C") == UC_JOINING_TYPE_C);
+  ASSERT (uc_joining_type_byname ("L") == UC_JOINING_TYPE_L);
+  ASSERT (uc_joining_type_byname ("R") == UC_JOINING_TYPE_R);
+  ASSERT (uc_joining_type_byname ("D") == UC_JOINING_TYPE_D);
+
+  ASSERT (uc_joining_type_byname ("JOIN CAUSING") == UC_JOINING_TYPE_C);
+  ASSERT (uc_joining_type_byname ("Join Causing") == UC_JOINING_TYPE_C);
+  ASSERT (uc_joining_type_byname ("Join_Causing") == UC_JOINING_TYPE_C);
+  ASSERT (uc_joining_type_byname ("JoinCausing") == UC_JOINING_TYPE_C);
+  ASSERT (uc_joining_type_byname ("DUAL JOINING") == UC_JOINING_TYPE_D);
+  ASSERT (uc_joining_type_byname ("Dual Joining") == UC_JOINING_TYPE_D);
+  ASSERT (uc_joining_type_byname ("Dual_Joining") == UC_JOINING_TYPE_D);
+  ASSERT (uc_joining_type_byname ("DualJoining") == UC_JOINING_TYPE_D);
+  ASSERT (uc_joining_type_byname ("LEFT JOINING") == UC_JOINING_TYPE_L);
+  ASSERT (uc_joining_type_byname ("Left Joining") == UC_JOINING_TYPE_L);
+  ASSERT (uc_joining_type_byname ("Left_Joining") == UC_JOINING_TYPE_L);
+  ASSERT (uc_joining_type_byname ("LeftJoining") == UC_JOINING_TYPE_L);
+  ASSERT (uc_joining_type_byname ("RIGHT JOINING") == UC_JOINING_TYPE_R);
+  ASSERT (uc_joining_type_byname ("Right Joining") == UC_JOINING_TYPE_R);
+  ASSERT (uc_joining_type_byname ("Right_Joining") == UC_JOINING_TYPE_R);
+  ASSERT (uc_joining_type_byname ("RightJoining") == UC_JOINING_TYPE_R);
+  ASSERT (uc_joining_type_byname ("TRANSPARENT") == UC_JOINING_TYPE_T);
+  ASSERT (uc_joining_type_byname ("Transparent") == UC_JOINING_TYPE_T);
+  ASSERT (uc_joining_type_byname ("NON JOINING") == UC_JOINING_TYPE_U);
+  ASSERT (uc_joining_type_byname ("Non Joining") == UC_JOINING_TYPE_U);
+  ASSERT (uc_joining_type_byname ("Non_Joining") == UC_JOINING_TYPE_U);
+  ASSERT (uc_joining_type_byname ("NonJoining") == UC_JOINING_TYPE_U);
+
+  ASSERT (uc_joining_type_byname ("X") < 0);
+  ASSERT (uc_joining_type_byname ("") < 0);
+
+  return 0;
+}
diff --git a/tests/unictype/test-joiningtype_longname.c b/tests/unictype/test-joiningtype_longname.c
new file mode 100644 (file)
index 0000000..55c05b5
--- /dev/null
@@ -0,0 +1,39 @@
+/* Test the Unicode character Arabic joining type functions.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+int
+main ()
+{
+  ASSERT (strcmp (uc_joining_type_long_name (UC_JOINING_TYPE_U), "Non Joining") == 0);
+  ASSERT (strcmp (uc_joining_type_long_name (UC_JOINING_TYPE_T), "Transparent") == 0);
+  ASSERT (strcmp (uc_joining_type_long_name (UC_JOINING_TYPE_C), "Join Causing") == 0);
+  ASSERT (strcmp (uc_joining_type_long_name (UC_JOINING_TYPE_L), "Left Joining") == 0);
+  ASSERT (strcmp (uc_joining_type_long_name (UC_JOINING_TYPE_R), "Right Joining") == 0);
+  ASSERT (strcmp (uc_joining_type_long_name (UC_JOINING_TYPE_D), "Dual Joining") == 0);
+  ASSERT (uc_joining_type_long_name (-1) == NULL);
+
+  return 0;
+}
diff --git a/tests/unictype/test-joiningtype_name.c b/tests/unictype/test-joiningtype_name.c
new file mode 100644 (file)
index 0000000..83cbeb1
--- /dev/null
@@ -0,0 +1,39 @@
+/* Test the Unicode character Arabic joining type functions.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+int
+main ()
+{
+  ASSERT (strcmp (uc_joining_type_name (UC_JOINING_TYPE_U), "U") == 0);
+  ASSERT (strcmp (uc_joining_type_name (UC_JOINING_TYPE_T), "T") == 0);
+  ASSERT (strcmp (uc_joining_type_name (UC_JOINING_TYPE_C), "C") == 0);
+  ASSERT (strcmp (uc_joining_type_name (UC_JOINING_TYPE_L), "L") == 0);
+  ASSERT (strcmp (uc_joining_type_name (UC_JOINING_TYPE_R), "R") == 0);
+  ASSERT (strcmp (uc_joining_type_name (UC_JOINING_TYPE_D), "D") == 0);
+  ASSERT (uc_joining_type_name (-1) == NULL);
+
+  return 0;
+}
diff --git a/tests/unictype/test-joiningtype_of.c b/tests/unictype/test-joiningtype_of.c
new file mode 100644 (file)
index 0000000..f0e2aac
--- /dev/null
@@ -0,0 +1,65 @@
+/* Test the Unicode character Arabic joining type functions.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include "unictype.h"
+
+#include <string.h>
+
+#include "macros.h"
+
+typedef struct { ucs4_t ch; int value; } pair_t;
+
+static const pair_t mapping[] =
+  {
+#include "test-joiningtype_of.h"
+  };
+
+int
+main ()
+{
+  unsigned int c;
+  size_t i;
+
+  c = 0;
+  for (i = 0; i < SIZEOF (mapping); i++)
+    {
+      for (; c < mapping[i].ch; c++)
+        ASSERT (uc_joining_type (c) == UC_JOINING_TYPE_U
+                || uc_joining_type (c) == UC_JOINING_TYPE_T);
+      ASSERT (uc_joining_type (c) == mapping[i].value);
+      c++;
+    }
+  for (; c < 0x110000; c++)
+    ASSERT (uc_joining_type (c) == UC_JOINING_TYPE_U
+            || uc_joining_type (c) == UC_JOINING_TYPE_T);
+
+  /* Test distinction between U and T.  */
+  ASSERT (uc_joining_type (0x060C) == UC_JOINING_TYPE_U);
+  ASSERT (uc_joining_type (0x060D) == UC_JOINING_TYPE_U);
+  ASSERT (uc_joining_type (0x060E) == UC_JOINING_TYPE_U);
+  ASSERT (uc_joining_type (0x060F) == UC_JOINING_TYPE_U);
+  ASSERT (uc_joining_type (0x0610) == UC_JOINING_TYPE_T);
+  ASSERT (uc_joining_type (0x0611) == UC_JOINING_TYPE_T);
+  ASSERT (uc_joining_type (0x0612) == UC_JOINING_TYPE_T);
+  ASSERT (uc_joining_type (0x0613) == UC_JOINING_TYPE_T);
+  ASSERT (uc_joining_type (0x0614) == UC_JOINING_TYPE_T);
+
+  return 0;
+}
diff --git a/tests/unictype/test-joiningtype_of.h b/tests/unictype/test-joiningtype_of.h
new file mode 100644 (file)
index 0000000..15fa7d6
--- /dev/null
@@ -0,0 +1,279 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Arabic joining type of Unicode characters.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
+    { 0x0600, UC_JOINING_TYPE_U },
+    { 0x0601, UC_JOINING_TYPE_U },
+    { 0x0602, UC_JOINING_TYPE_U },
+    { 0x0603, UC_JOINING_TYPE_U },
+    { 0x0608, UC_JOINING_TYPE_U },
+    { 0x060B, UC_JOINING_TYPE_U },
+    { 0x0620, UC_JOINING_TYPE_D },
+    { 0x0621, UC_JOINING_TYPE_U },
+    { 0x0622, UC_JOINING_TYPE_R },
+    { 0x0623, UC_JOINING_TYPE_R },
+    { 0x0624, UC_JOINING_TYPE_R },
+    { 0x0625, UC_JOINING_TYPE_R },
+    { 0x0626, UC_JOINING_TYPE_D },
+    { 0x0627, UC_JOINING_TYPE_R },
+    { 0x0628, UC_JOINING_TYPE_D },
+    { 0x0629, UC_JOINING_TYPE_R },
+    { 0x062A, UC_JOINING_TYPE_D },
+    { 0x062B, UC_JOINING_TYPE_D },
+    { 0x062C, UC_JOINING_TYPE_D },
+    { 0x062D, UC_JOINING_TYPE_D },
+    { 0x062E, UC_JOINING_TYPE_D },
+    { 0x062F, UC_JOINING_TYPE_R },
+    { 0x0630, UC_JOINING_TYPE_R },
+    { 0x0631, UC_JOINING_TYPE_R },
+    { 0x0632, UC_JOINING_TYPE_R },
+    { 0x0633, UC_JOINING_TYPE_D },
+    { 0x0634, UC_JOINING_TYPE_D },
+    { 0x0635, UC_JOINING_TYPE_D },
+    { 0x0636, UC_JOINING_TYPE_D },
+    { 0x0637, UC_JOINING_TYPE_D },
+    { 0x0638, UC_JOINING_TYPE_D },
+    { 0x0639, UC_JOINING_TYPE_D },
+    { 0x063A, UC_JOINING_TYPE_D },
+    { 0x063B, UC_JOINING_TYPE_D },
+    { 0x063C, UC_JOINING_TYPE_D },
+    { 0x063D, UC_JOINING_TYPE_D },
+    { 0x063E, UC_JOINING_TYPE_D },
+    { 0x063F, UC_JOINING_TYPE_D },
+    { 0x0640, UC_JOINING_TYPE_C },
+    { 0x0641, UC_JOINING_TYPE_D },
+    { 0x0642, UC_JOINING_TYPE_D },
+    { 0x0643, UC_JOINING_TYPE_D },
+    { 0x0644, UC_JOINING_TYPE_D },
+    { 0x0645, UC_JOINING_TYPE_D },
+    { 0x0646, UC_JOINING_TYPE_D },
+    { 0x0647, UC_JOINING_TYPE_D },
+    { 0x0648, UC_JOINING_TYPE_R },
+    { 0x0649, UC_JOINING_TYPE_D },
+    { 0x064A, UC_JOINING_TYPE_D },
+    { 0x066E, UC_JOINING_TYPE_D },
+    { 0x066F, UC_JOINING_TYPE_D },
+    { 0x0671, UC_JOINING_TYPE_R },
+    { 0x0672, UC_JOINING_TYPE_R },
+    { 0x0673, UC_JOINING_TYPE_R },
+    { 0x0674, UC_JOINING_TYPE_U },
+    { 0x0675, UC_JOINING_TYPE_R },
+    { 0x0676, UC_JOINING_TYPE_R },
+    { 0x0677, UC_JOINING_TYPE_R },
+    { 0x0678, UC_JOINING_TYPE_D },
+    { 0x0679, UC_JOINING_TYPE_D },
+    { 0x067A, UC_JOINING_TYPE_D },
+    { 0x067B, UC_JOINING_TYPE_D },
+    { 0x067C, UC_JOINING_TYPE_D },
+    { 0x067D, UC_JOINING_TYPE_D },
+    { 0x067E, UC_JOINING_TYPE_D },
+    { 0x067F, UC_JOINING_TYPE_D },
+    { 0x0680, UC_JOINING_TYPE_D },
+    { 0x0681, UC_JOINING_TYPE_D },
+    { 0x0682, UC_JOINING_TYPE_D },
+    { 0x0683, UC_JOINING_TYPE_D },
+    { 0x0684, UC_JOINING_TYPE_D },
+    { 0x0685, UC_JOINING_TYPE_D },
+    { 0x0686, UC_JOINING_TYPE_D },
+    { 0x0687, UC_JOINING_TYPE_D },
+    { 0x0688, UC_JOINING_TYPE_R },
+    { 0x0689, UC_JOINING_TYPE_R },
+    { 0x068A, UC_JOINING_TYPE_R },
+    { 0x068B, UC_JOINING_TYPE_R },
+    { 0x068C, UC_JOINING_TYPE_R },
+    { 0x068D, UC_JOINING_TYPE_R },
+    { 0x068E, UC_JOINING_TYPE_R },
+    { 0x068F, UC_JOINING_TYPE_R },
+    { 0x0690, UC_JOINING_TYPE_R },
+    { 0x0691, UC_JOINING_TYPE_R },
+    { 0x0692, UC_JOINING_TYPE_R },
+    { 0x0693, UC_JOINING_TYPE_R },
+    { 0x0694, UC_JOINING_TYPE_R },
+    { 0x0695, UC_JOINING_TYPE_R },
+    { 0x0696, UC_JOINING_TYPE_R },
+    { 0x0697, UC_JOINING_TYPE_R },
+    { 0x0698, UC_JOINING_TYPE_R },
+    { 0x0699, UC_JOINING_TYPE_R },
+    { 0x069A, UC_JOINING_TYPE_D },
+    { 0x069B, UC_JOINING_TYPE_D },
+    { 0x069C, UC_JOINING_TYPE_D },
+    { 0x069D, UC_JOINING_TYPE_D },
+    { 0x069E, UC_JOINING_TYPE_D },
+    { 0x069F, UC_JOINING_TYPE_D },
+    { 0x06A0, UC_JOINING_TYPE_D },
+    { 0x06A1, UC_JOINING_TYPE_D },
+    { 0x06A2, UC_JOINING_TYPE_D },
+    { 0x06A3, UC_JOINING_TYPE_D },
+    { 0x06A4, UC_JOINING_TYPE_D },
+    { 0x06A5, UC_JOINING_TYPE_D },
+    { 0x06A6, UC_JOINING_TYPE_D },
+    { 0x06A7, UC_JOINING_TYPE_D },
+    { 0x06A8, UC_JOINING_TYPE_D },
+    { 0x06A9, UC_JOINING_TYPE_D },
+    { 0x06AA, UC_JOINING_TYPE_D },
+    { 0x06AB, UC_JOINING_TYPE_D },
+    { 0x06AC, UC_JOINING_TYPE_D },
+    { 0x06AD, UC_JOINING_TYPE_D },
+    { 0x06AE, UC_JOINING_TYPE_D },
+    { 0x06AF, UC_JOINING_TYPE_D },
+    { 0x06B0, UC_JOINING_TYPE_D },
+    { 0x06B1, UC_JOINING_TYPE_D },
+    { 0x06B2, UC_JOINING_TYPE_D },
+    { 0x06B3, UC_JOINING_TYPE_D },
+    { 0x06B4, UC_JOINING_TYPE_D },
+    { 0x06B5, UC_JOINING_TYPE_D },
+    { 0x06B6, UC_JOINING_TYPE_D },
+    { 0x06B7, UC_JOINING_TYPE_D },
+    { 0x06B8, UC_JOINING_TYPE_D },
+    { 0x06B9, UC_JOINING_TYPE_D },
+    { 0x06BA, UC_JOINING_TYPE_D },
+    { 0x06BB, UC_JOINING_TYPE_D },
+    { 0x06BC, UC_JOINING_TYPE_D },
+    { 0x06BD, UC_JOINING_TYPE_D },
+    { 0x06BE, UC_JOINING_TYPE_D },
+    { 0x06BF, UC_JOINING_TYPE_D },
+    { 0x06C0, UC_JOINING_TYPE_R },
+    { 0x06C1, UC_JOINING_TYPE_D },
+    { 0x06C2, UC_JOINING_TYPE_D },
+    { 0x06C3, UC_JOINING_TYPE_R },
+    { 0x06C4, UC_JOINING_TYPE_R },
+    { 0x06C5, UC_JOINING_TYPE_R },
+    { 0x06C6, UC_JOINING_TYPE_R },
+    { 0x06C7, UC_JOINING_TYPE_R },
+    { 0x06C8, UC_JOINING_TYPE_R },
+    { 0x06C9, UC_JOINING_TYPE_R },
+    { 0x06CA, UC_JOINING_TYPE_R },
+    { 0x06CB, UC_JOINING_TYPE_R },
+    { 0x06CC, UC_JOINING_TYPE_D },
+    { 0x06CD, UC_JOINING_TYPE_R },
+    { 0x06CE, UC_JOINING_TYPE_D },
+    { 0x06CF, UC_JOINING_TYPE_R },
+    { 0x06D0, UC_JOINING_TYPE_D },
+    { 0x06D1, UC_JOINING_TYPE_D },
+    { 0x06D2, UC_JOINING_TYPE_R },
+    { 0x06D3, UC_JOINING_TYPE_R },
+    { 0x06D5, UC_JOINING_TYPE_R },
+    { 0x06DD, UC_JOINING_TYPE_U },
+    { 0x06EE, UC_JOINING_TYPE_R },
+    { 0x06EF, UC_JOINING_TYPE_R },
+    { 0x06FA, UC_JOINING_TYPE_D },
+    { 0x06FB, UC_JOINING_TYPE_D },
+    { 0x06FC, UC_JOINING_TYPE_D },
+    { 0x06FF, UC_JOINING_TYPE_D },
+    { 0x0710, UC_JOINING_TYPE_R },
+    { 0x0712, UC_JOINING_TYPE_D },
+    { 0x0713, UC_JOINING_TYPE_D },
+    { 0x0714, UC_JOINING_TYPE_D },
+    { 0x0715, UC_JOINING_TYPE_R },
+    { 0x0716, UC_JOINING_TYPE_R },
+    { 0x0717, UC_JOINING_TYPE_R },
+    { 0x0718, UC_JOINING_TYPE_R },
+    { 0x0719, UC_JOINING_TYPE_R },
+    { 0x071A, UC_JOINING_TYPE_D },
+    { 0x071B, UC_JOINING_TYPE_D },
+    { 0x071C, UC_JOINING_TYPE_D },
+    { 0x071D, UC_JOINING_TYPE_D },
+    { 0x071E, UC_JOINING_TYPE_R },
+    { 0x071F, UC_JOINING_TYPE_D },
+    { 0x0720, UC_JOINING_TYPE_D },
+    { 0x0721, UC_JOINING_TYPE_D },
+    { 0x0722, UC_JOINING_TYPE_D },
+    { 0x0723, UC_JOINING_TYPE_D },
+    { 0x0724, UC_JOINING_TYPE_D },
+    { 0x0725, UC_JOINING_TYPE_D },
+    { 0x0726, UC_JOINING_TYPE_D },
+    { 0x0727, UC_JOINING_TYPE_D },
+    { 0x0728, UC_JOINING_TYPE_R },
+    { 0x0729, UC_JOINING_TYPE_D },
+    { 0x072A, UC_JOINING_TYPE_R },
+    { 0x072B, UC_JOINING_TYPE_D },
+    { 0x072C, UC_JOINING_TYPE_R },
+    { 0x072D, UC_JOINING_TYPE_D },
+    { 0x072E, UC_JOINING_TYPE_D },
+    { 0x072F, UC_JOINING_TYPE_R },
+    { 0x074D, UC_JOINING_TYPE_R },
+    { 0x074E, UC_JOINING_TYPE_D },
+    { 0x074F, UC_JOINING_TYPE_D },
+    { 0x0750, UC_JOINING_TYPE_D },
+    { 0x0751, UC_JOINING_TYPE_D },
+    { 0x0752, UC_JOINING_TYPE_D },
+    { 0x0753, UC_JOINING_TYPE_D },
+    { 0x0754, UC_JOINING_TYPE_D },
+    { 0x0755, UC_JOINING_TYPE_D },
+    { 0x0756, UC_JOINING_TYPE_D },
+    { 0x0757, UC_JOINING_TYPE_D },
+    { 0x0758, UC_JOINING_TYPE_D },
+    { 0x0759, UC_JOINING_TYPE_R },
+    { 0x075A, UC_JOINING_TYPE_R },
+    { 0x075B, UC_JOINING_TYPE_R },
+    { 0x075C, UC_JOINING_TYPE_D },
+    { 0x075D, UC_JOINING_TYPE_D },
+    { 0x075E, UC_JOINING_TYPE_D },
+    { 0x075F, UC_JOINING_TYPE_D },
+    { 0x0760, UC_JOINING_TYPE_D },
+    { 0x0761, UC_JOINING_TYPE_D },
+    { 0x0762, UC_JOINING_TYPE_D },
+    { 0x0763, UC_JOINING_TYPE_D },
+    { 0x0764, UC_JOINING_TYPE_D },
+    { 0x0765, UC_JOINING_TYPE_D },
+    { 0x0766, UC_JOINING_TYPE_D },
+    { 0x0767, UC_JOINING_TYPE_D },
+    { 0x0768, UC_JOINING_TYPE_D },
+    { 0x0769, UC_JOINING_TYPE_D },
+    { 0x076A, UC_JOINING_TYPE_D },
+    { 0x076B, UC_JOINING_TYPE_R },
+    { 0x076C, UC_JOINING_TYPE_R },
+    { 0x076D, UC_JOINING_TYPE_D },
+    { 0x076E, UC_JOINING_TYPE_D },
+    { 0x076F, UC_JOINING_TYPE_D },
+    { 0x0770, UC_JOINING_TYPE_D },
+    { 0x0771, UC_JOINING_TYPE_R },
+    { 0x0772, UC_JOINING_TYPE_D },
+    { 0x0773, UC_JOINING_TYPE_R },
+    { 0x0774, UC_JOINING_TYPE_R },
+    { 0x0775, UC_JOINING_TYPE_D },
+    { 0x0776, UC_JOINING_TYPE_D },
+    { 0x0777, UC_JOINING_TYPE_D },
+    { 0x0778, UC_JOINING_TYPE_R },
+    { 0x0779, UC_JOINING_TYPE_R },
+    { 0x077A, UC_JOINING_TYPE_D },
+    { 0x077B, UC_JOINING_TYPE_D },
+    { 0x077C, UC_JOINING_TYPE_D },
+    { 0x077D, UC_JOINING_TYPE_D },
+    { 0x077E, UC_JOINING_TYPE_D },
+    { 0x077F, UC_JOINING_TYPE_D },
+    { 0x07CA, UC_JOINING_TYPE_D },
+    { 0x07CB, UC_JOINING_TYPE_D },
+    { 0x07CC, UC_JOINING_TYPE_D },
+    { 0x07CD, UC_JOINING_TYPE_D },
+    { 0x07CE, UC_JOINING_TYPE_D },
+    { 0x07CF, UC_JOINING_TYPE_D },
+    { 0x07D0, UC_JOINING_TYPE_D },
+    { 0x07D1, UC_JOINING_TYPE_D },
+    { 0x07D2, UC_JOINING_TYPE_D },
+    { 0x07D3, UC_JOINING_TYPE_D },
+    { 0x07D4, UC_JOINING_TYPE_D },
+    { 0x07D5, UC_JOINING_TYPE_D },
+    { 0x07D6, UC_JOINING_TYPE_D },
+    { 0x07D7, UC_JOINING_TYPE_D },
+    { 0x07D8, UC_JOINING_TYPE_D },
+    { 0x07D9, UC_JOINING_TYPE_D },
+    { 0x07DA, UC_JOINING_TYPE_D },
+    { 0x07DB, UC_JOINING_TYPE_D },
+    { 0x07DC, UC_JOINING_TYPE_D },
+    { 0x07DD, UC_JOINING_TYPE_D },
+    { 0x07DE, UC_JOINING_TYPE_D },
+    { 0x07DF, UC_JOINING_TYPE_D },
+    { 0x07E0, UC_JOINING_TYPE_D },
+    { 0x07E1, UC_JOINING_TYPE_D },
+    { 0x07E2, UC_JOINING_TYPE_D },
+    { 0x07E3, UC_JOINING_TYPE_D },
+    { 0x07E4, UC_JOINING_TYPE_D },
+    { 0x07E5, UC_JOINING_TYPE_D },
+    { 0x07E6, UC_JOINING_TYPE_D },
+    { 0x07E7, UC_JOINING_TYPE_D },
+    { 0x07E8, UC_JOINING_TYPE_D },
+    { 0x07E9, UC_JOINING_TYPE_D },
+    { 0x07EA, UC_JOINING_TYPE_D },
+    { 0x07FA, UC_JOINING_TYPE_C },
+    { 0x200C, UC_JOINING_TYPE_U },
+    { 0x200D, UC_JOINING_TYPE_C }
index 3267942..77f14d6 100644 (file)
@@ -1,6 +1,6 @@
 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
 /* Numeric values of Unicode characters.  */
-/* Generated automatically by gen-ctype.c for Unicode 5.1.0.  */
+/* Generated automatically by gen-uni-tables.c for Unicode 6.0.0.  */
     { 0x0030, 0, 1 },
     { 0x0031, 1, 1 },
     { 0x0032, 2, 1 },
     { 0x09ED, 7, 1 },
     { 0x09EE, 8, 1 },
     { 0x09EF, 9, 1 },
-    { 0x09F4, 1, 1 },
-    { 0x09F5, 2, 1 },
-    { 0x09F6, 3, 1 },
-    { 0x09F7, 4, 1 },
+    { 0x09F4, 1, 16 },
+    { 0x09F5, 1, 8 },
+    { 0x09F6, 3, 16 },
+    { 0x09F7, 1, 4 },
+    { 0x09F8, 3, 4 },
     { 0x09F9, 16, 1 },
     { 0x0A66, 0, 1 },
     { 0x0A67, 1, 1 },
     { 0x0B6D, 7, 1 },
     { 0x0B6E, 8, 1 },
     { 0x0B6F, 9, 1 },
+    { 0x0B72, 1, 4 },
+    { 0x0B73, 1, 2 },
+    { 0x0B74, 3, 4 },
+    { 0x0B75, 1, 16 },
+    { 0x0B76, 1, 8 },
+    { 0x0B77, 3, 16 },
     { 0x0BE6, 0, 1 },
     { 0x0BE7, 1, 1 },
     { 0x0BE8, 2, 1 },
     { 0x19D7, 7, 1 },
     { 0x19D8, 8, 1 },
     { 0x19D9, 9, 1 },
+    { 0x19DA, 1, 1 },
+    { 0x1A80, 0, 1 },
+    { 0x1A81, 1, 1 },
+    { 0x1A82, 2, 1 },
+    { 0x1A83, 3, 1 },
+    { 0x1A84, 4, 1 },
+    { 0x1A85, 5, 1 },
+    { 0x1A86, 6, 1 },
+    { 0x1A87, 7, 1 },
+    { 0x1A88, 8, 1 },
+    { 0x1A89, 9, 1 },
+    { 0x1A90, 0, 1 },
+    { 0x1A91, 1, 1 },
+    { 0x1A92, 2, 1 },
+    { 0x1A93, 3, 1 },
+    { 0x1A94, 4, 1 },
+    { 0x1A95, 5, 1 },
+    { 0x1A96, 6, 1 },
+    { 0x1A97, 7, 1 },
+    { 0x1A98, 8, 1 },
+    { 0x1A99, 9, 1 },
     { 0x1B50, 0, 1 },
     { 0x1B51, 1, 1 },
     { 0x1B52, 2, 1 },
     { 0x2087, 7, 1 },
     { 0x2088, 8, 1 },
     { 0x2089, 9, 1 },
+    { 0x2150, 1, 7 },
+    { 0x2151, 1, 9 },
+    { 0x2152, 1, 10 },
     { 0x2153, 1, 3 },
     { 0x2154, 2, 3 },
     { 0x2155, 1, 5 },
     { 0x2186, 50, 1 },
     { 0x2187, 50000, 1 },
     { 0x2188, 100000, 1 },
+    { 0x2189, 0, 1 },
     { 0x2460, 1, 1 },
     { 0x2461, 2, 1 },
     { 0x2462, 3, 1 },
     { 0xA627, 7, 1 },
     { 0xA628, 8, 1 },
     { 0xA629, 9, 1 },
+    { 0xA6E6, 1, 1 },
+    { 0xA6E7, 2, 1 },
+    { 0xA6E8, 3, 1 },
+    { 0xA6E9, 4, 1 },
+    { 0xA6EA, 5, 1 },
+    { 0xA6EB, 6, 1 },
+    { 0xA6EC, 7, 1 },
+    { 0xA6ED, 8, 1 },
+    { 0xA6EE, 9, 1 },
+    { 0xA6EF, 0, 1 },
+    { 0xA830, 1, 4 },
+    { 0xA831, 1, 2 },
+    { 0xA832, 3, 4 },
+    { 0xA833, 1, 16 },
+    { 0xA834, 1, 8 },
+    { 0xA835, 3, 16 },
     { 0xA8D0, 0, 1 },
     { 0xA8D1, 1, 1 },
     { 0xA8D2, 2, 1 },
     { 0xA907, 7, 1 },
     { 0xA908, 8, 1 },
     { 0xA909, 9, 1 },
+    { 0xA9D0, 0, 1 },
+    { 0xA9D1, 1, 1 },
+    { 0xA9D2, 2, 1 },
+    { 0xA9D3, 3, 1 },
+    { 0xA9D4, 4, 1 },
+    { 0xA9D5, 5, 1 },
+    { 0xA9D6, 6, 1 },
+    { 0xA9D7, 7, 1 },
+    { 0xA9D8, 8, 1 },
+    { 0xA9D9, 9, 1 },
     { 0xAA50, 0, 1 },
     { 0xAA51, 1, 1 },
     { 0xAA52, 2, 1 },
     { 0xAA57, 7, 1 },
     { 0xAA58, 8, 1 },
     { 0xAA59, 9, 1 },
+    { 0xABF0, 0, 1 },
+    { 0xABF1, 1, 1 },
+    { 0xABF2, 2, 1 },
+    { 0xABF3, 3, 1 },
+    { 0xABF4, 4, 1 },
+    { 0xABF5, 5, 1 },
+    { 0xABF6, 6, 1 },
+    { 0xABF7, 7, 1 },
+    { 0xABF8, 8, 1 },
+    { 0xABF9, 9, 1 },
     { 0xF96B, 3, 1 },
     { 0xF973, 10, 1 },
     { 0xF978, 2, 1 },
     { 0x104A7, 7, 1 },
     { 0x104A8, 8, 1 },
     { 0x104A9, 9, 1 },
+    { 0x10858, 1, 1 },
+    { 0x10859, 2, 1 },
+    { 0x1085A, 3, 1 },
+    { 0x1085B, 10, 1 },
+    { 0x1085C, 20, 1 },
+    { 0x1085D, 100, 1 },
+    { 0x1085E, 1000, 1 },
+    { 0x1085F, 10000, 1 },
     { 0x10916, 1, 1 },
     { 0x10917, 10, 1 },
     { 0x10918, 20, 1 },
     { 0x10919, 100, 1 },
+    { 0x1091A, 2, 1 },
+    { 0x1091B, 3, 1 },
     { 0x10A40, 1, 1 },
     { 0x10A41, 2, 1 },
     { 0x10A42, 3, 1 },
     { 0x10A45, 20, 1 },
     { 0x10A46, 100, 1 },
     { 0x10A47, 1000, 1 },
+    { 0x10A7D, 1, 1 },
+    { 0x10A7E, 50, 1 },
+    { 0x10B58, 1, 1 },
+    { 0x10B59, 2, 1 },
+    { 0x10B5A, 3, 1 },
+    { 0x10B5B, 4, 1 },
+    { 0x10B5C, 10, 1 },
+    { 0x10B5D, 20, 1 },
+    { 0x10B5E, 100, 1 },
+    { 0x10B5F, 1000, 1 },
+    { 0x10B78, 1, 1 },
+    { 0x10B79, 2, 1 },
+    { 0x10B7A, 3, 1 },
+    { 0x10B7B, 4, 1 },
+    { 0x10B7C, 10, 1 },
+    { 0x10B7D, 20, 1 },
+    { 0x10B7E, 100, 1 },
+    { 0x10B7F, 1000, 1 },
+    { 0x10E60, 1, 1 },
+    { 0x10E61, 2, 1 },
+    { 0x10E62, 3, 1 },
+    { 0x10E63, 4, 1 },
+    { 0x10E64, 5, 1 },
+    { 0x10E65, 6, 1 },
+    { 0x10E66, 7, 1 },
+    { 0x10E67, 8, 1 },
+    { 0x10E68, 9, 1 },
+    { 0x10E69, 10, 1 },
+    { 0x10E6A, 20, 1 },
+    { 0x10E6B, 30, 1 },
+    { 0x10E6C, 40, 1 },
+    { 0x10E6D, 50, 1 },
+    { 0x10E6E, 60, 1 },
+    { 0x10E6F, 70, 1 },
+    { 0x10E70, 80, 1 },
+    { 0x10E71, 90, 1 },
+    { 0x10E72, 100, 1 },
+    { 0x10E73, 200, 1 },
+    { 0x10E74, 300, 1 },
+    { 0x10E75, 400, 1 },
+    { 0x10E76, 500, 1 },
+    { 0x10E77, 600, 1 },
+    { 0x10E78, 700, 1 },
+    { 0x10E79, 800, 1 },
+    { 0x10E7A, 900, 1 },
+    { 0x10E7B, 1, 2 },
+    { 0x10E7C, 1, 4 },
+    { 0x10E7D, 1, 3 },
+    { 0x10E7E, 2, 3 },
+    { 0x11052, 1, 1 },
+    { 0x11053, 2, 1 },
+    { 0x11054, 3, 1 },
+    { 0x11055, 4, 1 },
+    { 0x11056, 5, 1 },
+    { 0x11057, 6, 1 },
+    { 0x11058, 7, 1 },
+    { 0x11059, 8, 1 },
+    { 0x1105A, 9, 1 },
+    { 0x1105B, 10, 1 },
+    { 0x1105C, 20, 1 },
+    { 0x1105D, 30, 1 },
+    { 0x1105E, 40, 1 },
+    { 0x1105F, 50, 1 },
+    { 0x11060, 60, 1 },
+    { 0x11061, 70, 1 },
+    { 0x11062, 80, 1 },
+    { 0x11063, 90, 1 },
+    { 0x11064, 100, 1 },
+    { 0x11065, 1000, 1 },
+    { 0x11066, 0, 1 },
+    { 0x11067, 1, 1 },
+    { 0x11068, 2, 1 },
+    { 0x11069, 3, 1 },
+    { 0x1106A, 4, 1 },
+    { 0x1106B, 5, 1 },
+    { 0x1106C, 6, 1 },
+    { 0x1106D, 7, 1 },
+    { 0x1106E, 8, 1 },
+    { 0x1106F, 9, 1 },
     { 0x12400, 2, 1 },
     { 0x12401, 3, 1 },
     { 0x12402, 4, 1 },
     { 0x1D7FD, 7, 1 },
     { 0x1D7FE, 8, 1 },
     { 0x1D7FF, 9, 1 },
+    { 0x1F100, 0, 1 },
+    { 0x1F101, 0, 1 },
+    { 0x1F102, 1, 1 },
+    { 0x1F103, 2, 1 },
+    { 0x1F104, 3, 1 },
+    { 0x1F105, 4, 1 },
+    { 0x1F106, 5, 1 },
+    { 0x1F107, 6, 1 },
+    { 0x1F108, 7, 1 },
+    { 0x1F109, 8, 1 },
+    { 0x1F10A, 9, 1 },
     { 0x2F890, 9, 1 }
index b13da5d..475a2f4 100644 (file)
@@ -39,7 +39,7 @@
     { 0x038E, 0x03A1 },
     { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0523 },
+    { 0x048A, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
@@ -51,8 +51,8 @@
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
     { 0x0610, 0x061A },
-    { 0x0621, 0x0657 },
-    { 0x0659, 0x065E },
+    { 0x0620, 0x0657 },
+    { 0x0659, 0x065F },
     { 0x066E, 0x06D3 },
     { 0x06D5, 0x06DC },
     { 0x06E1, 0x06E8 },
     { 0x07CA, 0x07EA },
     { 0x07F4, 0x07F5 },
     { 0x07FA, 0x07FA },
-    { 0x0901, 0x0939 },
+    { 0x0800, 0x0817 },
+    { 0x081A, 0x082C },
+    { 0x0840, 0x0858 },
+    { 0x0900, 0x093B },
     { 0x093D, 0x094C },
-    { 0x0950, 0x0950 },
-    { 0x0958, 0x0963 },
-    { 0x0971, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x094E, 0x0950 },
+    { 0x0955, 0x0963 },
+    { 0x0971, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0981, 0x0983 },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
     { 0x0CD5, 0x0CD6 },
     { 0x0CDE, 0x0CDE },
     { 0x0CE0, 0x0CE3 },
+    { 0x0CF1, 0x0CF2 },
     { 0x0D02, 0x0D03 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D44 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4C },
+    { 0x0D4E, 0x0D4E },
     { 0x0D57, 0x0D57 },
     { 0x0D60, 0x0D63 },
     { 0x0D7A, 0x0D7F },
     { 0x0F40, 0x0F47 },
     { 0x0F49, 0x0F6C },
     { 0x0F71, 0x0F81 },
-    { 0x0F88, 0x0F8B },
-    { 0x0F90, 0x0F97 },
+    { 0x0F88, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x1000, 0x1036 },
     { 0x1038, 0x1038 },
     { 0x1065, 0x1068 },
     { 0x106E, 0x1086 },
     { 0x108E, 0x108E },
+    { 0x109C, 0x109D },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x1380, 0x138F },
     { 0x13A0, 0x13F4 },
     { 0x1401, 0x166C },
-    { 0x166F, 0x1676 },
+    { 0x166F, 0x167F },
     { 0x1681, 0x169A },
     { 0x16A0, 0x16EA },
     { 0x16EE, 0x16F0 },
     { 0x17DC, 0x17DC },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1920, 0x192B },
     { 0x1930, 0x1938 },
     { 0x1950, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19B0, 0x19C9 },
     { 0x1A00, 0x1A1B },
+    { 0x1A20, 0x1A5E },
+    { 0x1A61, 0x1A74 },
+    { 0x1AA7, 0x1AA7 },
     { 0x1B00, 0x1B33 },
     { 0x1B35, 0x1B43 },
     { 0x1B45, 0x1B4B },
     { 0x1B80, 0x1BA9 },
     { 0x1BAE, 0x1BAF },
+    { 0x1BC0, 0x1BE5 },
+    { 0x1BE7, 0x1BF1 },
     { 0x1C00, 0x1C35 },
     { 0x1C4D, 0x1C4F },
     { 0x1C5A, 0x1C7D },
+    { 0x1CE9, 0x1CEC },
+    { 0x1CEE, 0x1CF2 },
     { 0x1D00, 0x1DBF },
     { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1FF6, 0x1FFC },
     { 0x2071, 0x2071 },
     { 0x207F, 0x207F },
-    { 0x2090, 0x2094 },
+    { 0x2090, 0x209C },
     { 0x2102, 0x2102 },
     { 0x2107, 0x2107 },
     { 0x210A, 0x2113 },
     { 0x24B6, 0x24E9 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CE4 },
+    { 0x2C60, 0x2CE4 },
+    { 0x2CEB, 0x2CEE },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
     { 0x2D6F, 0x2D6F },
     { 0x30FC, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x31A0, 0x31B7 },
+    { 0x31A0, 0x31BA },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FC3 },
+    { 0x4E00, 0x9FCB },
     { 0xA000, 0xA48C },
+    { 0xA4D0, 0xA4FD },
     { 0xA500, 0xA60C },
     { 0xA610, 0xA61F },
     { 0xA62A, 0xA62B },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA66E },
+    { 0xA640, 0xA66E },
     { 0xA67F, 0xA697 },
+    { 0xA6A0, 0xA6EF },
     { 0xA717, 0xA71F },
     { 0xA722, 0xA788 },
-    { 0xA78B, 0xA78C },
-    { 0xA7FB, 0xA801 },
+    { 0xA78B, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA827 },
     { 0xA840, 0xA873 },
     { 0xA880, 0xA8C3 },
+    { 0xA8F2, 0xA8F7 },
+    { 0xA8FB, 0xA8FB },
     { 0xA90A, 0xA92A },
     { 0xA930, 0xA952 },
+    { 0xA960, 0xA97C },
+    { 0xA980, 0xA9B2 },
+    { 0xA9B4, 0xA9BF },
+    { 0xA9CF, 0xA9CF },
     { 0xAA00, 0xAA36 },
     { 0xAA40, 0xAA4D },
+    { 0xAA60, 0xAA76 },
+    { 0xAA7A, 0xAA7A },
+    { 0xAA80, 0xAABE },
+    { 0xAAC0, 0xAAC0 },
+    { 0xAAC2, 0xAAC2 },
+    { 0xAADB, 0xAADD },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABEA },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xF900, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
+    { 0x1083F, 0x10855 },
     { 0x10900, 0x10915 },
     { 0x10920, 0x10939 },
     { 0x10A00, 0x10A03 },
     { 0x10A0C, 0x10A13 },
     { 0x10A15, 0x10A17 },
     { 0x10A19, 0x10A33 },
+    { 0x10A60, 0x10A7C },
+    { 0x10B00, 0x10B35 },
+    { 0x10B40, 0x10B55 },
+    { 0x10B60, 0x10B72 },
+    { 0x10C00, 0x10C48 },
+    { 0x11000, 0x11045 },
+    { 0x11082, 0x110B8 },
     { 0x12000, 0x1236E },
     { 0x12400, 0x12462 },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x1D400, 0x1D454 },
     { 0x1D456, 0x1D49C },
     { 0x1D49E, 0x1D49F },
     { 0x1D7AA, 0x1D7C2 },
     { 0x1D7C4, 0x1D7CB },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D }
 
 #define PREDICATE(c) uc_is_property_alphabetic (c)
index f4e4edb..837d74e 100644 (file)
@@ -20,7 +20,9 @@
     { 0x0600, 0x0603 },
     { 0x0660, 0x0669 },
     { 0x066B, 0x066C },
-    { 0x06DD, 0x06DD }
+    { 0x06DD, 0x06DD },
+    { 0x070F, 0x070F },
+    { 0x10E60, 0x10E7E }
 
 #define PREDICATE(c) uc_is_property_bidi_arabic_digit (c)
 #include "test-predicate-part2.h"
index f329ccf..0e8d5df 100644 (file)
@@ -22,7 +22,6 @@
     { 0x060B, 0x060B },
     { 0x060D, 0x060D },
     { 0x061B, 0x064A },
-    { 0x065F, 0x065F },
     { 0x066D, 0x066F },
     { 0x0671, 0x06D5 },
     { 0x06E5, 0x06E6 },
index 19a67d1..82bf1ea 100644 (file)
@@ -22,7 +22,6 @@
     { 0x007F, 0x0084 },
     { 0x0086, 0x009F },
     { 0x00AD, 0x00AD },
-    { 0x070F, 0x070F },
     { 0x200B, 0x200D },
     { 0x2060, 0x2064 },
     { 0x206A, 0x206F },
index 22f2838..35504ea 100644 (file)
     { 0x0609, 0x060A },
     { 0x066A, 0x066A },
     { 0x09F2, 0x09F3 },
+    { 0x09FB, 0x09FB },
     { 0x0AF1, 0x0AF1 },
     { 0x0BF9, 0x0BF9 },
     { 0x0E3F, 0x0E3F },
     { 0x17DB, 0x17DB },
     { 0x2030, 0x2034 },
-    { 0x20A0, 0x20B5 },
+    { 0x20A0, 0x20B9 },
     { 0x212E, 0x212E },
     { 0x2213, 0x2213 },
+    { 0xA838, 0xA839 },
     { 0xFE5F, 0xFE5F },
     { 0xFE69, 0xFE6A },
     { 0xFF03, 0xFF05 },
index 63a3a87..d43aea6 100644 (file)
@@ -26,7 +26,8 @@
     { 0x2080, 0x2089 },
     { 0x2488, 0x249B },
     { 0xFF10, 0xFF19 },
-    { 0x1D7CE, 0x1D7FF }
+    { 0x1D7CE, 0x1D7FF },
+    { 0x1F100, 0x1F10A }
 
 #define PREDICATE(c) uc_is_property_bidi_european_digit (c)
 #include "test-predicate-part2.h"
index 5a0a4e4..f0b5fd3 100644 (file)
     { 0x05C8, 0x05FF },
     { 0x07C0, 0x07EA },
     { 0x07F4, 0x07F5 },
-    { 0x07FA, 0x08FF },
+    { 0x07FA, 0x0815 },
+    { 0x081A, 0x081A },
+    { 0x0824, 0x0824 },
+    { 0x0828, 0x0828 },
+    { 0x082E, 0x0858 },
+    { 0x085C, 0x08FF },
     { 0x200F, 0x200F },
     { 0xFB1D, 0xFB1D },
     { 0xFB1F, 0xFB28 },
@@ -36,7 +41,9 @@
     { 0x10A07, 0x10A0B },
     { 0x10A10, 0x10A37 },
     { 0x10A3B, 0x10A3E },
-    { 0x10A40, 0x10FFF }
+    { 0x10A40, 0x10B38 },
+    { 0x10B40, 0x10E5F },
+    { 0x10E7F, 0x10FFF }
 
 #define PREDICATE(c) uc_is_property_bidi_hebrew_right_to_left (c)
 #include "test-predicate-part2.h"
index 09617ed..45c2731 100644 (file)
     { 0x03F7, 0x0482 },
     { 0x048A, 0x0589 },
     { 0x058B, 0x058F },
-    { 0x0900, 0x0900 },
-    { 0x0903, 0x093B },
+    { 0x0903, 0x0939 },
+    { 0x093B, 0x093B },
     { 0x093D, 0x0940 },
     { 0x0949, 0x094C },
     { 0x094E, 0x0950 },
-    { 0x0955, 0x0961 },
+    { 0x0958, 0x0961 },
     { 0x0964, 0x0980 },
     { 0x0982, 0x09BB },
     { 0x09BD, 0x09C0 },
     { 0x09C5, 0x09CC },
     { 0x09CE, 0x09E1 },
     { 0x09E4, 0x09F1 },
-    { 0x09F4, 0x0A00 },
+    { 0x09F4, 0x09FA },
+    { 0x09FC, 0x0A00 },
     { 0x0A03, 0x0A3B },
     { 0x0A3D, 0x0A40 },
     { 0x0A43, 0x0A46 },
@@ -84,8 +85,7 @@
     { 0x0C7F, 0x0CBB },
     { 0x0CBD, 0x0CCB },
     { 0x0CCE, 0x0CE1 },
-    { 0x0CE4, 0x0CF0 },
-    { 0x0CF3, 0x0D40 },
+    { 0x0CE4, 0x0D40 },
     { 0x0D45, 0x0D4C },
     { 0x0D4E, 0x0D61 },
     { 0x0D64, 0x0DC9 },
     { 0x0F3E, 0x0F70 },
     { 0x0F7F, 0x0F7F },
     { 0x0F85, 0x0F85 },
-    { 0x0F88, 0x0F8F },
+    { 0x0F88, 0x0F8C },
     { 0x0F98, 0x0F98 },
     { 0x0FBD, 0x0FC5 },
     { 0x0FC7, 0x102C },
     { 0x1075, 0x1081 },
     { 0x1083, 0x1084 },
     { 0x1087, 0x108C },
-    { 0x108E, 0x135E },
+    { 0x108E, 0x109C },
+    { 0x109E, 0x135C },
     { 0x1360, 0x138F },
-    { 0x139A, 0x167F },
+    { 0x139A, 0x13FF },
+    { 0x1401, 0x167F },
     { 0x1681, 0x169A },
     { 0x169D, 0x1711 },
     { 0x1715, 0x1731 },
     { 0x1941, 0x1943 },
     { 0x1946, 0x19DD },
     { 0x1A00, 0x1A16 },
-    { 0x1A19, 0x1AFF },
+    { 0x1A19, 0x1A55 },
+    { 0x1A57, 0x1A57 },
+    { 0x1A5F, 0x1A5F },
+    { 0x1A61, 0x1A61 },
+    { 0x1A63, 0x1A64 },
+    { 0x1A6D, 0x1A72 },
+    { 0x1A7D, 0x1A7E },
+    { 0x1A80, 0x1AFF },
     { 0x1B04, 0x1B33 },
     { 0x1B35, 0x1B35 },
     { 0x1B3B, 0x1B3B },
     { 0x1B74, 0x1B7F },
     { 0x1B82, 0x1BA1 },
     { 0x1BA6, 0x1BA7 },
-    { 0x1BAA, 0x1C2B },
+    { 0x1BAA, 0x1BE5 },
+    { 0x1BE7, 0x1BE7 },
+    { 0x1BEA, 0x1BEC },
+    { 0x1BEE, 0x1BEE },
+    { 0x1BF2, 0x1C2B },
     { 0x1C34, 0x1C35 },
-    { 0x1C38, 0x1DBF },
-    { 0x1DE7, 0x1DFD },
+    { 0x1C38, 0x1CCF },
+    { 0x1CD3, 0x1CD3 },
+    { 0x1CE1, 0x1CE1 },
+    { 0x1CE9, 0x1CEC },
+    { 0x1CEE, 0x1DBF },
+    { 0x1DE7, 0x1DFB },
     { 0x1E00, 0x1FBC },
     { 0x1FBE, 0x1FBE },
     { 0x1FC2, 0x1FCC },
     { 0x2071, 0x2073 },
     { 0x207F, 0x207F },
     { 0x208F, 0x209F },
-    { 0x20B6, 0x20CF },
+    { 0x20BA, 0x20CF },
     { 0x20F1, 0x20FF },
     { 0x2102, 0x2102 },
     { 0x2107, 0x2107 },
     { 0x212F, 0x2139 },
     { 0x213C, 0x213F },
     { 0x2145, 0x2149 },
-    { 0x214E, 0x2152 },
-    { 0x2160, 0x218F },
+    { 0x214E, 0x214F },
+    { 0x2160, 0x2188 },
+    { 0x218A, 0x218F },
     { 0x2336, 0x237A },
     { 0x2395, 0x2395 },
-    { 0x23E8, 0x23FF },
+    { 0x23F4, 0x23FF },
     { 0x2427, 0x243F },
     { 0x244B, 0x245F },
     { 0x249C, 0x24E9 },
-    { 0x269E, 0x269F },
     { 0x26AC, 0x26AC },
-    { 0x26BD, 0x26BF },
-    { 0x26C4, 0x2700 },
-    { 0x2705, 0x2705 },
-    { 0x270A, 0x270B },
-    { 0x2728, 0x2728 },
-    { 0x274C, 0x274C },
-    { 0x274E, 0x274E },
-    { 0x2753, 0x2755 },
-    { 0x2757, 0x2757 },
-    { 0x275F, 0x2760 },
-    { 0x2795, 0x2797 },
-    { 0x27B0, 0x27B0 },
-    { 0x27BF, 0x27BF },
+    { 0x2700, 0x2700 },
     { 0x27CB, 0x27CB },
-    { 0x27CD, 0x27CF },
+    { 0x27CD, 0x27CD },
     { 0x2800, 0x28FF },
     { 0x2B4D, 0x2B4F },
-    { 0x2B55, 0x2CE4 },
-    { 0x2CEB, 0x2CF8 },
-    { 0x2D00, 0x2DDF },
-    { 0x2E31, 0x2E7F },
+    { 0x2B5A, 0x2CE4 },
+    { 0x2CEB, 0x2CEE },
+    { 0x2CF2, 0x2CF8 },
+    { 0x2D00, 0x2D7E },
+    { 0x2D80, 0x2DDF },
+    { 0x2E32, 0x2E7F },
     { 0x2E9A, 0x2E9A },
     { 0x2EF4, 0x2EFF },
     { 0x2FD6, 0x2FEF },
     { 0xA4C7, 0xA60C },
     { 0xA610, 0xA66E },
     { 0xA674, 0xA67B },
-    { 0xA680, 0xA6FF },
+    { 0xA680, 0xA6EF },
+    { 0xA6F2, 0xA6FF },
     { 0xA722, 0xA787 },
     { 0xA789, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA824 },
     { 0xA827, 0xA827 },
-    { 0xA82C, 0xA873 },
+    { 0xA82C, 0xA837 },
+    { 0xA83A, 0xA873 },
     { 0xA878, 0xA8C3 },
-    { 0xA8C5, 0xA925 },
+    { 0xA8C5, 0xA8DF },
+    { 0xA8F2, 0xA925 },
     { 0xA92E, 0xA946 },
-    { 0xA952, 0xAA28 },
+    { 0xA952, 0xA97F },
+    { 0xA983, 0xA9B2 },
+    { 0xA9B4, 0xA9B5 },
+    { 0xA9BA, 0xA9BB },
+    { 0xA9BD, 0xAA28 },
     { 0xAA2F, 0xAA30 },
     { 0xAA33, 0xAA34 },
     { 0xAA37, 0xAA42 },
     { 0xAA44, 0xAA4B },
-    { 0xAA4D, 0xFB1C },
+    { 0xAA4D, 0xAAAF },
+    { 0xAAB1, 0xAAB1 },
+    { 0xAAB5, 0xAAB6 },
+    { 0xAAB9, 0xAABD },
+    { 0xAAC0, 0xAAC0 },
+    { 0xAAC2, 0xABE4 },
+    { 0xABE6, 0xABE7 },
+    { 0xABE9, 0xABEC },
+    { 0xABEE, 0xFB1C },
     { 0xFF00, 0xFF00 },
     { 0xFF21, 0xFF3A },
     { 0xFF41, 0xFF5A },
     { 0x1018B, 0x1018F },
     { 0x1019C, 0x101FC },
     { 0x101FE, 0x107FF },
-    { 0x11000, 0x1D166 },
+    { 0x11000, 0x11000 },
+    { 0x11002, 0x11037 },
+    { 0x11047, 0x11051 },
+    { 0x11066, 0x1107F },
+    { 0x11082, 0x110B2 },
+    { 0x110B7, 0x110B8 },
+    { 0x110BB, 0x1D166 },
     { 0x1D16A, 0x1D172 },
     { 0x1D183, 0x1D184 },
     { 0x1D18C, 0x1D1A9 },
     { 0x1D1AE, 0x1D1FF },
     { 0x1D246, 0x1D2FF },
-    { 0x1D357, 0x1D7CD },
+    { 0x1D357, 0x1D6DA },
+    { 0x1D6DC, 0x1D714 },
+    { 0x1D716, 0x1D74E },
+    { 0x1D750, 0x1D788 },
+    { 0x1D78A, 0x1D7C2 },
+    { 0x1D7C4, 0x1D7CD },
     { 0x1D800, 0x1EFFF },
     { 0x1F02C, 0x1F02F },
-    { 0x1F094, 0x1FFFD },
+    { 0x1F094, 0x1F09F },
+    { 0x1F0AF, 0x1F0B0 },
+    { 0x1F0BF, 0x1F0C0 },
+    { 0x1F0D0, 0x1F0D0 },
+    { 0x1F0E0, 0x1F0FF },
+    { 0x1F10B, 0x1F2FF },
+    { 0x1F321, 0x1F32F },
+    { 0x1F336, 0x1F336 },
+    { 0x1F37D, 0x1F37F },
+    { 0x1F394, 0x1F39F },
+    { 0x1F3C5, 0x1F3C5 },
+    { 0x1F3CB, 0x1F3DF },
+    { 0x1F3F1, 0x1F3FF },
+    { 0x1F43F, 0x1F43F },
+    { 0x1F441, 0x1F441 },
+    { 0x1F48C, 0x1F48C },
+    { 0x1F4F8, 0x1F4F8 },
+    { 0x1F4FD, 0x1F4FF },
+    { 0x1F524, 0x1F524 },
+    { 0x1F53E, 0x1F54F },
+    { 0x1F568, 0x1F5FA },
+    { 0x1F600, 0x1F600 },
+    { 0x1F611, 0x1F611 },
+    { 0x1F615, 0x1F615 },
+    { 0x1F617, 0x1F617 },
+    { 0x1F619, 0x1F619 },
+    { 0x1F61B, 0x1F61B },
+    { 0x1F61F, 0x1F61F },
+    { 0x1F626, 0x1F627 },
+    { 0x1F62C, 0x1F62C },
+    { 0x1F62E, 0x1F62F },
+    { 0x1F634, 0x1F634 },
+    { 0x1F641, 0x1F644 },
+    { 0x1F650, 0x1F67F },
+    { 0x1F6C6, 0x1F6FF },
+    { 0x1F774, 0x1FFFD },
     { 0x20000, 0x2FFFD },
     { 0x30000, 0x3FFFD },
     { 0x40000, 0x4FFFD },
index 927ab84..1db03e5 100644 (file)
     { 0x05C4, 0x05C5 },
     { 0x05C7, 0x05C7 },
     { 0x0610, 0x061A },
-    { 0x064B, 0x065E },
+    { 0x064B, 0x065F },
     { 0x0670, 0x0670 },
     { 0x06D6, 0x06DC },
-    { 0x06DE, 0x06E4 },
+    { 0x06DF, 0x06E4 },
     { 0x06E7, 0x06E8 },
     { 0x06EA, 0x06ED },
     { 0x0711, 0x0711 },
     { 0x0730, 0x074A },
     { 0x07A6, 0x07B0 },
     { 0x07EB, 0x07F3 },
-    { 0x0901, 0x0902 },
+    { 0x0816, 0x0819 },
+    { 0x081B, 0x0823 },
+    { 0x0825, 0x0827 },
+    { 0x0829, 0x082D },
+    { 0x0859, 0x085B },
+    { 0x0900, 0x0902 },
+    { 0x093A, 0x093A },
     { 0x093C, 0x093C },
     { 0x0941, 0x0948 },
     { 0x094D, 0x094D },
-    { 0x0951, 0x0954 },
+    { 0x0951, 0x0957 },
     { 0x0962, 0x0963 },
     { 0x0981, 0x0981 },
     { 0x09BC, 0x09BC },
     { 0x0F71, 0x0F7E },
     { 0x0F80, 0x0F84 },
     { 0x0F86, 0x0F87 },
-    { 0x0F90, 0x0F97 },
+    { 0x0F8D, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
     { 0x102D, 0x1030 },
     { 0x1082, 0x1082 },
     { 0x1085, 0x1086 },
     { 0x108D, 0x108D },
-    { 0x135F, 0x135F },
+    { 0x109D, 0x109D },
+    { 0x135D, 0x135F },
     { 0x1712, 0x1714 },
     { 0x1732, 0x1734 },
     { 0x1752, 0x1753 },
     { 0x1932, 0x1932 },
     { 0x1939, 0x193B },
     { 0x1A17, 0x1A18 },
+    { 0x1A56, 0x1A56 },
+    { 0x1A58, 0x1A5E },
+    { 0x1A60, 0x1A60 },
+    { 0x1A62, 0x1A62 },
+    { 0x1A65, 0x1A6C },
+    { 0x1A73, 0x1A7C },
+    { 0x1A7F, 0x1A7F },
     { 0x1B00, 0x1B03 },
     { 0x1B34, 0x1B34 },
     { 0x1B36, 0x1B3A },
     { 0x1B80, 0x1B81 },
     { 0x1BA2, 0x1BA5 },
     { 0x1BA8, 0x1BA9 },
+    { 0x1BE6, 0x1BE6 },
+    { 0x1BE8, 0x1BE9 },
+    { 0x1BED, 0x1BED },
+    { 0x1BEF, 0x1BF1 },
     { 0x1C2C, 0x1C33 },
     { 0x1C36, 0x1C37 },
+    { 0x1CD0, 0x1CD2 },
+    { 0x1CD4, 0x1CE0 },
+    { 0x1CE2, 0x1CE8 },
+    { 0x1CED, 0x1CED },
     { 0x1DC0, 0x1DE6 },
-    { 0x1DFE, 0x1DFF },
+    { 0x1DFC, 0x1DFF },
     { 0x20D0, 0x20F0 },
+    { 0x2CEF, 0x2CF1 },
+    { 0x2D7F, 0x2D7F },
     { 0x2DE0, 0x2DFF },
     { 0x302A, 0x302F },
     { 0x3099, 0x309A },
     { 0xA66F, 0xA672 },
     { 0xA67C, 0xA67D },
+    { 0xA6F0, 0xA6F1 },
     { 0xA802, 0xA802 },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA825, 0xA826 },
     { 0xA8C4, 0xA8C4 },
+    { 0xA8E0, 0xA8F1 },
     { 0xA926, 0xA92D },
     { 0xA947, 0xA951 },
+    { 0xA980, 0xA982 },
+    { 0xA9B3, 0xA9B3 },
+    { 0xA9B6, 0xA9B9 },
+    { 0xA9BC, 0xA9BC },
     { 0xAA29, 0xAA2E },
     { 0xAA31, 0xAA32 },
     { 0xAA35, 0xAA36 },
     { 0xAA43, 0xAA43 },
     { 0xAA4C, 0xAA4C },
+    { 0xAAB0, 0xAAB0 },
+    { 0xAAB2, 0xAAB4 },
+    { 0xAAB7, 0xAAB8 },
+    { 0xAABE, 0xAABF },
+    { 0xAAC1, 0xAAC1 },
+    { 0xABE5, 0xABE5 },
+    { 0xABE8, 0xABE8 },
+    { 0xABED, 0xABED },
     { 0xFB1E, 0xFB1E },
     { 0xFE00, 0xFE0F },
     { 0xFE20, 0xFE26 },
     { 0x10A0C, 0x10A0F },
     { 0x10A38, 0x10A3A },
     { 0x10A3F, 0x10A3F },
+    { 0x11001, 0x11001 },
+    { 0x11038, 0x11046 },
+    { 0x11080, 0x11081 },
+    { 0x110B3, 0x110B6 },
+    { 0x110B9, 0x110BA },
     { 0x1D167, 0x1D169 },
     { 0x1D17B, 0x1D182 },
     { 0x1D185, 0x1D18B },
index b3efed8..4b9acac 100644 (file)
     { 0x058A, 0x058A },
     { 0x0606, 0x0607 },
     { 0x060E, 0x060F },
+    { 0x06DE, 0x06DE },
     { 0x06E9, 0x06E9 },
     { 0x07F6, 0x07F9 },
     { 0x0BF3, 0x0BF8 },
     { 0x0BFA, 0x0BFA },
     { 0x0C78, 0x0C7E },
-    { 0x0CF1, 0x0CF2 },
     { 0x0F3A, 0x0F3D },
     { 0x1390, 0x1399 },
+    { 0x1400, 0x1400 },
     { 0x169B, 0x169C },
     { 0x17F0, 0x17F9 },
     { 0x1800, 0x180A },
     { 0x213A, 0x213B },
     { 0x2140, 0x2144 },
     { 0x214A, 0x214D },
-    { 0x2153, 0x215F },
+    { 0x2150, 0x215F },
+    { 0x2189, 0x2189 },
     { 0x2190, 0x2211 },
     { 0x2214, 0x2335 },
     { 0x237B, 0x2394 },
-    { 0x2396, 0x23E7 },
+    { 0x2396, 0x23F3 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
     { 0x2460, 0x2487 },
-    { 0x24EA, 0x269D },
-    { 0x26A0, 0x26AB },
-    { 0x26AD, 0x26BC },
-    { 0x26C0, 0x26C3 },
-    { 0x2701, 0x2704 },
-    { 0x2706, 0x2709 },
-    { 0x270C, 0x2727 },
-    { 0x2729, 0x274B },
-    { 0x274D, 0x274D },
-    { 0x274F, 0x2752 },
-    { 0x2756, 0x2756 },
-    { 0x2758, 0x275E },
-    { 0x2761, 0x2794 },
-    { 0x2798, 0x27AF },
-    { 0x27B1, 0x27BE },
-    { 0x27C0, 0x27CA },
+    { 0x24EA, 0x26AB },
+    { 0x26AD, 0x26FF },
+    { 0x2701, 0x27CA },
     { 0x27CC, 0x27CC },
-    { 0x27D0, 0x27FF },
+    { 0x27CE, 0x27FF },
     { 0x2900, 0x2B4C },
-    { 0x2B50, 0x2B54 },
+    { 0x2B50, 0x2B59 },
     { 0x2CE5, 0x2CEA },
     { 0x2CF9, 0x2CFF },
-    { 0x2E00, 0x2E30 },
+    { 0x2E00, 0x2E31 },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x2F00, 0x2FD5 },
     { 0x10140, 0x1018A },
     { 0x10190, 0x1019B },
     { 0x1091F, 0x1091F },
+    { 0x10B39, 0x10B3F },
+    { 0x11052, 0x11065 },
     { 0x1D200, 0x1D241 },
     { 0x1D245, 0x1D245 },
     { 0x1D300, 0x1D356 },
+    { 0x1D6DB, 0x1D6DB },
+    { 0x1D715, 0x1D715 },
+    { 0x1D74F, 0x1D74F },
+    { 0x1D789, 0x1D789 },
+    { 0x1D7C3, 0x1D7C3 },
     { 0x1F000, 0x1F02B },
-    { 0x1F030, 0x1F093 }
+    { 0x1F030, 0x1F093 },
+    { 0x1F0A0, 0x1F0AE },
+    { 0x1F0B1, 0x1F0BE },
+    { 0x1F0C1, 0x1F0CF },
+    { 0x1F0D1, 0x1F0DF },
+    { 0x1F300, 0x1F320 },
+    { 0x1F330, 0x1F335 },
+    { 0x1F337, 0x1F37C },
+    { 0x1F380, 0x1F393 },
+    { 0x1F3A0, 0x1F3C4 },
+    { 0x1F3C6, 0x1F3CA },
+    { 0x1F3E0, 0x1F3F0 },
+    { 0x1F400, 0x1F43E },
+    { 0x1F440, 0x1F440 },
+    { 0x1F442, 0x1F48B },
+    { 0x1F48D, 0x1F4F7 },
+    { 0x1F4F9, 0x1F4FC },
+    { 0x1F500, 0x1F523 },
+    { 0x1F525, 0x1F53D },
+    { 0x1F550, 0x1F567 },
+    { 0x1F5FB, 0x1F5FF },
+    { 0x1F601, 0x1F610 },
+    { 0x1F612, 0x1F614 },
+    { 0x1F616, 0x1F616 },
+    { 0x1F618, 0x1F618 },
+    { 0x1F61A, 0x1F61A },
+    { 0x1F61C, 0x1F61E },
+    { 0x1F620, 0x1F625 },
+    { 0x1F628, 0x1F62B },
+    { 0x1F62D, 0x1F62D },
+    { 0x1F630, 0x1F633 },
+    { 0x1F635, 0x1F640 },
+    { 0x1F645, 0x1F64F },
+    { 0x1F680, 0x1F6C5 },
+    { 0x1F700, 0x1F773 }
 
 #define PREDICATE(c) uc_is_property_bidi_other_neutral (c)
 #include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_case_ignorable.c b/tests/unictype/test-pr_case_ignorable.c
new file mode 100644 (file)
index 0000000..db63a84
--- /dev/null
@@ -0,0 +1,299 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "test-predicate-part1.h"
+
+    { 0x0027, 0x0027 },
+    { 0x002E, 0x002E },
+    { 0x003A, 0x003A },
+    { 0x005E, 0x005E },
+    { 0x0060, 0x0060 },
+    { 0x00A8, 0x00A8 },
+    { 0x00AD, 0x00AD },
+    { 0x00AF, 0x00AF },
+    { 0x00B4, 0x00B4 },
+    { 0x00B7, 0x00B8 },
+    { 0x02B0, 0x036F },
+    { 0x0374, 0x0375 },
+    { 0x037A, 0x037A },
+    { 0x0384, 0x0385 },
+    { 0x0387, 0x0387 },
+    { 0x0483, 0x0489 },
+    { 0x0559, 0x0559 },
+    { 0x0591, 0x05BD },
+    { 0x05BF, 0x05BF },
+    { 0x05C1, 0x05C2 },
+    { 0x05C4, 0x05C5 },
+    { 0x05C7, 0x05C7 },
+    { 0x05F4, 0x05F4 },
+    { 0x0600, 0x0603 },
+    { 0x0610, 0x061A },
+    { 0x0640, 0x0640 },
+    { 0x064B, 0x065F },
+    { 0x0670, 0x0670 },
+    { 0x06D6, 0x06DD },
+    { 0x06DF, 0x06E8 },
+    { 0x06EA, 0x06ED },
+    { 0x070F, 0x070F },
+    { 0x0711, 0x0711 },
+    { 0x0730, 0x074A },
+    { 0x07A6, 0x07B0 },
+    { 0x07EB, 0x07F5 },
+    { 0x07FA, 0x07FA },
+    { 0x0816, 0x082D },
+    { 0x0859, 0x085B },
+    { 0x0900, 0x0902 },
+    { 0x093A, 0x093A },
+    { 0x093C, 0x093C },
+    { 0x0941, 0x0948 },
+    { 0x094D, 0x094D },
+    { 0x0951, 0x0957 },
+    { 0x0962, 0x0963 },
+    { 0x0971, 0x0971 },
+    { 0x0981, 0x0981 },
+    { 0x09BC, 0x09BC },
+    { 0x09C1, 0x09C4 },
+    { 0x09CD, 0x09CD },
+    { 0x09E2, 0x09E3 },
+    { 0x0A01, 0x0A02 },
+    { 0x0A3C, 0x0A3C },
+    { 0x0A41, 0x0A42 },
+    { 0x0A47, 0x0A48 },
+    { 0x0A4B, 0x0A4D },
+    { 0x0A51, 0x0A51 },
+    { 0x0A70, 0x0A71 },
+    { 0x0A75, 0x0A75 },
+    { 0x0A81, 0x0A82 },
+    { 0x0ABC, 0x0ABC },
+    { 0x0AC1, 0x0AC5 },
+    { 0x0AC7, 0x0AC8 },
+    { 0x0ACD, 0x0ACD },
+    { 0x0AE2, 0x0AE3 },
+    { 0x0B01, 0x0B01 },
+    { 0x0B3C, 0x0B3C },
+    { 0x0B3F, 0x0B3F },
+    { 0x0B41, 0x0B44 },
+    { 0x0B4D, 0x0B4D },
+    { 0x0B56, 0x0B56 },
+    { 0x0B62, 0x0B63 },
+    { 0x0B82, 0x0B82 },
+    { 0x0BC0, 0x0BC0 },
+    { 0x0BCD, 0x0BCD },
+    { 0x0C3E, 0x0C40 },
+    { 0x0C46, 0x0C48 },
+    { 0x0C4A, 0x0C4D },
+    { 0x0C55, 0x0C56 },
+    { 0x0C62, 0x0C63 },
+    { 0x0CBC, 0x0CBC },
+    { 0x0CBF, 0x0CBF },
+    { 0x0CC6, 0x0CC6 },
+    { 0x0CCC, 0x0CCD },
+    { 0x0CE2, 0x0CE3 },
+    { 0x0D41, 0x0D44 },
+    { 0x0D4D, 0x0D4D },
+    { 0x0D62, 0x0D63 },
+    { 0x0DCA, 0x0DCA },
+    { 0x0DD2, 0x0DD4 },
+    { 0x0DD6, 0x0DD6 },
+    { 0x0E31, 0x0E31 },
+    { 0x0E34, 0x0E3A },
+    { 0x0E46, 0x0E4E },
+    { 0x0EB1, 0x0EB1 },
+    { 0x0EB4, 0x0EB9 },
+    { 0x0EBB, 0x0EBC },
+    { 0x0EC6, 0x0EC6 },
+    { 0x0EC8, 0x0ECD },
+    { 0x0F18, 0x0F19 },
+    { 0x0F35, 0x0F35 },
+    { 0x0F37, 0x0F37 },
+    { 0x0F39, 0x0F39 },
+    { 0x0F71, 0x0F7E },
+    { 0x0F80, 0x0F84 },
+    { 0x0F86, 0x0F87 },
+    { 0x0F8D, 0x0F97 },
+    { 0x0F99, 0x0FBC },
+    { 0x0FC6, 0x0FC6 },
+    { 0x102D, 0x1030 },
+    { 0x1032, 0x1037 },
+    { 0x1039, 0x103A },
+    { 0x103D, 0x103E },
+    { 0x1058, 0x1059 },
+    { 0x105E, 0x1060 },
+    { 0x1071, 0x1074 },
+    { 0x1082, 0x1082 },
+    { 0x1085, 0x1086 },
+    { 0x108D, 0x108D },
+    { 0x109D, 0x109D },
+    { 0x10FC, 0x10FC },
+    { 0x135D, 0x135F },
+    { 0x1712, 0x1714 },
+    { 0x1732, 0x1734 },
+    { 0x1752, 0x1753 },
+    { 0x1772, 0x1773 },
+    { 0x17B4, 0x17B5 },
+    { 0x17B7, 0x17BD },
+    { 0x17C6, 0x17C6 },
+    { 0x17C9, 0x17D3 },
+    { 0x17D7, 0x17D7 },
+    { 0x17DD, 0x17DD },
+    { 0x180B, 0x180D },
+    { 0x1843, 0x1843 },
+    { 0x18A9, 0x18A9 },
+    { 0x1920, 0x1922 },
+    { 0x1927, 0x1928 },
+    { 0x1932, 0x1932 },
+    { 0x1939, 0x193B },
+    { 0x1A17, 0x1A18 },
+    { 0x1A56, 0x1A56 },
+    { 0x1A58, 0x1A5E },
+    { 0x1A60, 0x1A60 },
+    { 0x1A62, 0x1A62 },
+    { 0x1A65, 0x1A6C },
+    { 0x1A73, 0x1A7C },
+    { 0x1A7F, 0x1A7F },
+    { 0x1AA7, 0x1AA7 },
+    { 0x1B00, 0x1B03 },
+    { 0x1B34, 0x1B34 },
+    { 0x1B36, 0x1B3A },
+    { 0x1B3C, 0x1B3C },
+    { 0x1B42, 0x1B42 },
+    { 0x1B6B, 0x1B73 },
+    { 0x1B80, 0x1B81 },
+    { 0x1BA2, 0x1BA5 },
+    { 0x1BA8, 0x1BA9 },
+    { 0x1BE6, 0x1BE6 },
+    { 0x1BE8, 0x1BE9 },
+    { 0x1BED, 0x1BED },
+    { 0x1BEF, 0x1BF1 },
+    { 0x1C2C, 0x1C33 },
+    { 0x1C36, 0x1C37 },
+    { 0x1C78, 0x1C7D },
+    { 0x1CD0, 0x1CD2 },
+    { 0x1CD4, 0x1CE0 },
+    { 0x1CE2, 0x1CE8 },
+    { 0x1CED, 0x1CED },
+    { 0x1D2C, 0x1D61 },
+    { 0x1D78, 0x1D78 },
+    { 0x1D9B, 0x1DE6 },
+    { 0x1DFC, 0x1DFF },
+    { 0x1FBD, 0x1FBD },
+    { 0x1FBF, 0x1FC1 },
+    { 0x1FCD, 0x1FCF },
+    { 0x1FDD, 0x1FDF },
+    { 0x1FED, 0x1FEF },
+    { 0x1FFD, 0x1FFE },
+    { 0x200B, 0x200F },
+    { 0x2018, 0x2019 },
+    { 0x2024, 0x2024 },
+    { 0x2027, 0x2027 },
+    { 0x202A, 0x202E },
+    { 0x2060, 0x2064 },
+    { 0x206A, 0x206F },
+    { 0x2071, 0x2071 },
+    { 0x207F, 0x207F },
+    { 0x2090, 0x209C },
+    { 0x20D0, 0x20F0 },
+    { 0x2C7D, 0x2C7D },
+    { 0x2CEF, 0x2CF1 },
+    { 0x2D6F, 0x2D6F },
+    { 0x2D7F, 0x2D7F },
+    { 0x2DE0, 0x2DFF },
+    { 0x2E2F, 0x2E2F },
+    { 0x3005, 0x3005 },
+    { 0x302A, 0x302F },
+    { 0x3031, 0x3035 },
+    { 0x303B, 0x303B },
+    { 0x3099, 0x309E },
+    { 0x30FC, 0x30FE },
+    { 0xA015, 0xA015 },
+    { 0xA4F8, 0xA4FD },
+    { 0xA60C, 0xA60C },
+    { 0xA66F, 0xA672 },
+    { 0xA67C, 0xA67D },
+    { 0xA67F, 0xA67F },
+    { 0xA6F0, 0xA6F1 },
+    { 0xA700, 0xA721 },
+    { 0xA770, 0xA770 },
+    { 0xA788, 0xA78A },
+    { 0xA802, 0xA802 },
+    { 0xA806, 0xA806 },
+    { 0xA80B, 0xA80B },
+    { 0xA825, 0xA826 },
+    { 0xA8C4, 0xA8C4 },
+    { 0xA8E0, 0xA8F1 },
+    { 0xA926, 0xA92D },
+    { 0xA947, 0xA951 },
+    { 0xA980, 0xA982 },
+    { 0xA9B3, 0xA9B3 },
+    { 0xA9B6, 0xA9B9 },
+    { 0xA9BC, 0xA9BC },
+    { 0xA9CF, 0xA9CF },
+    { 0xAA29, 0xAA2E },
+    { 0xAA31, 0xAA32 },
+    { 0xAA35, 0xAA36 },
+    { 0xAA43, 0xAA43 },
+    { 0xAA4C, 0xAA4C },
+    { 0xAA70, 0xAA70 },
+    { 0xAAB0, 0xAAB0 },
+    { 0xAAB2, 0xAAB4 },
+    { 0xAAB7, 0xAAB8 },
+    { 0xAABE, 0xAABF },
+    { 0xAAC1, 0xAAC1 },
+    { 0xAADD, 0xAADD },
+    { 0xABE5, 0xABE5 },
+    { 0xABE8, 0xABE8 },
+    { 0xABED, 0xABED },
+    { 0xFB1E, 0xFB1E },
+    { 0xFBB2, 0xFBC1 },
+    { 0xFE00, 0xFE0F },
+    { 0xFE13, 0xFE13 },
+    { 0xFE20, 0xFE26 },
+    { 0xFE52, 0xFE52 },
+    { 0xFE55, 0xFE55 },
+    { 0xFEFF, 0xFEFF },
+    { 0xFF07, 0xFF07 },
+    { 0xFF0E, 0xFF0E },
+    { 0xFF1A, 0xFF1A },
+    { 0xFF3E, 0xFF3E },
+    { 0xFF40, 0xFF40 },
+    { 0xFF70, 0xFF70 },
+    { 0xFF9E, 0xFF9F },
+    { 0xFFE3, 0xFFE3 },
+    { 0xFFF9, 0xFFFB },
+    { 0x101FD, 0x101FD },
+    { 0x10A01, 0x10A03 },
+    { 0x10A05, 0x10A06 },
+    { 0x10A0C, 0x10A0F },
+    { 0x10A38, 0x10A3A },
+    { 0x10A3F, 0x10A3F },
+    { 0x11001, 0x11001 },
+    { 0x11038, 0x11046 },
+    { 0x11080, 0x11081 },
+    { 0x110B3, 0x110B6 },
+    { 0x110B9, 0x110BA },
+    { 0x110BD, 0x110BD },
+    { 0x1D167, 0x1D169 },
+    { 0x1D173, 0x1D182 },
+    { 0x1D185, 0x1D18B },
+    { 0x1D1AA, 0x1D1AD },
+    { 0x1D242, 0x1D244 },
+    { 0xE0001, 0xE0001 },
+    { 0xE0020, 0xE007F },
+    { 0xE0100, 0xE01EF }
+
+#define PREDICATE(c) uc_is_property_case_ignorable (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_cased.c b/tests/unictype/test-pr_cased.c
new file mode 100644 (file)
index 0000000..23ec5b3
--- /dev/null
@@ -0,0 +1,134 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "test-predicate-part1.h"
+
+    { 0x0041, 0x005A },
+    { 0x0061, 0x007A },
+    { 0x00AA, 0x00AA },
+    { 0x00B5, 0x00B5 },
+    { 0x00BA, 0x00BA },
+    { 0x00C0, 0x00D6 },
+    { 0x00D8, 0x00F6 },
+    { 0x00F8, 0x01BA },
+    { 0x01BC, 0x01BF },
+    { 0x01C4, 0x0293 },
+    { 0x0295, 0x02B8 },
+    { 0x02C0, 0x02C1 },
+    { 0x02E0, 0x02E4 },
+    { 0x0345, 0x0345 },
+    { 0x0370, 0x0373 },
+    { 0x0376, 0x0377 },
+    { 0x037A, 0x037D },
+    { 0x0386, 0x0386 },
+    { 0x0388, 0x038A },
+    { 0x038C, 0x038C },
+    { 0x038E, 0x03A1 },
+    { 0x03A3, 0x03F5 },
+    { 0x03F7, 0x0481 },
+    { 0x048A, 0x0527 },
+    { 0x0531, 0x0556 },
+    { 0x0561, 0x0587 },
+    { 0x10A0, 0x10C5 },
+    { 0x1D00, 0x1DBF },
+    { 0x1E00, 0x1F15 },
+    { 0x1F18, 0x1F1D },
+    { 0x1F20, 0x1F45 },
+    { 0x1F48, 0x1F4D },
+    { 0x1F50, 0x1F57 },
+    { 0x1F59, 0x1F59 },
+    { 0x1F5B, 0x1F5B },
+    { 0x1F5D, 0x1F5D },
+    { 0x1F5F, 0x1F7D },
+    { 0x1F80, 0x1FB4 },
+    { 0x1FB6, 0x1FBC },
+    { 0x1FBE, 0x1FBE },
+    { 0x1FC2, 0x1FC4 },
+    { 0x1FC6, 0x1FCC },
+    { 0x1FD0, 0x1FD3 },
+    { 0x1FD6, 0x1FDB },
+    { 0x1FE0, 0x1FEC },
+    { 0x1FF2, 0x1FF4 },
+    { 0x1FF6, 0x1FFC },
+    { 0x2090, 0x2094 },
+    { 0x2102, 0x2102 },
+    { 0x2107, 0x2107 },
+    { 0x210A, 0x2113 },
+    { 0x2115, 0x2115 },
+    { 0x2119, 0x211D },
+    { 0x2124, 0x2124 },
+    { 0x2126, 0x2126 },
+    { 0x2128, 0x2128 },
+    { 0x212A, 0x212D },
+    { 0x212F, 0x2134 },
+    { 0x2139, 0x2139 },
+    { 0x213C, 0x213F },
+    { 0x2145, 0x2149 },
+    { 0x214E, 0x214E },
+    { 0x2160, 0x217F },
+    { 0x2183, 0x2184 },
+    { 0x24B6, 0x24E9 },
+    { 0x2C00, 0x2C2E },
+    { 0x2C30, 0x2C5E },
+    { 0x2C60, 0x2CE4 },
+    { 0x2CEB, 0x2CEE },
+    { 0x2D00, 0x2D25 },
+    { 0xA640, 0xA66D },
+    { 0xA680, 0xA697 },
+    { 0xA722, 0xA787 },
+    { 0xA78B, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA7FA },
+    { 0xFB00, 0xFB06 },
+    { 0xFB13, 0xFB17 },
+    { 0xFF21, 0xFF3A },
+    { 0xFF41, 0xFF5A },
+    { 0x10400, 0x1044F },
+    { 0x1D400, 0x1D454 },
+    { 0x1D456, 0x1D49C },
+    { 0x1D49E, 0x1D49F },
+    { 0x1D4A2, 0x1D4A2 },
+    { 0x1D4A5, 0x1D4A6 },
+    { 0x1D4A9, 0x1D4AC },
+    { 0x1D4AE, 0x1D4B9 },
+    { 0x1D4BB, 0x1D4BB },
+    { 0x1D4BD, 0x1D4C3 },
+    { 0x1D4C5, 0x1D505 },
+    { 0x1D507, 0x1D50A },
+    { 0x1D50D, 0x1D514 },
+    { 0x1D516, 0x1D51C },
+    { 0x1D51E, 0x1D539 },
+    { 0x1D53B, 0x1D53E },
+    { 0x1D540, 0x1D544 },
+    { 0x1D546, 0x1D546 },
+    { 0x1D54A, 0x1D550 },
+    { 0x1D552, 0x1D6A5 },
+    { 0x1D6A8, 0x1D6C0 },
+    { 0x1D6C2, 0x1D6DA },
+    { 0x1D6DC, 0x1D6FA },
+    { 0x1D6FC, 0x1D714 },
+    { 0x1D716, 0x1D734 },
+    { 0x1D736, 0x1D74E },
+    { 0x1D750, 0x1D76E },
+    { 0x1D770, 0x1D788 },
+    { 0x1D78A, 0x1D7A8 },
+    { 0x1D7AA, 0x1D7C2 },
+    { 0x1D7C4, 0x1D7CB }
+
+#define PREDICATE(c) uc_is_property_cased (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_changes_when_casefolded.c b/tests/unictype/test-pr_changes_when_casefolded.c
new file mode 100644 (file)
index 0000000..f5694d9
--- /dev/null
@@ -0,0 +1,599 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "test-predicate-part1.h"
+
+    { 0x0041, 0x005A },
+    { 0x00B5, 0x00B5 },
+    { 0x00C0, 0x00D6 },
+    { 0x00D8, 0x00DF },
+    { 0x0100, 0x0100 },
+    { 0x0102, 0x0102 },
+    { 0x0104, 0x0104 },
+    { 0x0106, 0x0106 },
+    { 0x0108, 0x0108 },
+    { 0x010A, 0x010A },
+    { 0x010C, 0x010C },
+    { 0x010E, 0x010E },
+    { 0x0110, 0x0110 },
+    { 0x0112, 0x0112 },
+    { 0x0114, 0x0114 },
+    { 0x0116, 0x0116 },
+    { 0x0118, 0x0118 },
+    { 0x011A, 0x011A },
+    { 0x011C, 0x011C },
+    { 0x011E, 0x011E },
+    { 0x0120, 0x0120 },
+    { 0x0122, 0x0122 },
+    { 0x0124, 0x0124 },
+    { 0x0126, 0x0126 },
+    { 0x0128, 0x0128 },
+    { 0x012A, 0x012A },
+    { 0x012C, 0x012C },
+    { 0x012E, 0x012E },
+    { 0x0130, 0x0130 },
+    { 0x0132, 0x0132 },
+    { 0x0134, 0x0134 },
+    { 0x0136, 0x0136 },
+    { 0x0139, 0x0139 },
+    { 0x013B, 0x013B },
+    { 0x013D, 0x013D },
+    { 0x013F, 0x013F },
+    { 0x0141, 0x0141 },
+    { 0x0143, 0x0143 },
+    { 0x0145, 0x0145 },
+    { 0x0147, 0x0147 },
+    { 0x0149, 0x014A },
+    { 0x014C, 0x014C },
+    { 0x014E, 0x014E },
+    { 0x0150, 0x0150 },
+    { 0x0152, 0x0152 },
+    { 0x0154, 0x0154 },
+    { 0x0156, 0x0156 },
+    { 0x0158, 0x0158 },
+    { 0x015A, 0x015A },
+    { 0x015C, 0x015C },
+    { 0x015E, 0x015E },
+    { 0x0160, 0x0160 },
+    { 0x0162, 0x0162 },
+    { 0x0164, 0x0164 },
+    { 0x0166, 0x0166 },
+    { 0x0168, 0x0168 },
+    { 0x016A, 0x016A },
+    { 0x016C, 0x016C },
+    { 0x016E, 0x016E },
+    { 0x0170, 0x0170 },
+    { 0x0172, 0x0172 },
+    { 0x0174, 0x0174 },
+    { 0x0176, 0x0176 },
+    { 0x0178, 0x0179 },
+    { 0x017B, 0x017B },
+    { 0x017D, 0x017D },
+    { 0x017F, 0x017F },
+    { 0x0181, 0x0182 },
+    { 0x0184, 0x0184 },
+    { 0x0186, 0x0187 },
+    { 0x0189, 0x018B },
+    { 0x018E, 0x0191 },
+    { 0x0193, 0x0194 },
+    { 0x0196, 0x0198 },
+    { 0x019C, 0x019D },
+    { 0x019F, 0x01A0 },
+    { 0x01A2, 0x01A2 },
+    { 0x01A4, 0x01A4 },
+    { 0x01A6, 0x01A7 },
+    { 0x01A9, 0x01A9 },
+    { 0x01AC, 0x01AC },
+    { 0x01AE, 0x01AF },
+    { 0x01B1, 0x01B3 },
+    { 0x01B5, 0x01B5 },
+    { 0x01B7, 0x01B8 },
+    { 0x01BC, 0x01BC },
+    { 0x01C4, 0x01C5 },
+    { 0x01C7, 0x01C8 },
+    { 0x01CA, 0x01CB },
+    { 0x01CD, 0x01CD },
+    { 0x01CF, 0x01CF },
+    { 0x01D1, 0x01D1 },
+    { 0x01D3, 0x01D3 },
+    { 0x01D5, 0x01D5 },
+    { 0x01D7, 0x01D7 },
+    { 0x01D9, 0x01D9 },
+    { 0x01DB, 0x01DB },
+    { 0x01DE, 0x01DE },
+    { 0x01E0, 0x01E0 },
+    { 0x01E2, 0x01E2 },
+    { 0x01E4, 0x01E4 },
+    { 0x01E6, 0x01E6 },
+    { 0x01E8, 0x01E8 },
+    { 0x01EA, 0x01EA },
+    { 0x01EC, 0x01EC },
+    { 0x01EE, 0x01EE },
+    { 0x01F1, 0x01F2 },
+    { 0x01F4, 0x01F4 },
+    { 0x01F6, 0x01F8 },
+    { 0x01FA, 0x01FA },
+    { 0x01FC, 0x01FC },
+    { 0x01FE, 0x01FE },
+    { 0x0200, 0x0200 },
+    { 0x0202, 0x0202 },
+    { 0x0204, 0x0204 },
+    { 0x0206, 0x0206 },
+    { 0x0208, 0x0208 },
+    { 0x020A, 0x020A },
+    { 0x020C, 0x020C },
+    { 0x020E, 0x020E },
+    { 0x0210, 0x0210 },
+    { 0x0212, 0x0212 },
+    { 0x0214, 0x0214 },
+    { 0x0216, 0x0216 },
+    { 0x0218, 0x0218 },
+    { 0x021A, 0x021A },
+    { 0x021C, 0x021C },
+    { 0x021E, 0x021E },
+    { 0x0220, 0x0220 },
+    { 0x0222, 0x0222 },
+    { 0x0224, 0x0224 },
+    { 0x0226, 0x0226 },
+    { 0x0228, 0x0228 },
+    { 0x022A, 0x022A },
+    { 0x022C, 0x022C },
+    { 0x022E, 0x022E },
+    { 0x0230, 0x0230 },
+    { 0x0232, 0x0232 },
+    { 0x023A, 0x023B },
+    { 0x023D, 0x023E },
+    { 0x0241, 0x0241 },
+    { 0x0243, 0x0246 },
+    { 0x0248, 0x0248 },
+    { 0x024A, 0x024A },
+    { 0x024C, 0x024C },
+    { 0x024E, 0x024E },
+    { 0x0345, 0x0345 },
+    { 0x0370, 0x0370 },
+    { 0x0372, 0x0372 },
+    { 0x0376, 0x0376 },
+    { 0x0386, 0x0386 },
+    { 0x0388, 0x038A },
+    { 0x038C, 0x038C },
+    { 0x038E, 0x038F },
+    { 0x0391, 0x03A1 },
+    { 0x03A3, 0x03AB },
+    { 0x03C2, 0x03C2 },
+    { 0x03CF, 0x03D1 },
+    { 0x03D5, 0x03D6 },
+    { 0x03D8, 0x03D8 },
+    { 0x03DA, 0x03DA },
+    { 0x03DC, 0x03DC },
+    { 0x03DE, 0x03DE },
+    { 0x03E0, 0x03E0 },
+    { 0x03E2, 0x03E2 },
+    { 0x03E4, 0x03E4 },
+    { 0x03E6, 0x03E6 },
+    { 0x03E8, 0x03E8 },
+    { 0x03EA, 0x03EA },
+    { 0x03EC, 0x03EC },
+    { 0x03EE, 0x03EE },
+    { 0x03F0, 0x03F1 },
+    { 0x03F4, 0x03F5 },
+    { 0x03F7, 0x03F7 },
+    { 0x03F9, 0x03FA },
+    { 0x03FD, 0x042F },
+    { 0x0460, 0x0460 },
+    { 0x0462, 0x0462 },
+    { 0x0464, 0x0464 },
+    { 0x0466, 0x0466 },
+    { 0x0468, 0x0468 },
+    { 0x046A, 0x046A },
+    { 0x046C, 0x046C },
+    { 0x046E, 0x046E },
+    { 0x0470, 0x0470 },
+    { 0x0472, 0x0472 },
+    { 0x0474, 0x0474 },
+    { 0x0476, 0x0476 },
+    { 0x0478, 0x0478 },
+    { 0x047A, 0x047A },
+    { 0x047C, 0x047C },
+    { 0x047E, 0x047E },
+    { 0x0480, 0x0480 },
+    { 0x048A, 0x048A },
+    { 0x048C, 0x048C },
+    { 0x048E, 0x048E },
+    { 0x0490, 0x0490 },
+    { 0x0492, 0x0492 },
+    { 0x0494, 0x0494 },
+    { 0x0496, 0x0496 },
+    { 0x0498, 0x0498 },
+    { 0x049A, 0x049A },
+    { 0x049C, 0x049C },
+    { 0x049E, 0x049E },
+    { 0x04A0, 0x04A0 },
+    { 0x04A2, 0x04A2 },
+    { 0x04A4, 0x04A4 },
+    { 0x04A6, 0x04A6 },
+    { 0x04A8, 0x04A8 },
+    { 0x04AA, 0x04AA },
+    { 0x04AC, 0x04AC },
+    { 0x04AE, 0x04AE },
+    { 0x04B0, 0x04B0 },
+    { 0x04B2, 0x04B2 },
+    { 0x04B4, 0x04B4 },
+    { 0x04B6, 0x04B6 },
+    { 0x04B8, 0x04B8 },
+    { 0x04BA, 0x04BA },
+    { 0x04BC, 0x04BC },
+    { 0x04BE, 0x04BE },
+    { 0x04C0, 0x04C1 },
+    { 0x04C3, 0x04C3 },
+    { 0x04C5, 0x04C5 },
+    { 0x04C7, 0x04C7 },
+    { 0x04C9, 0x04C9 },
+    { 0x04CB, 0x04CB },
+    { 0x04CD, 0x04CD },
+    { 0x04D0, 0x04D0 },
+    { 0x04D2, 0x04D2 },
+    { 0x04D4, 0x04D4 },
+    { 0x04D6, 0x04D6 },
+    { 0x04D8, 0x04D8 },
+    { 0x04DA, 0x04DA },
+    { 0x04DC, 0x04DC },
+    { 0x04DE, 0x04DE },
+    { 0x04E0, 0x04E0 },
+    { 0x04E2, 0x04E2 },
+    { 0x04E4, 0x04E4 },
+    { 0x04E6, 0x04E6 },
+    { 0x04E8, 0x04E8 },
+    { 0x04EA, 0x04EA },
+    { 0x04EC, 0x04EC },
+    { 0x04EE, 0x04EE },
+    { 0x04F0, 0x04F0 },
+    { 0x04F2, 0x04F2 },
+    { 0x04F4, 0x04F4 },
+    { 0x04F6, 0x04F6 },
+    { 0x04F8, 0x04F8 },
+    { 0x04FA, 0x04FA },
+    { 0x04FC, 0x04FC },
+    { 0x04FE, 0x04FE },
+    { 0x0500, 0x0500 },
+    { 0x0502, 0x0502 },
+    { 0x0504, 0x0504 },
+    { 0x0506, 0x0506 },
+    { 0x0508, 0x0508 },
+    { 0x050A, 0x050A },
+    { 0x050C, 0x050C },
+    { 0x050E, 0x050E },
+    { 0x0510, 0x0510 },
+    { 0x0512, 0x0512 },
+    { 0x0514, 0x0514 },
+    { 0x0516, 0x0516 },
+    { 0x0518, 0x0518 },
+    { 0x051A, 0x051A },
+    { 0x051C, 0x051C },
+    { 0x051E, 0x051E },
+    { 0x0520, 0x0520 },
+    { 0x0522, 0x0522 },
+    { 0x0524, 0x0524 },
+    { 0x0526, 0x0526 },
+    { 0x0531, 0x0556 },
+    { 0x0587, 0x0587 },
+    { 0x10A0, 0x10C5 },
+    { 0x1E00, 0x1E00 },
+    { 0x1E02, 0x1E02 },
+    { 0x1E04, 0x1E04 },
+    { 0x1E06, 0x1E06 },
+    { 0x1E08, 0x1E08 },
+    { 0x1E0A, 0x1E0A },
+    { 0x1E0C, 0x1E0C },
+    { 0x1E0E, 0x1E0E },
+    { 0x1E10, 0x1E10 },
+    { 0x1E12, 0x1E12 },
+    { 0x1E14, 0x1E14 },
+    { 0x1E16, 0x1E16 },
+    { 0x1E18, 0x1E18 },
+    { 0x1E1A, 0x1E1A },
+    { 0x1E1C, 0x1E1C },
+    { 0x1E1E, 0x1E1E },
+    { 0x1E20, 0x1E20 },
+    { 0x1E22, 0x1E22 },
+    { 0x1E24, 0x1E24 },
+    { 0x1E26, 0x1E26 },
+    { 0x1E28, 0x1E28 },
+    { 0x1E2A, 0x1E2A },
+    { 0x1E2C, 0x1E2C },
+    { 0x1E2E, 0x1E2E },
+    { 0x1E30, 0x1E30 },
+    { 0x1E32, 0x1E32 },
+    { 0x1E34, 0x1E34 },
+    { 0x1E36, 0x1E36 },
+    { 0x1E38, 0x1E38 },
+    { 0x1E3A, 0x1E3A },
+    { 0x1E3C, 0x1E3C },
+    { 0x1E3E, 0x1E3E },
+    { 0x1E40, 0x1E40 },
+    { 0x1E42, 0x1E42 },
+    { 0x1E44, 0x1E44 },
+    { 0x1E46, 0x1E46 },
+    { 0x1E48, 0x1E48 },
+    { 0x1E4A, 0x1E4A },
+    { 0x1E4C, 0x1E4C },
+    { 0x1E4E, 0x1E4E },
+    { 0x1E50, 0x1E50 },
+    { 0x1E52, 0x1E52 },
+    { 0x1E54, 0x1E54 },
+    { 0x1E56, 0x1E56 },
+    { 0x1E58, 0x1E58 },
+    { 0x1E5A, 0x1E5A },
+    { 0x1E5C, 0x1E5C },
+    { 0x1E5E, 0x1E5E },
+    { 0x1E60, 0x1E60 },
+    { 0x1E62, 0x1E62 },
+    { 0x1E64, 0x1E64 },
+    { 0x1E66, 0x1E66 },
+    { 0x1E68, 0x1E68 },
+    { 0x1E6A, 0x1E6A },
+    { 0x1E6C, 0x1E6C },
+    { 0x1E6E, 0x1E6E },
+    { 0x1E70, 0x1E70 },
+    { 0x1E72, 0x1E72 },
+    { 0x1E74, 0x1E74 },
+    { 0x1E76, 0x1E76 },
+    { 0x1E78, 0x1E78 },
+    { 0x1E7A, 0x1E7A },
+    { 0x1E7C, 0x1E7C },
+    { 0x1E7E, 0x1E7E },
+    { 0x1E80, 0x1E80 },
+    { 0x1E82, 0x1E82 },
+    { 0x1E84, 0x1E84 },
+    { 0x1E86, 0x1E86 },
+    { 0x1E88, 0x1E88 },
+    { 0x1E8A, 0x1E8A },
+    { 0x1E8C, 0x1E8C },
+    { 0x1E8E, 0x1E8E },
+    { 0x1E90, 0x1E90 },
+    { 0x1E92, 0x1E92 },
+    { 0x1E94, 0x1E94 },
+    { 0x1E9A, 0x1E9B },
+    { 0x1E9E, 0x1E9E },
+    { 0x1EA0, 0x1EA0 },
+    { 0x1EA2, 0x1EA2 },
+    { 0x1EA4, 0x1EA4 },
+    { 0x1EA6, 0x1EA6 },
+    { 0x1EA8, 0x1EA8 },
+    { 0x1EAA, 0x1EAA },
+    { 0x1EAC, 0x1EAC },
+    { 0x1EAE, 0x1EAE },
+    { 0x1EB0, 0x1EB0 },
+    { 0x1EB2, 0x1EB2 },
+    { 0x1EB4, 0x1EB4 },
+    { 0x1EB6, 0x1EB6 },
+    { 0x1EB8, 0x1EB8 },
+    { 0x1EBA, 0x1EBA },
+    { 0x1EBC, 0x1EBC },
+    { 0x1EBE, 0x1EBE },
+    { 0x1EC0, 0x1EC0 },
+    { 0x1EC2, 0x1EC2 },
+    { 0x1EC4, 0x1EC4 },
+    { 0x1EC6, 0x1EC6 },
+    { 0x1EC8, 0x1EC8 },
+    { 0x1ECA, 0x1ECA },
+    { 0x1ECC, 0x1ECC },
+    { 0x1ECE, 0x1ECE },
+    { 0x1ED0, 0x1ED0 },
+    { 0x1ED2, 0x1ED2 },
+    { 0x1ED4, 0x1ED4 },
+    { 0x1ED6, 0x1ED6 },
+    { 0x1ED8, 0x1ED8 },
+    { 0x1EDA, 0x1EDA },
+    { 0x1EDC, 0x1EDC },
+    { 0x1EDE, 0x1EDE },
+    { 0x1EE0, 0x1EE0 },
+    { 0x1EE2, 0x1EE2 },
+    { 0x1EE4, 0x1EE4 },
+    { 0x1EE6, 0x1EE6 },
+    { 0x1EE8, 0x1EE8 },
+    { 0x1EEA, 0x1EEA },
+    { 0x1EEC, 0x1EEC },
+    { 0x1EEE, 0x1EEE },
+    { 0x1EF0, 0x1EF0 },
+    { 0x1EF2, 0x1EF2 },
+    { 0x1EF4, 0x1EF4 },
+    { 0x1EF6, 0x1EF6 },
+    { 0x1EF8, 0x1EF8 },
+    { 0x1EFA, 0x1EFA },
+    { 0x1EFC, 0x1EFC },
+    { 0x1EFE, 0x1EFE },
+    { 0x1F08, 0x1F0F },
+    { 0x1F18, 0x1F1D },
+    { 0x1F28, 0x1F2F },
+    { 0x1F38, 0x1F3F },
+    { 0x1F48, 0x1F4D },
+    { 0x1F59, 0x1F59 },
+    { 0x1F5B, 0x1F5B },
+    { 0x1F5D, 0x1F5D },
+    { 0x1F5F, 0x1F5F },
+    { 0x1F68, 0x1F6F },
+    { 0x1F80, 0x1FAF },
+    { 0x1FB2, 0x1FB4 },
+    { 0x1FB7, 0x1FBC },
+    { 0x1FC2, 0x1FC4 },
+    { 0x1FC7, 0x1FCC },
+    { 0x1FD8, 0x1FDB },
+    { 0x1FE8, 0x1FEC },
+    { 0x1FF2, 0x1FF4 },
+    { 0x1FF7, 0x1FFC },
+    { 0x2126, 0x2126 },
+    { 0x212A, 0x212B },
+    { 0x2132, 0x2132 },
+    { 0x2160, 0x216F },
+    { 0x2183, 0x2183 },
+    { 0x24B6, 0x24CF },
+    { 0x2C00, 0x2C2E },
+    { 0x2C60, 0x2C60 },
+    { 0x2C62, 0x2C64 },
+    { 0x2C67, 0x2C67 },
+    { 0x2C69, 0x2C69 },
+    { 0x2C6B, 0x2C6B },
+    { 0x2C6D, 0x2C70 },
+    { 0x2C72, 0x2C72 },
+    { 0x2C75, 0x2C75 },
+    { 0x2C7E, 0x2C80 },
+    { 0x2C82, 0x2C82 },
+    { 0x2C84, 0x2C84 },
+    { 0x2C86, 0x2C86 },
+    { 0x2C88, 0x2C88 },
+    { 0x2C8A, 0x2C8A },
+    { 0x2C8C, 0x2C8C },
+    { 0x2C8E, 0x2C8E },
+    { 0x2C90, 0x2C90 },
+    { 0x2C92, 0x2C92 },
+    { 0x2C94, 0x2C94 },
+    { 0x2C96, 0x2C96 },
+    { 0x2C98, 0x2C98 },
+    { 0x2C9A, 0x2C9A },
+    { 0x2C9C, 0x2C9C },
+    { 0x2C9E, 0x2C9E },
+    { 0x2CA0, 0x2CA0 },
+    { 0x2CA2, 0x2CA2 },
+    { 0x2CA4, 0x2CA4 },
+    { 0x2CA6, 0x2CA6 },
+    { 0x2CA8, 0x2CA8 },
+    { 0x2CAA, 0x2CAA },
+    { 0x2CAC, 0x2CAC },
+    { 0x2CAE, 0x2CAE },
+    { 0x2CB0, 0x2CB0 },
+    { 0x2CB2, 0x2CB2 },
+    { 0x2CB4, 0x2CB4 },
+    { 0x2CB6, 0x2CB6 },
+    { 0x2CB8, 0x2CB8 },
+    { 0x2CBA, 0x2CBA },
+    { 0x2CBC, 0x2CBC },
+    { 0x2CBE, 0x2CBE },
+    { 0x2CC0, 0x2CC0 },
+    { 0x2CC2, 0x2CC2 },
+    { 0x2CC4, 0x2CC4 },
+    { 0x2CC6, 0x2CC6 },
+    { 0x2CC8, 0x2CC8 },
+    { 0x2CCA, 0x2CCA },
+    { 0x2CCC, 0x2CCC },
+    { 0x2CCE, 0x2CCE },
+    { 0x2CD0, 0x2CD0 },
+    { 0x2CD2, 0x2CD2 },
+    { 0x2CD4, 0x2CD4 },
+    { 0x2CD6, 0x2CD6 },
+    { 0x2CD8, 0x2CD8 },
+    { 0x2CDA, 0x2CDA },
+    { 0x2CDC, 0x2CDC },
+    { 0x2CDE, 0x2CDE },
+    { 0x2CE0, 0x2CE0 },
+    { 0x2CE2, 0x2CE2 },
+    { 0x2CEB, 0x2CEB },
+    { 0x2CED, 0x2CED },
+    { 0xA640, 0xA640 },
+    { 0xA642, 0xA642 },
+    { 0xA644, 0xA644 },
+    { 0xA646, 0xA646 },
+    { 0xA648, 0xA648 },
+    { 0xA64A, 0xA64A },
+    { 0xA64C, 0xA64C },
+    { 0xA64E, 0xA64E },
+    { 0xA650, 0xA650 },
+    { 0xA652, 0xA652 },
+    { 0xA654, 0xA654 },
+    { 0xA656, 0xA656 },
+    { 0xA658, 0xA658 },
+    { 0xA65A, 0xA65A },
+    { 0xA65C, 0xA65C },
+    { 0xA65E, 0xA65E },
+    { 0xA660, 0xA660 },
+    { 0xA662, 0xA662 },
+    { 0xA664, 0xA664 },
+    { 0xA666, 0xA666 },
+    { 0xA668, 0xA668 },
+    { 0xA66A, 0xA66A },
+    { 0xA66C, 0xA66C },
+    { 0xA680, 0xA680 },
+    { 0xA682, 0xA682 },
+    { 0xA684, 0xA684 },
+    { 0xA686, 0xA686 },
+    { 0xA688, 0xA688 },
+    { 0xA68A, 0xA68A },
+    { 0xA68C, 0xA68C },
+    { 0xA68E, 0xA68E },
+    { 0xA690, 0xA690 },
+    { 0xA692, 0xA692 },
+    { 0xA694, 0xA694 },
+    { 0xA696, 0xA696 },
+    { 0xA722, 0xA722 },
+    { 0xA724, 0xA724 },
+    { 0xA726, 0xA726 },
+    { 0xA728, 0xA728 },
+    { 0xA72A, 0xA72A },
+    { 0xA72C, 0xA72C },
+    { 0xA72E, 0xA72E },
+    { 0xA732, 0xA732 },
+    { 0xA734, 0xA734 },
+    { 0xA736, 0xA736 },
+    { 0xA738, 0xA738 },
+    { 0xA73A, 0xA73A },
+    { 0xA73C, 0xA73C },
+    { 0xA73E, 0xA73E },
+    { 0xA740, 0xA740 },
+    { 0xA742, 0xA742 },
+    { 0xA744, 0xA744 },
+    { 0xA746, 0xA746 },
+    { 0xA748, 0xA748 },
+    { 0xA74A, 0xA74A },
+    { 0xA74C, 0xA74C },
+    { 0xA74E, 0xA74E },
+    { 0xA750, 0xA750 },
+    { 0xA752, 0xA752 },
+    { 0xA754, 0xA754 },
+    { 0xA756, 0xA756 },
+    { 0xA758, 0xA758 },
+    { 0xA75A, 0xA75A },
+    { 0xA75C, 0xA75C },
+    { 0xA75E, 0xA75E },
+    { 0xA760, 0xA760 },
+    { 0xA762, 0xA762 },
+    { 0xA764, 0xA764 },
+    { 0xA766, 0xA766 },
+    { 0xA768, 0xA768 },
+    { 0xA76A, 0xA76A },
+    { 0xA76C, 0xA76C },
+    { 0xA76E, 0xA76E },
+    { 0xA779, 0xA779 },
+    { 0xA77B, 0xA77B },
+    { 0xA77D, 0xA77E },
+    { 0xA780, 0xA780 },
+    { 0xA782, 0xA782 },
+    { 0xA784, 0xA784 },
+    { 0xA786, 0xA786 },
+    { 0xA78B, 0xA78B },
+    { 0xA78D, 0xA78D },
+    { 0xA790, 0xA790 },
+    { 0xA7A0, 0xA7A0 },
+    { 0xA7A2, 0xA7A2 },
+    { 0xA7A4, 0xA7A4 },
+    { 0xA7A6, 0xA7A6 },
+    { 0xA7A8, 0xA7A8 },
+    { 0xFB00, 0xFB06 },
+    { 0xFB13, 0xFB17 },
+    { 0xFF21, 0xFF3A },
+    { 0x10400, 0x10427 }
+
+#define PREDICATE(c) uc_is_property_changes_when_casefolded (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_changes_when_casemapped.c b/tests/unictype/test-pr_changes_when_casemapped.c
new file mode 100644 (file)
index 0000000..7a7422d
--- /dev/null
@@ -0,0 +1,121 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "test-predicate-part1.h"
+
+    { 0x0041, 0x005A },
+    { 0x0061, 0x007A },
+    { 0x00B5, 0x00B5 },
+    { 0x00C0, 0x00D6 },
+    { 0x00D8, 0x00F6 },
+    { 0x00F8, 0x0137 },
+    { 0x0139, 0x018C },
+    { 0x018E, 0x019A },
+    { 0x019C, 0x01A9 },
+    { 0x01AC, 0x01B9 },
+    { 0x01BC, 0x01BD },
+    { 0x01BF, 0x01BF },
+    { 0x01C4, 0x0220 },
+    { 0x0222, 0x0233 },
+    { 0x023A, 0x0254 },
+    { 0x0256, 0x0257 },
+    { 0x0259, 0x0259 },
+    { 0x025B, 0x025B },
+    { 0x0260, 0x0260 },
+    { 0x0263, 0x0263 },
+    { 0x0265, 0x0265 },
+    { 0x0268, 0x0269 },
+    { 0x026B, 0x026B },
+    { 0x026F, 0x026F },
+    { 0x0271, 0x0272 },
+    { 0x0275, 0x0275 },
+    { 0x027D, 0x027D },
+    { 0x0280, 0x0280 },
+    { 0x0283, 0x0283 },
+    { 0x0288, 0x028C },
+    { 0x0292, 0x0292 },
+    { 0x0345, 0x0345 },
+    { 0x0370, 0x0373 },
+    { 0x0376, 0x0377 },
+    { 0x037B, 0x037D },
+    { 0x0386, 0x0386 },
+    { 0x0388, 0x038A },
+    { 0x038C, 0x038C },
+    { 0x038E, 0x03A1 },
+    { 0x03A3, 0x03D1 },
+    { 0x03D5, 0x03F2 },
+    { 0x03F4, 0x03F5 },
+    { 0x03F7, 0x03FB },
+    { 0x03FD, 0x0481 },
+    { 0x048A, 0x0527 },
+    { 0x0531, 0x0556 },
+    { 0x0561, 0x0587 },
+    { 0x10A0, 0x10C5 },
+    { 0x1D79, 0x1D79 },
+    { 0x1D7D, 0x1D7D },
+    { 0x1E00, 0x1E9B },
+    { 0x1E9E, 0x1E9E },
+    { 0x1EA0, 0x1F15 },
+    { 0x1F18, 0x1F1D },
+    { 0x1F20, 0x1F45 },
+    { 0x1F48, 0x1F4D },
+    { 0x1F50, 0x1F57 },
+    { 0x1F59, 0x1F59 },
+    { 0x1F5B, 0x1F5B },
+    { 0x1F5D, 0x1F5D },
+    { 0x1F5F, 0x1F7D },
+    { 0x1F80, 0x1FB4 },
+    { 0x1FB6, 0x1FBC },
+    { 0x1FBE, 0x1FBE },
+    { 0x1FC2, 0x1FC4 },
+    { 0x1FC6, 0x1FCC },
+    { 0x1FD0, 0x1FD3 },
+    { 0x1FD6, 0x1FDB },
+    { 0x1FE0, 0x1FEC },
+    { 0x1FF2, 0x1FF4 },
+    { 0x1FF6, 0x1FFC },
+    { 0x2126, 0x2126 },
+    { 0x212A, 0x212B },
+    { 0x2132, 0x2132 },
+    { 0x214E, 0x214E },
+    { 0x2160, 0x217F },
+    { 0x2183, 0x2184 },
+    { 0x24B6, 0x24E9 },
+    { 0x2C00, 0x2C2E },
+    { 0x2C30, 0x2C5E },
+    { 0x2C60, 0x2C70 },
+    { 0x2C72, 0x2C73 },
+    { 0x2C75, 0x2C76 },
+    { 0x2C7E, 0x2CE3 },
+    { 0x2CEB, 0x2CEE },
+    { 0x2D00, 0x2D25 },
+    { 0xA640, 0xA66D },
+    { 0xA680, 0xA697 },
+    { 0xA722, 0xA72F },
+    { 0xA732, 0xA76F },
+    { 0xA779, 0xA787 },
+    { 0xA78B, 0xA78D },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xFB00, 0xFB06 },
+    { 0xFB13, 0xFB17 },
+    { 0xFF21, 0xFF3A },
+    { 0xFF41, 0xFF5A },
+    { 0x10400, 0x1044F }
+
+#define PREDICATE(c) uc_is_property_changes_when_casemapped (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_changes_when_lowercased.c b/tests/unictype/test-pr_changes_when_lowercased.c
new file mode 100644 (file)
index 0000000..f72bd03
--- /dev/null
@@ -0,0 +1,588 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "test-predicate-part1.h"
+
+    { 0x0041, 0x005A },
+    { 0x00C0, 0x00D6 },
+    { 0x00D8, 0x00DE },
+    { 0x0100, 0x0100 },
+    { 0x0102, 0x0102 },
+    { 0x0104, 0x0104 },
+    { 0x0106, 0x0106 },
+    { 0x0108, 0x0108 },
+    { 0x010A, 0x010A },
+    { 0x010C, 0x010C },
+    { 0x010E, 0x010E },
+    { 0x0110, 0x0110 },
+    { 0x0112, 0x0112 },
+    { 0x0114, 0x0114 },
+    { 0x0116, 0x0116 },
+    { 0x0118, 0x0118 },
+    { 0x011A, 0x011A },
+    { 0x011C, 0x011C },
+    { 0x011E, 0x011E },
+    { 0x0120, 0x0120 },
+    { 0x0122, 0x0122 },
+    { 0x0124, 0x0124 },
+    { 0x0126, 0x0126 },
+    { 0x0128, 0x0128 },
+    { 0x012A, 0x012A },
+    { 0x012C, 0x012C },
+    { 0x012E, 0x012E },
+    { 0x0130, 0x0130 },
+    { 0x0132, 0x0132 },
+    { 0x0134, 0x0134 },
+    { 0x0136, 0x0136 },
+    { 0x0139, 0x0139 },
+    { 0x013B, 0x013B },
+    { 0x013D, 0x013D },
+    { 0x013F, 0x013F },
+    { 0x0141, 0x0141 },
+    { 0x0143, 0x0143 },
+    { 0x0145, 0x0145 },
+    { 0x0147, 0x0147 },
+    { 0x014A, 0x014A },
+    { 0x014C, 0x014C },
+    { 0x014E, 0x014E },
+    { 0x0150, 0x0150 },
+    { 0x0152, 0x0152 },
+    { 0x0154, 0x0154 },
+    { 0x0156, 0x0156 },
+    { 0x0158, 0x0158 },
+    { 0x015A, 0x015A },
+    { 0x015C, 0x015C },
+    { 0x015E, 0x015E },
+    { 0x0160, 0x0160 },
+    { 0x0162, 0x0162 },
+    { 0x0164, 0x0164 },
+    { 0x0166, 0x0166 },
+    { 0x0168, 0x0168 },
+    { 0x016A, 0x016A },
+    { 0x016C, 0x016C },
+    { 0x016E, 0x016E },
+    { 0x0170, 0x0170 },
+    { 0x0172, 0x0172 },
+    { 0x0174, 0x0174 },
+    { 0x0176, 0x0176 },
+    { 0x0178, 0x0179 },
+    { 0x017B, 0x017B },
+    { 0x017D, 0x017D },
+    { 0x0181, 0x0182 },
+    { 0x0184, 0x0184 },
+    { 0x0186, 0x0187 },
+    { 0x0189, 0x018B },
+    { 0x018E, 0x0191 },
+    { 0x0193, 0x0194 },
+    { 0x0196, 0x0198 },
+    { 0x019C, 0x019D },
+    { 0x019F, 0x01A0 },
+    { 0x01A2, 0x01A2 },
+    { 0x01A4, 0x01A4 },
+    { 0x01A6, 0x01A7 },
+    { 0x01A9, 0x01A9 },
+    { 0x01AC, 0x01AC },
+    { 0x01AE, 0x01AF },
+    { 0x01B1, 0x01B3 },
+    { 0x01B5, 0x01B5 },
+    { 0x01B7, 0x01B8 },
+    { 0x01BC, 0x01BC },
+    { 0x01C4, 0x01C5 },
+    { 0x01C7, 0x01C8 },
+    { 0x01CA, 0x01CB },
+    { 0x01CD, 0x01CD },
+    { 0x01CF, 0x01CF },
+    { 0x01D1, 0x01D1 },
+    { 0x01D3, 0x01D3 },
+    { 0x01D5, 0x01D5 },
+    { 0x01D7, 0x01D7 },
+    { 0x01D9, 0x01D9 },
+    { 0x01DB, 0x01DB },
+    { 0x01DE, 0x01DE },
+    { 0x01E0, 0x01E0 },
+    { 0x01E2, 0x01E2 },
+    { 0x01E4, 0x01E4 },
+    { 0x01E6, 0x01E6 },
+    { 0x01E8, 0x01E8 },
+    { 0x01EA, 0x01EA },
+    { 0x01EC, 0x01EC },
+    { 0x01EE, 0x01EE },
+    { 0x01F1, 0x01F2 },
+    { 0x01F4, 0x01F4 },
+    { 0x01F6, 0x01F8 },
+    { 0x01FA, 0x01FA },
+    { 0x01FC, 0x01FC },
+    { 0x01FE, 0x01FE },
+    { 0x0200, 0x0200 },
+    { 0x0202, 0x0202 },
+    { 0x0204, 0x0204 },
+    { 0x0206, 0x0206 },
+    { 0x0208, 0x0208 },
+    { 0x020A, 0x020A },
+    { 0x020C, 0x020C },
+    { 0x020E, 0x020E },
+    { 0x0210, 0x0210 },
+    { 0x0212, 0x0212 },
+    { 0x0214, 0x0214 },
+    { 0x0216, 0x0216 },
+    { 0x0218, 0x0218 },
+    { 0x021A, 0x021A },
+    { 0x021C, 0x021C },
+    { 0x021E, 0x021E },
+    { 0x0220, 0x0220 },
+    { 0x0222, 0x0222 },
+    { 0x0224, 0x0224 },
+    { 0x0226, 0x0226 },
+    { 0x0228, 0x0228 },
+    { 0x022A, 0x022A },
+    { 0x022C, 0x022C },
+    { 0x022E, 0x022E },
+    { 0x0230, 0x0230 },
+    { 0x0232, 0x0232 },
+    { 0x023A, 0x023B },
+    { 0x023D, 0x023E },
+    { 0x0241, 0x0241 },
+    { 0x0243, 0x0246 },
+    { 0x0248, 0x0248 },
+    { 0x024A, 0x024A },
+    { 0x024C, 0x024C },
+    { 0x024E, 0x024E },
+    { 0x0370, 0x0370 },
+    { 0x0372, 0x0372 },
+    { 0x0376, 0x0376 },
+    { 0x0386, 0x0386 },
+    { 0x0388, 0x038A },
+    { 0x038C, 0x038C },
+    { 0x038E, 0x038F },
+    { 0x0391, 0x03A1 },
+    { 0x03A3, 0x03AB },
+    { 0x03CF, 0x03CF },
+    { 0x03D8, 0x03D8 },
+    { 0x03DA, 0x03DA },
+    { 0x03DC, 0x03DC },
+    { 0x03DE, 0x03DE },
+    { 0x03E0, 0x03E0 },
+    { 0x03E2, 0x03E2 },
+    { 0x03E4, 0x03E4 },
+    { 0x03E6, 0x03E6 },
+    { 0x03E8, 0x03E8 },
+    { 0x03EA, 0x03EA },
+    { 0x03EC, 0x03EC },
+    { 0x03EE, 0x03EE },
+    { 0x03F4, 0x03F4 },
+    { 0x03F7, 0x03F7 },
+    { 0x03F9, 0x03FA },
+    { 0x03FD, 0x042F },
+    { 0x0460, 0x0460 },
+    { 0x0462, 0x0462 },
+    { 0x0464, 0x0464 },
+    { 0x0466, 0x0466 },
+    { 0x0468, 0x0468 },
+    { 0x046A, 0x046A },
+    { 0x046C, 0x046C },
+    { 0x046E, 0x046E },
+    { 0x0470, 0x0470 },
+    { 0x0472, 0x0472 },
+    { 0x0474, 0x0474 },
+    { 0x0476, 0x0476 },
+    { 0x0478, 0x0478 },
+    { 0x047A, 0x047A },
+    { 0x047C, 0x047C },
+    { 0x047E, 0x047E },
+    { 0x0480, 0x0480 },
+    { 0x048A, 0x048A },
+    { 0x048C, 0x048C },
+    { 0x048E, 0x048E },
+    { 0x0490, 0x0490 },
+    { 0x0492, 0x0492 },
+    { 0x0494, 0x0494 },
+    { 0x0496, 0x0496 },
+    { 0x0498, 0x0498 },
+    { 0x049A, 0x049A },
+    { 0x049C, 0x049C },
+    { 0x049E, 0x049E },
+    { 0x04A0, 0x04A0 },
+    { 0x04A2, 0x04A2 },
+    { 0x04A4, 0x04A4 },
+    { 0x04A6, 0x04A6 },
+    { 0x04A8, 0x04A8 },
+    { 0x04AA, 0x04AA },
+    { 0x04AC, 0x04AC },
+    { 0x04AE, 0x04AE },
+    { 0x04B0, 0x04B0 },
+    { 0x04B2, 0x04B2 },
+    { 0x04B4, 0x04B4 },
+    { 0x04B6, 0x04B6 },
+    { 0x04B8, 0x04B8 },
+    { 0x04BA, 0x04BA },
+    { 0x04BC, 0x04BC },
+    { 0x04BE, 0x04BE },
+    { 0x04C0, 0x04C1 },
+    { 0x04C3, 0x04C3 },
+    { 0x04C5, 0x04C5 },
+    { 0x04C7, 0x04C7 },
+    { 0x04C9, 0x04C9 },
+    { 0x04CB, 0x04CB },
+    { 0x04CD, 0x04CD },
+    { 0x04D0, 0x04D0 },
+    { 0x04D2, 0x04D2 },
+    { 0x04D4, 0x04D4 },
+    { 0x04D6, 0x04D6 },
+    { 0x04D8, 0x04D8 },
+    { 0x04DA, 0x04DA },
+    { 0x04DC, 0x04DC },
+    { 0x04DE, 0x04DE },
+    { 0x04E0, 0x04E0 },
+    { 0x04E2, 0x04E2 },
+    { 0x04E4, 0x04E4 },
+    { 0x04E6, 0x04E6 },
+    { 0x04E8, 0x04E8 },
+    { 0x04EA, 0x04EA },
+    { 0x04EC, 0x04EC },
+    { 0x04EE, 0x04EE },
+    { 0x04F0, 0x04F0 },
+    { 0x04F2, 0x04F2 },
+    { 0x04F4, 0x04F4 },
+    { 0x04F6, 0x04F6 },
+    { 0x04F8, 0x04F8 },
+    { 0x04FA, 0x04FA },
+    { 0x04FC, 0x04FC },
+    { 0x04FE, 0x04FE },
+    { 0x0500, 0x0500 },
+    { 0x0502, 0x0502 },
+    { 0x0504, 0x0504 },
+    { 0x0506, 0x0506 },
+    { 0x0508, 0x0508 },
+    { 0x050A, 0x050A },
+    { 0x050C, 0x050C },
+    { 0x050E, 0x050E },
+    { 0x0510, 0x0510 },
+    { 0x0512, 0x0512 },
+    { 0x0514, 0x0514 },
+    { 0x0516, 0x0516 },
+    { 0x0518, 0x0518 },
+    { 0x051A, 0x051A },
+    { 0x051C, 0x051C },
+    { 0x051E, 0x051E },
+    { 0x0520, 0x0520 },
+    { 0x0522, 0x0522 },
+    { 0x0524, 0x0524 },
+    { 0x0526, 0x0526 },
+    { 0x0531, 0x0556 },
+    { 0x10A0, 0x10C5 },
+    { 0x1E00, 0x1E00 },
+    { 0x1E02, 0x1E02 },
+    { 0x1E04, 0x1E04 },
+    { 0x1E06, 0x1E06 },
+    { 0x1E08, 0x1E08 },
+    { 0x1E0A, 0x1E0A },
+    { 0x1E0C, 0x1E0C },
+    { 0x1E0E, 0x1E0E },
+    { 0x1E10, 0x1E10 },
+    { 0x1E12, 0x1E12 },
+    { 0x1E14, 0x1E14 },
+    { 0x1E16, 0x1E16 },
+    { 0x1E18, 0x1E18 },
+    { 0x1E1A, 0x1E1A },
+    { 0x1E1C, 0x1E1C },
+    { 0x1E1E, 0x1E1E },
+    { 0x1E20, 0x1E20 },
+    { 0x1E22, 0x1E22 },
+    { 0x1E24, 0x1E24 },
+    { 0x1E26, 0x1E26 },
+    { 0x1E28, 0x1E28 },
+    { 0x1E2A, 0x1E2A },
+    { 0x1E2C, 0x1E2C },
+    { 0x1E2E, 0x1E2E },
+    { 0x1E30, 0x1E30 },
+    { 0x1E32, 0x1E32 },
+    { 0x1E34, 0x1E34 },
+    { 0x1E36, 0x1E36 },
+    { 0x1E38, 0x1E38 },
+    { 0x1E3A, 0x1E3A },
+    { 0x1E3C, 0x1E3C },
+    { 0x1E3E, 0x1E3E },
+    { 0x1E40, 0x1E40 },
+    { 0x1E42, 0x1E42 },
+    { 0x1E44, 0x1E44 },
+    { 0x1E46, 0x1E46 },
+    { 0x1E48, 0x1E48 },
+    { 0x1E4A, 0x1E4A },
+    { 0x1E4C, 0x1E4C },
+    { 0x1E4E, 0x1E4E },
+    { 0x1E50, 0x1E50 },
+    { 0x1E52, 0x1E52 },
+    { 0x1E54, 0x1E54 },
+    { 0x1E56, 0x1E56 },
+    { 0x1E58, 0x1E58 },
+    { 0x1E5A, 0x1E5A },
+    { 0x1E5C, 0x1E5C },
+    { 0x1E5E, 0x1E5E },
+    { 0x1E60, 0x1E60 },
+    { 0x1E62, 0x1E62 },
+    { 0x1E64, 0x1E64 },
+    { 0x1E66, 0x1E66 },
+    { 0x1E68, 0x1E68 },
+    { 0x1E6A, 0x1E6A },
+    { 0x1E6C, 0x1E6C },
+    { 0x1E6E, 0x1E6E },
+    { 0x1E70, 0x1E70 },
+    { 0x1E72, 0x1E72 },
+    { 0x1E74, 0x1E74 },
+    { 0x1E76, 0x1E76 },
+    { 0x1E78, 0x1E78 },
+    { 0x1E7A, 0x1E7A },
+    { 0x1E7C, 0x1E7C },
+    { 0x1E7E, 0x1E7E },
+    { 0x1E80, 0x1E80 },
+    { 0x1E82, 0x1E82 },
+    { 0x1E84, 0x1E84 },
+    { 0x1E86, 0x1E86 },
+    { 0x1E88, 0x1E88 },
+    { 0x1E8A, 0x1E8A },
+    { 0x1E8C, 0x1E8C },
+    { 0x1E8E, 0x1E8E },
+    { 0x1E90, 0x1E90 },
+    { 0x1E92, 0x1E92 },
+    { 0x1E94, 0x1E94 },
+    { 0x1E9E, 0x1E9E },
+    { 0x1EA0, 0x1EA0 },
+    { 0x1EA2, 0x1EA2 },
+    { 0x1EA4, 0x1EA4 },
+    { 0x1EA6, 0x1EA6 },
+    { 0x1EA8, 0x1EA8 },
+    { 0x1EAA, 0x1EAA },
+    { 0x1EAC, 0x1EAC },
+    { 0x1EAE, 0x1EAE },
+    { 0x1EB0, 0x1EB0 },
+    { 0x1EB2, 0x1EB2 },
+    { 0x1EB4, 0x1EB4 },
+    { 0x1EB6, 0x1EB6 },
+    { 0x1EB8, 0x1EB8 },
+    { 0x1EBA, 0x1EBA },
+    { 0x1EBC, 0x1EBC },
+    { 0x1EBE, 0x1EBE },
+    { 0x1EC0, 0x1EC0 },
+    { 0x1EC2, 0x1EC2 },
+    { 0x1EC4, 0x1EC4 },
+    { 0x1EC6, 0x1EC6 },
+    { 0x1EC8, 0x1EC8 },
+    { 0x1ECA, 0x1ECA },
+    { 0x1ECC, 0x1ECC },
+    { 0x1ECE, 0x1ECE },
+    { 0x1ED0, 0x1ED0 },
+    { 0x1ED2, 0x1ED2 },
+    { 0x1ED4, 0x1ED4 },
+    { 0x1ED6, 0x1ED6 },
+    { 0x1ED8, 0x1ED8 },
+    { 0x1EDA, 0x1EDA },
+    { 0x1EDC, 0x1EDC },
+    { 0x1EDE, 0x1EDE },
+    { 0x1EE0, 0x1EE0 },
+    { 0x1EE2, 0x1EE2 },
+    { 0x1EE4, 0x1EE4 },
+    { 0x1EE6, 0x1EE6 },
+    { 0x1EE8, 0x1EE8 },
+    { 0x1EEA, 0x1EEA },
+    { 0x1EEC, 0x1EEC },
+    { 0x1EEE, 0x1EEE },
+    { 0x1EF0, 0x1EF0 },
+    { 0x1EF2, 0x1EF2 },
+    { 0x1EF4, 0x1EF4 },
+    { 0x1EF6, 0x1EF6 },
+    { 0x1EF8, 0x1EF8 },
+    { 0x1EFA, 0x1EFA },
+    { 0x1EFC, 0x1EFC },
+    { 0x1EFE, 0x1EFE },
+    { 0x1F08, 0x1F0F },
+    { 0x1F18, 0x1F1D },
+    { 0x1F28, 0x1F2F },
+    { 0x1F38, 0x1F3F },
+    { 0x1F48, 0x1F4D },
+    { 0x1F59, 0x1F59 },
+    { 0x1F5B, 0x1F5B },
+    { 0x1F5D, 0x1F5D },
+    { 0x1F5F, 0x1F5F },
+    { 0x1F68, 0x1F6F },
+    { 0x1F88, 0x1F8F },
+    { 0x1F98, 0x1F9F },
+    { 0x1FA8, 0x1FAF },
+    { 0x1FB8, 0x1FBC },
+    { 0x1FC8, 0x1FCC },
+    { 0x1FD8, 0x1FDB },
+    { 0x1FE8, 0x1FEC },
+    { 0x1FF8, 0x1FFC },
+    { 0x2126, 0x2126 },
+    { 0x212A, 0x212B },
+    { 0x2132, 0x2132 },
+    { 0x2160, 0x216F },
+    { 0x2183, 0x2183 },
+    { 0x24B6, 0x24CF },
+    { 0x2C00, 0x2C2E },
+    { 0x2C60, 0x2C60 },
+    { 0x2C62, 0x2C64 },
+    { 0x2C67, 0x2C67 },
+    { 0x2C69, 0x2C69 },
+    { 0x2C6B, 0x2C6B },
+    { 0x2C6D, 0x2C70 },
+    { 0x2C72, 0x2C72 },
+    { 0x2C75, 0x2C75 },
+    { 0x2C7E, 0x2C80 },
+    { 0x2C82, 0x2C82 },
+    { 0x2C84, 0x2C84 },
+    { 0x2C86, 0x2C86 },
+    { 0x2C88, 0x2C88 },
+    { 0x2C8A, 0x2C8A },
+    { 0x2C8C, 0x2C8C },
+    { 0x2C8E, 0x2C8E },
+    { 0x2C90, 0x2C90 },
+    { 0x2C92, 0x2C92 },
+    { 0x2C94, 0x2C94 },
+    { 0x2C96, 0x2C96 },
+    { 0x2C98, 0x2C98 },
+    { 0x2C9A, 0x2C9A },
+    { 0x2C9C, 0x2C9C },
+    { 0x2C9E, 0x2C9E },
+    { 0x2CA0, 0x2CA0 },
+    { 0x2CA2, 0x2CA2 },
+    { 0x2CA4, 0x2CA4 },
+    { 0x2CA6, 0x2CA6 },
+    { 0x2CA8, 0x2CA8 },
+    { 0x2CAA, 0x2CAA },
+    { 0x2CAC, 0x2CAC },
+    { 0x2CAE, 0x2CAE },
+    { 0x2CB0, 0x2CB0 },
+    { 0x2CB2, 0x2CB2 },
+    { 0x2CB4, 0x2CB4 },
+    { 0x2CB6, 0x2CB6 },
+    { 0x2CB8, 0x2CB8 },
+    { 0x2CBA, 0x2CBA },
+    { 0x2CBC, 0x2CBC },
+    { 0x2CBE, 0x2CBE },
+    { 0x2CC0, 0x2CC0 },
+    { 0x2CC2, 0x2CC2 },
+    { 0x2CC4, 0x2CC4 },
+    { 0x2CC6, 0x2CC6 },
+    { 0x2CC8, 0x2CC8 },
+    { 0x2CCA, 0x2CCA },
+    { 0x2CCC, 0x2CCC },
+    { 0x2CCE, 0x2CCE },
+    { 0x2CD0, 0x2CD0 },
+    { 0x2CD2, 0x2CD2 },
+    { 0x2CD4, 0x2CD4 },
+    { 0x2CD6, 0x2CD6 },
+    { 0x2CD8, 0x2CD8 },
+    { 0x2CDA, 0x2CDA },
+    { 0x2CDC, 0x2CDC },
+    { 0x2CDE, 0x2CDE },
+    { 0x2CE0, 0x2CE0 },
+    { 0x2CE2, 0x2CE2 },
+    { 0x2CEB, 0x2CEB },
+    { 0x2CED, 0x2CED },
+    { 0xA640, 0xA640 },
+    { 0xA642, 0xA642 },
+    { 0xA644, 0xA644 },
+    { 0xA646, 0xA646 },
+    { 0xA648, 0xA648 },
+    { 0xA64A, 0xA64A },
+    { 0xA64C, 0xA64C },
+    { 0xA64E, 0xA64E },
+    { 0xA650, 0xA650 },
+    { 0xA652, 0xA652 },
+    { 0xA654, 0xA654 },
+    { 0xA656, 0xA656 },
+    { 0xA658, 0xA658 },
+    { 0xA65A, 0xA65A },
+    { 0xA65C, 0xA65C },
+    { 0xA65E, 0xA65E },
+    { 0xA660, 0xA660 },
+    { 0xA662, 0xA662 },
+    { 0xA664, 0xA664 },
+    { 0xA666, 0xA666 },
+    { 0xA668, 0xA668 },
+    { 0xA66A, 0xA66A },
+    { 0xA66C, 0xA66C },
+    { 0xA680, 0xA680 },
+    { 0xA682, 0xA682 },
+    { 0xA684, 0xA684 },
+    { 0xA686, 0xA686 },
+    { 0xA688, 0xA688 },
+    { 0xA68A, 0xA68A },
+    { 0xA68C, 0xA68C },
+    { 0xA68E, 0xA68E },
+    { 0xA690, 0xA690 },
+    { 0xA692, 0xA692 },
+    { 0xA694, 0xA694 },
+    { 0xA696, 0xA696 },
+    { 0xA722, 0xA722 },
+    { 0xA724, 0xA724 },
+    { 0xA726, 0xA726 },
+    { 0xA728, 0xA728 },
+    { 0xA72A, 0xA72A },
+    { 0xA72C, 0xA72C },
+    { 0xA72E, 0xA72E },
+    { 0xA732, 0xA732 },
+    { 0xA734, 0xA734 },
+    { 0xA736, 0xA736 },
+    { 0xA738, 0xA738 },
+    { 0xA73A, 0xA73A },
+    { 0xA73C, 0xA73C },
+    { 0xA73E, 0xA73E },
+    { 0xA740, 0xA740 },
+    { 0xA742, 0xA742 },
+    { 0xA744, 0xA744 },
+    { 0xA746, 0xA746 },
+    { 0xA748, 0xA748 },
+    { 0xA74A, 0xA74A },
+    { 0xA74C, 0xA74C },
+    { 0xA74E, 0xA74E },
+    { 0xA750, 0xA750 },
+    { 0xA752, 0xA752 },
+    { 0xA754, 0xA754 },
+    { 0xA756, 0xA756 },
+    { 0xA758, 0xA758 },
+    { 0xA75A, 0xA75A },
+    { 0xA75C, 0xA75C },
+    { 0xA75E, 0xA75E },
+    { 0xA760, 0xA760 },
+    { 0xA762, 0xA762 },
+    { 0xA764, 0xA764 },
+    { 0xA766, 0xA766 },
+    { 0xA768, 0xA768 },
+    { 0xA76A, 0xA76A },
+    { 0xA76C, 0xA76C },
+    { 0xA76E, 0xA76E },
+    { 0xA779, 0xA779 },
+    { 0xA77B, 0xA77B },
+    { 0xA77D, 0xA77E },
+    { 0xA780, 0xA780 },
+    { 0xA782, 0xA782 },
+    { 0xA784, 0xA784 },
+    { 0xA786, 0xA786 },
+    { 0xA78B, 0xA78B },
+    { 0xA78D, 0xA78D },
+    { 0xA790, 0xA790 },
+    { 0xA7A0, 0xA7A0 },
+    { 0xA7A2, 0xA7A2 },
+    { 0xA7A4, 0xA7A4 },
+    { 0xA7A6, 0xA7A6 },
+    { 0xA7A8, 0xA7A8 },
+    { 0xFF21, 0xFF3A },
+    { 0x10400, 0x10427 }
+
+#define PREDICATE(c) uc_is_property_changes_when_lowercased (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_changes_when_titlecased.c b/tests/unictype/test-pr_changes_when_titlecased.c
new file mode 100644 (file)
index 0000000..1cf7e9c
--- /dev/null
@@ -0,0 +1,605 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "test-predicate-part1.h"
+
+    { 0x0061, 0x007A },
+    { 0x00B5, 0x00B5 },
+    { 0x00DF, 0x00F6 },
+    { 0x00F8, 0x00FF },
+    { 0x0101, 0x0101 },
+    { 0x0103, 0x0103 },
+    { 0x0105, 0x0105 },
+    { 0x0107, 0x0107 },
+    { 0x0109, 0x0109 },
+    { 0x010B, 0x010B },
+    { 0x010D, 0x010D },
+    { 0x010F, 0x010F },
+    { 0x0111, 0x0111 },
+    { 0x0113, 0x0113 },
+    { 0x0115, 0x0115 },
+    { 0x0117, 0x0117 },
+    { 0x0119, 0x0119 },
+    { 0x011B, 0x011B },
+    { 0x011D, 0x011D },
+    { 0x011F, 0x011F },
+    { 0x0121, 0x0121 },
+    { 0x0123, 0x0123 },
+    { 0x0125, 0x0125 },
+    { 0x0127, 0x0127 },
+    { 0x0129, 0x0129 },
+    { 0x012B, 0x012B },
+    { 0x012D, 0x012D },
+    { 0x012F, 0x012F },
+    { 0x0131, 0x0131 },
+    { 0x0133, 0x0133 },
+    { 0x0135, 0x0135 },
+    { 0x0137, 0x0137 },
+    { 0x013A, 0x013A },
+    { 0x013C, 0x013C },
+    { 0x013E, 0x013E },
+    { 0x0140, 0x0140 },
+    { 0x0142, 0x0142 },
+    { 0x0144, 0x0144 },
+    { 0x0146, 0x0146 },
+    { 0x0148, 0x0149 },
+    { 0x014B, 0x014B },
+    { 0x014D, 0x014D },
+    { 0x014F, 0x014F },
+    { 0x0151, 0x0151 },
+    { 0x0153, 0x0153 },
+    { 0x0155, 0x0155 },
+    { 0x0157, 0x0157 },
+    { 0x0159, 0x0159 },
+    { 0x015B, 0x015B },
+    { 0x015D, 0x015D },
+    { 0x015F, 0x015F },
+    { 0x0161, 0x0161 },
+    { 0x0163, 0x0163 },
+    { 0x0165, 0x0165 },
+    { 0x0167, 0x0167 },
+    { 0x0169, 0x0169 },
+    { 0x016B, 0x016B },
+    { 0x016D, 0x016D },
+    { 0x016F, 0x016F },
+    { 0x0171, 0x0171 },
+    { 0x0173, 0x0173 },
+    { 0x0175, 0x0175 },
+    { 0x0177, 0x0177 },
+    { 0x017A, 0x017A },
+    { 0x017C, 0x017C },
+    { 0x017E, 0x0180 },
+    { 0x0183, 0x0183 },
+    { 0x0185, 0x0185 },
+    { 0x0188, 0x0188 },
+    { 0x018C, 0x018C },
+    { 0x0192, 0x0192 },
+    { 0x0195, 0x0195 },
+    { 0x0199, 0x019A },
+    { 0x019E, 0x019E },
+    { 0x01A1, 0x01A1 },
+    { 0x01A3, 0x01A3 },
+    { 0x01A5, 0x01A5 },
+    { 0x01A8, 0x01A8 },
+    { 0x01AD, 0x01AD },
+    { 0x01B0, 0x01B0 },
+    { 0x01B4, 0x01B4 },
+    { 0x01B6, 0x01B6 },
+    { 0x01B9, 0x01B9 },
+    { 0x01BD, 0x01BD },
+    { 0x01BF, 0x01BF },
+    { 0x01C4, 0x01C4 },
+    { 0x01C6, 0x01C7 },
+    { 0x01C9, 0x01CA },
+    { 0x01CC, 0x01CC },
+    { 0x01CE, 0x01CE },
+    { 0x01D0, 0x01D0 },
+    { 0x01D2, 0x01D2 },
+    { 0x01D4, 0x01D4 },
+    { 0x01D6, 0x01D6 },
+    { 0x01D8, 0x01D8 },
+    { 0x01DA, 0x01DA },
+    { 0x01DC, 0x01DD },
+    { 0x01DF, 0x01DF },
+    { 0x01E1, 0x01E1 },
+    { 0x01E3, 0x01E3 },
+    { 0x01E5, 0x01E5 },
+    { 0x01E7, 0x01E7 },
+    { 0x01E9, 0x01E9 },
+    { 0x01EB, 0x01EB },
+    { 0x01ED, 0x01ED },
+    { 0x01EF, 0x01F1 },
+    { 0x01F3, 0x01F3 },
+    { 0x01F5, 0x01F5 },
+    { 0x01F9, 0x01F9 },
+    { 0x01FB, 0x01FB },
+    { 0x01FD, 0x01FD },
+    { 0x01FF, 0x01FF },
+    { 0x0201, 0x0201 },
+    { 0x0203, 0x0203 },
+    { 0x0205, 0x0205 },
+    { 0x0207, 0x0207 },
+    { 0x0209, 0x0209 },
+    { 0x020B, 0x020B },
+    { 0x020D, 0x020D },
+    { 0x020F, 0x020F },
+    { 0x0211, 0x0211 },
+    { 0x0213, 0x0213 },
+    { 0x0215, 0x0215 },
+    { 0x0217, 0x0217 },
+    { 0x0219, 0x0219 },
+    { 0x021B, 0x021B },
+    { 0x021D, 0x021D },
+    { 0x021F, 0x021F },
+    { 0x0223, 0x0223 },
+    { 0x0225, 0x0225 },
+    { 0x0227, 0x0227 },
+    { 0x0229, 0x0229 },
+    { 0x022B, 0x022B },
+    { 0x022D, 0x022D },
+    { 0x022F, 0x022F },
+    { 0x0231, 0x0231 },
+    { 0x0233, 0x0233 },
+    { 0x023C, 0x023C },
+    { 0x023F, 0x0240 },
+    { 0x0242, 0x0242 },
+    { 0x0247, 0x0247 },
+    { 0x0249, 0x0249 },
+    { 0x024B, 0x024B },
+    { 0x024D, 0x024D },
+    { 0x024F, 0x0254 },
+    { 0x0256, 0x0257 },
+    { 0x0259, 0x0259 },
+    { 0x025B, 0x025B },
+    { 0x0260, 0x0260 },
+    { 0x0263, 0x0263 },
+    { 0x0265, 0x0265 },
+    { 0x0268, 0x0269 },
+    { 0x026B, 0x026B },
+    { 0x026F, 0x026F },
+    { 0x0271, 0x0272 },
+    { 0x0275, 0x0275 },
+    { 0x027D, 0x027D },
+    { 0x0280, 0x0280 },
+    { 0x0283, 0x0283 },
+    { 0x0288, 0x028C },
+    { 0x0292, 0x0292 },
+    { 0x0345, 0x0345 },
+    { 0x0371, 0x0371 },
+    { 0x0373, 0x0373 },
+    { 0x0377, 0x0377 },
+    { 0x037B, 0x037D },
+    { 0x0390, 0x0390 },
+    { 0x03AC, 0x03CE },
+    { 0x03D0, 0x03D1 },
+    { 0x03D5, 0x03D7 },
+    { 0x03D9, 0x03D9 },
+    { 0x03DB, 0x03DB },
+    { 0x03DD, 0x03DD },
+    { 0x03DF, 0x03DF },
+    { 0x03E1, 0x03E1 },
+    { 0x03E3, 0x03E3 },
+    { 0x03E5, 0x03E5 },
+    { 0x03E7, 0x03E7 },
+    { 0x03E9, 0x03E9 },
+    { 0x03EB, 0x03EB },
+    { 0x03ED, 0x03ED },
+    { 0x03EF, 0x03F2 },
+    { 0x03F5, 0x03F5 },
+    { 0x03F8, 0x03F8 },
+    { 0x03FB, 0x03FB },
+    { 0x0430, 0x045F },
+    { 0x0461, 0x0461 },
+    { 0x0463, 0x0463 },
+    { 0x0465, 0x0465 },
+    { 0x0467, 0x0467 },
+    { 0x0469, 0x0469 },
+    { 0x046B, 0x046B },
+    { 0x046D, 0x046D },
+    { 0x046F, 0x046F },
+    { 0x0471, 0x0471 },
+    { 0x0473, 0x0473 },
+    { 0x0475, 0x0475 },
+    { 0x0477, 0x0477 },
+    { 0x0479, 0x0479 },
+    { 0x047B, 0x047B },
+    { 0x047D, 0x047D },
+    { 0x047F, 0x047F },
+    { 0x0481, 0x0481 },
+    { 0x048B, 0x048B },
+    { 0x048D, 0x048D },
+    { 0x048F, 0x048F },
+    { 0x0491, 0x0491 },
+    { 0x0493, 0x0493 },
+    { 0x0495, 0x0495 },
+    { 0x0497, 0x0497 },
+    { 0x0499, 0x0499 },
+    { 0x049B, 0x049B },
+    { 0x049D, 0x049D },
+    { 0x049F, 0x049F },
+    { 0x04A1, 0x04A1 },
+    { 0x04A3, 0x04A3 },
+    { 0x04A5, 0x04A5 },
+    { 0x04A7, 0x04A7 },
+    { 0x04A9, 0x04A9 },
+    { 0x04AB, 0x04AB },
+    { 0x04AD, 0x04AD },
+    { 0x04AF, 0x04AF },
+    { 0x04B1, 0x04B1 },
+    { 0x04B3, 0x04B3 },
+    { 0x04B5, 0x04B5 },
+    { 0x04B7, 0x04B7 },
+    { 0x04B9, 0x04B9 },
+    { 0x04BB, 0x04BB },
+    { 0x04BD, 0x04BD },
+    { 0x04BF, 0x04BF },
+    { 0x04C2, 0x04C2 },
+    { 0x04C4, 0x04C4 },
+    { 0x04C6, 0x04C6 },
+    { 0x04C8, 0x04C8 },
+    { 0x04CA, 0x04CA },
+    { 0x04CC, 0x04CC },
+    { 0x04CE, 0x04CF },
+    { 0x04D1, 0x04D1 },
+    { 0x04D3, 0x04D3 },
+    { 0x04D5, 0x04D5 },
+    { 0x04D7, 0x04D7 },
+    { 0x04D9, 0x04D9 },
+    { 0x04DB, 0x04DB },
+    { 0x04DD, 0x04DD },
+    { 0x04DF, 0x04DF },
+    { 0x04E1, 0x04E1 },
+    { 0x04E3, 0x04E3 },
+    { 0x04E5, 0x04E5 },
+    { 0x04E7, 0x04E7 },
+    { 0x04E9, 0x04E9 },
+    { 0x04EB, 0x04EB },
+    { 0x04ED, 0x04ED },
+    { 0x04EF, 0x04EF },
+    { 0x04F1, 0x04F1 },
+    { 0x04F3, 0x04F3 },
+    { 0x04F5, 0x04F5 },
+    { 0x04F7, 0x04F7 },
+    { 0x04F9, 0x04F9 },
+    { 0x04FB, 0x04FB },
+    { 0x04FD, 0x04FD },
+    { 0x04FF, 0x04FF },
+    { 0x0501, 0x0501 },
+    { 0x0503, 0x0503 },
+    { 0x0505, 0x0505 },
+    { 0x0507, 0x0507 },
+    { 0x0509, 0x0509 },
+    { 0x050B, 0x050B },
+    { 0x050D, 0x050D },
+    { 0x050F, 0x050F },
+    { 0x0511, 0x0511 },
+    { 0x0513, 0x0513 },
+    { 0x0515, 0x0515 },
+    { 0x0517, 0x0517 },
+    { 0x0519, 0x0519 },
+    { 0x051B, 0x051B },
+    { 0x051D, 0x051D },
+    { 0x051F, 0x051F },
+    { 0x0521, 0x0521 },
+    { 0x0523, 0x0523 },
+    { 0x0525, 0x0525 },
+    { 0x0527, 0x0527 },
+    { 0x0561, 0x0587 },
+    { 0x1D79, 0x1D79 },
+    { 0x1D7D, 0x1D7D },
+    { 0x1E01, 0x1E01 },
+    { 0x1E03, 0x1E03 },
+    { 0x1E05, 0x1E05 },
+    { 0x1E07, 0x1E07 },
+    { 0x1E09, 0x1E09 },
+    { 0x1E0B, 0x1E0B },
+    { 0x1E0D, 0x1E0D },
+    { 0x1E0F, 0x1E0F },
+    { 0x1E11, 0x1E11 },
+    { 0x1E13, 0x1E13 },
+    { 0x1E15, 0x1E15 },
+    { 0x1E17, 0x1E17 },
+    { 0x1E19, 0x1E19 },
+    { 0x1E1B, 0x1E1B },
+    { 0x1E1D, 0x1E1D },
+    { 0x1E1F, 0x1E1F },
+    { 0x1E21, 0x1E21 },
+    { 0x1E23, 0x1E23 },
+    { 0x1E25, 0x1E25 },
+    { 0x1E27, 0x1E27 },
+    { 0x1E29, 0x1E29 },
+    { 0x1E2B, 0x1E2B },
+    { 0x1E2D, 0x1E2D },
+    { 0x1E2F, 0x1E2F },
+    { 0x1E31, 0x1E31 },
+    { 0x1E33, 0x1E33 },
+    { 0x1E35, 0x1E35 },
+    { 0x1E37, 0x1E37 },
+    { 0x1E39, 0x1E39 },
+    { 0x1E3B, 0x1E3B },
+    { 0x1E3D, 0x1E3D },
+    { 0x1E3F, 0x1E3F },
+    { 0x1E41, 0x1E41 },
+    { 0x1E43, 0x1E43 },
+    { 0x1E45, 0x1E45 },
+    { 0x1E47, 0x1E47 },
+    { 0x1E49, 0x1E49 },
+    { 0x1E4B, 0x1E4B },
+    { 0x1E4D, 0x1E4D },
+    { 0x1E4F, 0x1E4F },
+    { 0x1E51, 0x1E51 },
+    { 0x1E53, 0x1E53 },
+    { 0x1E55, 0x1E55 },
+    { 0x1E57, 0x1E57 },
+    { 0x1E59, 0x1E59 },
+    { 0x1E5B, 0x1E5B },
+    { 0x1E5D, 0x1E5D },
+    { 0x1E5F, 0x1E5F },
+    { 0x1E61, 0x1E61 },
+    { 0x1E63, 0x1E63 },
+    { 0x1E65, 0x1E65 },
+    { 0x1E67, 0x1E67 },
+    { 0x1E69, 0x1E69 },
+    { 0x1E6B, 0x1E6B },
+    { 0x1E6D, 0x1E6D },
+    { 0x1E6F, 0x1E6F },
+    { 0x1E71, 0x1E71 },
+    { 0x1E73, 0x1E73 },
+    { 0x1E75, 0x1E75 },
+    { 0x1E77, 0x1E77 },
+    { 0x1E79, 0x1E79 },
+    { 0x1E7B, 0x1E7B },
+    { 0x1E7D, 0x1E7D },
+    { 0x1E7F, 0x1E7F },
+    { 0x1E81, 0x1E81 },
+    { 0x1E83, 0x1E83 },
+    { 0x1E85, 0x1E85 },
+    { 0x1E87, 0x1E87 },
+    { 0x1E89, 0x1E89 },
+    { 0x1E8B, 0x1E8B },
+    { 0x1E8D, 0x1E8D },
+    { 0x1E8F, 0x1E8F },
+    { 0x1E91, 0x1E91 },
+    { 0x1E93, 0x1E93 },
+    { 0x1E95, 0x1E9B },
+    { 0x1EA1, 0x1EA1 },
+    { 0x1EA3, 0x1EA3 },
+    { 0x1EA5, 0x1EA5 },
+    { 0x1EA7, 0x1EA7 },
+    { 0x1EA9, 0x1EA9 },
+    { 0x1EAB, 0x1EAB },
+    { 0x1EAD, 0x1EAD },
+    { 0x1EAF, 0x1EAF },
+    { 0x1EB1, 0x1EB1 },
+    { 0x1EB3, 0x1EB3 },
+    { 0x1EB5, 0x1EB5 },
+    { 0x1EB7, 0x1EB7 },
+    { 0x1EB9, 0x1EB9 },
+    { 0x1EBB, 0x1EBB },
+    { 0x1EBD, 0x1EBD },
+    { 0x1EBF, 0x1EBF },
+    { 0x1EC1, 0x1EC1 },
+    { 0x1EC3, 0x1EC3 },
+    { 0x1EC5, 0x1EC5 },
+    { 0x1EC7, 0x1EC7 },
+    { 0x1EC9, 0x1EC9 },
+    { 0x1ECB, 0x1ECB },
+    { 0x1ECD, 0x1ECD },
+    { 0x1ECF, 0x1ECF },
+    { 0x1ED1, 0x1ED1 },
+    { 0x1ED3, 0x1ED3 },
+    { 0x1ED5, 0x1ED5 },
+    { 0x1ED7, 0x1ED7 },
+    { 0x1ED9, 0x1ED9 },
+    { 0x1EDB, 0x1EDB },
+    { 0x1EDD, 0x1EDD },
+    { 0x1EDF, 0x1EDF },
+    { 0x1EE1, 0x1EE1 },
+    { 0x1EE3, 0x1EE3 },
+    { 0x1EE5, 0x1EE5 },
+    { 0x1EE7, 0x1EE7 },
+    { 0x1EE9, 0x1EE9 },
+    { 0x1EEB, 0x1EEB },
+    { 0x1EED, 0x1EED },
+    { 0x1EEF, 0x1EEF },
+    { 0x1EF1, 0x1EF1 },
+    { 0x1EF3, 0x1EF3 },
+    { 0x1EF5, 0x1EF5 },
+    { 0x1EF7, 0x1EF7 },
+    { 0x1EF9, 0x1EF9 },
+    { 0x1EFB, 0x1EFB },
+    { 0x1EFD, 0x1EFD },
+    { 0x1EFF, 0x1F07 },
+    { 0x1F10, 0x1F15 },
+    { 0x1F20, 0x1F27 },
+    { 0x1F30, 0x1F37 },
+    { 0x1F40, 0x1F45 },
+    { 0x1F50, 0x1F57 },
+    { 0x1F60, 0x1F67 },
+    { 0x1F70, 0x1F7D },
+    { 0x1F80, 0x1F87 },
+    { 0x1F90, 0x1F97 },
+    { 0x1FA0, 0x1FA7 },
+    { 0x1FB0, 0x1FB4 },
+    { 0x1FB6, 0x1FB7 },
+    { 0x1FBE, 0x1FBE },
+    { 0x1FC2, 0x1FC4 },
+    { 0x1FC6, 0x1FC7 },
+    { 0x1FD0, 0x1FD3 },
+    { 0x1FD6, 0x1FD7 },
+    { 0x1FE0, 0x1FE7 },
+    { 0x1FF2, 0x1FF4 },
+    { 0x1FF6, 0x1FF7 },
+    { 0x214E, 0x214E },
+    { 0x2170, 0x217F },
+    { 0x2184, 0x2184 },
+    { 0x24D0, 0x24E9 },
+    { 0x2C30, 0x2C5E },
+    { 0x2C61, 0x2C61 },
+    { 0x2C65, 0x2C66 },
+    { 0x2C68, 0x2C68 },
+    { 0x2C6A, 0x2C6A },
+    { 0x2C6C, 0x2C6C },
+    { 0x2C73, 0x2C73 },
+    { 0x2C76, 0x2C76 },
+    { 0x2C81, 0x2C81 },
+    { 0x2C83, 0x2C83 },
+    { 0x2C85, 0x2C85 },
+    { 0x2C87, 0x2C87 },
+    { 0x2C89, 0x2C89 },
+    { 0x2C8B, 0x2C8B },
+    { 0x2C8D, 0x2C8D },
+    { 0x2C8F, 0x2C8F },
+    { 0x2C91, 0x2C91 },
+    { 0x2C93, 0x2C93 },
+    { 0x2C95, 0x2C95 },
+    { 0x2C97, 0x2C97 },
+    { 0x2C99, 0x2C99 },
+    { 0x2C9B, 0x2C9B },
+    { 0x2C9D, 0x2C9D },
+    { 0x2C9F, 0x2C9F },
+    { 0x2CA1, 0x2CA1 },
+    { 0x2CA3, 0x2CA3 },
+    { 0x2CA5, 0x2CA5 },
+    { 0x2CA7, 0x2CA7 },
+    { 0x2CA9, 0x2CA9 },
+    { 0x2CAB, 0x2CAB },
+    { 0x2CAD, 0x2CAD },
+    { 0x2CAF, 0x2CAF },
+    { 0x2CB1, 0x2CB1 },
+    { 0x2CB3, 0x2CB3 },
+    { 0x2CB5, 0x2CB5 },
+    { 0x2CB7, 0x2CB7 },
+    { 0x2CB9, 0x2CB9 },
+    { 0x2CBB, 0x2CBB },
+    { 0x2CBD, 0x2CBD },
+    { 0x2CBF, 0x2CBF },
+    { 0x2CC1, 0x2CC1 },
+    { 0x2CC3, 0x2CC3 },
+    { 0x2CC5, 0x2CC5 },
+    { 0x2CC7, 0x2CC7 },
+    { 0x2CC9, 0x2CC9 },
+    { 0x2CCB, 0x2CCB },
+    { 0x2CCD, 0x2CCD },
+    { 0x2CCF, 0x2CCF },
+    { 0x2CD1, 0x2CD1 },
+    { 0x2CD3, 0x2CD3 },
+    { 0x2CD5, 0x2CD5 },
+    { 0x2CD7, 0x2CD7 },
+    { 0x2CD9, 0x2CD9 },
+    { 0x2CDB, 0x2CDB },
+    { 0x2CDD, 0x2CDD },
+    { 0x2CDF, 0x2CDF },
+    { 0x2CE1, 0x2CE1 },
+    { 0x2CE3, 0x2CE3 },
+    { 0x2CEC, 0x2CEC },
+    { 0x2CEE, 0x2CEE },
+    { 0x2D00, 0x2D25 },
+    { 0xA641, 0xA641 },
+    { 0xA643, 0xA643 },
+    { 0xA645, 0xA645 },
+    { 0xA647, 0xA647 },
+    { 0xA649, 0xA649 },
+    { 0xA64B, 0xA64B },
+    { 0xA64D, 0xA64D },
+    { 0xA64F, 0xA64F },
+    { 0xA651, 0xA651 },
+    { 0xA653, 0xA653 },
+    { 0xA655, 0xA655 },
+    { 0xA657, 0xA657 },
+    { 0xA659, 0xA659 },
+    { 0xA65B, 0xA65B },
+    { 0xA65D, 0xA65D },
+    { 0xA65F, 0xA65F },
+    { 0xA661, 0xA661 },
+    { 0xA663, 0xA663 },
+    { 0xA665, 0xA665 },
+    { 0xA667, 0xA667 },
+    { 0xA669, 0xA669 },
+    { 0xA66B, 0xA66B },
+    { 0xA66D, 0xA66D },
+    { 0xA681, 0xA681 },
+    { 0xA683, 0xA683 },
+    { 0xA685, 0xA685 },
+    { 0xA687, 0xA687 },
+    { 0xA689, 0xA689 },
+    { 0xA68B, 0xA68B },
+    { 0xA68D, 0xA68D },
+    { 0xA68F, 0xA68F },
+    { 0xA691, 0xA691 },
+    { 0xA693, 0xA693 },
+    { 0xA695, 0xA695 },
+    { 0xA697, 0xA697 },
+    { 0xA723, 0xA723 },
+    { 0xA725, 0xA725 },
+    { 0xA727, 0xA727 },
+    { 0xA729, 0xA729 },
+    { 0xA72B, 0xA72B },
+    { 0xA72D, 0xA72D },
+    { 0xA72F, 0xA72F },
+    { 0xA733, 0xA733 },
+    { 0xA735, 0xA735 },
+    { 0xA737, 0xA737 },
+    { 0xA739, 0xA739 },
+    { 0xA73B, 0xA73B },
+    { 0xA73D, 0xA73D },
+    { 0xA73F, 0xA73F },
+    { 0xA741, 0xA741 },
+    { 0xA743, 0xA743 },
+    { 0xA745, 0xA745 },
+    { 0xA747, 0xA747 },
+    { 0xA749, 0xA749 },
+    { 0xA74B, 0xA74B },
+    { 0xA74D, 0xA74D },
+    { 0xA74F, 0xA74F },
+    { 0xA751, 0xA751 },
+    { 0xA753, 0xA753 },
+    { 0xA755, 0xA755 },
+    { 0xA757, 0xA757 },
+    { 0xA759, 0xA759 },
+    { 0xA75B, 0xA75B },
+    { 0xA75D, 0xA75D },
+    { 0xA75F, 0xA75F },
+    { 0xA761, 0xA761 },
+    { 0xA763, 0xA763 },
+    { 0xA765, 0xA765 },
+    { 0xA767, 0xA767 },
+    { 0xA769, 0xA769 },
+    { 0xA76B, 0xA76B },
+    { 0xA76D, 0xA76D },
+    { 0xA76F, 0xA76F },
+    { 0xA77A, 0xA77A },
+    { 0xA77C, 0xA77C },
+    { 0xA77F, 0xA77F },
+    { 0xA781, 0xA781 },
+    { 0xA783, 0xA783 },
+    { 0xA785, 0xA785 },
+    { 0xA787, 0xA787 },
+    { 0xA78C, 0xA78C },
+    { 0xA791, 0xA791 },
+    { 0xA7A1, 0xA7A1 },
+    { 0xA7A3, 0xA7A3 },
+    { 0xA7A5, 0xA7A5 },
+    { 0xA7A7, 0xA7A7 },
+    { 0xA7A9, 0xA7A9 },
+    { 0xFB00, 0xFB06 },
+    { 0xFB13, 0xFB17 },
+    { 0xFF41, 0xFF5A },
+    { 0x10428, 0x1044F }
+
+#define PREDICATE(c) uc_is_property_changes_when_titlecased (c)
+#include "test-predicate-part2.h"
diff --git a/tests/unictype/test-pr_changes_when_uppercased.c b/tests/unictype/test-pr_changes_when_uppercased.c
new file mode 100644 (file)
index 0000000..df9307e
--- /dev/null
@@ -0,0 +1,604 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode character type functions.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "test-predicate-part1.h"
+
+    { 0x0061, 0x007A },
+    { 0x00B5, 0x00B5 },
+    { 0x00DF, 0x00F6 },
+    { 0x00F8, 0x00FF },
+    { 0x0101, 0x0101 },
+    { 0x0103, 0x0103 },
+    { 0x0105, 0x0105 },
+    { 0x0107, 0x0107 },
+    { 0x0109, 0x0109 },
+    { 0x010B, 0x010B },
+    { 0x010D, 0x010D },
+    { 0x010F, 0x010F },
+    { 0x0111, 0x0111 },
+    { 0x0113, 0x0113 },
+    { 0x0115, 0x0115 },
+    { 0x0117, 0x0117 },
+    { 0x0119, 0x0119 },
+    { 0x011B, 0x011B },
+    { 0x011D, 0x011D },
+    { 0x011F, 0x011F },
+    { 0x0121, 0x0121 },
+    { 0x0123, 0x0123 },
+    { 0x0125, 0x0125 },
+    { 0x0127, 0x0127 },
+    { 0x0129, 0x0129 },
+    { 0x012B, 0x012B },
+    { 0x012D, 0x012D },
+    { 0x012F, 0x012F },
+    { 0x0131, 0x0131 },
+    { 0x0133, 0x0133 },
+    { 0x0135, 0x0135 },
+    { 0x0137, 0x0137 },
+    { 0x013A, 0x013A },
+    { 0x013C, 0x013C },
+    { 0x013E, 0x013E },
+    { 0x0140, 0x0140 },
+    { 0x0142, 0x0142 },
+    { 0x0144, 0x0144 },
+    { 0x0146, 0x0146 },
+    { 0x0148, 0x0149 },
+    { 0x014B, 0x014B },
+    { 0x014D, 0x014D },
+    { 0x014F, 0x014F },
+    { 0x0151, 0x0151 },
+    { 0x0153, 0x0153 },
+    { 0x0155, 0x0155 },
+    { 0x0157, 0x0157 },
+    { 0x0159, 0x0159 },
+    { 0x015B, 0x015B },
+    { 0x015D, 0x015D },
+    { 0x015F, 0x015F },
+    { 0x0161, 0x0161 },
+    { 0x0163, 0x0163 },
+    { 0x0165, 0x0165 },
+    { 0x0167, 0x0167 },
+    { 0x0169, 0x0169 },
+    { 0x016B, 0x016B },
+    { 0x016D, 0x016D },
+    { 0x016F, 0x016F },
+    { 0x0171, 0x0171 },
+    { 0x0173, 0x0173 },
+    { 0x0175, 0x0175 },
+    { 0x0177, 0x0177 },
+    { 0x017A, 0x017A },
+    { 0x017C, 0x017C },
+    { 0x017E, 0x0180 },
+    { 0x0183, 0x0183 },
+    { 0x0185, 0x0185 },
+    { 0x0188, 0x0188 },
+    { 0x018C, 0x018C },
+    { 0x0192, 0x0192 },
+    { 0x0195, 0x0195 },
+    { 0x0199, 0x019A },
+    { 0x019E, 0x019E },
+    { 0x01A1, 0x01A1 },
+    { 0x01A3, 0x01A3 },
+    { 0x01A5, 0x01A5 },
+    { 0x01A8, 0x01A8 },
+    { 0x01AD, 0x01AD },
+    { 0x01B0, 0x01B0 },
+    { 0x01B4, 0x01B4 },
+    { 0x01B6, 0x01B6 },
+    { 0x01B9, 0x01B9 },
+    { 0x01BD, 0x01BD },
+    { 0x01BF, 0x01BF },
+    { 0x01C5, 0x01C6 },
+    { 0x01C8, 0x01C9 },
+    { 0x01CB, 0x01CC },
+    { 0x01CE, 0x01CE },
+    { 0x01D0, 0x01D0 },
+    { 0x01D2, 0x01D2 },
+    { 0x01D4, 0x01D4 },
+    { 0x01D6, 0x01D6 },
+    { 0x01D8, 0x01D8 },
+    { 0x01DA, 0x01DA },
+    { 0x01DC, 0x01DD },
+    { 0x01DF, 0x01DF },
+    { 0x01E1, 0x01E1 },
+    { 0x01E3, 0x01E3 },
+    { 0x01E5, 0x01E5 },
+    { 0x01E7, 0x01E7 },
+    { 0x01E9, 0x01E9 },
+    { 0x01EB, 0x01EB },
+    { 0x01ED, 0x01ED },
+    { 0x01EF, 0x01F0 },
+    { 0x01F2, 0x01F3 },
+    { 0x01F5, 0x01F5 },
+    { 0x01F9, 0x01F9 },
+    { 0x01FB, 0x01FB },
+    { 0x01FD, 0x01FD },
+    { 0x01FF, 0x01FF },
+    { 0x0201, 0x0201 },
+    { 0x0203, 0x0203 },
+    { 0x0205, 0x0205 },
+    { 0x0207, 0x0207 },
+    { 0x0209, 0x0209 },
+    { 0x020B, 0x020B },
+    { 0x020D, 0x020D },
+    { 0x020F, 0x020F },
+    { 0x0211, 0x0211 },
+    { 0x0213, 0x0213 },
+    { 0x0215, 0x0215 },
+    { 0x0217, 0x0217 },
+    { 0x0219, 0x0219 },
+    { 0x021B, 0x021B },
+    { 0x021D, 0x021D },
+    { 0x021F, 0x021F },
+    { 0x0223, 0x0223 },
+    { 0x0225, 0x0225 },
+    { 0x0227, 0x0227 },
+    { 0x0229, 0x0229 },
+    { 0x022B, 0x022B },
+    { 0x022D, 0x022D },
+    { 0x022F, 0x022F },
+    { 0x0231, 0x0231 },
+    { 0x0233, 0x0233 },
+    { 0x023C, 0x023C },
+    { 0x023F, 0x0240 },
+    { 0x0242, 0x0242 },
+    { 0x0247, 0x0247 },
+    { 0x0249, 0x0249 },
+    { 0x024B, 0x024B },
+    { 0x024D, 0x024D },
+    { 0x024F, 0x0254 },
+    { 0x0256, 0x0257 },
+    { 0x0259, 0x0259 },
+    { 0x025B, 0x025B },
+    { 0x0260, 0x0260 },
+    { 0x0263, 0x0263 },
+    { 0x0265, 0x0265 },
+    { 0x0268, 0x0269 },
+    { 0x026B, 0x026B },
+    { 0x026F, 0x026F },
+    { 0x0271, 0x0272 },
+    { 0x0275, 0x0275 },
+    { 0x027D, 0x027D },
+    { 0x0280, 0x0280 },
+    { 0x0283, 0x0283 },
+    { 0x0288, 0x028C },
+    { 0x0292, 0x0292 },
+    { 0x0345, 0x0345 },
+    { 0x0371, 0x0371 },
+    { 0x0373, 0x0373 },
+    { 0x0377, 0x0377 },
+    { 0x037B, 0x037D },
+    { 0x0390, 0x0390 },
+    { 0x03AC, 0x03CE },
+    { 0x03D0, 0x03D1 },
+    { 0x03D5, 0x03D7 },
+    { 0x03D9, 0x03D9 },
+    { 0x03DB, 0x03DB },
+    { 0x03DD, 0x03DD },
+    { 0x03DF, 0x03DF },
+    { 0x03E1, 0x03E1 },
+    { 0x03E3, 0x03E3 },
+    { 0x03E5, 0x03E5 },
+    { 0x03E7, 0x03E7 },
+    { 0x03E9, 0x03E9 },
+    { 0x03EB, 0x03EB },
+    { 0x03ED, 0x03ED },
+    { 0x03EF, 0x03F2 },
+    { 0x03F5, 0x03F5 },
+    { 0x03F8, 0x03F8 },
+    { 0x03FB, 0x03FB },
+    { 0x0430, 0x045F },
+    { 0x0461, 0x0461 },
+    { 0x0463, 0x0463 },
+    { 0x0465, 0x0465 },
+    { 0x0467, 0x0467 },
+    { 0x0469, 0x0469 },
+    { 0x046B, 0x046B },
+    { 0x046D, 0x046D },
+    { 0x046F, 0x046F },
+    { 0x0471, 0x0471 },
+    { 0x0473, 0x0473 },
+    { 0x0475, 0x0475 },
+    { 0x0477, 0x0477 },
+    { 0x0479, 0x0479 },
+    { 0x047B, 0x047B },
+    { 0x047D, 0x047D },
+    { 0x047F, 0x047F },
+    { 0x0481, 0x0481 },
+    { 0x048B, 0x048B },
+    { 0x048D, 0x048D },
+    { 0x048F, 0x048F },
+    { 0x0491, 0x0491 },
+    { 0x0493, 0x0493 },
+    { 0x0495, 0x0495 },
+    { 0x0497, 0x0497 },
+    { 0x0499, 0x0499 },
+    { 0x049B, 0x049B },
+    { 0x049D, 0x049D },
+    { 0x049F, 0x049F },
+    { 0x04A1, 0x04A1 },
+    { 0x04A3, 0x04A3 },
+    { 0x04A5, 0x04A5 },
+    { 0x04A7, 0x04A7 },
+    { 0x04A9, 0x04A9 },
+    { 0x04AB, 0x04AB },
+    { 0x04AD, 0x04AD },
+    { 0x04AF, 0x04AF },
+    { 0x04B1, 0x04B1 },
+    { 0x04B3, 0x04B3 },
+    { 0x04B5, 0x04B5 },
+    { 0x04B7, 0x04B7 },
+    { 0x04B9, 0x04B9 },
+    { 0x04BB, 0x04BB },
+    { 0x04BD, 0x04BD },
+    { 0x04BF, 0x04BF },
+    { 0x04C2, 0x04C2 },
+    { 0x04C4, 0x04C4 },
+    { 0x04C6, 0x04C6 },
+    { 0x04C8, 0x04C8 },
+    { 0x04CA, 0x04CA },
+    { 0x04CC, 0x04CC },
+    { 0x04CE, 0x04CF },
+    { 0x04D1, 0x04D1 },
+    { 0x04D3, 0x04D3 },
+    { 0x04D5, 0x04D5 },
+    { 0x04D7, 0x04D7 },
+    { 0x04D9, 0x04D9 },
+    { 0x04DB, 0x04DB },
+    { 0x04DD, 0x04DD },
+    { 0x04DF, 0x04DF },
+    { 0x04E1, 0x04E1 },
+    { 0x04E3, 0x04E3 },
+    { 0x04E5, 0x04E5 },
+    { 0x04E7, 0x04E7 },
+    { 0x04E9, 0x04E9 },
+    { 0x04EB, 0x04EB },
+    { 0x04ED, 0x04ED },
+    { 0x04EF, 0x04EF },
+    { 0x04F1, 0x04F1 },
+    { 0x04F3, 0x04F3 },
+    { 0x04F5, 0x04F5 },
+    { 0x04F7, 0x04F7 },
+    { 0x04F9, 0x04F9 },
+    { 0x04FB, 0x04FB },
+    { 0x04FD, 0x04FD },
+    { 0x04FF, 0x04FF },
+    { 0x0501, 0x0501 },
+    { 0x0503, 0x0503 },
+    { 0x0505, 0x0505 },
+    { 0x0507, 0x0507 },
+    { 0x0509, 0x0509 },
+    { 0x050B, 0x050B },
+    { 0x050D, 0x050D },
+    { 0x050F, 0x050F },
+    { 0x0511, 0x0511 },
+    { 0x0513, 0x0513 },
+    { 0x0515, 0x0515 },
+    { 0x0517, 0x0517 },
+    { 0x0519, 0x0519 },
+    { 0x051B, 0x051B },
+    { 0x051D, 0x051D },
+    { 0x051F, 0x051F },
+    { 0x0521, 0x0521 },
+    { 0x0523, 0x0523 },
+    { 0x0525, 0x0525 },
+    { 0x0527, 0x0527 },
+    { 0x0561, 0x0587 },
+    { 0x1D79, 0x1D79 },
+    { 0x1D7D, 0x1D7D },
+    { 0x1E01, 0x1E01 },
+    { 0x1E03, 0x1E03 },
+    { 0x1E05, 0x1E05 },
+    { 0x1E07, 0x1E07 },
+    { 0x1E09, 0x1E09 },
+    { 0x1E0B, 0x1E0B },
+    { 0x1E0D, 0x1E0D },
+    { 0x1E0F, 0x1E0F },
+    { 0x1E11, 0x1E11 },
+    { 0x1E13, 0x1E13 },
+    { 0x1E15, 0x1E15 },
+    { 0x1E17, 0x1E17 },
+    { 0x1E19, 0x1E19 },
+    { 0x1E1B, 0x1E1B },
+    { 0x1E1D, 0x1E1D },
+    { 0x1E1F, 0x1E1F },
+    { 0x1E21, 0x1E21 },
+    { 0x1E23, 0x1E23 },
+    { 0x1E25, 0x1E25 },
+    { 0x1E27, 0x1E27 },
+    { 0x1E29, 0x1E29 },
+    { 0x1E2B, 0x1E2B },
+    { 0x1E2D, 0x1E2D },
+    { 0x1E2F, 0x1E2F },
+    { 0x1E31, 0x1E31 },
+    { 0x1E33, 0x1E33 },
+    { 0x1E35, 0x1E35 },
+    { 0x1E37, 0x1E37 },
+    { 0x1E39, 0x1E39 },
+    { 0x1E3B, 0x1E3B },
+    { 0x1E3D, 0x1E3D },
+    { 0x1E3F, 0x1E3F },
+    { 0x1E41, 0x1E41 },
+    { 0x1E43, 0x1E43 },
+    { 0x1E45, 0x1E45 },
+    { 0x1E47, 0x1E47 },
+    { 0x1E49, 0x1E49 },
+    { 0x1E4B, 0x1E4B },
+    { 0x1E4D, 0x1E4D },
+    { 0x1E4F, 0x1E4F },
+    { 0x1E51, 0x1E51 },
+    { 0x1E53, 0x1E53 },
+    { 0x1E55, 0x1E55 },
+    { 0x1E57, 0x1E57 },
+    { 0x1E59, 0x1E59 },
+    { 0x1E5B, 0x1E5B },
+    { 0x1E5D, 0x1E5D },
+    { 0x1E5F, 0x1E5F },
+    { 0x1E61, 0x1E61 },
+    { 0x1E63, 0x1E63 },
+    { 0x1E65, 0x1E65 },
+    { 0x1E67, 0x1E67 },
+    { 0x1E69, 0x1E69 },
+    { 0x1E6B, 0x1E6B },
+    { 0x1E6D, 0x1E6D },
+    { 0x1E6F, 0x1E6F },
+    { 0x1E71, 0x1E71 },
+    { 0x1E73, 0x1E73 },
+    { 0x1E75, 0x1E75 },
+    { 0x1E77, 0x1E77 },
+    { 0x1E79, 0x1E79 },
+    { 0x1E7B, 0x1E7B },
+    { 0x1E7D, 0x1E7D },
+    { 0x1E7F, 0x1E7F },
+    { 0x1E81, 0x1E81 },
+    { 0x1E83, 0x1E83 },
+    { 0x1E85, 0x1E85 },
+    { 0x1E87, 0x1E87 },
+    { 0x1E89, 0x1E89 },
+    { 0x1E8B, 0x1E8B },
+    { 0x1E8D, 0x1E8D },
+    { 0x1E8F, 0x1E8F },
+    { 0x1E91, 0x1E91 },
+    { 0x1E93, 0x1E93 },
+    { 0x1E95, 0x1E9B },
+    { 0x1EA1, 0x1EA1 },
+    { 0x1EA3, 0x1EA3 },
+    { 0x1EA5, 0x1EA5 },
+    { 0x1EA7, 0x1EA7 },
+    { 0x1EA9, 0x1EA9 },
+    { 0x1EAB, 0x1EAB },
+    { 0x1EAD, 0x1EAD },
+    { 0x1EAF, 0x1EAF },
+    { 0x1EB1, 0x1EB1 },
+    { 0x1EB3, 0x1EB3 },
+    { 0x1EB5, 0x1EB5 },
+    { 0x1EB7, 0x1EB7 },
+    { 0x1EB9, 0x1EB9 },
+    { 0x1EBB, 0x1EBB },
+    { 0x1EBD, 0x1EBD },
+    { 0x1EBF, 0x1EBF },
+    { 0x1EC1, 0x1EC1 },
+    { 0x1EC3, 0x1EC3 },
+    { 0x1EC5, 0x1EC5 },
+    { 0x1EC7, 0x1EC7 },
+    { 0x1EC9, 0x1EC9 },
+    { 0x1ECB, 0x1ECB },
+    { 0x1ECD, 0x1ECD },
+    { 0x1ECF, 0x1ECF },
+    { 0x1ED1, 0x1ED1 },
+    { 0x1ED3, 0x1ED3 },
+    { 0x1ED5, 0x1ED5 },
+    { 0x1ED7, 0x1ED7 },
+    { 0x1ED9, 0x1ED9 },
+    { 0x1EDB, 0x1EDB },
+    { 0x1EDD, 0x1EDD },
+    { 0x1EDF, 0x1EDF },
+    { 0x1EE1, 0x1EE1 },
+    { 0x1EE3, 0x1EE3 },
+    { 0x1EE5, 0x1EE5 },
+    { 0x1EE7, 0x1EE7 },
+    { 0x1EE9, 0x1EE9 },
+    { 0x1EEB, 0x1EEB },
+    { 0x1EED, 0x1EED },
+    { 0x1EEF, 0x1EEF },
+    { 0x1EF1, 0x1EF1 },
+    { 0x1EF3, 0x1EF3 },
+    { 0x1EF5, 0x1EF5 },
+    { 0x1EF7, 0x1EF7 },
+    { 0x1EF9, 0x1EF9 },
+    { 0x1EFB, 0x1EFB },
+    { 0x1EFD, 0x1EFD },
+    { 0x1EFF, 0x1F07 },
+    { 0x1F10, 0x1F15 },
+    { 0x1F20, 0x1F27 },
+    { 0x1F30, 0x1F37 },
+    { 0x1F40, 0x1F45 },
+    { 0x1F50, 0x1F57 },
+    { 0x1F60, 0x1F67 },
+    { 0x1F70, 0x1F7D },
+    { 0x1F80, 0x1FB4 },
+    { 0x1FB6, 0x1FB7 },
+    { 0x1FBC, 0x1FBC },
+    { 0x1FBE, 0x1FBE },
+    { 0x1FC2, 0x1FC4 },
+    { 0x1FC6, 0x1FC7 },
+    { 0x1FCC, 0x1FCC },
+    { 0x1FD0, 0x1FD3 },
+    { 0x1FD6, 0x1FD7 },
+    { 0x1FE0, 0x1FE7 },
+    { 0x1FF2, 0x1FF4 },
+    { 0x1FF6, 0x1FF7 },
+    { 0x1FFC, 0x1FFC },
+    { 0x214E, 0x214E },
+    { 0x2170, 0x217F },
+    { 0x2184, 0x2184 },
+    { 0x24D0, 0x24E9 },
+    { 0x2C30, 0x2C5E },
+    { 0x2C61, 0x2C61 },
+    { 0x2C65, 0x2C66 },
+    { 0x2C68, 0x2C68 },
+    { 0x2C6A, 0x2C6A },
+    { 0x2C6C, 0x2C6C },
+    { 0x2C73, 0x2C73 },
+    { 0x2C76, 0x2C76 },
+    { 0x2C81, 0x2C81 },
+    { 0x2C83, 0x2C83 },
+    { 0x2C85, 0x2C85 },
+    { 0x2C87, 0x2C87 },
+    { 0x2C89, 0x2C89 },
+    { 0x2C8B, 0x2C8B },
+    { 0x2C8D, 0x2C8D },
+    { 0x2C8F, 0x2C8F },
+    { 0x2C91, 0x2C91 },
+    { 0x2C93, 0x2C93 },
+    { 0x2C95, 0x2C95 },
+    { 0x2C97, 0x2C97 },
+    { 0x2C99, 0x2C99 },
+    { 0x2C9B, 0x2C9B },
+    { 0x2C9D, 0x2C9D },
+    { 0x2C9F, 0x2C9F },
+    { 0x2CA1, 0x2CA1 },
+    { 0x2CA3, 0x2CA3 },
+    { 0x2CA5, 0x2CA5 },
+    { 0x2CA7, 0x2CA7 },
+    { 0x2CA9, 0x2CA9 },
+    { 0x2CAB, 0x2CAB },
+    { 0x2CAD, 0x2CAD },
+    { 0x2CAF, 0x2CAF },
+    { 0x2CB1, 0x2CB1 },
+    { 0x2CB3, 0x2CB3 },
+    { 0x2CB5, 0x2CB5 },
+    { 0x2CB7, 0x2CB7 },
+    { 0x2CB9, 0x2CB9 },
+    { 0x2CBB, 0x2CBB },
+    { 0x2CBD, 0x2CBD },
+    { 0x2CBF, 0x2CBF },
+    { 0x2CC1, 0x2CC1 },
+    { 0x2CC3, 0x2CC3 },
+    { 0x2CC5, 0x2CC5 },
+    { 0x2CC7, 0x2CC7 },
+    { 0x2CC9, 0x2CC9 },
+    { 0x2CCB, 0x2CCB },
+    { 0x2CCD, 0x2CCD },
+    { 0x2CCF, 0x2CCF },
+    { 0x2CD1, 0x2CD1 },
+    { 0x2CD3, 0x2CD3 },
+    { 0x2CD5, 0x2CD5 },
+    { 0x2CD7, 0x2CD7 },
+    { 0x2CD9, 0x2CD9 },
+    { 0x2CDB, 0x2CDB },
+    { 0x2CDD, 0x2CDD },
+    { 0x2CDF, 0x2CDF },
+    { 0x2CE1, 0x2CE1 },
+    { 0x2CE3, 0x2CE3 },
+    { 0x2CEC, 0x2CEC },
+    { 0x2CEE, 0x2CEE },
+    { 0x2D00, 0x2D25 },
+    { 0xA641, 0xA641 },
+    { 0xA643, 0xA643 },
+    { 0xA645, 0xA645 },
+    { 0xA647, 0xA647 },
+    { 0xA649, 0xA649 },
+    { 0xA64B, 0xA64B },
+    { 0xA64D, 0xA64D },
+    { 0xA64F, 0xA64F },
+    { 0xA651, 0xA651 },
+    { 0xA653, 0xA653 },
+    { 0xA655, 0xA655 },
+    { 0xA657, 0xA657 },
+    { 0xA659, 0xA659 },
+    { 0xA65B, 0xA65B },
+    { 0xA65D, 0xA65D },
+    { 0xA65F, 0xA65F },
+    { 0xA661, 0xA661 },
+    { 0xA663, 0xA663 },
+    { 0xA665, 0xA665 },
+    { 0xA667, 0xA667 },
+    { 0xA669, 0xA669 },
+    { 0xA66B, 0xA66B },
+    { 0xA66D, 0xA66D },
+    { 0xA681, 0xA681 },
+    { 0xA683, 0xA683 },
+    { 0xA685, 0xA685 },
+    { 0xA687, 0xA687 },
+    { 0xA689, 0xA689 },
+    { 0xA68B, 0xA68B },
+    { 0xA68D, 0xA68D },
+    { 0xA68F, 0xA68F },
+    { 0xA691, 0xA691 },
+    { 0xA693, 0xA693 },
+    { 0xA695, 0xA695 },
+    { 0xA697, 0xA697 },
+    { 0xA723, 0xA723 },
+    { 0xA725, 0xA725 },
+    { 0xA727, 0xA727 },
+    { 0xA729, 0xA729 },
+    { 0xA72B, 0xA72B },
+    { 0xA72D, 0xA72D },
+    { 0xA72F, 0xA72F },
+    { 0xA733, 0xA733 },
+    { 0xA735, 0xA735 },
+    { 0xA737, 0xA737 },
+    { 0xA739, 0xA739 },
+    { 0xA73B, 0xA73B },
+    { 0xA73D, 0xA73D },
+    { 0xA73F, 0xA73F },
+    { 0xA741, 0xA741 },
+    { 0xA743, 0xA743 },
+    { 0xA745, 0xA745 },
+    { 0xA747, 0xA747 },
+    { 0xA749, 0xA749 },
+    { 0xA74B, 0xA74B },
+    { 0xA74D, 0xA74D },
+    { 0xA74F, 0xA74F },
+    { 0xA751, 0xA751 },
+    { 0xA753, 0xA753 },
+    { 0xA755, 0xA755 },
+    { 0xA757, 0xA757 },
+    { 0xA759, 0xA759 },
+    { 0xA75B, 0xA75B },
+    { 0xA75D, 0xA75D },
+    { 0xA75F, 0xA75F },
+    { 0xA761, 0xA761 },
+    { 0xA763, 0xA763 },
+    { 0xA765, 0xA765 },
+    { 0xA767, 0xA767 },
+    { 0xA769, 0xA769 },
+    { 0xA76B, 0xA76B },
+    { 0xA76D, 0xA76D },
+    { 0xA76F, 0xA76F },
+    { 0xA77A, 0xA77A },
+    { 0xA77C, 0xA77C },
+    { 0xA77F, 0xA77F },
+    { 0xA781, 0xA781 },
+    { 0xA783, 0xA783 },
+    { 0xA785, 0xA785 },
+    { 0xA787, 0xA787 },
+    { 0xA78C, 0xA78C },
+    { 0xA791, 0xA791 },
+    { 0xA7A1, 0xA7A1 },
+    { 0xA7A3, 0xA7A3 },
+    { 0xA7A5, 0xA7A5 },
+    { 0xA7A7, 0xA7A7 },
+    { 0xA7A9, 0xA7A9 },
+    { 0xFB00, 0xFB06 },
+    { 0xFB13, 0xFB17 },
+    { 0xFF41, 0xFF5A },
+    { 0x10428, 0x1044F }
+
+#define PREDICATE(c) uc_is_property_changes_when_uppercased (c)
+#include "test-predicate-part2.h"
index 2a8377a..eb3726c 100644 (file)
     { 0x05C4, 0x05C5 },
     { 0x05C7, 0x05C7 },
     { 0x0610, 0x061A },
-    { 0x064B, 0x065E },
+    { 0x064B, 0x065F },
     { 0x0670, 0x0670 },
     { 0x06D6, 0x06DC },
-    { 0x06DE, 0x06E4 },
+    { 0x06DF, 0x06E4 },
     { 0x06E7, 0x06E8 },
     { 0x06EA, 0x06ED },
     { 0x0711, 0x0711 },
     { 0x0730, 0x074A },
     { 0x07A6, 0x07B0 },
     { 0x07EB, 0x07F3 },
-    { 0x0901, 0x0903 },
-    { 0x093C, 0x093C },
-    { 0x093E, 0x094D },
-    { 0x0951, 0x0954 },
+    { 0x0816, 0x0819 },
+    { 0x081B, 0x0823 },
+    { 0x0825, 0x0827 },
+    { 0x0829, 0x082D },
+    { 0x0859, 0x085B },
+    { 0x0900, 0x0903 },
+    { 0x093A, 0x093C },
+    { 0x093E, 0x094F },
+    { 0x0951, 0x0957 },
     { 0x0962, 0x0963 },
     { 0x0981, 0x0983 },
     { 0x09BC, 0x09BC },
     { 0x0F3E, 0x0F3F },
     { 0x0F71, 0x0F84 },
     { 0x0F86, 0x0F87 },
-    { 0x0F90, 0x0F97 },
+    { 0x0F8D, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
     { 0x102B, 0x103E },
     { 0x1071, 0x1074 },
     { 0x1082, 0x108D },
     { 0x108F, 0x108F },
-    { 0x135F, 0x135F },
+    { 0x109A, 0x109D },
+    { 0x135D, 0x135F },
     { 0x1712, 0x1714 },
     { 0x1732, 0x1734 },
     { 0x1752, 0x1753 },
     { 0x19B0, 0x19C0 },
     { 0x19C8, 0x19C9 },
     { 0x1A17, 0x1A1B },
+    { 0x1A55, 0x1A5E },
+    { 0x1A60, 0x1A7C },
+    { 0x1A7F, 0x1A7F },
     { 0x1B00, 0x1B04 },
     { 0x1B34, 0x1B44 },
     { 0x1B6B, 0x1B73 },
     { 0x1B80, 0x1B82 },
     { 0x1BA1, 0x1BAA },
+    { 0x1BE6, 0x1BF3 },
     { 0x1C24, 0x1C37 },
+    { 0x1CD0, 0x1CD2 },
+    { 0x1CD4, 0x1CE8 },
+    { 0x1CED, 0x1CED },
+    { 0x1CF2, 0x1CF2 },
     { 0x1DC0, 0x1DE6 },
-    { 0x1DFE, 0x1DFF },
+    { 0x1DFC, 0x1DFF },
     { 0x20D0, 0x20F0 },
+    { 0x2CEF, 0x2CF1 },
+    { 0x2D7F, 0x2D7F },
     { 0x2DE0, 0x2DFF },
     { 0x302A, 0x302F },
     { 0x3099, 0x309A },
     { 0xA66F, 0xA672 },
     { 0xA67C, 0xA67D },
+    { 0xA6F0, 0xA6F1 },
     { 0xA802, 0xA802 },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA823, 0xA827 },
     { 0xA880, 0xA881 },
     { 0xA8B4, 0xA8C4 },
+    { 0xA8E0, 0xA8F1 },
     { 0xA926, 0xA92D },
     { 0xA947, 0xA953 },
+    { 0xA980, 0xA983 },
+    { 0xA9B3, 0xA9C0 },
     { 0xAA29, 0xAA36 },
     { 0xAA43, 0xAA43 },
     { 0xAA4C, 0xAA4D },
+    { 0xAA7B, 0xAA7B },
+    { 0xAAB0, 0xAAB0 },
+    { 0xAAB2, 0xAAB4 },
+    { 0xAAB7, 0xAAB8 },
+    { 0xAABE, 0xAABF },
+    { 0xAAC1, 0xAAC1 },
+    { 0xABE3, 0xABEA },
+    { 0xABEC, 0xABED },
     { 0xFB1E, 0xFB1E },
     { 0xFE00, 0xFE0F },
     { 0xFE20, 0xFE26 },
     { 0x10A0C, 0x10A0F },
     { 0x10A38, 0x10A3A },
     { 0x10A3F, 0x10A3F },
+    { 0x11000, 0x11002 },
+    { 0x11038, 0x11046 },
+    { 0x11080, 0x11082 },
+    { 0x110B0, 0x110BA },
     { 0x1D165, 0x1D169 },
     { 0x1D16D, 0x1D172 },
     { 0x1D17B, 0x1D182 },
index c7aff1e..d685bcc 100644 (file)
     { 0x2116, 0x2116 },
     { 0x2120, 0x2122 },
     { 0x213B, 0x213B },
-    { 0x2153, 0x215F },
+    { 0x2150, 0x215F },
     { 0x2161, 0x2163 },
     { 0x2165, 0x2168 },
     { 0x216A, 0x216B },
     { 0x2171, 0x2173 },
     { 0x2175, 0x2178 },
     { 0x217A, 0x217B },
+    { 0x2189, 0x2189 },
     { 0x219A, 0x219B },
     { 0x21AE, 0x21AE },
     { 0x21CD, 0x21CF },
     { 0xFE7D, 0xFE7D },
     { 0xFE7F, 0xFE7F },
     { 0xFEF5, 0xFEFC },
+    { 0x1109A, 0x1109A },
+    { 0x1109C, 0x1109C },
+    { 0x110AB, 0x110AB },
     { 0x1D15E, 0x1D164 },
-    { 0x1D1BB, 0x1D1C0 }
+    { 0x1D1BB, 0x1D1C0 },
+    { 0x1F100, 0x1F10A },
+    { 0x1F110, 0x1F12A },
+    { 0x1F12D, 0x1F12E },
+    { 0x1F14A, 0x1F14F },
+    { 0x1F190, 0x1F190 },
+    { 0x1F200, 0x1F201 },
+    { 0x1F240, 0x1F248 }
 
 #define PREDICATE(c) uc_is_property_composite (c)
 #include "test-predicate-part2.h"
index 79a3706..098a0d5 100644 (file)
     { 0x00A2, 0x00A5 },
     { 0x060B, 0x060B },
     { 0x09F2, 0x09F3 },
+    { 0x09FB, 0x09FB },
     { 0x0AF1, 0x0AF1 },
     { 0x0BF9, 0x0BF9 },
     { 0x0E3F, 0x0E3F },
     { 0x17DB, 0x17DB },
-    { 0x20A0, 0x20B5 },
+    { 0x20A0, 0x20B9 },
+    { 0xA838, 0xA838 },
     { 0xFDFC, 0xFDFC },
     { 0xFE69, 0xFE69 },
     { 0xFF04, 0xFF04 },
index 8089772..676d948 100644 (file)
@@ -20,6 +20,7 @@
     { 0x002D, 0x002D },
     { 0x058A, 0x058A },
     { 0x05BE, 0x05BE },
+    { 0x1400, 0x1400 },
     { 0x1806, 0x1806 },
     { 0x2010, 0x2015 },
     { 0x2053, 0x2053 },
index 8d6c284..e349594 100644 (file)
@@ -39,6 +39,8 @@
     { 0x1810, 0x1819 },
     { 0x1946, 0x194F },
     { 0x19D0, 0x19D9 },
+    { 0x1A80, 0x1A89 },
+    { 0x1A90, 0x1A99 },
     { 0x1B50, 0x1B59 },
     { 0x1BB0, 0x1BB9 },
     { 0x1C40, 0x1C49 },
     { 0xA620, 0xA629 },
     { 0xA8D0, 0xA8D9 },
     { 0xA900, 0xA909 },
+    { 0xA9D0, 0xA9D9 },
     { 0xAA50, 0xAA59 },
+    { 0xABF0, 0xABF9 },
     { 0xFF10, 0xFF19 },
     { 0x104A0, 0x104A9 },
+    { 0x11066, 0x1106F },
     { 0x1D7CE, 0x1D7FF }
 
 #define PREDICATE(c) uc_is_property_decimal_digit (c)
index f8af73d..1881d7e 100644 (file)
 
 #include "test-predicate-part1.h"
 
-    { 0x0340, 0x0341 },
-    { 0x17A3, 0x17A3 },
-    { 0x17D3, 0x17D3 },
+    { 0x0149, 0x0149 },
+    { 0x0673, 0x0673 },
+    { 0x0F77, 0x0F77 },
+    { 0x0F79, 0x0F79 },
+    { 0x17A3, 0x17A4 },
     { 0x206A, 0x206F },
+    { 0x2329, 0x232A },
     { 0xE0001, 0xE0001 },
     { 0xE0020, 0xE007F }
 
index ae21cd4..6de256f 100644 (file)
@@ -44,6 +44,7 @@
     { 0x0730, 0x074A },
     { 0x07A6, 0x07B0 },
     { 0x07EB, 0x07F5 },
+    { 0x0818, 0x0819 },
     { 0x093C, 0x093C },
     { 0x094D, 0x094D },
     { 0x0951, 0x0954 },
     { 0x1039, 0x103A },
     { 0x1087, 0x108D },
     { 0x108F, 0x108F },
+    { 0x109A, 0x109B },
     { 0x17C9, 0x17D3 },
     { 0x17DD, 0x17DD },
     { 0x1939, 0x193B },
+    { 0x1A75, 0x1A7C },
+    { 0x1A7F, 0x1A7F },
     { 0x1B34, 0x1B34 },
     { 0x1B44, 0x1B44 },
     { 0x1B6B, 0x1B73 },
     { 0x1BAA, 0x1BAA },
     { 0x1C36, 0x1C37 },
     { 0x1C78, 0x1C7D },
+    { 0x1CD0, 0x1CE8 },
+    { 0x1CED, 0x1CED },
     { 0x1D2C, 0x1D6A },
     { 0x1DC4, 0x1DCF },
-    { 0x1DFE, 0x1DFF },
+    { 0x1DFD, 0x1DFF },
     { 0x1FBD, 0x1FBD },
     { 0x1FBF, 0x1FC1 },
     { 0x1FCD, 0x1FCF },
     { 0x1FDD, 0x1FDF },
     { 0x1FED, 0x1FEF },
     { 0x1FFD, 0x1FFE },
+    { 0x2CEF, 0x2CF1 },
     { 0x2E2F, 0x2E2F },
     { 0x302A, 0x302F },
     { 0x3099, 0x309C },
     { 0xA66F, 0xA66F },
     { 0xA67C, 0xA67D },
     { 0xA67F, 0xA67F },
+    { 0xA6F0, 0xA6F1 },
     { 0xA717, 0xA721 },
     { 0xA788, 0xA788 },
     { 0xA8C4, 0xA8C4 },
+    { 0xA8E0, 0xA8F1 },
     { 0xA92B, 0xA92E },
     { 0xA953, 0xA953 },
+    { 0xA9B3, 0xA9B3 },
+    { 0xA9C0, 0xA9C0 },
+    { 0xAA7B, 0xAA7B },
+    { 0xAABF, 0xAAC2 },
+    { 0xABEC, 0xABED },
     { 0xFB1E, 0xFB1E },
     { 0xFE20, 0xFE26 },
     { 0xFF3E, 0xFF3E },
     { 0xFF70, 0xFF70 },
     { 0xFF9E, 0xFF9F },
     { 0xFFE3, 0xFFE3 },
+    { 0x110B9, 0x110BA },
     { 0x1D167, 0x1D169 },
     { 0x1D16D, 0x1D172 },
     { 0x1D17B, 0x1D182 },
index acca2ed..b8ab811 100644 (file)
@@ -24,6 +24,7 @@
     { 0x0E46, 0x0E46 },
     { 0x0EC6, 0x0EC6 },
     { 0x1843, 0x1843 },
+    { 0x1AA7, 0x1AA7 },
     { 0x1C36, 0x1C36 },
     { 0x1C7B, 0x1C7B },
     { 0x3005, 0x3005 },
@@ -32,6 +33,9 @@
     { 0x30FC, 0x30FE },
     { 0xA015, 0xA015 },
     { 0xA60C, 0xA60C },
+    { 0xA9CF, 0xA9CF },
+    { 0xAA70, 0xAA70 },
+    { 0xAADD, 0xAADD },
     { 0xFF70, 0xFF70 }
 
 #define PREDICATE(c) uc_is_property_extender (c)
index 258996b..363e2db 100644 (file)
@@ -18,7 +18,6 @@
 #include "test-predicate-part1.h"
 
     { 0x00AD, 0x00AD },
-    { 0x070F, 0x070F },
     { 0x200B, 0x200B },
     { 0x2060, 0x2064 },
     { 0x206A, 0x206F },
index 2fe8bf2..2787a22 100644 (file)
@@ -26,7 +26,7 @@
     { 0x038C, 0x038C },
     { 0x038E, 0x03A1 },
     { 0x03A3, 0x0482 },
-    { 0x048A, 0x0523 },
+    { 0x048A, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x055F },
     { 0x0561, 0x0587 },
     { 0x05F0, 0x05F4 },
     { 0x0606, 0x060F },
     { 0x061B, 0x061B },
-    { 0x061E, 0x061F },
-    { 0x0621, 0x064A },
+    { 0x061E, 0x064A },
     { 0x0660, 0x066F },
     { 0x0671, 0x06D5 },
+    { 0x06DE, 0x06DE },
     { 0x06E5, 0x06E6 },
     { 0x06E9, 0x06E9 },
     { 0x06EE, 0x070D },
     { 0x07B1, 0x07B1 },
     { 0x07C0, 0x07EA },
     { 0x07F4, 0x07FA },
+    { 0x0800, 0x0815 },
+    { 0x081A, 0x081A },
+    { 0x0824, 0x0824 },
+    { 0x0828, 0x0828 },
+    { 0x0830, 0x083E },
+    { 0x0840, 0x0858 },
+    { 0x085E, 0x085E },
     { 0x0903, 0x0939 },
+    { 0x093B, 0x093B },
     { 0x093D, 0x0940 },
     { 0x0949, 0x094C },
-    { 0x0950, 0x0950 },
+    { 0x094E, 0x0950 },
     { 0x0958, 0x0961 },
-    { 0x0964, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x0964, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0982, 0x0983 },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
@@ -73,7 +81,7 @@
     { 0x09CE, 0x09CE },
     { 0x09DC, 0x09DD },
     { 0x09DF, 0x09E1 },
-    { 0x09E6, 0x09FA },
+    { 0x09E6, 0x09FB },
     { 0x0A03, 0x0A03 },
     { 0x0A05, 0x0A0A },
     { 0x0A0F, 0x0A10 },
     { 0x0B4B, 0x0B4C },
     { 0x0B5C, 0x0B5D },
     { 0x0B5F, 0x0B61 },
-    { 0x0B66, 0x0B71 },
+    { 0x0B66, 0x0B77 },
     { 0x0B83, 0x0B83 },
     { 0x0B85, 0x0B8A },
     { 0x0B8E, 0x0B90 },
     { 0x0D02, 0x0D03 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D3D },
     { 0x0D3F, 0x0D40 },
     { 0x0D46, 0x0D48 },
     { 0x0D4A, 0x0D4C },
+    { 0x0D4E, 0x0D4E },
     { 0x0D60, 0x0D61 },
     { 0x0D66, 0x0D75 },
     { 0x0D79, 0x0D7F },
     { 0x0F49, 0x0F6C },
     { 0x0F7F, 0x0F7F },
     { 0x0F85, 0x0F85 },
-    { 0x0F88, 0x0F8B },
+    { 0x0F88, 0x0F8C },
     { 0x0FBE, 0x0FC5 },
     { 0x0FC7, 0x0FCC },
-    { 0x0FCE, 0x0FD4 },
+    { 0x0FCE, 0x0FDA },
     { 0x1000, 0x102C },
     { 0x1031, 0x1031 },
     { 0x1038, 0x1038 },
     { 0x1075, 0x1081 },
     { 0x1083, 0x1084 },
     { 0x1087, 0x108C },
-    { 0x108E, 0x1099 },
+    { 0x108E, 0x109C },
     { 0x109E, 0x10C5 },
     { 0x10D0, 0x10FC },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x1360, 0x137C },
     { 0x1380, 0x1399 },
     { 0x13A0, 0x13F4 },
-    { 0x1401, 0x1676 },
-    { 0x1680, 0x169C },
+    { 0x1400, 0x169C },
     { 0x16A0, 0x16F0 },
     { 0x1700, 0x170C },
     { 0x170E, 0x1711 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
     { 0x18AA, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1923, 0x1926 },
     { 0x1929, 0x192B },
     { 0x1940, 0x1940 },
     { 0x1944, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19B0, 0x19C9 },
-    { 0x19D0, 0x19D9 },
+    { 0x19D0, 0x19DA },
     { 0x19DE, 0x1A16 },
     { 0x1A19, 0x1A1B },
-    { 0x1A1E, 0x1A1F },
+    { 0x1A1E, 0x1A55 },
+    { 0x1A57, 0x1A57 },
+    { 0x1A61, 0x1A61 },
+    { 0x1A63, 0x1A64 },
+    { 0x1A6D, 0x1A72 },
+    { 0x1A80, 0x1A89 },
+    { 0x1A90, 0x1A99 },
+    { 0x1AA0, 0x1AAD },
     { 0x1B04, 0x1B33 },
     { 0x1B35, 0x1B35 },
     { 0x1B3B, 0x1B3B },
     { 0x1BA6, 0x1BA7 },
     { 0x1BAA, 0x1BAA },
     { 0x1BAE, 0x1BB9 },
-    { 0x1C00, 0x1C2B },
+    { 0x1BC0, 0x1BE5 },
+    { 0x1BE7, 0x1BE7 },
+    { 0x1BEA, 0x1BEC },
+    { 0x1BEE, 0x1BEE },
+    { 0x1BF2, 0x1BF3 },
+    { 0x1BFC, 0x1C2B },
     { 0x1C34, 0x1C35 },
     { 0x1C3B, 0x1C49 },
     { 0x1C4D, 0x1C7F },
+    { 0x1CD3, 0x1CD3 },
+    { 0x1CE1, 0x1CE1 },
+    { 0x1CE9, 0x1CEC },
+    { 0x1CEE, 0x1CF2 },
     { 0x1D00, 0x1DBF },
     { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x202F, 0x205F },
     { 0x2070, 0x2071 },
     { 0x2074, 0x208E },
-    { 0x2090, 0x2094 },
-    { 0x20A0, 0x20B5 },
-    { 0x2100, 0x214F },
-    { 0x2153, 0x2188 },
-    { 0x2190, 0x23E7 },
+    { 0x2090, 0x209C },
+    { 0x20A0, 0x20B9 },
+    { 0x2100, 0x2189 },
+    { 0x2190, 0x23F3 },
     { 0x2400, 0x2426 },
     { 0x2440, 0x244A },
-    { 0x2460, 0x269D },
-    { 0x26A0, 0x26BC },
-    { 0x26C0, 0x26C3 },
-    { 0x2701, 0x2704 },
-    { 0x2706, 0x2709 },
-    { 0x270C, 0x2727 },
-    { 0x2729, 0x274B },
-    { 0x274D, 0x274D },
-    { 0x274F, 0x2752 },
-    { 0x2756, 0x2756 },
-    { 0x2758, 0x275E },
-    { 0x2761, 0x2794 },
-    { 0x2798, 0x27AF },
-    { 0x27B1, 0x27BE },
-    { 0x27C0, 0x27CA },
+    { 0x2460, 0x26FF },
+    { 0x2701, 0x27CA },
     { 0x27CC, 0x27CC },
-    { 0x27D0, 0x2B4C },
-    { 0x2B50, 0x2B54 },
+    { 0x27CE, 0x2B4C },
+    { 0x2B50, 0x2B59 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CEA },
+    { 0x2C60, 0x2CEE },
     { 0x2CF9, 0x2D25 },
     { 0x2D30, 0x2D65 },
-    { 0x2D6F, 0x2D6F },
+    { 0x2D6F, 0x2D70 },
     { 0x2D80, 0x2D96 },
     { 0x2DA0, 0x2DA6 },
     { 0x2DA8, 0x2DAE },
     { 0x2DC8, 0x2DCE },
     { 0x2DD0, 0x2DD6 },
     { 0x2DD8, 0x2DDE },
-    { 0x2E00, 0x2E30 },
+    { 0x2E00, 0x2E31 },
     { 0x2E80, 0x2E99 },
     { 0x2E9B, 0x2EF3 },
     { 0x2F00, 0x2FD5 },
     { 0x309B, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x3190, 0x31B7 },
+    { 0x3190, 0x31BA },
     { 0x31C0, 0x31E3 },
     { 0x31F0, 0x321E },
-    { 0x3220, 0x3243 },
-    { 0x3250, 0x32FE },
+    { 0x3220, 0x32FE },
     { 0x3300, 0x4DB5 },
-    { 0x4DC0, 0x9FC3 },
+    { 0x4DC0, 0x9FCB },
     { 0xA000, 0xA48C },
     { 0xA490, 0xA4C6 },
-    { 0xA500, 0xA62B },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA66E },
+    { 0xA4D0, 0xA62B },
+    { 0xA640, 0xA66E },
     { 0xA673, 0xA673 },
     { 0xA67E, 0xA697 },
-    { 0xA700, 0xA78C },
-    { 0xA7FB, 0xA801 },
+    { 0xA6A0, 0xA6EF },
+    { 0xA6F2, 0xA6F7 },
+    { 0xA700, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA824 },
     { 0xA827, 0xA82B },
+    { 0xA830, 0xA839 },
     { 0xA840, 0xA877 },
     { 0xA880, 0xA8C3 },
     { 0xA8CE, 0xA8D9 },
+    { 0xA8F2, 0xA8FB },
     { 0xA900, 0xA925 },
     { 0xA92E, 0xA946 },
     { 0xA952, 0xA953 },
-    { 0xA95F, 0xA95F },
+    { 0xA95F, 0xA97C },
+    { 0xA983, 0xA9B2 },
+    { 0xA9B4, 0xA9B5 },
+    { 0xA9BA, 0xA9BB },
+    { 0xA9BD, 0xA9CD },
+    { 0xA9CF, 0xA9D9 },
+    { 0xA9DE, 0xA9DF },
     { 0xAA00, 0xAA28 },
     { 0xAA2F, 0xAA30 },
     { 0xAA33, 0xAA34 },
     { 0xAA44, 0xAA4B },
     { 0xAA4D, 0xAA4D },
     { 0xAA50, 0xAA59 },
-    { 0xAA5C, 0xAA5F },
+    { 0xAA5C, 0xAA7B },
+    { 0xAA80, 0xAAAF },
+    { 0xAAB1, 0xAAB1 },
+    { 0xAAB5, 0xAAB6 },
+    { 0xAAB9, 0xAABD },
+    { 0xAAC0, 0xAAC0 },
+    { 0xAAC2, 0xAAC2 },
+    { 0xAADB, 0xAADF },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABE4 },
+    { 0xABE6, 0xABE7 },
+    { 0xABE9, 0xABEC },
+    { 0xABF0, 0xABF9 },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xF900, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0xFB3E, 0xFB3E },
     { 0xFB40, 0xFB41 },
     { 0xFB43, 0xFB44 },
-    { 0xFB46, 0xFBB1 },
+    { 0xFB46, 0xFBC1 },
     { 0xFBD3, 0xFD3F },
     { 0xFD50, 0xFD8F },
     { 0xFD92, 0xFDC7 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
-    { 0x10900, 0x10919 },
+    { 0x1083F, 0x10855 },
+    { 0x10857, 0x1085F },
+    { 0x10900, 0x1091B },
     { 0x1091F, 0x10939 },
     { 0x1093F, 0x1093F },
     { 0x10A00, 0x10A00 },
     { 0x10A19, 0x10A33 },
     { 0x10A40, 0x10A47 },
     { 0x10A50, 0x10A58 },
+    { 0x10A60, 0x10A7F },
+    { 0x10B00, 0x10B35 },
+    { 0x10B39, 0x10B55 },
+    { 0x10B58, 0x10B72 },
+    { 0x10B78, 0x10B7F },
+    { 0x10C00, 0x10C48 },
+    { 0x10E60, 0x10E7E },
+    { 0x11000, 0x11000 },
+    { 0x11002, 0x11037 },
+    { 0x11047, 0x1104D },
+    { 0x11052, 0x1106F },
+    { 0x11082, 0x110B2 },
+    { 0x110B7, 0x110B8 },
+    { 0x110BB, 0x110BC },
+    { 0x110BE, 0x110C1 },
     { 0x12000, 0x1236E },
     { 0x12400, 0x12462 },
     { 0x12470, 0x12473 },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x1D000, 0x1D0F5 },
     { 0x1D100, 0x1D126 },
     { 0x1D129, 0x1D164 },
     { 0x1D7CE, 0x1D7FF },
     { 0x1F000, 0x1F02B },
     { 0x1F030, 0x1F093 },
+    { 0x1F0A0, 0x1F0AE },
+    { 0x1F0B1, 0x1F0BE },
+    { 0x1F0C1, 0x1F0CF },
+    { 0x1F0D1, 0x1F0DF },
+    { 0x1F100, 0x1F10A },
+    { 0x1F110, 0x1F12E },
+    { 0x1F130, 0x1F169 },
+    { 0x1F170, 0x1F19A },
+    { 0x1F1E6, 0x1F202 },
+    { 0x1F210, 0x1F23A },
+    { 0x1F240, 0x1F248 },
+    { 0x1F250, 0x1F251 },
+    { 0x1F300, 0x1F320 },
+    { 0x1F330, 0x1F335 },
+    { 0x1F337, 0x1F37C },
+    { 0x1F380, 0x1F393 },
+    { 0x1F3A0, 0x1F3C4 },
+    { 0x1F3C6, 0x1F3CA },
+    { 0x1F3E0, 0x1F3F0 },
+    { 0x1F400, 0x1F43E },
+    { 0x1F440, 0x1F440 },
+    { 0x1F442, 0x1F4F7 },
+    { 0x1F4F9, 0x1F4FC },
+    { 0x1F500, 0x1F53D },
+    { 0x1F550, 0x1F567 },
+    { 0x1F5FB, 0x1F5FF },
+    { 0x1F601, 0x1F610 },
+    { 0x1F612, 0x1F614 },
+    { 0x1F616, 0x1F616 },
+    { 0x1F618, 0x1F618 },
+    { 0x1F61A, 0x1F61A },
+    { 0x1F61C, 0x1F61E },
+    { 0x1F620, 0x1F625 },
+    { 0x1F628, 0x1F62B },
+    { 0x1F62D, 0x1F62D },
+    { 0x1F630, 0x1F633 },
+    { 0x1F635, 0x1F640 },
+    { 0x1F645, 0x1F64F },
+    { 0x1F680, 0x1F6C5 },
+    { 0x1F700, 0x1F773 },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D }
 
 #define PREDICATE(c) uc_is_property_grapheme_base (c)
index fa859bb..f34f248 100644 (file)
     { 0x05C4, 0x05C5 },
     { 0x05C7, 0x05C7 },
     { 0x0610, 0x061A },
-    { 0x064B, 0x065E },
+    { 0x064B, 0x065F },
     { 0x0670, 0x0670 },
     { 0x06D6, 0x06DC },
-    { 0x06DE, 0x06E4 },
+    { 0x06DF, 0x06E4 },
     { 0x06E7, 0x06E8 },
     { 0x06EA, 0x06ED },
     { 0x0711, 0x0711 },
     { 0x0730, 0x074A },
     { 0x07A6, 0x07B0 },
     { 0x07EB, 0x07F3 },
-    { 0x0901, 0x0902 },
+    { 0x0816, 0x0819 },
+    { 0x081B, 0x0823 },
+    { 0x0825, 0x0827 },
+    { 0x0829, 0x082D },
+    { 0x0859, 0x085B },
+    { 0x0900, 0x0902 },
+    { 0x093A, 0x093A },
     { 0x093C, 0x093C },
     { 0x0941, 0x0948 },
     { 0x094D, 0x094D },
-    { 0x0951, 0x0954 },
+    { 0x0951, 0x0957 },
     { 0x0962, 0x0963 },
     { 0x0981, 0x0981 },
     { 0x09BC, 0x09BC },
     { 0x0F71, 0x0F7E },
     { 0x0F80, 0x0F84 },
     { 0x0F86, 0x0F87 },
-    { 0x0F90, 0x0F97 },
+    { 0x0F8D, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
     { 0x102D, 0x1030 },
     { 0x1082, 0x1082 },
     { 0x1085, 0x1086 },
     { 0x108D, 0x108D },
-    { 0x135F, 0x135F },
+    { 0x109D, 0x109D },
+    { 0x135D, 0x135F },
     { 0x1712, 0x1714 },
     { 0x1732, 0x1734 },
     { 0x1752, 0x1753 },
     { 0x1932, 0x1932 },
     { 0x1939, 0x193B },
     { 0x1A17, 0x1A18 },
+    { 0x1A56, 0x1A56 },
+    { 0x1A58, 0x1A5E },
+    { 0x1A60, 0x1A60 },
+    { 0x1A62, 0x1A62 },
+    { 0x1A65, 0x1A6C },
+    { 0x1A73, 0x1A7C },
+    { 0x1A7F, 0x1A7F },
     { 0x1B00, 0x1B03 },
     { 0x1B34, 0x1B34 },
     { 0x1B36, 0x1B3A },
     { 0x1B80, 0x1B81 },
     { 0x1BA2, 0x1BA5 },
     { 0x1BA8, 0x1BA9 },
+    { 0x1BE6, 0x1BE6 },
+    { 0x1BE8, 0x1BE9 },
+    { 0x1BED, 0x1BED },
+    { 0x1BEF, 0x1BF1 },
     { 0x1C2C, 0x1C33 },
     { 0x1C36, 0x1C37 },
+    { 0x1CD0, 0x1CD2 },
+    { 0x1CD4, 0x1CE0 },
+    { 0x1CE2, 0x1CE8 },
+    { 0x1CED, 0x1CED },
     { 0x1DC0, 0x1DE6 },
-    { 0x1DFE, 0x1DFF },
+    { 0x1DFC, 0x1DFF },
     { 0x200C, 0x200D },
     { 0x20D0, 0x20F0 },
+    { 0x2CEF, 0x2CF1 },
+    { 0x2D7F, 0x2D7F },
     { 0x2DE0, 0x2DFF },
     { 0x302A, 0x302F },
     { 0x3099, 0x309A },
     { 0xA66F, 0xA672 },
     { 0xA67C, 0xA67D },
+    { 0xA6F0, 0xA6F1 },
     { 0xA802, 0xA802 },
     { 0xA806, 0xA806 },
     { 0xA80B, 0xA80B },
     { 0xA825, 0xA826 },
     { 0xA8C4, 0xA8C4 },
+    { 0xA8E0, 0xA8F1 },
     { 0xA926, 0xA92D },
     { 0xA947, 0xA951 },
+    { 0xA980, 0xA982 },
+    { 0xA9B3, 0xA9B3 },
+    { 0xA9B6, 0xA9B9 },
+    { 0xA9BC, 0xA9BC },
     { 0xAA29, 0xAA2E },
     { 0xAA31, 0xAA32 },
     { 0xAA35, 0xAA36 },
     { 0xAA43, 0xAA43 },
     { 0xAA4C, 0xAA4C },
+    { 0xAAB0, 0xAAB0 },
+    { 0xAAB2, 0xAAB4 },
+    { 0xAAB7, 0xAAB8 },
+    { 0xAABE, 0xAABF },
+    { 0xAAC1, 0xAAC1 },
+    { 0xABE5, 0xABE5 },
+    { 0xABE8, 0xABE8 },
+    { 0xABED, 0xABED },
     { 0xFB1E, 0xFB1E },
     { 0xFE00, 0xFE0F },
     { 0xFE20, 0xFE26 },
     { 0x10A0C, 0x10A0F },
     { 0x10A38, 0x10A3A },
     { 0x10A3F, 0x10A3F },
+    { 0x11001, 0x11001 },
+    { 0x11038, 0x11046 },
+    { 0x11080, 0x11081 },
+    { 0x110B3, 0x110B6 },
+    { 0x110B9, 0x110BA },
     { 0x1D165, 0x1D165 },
     { 0x1D167, 0x1D169 },
     { 0x1D16E, 0x1D172 },
index ff1fa5a..f2095bc 100644 (file)
     { 0x1714, 0x1714 },
     { 0x1734, 0x1734 },
     { 0x17D2, 0x17D2 },
+    { 0x1A60, 0x1A60 },
     { 0x1B44, 0x1B44 },
     { 0x1BAA, 0x1BAA },
+    { 0x1BF2, 0x1BF3 },
+    { 0x2D7F, 0x2D7F },
     { 0xA806, 0xA806 },
     { 0xA8C4, 0xA8C4 },
     { 0xA953, 0xA953 },
-    { 0x10A3F, 0x10A3F }
+    { 0xA9C0, 0xA9C0 },
+    { 0xABED, 0xABED },
+    { 0x10A3F, 0x10A3F },
+    { 0x11046, 0x11046 },
+    { 0x110B9, 0x110B9 }
 
 #define PREDICATE(c) uc_is_property_grapheme_link (c)
 #include "test-predicate-part2.h"
index a900ec9..a4c8402 100644 (file)
@@ -41,7 +41,7 @@
     { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
     { 0x0483, 0x0487 },
-    { 0x048A, 0x0523 },
+    { 0x048A, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
@@ -53,8 +53,7 @@
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
     { 0x0610, 0x061A },
-    { 0x0621, 0x065E },
-    { 0x0660, 0x0669 },
+    { 0x0620, 0x0669 },
     { 0x066E, 0x06D3 },
     { 0x06D5, 0x06DC },
     { 0x06DF, 0x06E8 },
     { 0x074D, 0x07B1 },
     { 0x07C0, 0x07F5 },
     { 0x07FA, 0x07FA },
-    { 0x0901, 0x0939 },
-    { 0x093C, 0x094D },
-    { 0x0950, 0x0954 },
-    { 0x0958, 0x0963 },
+    { 0x0800, 0x082D },
+    { 0x0840, 0x085B },
+    { 0x0900, 0x0963 },
     { 0x0966, 0x096F },
-    { 0x0971, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x0971, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0981, 0x0983 },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
     { 0x0CDE, 0x0CDE },
     { 0x0CE0, 0x0CE3 },
     { 0x0CE6, 0x0CEF },
+    { 0x0CF1, 0x0CF2 },
     { 0x0D02, 0x0D03 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D44 },
     { 0x0D46, 0x0D48 },
-    { 0x0D4A, 0x0D4D },
+    { 0x0D4A, 0x0D4E },
     { 0x0D57, 0x0D57 },
     { 0x0D60, 0x0D63 },
     { 0x0D66, 0x0D6F },
     { 0x0F3E, 0x0F47 },
     { 0x0F49, 0x0F6C },
     { 0x0F71, 0x0F84 },
-    { 0x0F86, 0x0F8B },
-    { 0x0F90, 0x0F97 },
+    { 0x0F86, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
     { 0x1000, 0x1049 },
-    { 0x1050, 0x1099 },
+    { 0x1050, 0x109D },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x12D8, 0x1310 },
     { 0x1312, 0x1315 },
     { 0x1318, 0x135A },
-    { 0x135F, 0x135F },
+    { 0x135D, 0x135F },
     { 0x1369, 0x1371 },
     { 0x1380, 0x138F },
     { 0x13A0, 0x13F4 },
     { 0x1401, 0x166C },
-    { 0x166F, 0x1676 },
+    { 0x166F, 0x167F },
     { 0x1681, 0x169A },
     { 0x16A0, 0x16EA },
     { 0x16EE, 0x16F0 },
     { 0x1810, 0x1819 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1920, 0x192B },
     { 0x1930, 0x193B },
     { 0x1946, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19B0, 0x19C9 },
-    { 0x19D0, 0x19D9 },
+    { 0x19D0, 0x19DA },
     { 0x1A00, 0x1A1B },
+    { 0x1A20, 0x1A5E },
+    { 0x1A60, 0x1A7C },
+    { 0x1A7F, 0x1A89 },
+    { 0x1A90, 0x1A99 },
+    { 0x1AA7, 0x1AA7 },
     { 0x1B00, 0x1B4B },
     { 0x1B50, 0x1B59 },
     { 0x1B6B, 0x1B73 },
     { 0x1B80, 0x1BAA },
     { 0x1BAE, 0x1BB9 },
+    { 0x1BC0, 0x1BF3 },
     { 0x1C00, 0x1C37 },
     { 0x1C40, 0x1C49 },
     { 0x1C4D, 0x1C7D },
+    { 0x1CD0, 0x1CD2 },
+    { 0x1CD4, 0x1CF2 },
     { 0x1D00, 0x1DE6 },
-    { 0x1DFE, 0x1F15 },
+    { 0x1DFC, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
     { 0x2054, 0x2054 },
     { 0x2071, 0x2071 },
     { 0x207F, 0x207F },
-    { 0x2090, 0x2094 },
+    { 0x2090, 0x209C },
     { 0x20D0, 0x20DC },
     { 0x20E1, 0x20E1 },
     { 0x20E5, 0x20F0 },
     { 0x2160, 0x2188 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CE4 },
+    { 0x2C60, 0x2CE4 },
+    { 0x2CEB, 0x2CF1 },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
     { 0x2D6F, 0x2D6F },
-    { 0x2D80, 0x2D96 },
+    { 0x2D7F, 0x2D96 },
     { 0x2DA0, 0x2DA6 },
     { 0x2DA8, 0x2DAE },
     { 0x2DB0, 0x2DB6 },
     { 0x30FC, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x31A0, 0x31B7 },
+    { 0x31A0, 0x31BA },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FC3 },
+    { 0x4E00, 0x9FCB },
     { 0xA000, 0xA48C },
+    { 0xA4D0, 0xA4FD },
     { 0xA500, 0xA60C },
     { 0xA610, 0xA62B },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA66F },
+    { 0xA640, 0xA66F },
     { 0xA67C, 0xA67D },
     { 0xA67F, 0xA697 },
+    { 0xA6A0, 0xA6F1 },
     { 0xA717, 0xA71F },
     { 0xA722, 0xA788 },
-    { 0xA78B, 0xA78C },
-    { 0xA7FB, 0xA827 },
+    { 0xA78B, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA827 },
     { 0xA840, 0xA873 },
     { 0xA880, 0xA8C4 },
     { 0xA8D0, 0xA8D9 },
+    { 0xA8E0, 0xA8F7 },
+    { 0xA8FB, 0xA8FB },
     { 0xA900, 0xA92D },
     { 0xA930, 0xA953 },
+    { 0xA960, 0xA97C },
+    { 0xA980, 0xA9C0 },
+    { 0xA9CF, 0xA9D9 },
     { 0xAA00, 0xAA36 },
     { 0xAA40, 0xAA4D },
     { 0xAA50, 0xAA59 },
+    { 0xAA60, 0xAA76 },
+    { 0xAA7A, 0xAA7B },
+    { 0xAA80, 0xAAC2 },
+    { 0xAADB, 0xAADD },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABEA },
+    { 0xABEC, 0xABED },
+    { 0xABF0, 0xABF9 },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xF900, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
+    { 0x1083F, 0x10855 },
     { 0x10900, 0x10915 },
     { 0x10920, 0x10939 },
     { 0x10A00, 0x10A03 },
     { 0x10A19, 0x10A33 },
     { 0x10A38, 0x10A3A },
     { 0x10A3F, 0x10A3F },
+    { 0x10A60, 0x10A7C },
+    { 0x10B00, 0x10B35 },
+    { 0x10B40, 0x10B55 },
+    { 0x10B60, 0x10B72 },
+    { 0x10C00, 0x10C48 },
+    { 0x11000, 0x11046 },
+    { 0x11066, 0x1106F },
+    { 0x11080, 0x110BA },
     { 0x12000, 0x1236E },
     { 0x12400, 0x12462 },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x1D165, 0x1D169 },
     { 0x1D16D, 0x1D172 },
     { 0x1D17B, 0x1D182 },
     { 0x1D7C4, 0x1D7CB },
     { 0x1D7CE, 0x1D7FF },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D },
     { 0xE0100, 0xE01EF }
 
index 15b4bd9..d10dc1f 100644 (file)
     { 0x038E, 0x03A1 },
     { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0523 },
+    { 0x048A, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x064A },
+    { 0x0620, 0x064A },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
     { 0x06D5, 0x06D5 },
     { 0x07CA, 0x07EA },
     { 0x07F4, 0x07F5 },
     { 0x07FA, 0x07FA },
+    { 0x0800, 0x0815 },
+    { 0x081A, 0x081A },
+    { 0x0824, 0x0824 },
+    { 0x0828, 0x0828 },
+    { 0x0840, 0x0858 },
     { 0x0904, 0x0939 },
     { 0x093D, 0x093D },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
-    { 0x0971, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x0971, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
     { 0x0993, 0x09A8 },
     { 0x0CBD, 0x0CBD },
     { 0x0CDE, 0x0CDE },
     { 0x0CE0, 0x0CE1 },
+    { 0x0CF1, 0x0CF2 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D3D },
+    { 0x0D4E, 0x0D4E },
     { 0x0D60, 0x0D61 },
     { 0x0D7A, 0x0D7F },
     { 0x0D85, 0x0D96 },
     { 0x0F00, 0x0F00 },
     { 0x0F40, 0x0F47 },
     { 0x0F49, 0x0F6C },
-    { 0x0F88, 0x0F8B },
+    { 0x0F88, 0x0F8C },
     { 0x1000, 0x102A },
     { 0x103F, 0x103F },
     { 0x1050, 0x1055 },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x1380, 0x138F },
     { 0x13A0, 0x13F4 },
     { 0x1401, 0x166C },
-    { 0x166F, 0x1676 },
+    { 0x166F, 0x167F },
     { 0x1681, 0x169A },
     { 0x16A0, 0x16EA },
     { 0x16EE, 0x16F0 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
     { 0x18AA, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1950, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19C1, 0x19C7 },
     { 0x1A00, 0x1A16 },
+    { 0x1A20, 0x1A54 },
+    { 0x1AA7, 0x1AA7 },
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
     { 0x1B83, 0x1BA0 },
     { 0x1BAE, 0x1BAF },
+    { 0x1BC0, 0x1BE5 },
     { 0x1C00, 0x1C23 },
     { 0x1C4D, 0x1C4F },
     { 0x1C5A, 0x1C7D },
+    { 0x1CE9, 0x1CEC },
+    { 0x1CEE, 0x1CF1 },
     { 0x1D00, 0x1DBF },
     { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1FF6, 0x1FFC },
     { 0x2071, 0x2071 },
     { 0x207F, 0x207F },
-    { 0x2090, 0x2094 },
+    { 0x2090, 0x209C },
     { 0x2102, 0x2102 },
     { 0x2107, 0x2107 },
     { 0x210A, 0x2113 },
     { 0x2160, 0x2188 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CE4 },
+    { 0x2C60, 0x2CE4 },
+    { 0x2CEB, 0x2CEE },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
     { 0x2D6F, 0x2D6F },
     { 0x30FC, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x31A0, 0x31B7 },
+    { 0x31A0, 0x31BA },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FC3 },
+    { 0x4E00, 0x9FCB },
     { 0xA000, 0xA48C },
+    { 0xA4D0, 0xA4FD },
     { 0xA500, 0xA60C },
     { 0xA610, 0xA61F },
     { 0xA62A, 0xA62B },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA66E },
+    { 0xA640, 0xA66E },
     { 0xA67F, 0xA697 },
+    { 0xA6A0, 0xA6EF },
     { 0xA717, 0xA71F },
     { 0xA722, 0xA788 },
-    { 0xA78B, 0xA78C },
-    { 0xA7FB, 0xA801 },
+    { 0xA78B, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
     { 0xA882, 0xA8B3 },
+    { 0xA8F2, 0xA8F7 },
+    { 0xA8FB, 0xA8FB },
     { 0xA90A, 0xA925 },
     { 0xA930, 0xA946 },
+    { 0xA960, 0xA97C },
+    { 0xA984, 0xA9B2 },
+    { 0xA9CF, 0xA9CF },
     { 0xAA00, 0xAA28 },
     { 0xAA40, 0xAA42 },
     { 0xAA44, 0xAA4B },
+    { 0xAA60, 0xAA76 },
+    { 0xAA7A, 0xAA7A },
+    { 0xAA80, 0xAAAF },
+    { 0xAAB1, 0xAAB1 },
+    { 0xAAB5, 0xAAB6 },
+    { 0xAAB9, 0xAABD },
+    { 0xAAC0, 0xAAC0 },
+    { 0xAAC2, 0xAAC2 },
+    { 0xAADB, 0xAADD },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABE2 },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xF900, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
+    { 0x1083F, 0x10855 },
     { 0x10900, 0x10915 },
     { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
     { 0x10A19, 0x10A33 },
+    { 0x10A60, 0x10A7C },
+    { 0x10B00, 0x10B35 },
+    { 0x10B40, 0x10B55 },
+    { 0x10B60, 0x10B72 },
+    { 0x10C00, 0x10C48 },
+    { 0x11003, 0x11037 },
+    { 0x11083, 0x110AF },
     { 0x12000, 0x1236E },
     { 0x12400, 0x12462 },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x1D400, 0x1D454 },
     { 0x1D456, 0x1D49C },
     { 0x1D49E, 0x1D49F },
     { 0x1D7AA, 0x1D7C2 },
     { 0x1D7C4, 0x1D7CB },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D }
 
 #define PREDICATE(c) uc_is_property_id_start (c)
index c61195d..a007e67 100644 (file)
     { 0x3021, 0x3029 },
     { 0x3038, 0x303A },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FC3 },
+    { 0x4E00, 0x9FCB },
     { 0xF900, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D }
 
 #define PREDICATE(c) uc_is_property_ideographic (c)
index 58d38b5..0411af4 100644 (file)
@@ -32,6 +32,7 @@
     { 0x206A, 0x206F },
     { 0xFEFF, 0xFEFF },
     { 0xFFF9, 0xFFFB },
+    { 0x110BD, 0x110BD },
     { 0x1D173, 0x1D17A },
     { 0xE0001, 0xE0001 },
     { 0xE0020, 0xE007F }
index b9ca432..32254d4 100644 (file)
 #include "test-predicate-part1.h"
 
     { 0x0E40, 0x0E44 },
-    { 0x0EC0, 0x0EC4 }
+    { 0x0EC0, 0x0EC4 },
+    { 0xAAB5, 0xAAB6 },
+    { 0xAAB9, 0xAAB9 },
+    { 0xAABB, 0xAABC }
 
 #define PREDICATE(c) uc_is_property_logical_order_exception (c)
 #include "test-predicate-part2.h"
index cac34e7..da1f95c 100644 (file)
     { 0x051F, 0x051F },
     { 0x0521, 0x0521 },
     { 0x0523, 0x0523 },
+    { 0x0525, 0x0525 },
+    { 0x0527, 0x0527 },
     { 0x0561, 0x0587 },
     { 0x1D00, 0x1DBF },
     { 0x1E01, 0x1E01 },
     { 0x1FE0, 0x1FE7 },
     { 0x1FF2, 0x1FF4 },
     { 0x1FF6, 0x1FF7 },
-    { 0x2071, 0x2071 },
-    { 0x207F, 0x207F },
     { 0x2090, 0x2094 },
     { 0x210A, 0x210A },
     { 0x210E, 0x210F },
     { 0x2CDF, 0x2CDF },
     { 0x2CE1, 0x2CE1 },
     { 0x2CE3, 0x2CE4 },
+    { 0x2CEC, 0x2CEC },
+    { 0x2CEE, 0x2CEE },
     { 0x2D00, 0x2D25 },
     { 0xA641, 0xA641 },
     { 0xA643, 0xA643 },
     { 0xA65B, 0xA65B },
     { 0xA65D, 0xA65D },
     { 0xA65F, 0xA65F },
+    { 0xA661, 0xA661 },
     { 0xA663, 0xA663 },
     { 0xA665, 0xA665 },
     { 0xA667, 0xA667 },
     { 0xA785, 0xA785 },
     { 0xA787, 0xA787 },
     { 0xA78C, 0xA78C },
+    { 0xA78E, 0xA78E },
+    { 0xA791, 0xA791 },
+    { 0xA7A1, 0xA7A1 },
+    { 0xA7A3, 0xA7A3 },
+    { 0xA7A5, 0xA7A5 },
+    { 0xA7A7, 0xA7A7 },
+    { 0xA7A9, 0xA7A9 },
+    { 0xA7FA, 0xA7FA },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0xFF41, 0xFF5A },
index 5f25087..2227823 100644 (file)
     { 0x20E5, 0x20E6 },
     { 0x20EB, 0x20EF },
     { 0x2102, 0x2102 },
+    { 0x2107, 0x2107 },
     { 0x210A, 0x2113 },
     { 0x2115, 0x2115 },
-    { 0x2119, 0x211D },
+    { 0x2118, 0x211D },
     { 0x2124, 0x2124 },
     { 0x2128, 0x2129 },
     { 0x212C, 0x212D },
@@ -86,7 +87,7 @@
     { 0x266D, 0x266F },
     { 0x27C0, 0x27CA },
     { 0x27CC, 0x27CC },
-    { 0x27D0, 0x27FF },
+    { 0x27CE, 0x27FF },
     { 0x2900, 0x2AFF },
     { 0x2B30, 0x2B44 },
     { 0x2B47, 0x2B4C },
index 4449802..1f5d756 100644 (file)
@@ -30,6 +30,7 @@
     { 0x0A66, 0x0A6F },
     { 0x0AE6, 0x0AEF },
     { 0x0B66, 0x0B6F },
+    { 0x0B72, 0x0B77 },
     { 0x0BE6, 0x0BF2 },
     { 0x0C66, 0x0C6F },
     { 0x0C78, 0x0C7E },
@@ -46,7 +47,9 @@
     { 0x17F0, 0x17F9 },
     { 0x1810, 0x1819 },
     { 0x1946, 0x194F },
-    { 0x19D0, 0x19D9 },
+    { 0x19D0, 0x19DA },
+    { 0x1A80, 0x1A89 },
+    { 0x1A90, 0x1A99 },
     { 0x1B50, 0x1B59 },
     { 0x1BB0, 0x1BB9 },
     { 0x1C40, 0x1C49 },
@@ -54,8 +57,8 @@
     { 0x2070, 0x2070 },
     { 0x2074, 0x2079 },
     { 0x2080, 0x2089 },
-    { 0x2153, 0x2183 },
-    { 0x2185, 0x2188 },
+    { 0x2150, 0x2183 },
+    { 0x2185, 0x2189 },
     { 0x2460, 0x249B },
     { 0x24EA, 0x24FF },
     { 0x2776, 0x2793 },
     { 0x3280, 0x3289 },
     { 0x32B1, 0x32BF },
     { 0xA620, 0xA629 },
+    { 0xA6E6, 0xA6EF },
+    { 0xA830, 0xA835 },
     { 0xA8D0, 0xA8D9 },
     { 0xA900, 0xA909 },
+    { 0xA9D0, 0xA9D9 },
     { 0xAA50, 0xAA59 },
+    { 0xABF0, 0xABF9 },
     { 0xF96B, 0xF96B },
     { 0xF973, 0xF973 },
     { 0xF978, 0xF978 },
     { 0x1034A, 0x1034A },
     { 0x103D1, 0x103D5 },
     { 0x104A0, 0x104A9 },
-    { 0x10916, 0x10919 },
+    { 0x10858, 0x1085F },
+    { 0x10916, 0x1091B },
     { 0x10A40, 0x10A47 },
+    { 0x10A7D, 0x10A7E },
+    { 0x10B58, 0x10B5F },
+    { 0x10B78, 0x10B7F },
+    { 0x10E60, 0x10E7E },
+    { 0x11052, 0x1106F },
     { 0x12400, 0x12431 },
     { 0x12434, 0x12455 },
     { 0x12458, 0x12462 },
     { 0x1D360, 0x1D371 },
     { 0x1D7CE, 0x1D7FF },
+    { 0x1F100, 0x1F10A },
     { 0x2F890, 0x2F890 }
 
 #define PREDICATE(c) uc_is_property_numeric (c)
index f603dee..67a2a77 100644 (file)
@@ -25,7 +25,7 @@
     { 0x05C7, 0x05C7 },
     { 0x0610, 0x061A },
     { 0x064B, 0x0657 },
-    { 0x0659, 0x065E },
+    { 0x0659, 0x065F },
     { 0x0670, 0x0670 },
     { 0x06D6, 0x06DC },
     { 0x06E1, 0x06E4 },
     { 0x0711, 0x0711 },
     { 0x0730, 0x073F },
     { 0x07A6, 0x07B0 },
-    { 0x0901, 0x0903 },
+    { 0x0816, 0x0817 },
+    { 0x081B, 0x0823 },
+    { 0x0825, 0x0827 },
+    { 0x0829, 0x082C },
+    { 0x0900, 0x0903 },
+    { 0x093A, 0x093B },
     { 0x093E, 0x094C },
+    { 0x094E, 0x094F },
+    { 0x0955, 0x0957 },
     { 0x0962, 0x0963 },
     { 0x0981, 0x0983 },
     { 0x09BE, 0x09C4 },
     { 0x0EBB, 0x0EBC },
     { 0x0ECD, 0x0ECD },
     { 0x0F71, 0x0F81 },
-    { 0x0F90, 0x0F97 },
+    { 0x0F8D, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x102B, 0x1036 },
     { 0x1038, 0x1038 },
     { 0x1067, 0x1068 },
     { 0x1071, 0x1074 },
     { 0x1082, 0x1086 },
+    { 0x109C, 0x109D },
     { 0x135F, 0x135F },
     { 0x1712, 0x1713 },
     { 0x1732, 0x1733 },
     { 0x19B0, 0x19C0 },
     { 0x19C8, 0x19C9 },
     { 0x1A17, 0x1A1B },
+    { 0x1A55, 0x1A5E },
+    { 0x1A61, 0x1A74 },
     { 0x1B00, 0x1B04 },
     { 0x1B35, 0x1B43 },
     { 0x1B80, 0x1B82 },
     { 0x1BA1, 0x1BA9 },
+    { 0x1BE7, 0x1BF1 },
     { 0x1C24, 0x1C35 },
+    { 0x1CF2, 0x1CF2 },
     { 0x24B6, 0x24E9 },
     { 0x2DE0, 0x2DFF },
     { 0xA823, 0xA827 },
     { 0xA8B4, 0xA8C3 },
     { 0xA926, 0xA92A },
     { 0xA947, 0xA952 },
+    { 0xA980, 0xA983 },
+    { 0xA9B4, 0xA9BF },
     { 0xAA29, 0xAA36 },
     { 0xAA43, 0xAA43 },
     { 0xAA4C, 0xAA4D },
+    { 0xAAB0, 0xAAB0 },
+    { 0xAAB2, 0xAAB4 },
+    { 0xAAB7, 0xAAB8 },
+    { 0xAABE, 0xAABE },
+    { 0xABE3, 0xABEA },
     { 0xFB1E, 0xFB1E },
     { 0x10A01, 0x10A03 },
     { 0x10A05, 0x10A06 },
-    { 0x10A0C, 0x10A0F }
+    { 0x10A0C, 0x10A0F },
+    { 0x11000, 0x11002 },
+    { 0x11038, 0x11045 },
+    { 0x11082, 0x11082 },
+    { 0x110B0, 0x110B8 }
 
 #define PREDICATE(c) uc_is_property_other_alphabetic (c)
 #include "test-predicate-part2.h"
index b30a7df..c766e5e 100644 (file)
@@ -19,7 +19,8 @@
 
     { 0x00B7, 0x00B7 },
     { 0x0387, 0x0387 },
-    { 0x1369, 0x1371 }
+    { 0x1369, 0x1371 },
+    { 0x19DA, 0x19DA }
 
 #define PREDICATE(c) uc_is_property_other_id_continue (c)
 #include "test-predicate-part2.h"
index b563303..ff4b4f9 100644 (file)
@@ -33,6 +33,7 @@
     { 0x20E5, 0x20E6 },
     { 0x20EB, 0x20EF },
     { 0x2102, 0x2102 },
+    { 0x2107, 0x2107 },
     { 0x210A, 0x2113 },
     { 0x2115, 0x2115 },
     { 0x2119, 0x211D },
index 936e62c..342c7f1 100644 (file)
@@ -48,6 +48,8 @@
     { 0x06D4, 0x06D4 },
     { 0x0700, 0x070D },
     { 0x07F7, 0x07F9 },
+    { 0x0830, 0x083E },
+    { 0x085E, 0x085E },
     { 0x0964, 0x0965 },
     { 0x0970, 0x0970 },
     { 0x0DF4, 0x0DF4 },
     { 0x0F3A, 0x0F3D },
     { 0x0F85, 0x0F85 },
     { 0x0FD0, 0x0FD4 },
+    { 0x0FD9, 0x0FDA },
     { 0x104A, 0x104F },
     { 0x10FB, 0x10FB },
     { 0x1361, 0x1368 },
+    { 0x1400, 0x1400 },
     { 0x166D, 0x166E },
     { 0x169B, 0x169C },
     { 0x16EB, 0x16ED },
     { 0x17D8, 0x17DA },
     { 0x1800, 0x180A },
     { 0x1944, 0x1945 },
-    { 0x19DE, 0x19DF },
     { 0x1A1E, 0x1A1F },
+    { 0x1AA0, 0x1AA6 },
+    { 0x1AA8, 0x1AAD },
     { 0x1B5A, 0x1B60 },
+    { 0x1BFC, 0x1BFF },
     { 0x1C3B, 0x1C3F },
     { 0x1C7E, 0x1C7F },
+    { 0x1CD3, 0x1CD3 },
     { 0x2010, 0x2027 },
     { 0x2030, 0x2043 },
     { 0x2045, 0x2051 },
@@ -88,8 +95,9 @@
     { 0x29FC, 0x29FD },
     { 0x2CF9, 0x2CFC },
     { 0x2CFE, 0x2CFF },
+    { 0x2D70, 0x2D70 },
     { 0x2E00, 0x2E2E },
-    { 0x2E30, 0x2E30 },
+    { 0x2E30, 0x2E31 },
     { 0x3001, 0x3003 },
     { 0x3008, 0x3011 },
     { 0x3014, 0x301F },
     { 0x303D, 0x303D },
     { 0x30A0, 0x30A0 },
     { 0x30FB, 0x30FB },
+    { 0xA4FE, 0xA4FF },
     { 0xA60D, 0xA60F },
     { 0xA673, 0xA673 },
     { 0xA67E, 0xA67E },
+    { 0xA6F2, 0xA6F7 },
     { 0xA874, 0xA877 },
     { 0xA8CE, 0xA8CF },
+    { 0xA8F8, 0xA8FA },
     { 0xA92E, 0xA92F },
     { 0xA95F, 0xA95F },
+    { 0xA9C1, 0xA9CD },
+    { 0xA9DE, 0xA9DF },
     { 0xAA5C, 0xAA5F },
+    { 0xAADE, 0xAADF },
+    { 0xABEB, 0xABEB },
     { 0xFD3E, 0xFD3F },
     { 0xFE10, 0xFE19 },
     { 0xFE30, 0xFE52 },
     { 0x10100, 0x10101 },
     { 0x1039F, 0x1039F },
     { 0x103D0, 0x103D0 },
+    { 0x10857, 0x10857 },
     { 0x1091F, 0x1091F },
     { 0x1093F, 0x1093F },
     { 0x10A50, 0x10A58 },
+    { 0x10A7F, 0x10A7F },
+    { 0x10B39, 0x10B3F },
+    { 0x11047, 0x1104D },
+    { 0x110BB, 0x110BC },
+    { 0x110BE, 0x110C1 },
     { 0x12470, 0x12473 }
 
 #define PREDICATE(c) uc_is_property_punctuation (c)
index 107649e..0f96e1f 100644 (file)
     { 0x1362, 0x1362 },
     { 0x1367, 0x1368 },
     { 0x166E, 0x166E },
+    { 0x1735, 0x1736 },
     { 0x1803, 0x1803 },
     { 0x1809, 0x1809 },
     { 0x1944, 0x1945 },
+    { 0x1AA8, 0x1AAB },
     { 0x1B5A, 0x1B5B },
     { 0x1B5E, 0x1B5F },
     { 0x1C3B, 0x1C3C },
     { 0x2047, 0x2049 },
     { 0x2E2E, 0x2E2E },
     { 0x3002, 0x3002 },
+    { 0xA4FF, 0xA4FF },
     { 0xA60E, 0xA60F },
+    { 0xA6F3, 0xA6F3 },
+    { 0xA6F7, 0xA6F7 },
     { 0xA876, 0xA877 },
     { 0xA8CE, 0xA8CF },
     { 0xA92F, 0xA92F },
+    { 0xA9C8, 0xA9C9 },
     { 0xAA5D, 0xAA5F },
+    { 0xABEB, 0xABEB },
     { 0xFE52, 0xFE52 },
     { 0xFE56, 0xFE57 },
     { 0xFF01, 0xFF01 },
     { 0xFF0E, 0xFF0E },
     { 0xFF1F, 0xFF1F },
-    { 0xFF61, 0xFF61 }
+    { 0xFF61, 0xFF61 },
+    { 0x10A56, 0x10A57 },
+    { 0x11047, 0x11048 },
+    { 0x110BE, 0x110C1 }
 
 #define PREDICATE(c) uc_is_property_sentence_terminal (c)
 #include "test-predicate-part2.h"
index 3ded06d..fd42c95 100644 (file)
@@ -33,6 +33,8 @@
     { 0x0700, 0x070A },
     { 0x070C, 0x070C },
     { 0x07F8, 0x07F9 },
+    { 0x0830, 0x083E },
+    { 0x085E, 0x085E },
     { 0x0964, 0x0965 },
     { 0x0E5A, 0x0E5B },
     { 0x0F08, 0x0F08 },
@@ -46,6 +48,7 @@
     { 0x1802, 0x1805 },
     { 0x1808, 0x1809 },
     { 0x1944, 0x1945 },
+    { 0x1AA8, 0x1AAB },
     { 0x1B5A, 0x1B5B },
     { 0x1B5D, 0x1B5F },
     { 0x1C3B, 0x1C3F },
     { 0x2047, 0x2049 },
     { 0x2E2E, 0x2E2E },
     { 0x3001, 0x3002 },
+    { 0xA4FE, 0xA4FF },
     { 0xA60D, 0xA60F },
+    { 0xA6F3, 0xA6F7 },
     { 0xA876, 0xA877 },
     { 0xA8CE, 0xA8CF },
     { 0xA92F, 0xA92F },
+    { 0xA9C7, 0xA9C9 },
     { 0xAA5D, 0xAA5F },
+    { 0xAADF, 0xAADF },
+    { 0xABEB, 0xABEB },
     { 0xFE50, 0xFE52 },
     { 0xFE54, 0xFE57 },
     { 0xFF01, 0xFF01 },
     { 0xFF64, 0xFF64 },
     { 0x1039F, 0x1039F },
     { 0x103D0, 0x103D0 },
+    { 0x10857, 0x10857 },
     { 0x1091F, 0x1091F },
+    { 0x10B3A, 0x10B3F },
+    { 0x11047, 0x1104D },
+    { 0x110BE, 0x110C1 },
     { 0x12470, 0x12473 }
 
 #define PREDICATE(c) uc_is_property_terminal_punctuation (c)
index 91bd161..38bfa97 100644 (file)
@@ -22,7 +22,7 @@
     { 0x038B, 0x038B },
     { 0x038D, 0x038D },
     { 0x03A2, 0x03A2 },
-    { 0x0524, 0x0530 },
+    { 0x0528, 0x0530 },
     { 0x0557, 0x0558 },
     { 0x0560, 0x0560 },
     { 0x0588, 0x0588 },
     { 0x05F5, 0x05FF },
     { 0x0604, 0x0605 },
     { 0x061C, 0x061D },
-    { 0x0620, 0x0620 },
-    { 0x065F, 0x065F },
     { 0x070E, 0x070E },
     { 0x074B, 0x074C },
     { 0x07B2, 0x07BF },
-    { 0x07FB, 0x0900 },
-    { 0x093A, 0x093B },
-    { 0x094E, 0x094F },
-    { 0x0955, 0x0957 },
-    { 0x0973, 0x097A },
+    { 0x07FB, 0x07FF },
+    { 0x082E, 0x082F },
+    { 0x083F, 0x083F },
+    { 0x085C, 0x085D },
+    { 0x085F, 0x08FF },
+    { 0x0978, 0x0978 },
     { 0x0980, 0x0980 },
     { 0x0984, 0x0984 },
     { 0x098D, 0x098E },
@@ -56,7 +55,7 @@
     { 0x09D8, 0x09DB },
     { 0x09DE, 0x09DE },
     { 0x09E4, 0x09E5 },
-    { 0x09FB, 0x0A00 },
+    { 0x09FC, 0x0A00 },
     { 0x0A04, 0x0A04 },
     { 0x0A0B, 0x0A0E },
     { 0x0A11, 0x0A12 },
     { 0x0B58, 0x0B5B },
     { 0x0B5E, 0x0B5E },
     { 0x0B64, 0x0B65 },
-    { 0x0B72, 0x0B81 },
+    { 0x0B78, 0x0B81 },
     { 0x0B84, 0x0B84 },
     { 0x0B8B, 0x0B8D },
     { 0x0B91, 0x0B91 },
     { 0x0D04, 0x0D04 },
     { 0x0D0D, 0x0D0D },
     { 0x0D11, 0x0D11 },
-    { 0x0D29, 0x0D29 },
-    { 0x0D3A, 0x0D3C },
+    { 0x0D3B, 0x0D3C },
     { 0x0D45, 0x0D45 },
     { 0x0D49, 0x0D49 },
-    { 0x0D4E, 0x0D56 },
+    { 0x0D4F, 0x0D56 },
     { 0x0D58, 0x0D5F },
     { 0x0D64, 0x0D65 },
     { 0x0D76, 0x0D78 },
     { 0x0EDE, 0x0EFF },
     { 0x0F48, 0x0F48 },
     { 0x0F6D, 0x0F70 },
-    { 0x0F8C, 0x0F8F },
     { 0x0F98, 0x0F98 },
     { 0x0FBD, 0x0FBD },
     { 0x0FCD, 0x0FCD },
-    { 0x0FD5, 0x0FFF },
-    { 0x109A, 0x109D },
+    { 0x0FDB, 0x0FFF },
     { 0x10C6, 0x10CF },
     { 0x10FD, 0x10FF },
-    { 0x115A, 0x115E },
-    { 0x11A3, 0x11A7 },
-    { 0x11FA, 0x11FF },
     { 0x1249, 0x1249 },
     { 0x124E, 0x124F },
     { 0x1257, 0x1257 },
     { 0x12D7, 0x12D7 },
     { 0x1311, 0x1311 },
     { 0x1316, 0x1317 },
-    { 0x135B, 0x135E },
+    { 0x135B, 0x135C },
     { 0x137D, 0x137F },
     { 0x139A, 0x139F },
-    { 0x13F5, 0x1400 },
-    { 0x1677, 0x167F },
+    { 0x13F5, 0x13FF },
     { 0x169D, 0x169F },
     { 0x16F1, 0x16FF },
     { 0x170D, 0x170D },
     { 0x180F, 0x180F },
     { 0x181A, 0x181F },
     { 0x1878, 0x187F },
-    { 0x18AB, 0x18FF },
+    { 0x18AB, 0x18AF },
+    { 0x18F6, 0x18FF },
     { 0x191D, 0x191F },
     { 0x192C, 0x192F },
     { 0x193C, 0x193F },
     { 0x1941, 0x1943 },
     { 0x196E, 0x196F },
     { 0x1975, 0x197F },
-    { 0x19AA, 0x19AF },
+    { 0x19AC, 0x19AF },
     { 0x19CA, 0x19CF },
-    { 0x19DA, 0x19DD },
+    { 0x19DB, 0x19DD },
     { 0x1A1C, 0x1A1D },
-    { 0x1A20, 0x1AFF },
+    { 0x1A5F, 0x1A5F },
+    { 0x1A7D, 0x1A7E },
+    { 0x1A8A, 0x1A8F },
+    { 0x1A9A, 0x1A9F },
+    { 0x1AAE, 0x1AFF },
     { 0x1B4C, 0x1B4F },
     { 0x1B7D, 0x1B7F },
     { 0x1BAB, 0x1BAD },
-    { 0x1BBA, 0x1BFF },
+    { 0x1BBA, 0x1BBF },
+    { 0x1BF4, 0x1BFB },
     { 0x1C38, 0x1C3A },
     { 0x1C4A, 0x1C4C },
-    { 0x1C80, 0x1CFF },
-    { 0x1DE7, 0x1DFD },
+    { 0x1C80, 0x1CCF },
+    { 0x1CF3, 0x1CFF },
+    { 0x1DE7, 0x1DFB },
     { 0x1F16, 0x1F17 },
     { 0x1F1E, 0x1F1F },
     { 0x1F46, 0x1F47 },
     { 0x2065, 0x2069 },
     { 0x2072, 0x2073 },
     { 0x208F, 0x208F },
-    { 0x2095, 0x209F },
-    { 0x20B6, 0x20CF },
+    { 0x209D, 0x209F },
+    { 0x20BA, 0x20CF },
     { 0x20F1, 0x20FF },
-    { 0x2150, 0x2152 },
-    { 0x2189, 0x218F },
-    { 0x23E8, 0x23FF },
+    { 0x218A, 0x218F },
+    { 0x23F4, 0x23FF },
     { 0x2427, 0x243F },
     { 0x244B, 0x245F },
-    { 0x269E, 0x269F },
-    { 0x26BD, 0x26BF },
-    { 0x26C4, 0x2700 },
-    { 0x2705, 0x2705 },
-    { 0x270A, 0x270B },
-    { 0x2728, 0x2728 },
-    { 0x274C, 0x274C },
-    { 0x274E, 0x274E },
-    { 0x2753, 0x2755 },
-    { 0x2757, 0x2757 },
-    { 0x275F, 0x2760 },
-    { 0x2795, 0x2797 },
-    { 0x27B0, 0x27B0 },
-    { 0x27BF, 0x27BF },
+    { 0x2700, 0x2700 },
     { 0x27CB, 0x27CB },
-    { 0x27CD, 0x27CF },
+    { 0x27CD, 0x27CD },
     { 0x2B4D, 0x2B4F },
-    { 0x2B55, 0x2BFF },
+    { 0x2B5A, 0x2BFF },
     { 0x2C2F, 0x2C2F },
     { 0x2C5F, 0x2C5F },
-    { 0x2C70, 0x2C70 },
-    { 0x2C7E, 0x2C7F },
-    { 0x2CEB, 0x2CF8 },
+    { 0x2CF2, 0x2CF8 },
     { 0x2D26, 0x2D2F },
     { 0x2D66, 0x2D6E },
-    { 0x2D70, 0x2D7F },
+    { 0x2D71, 0x2D7E },
     { 0x2D97, 0x2D9F },
     { 0x2DA7, 0x2DA7 },
     { 0x2DAF, 0x2DAF },
     { 0x2DCF, 0x2DCF },
     { 0x2DD7, 0x2DD7 },
     { 0x2DDF, 0x2DDF },
-    { 0x2E31, 0x2E7F },
+    { 0x2E32, 0x2E7F },
     { 0x2E9A, 0x2E9A },
     { 0x2EF4, 0x2EFF },
     { 0x2FD6, 0x2FEF },
     { 0x3100, 0x3104 },
     { 0x312E, 0x3130 },
     { 0x318F, 0x318F },
-    { 0x31B8, 0x31BF },
+    { 0x31BB, 0x31BF },
     { 0x31E4, 0x31EF },
     { 0x321F, 0x321F },
-    { 0x3244, 0x324F },
     { 0x32FF, 0x32FF },
     { 0x4DB6, 0x4DBF },
-    { 0x9FC4, 0x9FFF },
+    { 0x9FCC, 0x9FFF },
     { 0xA48D, 0xA48F },
-    { 0xA4C7, 0xA4FF },
+    { 0xA4C7, 0xA4CF },
     { 0xA62C, 0xA63F },
-    { 0xA660, 0xA661 },
     { 0xA674, 0xA67B },
-    { 0xA698, 0xA6FF },
-    { 0xA78D, 0xA7FA },
-    { 0xA82C, 0xA83F },
+    { 0xA698, 0xA69F },
+    { 0xA6F8, 0xA6FF },
+    { 0xA78F, 0xA78F },
+    { 0xA792, 0xA79F },
+    { 0xA7AA, 0xA7F9 },
+    { 0xA82C, 0xA82F },
+    { 0xA83A, 0xA83F },
     { 0xA878, 0xA87F },
     { 0xA8C5, 0xA8CD },
-    { 0xA8DA, 0xA8FF },
+    { 0xA8DA, 0xA8DF },
+    { 0xA8FC, 0xA8FF },
     { 0xA954, 0xA95E },
-    { 0xA960, 0xA9FF },
+    { 0xA97D, 0xA97F },
+    { 0xA9CE, 0xA9CE },
+    { 0xA9DA, 0xA9DD },
+    { 0xA9E0, 0xA9FF },
     { 0xAA37, 0xAA3F },
     { 0xAA4E, 0xAA4F },
     { 0xAA5A, 0xAA5B },
-    { 0xAA60, 0xABFF },
-    { 0xD7A4, 0xD7FF },
+    { 0xAA7C, 0xAA7F },
+    { 0xAAC3, 0xAADA },
+    { 0xAAE0, 0xAB00 },
+    { 0xAB07, 0xAB08 },
+    { 0xAB0F, 0xAB10 },
+    { 0xAB17, 0xAB1F },
+    { 0xAB27, 0xAB27 },
+    { 0xAB2F, 0xABBF },
+    { 0xABEE, 0xABEF },
+    { 0xABFA, 0xABFF },
+    { 0xD7A4, 0xD7AF },
+    { 0xD7C7, 0xD7CA },
+    { 0xD7FC, 0xD7FF },
     { 0xFA2E, 0xFA2F },
-    { 0xFA6B, 0xFA6F },
+    { 0xFA6E, 0xFA6F },
     { 0xFADA, 0xFAFF },
     { 0xFB07, 0xFB12 },
     { 0xFB18, 0xFB1C },
     { 0xFB3F, 0xFB3F },
     { 0xFB42, 0xFB42 },
     { 0xFB45, 0xFB45 },
-    { 0xFBB2, 0xFBD2 },
+    { 0xFBC2, 0xFBD2 },
     { 0xFD40, 0xFD4F },
     { 0xFD90, 0xFD91 },
     { 0xFDC8, 0xFDCF },
     { 0x10836, 0x10836 },
     { 0x10839, 0x1083B },
     { 0x1083D, 0x1083E },
-    { 0x10840, 0x108FF },
-    { 0x1091A, 0x1091E },
+    { 0x10856, 0x10856 },
+    { 0x10860, 0x108FF },
+    { 0x1091C, 0x1091E },
     { 0x1093A, 0x1093E },
     { 0x10940, 0x109FF },
     { 0x10A04, 0x10A04 },
     { 0x10A34, 0x10A37 },
     { 0x10A3B, 0x10A3E },
     { 0x10A48, 0x10A4F },
-    { 0x10A59, 0x11FFF },
+    { 0x10A59, 0x10A5F },
+    { 0x10A80, 0x10AFF },
+    { 0x10B36, 0x10B38 },
+    { 0x10B56, 0x10B57 },
+    { 0x10B73, 0x10B77 },
+    { 0x10B80, 0x10BFF },
+    { 0x10C49, 0x10E5F },
+    { 0x10E7F, 0x10FFF },
+    { 0x1104E, 0x11051 },
+    { 0x11070, 0x1107F },
+    { 0x110C2, 0x11FFF },
     { 0x1236F, 0x123FF },
     { 0x12463, 0x1246F },
-    { 0x12474, 0x1CFFF },
+    { 0x12474, 0x12FFF },
+    { 0x1342F, 0x167FF },
+    { 0x16A39, 0x1AFFF },
+    { 0x1B002, 0x1CFFF },
     { 0x1D0F6, 0x1D0FF },
     { 0x1D127, 0x1D128 },
     { 0x1D1DE, 0x1D1FF },
     { 0x1D7CC, 0x1D7CD },
     { 0x1D800, 0x1EFFF },
     { 0x1F02C, 0x1F02F },
-    { 0x1F094, 0x1FFFD },
-    { 0x2A6D7, 0x2F7FF },
+    { 0x1F094, 0x1F09F },
+    { 0x1F0AF, 0x1F0B0 },
+    { 0x1F0BF, 0x1F0C0 },
+    { 0x1F0D0, 0x1F0D0 },
+    { 0x1F0E0, 0x1F0FF },
+    { 0x1F10B, 0x1F10F },
+    { 0x1F12F, 0x1F12F },
+    { 0x1F16A, 0x1F16F },
+    { 0x1F19B, 0x1F1E5 },
+    { 0x1F203, 0x1F20F },
+    { 0x1F23B, 0x1F23F },
+    { 0x1F249, 0x1F24F },
+    { 0x1F252, 0x1F2FF },
+    { 0x1F321, 0x1F32F },
+    { 0x1F336, 0x1F336 },
+    { 0x1F37D, 0x1F37F },
+    { 0x1F394, 0x1F39F },
+    { 0x1F3C5, 0x1F3C5 },
+    { 0x1F3CB, 0x1F3DF },
+    { 0x1F3F1, 0x1F3FF },
+    { 0x1F43F, 0x1F43F },
+    { 0x1F441, 0x1F441 },
+    { 0x1F4F8, 0x1F4F8 },
+    { 0x1F4FD, 0x1F4FF },
+    { 0x1F53E, 0x1F54F },
+    { 0x1F568, 0x1F5FA },
+    { 0x1F600, 0x1F600 },
+    { 0x1F611, 0x1F611 },
+    { 0x1F615, 0x1F615 },
+    { 0x1F617, 0x1F617 },
+    { 0x1F619, 0x1F619 },
+    { 0x1F61B, 0x1F61B },
+    { 0x1F61F, 0x1F61F },
+    { 0x1F626, 0x1F627 },
+    { 0x1F62C, 0x1F62C },
+    { 0x1F62E, 0x1F62F },
+    { 0x1F634, 0x1F634 },
+    { 0x1F641, 0x1F644 },
+    { 0x1F650, 0x1F67F },
+    { 0x1F6C6, 0x1F6FF },
+    { 0x1F774, 0x1FFFD },
+    { 0x2A6D7, 0x2A6FF },
+    { 0x2B735, 0x2B73F },
+    { 0x2B81E, 0x2F7FF },
     { 0x2FA1E, 0x2FFFD },
     { 0x30000, 0x3FFFD },
     { 0x40000, 0x4FFFD },
index e394751..8359df9 100644 (file)
@@ -18,7 +18,7 @@
 #include "test-predicate-part1.h"
 
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FC3 },
+    { 0x4E00, 0x9FCB },
     { 0xFA0E, 0xFA0F },
     { 0xFA11, 0xFA11 },
     { 0xFA13, 0xFA14 },
@@ -26,7 +26,9 @@
     { 0xFA21, 0xFA21 },
     { 0xFA23, 0xFA24 },
     { 0xFA27, 0xFA29 },
-    { 0x20000, 0x2A6D6 }
+    { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D }
 
 #define PREDICATE(c) uc_is_property_unified_ideograph (c)
 #include "test-predicate-part2.h"
index f44611b..b5252f1 100644 (file)
     { 0x051E, 0x051E },
     { 0x0520, 0x0520 },
     { 0x0522, 0x0522 },
+    { 0x0524, 0x0524 },
+    { 0x0526, 0x0526 },
     { 0x0531, 0x0556 },
     { 0x10A0, 0x10C5 },
     { 0x1E00, 0x1E00 },
     { 0x2C67, 0x2C67 },
     { 0x2C69, 0x2C69 },
     { 0x2C6B, 0x2C6B },
-    { 0x2C6D, 0x2C6F },
+    { 0x2C6D, 0x2C70 },
     { 0x2C72, 0x2C72 },
     { 0x2C75, 0x2C75 },
-    { 0x2C80, 0x2C80 },
+    { 0x2C7E, 0x2C80 },
     { 0x2C82, 0x2C82 },
     { 0x2C84, 0x2C84 },
     { 0x2C86, 0x2C86 },
     { 0x2CDE, 0x2CDE },
     { 0x2CE0, 0x2CE0 },
     { 0x2CE2, 0x2CE2 },
+    { 0x2CEB, 0x2CEB },
+    { 0x2CED, 0x2CED },
     { 0xA640, 0xA640 },
     { 0xA642, 0xA642 },
     { 0xA644, 0xA644 },
     { 0xA65A, 0xA65A },
     { 0xA65C, 0xA65C },
     { 0xA65E, 0xA65E },
+    { 0xA660, 0xA660 },
     { 0xA662, 0xA662 },
     { 0xA664, 0xA664 },
     { 0xA666, 0xA666 },
     { 0xA784, 0xA784 },
     { 0xA786, 0xA786 },
     { 0xA78B, 0xA78B },
+    { 0xA78D, 0xA78D },
+    { 0xA790, 0xA790 },
+    { 0xA7A0, 0xA7A0 },
+    { 0xA7A2, 0xA7A2 },
+    { 0xA7A4, 0xA7A4 },
+    { 0xA7A6, 0xA7A6 },
+    { 0xA7A8, 0xA7A8 },
     { 0xFF21, 0xFF3A },
     { 0x10400, 0x10427 },
     { 0x1D400, 0x1D419 },
index 14148c5..0ca8a7e 100644 (file)
@@ -41,7 +41,7 @@
     { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
     { 0x0483, 0x0487 },
-    { 0x048A, 0x0523 },
+    { 0x048A, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
@@ -53,8 +53,7 @@
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
     { 0x0610, 0x061A },
-    { 0x0621, 0x065E },
-    { 0x0660, 0x0669 },
+    { 0x0620, 0x0669 },
     { 0x066E, 0x06D3 },
     { 0x06D5, 0x06DC },
     { 0x06DF, 0x06E8 },
     { 0x074D, 0x07B1 },
     { 0x07C0, 0x07F5 },
     { 0x07FA, 0x07FA },
-    { 0x0901, 0x0939 },
-    { 0x093C, 0x094D },
-    { 0x0950, 0x0954 },
-    { 0x0958, 0x0963 },
+    { 0x0800, 0x082D },
+    { 0x0840, 0x085B },
+    { 0x0900, 0x0963 },
     { 0x0966, 0x096F },
-    { 0x0971, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x0971, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0981, 0x0983 },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
     { 0x0CDE, 0x0CDE },
     { 0x0CE0, 0x0CE3 },
     { 0x0CE6, 0x0CEF },
+    { 0x0CF1, 0x0CF2 },
     { 0x0D02, 0x0D03 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D44 },
     { 0x0D46, 0x0D48 },
-    { 0x0D4A, 0x0D4D },
+    { 0x0D4A, 0x0D4E },
     { 0x0D57, 0x0D57 },
     { 0x0D60, 0x0D63 },
     { 0x0D66, 0x0D6F },
     { 0x0F3E, 0x0F47 },
     { 0x0F49, 0x0F6C },
     { 0x0F71, 0x0F84 },
-    { 0x0F86, 0x0F8B },
-    { 0x0F90, 0x0F97 },
+    { 0x0F86, 0x0F97 },
     { 0x0F99, 0x0FBC },
     { 0x0FC6, 0x0FC6 },
     { 0x1000, 0x1049 },
-    { 0x1050, 0x1099 },
+    { 0x1050, 0x109D },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x12D8, 0x1310 },
     { 0x1312, 0x1315 },
     { 0x1318, 0x135A },
-    { 0x135F, 0x135F },
+    { 0x135D, 0x135F },
     { 0x1369, 0x1371 },
     { 0x1380, 0x138F },
     { 0x13A0, 0x13F4 },
     { 0x1401, 0x166C },
-    { 0x166F, 0x1676 },
+    { 0x166F, 0x167F },
     { 0x1681, 0x169A },
     { 0x16A0, 0x16EA },
     { 0x16EE, 0x16F0 },
     { 0x1810, 0x1819 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1920, 0x192B },
     { 0x1930, 0x193B },
     { 0x1946, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19B0, 0x19C9 },
-    { 0x19D0, 0x19D9 },
+    { 0x19D0, 0x19DA },
     { 0x1A00, 0x1A1B },
+    { 0x1A20, 0x1A5E },
+    { 0x1A60, 0x1A7C },
+    { 0x1A7F, 0x1A89 },
+    { 0x1A90, 0x1A99 },
+    { 0x1AA7, 0x1AA7 },
     { 0x1B00, 0x1B4B },
     { 0x1B50, 0x1B59 },
     { 0x1B6B, 0x1B73 },
     { 0x1B80, 0x1BAA },
     { 0x1BAE, 0x1BB9 },
+    { 0x1BC0, 0x1BF3 },
     { 0x1C00, 0x1C37 },
     { 0x1C40, 0x1C49 },
     { 0x1C4D, 0x1C7D },
+    { 0x1CD0, 0x1CD2 },
+    { 0x1CD4, 0x1CF2 },
     { 0x1D00, 0x1DE6 },
-    { 0x1DFE, 0x1F15 },
+    { 0x1DFC, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1F20, 0x1F45 },
     { 0x1F48, 0x1F4D },
     { 0x2054, 0x2054 },
     { 0x2071, 0x2071 },
     { 0x207F, 0x207F },
-    { 0x2090, 0x2094 },
+    { 0x2090, 0x209C },
     { 0x20D0, 0x20DC },
     { 0x20E1, 0x20E1 },
     { 0x20E5, 0x20F0 },
     { 0x2160, 0x2188 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CE4 },
+    { 0x2C60, 0x2CE4 },
+    { 0x2CEB, 0x2CF1 },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
     { 0x2D6F, 0x2D6F },
-    { 0x2D80, 0x2D96 },
+    { 0x2D7F, 0x2D96 },
     { 0x2DA0, 0x2DA6 },
     { 0x2DA8, 0x2DAE },
     { 0x2DB0, 0x2DB6 },
     { 0x30FC, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x31A0, 0x31B7 },
+    { 0x31A0, 0x31BA },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FC3 },
+    { 0x4E00, 0x9FCB },
     { 0xA000, 0xA48C },
+    { 0xA4D0, 0xA4FD },
     { 0xA500, 0xA60C },
     { 0xA610, 0xA62B },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA66F },
+    { 0xA640, 0xA66F },
     { 0xA67C, 0xA67D },
     { 0xA67F, 0xA697 },
+    { 0xA6A0, 0xA6F1 },
     { 0xA717, 0xA71F },
     { 0xA722, 0xA788 },
-    { 0xA78B, 0xA78C },
-    { 0xA7FB, 0xA827 },
+    { 0xA78B, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA827 },
     { 0xA840, 0xA873 },
     { 0xA880, 0xA8C4 },
     { 0xA8D0, 0xA8D9 },
+    { 0xA8E0, 0xA8F7 },
+    { 0xA8FB, 0xA8FB },
     { 0xA900, 0xA92D },
     { 0xA930, 0xA953 },
+    { 0xA960, 0xA97C },
+    { 0xA980, 0xA9C0 },
+    { 0xA9CF, 0xA9D9 },
     { 0xAA00, 0xAA36 },
     { 0xAA40, 0xAA4D },
     { 0xAA50, 0xAA59 },
+    { 0xAA60, 0xAA76 },
+    { 0xAA7A, 0xAA7B },
+    { 0xAA80, 0xAAC2 },
+    { 0xAADB, 0xAADD },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABEA },
+    { 0xABEC, 0xABED },
+    { 0xABF0, 0xABF9 },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xF900, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
+    { 0x1083F, 0x10855 },
     { 0x10900, 0x10915 },
     { 0x10920, 0x10939 },
     { 0x10A00, 0x10A03 },
     { 0x10A19, 0x10A33 },
     { 0x10A38, 0x10A3A },
     { 0x10A3F, 0x10A3F },
+    { 0x10A60, 0x10A7C },
+    { 0x10B00, 0x10B35 },
+    { 0x10B40, 0x10B55 },
+    { 0x10B60, 0x10B72 },
+    { 0x10C00, 0x10C48 },
+    { 0x11000, 0x11046 },
+    { 0x11066, 0x1106F },
+    { 0x11080, 0x110BA },
     { 0x12000, 0x1236E },
     { 0x12400, 0x12462 },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x1D165, 0x1D169 },
     { 0x1D16D, 0x1D172 },
     { 0x1D17B, 0x1D182 },
     { 0x1D7C4, 0x1D7CB },
     { 0x1D7CE, 0x1D7FF },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D },
     { 0xE0100, 0xE01EF }
 
index 57326c0..86b27c1 100644 (file)
     { 0x038E, 0x03A1 },
     { 0x03A3, 0x03F5 },
     { 0x03F7, 0x0481 },
-    { 0x048A, 0x0523 },
+    { 0x048A, 0x0527 },
     { 0x0531, 0x0556 },
     { 0x0559, 0x0559 },
     { 0x0561, 0x0587 },
     { 0x05D0, 0x05EA },
     { 0x05F0, 0x05F2 },
-    { 0x0621, 0x064A },
+    { 0x0620, 0x064A },
     { 0x066E, 0x066F },
     { 0x0671, 0x06D3 },
     { 0x06D5, 0x06D5 },
     { 0x07CA, 0x07EA },
     { 0x07F4, 0x07F5 },
     { 0x07FA, 0x07FA },
+    { 0x0800, 0x0815 },
+    { 0x081A, 0x081A },
+    { 0x0824, 0x0824 },
+    { 0x0828, 0x0828 },
+    { 0x0840, 0x0858 },
     { 0x0904, 0x0939 },
     { 0x093D, 0x093D },
     { 0x0950, 0x0950 },
     { 0x0958, 0x0961 },
-    { 0x0971, 0x0972 },
-    { 0x097B, 0x097F },
+    { 0x0971, 0x0977 },
+    { 0x0979, 0x097F },
     { 0x0985, 0x098C },
     { 0x098F, 0x0990 },
     { 0x0993, 0x09A8 },
     { 0x0CBD, 0x0CBD },
     { 0x0CDE, 0x0CDE },
     { 0x0CE0, 0x0CE1 },
+    { 0x0CF1, 0x0CF2 },
     { 0x0D05, 0x0D0C },
     { 0x0D0E, 0x0D10 },
-    { 0x0D12, 0x0D28 },
-    { 0x0D2A, 0x0D39 },
+    { 0x0D12, 0x0D3A },
     { 0x0D3D, 0x0D3D },
+    { 0x0D4E, 0x0D4E },
     { 0x0D60, 0x0D61 },
     { 0x0D7A, 0x0D7F },
     { 0x0D85, 0x0D96 },
     { 0x0F00, 0x0F00 },
     { 0x0F40, 0x0F47 },
     { 0x0F49, 0x0F6C },
-    { 0x0F88, 0x0F8B },
+    { 0x0F88, 0x0F8C },
     { 0x1000, 0x102A },
     { 0x103F, 0x103F },
     { 0x1050, 0x1055 },
     { 0x10A0, 0x10C5 },
     { 0x10D0, 0x10FA },
     { 0x10FC, 0x10FC },
-    { 0x1100, 0x1159 },
-    { 0x115F, 0x11A2 },
-    { 0x11A8, 0x11F9 },
-    { 0x1200, 0x1248 },
+    { 0x1100, 0x1248 },
     { 0x124A, 0x124D },
     { 0x1250, 0x1256 },
     { 0x1258, 0x1258 },
     { 0x1380, 0x138F },
     { 0x13A0, 0x13F4 },
     { 0x1401, 0x166C },
-    { 0x166F, 0x1676 },
+    { 0x166F, 0x167F },
     { 0x1681, 0x169A },
     { 0x16A0, 0x16EA },
     { 0x16EE, 0x16F0 },
     { 0x1820, 0x1877 },
     { 0x1880, 0x18A8 },
     { 0x18AA, 0x18AA },
+    { 0x18B0, 0x18F5 },
     { 0x1900, 0x191C },
     { 0x1950, 0x196D },
     { 0x1970, 0x1974 },
-    { 0x1980, 0x19A9 },
+    { 0x1980, 0x19AB },
     { 0x19C1, 0x19C7 },
     { 0x1A00, 0x1A16 },
+    { 0x1A20, 0x1A54 },
+    { 0x1AA7, 0x1AA7 },
     { 0x1B05, 0x1B33 },
     { 0x1B45, 0x1B4B },
     { 0x1B83, 0x1BA0 },
     { 0x1BAE, 0x1BAF },
+    { 0x1BC0, 0x1BE5 },
     { 0x1C00, 0x1C23 },
     { 0x1C4D, 0x1C4F },
     { 0x1C5A, 0x1C7D },
+    { 0x1CE9, 0x1CEC },
+    { 0x1CEE, 0x1CF1 },
     { 0x1D00, 0x1DBF },
     { 0x1E00, 0x1F15 },
     { 0x1F18, 0x1F1D },
     { 0x1FF6, 0x1FFC },
     { 0x2071, 0x2071 },
     { 0x207F, 0x207F },
-    { 0x2090, 0x2094 },
+    { 0x2090, 0x209C },
     { 0x2102, 0x2102 },
     { 0x2107, 0x2107 },
     { 0x210A, 0x2113 },
     { 0x2160, 0x2188 },
     { 0x2C00, 0x2C2E },
     { 0x2C30, 0x2C5E },
-    { 0x2C60, 0x2C6F },
-    { 0x2C71, 0x2C7D },
-    { 0x2C80, 0x2CE4 },
+    { 0x2C60, 0x2CE4 },
+    { 0x2CEB, 0x2CEE },
     { 0x2D00, 0x2D25 },
     { 0x2D30, 0x2D65 },
     { 0x2D6F, 0x2D6F },
     { 0x30FC, 0x30FF },
     { 0x3105, 0x312D },
     { 0x3131, 0x318E },
-    { 0x31A0, 0x31B7 },
+    { 0x31A0, 0x31BA },
     { 0x31F0, 0x31FF },
     { 0x3400, 0x4DB5 },
-    { 0x4E00, 0x9FC3 },
+    { 0x4E00, 0x9FCB },
     { 0xA000, 0xA48C },
+    { 0xA4D0, 0xA4FD },
     { 0xA500, 0xA60C },
     { 0xA610, 0xA61F },
     { 0xA62A, 0xA62B },
-    { 0xA640, 0xA65F },
-    { 0xA662, 0xA66E },
+    { 0xA640, 0xA66E },
     { 0xA67F, 0xA697 },
+    { 0xA6A0, 0xA6EF },
     { 0xA717, 0xA71F },
     { 0xA722, 0xA788 },
-    { 0xA78B, 0xA78C },
-    { 0xA7FB, 0xA801 },
+    { 0xA78B, 0xA78E },
+    { 0xA790, 0xA791 },
+    { 0xA7A0, 0xA7A9 },
+    { 0xA7FA, 0xA801 },
     { 0xA803, 0xA805 },
     { 0xA807, 0xA80A },
     { 0xA80C, 0xA822 },
     { 0xA840, 0xA873 },
     { 0xA882, 0xA8B3 },
+    { 0xA8F2, 0xA8F7 },
+    { 0xA8FB, 0xA8FB },
     { 0xA90A, 0xA925 },
     { 0xA930, 0xA946 },
+    { 0xA960, 0xA97C },
+    { 0xA984, 0xA9B2 },
+    { 0xA9CF, 0xA9CF },
     { 0xAA00, 0xAA28 },
     { 0xAA40, 0xAA42 },
     { 0xAA44, 0xAA4B },
+    { 0xAA60, 0xAA76 },
+    { 0xAA7A, 0xAA7A },
+    { 0xAA80, 0xAAAF },
+    { 0xAAB1, 0xAAB1 },
+    { 0xAAB5, 0xAAB6 },
+    { 0xAAB9, 0xAABD },
+    { 0xAAC0, 0xAAC0 },
+    { 0xAAC2, 0xAAC2 },
+    { 0xAADB, 0xAADD },
+    { 0xAB01, 0xAB06 },
+    { 0xAB09, 0xAB0E },
+    { 0xAB11, 0xAB16 },
+    { 0xAB20, 0xAB26 },
+    { 0xAB28, 0xAB2E },
+    { 0xABC0, 0xABE2 },
     { 0xAC00, 0xD7A3 },
+    { 0xD7B0, 0xD7C6 },
+    { 0xD7CB, 0xD7FB },
     { 0xF900, 0xFA2D },
-    { 0xFA30, 0xFA6A },
+    { 0xFA30, 0xFA6D },
     { 0xFA70, 0xFAD9 },
     { 0xFB00, 0xFB06 },
     { 0xFB13, 0xFB17 },
     { 0x1080A, 0x10835 },
     { 0x10837, 0x10838 },
     { 0x1083C, 0x1083C },
-    { 0x1083F, 0x1083F },
+    { 0x1083F, 0x10855 },
     { 0x10900, 0x10915 },
     { 0x10920, 0x10939 },
     { 0x10A00, 0x10A00 },
     { 0x10A10, 0x10A13 },
     { 0x10A15, 0x10A17 },
     { 0x10A19, 0x10A33 },
+    { 0x10A60, 0x10A7C },
+    { 0x10B00, 0x10B35 },
+    { 0x10B40, 0x10B55 },
+    { 0x10B60, 0x10B72 },
+    { 0x10C00, 0x10C48 },
+    { 0x11003, 0x11037 },
+    { 0x11083, 0x110AF },
     { 0x12000, 0x1236E },
     { 0x12400, 0x12462 },
+    { 0x13000, 0x1342E },
+    { 0x16800, 0x16A38 },
+    { 0x1B000, 0x1B001 },
     { 0x1D400, 0x1D454 },
     { 0x1D456, 0x1D49C },
     { 0x1D49E, 0x1D49F },
     { 0x1D7AA, 0x1D7C2 },
     { 0x1D7C4, 0x1D7CB },
     { 0x20000, 0x2A6D6 },
+    { 0x2A700, 0x2B734 },
+    { 0x2B740, 0x2B81D },
     { 0x2F800, 0x2FA1D }
 
 #define PREDICATE(c) uc_is_property_xid_start (c)
index faefd5e..a328341 100644 (file)
@@ -28,6 +28,7 @@
     { 0x206A, 0x206F },
     { 0xFEFF, 0xFEFF },
     { 0xFFF9, 0xFFFB },
+    { 0x110BD, 0x110BD },
     { 0x1D173, 0x1D17A },
     { 0xE0001, 0xE0001 },
     { 0xE0020, 0xE007F }
diff --git a/tests/unigbrk/GraphemeBreakTest.txt b/tests/unigbrk/GraphemeBreakTest.txt
new file mode 100644 (file)
index 0000000..601885c
--- /dev/null
@@ -0,0 +1,311 @@
+# GraphemeBreakTest-6.0.0.txt
+# Date: 2010-05-18, 00:49:27 GMT [MD]
+#
+# Unicode Character Database
+# Copyright (c) 1991-2010 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For documentation, see http://www.unicode.org/reports/tr44/
+#
+# Default Grapheme Break Test
+#
+# Format:
+# <string> (# <comment>)?
+#  <string> contains hex Unicode code points, with
+#      ÷ wherever there is a break opportunity, and
+#      × wherever there is not.
+#  <comment> the format can change, but currently it shows:
+#      - the sample character name
+#      - (x) the Grapheme_Break property* for the sample character
+#      - [x] the rule that determines whether there is a break or not
+#
+# These samples may be extended or changed in the future.
+#
+÷ 0020 ÷ 0020 ÷     #  ÷ [0.2] SPACE (Other) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0020 ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0020 ÷ 000D ÷     #  ÷ [0.2] SPACE (Other) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0020 × 0308 ÷ 000D ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0020 ÷ 000A ÷     #  ÷ [0.2] SPACE (Other) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0020 × 0308 ÷ 000A ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0020 ÷ 0001 ÷     #  ÷ [0.2] SPACE (Other) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0001 ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0020 × 0300 ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0020 × 0308 × 0300 ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0020 ÷ 0E40 ÷     #  ÷ [0.2] SPACE (Other) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 0020 × 0308 ÷ 0E40 ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 0020 × 0903 ÷     #  ÷ [0.2] SPACE (Other) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0020 × 0308 × 0903 ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0020 ÷ 1100 ÷     #  ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0020 × 0308 ÷ 1100 ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0020 ÷ 1160 ÷     #  ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0020 × 0308 ÷ 1160 ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0020 ÷ 11A8 ÷     #  ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0020 × 0308 ÷ 11A8 ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0020 ÷ AC00 ÷     #  ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0020 × 0308 ÷ AC00 ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0020 ÷ AC01 ÷     #  ÷ [0.2] SPACE (Other) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0020 × 0308 ÷ AC01 ÷     #  ÷ [0.2] SPACE (Other) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 000D ÷ 0020 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] SPACE (Other) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0020 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 000D ÷ 000D ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 000D ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000D × 000A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) × [3.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 000A ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000D ÷ 0001 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0001 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 000D ÷ 0300 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 000D ÷ 0308 × 0300 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 000D ÷ 0E40 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 0E40 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 000D ÷ 0903 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 000D ÷ 0308 × 0903 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 000D ÷ 1100 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 1100 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 000D ÷ 1160 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 1160 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 000D ÷ 11A8 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ 11A8 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 000D ÷ AC00 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ AC00 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 000D ÷ AC01 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 000D ÷ 0308 ÷ AC01 ÷     #  ÷ [0.2] <CARRIAGE RETURN (CR)> (CR) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 000A ÷ 0020 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] SPACE (Other) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0020 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 000A ÷ 000D ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 000D ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 000A ÷ 000A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 000A ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 000A ÷ 0001 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0001 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 000A ÷ 0300 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 000A ÷ 0308 × 0300 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 000A ÷ 0E40 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 0E40 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 000A ÷ 0903 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 000A ÷ 0308 × 0903 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 000A ÷ 1100 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 1100 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 000A ÷ 1160 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 1160 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 000A ÷ 11A8 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ 11A8 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 000A ÷ AC00 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ AC00 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 000A ÷ AC01 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 000A ÷ 0308 ÷ AC01 ÷     #  ÷ [0.2] <LINE FEED (LF)> (LF) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0001 ÷ 0020 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] SPACE (Other) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 0020 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0001 ÷ 000D ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 000D ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0001 ÷ 000A ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 000A ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0001 ÷ 0001 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 0001 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0001 ÷ 0300 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0001 ÷ 0308 × 0300 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0001 ÷ 0E40 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 0E40 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 0001 ÷ 0903 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0001 ÷ 0308 × 0903 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0001 ÷ 1100 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 1100 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0001 ÷ 1160 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 1160 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0001 ÷ 11A8 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ 11A8 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0001 ÷ AC00 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ AC00 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0001 ÷ AC01 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0001 ÷ 0308 ÷ AC01 ÷     #  ÷ [0.2] <START OF HEADING> (Control) ÷ [4.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0300 ÷ 0020 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0020 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0300 ÷ 000D ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0300 × 0308 ÷ 000D ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0300 ÷ 000A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0300 × 0308 ÷ 000A ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0300 ÷ 0001 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0001 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0300 × 0300 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0300 × 0308 × 0300 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0300 ÷ 0E40 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 0300 × 0308 ÷ 0E40 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 0300 × 0903 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0300 × 0308 × 0903 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0300 ÷ 1100 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0300 × 0308 ÷ 1100 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0300 ÷ 1160 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0300 × 0308 ÷ 1160 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0300 ÷ 11A8 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0300 × 0308 ÷ 11A8 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0300 ÷ AC00 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0300 × 0308 ÷ AC00 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0300 ÷ AC01 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0300 × 0308 ÷ AC01 ÷     #  ÷ [0.2] COMBINING GRAVE ACCENT (Extend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0E40 × 0020 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.2] SPACE (Other) ÷ [0.3]
+÷ 0E40 × 0308 ÷ 0020 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0E40 ÷ 000D ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0E40 × 0308 ÷ 000D ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0E40 ÷ 000A ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0E40 × 0308 ÷ 000A ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0E40 ÷ 0001 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0E40 × 0308 ÷ 0001 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0E40 × 0300 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0E40 × 0308 × 0300 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0E40 × 0E40 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.2] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 0E40 × 0308 ÷ 0E40 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 0E40 × 0903 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0E40 × 0308 × 0903 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0E40 × 1100 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.2] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0E40 × 0308 ÷ 1100 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0E40 × 1160 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.2] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0E40 × 0308 ÷ 1160 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0E40 × 11A8 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.2] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0E40 × 0308 ÷ 11A8 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0E40 × AC00 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.2] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0E40 × 0308 ÷ AC00 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0E40 × AC01 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.2] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0E40 × 0308 ÷ AC01 ÷     #  ÷ [0.2] THAI CHARACTER SARA E (Prepend) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0903 ÷ 0020 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0903 × 0308 ÷ 0020 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 0903 ÷ 000D ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0903 × 0308 ÷ 000D ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 0903 ÷ 000A ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0903 × 0308 ÷ 000A ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 0903 ÷ 0001 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0903 × 0308 ÷ 0001 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 0903 × 0300 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0903 × 0308 × 0300 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 0903 ÷ 0E40 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 0903 × 0308 ÷ 0E40 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 0903 × 0903 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0903 × 0308 × 0903 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 0903 ÷ 1100 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0903 × 0308 ÷ 1100 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 0903 ÷ 1160 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0903 × 0308 ÷ 1160 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 0903 ÷ 11A8 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0903 × 0308 ÷ 11A8 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 0903 ÷ AC00 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0903 × 0308 ÷ AC00 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 0903 ÷ AC01 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 0903 × 0308 ÷ AC01 ÷     #  ÷ [0.2] DEVANAGARI SIGN VISARGA (SpacingMark) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 1100 ÷ 0020 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 1100 × 0308 ÷ 0020 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 1100 ÷ 000D ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 1100 × 0308 ÷ 000D ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 1100 ÷ 000A ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 1100 × 0308 ÷ 000A ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 1100 ÷ 0001 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 1100 × 0308 ÷ 0001 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 1100 × 0300 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 1100 × 0308 × 0300 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 1100 ÷ 0E40 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 1100 × 0308 ÷ 0E40 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 1100 × 0903 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 1100 × 0308 × 0903 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 1100 × 1100 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 1100 × 0308 ÷ 1100 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 1100 × 1160 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 1100 × 0308 ÷ 1160 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 1100 ÷ 11A8 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 1100 × 0308 ÷ 11A8 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 1100 × AC00 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 1100 × 0308 ÷ AC00 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 1100 × AC01 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [6.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 1100 × 0308 ÷ AC01 ÷     #  ÷ [0.2] HANGUL CHOSEONG KIYEOK (L) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 1160 ÷ 0020 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 1160 × 0308 ÷ 0020 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 1160 ÷ 000D ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 1160 × 0308 ÷ 000D ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 1160 ÷ 000A ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 1160 × 0308 ÷ 000A ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 1160 ÷ 0001 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 1160 × 0308 ÷ 0001 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 1160 × 0300 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 1160 × 0308 × 0300 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 1160 ÷ 0E40 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 1160 × 0308 ÷ 0E40 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 1160 × 0903 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 1160 × 0308 × 0903 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 1160 ÷ 1100 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 1160 × 0308 ÷ 1100 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 1160 × 1160 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [7.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 1160 × 0308 ÷ 1160 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 1160 × 11A8 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 1160 × 0308 ÷ 11A8 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 1160 ÷ AC00 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 1160 × 0308 ÷ AC00 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 1160 ÷ AC01 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 1160 × 0308 ÷ AC01 ÷     #  ÷ [0.2] HANGUL JUNGSEONG FILLER (V) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 11A8 ÷ 0020 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 0020 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ 11A8 ÷ 000D ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 000D ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ 11A8 ÷ 000A ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 000A ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ 11A8 ÷ 0001 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 0001 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ 11A8 × 0300 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 11A8 × 0308 × 0300 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ 11A8 ÷ 0E40 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 0E40 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ 11A8 × 0903 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 11A8 × 0308 × 0903 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ 11A8 ÷ 1100 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 1100 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ 11A8 ÷ 1160 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 1160 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ 11A8 × 11A8 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 11A8 × 0308 ÷ 11A8 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ 11A8 ÷ AC00 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 11A8 × 0308 ÷ AC00 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ 11A8 ÷ AC01 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ 11A8 × 0308 ÷ AC01 ÷     #  ÷ [0.2] HANGUL JONGSEONG KIYEOK (T) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ AC00 ÷ 0020 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ AC00 × 0308 ÷ 0020 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ AC00 ÷ 000D ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ AC00 × 0308 ÷ 000D ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ AC00 ÷ 000A ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ AC00 × 0308 ÷ 000A ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ AC00 ÷ 0001 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ AC00 × 0308 ÷ 0001 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ AC00 × 0300 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ AC00 × 0308 × 0300 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ AC00 ÷ 0E40 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ AC00 × 0308 ÷ 0E40 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ AC00 × 0903 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ AC00 × 0308 × 0903 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ AC00 ÷ 1100 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ AC00 × 0308 ÷ 1100 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ AC00 × 1160 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ AC00 × 0308 ÷ 1160 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ AC00 × 11A8 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [7.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ AC00 × 0308 ÷ 11A8 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ AC00 ÷ AC00 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ AC00 × 0308 ÷ AC00 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ AC00 ÷ AC01 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ AC00 × 0308 ÷ AC01 ÷     #  ÷ [0.2] HANGUL SYLLABLE GA (LV) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ AC01 ÷ 0020 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ AC01 × 0308 ÷ 0020 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] SPACE (Other) ÷ [0.3]
+÷ AC01 ÷ 000D ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ AC01 × 0308 ÷ 000D ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <CARRIAGE RETURN (CR)> (CR) ÷ [0.3]
+÷ AC01 ÷ 000A ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ AC01 × 0308 ÷ 000A ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <LINE FEED (LF)> (LF) ÷ [0.3]
+÷ AC01 ÷ 0001 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ AC01 × 0308 ÷ 0001 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [5.0] <START OF HEADING> (Control) ÷ [0.3]
+÷ AC01 × 0300 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ AC01 × 0308 × 0300 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) × [9.0] COMBINING GRAVE ACCENT (Extend) ÷ [0.3]
+÷ AC01 ÷ 0E40 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ AC01 × 0308 ÷ 0E40 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] THAI CHARACTER SARA E (Prepend) ÷ [0.3]
+÷ AC01 × 0903 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ AC01 × 0308 × 0903 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) × [9.1] DEVANAGARI SIGN VISARGA (SpacingMark) ÷ [0.3]
+÷ AC01 ÷ 1100 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ AC01 × 0308 ÷ 1100 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL CHOSEONG KIYEOK (L) ÷ [0.3]
+÷ AC01 ÷ 1160 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ AC01 × 0308 ÷ 1160 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JUNGSEONG FILLER (V) ÷ [0.3]
+÷ AC01 × 11A8 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [8.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ AC01 × 0308 ÷ 11A8 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL JONGSEONG KIYEOK (T) ÷ [0.3]
+÷ AC01 ÷ AC00 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ AC01 × 0308 ÷ AC00 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GA (LV) ÷ [0.3]
+÷ AC01 ÷ AC01 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+÷ AC01 × 0308 ÷ AC01 ÷     #  ÷ [0.2] HANGUL SYLLABLE GAG (LVT) × [9.0] COMBINING DIAERESIS (Extend) ÷ [999.0] HANGUL SYLLABLE GAG (LVT) ÷ [0.3]
+# Lines: 288
diff --git a/tests/unigbrk/test-u16-grapheme-breaks.c b/tests/unigbrk/test-u16-grapheme-breaks.c
new file mode 100644 (file)
index 0000000..0d849f9
--- /dev/null
@@ -0,0 +1,103 @@
+/* Grapheme cluster breaks test.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unigbrk.h>
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "macros.h"
+
+static void
+test_u16_grapheme_breaks (const char *expected, ...)
+{
+  size_t n = strlen (expected);
+  uint16_t s[16];
+  va_list args;
+  char breaks[16];
+  size_t i;
+
+  ASSERT (n <= 16);
+
+  memset (breaks, 0xcc, n);
+
+  va_start (args, expected);
+  for (i = 0; i < n; i++)
+    {
+      int unit = va_arg (args, int);
+      ASSERT (unit >= 0);
+      s[i] = unit;
+    }
+  ASSERT (va_arg (args, int) == -1);
+  va_end (args);
+
+  u16_grapheme_breaks (s, n, breaks);
+  for (i = 0; i < n; i++)
+    if (breaks[i] != (expected[i] == '#'))
+      {
+        size_t j;
+
+        fprintf (stderr, "wrong grapheme breaks:\n");
+
+        fprintf (stderr, "   input:");
+        for (j = 0; j < n; j++)
+          fprintf (stderr, " %02x", s[j]);
+        putc ('\n', stderr);
+
+        fprintf (stderr, "expected:");
+        for (j = 0; j < n; j++)
+          fprintf (stderr, "  %d", expected[j] == '#');
+        putc ('\n', stderr);
+
+        fprintf (stderr, "  actual:");
+        for (j = 0; j < n; j++)
+          fprintf (stderr, "  %d", breaks[j]);
+        putc ('\n', stderr);
+
+        abort ();
+      }
+}
+
+int
+main (void)
+{
+  /* Standalone 1-unit graphemes.  */
+  test_u16_grapheme_breaks ("#", 'a', -1);
+  test_u16_grapheme_breaks ("##", 'a', 'b', -1);
+  test_u16_grapheme_breaks ("###", 'a', 'b', 'c', -1);
+
+#define HIRAGANA_A 0x3042       /* あ: Hiragana letter 'a'. */
+  test_u16_grapheme_breaks ("#", HIRAGANA_A, -1);
+  test_u16_grapheme_breaks ("##", HIRAGANA_A, 'x', -1);
+  test_u16_grapheme_breaks ("##", HIRAGANA_A, HIRAGANA_A, -1);
+
+  /* Combining accents. */
+#define GRAVE 0x0300            /* Combining grave accent. */
+#define ACUTE 0x0301            /* Combining acute accent. */
+  test_u16_grapheme_breaks ("#_", 'e', ACUTE, -1);
+  test_u16_grapheme_breaks ("#__", 'e', ACUTE, GRAVE, -1);
+  test_u16_grapheme_breaks ("#_#", 'e', ACUTE, 'x', -1);
+  test_u16_grapheme_breaks ("#_#_", 'e', ACUTE, 'e', GRAVE, -1);
+
+  return 0;
+}
diff --git a/tests/unigbrk/test-u16-grapheme-next.c b/tests/unigbrk/test-u16-grapheme-next.c
new file mode 100644 (file)
index 0000000..9e4eda1
--- /dev/null
@@ -0,0 +1,102 @@
+/* Next grapheme cluster length test.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unigbrk.h>
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+
+#include "macros.h"
+
+static void
+test_u16_grapheme_next (size_t len, ...)
+{
+  const uint16_t *next;
+  uint16_t s[16];
+  va_list args;
+  size_t n;
+
+  va_start (args, len);
+  n = 0;
+  for (;;)
+    {
+      int unit = va_arg (args, int);
+      if (unit == -1)
+        break;
+      else if (n >= sizeof s / sizeof *s)
+        abort ();
+
+      s[n++] = unit;
+    }
+  va_end (args);
+
+  next = u16_grapheme_next (s, s + n);
+  if (next != s + len)
+    {
+      size_t i;
+
+      if (next == NULL)
+        fputs ("u16_grapheme_next returned NULL", stderr);
+      else
+        fprintf (stderr, "u16_grapheme_next skipped %zu units", next - s);
+      fprintf (stderr, ", expected %zu:\n", len);
+      for (i = 0; i < n; i++)
+        fprintf (stderr, " %04x", s[i]);
+      putc ('\n', stderr);
+      abort ();
+    }
+}
+
+int
+main (void)
+{
+  static const uint16_t s[] = { 'a', 'b', 'c' };
+
+  /* Empty string. */
+  ASSERT (u16_grapheme_next (NULL, NULL) == NULL);
+  ASSERT (u16_grapheme_next (s, s) == NULL);
+
+  /* Standalone 1-unit graphemes.  */
+  test_u16_grapheme_next (1, 'a', -1);
+  test_u16_grapheme_next (1, 'a', 'b', -1);
+  test_u16_grapheme_next (1, 'a', 'b', 'c', -1);
+
+  /* Multi-unit, single code point graphemes. */
+#define HIRAGANA_A 0x3042       /* あ: Hiragana letter 'a'. */
+  test_u16_grapheme_next (1, HIRAGANA_A, -1);
+  test_u16_grapheme_next (1, HIRAGANA_A, 'x', -1);
+  test_u16_grapheme_next (1, HIRAGANA_A, HIRAGANA_A, -1);
+
+  /* Combining accents. */
+#define GRAVE 0x0300            /* Combining grave accent. */
+#define ACUTE 0x0301            /* Combining acute accent. */
+  test_u16_grapheme_next (2, 'e', ACUTE, -1);
+  test_u16_grapheme_next (3, 'e', ACUTE, GRAVE, -1);
+  test_u16_grapheme_next (2, 'e', ACUTE, 'x', -1);
+  test_u16_grapheme_next (2, 'e', ACUTE, 'e', ACUTE, -1);
+
+  /* Surrogate pairs. */
+  test_u16_grapheme_next (2, 0xd83d, 0xde10, -1); /* 😐: neutral face. */
+  test_u16_grapheme_next (3, 0xd83d, 0xde10, GRAVE, -1);
+
+  return 0;
+}
diff --git a/tests/unigbrk/test-u16-grapheme-prev.c b/tests/unigbrk/test-u16-grapheme-prev.c
new file mode 100644 (file)
index 0000000..06af73d
--- /dev/null
@@ -0,0 +1,104 @@
+/* Previous grapheme cluster test.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unigbrk.h>
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+
+#include "macros.h"
+
+static void
+test_u16_grapheme_prev (size_t len, ...)
+{
+  const uint16_t *prev;
+  const uint16_t *end;
+  uint16_t s[16];
+  va_list args;
+  size_t n;
+
+  va_start (args, len);
+  n = 0;
+  for (;;)
+    {
+      int unit = va_arg (args, int);
+      if (unit == -1)
+        break;
+      else if (n >= sizeof s / sizeof *s)
+        abort ();
+
+      s[n++] = unit;
+    }
+  va_end (args);
+
+  end = s + n;
+  prev = u16_grapheme_prev (end, s);
+  if (prev != end - len)
+    {
+      size_t i;
+
+      if (prev == NULL)
+        fputs ("u16_grapheme_prev returned NULL", stderr);
+      else
+        fprintf (stderr, "u16_grapheme_prev skipped %zu units", end - prev);
+      fprintf (stderr, ", expected %zu:\n", len);
+      for (i = 0; i < n; i++)
+        fprintf (stderr, " %04x", s[i]);
+      putc ('\n', stderr);
+      abort ();
+    }
+}
+
+int
+main (void)
+{
+  static const uint16_t s[] = { 'a', 'b', 'c' };
+
+  /* Empty string. */
+  ASSERT (u16_grapheme_prev (NULL, NULL) == NULL);
+  ASSERT (u16_grapheme_prev (s, s) == NULL);
+
+  /* Standalone 1-unit graphemes.  */
+  test_u16_grapheme_prev (1, 'a', -1);
+  test_u16_grapheme_prev (1, 'a', 'b', -1);
+  test_u16_grapheme_prev (1, 'a', 'b', 'c', -1);
+
+  /* Multi-unit, single code point graphemes. */
+#define HIRAGANA_A 0x3042       /* あ: Hiragana letter 'a'. */
+  test_u16_grapheme_prev (1, HIRAGANA_A, -1);
+  test_u16_grapheme_prev (1, HIRAGANA_A, 'x', -1);
+  test_u16_grapheme_prev (1, HIRAGANA_A, HIRAGANA_A, -1);
+
+  /* Combining accents. */
+#define GRAVE 0x0300            /* Combining grave accent. */
+#define ACUTE 0x0301            /* Combining acute accent. */
+  test_u16_grapheme_prev (2, 'e', ACUTE, -1);
+  test_u16_grapheme_prev (3, 'e', ACUTE, GRAVE, -1);
+  test_u16_grapheme_prev (1, 'e', ACUTE, 'x', -1);
+  test_u16_grapheme_prev (2, 'e', ACUTE, 'e', ACUTE, -1);
+
+  /* Surrogate pairs. */
+  test_u16_grapheme_prev (2, 0xd83d, 0xde10, -1); /* 😐: neutral face. */
+  test_u16_grapheme_prev (3, 0xd83d, 0xde10, GRAVE, -1);
+
+  return 0;
+}
diff --git a/tests/unigbrk/test-u32-grapheme-breaks.c b/tests/unigbrk/test-u32-grapheme-breaks.c
new file mode 100644 (file)
index 0000000..945ad59
--- /dev/null
@@ -0,0 +1,103 @@
+/* Grapheme cluster breaks test.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unigbrk.h>
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "macros.h"
+
+static void
+test_u32_grapheme_breaks (const char *expected, ...)
+{
+  size_t n = strlen (expected);
+  uint32_t s[16];
+  va_list args;
+  char breaks[16];
+  size_t i;
+
+  ASSERT (n <= 16);
+
+  memset (breaks, 0xcc, n);
+
+  va_start (args, expected);
+  for (i = 0; i < n; i++)
+    {
+      int unit = va_arg (args, int);
+      ASSERT (unit >= 0);
+      s[i] = unit;
+    }
+  ASSERT (va_arg (args, int) == -1);
+  va_end (args);
+
+  u32_grapheme_breaks (s, n, breaks);
+  for (i = 0; i < n; i++)
+    if (breaks[i] != (expected[i] == '#'))
+      {
+        size_t j;
+
+        fprintf (stderr, "wrong grapheme breaks:\n");
+
+        fprintf (stderr, "   input:");
+        for (j = 0; j < n; j++)
+          fprintf (stderr, " %02x", s[j]);
+        putc ('\n', stderr);
+
+        fprintf (stderr, "expected:");
+        for (j = 0; j < n; j++)
+          fprintf (stderr, "  %d", expected[j] == '#');
+        putc ('\n', stderr);
+
+        fprintf (stderr, "  actual:");
+        for (j = 0; j < n; j++)
+          fprintf (stderr, "  %d", breaks[j]);
+        putc ('\n', stderr);
+
+        abort ();
+      }
+}
+
+int
+main (void)
+{
+  /* Standalone 1-unit graphemes.  */
+  test_u32_grapheme_breaks ("#", 'a', -1);
+  test_u32_grapheme_breaks ("##", 'a', 'b', -1);
+  test_u32_grapheme_breaks ("###", 'a', 'b', 'c', -1);
+
+#define HIRAGANA_A 0x3042       /* あ: Hiragana letter 'a'. */
+  test_u32_grapheme_breaks ("#", HIRAGANA_A, -1);
+  test_u32_grapheme_breaks ("##", HIRAGANA_A, 'x', -1);
+  test_u32_grapheme_breaks ("##", HIRAGANA_A, HIRAGANA_A, -1);
+
+  /* Combining accents. */
+#define GRAVE 0x0300            /* Combining grave accent. */
+#define ACUTE 0x0301            /* Combining acute accent. */
+  test_u32_grapheme_breaks ("#_", 'e', ACUTE, -1);
+  test_u32_grapheme_breaks ("#__", 'e', ACUTE, GRAVE, -1);
+  test_u32_grapheme_breaks ("#_#", 'e', ACUTE, 'x', -1);
+  test_u32_grapheme_breaks ("#_#_", 'e', ACUTE, 'e', GRAVE, -1);
+
+  return 0;
+}
diff --git a/tests/unigbrk/test-u32-grapheme-next.c b/tests/unigbrk/test-u32-grapheme-next.c
new file mode 100644 (file)
index 0000000..3678784
--- /dev/null
@@ -0,0 +1,103 @@
+/* Next grapheme cluster length test.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unigbrk.h>
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+
+#include "macros.h"
+
+static void
+test_u32_grapheme_next (size_t len, ...)
+{
+  const uint32_t *next;
+  uint32_t s[32];
+  va_list args;
+  size_t n;
+
+  va_start (args, len);
+  n = 0;
+  for (;;)
+    {
+      int unit = va_arg (args, int);
+      if (unit == -1)
+        break;
+      else if (n >= sizeof s / sizeof *s)
+        abort ();
+
+      s[n++] = unit;
+    }
+  va_end (args);
+
+  next = u32_grapheme_next (s, s + n);
+  if (next != s + len)
+    {
+      size_t i;
+
+      if (next == NULL)
+        fputs ("u32_grapheme_next returned NULL", stderr);
+      else
+        fprintf (stderr, "u32_grapheme_next skipped %zu units", next - s);
+      fprintf (stderr, ", expected %zu:\n", len);
+      for (i = 0; i < n; i++)
+        fprintf (stderr, " %04x", s[i]);
+      putc ('\n', stderr);
+      abort ();
+    }
+}
+
+int
+main (void)
+{
+  static const uint32_t s[] = { 'a', 'b', 'c' };
+
+  /* Empty string. */
+  ASSERT (u32_grapheme_next (NULL, NULL) == NULL);
+  ASSERT (u32_grapheme_next (s, s) == NULL);
+
+  /* Standalone 1-unit graphemes.  */
+  test_u32_grapheme_next (1, 'a', -1);
+  test_u32_grapheme_next (1, 'a', 'b', -1);
+  test_u32_grapheme_next (1, 'a', 'b', 'c', -1);
+
+  /* Multi-unit, single code point graphemes. */
+#define HIRAGANA_A 0x3042       /* あ: Hiragana letter 'a'. */
+  test_u32_grapheme_next (1, HIRAGANA_A, -1);
+  test_u32_grapheme_next (1, HIRAGANA_A, 'x', -1);
+  test_u32_grapheme_next (1, HIRAGANA_A, HIRAGANA_A, -1);
+
+  /* Combining accents. */
+#define GRAVE 0x0300            /* Combining grave accent. */
+#define ACUTE 0x0301            /* Combining acute accent. */
+  test_u32_grapheme_next (2, 'e', ACUTE, -1);
+  test_u32_grapheme_next (3, 'e', ACUTE, GRAVE, -1);
+  test_u32_grapheme_next (2, 'e', ACUTE, 'x', -1);
+  test_u32_grapheme_next (2, 'e', ACUTE, 'e', ACUTE, -1);
+
+  /* Outside BMP. */
+#define NEUTRAL_FACE 0x1f610    /* 😐: neutral face. */
+  test_u32_grapheme_next (1, NEUTRAL_FACE, -1);
+  test_u32_grapheme_next (2, NEUTRAL_FACE, GRAVE, -1);
+
+  return 0;
+}
diff --git a/tests/unigbrk/test-u32-grapheme-prev.c b/tests/unigbrk/test-u32-grapheme-prev.c
new file mode 100644 (file)
index 0000000..e393e80
--- /dev/null
@@ -0,0 +1,105 @@
+/* Previous grapheme cluster test.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unigbrk.h>
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+
+#include "macros.h"
+
+static void
+test_u32_grapheme_prev (size_t len, ...)
+{
+  const uint32_t *prev;
+  const uint32_t *end;
+  uint32_t s[16];
+  va_list args;
+  size_t n;
+
+  va_start (args, len);
+  n = 0;
+  for (;;)
+    {
+      int unit = va_arg (args, int);
+      if (unit == -1)
+        break;
+      else if (n >= sizeof s / sizeof *s)
+        abort ();
+
+      s[n++] = unit;
+    }
+  va_end (args);
+
+  end = s + n;
+  prev = u32_grapheme_prev (end, s);
+  if (prev != end - len)
+    {
+      size_t i;
+
+      if (prev == NULL)
+        fputs ("u32_grapheme_prev returned NULL", stderr);
+      else
+        fprintf (stderr, "u32_grapheme_prev skipped %zu units", end - prev);
+      fprintf (stderr, ", expected %zu:\n", len);
+      for (i = 0; i < n; i++)
+        fprintf (stderr, " %04x", s[i]);
+      putc ('\n', stderr);
+      abort ();
+    }
+}
+
+int
+main (void)
+{
+  static const uint32_t s[] = { 'a', 'b', 'c' };
+
+  /* Empty string. */
+  ASSERT (u32_grapheme_prev (NULL, NULL) == NULL);
+  ASSERT (u32_grapheme_prev (s, s) == NULL);
+
+  /* Standalone 1-unit graphemes.  */
+  test_u32_grapheme_prev (1, 'a', -1);
+  test_u32_grapheme_prev (1, 'a', 'b', -1);
+  test_u32_grapheme_prev (1, 'a', 'b', 'c', -1);
+
+  /* Multi-unit, single code point graphemes. */
+#define HIRAGANA_A 0x3042       /* あ: Hiragana letter 'a'. */
+  test_u32_grapheme_prev (1, HIRAGANA_A, -1);
+  test_u32_grapheme_prev (1, HIRAGANA_A, 'x', -1);
+  test_u32_grapheme_prev (1, HIRAGANA_A, HIRAGANA_A, -1);
+
+  /* Combining accents. */
+#define GRAVE 0x0300            /* Combining grave accent. */
+#define ACUTE 0x0301            /* Combining acute accent. */
+  test_u32_grapheme_prev (2, 'e', ACUTE, -1);
+  test_u32_grapheme_prev (3, 'e', ACUTE, GRAVE, -1);
+  test_u32_grapheme_prev (1, 'e', ACUTE, 'x', -1);
+  test_u32_grapheme_prev (2, 'e', ACUTE, 'e', ACUTE, -1);
+
+  /* Outside BMP. */
+#define NEUTRAL_FACE 0x1f610    /* 😐: neutral face. */
+  test_u32_grapheme_prev (1, NEUTRAL_FACE, -1);
+  test_u32_grapheme_prev (2, NEUTRAL_FACE, GRAVE, -1);
+
+  return 0;
+}
diff --git a/tests/unigbrk/test-u8-grapheme-breaks.c b/tests/unigbrk/test-u8-grapheme-breaks.c
new file mode 100644 (file)
index 0000000..b284c2a
--- /dev/null
@@ -0,0 +1,95 @@
+/* Grapheme cluster breaks test.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unigbrk.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "macros.h"
+
+static void
+test_u8_grapheme_breaks (const char *input, const char *expected)
+{
+  const uint8_t *s = (const uint8_t *) input;
+  size_t n = strlen (expected);
+  char *breaks;
+  size_t i;
+
+  breaks = malloc (n);
+  if (!breaks)
+    abort ();
+  memset (breaks, 0xcc, n);
+
+  u8_grapheme_breaks (s, n, breaks);
+  for (i = 0; i < n; i++)
+    if (breaks[i] != (expected[i] == '#'))
+      {
+        size_t j;
+
+        fprintf (stderr, "wrong grapheme breaks:\n");
+
+        fprintf (stderr, "   input:");
+        for (j = 0; j < n; j++)
+          fprintf (stderr, " %02x", s[j]);
+        putc ('\n', stderr);
+
+        fprintf (stderr, "expected:");
+        for (j = 0; j < n; j++)
+          fprintf (stderr, "  %d", expected[j] == '#');
+        putc ('\n', stderr);
+
+        fprintf (stderr, "  actual:");
+        for (j = 0; j < n; j++)
+          fprintf (stderr, "  %d", breaks[j]);
+        putc ('\n', stderr);
+
+        abort ();
+      }
+
+  free (breaks);
+}
+
+int
+main (void)
+{
+  /* Standalone 1-unit graphemes.  */
+  test_u8_grapheme_breaks ("a", "#");
+  test_u8_grapheme_breaks ("ab", "##");
+  test_u8_grapheme_breaks ("abc", "###");
+
+  /* Multi-unit, single code point graphemes. */
+#define HIRAGANA_A "\343\201\202" /* あ: Hiragana letter 'a'. */
+  test_u8_grapheme_breaks (HIRAGANA_A, "#__");
+  test_u8_grapheme_breaks (HIRAGANA_A"x", "#__#");
+  test_u8_grapheme_breaks (HIRAGANA_A HIRAGANA_A, "#__#__");
+
+  /* Combining accents. */
+#define GRAVE "\314\200"        /* Combining grave accent. */
+#define ACUTE "\314\201"        /* Combining acute accent. */
+  test_u8_grapheme_breaks ("e"ACUTE, "#__");
+  test_u8_grapheme_breaks ("e"ACUTE GRAVE, "#____");
+  test_u8_grapheme_breaks ("e"ACUTE"x", "#__#");
+  test_u8_grapheme_breaks ("e"ACUTE "e"ACUTE, "#__#__");
+
+  return 0;
+}
diff --git a/tests/unigbrk/test-u8-grapheme-next.c b/tests/unigbrk/test-u8-grapheme-next.c
new file mode 100644 (file)
index 0000000..66f0df6
--- /dev/null
@@ -0,0 +1,79 @@
+/* Next grapheme cluster length test.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unigbrk.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "macros.h"
+
+static void
+test_u8_grapheme_next (const char *input, size_t n, size_t len)
+{
+  const uint8_t *s = (const uint8_t *) input;
+  const uint8_t *next = u8_grapheme_next (s, s + n);
+  if (next != s + len)
+    {
+      size_t i;
+
+      if (next == NULL)
+        fputs ("u8_grapheme_next returned NULL", stderr);
+      else
+        fprintf (stderr, "u8_grapheme_next skipped %zu bytes", next - s);
+      fprintf (stderr, ", expected %zu:\n", len);
+      for (i = 0; i < n; i++)
+        fprintf (stderr, " %02x", s[i]);
+      putc ('\n', stderr);
+      abort ();
+    }
+}
+
+int
+main (void)
+{
+  static const uint8_t s[] = "abc";
+
+  /* Empty string. */
+  ASSERT (u8_grapheme_next (NULL, NULL) == NULL);
+  ASSERT (u8_grapheme_next (s, s) == NULL);
+
+  /* Standalone 1-unit graphemes.  */
+  test_u8_grapheme_next ("a", 1, 1);
+  test_u8_grapheme_next ("ab", 2, 1);
+  test_u8_grapheme_next ("abc", 3, 1);
+
+  /* Multi-unit, single code point graphemes. */
+#define HIRAGANA_A "\343\201\202" /* あ: Hiragana letter 'a'. */
+  test_u8_grapheme_next (HIRAGANA_A, 3, 3);
+  test_u8_grapheme_next (HIRAGANA_A"x", 4, 3);
+  test_u8_grapheme_next (HIRAGANA_A HIRAGANA_A, 6, 3);
+
+  /* Combining accents. */
+#define GRAVE "\314\200"        /* Combining grave accent. */
+#define ACUTE "\314\201"        /* Combining acute accent. */
+  test_u8_grapheme_next ("e"ACUTE, 3, 3);
+  test_u8_grapheme_next ("e"ACUTE GRAVE, 5, 5);
+  test_u8_grapheme_next ("e"ACUTE"x", 4, 3);
+  test_u8_grapheme_next ("e"ACUTE "e"ACUTE, 6, 3);
+
+  return 0;
+}
diff --git a/tests/unigbrk/test-u8-grapheme-prev.c b/tests/unigbrk/test-u8-grapheme-prev.c
new file mode 100644 (file)
index 0000000..3aae7e7
--- /dev/null
@@ -0,0 +1,80 @@
+/* Previous grapheme cluster test.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unigbrk.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "macros.h"
+
+static void
+test_u8_grapheme_prev (const char *input, size_t n, size_t len)
+{
+  const uint8_t *s = (const uint8_t *) input;
+  const uint8_t *end = s + n;
+  const uint8_t *prev = u8_grapheme_prev (end, s);
+  if (prev != end - len)
+    {
+      size_t i;
+
+      if (prev == NULL)
+        fputs ("u8_grapheme_prev returned NULL", stderr);
+      else
+        fprintf (stderr, "u8_grapheme_prev skipped %zu bytes", end - prev);
+      fprintf (stderr, ", expected %zu:\n", len);
+      for (i = 0; i < n; i++)
+        fprintf (stderr, " %02x", s[i]);
+      putc ('\n', stderr);
+      abort ();
+    }
+}
+
+int
+main (void)
+{
+  static const uint8_t s[] = "abc";
+
+  /* Empty string. */
+  ASSERT (u8_grapheme_prev (NULL, NULL) == NULL);
+  ASSERT (u8_grapheme_prev (s, s) == NULL);
+
+  /* Standalone 1-unit graphemes.  */
+  test_u8_grapheme_prev ("a", 1, 1);
+  test_u8_grapheme_prev ("ab", 2, 1);
+  test_u8_grapheme_prev ("abc", 3, 1);
+
+  /* Multi-unit, single code point graphemes. */
+#define HIRAGANA_A "\343\201\202" /* あ: Hiragana letter 'a'. */
+  test_u8_grapheme_prev (HIRAGANA_A, 3, 3);
+  test_u8_grapheme_prev (HIRAGANA_A"x", 4, 1);
+  test_u8_grapheme_prev (HIRAGANA_A HIRAGANA_A, 6, 3);
+
+  /* Combining accents. */
+#define GRAVE "\314\200"        /* Combining grave accent. */
+#define ACUTE "\314\201"        /* Combining acute accent. */
+  test_u8_grapheme_prev ("e"ACUTE, 3, 3);
+  test_u8_grapheme_prev ("e"ACUTE GRAVE, 5, 5);
+  test_u8_grapheme_prev ("e"ACUTE"x", 4, 1);
+  test_u8_grapheme_prev ("e"ACUTE "e"ACUTE, 6, 3);
+
+  return 0;
+}
diff --git a/tests/unigbrk/test-uc-gbrk-prop.c b/tests/unigbrk/test-uc-gbrk-prop.c
new file mode 100644 (file)
index 0000000..1c71280
--- /dev/null
@@ -0,0 +1,83 @@
+/* Test the Unicode grapheme break property function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification. */
+#include <unigbrk.h>
+
+struct uc_gbrk_prop_range
+{
+  ucs4_t end;
+  int gbp;
+};
+
+static const struct uc_gbrk_prop_range set[] =
+  {
+#include "test-uc-gbrk-prop.h"
+  };
+
+#include "macros.h"
+
+const char *
+graphemebreakproperty_to_string (int gbp)
+{
+  switch (gbp)
+    {
+#define CASE(VALUE) case GBP_##VALUE: return #VALUE;
+      CASE(OTHER)
+      CASE(CR)
+      CASE(LF)
+      CASE(CONTROL)
+      CASE(EXTEND)
+      CASE(PREPEND)
+      CASE(SPACINGMARK)
+      CASE(L)
+      CASE(V)
+      CASE(T)
+      CASE(LV)
+      CASE(LVT)
+    }
+  abort ();
+}
+
+int
+main (void)
+{
+  const struct uc_gbrk_prop_range *r;
+  ucs4_t uc;
+
+  uc = 0;
+  for (r = set; r < set + SIZEOF (set); r++)
+    {
+      for (; uc < r->end; uc++)
+        {
+          int retval = uc_graphemeclusterbreak_property (uc);
+          if (retval != r->gbp)
+            {
+              fprintf (stderr, "uc_graphemeclusterbreak_property(%#x) "
+                       "yielded %s but should have been %s\n",
+                       uc, graphemebreakproperty_to_string (retval),
+                       graphemebreakproperty_to_string (r->gbp));
+              fflush (stderr);
+              abort ();
+            }
+        }
+    }
+  ASSERT (uc == 0x110000);
+
+  return 0;
+}
diff --git a/tests/unigbrk/test-uc-gbrk-prop.h b/tests/unigbrk/test-uc-gbrk-prop.h
new file mode 100644 (file)
index 0000000..179ff03
--- /dev/null
@@ -0,0 +1,1388 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test the Unicode grapheme break property functions.
+   Copyright (C) 2010 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+{ 0x000A, GBP_CONTROL },
+{ 0x000B, GBP_LF },
+{ 0x000D, GBP_CONTROL },
+{ 0x000E, GBP_CR },
+{ 0x0020, GBP_CONTROL },
+{ 0x007F, GBP_OTHER },
+{ 0x00A0, GBP_CONTROL },
+{ 0x00AD, GBP_OTHER },
+{ 0x00AE, GBP_CONTROL },
+{ 0x0300, GBP_OTHER },
+{ 0x0370, GBP_EXTEND },
+{ 0x0483, GBP_OTHER },
+{ 0x048A, GBP_EXTEND },
+{ 0x0591, GBP_OTHER },
+{ 0x05BE, GBP_EXTEND },
+{ 0x05BF, GBP_OTHER },
+{ 0x05C0, GBP_EXTEND },
+{ 0x05C1, GBP_OTHER },
+{ 0x05C3, GBP_EXTEND },
+{ 0x05C4, GBP_OTHER },
+{ 0x05C6, GBP_EXTEND },
+{ 0x05C7, GBP_OTHER },
+{ 0x05C8, GBP_EXTEND },
+{ 0x0600, GBP_OTHER },
+{ 0x0604, GBP_CONTROL },
+{ 0x0610, GBP_OTHER },
+{ 0x061B, GBP_EXTEND },
+{ 0x064B, GBP_OTHER },
+{ 0x0660, GBP_EXTEND },
+{ 0x0670, GBP_OTHER },
+{ 0x0671, GBP_EXTEND },
+{ 0x06D6, GBP_OTHER },
+{ 0x06DD, GBP_EXTEND },
+{ 0x06DE, GBP_CONTROL },
+{ 0x06DF, GBP_OTHER },
+{ 0x06E5, GBP_EXTEND },
+{ 0x06E7, GBP_OTHER },
+{ 0x06E9, GBP_EXTEND },
+{ 0x06EA, GBP_OTHER },
+{ 0x06EE, GBP_EXTEND },
+{ 0x070F, GBP_OTHER },
+{ 0x0710, GBP_CONTROL },
+{ 0x0711, GBP_OTHER },
+{ 0x0712, GBP_EXTEND },
+{ 0x0730, GBP_OTHER },
+{ 0x074B, GBP_EXTEND },
+{ 0x07A6, GBP_OTHER },
+{ 0x07B1, GBP_EXTEND },
+{ 0x07EB, GBP_OTHER },
+{ 0x07F4, GBP_EXTEND },
+{ 0x0816, GBP_OTHER },
+{ 0x081A, GBP_EXTEND },
+{ 0x081B, GBP_OTHER },
+{ 0x0824, GBP_EXTEND },
+{ 0x0825, GBP_OTHER },
+{ 0x0828, GBP_EXTEND },
+{ 0x0829, GBP_OTHER },
+{ 0x082E, GBP_EXTEND },
+{ 0x0859, GBP_OTHER },
+{ 0x085C, GBP_EXTEND },
+{ 0x0900, GBP_OTHER },
+{ 0x0903, GBP_EXTEND },
+{ 0x0904, GBP_SPACINGMARK },
+{ 0x093A, GBP_OTHER },
+{ 0x093B, GBP_EXTEND },
+{ 0x093C, GBP_SPACINGMARK },
+{ 0x093D, GBP_EXTEND },
+{ 0x093E, GBP_OTHER },
+{ 0x0941, GBP_SPACINGMARK },
+{ 0x0949, GBP_EXTEND },
+{ 0x094D, GBP_SPACINGMARK },
+{ 0x094E, GBP_EXTEND },
+{ 0x0950, GBP_SPACINGMARK },
+{ 0x0951, GBP_OTHER },
+{ 0x0958, GBP_EXTEND },
+{ 0x0962, GBP_OTHER },
+{ 0x0964, GBP_EXTEND },
+{ 0x0981, GBP_OTHER },
+{ 0x0982, GBP_EXTEND },
+{ 0x0984, GBP_SPACINGMARK },
+{ 0x09BC, GBP_OTHER },
+{ 0x09BD, GBP_EXTEND },
+{ 0x09BE, GBP_OTHER },
+{ 0x09BF, GBP_EXTEND },
+{ 0x09C1, GBP_SPACINGMARK },
+{ 0x09C5, GBP_EXTEND },
+{ 0x09C7, GBP_OTHER },
+{ 0x09C9, GBP_SPACINGMARK },
+{ 0x09CB, GBP_OTHER },
+{ 0x09CD, GBP_SPACINGMARK },
+{ 0x09CE, GBP_EXTEND },
+{ 0x09D7, GBP_OTHER },
+{ 0x09D8, GBP_EXTEND },
+{ 0x09E2, GBP_OTHER },
+{ 0x09E4, GBP_EXTEND },
+{ 0x0A01, GBP_OTHER },
+{ 0x0A03, GBP_EXTEND },
+{ 0x0A04, GBP_SPACINGMARK },
+{ 0x0A3C, GBP_OTHER },
+{ 0x0A3D, GBP_EXTEND },
+{ 0x0A3E, GBP_OTHER },
+{ 0x0A41, GBP_SPACINGMARK },
+{ 0x0A43, GBP_EXTEND },
+{ 0x0A47, GBP_OTHER },
+{ 0x0A49, GBP_EXTEND },
+{ 0x0A4B, GBP_OTHER },
+{ 0x0A4E, GBP_EXTEND },
+{ 0x0A51, GBP_OTHER },
+{ 0x0A52, GBP_EXTEND },
+{ 0x0A70, GBP_OTHER },
+{ 0x0A72, GBP_EXTEND },
+{ 0x0A75, GBP_OTHER },
+{ 0x0A76, GBP_EXTEND },
+{ 0x0A81, GBP_OTHER },
+{ 0x0A83, GBP_EXTEND },
+{ 0x0A84, GBP_SPACINGMARK },
+{ 0x0ABC, GBP_OTHER },
+{ 0x0ABD, GBP_EXTEND },
+{ 0x0ABE, GBP_OTHER },
+{ 0x0AC1, GBP_SPACINGMARK },
+{ 0x0AC6, GBP_EXTEND },
+{ 0x0AC7, GBP_OTHER },
+{ 0x0AC9, GBP_EXTEND },
+{ 0x0ACA, GBP_SPACINGMARK },
+{ 0x0ACB, GBP_OTHER },
+{ 0x0ACD, GBP_SPACINGMARK },
+{ 0x0ACE, GBP_EXTEND },
+{ 0x0AE2, GBP_OTHER },
+{ 0x0AE4, GBP_EXTEND },
+{ 0x0B01, GBP_OTHER },
+{ 0x0B02, GBP_EXTEND },
+{ 0x0B04, GBP_SPACINGMARK },
+{ 0x0B3C, GBP_OTHER },
+{ 0x0B3D, GBP_EXTEND },
+{ 0x0B3E, GBP_OTHER },
+{ 0x0B40, GBP_EXTEND },
+{ 0x0B41, GBP_SPACINGMARK },
+{ 0x0B45, GBP_EXTEND },
+{ 0x0B47, GBP_OTHER },
+{ 0x0B49, GBP_SPACINGMARK },
+{ 0x0B4B, GBP_OTHER },
+{ 0x0B4D, GBP_SPACINGMARK },
+{ 0x0B4E, GBP_EXTEND },
+{ 0x0B56, GBP_OTHER },
+{ 0x0B58, GBP_EXTEND },
+{ 0x0B62, GBP_OTHER },
+{ 0x0B64, GBP_EXTEND },
+{ 0x0B82, GBP_OTHER },
+{ 0x0B83, GBP_EXTEND },
+{ 0x0BBE, GBP_OTHER },
+{ 0x0BBF, GBP_EXTEND },
+{ 0x0BC0, GBP_SPACINGMARK },
+{ 0x0BC1, GBP_EXTEND },
+{ 0x0BC3, GBP_SPACINGMARK },
+{ 0x0BC6, GBP_OTHER },
+{ 0x0BC9, GBP_SPACINGMARK },
+{ 0x0BCA, GBP_OTHER },
+{ 0x0BCD, GBP_SPACINGMARK },
+{ 0x0BCE, GBP_EXTEND },
+{ 0x0BD7, GBP_OTHER },
+{ 0x0BD8, GBP_EXTEND },
+{ 0x0C01, GBP_OTHER },
+{ 0x0C04, GBP_SPACINGMARK },
+{ 0x0C3E, GBP_OTHER },
+{ 0x0C41, GBP_EXTEND },
+{ 0x0C45, GBP_SPACINGMARK },
+{ 0x0C46, GBP_OTHER },
+{ 0x0C49, GBP_EXTEND },
+{ 0x0C4A, GBP_OTHER },
+{ 0x0C4E, GBP_EXTEND },
+{ 0x0C55, GBP_OTHER },
+{ 0x0C57, GBP_EXTEND },
+{ 0x0C62, GBP_OTHER },
+{ 0x0C64, GBP_EXTEND },
+{ 0x0C82, GBP_OTHER },
+{ 0x0C84, GBP_SPACINGMARK },
+{ 0x0CBC, GBP_OTHER },
+{ 0x0CBD, GBP_EXTEND },
+{ 0x0CBE, GBP_OTHER },
+{ 0x0CBF, GBP_SPACINGMARK },
+{ 0x0CC0, GBP_EXTEND },
+{ 0x0CC2, GBP_SPACINGMARK },
+{ 0x0CC3, GBP_EXTEND },
+{ 0x0CC5, GBP_SPACINGMARK },
+{ 0x0CC6, GBP_OTHER },
+{ 0x0CC7, GBP_EXTEND },
+{ 0x0CC9, GBP_SPACINGMARK },
+{ 0x0CCA, GBP_OTHER },
+{ 0x0CCC, GBP_SPACINGMARK },
+{ 0x0CCE, GBP_EXTEND },
+{ 0x0CD5, GBP_OTHER },
+{ 0x0CD7, GBP_EXTEND },
+{ 0x0CE2, GBP_OTHER },
+{ 0x0CE4, GBP_EXTEND },
+{ 0x0D02, GBP_OTHER },
+{ 0x0D04, GBP_SPACINGMARK },
+{ 0x0D3E, GBP_OTHER },
+{ 0x0D3F, GBP_EXTEND },
+{ 0x0D41, GBP_SPACINGMARK },
+{ 0x0D45, GBP_EXTEND },
+{ 0x0D46, GBP_OTHER },
+{ 0x0D49, GBP_SPACINGMARK },
+{ 0x0D4A, GBP_OTHER },
+{ 0x0D4D, GBP_SPACINGMARK },
+{ 0x0D4E, GBP_EXTEND },
+{ 0x0D57, GBP_OTHER },
+{ 0x0D58, GBP_EXTEND },
+{ 0x0D62, GBP_OTHER },
+{ 0x0D64, GBP_EXTEND },
+{ 0x0D82, GBP_OTHER },
+{ 0x0D84, GBP_SPACINGMARK },
+{ 0x0DCA, GBP_OTHER },
+{ 0x0DCB, GBP_EXTEND },
+{ 0x0DCF, GBP_OTHER },
+{ 0x0DD0, GBP_EXTEND },
+{ 0x0DD2, GBP_SPACINGMARK },
+{ 0x0DD5, GBP_EXTEND },
+{ 0x0DD6, GBP_OTHER },
+{ 0x0DD7, GBP_EXTEND },
+{ 0x0DD8, GBP_OTHER },
+{ 0x0DDF, GBP_SPACINGMARK },
+{ 0x0DE0, GBP_EXTEND },
+{ 0x0DF2, GBP_OTHER },
+{ 0x0DF4, GBP_SPACINGMARK },
+{ 0x0E30, GBP_OTHER },
+{ 0x0E31, GBP_SPACINGMARK },
+{ 0x0E32, GBP_EXTEND },
+{ 0x0E34, GBP_SPACINGMARK },
+{ 0x0E3B, GBP_EXTEND },
+{ 0x0E40, GBP_OTHER },
+{ 0x0E45, GBP_PREPEND },
+{ 0x0E46, GBP_SPACINGMARK },
+{ 0x0E47, GBP_OTHER },
+{ 0x0E4F, GBP_EXTEND },
+{ 0x0EB0, GBP_OTHER },
+{ 0x0EB1, GBP_SPACINGMARK },
+{ 0x0EB2, GBP_EXTEND },
+{ 0x0EB4, GBP_SPACINGMARK },
+{ 0x0EBA, GBP_EXTEND },
+{ 0x0EBB, GBP_OTHER },
+{ 0x0EBD, GBP_EXTEND },
+{ 0x0EC0, GBP_OTHER },
+{ 0x0EC5, GBP_PREPEND },
+{ 0x0EC8, GBP_OTHER },
+{ 0x0ECE, GBP_EXTEND },
+{ 0x0F18, GBP_OTHER },
+{ 0x0F1A, GBP_EXTEND },
+{ 0x0F35, GBP_OTHER },
+{ 0x0F36, GBP_EXTEND },
+{ 0x0F37, GBP_OTHER },
+{ 0x0F38, GBP_EXTEND },
+{ 0x0F39, GBP_OTHER },
+{ 0x0F3A, GBP_EXTEND },
+{ 0x0F3E, GBP_OTHER },
+{ 0x0F40, GBP_SPACINGMARK },
+{ 0x0F71, GBP_OTHER },
+{ 0x0F7F, GBP_EXTEND },
+{ 0x0F80, GBP_SPACINGMARK },
+{ 0x0F85, GBP_EXTEND },
+{ 0x0F86, GBP_OTHER },
+{ 0x0F88, GBP_EXTEND },
+{ 0x0F8D, GBP_OTHER },
+{ 0x0F98, GBP_EXTEND },
+{ 0x0F99, GBP_OTHER },
+{ 0x0FBD, GBP_EXTEND },
+{ 0x0FC6, GBP_OTHER },
+{ 0x0FC7, GBP_EXTEND },
+{ 0x102B, GBP_OTHER },
+{ 0x102D, GBP_SPACINGMARK },
+{ 0x1031, GBP_EXTEND },
+{ 0x1032, GBP_SPACINGMARK },
+{ 0x1038, GBP_EXTEND },
+{ 0x1039, GBP_SPACINGMARK },
+{ 0x103B, GBP_EXTEND },
+{ 0x103D, GBP_SPACINGMARK },
+{ 0x103F, GBP_EXTEND },
+{ 0x1056, GBP_OTHER },
+{ 0x1058, GBP_SPACINGMARK },
+{ 0x105A, GBP_EXTEND },
+{ 0x105E, GBP_OTHER },
+{ 0x1061, GBP_EXTEND },
+{ 0x1062, GBP_OTHER },
+{ 0x1065, GBP_SPACINGMARK },
+{ 0x1067, GBP_OTHER },
+{ 0x106E, GBP_SPACINGMARK },
+{ 0x1071, GBP_OTHER },
+{ 0x1075, GBP_EXTEND },
+{ 0x1082, GBP_OTHER },
+{ 0x1083, GBP_EXTEND },
+{ 0x1085, GBP_SPACINGMARK },
+{ 0x1087, GBP_EXTEND },
+{ 0x108D, GBP_SPACINGMARK },
+{ 0x108E, GBP_EXTEND },
+{ 0x108F, GBP_OTHER },
+{ 0x1090, GBP_SPACINGMARK },
+{ 0x109A, GBP_OTHER },
+{ 0x109D, GBP_SPACINGMARK },
+{ 0x109E, GBP_EXTEND },
+{ 0x1100, GBP_OTHER },
+{ 0x1160, GBP_L },
+{ 0x11A8, GBP_V },
+{ 0x1200, GBP_T },
+{ 0x135D, GBP_OTHER },
+{ 0x1360, GBP_EXTEND },
+{ 0x1712, GBP_OTHER },
+{ 0x1715, GBP_EXTEND },
+{ 0x1732, GBP_OTHER },
+{ 0x1735, GBP_EXTEND },
+{ 0x1752, GBP_OTHER },
+{ 0x1754, GBP_EXTEND },
+{ 0x1772, GBP_OTHER },
+{ 0x1774, GBP_EXTEND },
+{ 0x17B4, GBP_OTHER },
+{ 0x17B6, GBP_CONTROL },
+{ 0x17B7, GBP_SPACINGMARK },
+{ 0x17BE, GBP_EXTEND },
+{ 0x17C6, GBP_SPACINGMARK },
+{ 0x17C7, GBP_EXTEND },
+{ 0x17C9, GBP_SPACINGMARK },
+{ 0x17D4, GBP_EXTEND },
+{ 0x17DD, GBP_OTHER },
+{ 0x17DE, GBP_EXTEND },
+{ 0x180B, GBP_OTHER },
+{ 0x180E, GBP_EXTEND },
+{ 0x18A9, GBP_OTHER },
+{ 0x18AA, GBP_EXTEND },
+{ 0x1920, GBP_OTHER },
+{ 0x1923, GBP_EXTEND },
+{ 0x1927, GBP_SPACINGMARK },
+{ 0x1929, GBP_EXTEND },
+{ 0x192C, GBP_SPACINGMARK },
+{ 0x1930, GBP_OTHER },
+{ 0x1932, GBP_SPACINGMARK },
+{ 0x1933, GBP_EXTEND },
+{ 0x1939, GBP_SPACINGMARK },
+{ 0x193C, GBP_EXTEND },
+{ 0x19B0, GBP_OTHER },
+{ 0x19C1, GBP_SPACINGMARK },
+{ 0x19C8, GBP_OTHER },
+{ 0x19CA, GBP_SPACINGMARK },
+{ 0x1A17, GBP_OTHER },
+{ 0x1A19, GBP_EXTEND },
+{ 0x1A1C, GBP_SPACINGMARK },
+{ 0x1A55, GBP_OTHER },
+{ 0x1A56, GBP_SPACINGMARK },
+{ 0x1A57, GBP_EXTEND },
+{ 0x1A58, GBP_SPACINGMARK },
+{ 0x1A5F, GBP_EXTEND },
+{ 0x1A60, GBP_OTHER },
+{ 0x1A61, GBP_EXTEND },
+{ 0x1A62, GBP_SPACINGMARK },
+{ 0x1A63, GBP_EXTEND },
+{ 0x1A65, GBP_SPACINGMARK },
+{ 0x1A6D, GBP_EXTEND },
+{ 0x1A73, GBP_SPACINGMARK },
+{ 0x1A7D, GBP_EXTEND },
+{ 0x1A7F, GBP_OTHER },
+{ 0x1A80, GBP_EXTEND },
+{ 0x1B00, GBP_OTHER },
+{ 0x1B04, GBP_EXTEND },
+{ 0x1B05, GBP_SPACINGMARK },
+{ 0x1B34, GBP_OTHER },
+{ 0x1B35, GBP_EXTEND },
+{ 0x1B36, GBP_SPACINGMARK },
+{ 0x1B3B, GBP_EXTEND },
+{ 0x1B3C, GBP_SPACINGMARK },
+{ 0x1B3D, GBP_EXTEND },
+{ 0x1B42, GBP_SPACINGMARK },
+{ 0x1B43, GBP_EXTEND },
+{ 0x1B45, GBP_SPACINGMARK },
+{ 0x1B6B, GBP_OTHER },
+{ 0x1B74, GBP_EXTEND },
+{ 0x1B80, GBP_OTHER },
+{ 0x1B82, GBP_EXTEND },
+{ 0x1B83, GBP_SPACINGMARK },
+{ 0x1BA1, GBP_OTHER },
+{ 0x1BA2, GBP_SPACINGMARK },
+{ 0x1BA6, GBP_EXTEND },
+{ 0x1BA8, GBP_SPACINGMARK },
+{ 0x1BAA, GBP_EXTEND },
+{ 0x1BAB, GBP_SPACINGMARK },
+{ 0x1BE6, GBP_OTHER },
+{ 0x1BE7, GBP_EXTEND },
+{ 0x1BE8, GBP_SPACINGMARK },
+{ 0x1BEA, GBP_EXTEND },
+{ 0x1BED, GBP_SPACINGMARK },
+{ 0x1BEE, GBP_EXTEND },
+{ 0x1BEF, GBP_SPACINGMARK },
+{ 0x1BF2, GBP_EXTEND },
+{ 0x1BF4, GBP_SPACINGMARK },
+{ 0x1C24, GBP_OTHER },
+{ 0x1C2C, GBP_SPACINGMARK },
+{ 0x1C34, GBP_EXTEND },
+{ 0x1C36, GBP_SPACINGMARK },
+{ 0x1C38, GBP_EXTEND },
+{ 0x1CD0, GBP_OTHER },
+{ 0x1CD3, GBP_EXTEND },
+{ 0x1CD4, GBP_OTHER },
+{ 0x1CE1, GBP_EXTEND },
+{ 0x1CE2, GBP_SPACINGMARK },
+{ 0x1CE9, GBP_EXTEND },
+{ 0x1CED, GBP_OTHER },
+{ 0x1CEE, GBP_EXTEND },
+{ 0x1CF2, GBP_OTHER },
+{ 0x1CF3, GBP_SPACINGMARK },
+{ 0x1DC0, GBP_OTHER },
+{ 0x1DE7, GBP_EXTEND },
+{ 0x1DFC, GBP_OTHER },
+{ 0x1E00, GBP_EXTEND },
+{ 0x200B, GBP_OTHER },
+{ 0x200C, GBP_CONTROL },
+{ 0x200E, GBP_EXTEND },
+{ 0x2010, GBP_CONTROL },
+{ 0x2028, GBP_OTHER },
+{ 0x202F, GBP_CONTROL },
+{ 0x2060, GBP_OTHER },
+{ 0x2065, GBP_CONTROL },
+{ 0x206A, GBP_OTHER },
+{ 0x2070, GBP_CONTROL },
+{ 0x20D0, GBP_OTHER },
+{ 0x20F1, GBP_EXTEND },
+{ 0x2CEF, GBP_OTHER },
+{ 0x2CF2, GBP_EXTEND },
+{ 0x2D7F, GBP_OTHER },
+{ 0x2D80, GBP_EXTEND },
+{ 0x2DE0, GBP_OTHER },
+{ 0x2E00, GBP_EXTEND },
+{ 0x302A, GBP_OTHER },
+{ 0x3030, GBP_EXTEND },
+{ 0x3099, GBP_OTHER },
+{ 0x309B, GBP_EXTEND },
+{ 0xA66F, GBP_OTHER },
+{ 0xA673, GBP_EXTEND },
+{ 0xA67C, GBP_OTHER },
+{ 0xA67E, GBP_EXTEND },
+{ 0xA6F0, GBP_OTHER },
+{ 0xA6F2, GBP_EXTEND },
+{ 0xA802, GBP_OTHER },
+{ 0xA803, GBP_EXTEND },
+{ 0xA806, GBP_OTHER },
+{ 0xA807, GBP_EXTEND },
+{ 0xA80B, GBP_OTHER },
+{ 0xA80C, GBP_EXTEND },
+{ 0xA823, GBP_OTHER },
+{ 0xA825, GBP_SPACINGMARK },
+{ 0xA827, GBP_EXTEND },
+{ 0xA828, GBP_SPACINGMARK },
+{ 0xA880, GBP_OTHER },
+{ 0xA882, GBP_SPACINGMARK },
+{ 0xA8B4, GBP_OTHER },
+{ 0xA8C4, GBP_SPACINGMARK },
+{ 0xA8C5, GBP_EXTEND },
+{ 0xA8E0, GBP_OTHER },
+{ 0xA8F2, GBP_EXTEND },
+{ 0xA926, GBP_OTHER },
+{ 0xA92E, GBP_EXTEND },
+{ 0xA947, GBP_OTHER },
+{ 0xA952, GBP_EXTEND },
+{ 0xA954, GBP_SPACINGMARK },
+{ 0xA960, GBP_OTHER },
+{ 0xA97D, GBP_L },
+{ 0xA980, GBP_OTHER },
+{ 0xA983, GBP_EXTEND },
+{ 0xA984, GBP_SPACINGMARK },
+{ 0xA9B3, GBP_OTHER },
+{ 0xA9B4, GBP_EXTEND },
+{ 0xA9B6, GBP_SPACINGMARK },
+{ 0xA9BA, GBP_EXTEND },
+{ 0xA9BC, GBP_SPACINGMARK },
+{ 0xA9BD, GBP_EXTEND },
+{ 0xA9C1, GBP_SPACINGMARK },
+{ 0xAA29, GBP_OTHER },
+{ 0xAA2F, GBP_EXTEND },
+{ 0xAA31, GBP_SPACINGMARK },
+{ 0xAA33, GBP_EXTEND },
+{ 0xAA35, GBP_SPACINGMARK },
+{ 0xAA37, GBP_EXTEND },
+{ 0xAA43, GBP_OTHER },
+{ 0xAA44, GBP_EXTEND },
+{ 0xAA4C, GBP_OTHER },
+{ 0xAA4D, GBP_EXTEND },
+{ 0xAA4E, GBP_SPACINGMARK },
+{ 0xAA7B, GBP_OTHER },
+{ 0xAA7C, GBP_SPACINGMARK },
+{ 0xAAB0, GBP_OTHER },
+{ 0xAAB1, GBP_EXTEND },
+{ 0xAAB2, GBP_OTHER },
+{ 0xAAB5, GBP_EXTEND },
+{ 0xAAB7, GBP_PREPEND },
+{ 0xAAB9, GBP_EXTEND },
+{ 0xAABA, GBP_PREPEND },
+{ 0xAABB, GBP_OTHER },
+{ 0xAABD, GBP_PREPEND },
+{ 0xAABE, GBP_OTHER },
+{ 0xAAC0, GBP_EXTEND },
+{ 0xAAC1, GBP_OTHER },
+{ 0xAAC2, GBP_EXTEND },
+{ 0xABE3, GBP_OTHER },
+{ 0xABE5, GBP_SPACINGMARK },
+{ 0xABE6, GBP_EXTEND },
+{ 0xABE8, GBP_SPACINGMARK },
+{ 0xABE9, GBP_EXTEND },
+{ 0xABEB, GBP_SPACINGMARK },
+{ 0xABEC, GBP_OTHER },
+{ 0xABED, GBP_SPACINGMARK },
+{ 0xABEE, GBP_EXTEND },
+{ 0xAC00, GBP_OTHER },
+{ 0xAC01, GBP_LV },
+{ 0xAC1C, GBP_LVT },
+{ 0xAC1D, GBP_LV },
+{ 0xAC38, GBP_LVT },
+{ 0xAC39, GBP_LV },
+{ 0xAC54, GBP_LVT },
+{ 0xAC55, GBP_LV },
+{ 0xAC70, GBP_LVT },
+{ 0xAC71, GBP_LV },
+{ 0xAC8C, GBP_LVT },
+{ 0xAC8D, GBP_LV },
+{ 0xACA8, GBP_LVT },
+{ 0xACA9, GBP_LV },
+{ 0xACC4, GBP_LVT },
+{ 0xACC5, GBP_LV },
+{ 0xACE0, GBP_LVT },
+{ 0xACE1, GBP_LV },
+{ 0xACFC, GBP_LVT },
+{ 0xACFD, GBP_LV },
+{ 0xAD18, GBP_LVT },
+{ 0xAD19, GBP_LV },
+{ 0xAD34, GBP_LVT },
+{ 0xAD35, GBP_LV },
+{ 0xAD50, GBP_LVT },
+{ 0xAD51, GBP_LV },
+{ 0xAD6C, GBP_LVT },
+{ 0xAD6D, GBP_LV },
+{ 0xAD88, GBP_LVT },
+{ 0xAD89, GBP_LV },
+{ 0xADA4, GBP_LVT },
+{ 0xADA5, GBP_LV },
+{ 0xADC0, GBP_LVT },
+{ 0xADC1, GBP_LV },
+{ 0xADDC, GBP_LVT },
+{ 0xADDD, GBP_LV },
+{ 0xADF8, GBP_LVT },
+{ 0xADF9, GBP_LV },
+{ 0xAE14, GBP_LVT },
+{ 0xAE15, GBP_LV },
+{ 0xAE30, GBP_LVT },
+{ 0xAE31, GBP_LV },
+{ 0xAE4C, GBP_LVT },
+{ 0xAE4D, GBP_LV },
+{ 0xAE68, GBP_LVT },
+{ 0xAE69, GBP_LV },
+{ 0xAE84, GBP_LVT },
+{ 0xAE85, GBP_LV },
+{ 0xAEA0, GBP_LVT },
+{ 0xAEA1, GBP_LV },
+{ 0xAEBC, GBP_LVT },
+{ 0xAEBD, GBP_LV },
+{ 0xAED8, GBP_LVT },
+{ 0xAED9, GBP_LV },
+{ 0xAEF4, GBP_LVT },
+{ 0xAEF5, GBP_LV },
+{ 0xAF10, GBP_LVT },
+{ 0xAF11, GBP_LV },
+{ 0xAF2C, GBP_LVT },
+{ 0xAF2D, GBP_LV },
+{ 0xAF48, GBP_LVT },
+{ 0xAF49, GBP_LV },
+{ 0xAF64, GBP_LVT },
+{ 0xAF65, GBP_LV },
+{ 0xAF80, GBP_LVT },
+{ 0xAF81, GBP_LV },
+{ 0xAF9C, GBP_LVT },
+{ 0xAF9D, GBP_LV },
+{ 0xAFB8, GBP_LVT },
+{ 0xAFB9, GBP_LV },
+{ 0xAFD4, GBP_LVT },
+{ 0xAFD5, GBP_LV },
+{ 0xAFF0, GBP_LVT },
+{ 0xAFF1, GBP_LV },
+{ 0xB00C, GBP_LVT },
+{ 0xB00D, GBP_LV },
+{ 0xB028, GBP_LVT },
+{ 0xB029, GBP_LV },
+{ 0xB044, GBP_LVT },
+{ 0xB045, GBP_LV },
+{ 0xB060, GBP_LVT },
+{ 0xB061, GBP_LV },
+{ 0xB07C, GBP_LVT },
+{ 0xB07D, GBP_LV },
+{ 0xB098, GBP_LVT },
+{ 0xB099, GBP_LV },
+{ 0xB0B4, GBP_LVT },
+{ 0xB0B5, GBP_LV },
+{ 0xB0D0, GBP_LVT },
+{ 0xB0D1, GBP_LV },
+{ 0xB0EC, GBP_LVT },
+{ 0xB0ED, GBP_LV },
+{ 0xB108, GBP_LVT },
+{ 0xB109, GBP_LV },
+{ 0xB124, GBP_LVT },
+{ 0xB125, GBP_LV },
+{ 0xB140, GBP_LVT },
+{ 0xB141, GBP_LV },
+{ 0xB15C, GBP_LVT },
+{ 0xB15D, GBP_LV },
+{ 0xB178, GBP_LVT },
+{ 0xB179, GBP_LV },
+{ 0xB194, GBP_LVT },
+{ 0xB195, GBP_LV },
+{ 0xB1B0, GBP_LVT },
+{ 0xB1B1, GBP_LV },
+{ 0xB1CC, GBP_LVT },
+{ 0xB1CD, GBP_LV },
+{ 0xB1E8, GBP_LVT },
+{ 0xB1E9, GBP_LV },
+{ 0xB204, GBP_LVT },
+{ 0xB205, GBP_LV },
+{ 0xB220, GBP_LVT },
+{ 0xB221, GBP_LV },
+{ 0xB23C, GBP_LVT },
+{ 0xB23D, GBP_LV },
+{ 0xB258, GBP_LVT },
+{ 0xB259, GBP_LV },
+{ 0xB274, GBP_LVT },
+{ 0xB275, GBP_LV },
+{ 0xB290, GBP_LVT },
+{ 0xB291, GBP_LV },
+{ 0xB2AC, GBP_LVT },
+{ 0xB2AD, GBP_LV },
+{ 0xB2C8, GBP_LVT },
+{ 0xB2C9, GBP_LV },
+{ 0xB2E4, GBP_LVT },
+{ 0xB2E5, GBP_LV },
+{ 0xB300, GBP_LVT },
+{ 0xB301, GBP_LV },
+{ 0xB31C, GBP_LVT },
+{ 0xB31D, GBP_LV },
+{ 0xB338, GBP_LVT },
+{ 0xB339, GBP_LV },
+{ 0xB354, GBP_LVT },
+{ 0xB355, GBP_LV },
+{ 0xB370, GBP_LVT },
+{ 0xB371, GBP_LV },
+{ 0xB38C, GBP_LVT },
+{ 0xB38D, GBP_LV },
+{ 0xB3A8, GBP_LVT },
+{ 0xB3A9, GBP_LV },
+{ 0xB3C4, GBP_LVT },
+{ 0xB3C5, GBP_LV },
+{ 0xB3E0, GBP_LVT },
+{ 0xB3E1, GBP_LV },
+{ 0xB3FC, GBP_LVT },
+{ 0xB3FD, GBP_LV },
+{ 0xB418, GBP_LVT },
+{ 0xB419, GBP_LV },
+{ 0xB434, GBP_LVT },
+{ 0xB435, GBP_LV },
+{ 0xB450, GBP_LVT },
+{ 0xB451, GBP_LV },
+{ 0xB46C, GBP_LVT },
+{ 0xB46D, GBP_LV },
+{ 0xB488, GBP_LVT },
+{ 0xB489, GBP_LV },
+{ 0xB4A4, GBP_LVT },
+{ 0xB4A5, GBP_LV },
+{ 0xB4C0, GBP_LVT },
+{ 0xB4C1, GBP_LV },
+{ 0xB4DC, GBP_LVT },
+{ 0xB4DD, GBP_LV },
+{ 0xB4F8, GBP_LVT },
+{ 0xB4F9, GBP_LV },
+{ 0xB514, GBP_LVT },
+{ 0xB515, GBP_LV },
+{ 0xB530, GBP_LVT },
+{ 0xB531, GBP_LV },
+{ 0xB54C, GBP_LVT },
+{ 0xB54D, GBP_LV },
+{ 0xB568, GBP_LVT },
+{ 0xB569, GBP_LV },
+{ 0xB584, GBP_LVT },
+{ 0xB585, GBP_LV },
+{ 0xB5A0, GBP_LVT },
+{ 0xB5A1, GBP_LV },
+{ 0xB5BC, GBP_LVT },
+{ 0xB5BD, GBP_LV },
+{ 0xB5D8, GBP_LVT },
+{ 0xB5D9, GBP_LV },
+{ 0xB5F4, GBP_LVT },
+{ 0xB5F5, GBP_LV },
+{ 0xB610, GBP_LVT },
+{ 0xB611, GBP_LV },
+{ 0xB62C, GBP_LVT },
+{ 0xB62D, GBP_LV },
+{ 0xB648, GBP_LVT },
+{ 0xB649, GBP_LV },
+{ 0xB664, GBP_LVT },
+{ 0xB665, GBP_LV },
+{ 0xB680, GBP_LVT },
+{ 0xB681, GBP_LV },
+{ 0xB69C, GBP_LVT },
+{ 0xB69D, GBP_LV },
+{ 0xB6B8, GBP_LVT },
+{ 0xB6B9, GBP_LV },
+{ 0xB6D4, GBP_LVT },
+{ 0xB6D5, GBP_LV },
+{ 0xB6F0, GBP_LVT },
+{ 0xB6F1, GBP_LV },
+{ 0xB70C, GBP_LVT },
+{ 0xB70D, GBP_LV },
+{ 0xB728, GBP_LVT },
+{ 0xB729, GBP_LV },
+{ 0xB744, GBP_LVT },
+{ 0xB745, GBP_LV },
+{ 0xB760, GBP_LVT },
+{ 0xB761, GBP_LV },
+{ 0xB77C, GBP_LVT },
+{ 0xB77D, GBP_LV },
+{ 0xB798, GBP_LVT },
+{ 0xB799, GBP_LV },
+{ 0xB7B4, GBP_LVT },
+{ 0xB7B5, GBP_LV },
+{ 0xB7D0, GBP_LVT },
+{ 0xB7D1, GBP_LV },
+{ 0xB7EC, GBP_LVT },
+{ 0xB7ED, GBP_LV },
+{ 0xB808, GBP_LVT },
+{ 0xB809, GBP_LV },
+{ 0xB824, GBP_LVT },
+{ 0xB825, GBP_LV },
+{ 0xB840, GBP_LVT },
+{ 0xB841, GBP_LV },
+{ 0xB85C, GBP_LVT },
+{ 0xB85D, GBP_LV },
+{ 0xB878, GBP_LVT },
+{ 0xB879, GBP_LV },
+{ 0xB894, GBP_LVT },
+{ 0xB895, GBP_LV },
+{ 0xB8B0, GBP_LVT },
+{ 0xB8B1, GBP_LV },
+{ 0xB8CC, GBP_LVT },
+{ 0xB8CD, GBP_LV },
+{ 0xB8E8, GBP_LVT },
+{ 0xB8E9, GBP_LV },
+{ 0xB904, GBP_LVT },
+{ 0xB905, GBP_LV },
+{ 0xB920, GBP_LVT },
+{ 0xB921, GBP_LV },
+{ 0xB93C, GBP_LVT },
+{ 0xB93D, GBP_LV },
+{ 0xB958, GBP_LVT },
+{ 0xB959, GBP_LV },
+{ 0xB974, GBP_LVT },
+{ 0xB975, GBP_LV },
+{ 0xB990, GBP_LVT },
+{ 0xB991, GBP_LV },
+{ 0xB9AC, GBP_LVT },
+{ 0xB9AD, GBP_LV },
+{ 0xB9C8, GBP_LVT },
+{ 0xB9C9, GBP_LV },
+{ 0xB9E4, GBP_LVT },
+{ 0xB9E5, GBP_LV },
+{ 0xBA00, GBP_LVT },
+{ 0xBA01, GBP_LV },
+{ 0xBA1C, GBP_LVT },
+{ 0xBA1D, GBP_LV },
+{ 0xBA38, GBP_LVT },
+{ 0xBA39, GBP_LV },
+{ 0xBA54, GBP_LVT },
+{ 0xBA55, GBP_LV },
+{ 0xBA70, GBP_LVT },
+{ 0xBA71, GBP_LV },
+{ 0xBA8C, GBP_LVT },
+{ 0xBA8D, GBP_LV },
+{ 0xBAA8, GBP_LVT },
+{ 0xBAA9, GBP_LV },
+{ 0xBAC4, GBP_LVT },
+{ 0xBAC5, GBP_LV },
+{ 0xBAE0, GBP_LVT },
+{ 0xBAE1, GBP_LV },
+{ 0xBAFC, GBP_LVT },
+{ 0xBAFD, GBP_LV },
+{ 0xBB18, GBP_LVT },
+{ 0xBB19, GBP_LV },
+{ 0xBB34, GBP_LVT },
+{ 0xBB35, GBP_LV },
+{ 0xBB50, GBP_LVT },
+{ 0xBB51, GBP_LV },
+{ 0xBB6C, GBP_LVT },
+{ 0xBB6D, GBP_LV },
+{ 0xBB88, GBP_LVT },
+{ 0xBB89, GBP_LV },
+{ 0xBBA4, GBP_LVT },
+{ 0xBBA5, GBP_LV },
+{ 0xBBC0, GBP_LVT },
+{ 0xBBC1, GBP_LV },
+{ 0xBBDC, GBP_LVT },
+{ 0xBBDD, GBP_LV },
+{ 0xBBF8, GBP_LVT },
+{ 0xBBF9, GBP_LV },
+{ 0xBC14, GBP_LVT },
+{ 0xBC15, GBP_LV },
+{ 0xBC30, GBP_LVT },
+{ 0xBC31, GBP_LV },
+{ 0xBC4C, GBP_LVT },
+{ 0xBC4D, GBP_LV },
+{ 0xBC68, GBP_LVT },
+{ 0xBC69, GBP_LV },
+{ 0xBC84, GBP_LVT },
+{ 0xBC85, GBP_LV },
+{ 0xBCA0, GBP_LVT },
+{ 0xBCA1, GBP_LV },
+{ 0xBCBC, GBP_LVT },
+{ 0xBCBD, GBP_LV },
+{ 0xBCD8, GBP_LVT },
+{ 0xBCD9, GBP_LV },
+{ 0xBCF4, GBP_LVT },
+{ 0xBCF5, GBP_LV },
+{ 0xBD10, GBP_LVT },
+{ 0xBD11, GBP_LV },
+{ 0xBD2C, GBP_LVT },
+{ 0xBD2D, GBP_LV },
+{ 0xBD48, GBP_LVT },
+{ 0xBD49, GBP_LV },
+{ 0xBD64, GBP_LVT },
+{ 0xBD65, GBP_LV },
+{ 0xBD80, GBP_LVT },
+{ 0xBD81, GBP_LV },
+{ 0xBD9C, GBP_LVT },
+{ 0xBD9D, GBP_LV },
+{ 0xBDB8, GBP_LVT },
+{ 0xBDB9, GBP_LV },
+{ 0xBDD4, GBP_LVT },
+{ 0xBDD5, GBP_LV },
+{ 0xBDF0, GBP_LVT },
+{ 0xBDF1, GBP_LV },
+{ 0xBE0C, GBP_LVT },
+{ 0xBE0D, GBP_LV },
+{ 0xBE28, GBP_LVT },
+{ 0xBE29, GBP_LV },
+{ 0xBE44, GBP_LVT },
+{ 0xBE45, GBP_LV },
+{ 0xBE60, GBP_LVT },
+{ 0xBE61, GBP_LV },
+{ 0xBE7C, GBP_LVT },
+{ 0xBE7D, GBP_LV },
+{ 0xBE98, GBP_LVT },
+{ 0xBE99, GBP_LV },
+{ 0xBEB4, GBP_LVT },
+{ 0xBEB5, GBP_LV },
+{ 0xBED0, GBP_LVT },
+{ 0xBED1, GBP_LV },
+{ 0xBEEC, GBP_LVT },
+{ 0xBEED, GBP_LV },
+{ 0xBF08, GBP_LVT },
+{ 0xBF09, GBP_LV },
+{ 0xBF24, GBP_LVT },
+{ 0xBF25, GBP_LV },
+{ 0xBF40, GBP_LVT },
+{ 0xBF41, GBP_LV },
+{ 0xBF5C, GBP_LVT },
+{ 0xBF5D, GBP_LV },
+{ 0xBF78, GBP_LVT },
+{ 0xBF79, GBP_LV },
+{ 0xBF94, GBP_LVT },
+{ 0xBF95, GBP_LV },
+{ 0xBFB0, GBP_LVT },
+{ 0xBFB1, GBP_LV },
+{ 0xBFCC, GBP_LVT },
+{ 0xBFCD, GBP_LV },
+{ 0xBFE8, GBP_LVT },
+{ 0xBFE9, GBP_LV },
+{ 0xC004, GBP_LVT },
+{ 0xC005, GBP_LV },
+{ 0xC020, GBP_LVT },
+{ 0xC021, GBP_LV },
+{ 0xC03C, GBP_LVT },
+{ 0xC03D, GBP_LV },
+{ 0xC058, GBP_LVT },
+{ 0xC059, GBP_LV },
+{ 0xC074, GBP_LVT },
+{ 0xC075, GBP_LV },
+{ 0xC090, GBP_LVT },
+{ 0xC091, GBP_LV },
+{ 0xC0AC, GBP_LVT },
+{ 0xC0AD, GBP_LV },
+{ 0xC0C8, GBP_LVT },
+{ 0xC0C9, GBP_LV },
+{ 0xC0E4, GBP_LVT },
+{ 0xC0E5, GBP_LV },
+{ 0xC100, GBP_LVT },
+{ 0xC101, GBP_LV },
+{ 0xC11C, GBP_LVT },
+{ 0xC11D, GBP_LV },
+{ 0xC138, GBP_LVT },
+{ 0xC139, GBP_LV },
+{ 0xC154, GBP_LVT },
+{ 0xC155, GBP_LV },
+{ 0xC170, GBP_LVT },
+{ 0xC171, GBP_LV },
+{ 0xC18C, GBP_LVT },
+{ 0xC18D, GBP_LV },
+{ 0xC1A8, GBP_LVT },
+{ 0xC1A9, GBP_LV },
+{ 0xC1C4, GBP_LVT },
+{ 0xC1C5, GBP_LV },
+{ 0xC1E0, GBP_LVT },
+{ 0xC1E1, GBP_LV },
+{ 0xC1FC, GBP_LVT },
+{ 0xC1FD, GBP_LV },
+{ 0xC218, GBP_LVT },
+{ 0xC219, GBP_LV },
+{ 0xC234, GBP_LVT },
+{ 0xC235, GBP_LV },
+{ 0xC250, GBP_LVT },
+{ 0xC251, GBP_LV },
+{ 0xC26C, GBP_LVT },
+{ 0xC26D, GBP_LV },
+{ 0xC288, GBP_LVT },
+{ 0xC289, GBP_LV },
+{ 0xC2A4, GBP_LVT },
+{ 0xC2A5, GBP_LV },
+{ 0xC2C0, GBP_LVT },
+{ 0xC2C1, GBP_LV },
+{ 0xC2DC, GBP_LVT },
+{ 0xC2DD, GBP_LV },
+{ 0xC2F8, GBP_LVT },
+{ 0xC2F9, GBP_LV },
+{ 0xC314, GBP_LVT },
+{ 0xC315, GBP_LV },
+{ 0xC330, GBP_LVT },
+{ 0xC331, GBP_LV },
+{ 0xC34C, GBP_LVT },
+{ 0xC34D, GBP_LV },
+{ 0xC368, GBP_LVT },
+{ 0xC369, GBP_LV },
+{ 0xC384, GBP_LVT },
+{ 0xC385, GBP_LV },
+{ 0xC3A0, GBP_LVT },
+{ 0xC3A1, GBP_LV },
+{ 0xC3BC, GBP_LVT },
+{ 0xC3BD, GBP_LV },
+{ 0xC3D8, GBP_LVT },
+{ 0xC3D9, GBP_LV },
+{ 0xC3F4, GBP_LVT },
+{ 0xC3F5, GBP_LV },
+{ 0xC410, GBP_LVT },
+{ 0xC411, GBP_LV },
+{ 0xC42C, GBP_LVT },
+{ 0xC42D, GBP_LV },
+{ 0xC448, GBP_LVT },
+{ 0xC449, GBP_LV },
+{ 0xC464, GBP_LVT },
+{ 0xC465, GBP_LV },
+{ 0xC480, GBP_LVT },
+{ 0xC481, GBP_LV },
+{ 0xC49C, GBP_LVT },
+{ 0xC49D, GBP_LV },
+{ 0xC4B8, GBP_LVT },
+{ 0xC4B9, GBP_LV },
+{ 0xC4D4, GBP_LVT },
+{ 0xC4D5, GBP_LV },
+{ 0xC4F0, GBP_LVT },
+{ 0xC4F1, GBP_LV },
+{ 0xC50C, GBP_LVT },
+{ 0xC50D, GBP_LV },
+{ 0xC528, GBP_LVT },
+{ 0xC529, GBP_LV },
+{ 0xC544, GBP_LVT },
+{ 0xC545, GBP_LV },
+{ 0xC560, GBP_LVT },
+{ 0xC561, GBP_LV },
+{ 0xC57C, GBP_LVT },
+{ 0xC57D, GBP_LV },
+{ 0xC598, GBP_LVT },
+{ 0xC599, GBP_LV },
+{ 0xC5B4, GBP_LVT },
+{ 0xC5B5, GBP_LV },
+{ 0xC5D0, GBP_LVT },
+{ 0xC5D1, GBP_LV },
+{ 0xC5EC, GBP_LVT },
+{ 0xC5ED, GBP_LV },
+{ 0xC608, GBP_LVT },
+{ 0xC609, GBP_LV },
+{ 0xC624, GBP_LVT },
+{ 0xC625, GBP_LV },
+{ 0xC640, GBP_LVT },
+{ 0xC641, GBP_LV },
+{ 0xC65C, GBP_LVT },
+{ 0xC65D, GBP_LV },
+{ 0xC678, GBP_LVT },
+{ 0xC679, GBP_LV },
+{ 0xC694, GBP_LVT },
+{ 0xC695, GBP_LV },
+{ 0xC6B0, GBP_LVT },
+{ 0xC6B1, GBP_LV },
+{ 0xC6CC, GBP_LVT },
+{ 0xC6CD, GBP_LV },
+{ 0xC6E8, GBP_LVT },
+{ 0xC6E9, GBP_LV },
+{ 0xC704, GBP_LVT },
+{ 0xC705, GBP_LV },
+{ 0xC720, GBP_LVT },
+{ 0xC721, GBP_LV },
+{ 0xC73C, GBP_LVT },
+{ 0xC73D, GBP_LV },
+{ 0xC758, GBP_LVT },
+{ 0xC759, GBP_LV },
+{ 0xC774, GBP_LVT },
+{ 0xC775, GBP_LV },
+{ 0xC790, GBP_LVT },
+{ 0xC791, GBP_LV },
+{ 0xC7AC, GBP_LVT },
+{ 0xC7AD, GBP_LV },
+{ 0xC7C8, GBP_LVT },
+{ 0xC7C9, GBP_LV },
+{ 0xC7E4, GBP_LVT },
+{ 0xC7E5, GBP_LV },
+{ 0xC800, GBP_LVT },
+{ 0xC801, GBP_LV },
+{ 0xC81C, GBP_LVT },
+{ 0xC81D, GBP_LV },
+{ 0xC838, GBP_LVT },
+{ 0xC839, GBP_LV },
+{ 0xC854, GBP_LVT },
+{ 0xC855, GBP_LV },
+{ 0xC870, GBP_LVT },
+{ 0xC871, GBP_LV },
+{ 0xC88C, GBP_LVT },
+{ 0xC88D, GBP_LV },
+{ 0xC8A8, GBP_LVT },
+{ 0xC8A9, GBP_LV },
+{ 0xC8C4, GBP_LVT },
+{ 0xC8C5, GBP_LV },
+{ 0xC8E0, GBP_LVT },
+{ 0xC8E1, GBP_LV },
+{ 0xC8FC, GBP_LVT },
+{ 0xC8FD, GBP_LV },
+{ 0xC918, GBP_LVT },
+{ 0xC919, GBP_LV },
+{ 0xC934, GBP_LVT },
+{ 0xC935, GBP_LV },
+{ 0xC950, GBP_LVT },
+{ 0xC951, GBP_LV },
+{ 0xC96C, GBP_LVT },
+{ 0xC96D, GBP_LV },
+{ 0xC988, GBP_LVT },
+{ 0xC989, GBP_LV },
+{ 0xC9A4, GBP_LVT },
+{ 0xC9A5, GBP_LV },
+{ 0xC9C0, GBP_LVT },
+{ 0xC9C1, GBP_LV },
+{ 0xC9DC, GBP_LVT },
+{ 0xC9DD, GBP_LV },
+{ 0xC9F8, GBP_LVT },
+{ 0xC9F9, GBP_LV },
+{ 0xCA14, GBP_LVT },
+{ 0xCA15, GBP_LV },
+{ 0xCA30, GBP_LVT },
+{ 0xCA31, GBP_LV },
+{ 0xCA4C, GBP_LVT },
+{ 0xCA4D, GBP_LV },
+{ 0xCA68, GBP_LVT },
+{ 0xCA69, GBP_LV },
+{ 0xCA84, GBP_LVT },
+{ 0xCA85, GBP_LV },
+{ 0xCAA0, GBP_LVT },
+{ 0xCAA1, GBP_LV },
+{ 0xCABC, GBP_LVT },
+{ 0xCABD, GBP_LV },
+{ 0xCAD8, GBP_LVT },
+{ 0xCAD9, GBP_LV },
+{ 0xCAF4, GBP_LVT },
+{ 0xCAF5, GBP_LV },
+{ 0xCB10, GBP_LVT },
+{ 0xCB11, GBP_LV },
+{ 0xCB2C, GBP_LVT },
+{ 0xCB2D, GBP_LV },
+{ 0xCB48, GBP_LVT },
+{ 0xCB49, GBP_LV },
+{ 0xCB64, GBP_LVT },
+{ 0xCB65, GBP_LV },
+{ 0xCB80, GBP_LVT },
+{ 0xCB81, GBP_LV },
+{ 0xCB9C, GBP_LVT },
+{ 0xCB9D, GBP_LV },
+{ 0xCBB8, GBP_LVT },
+{ 0xCBB9, GBP_LV },
+{ 0xCBD4, GBP_LVT },
+{ 0xCBD5, GBP_LV },
+{ 0xCBF0, GBP_LVT },
+{ 0xCBF1, GBP_LV },
+{ 0xCC0C, GBP_LVT },
+{ 0xCC0D, GBP_LV },
+{ 0xCC28, GBP_LVT },
+{ 0xCC29, GBP_LV },
+{ 0xCC44, GBP_LVT },
+{ 0xCC45, GBP_LV },
+{ 0xCC60, GBP_LVT },
+{ 0xCC61, GBP_LV },
+{ 0xCC7C, GBP_LVT },
+{ 0xCC7D, GBP_LV },
+{ 0xCC98, GBP_LVT },
+{ 0xCC99, GBP_LV },
+{ 0xCCB4, GBP_LVT },
+{ 0xCCB5, GBP_LV },
+{ 0xCCD0, GBP_LVT },
+{ 0xCCD1, GBP_LV },
+{ 0xCCEC, GBP_LVT },
+{ 0xCCED, GBP_LV },
+{ 0xCD08, GBP_LVT },
+{ 0xCD09, GBP_LV },
+{ 0xCD24, GBP_LVT },
+{ 0xCD25, GBP_LV },
+{ 0xCD40, GBP_LVT },
+{ 0xCD41, GBP_LV },
+{ 0xCD5C, GBP_LVT },
+{ 0xCD5D, GBP_LV },
+{ 0xCD78, GBP_LVT },
+{ 0xCD79, GBP_LV },
+{ 0xCD94, GBP_LVT },
+{ 0xCD95, GBP_LV },
+{ 0xCDB0, GBP_LVT },
+{ 0xCDB1, GBP_LV },
+{ 0xCDCC, GBP_LVT },
+{ 0xCDCD, GBP_LV },
+{ 0xCDE8, GBP_LVT },
+{ 0xCDE9, GBP_LV },
+{ 0xCE04, GBP_LVT },
+{ 0xCE05, GBP_LV },
+{ 0xCE20, GBP_LVT },
+{ 0xCE21, GBP_LV },
+{ 0xCE3C, GBP_LVT },
+{ 0xCE3D, GBP_LV },
+{ 0xCE58, GBP_LVT },
+{ 0xCE59, GBP_LV },
+{ 0xCE74, GBP_LVT },
+{ 0xCE75, GBP_LV },
+{ 0xCE90, GBP_LVT },
+{ 0xCE91, GBP_LV },
+{ 0xCEAC, GBP_LVT },
+{ 0xCEAD, GBP_LV },
+{ 0xCEC8, GBP_LVT },
+{ 0xCEC9, GBP_LV },
+{ 0xCEE4, GBP_LVT },
+{ 0xCEE5, GBP_LV },
+{ 0xCF00, GBP_LVT },
+{ 0xCF01, GBP_LV },
+{ 0xCF1C, GBP_LVT },
+{ 0xCF1D, GBP_LV },
+{ 0xCF38, GBP_LVT },
+{ 0xCF39, GBP_LV },
+{ 0xCF54, GBP_LVT },
+{ 0xCF55, GBP_LV },
+{ 0xCF70, GBP_LVT },
+{ 0xCF71, GBP_LV },
+{ 0xCF8C, GBP_LVT },
+{ 0xCF8D, GBP_LV },
+{ 0xCFA8, GBP_LVT },
+{ 0xCFA9, GBP_LV },
+{ 0xCFC4, GBP_LVT },
+{ 0xCFC5, GBP_LV },
+{ 0xCFE0, GBP_LVT },
+{ 0xCFE1, GBP_LV },
+{ 0xCFFC, GBP_LVT },
+{ 0xCFFD, GBP_LV },
+{ 0xD018, GBP_LVT },
+{ 0xD019, GBP_LV },
+{ 0xD034, GBP_LVT },
+{ 0xD035, GBP_LV },
+{ 0xD050, GBP_LVT },
+{ 0xD051, GBP_LV },
+{ 0xD06C, GBP_LVT },
+{ 0xD06D, GBP_LV },
+{ 0xD088, GBP_LVT },
+{ 0xD089, GBP_LV },
+{ 0xD0A4, GBP_LVT },
+{ 0xD0A5, GBP_LV },
+{ 0xD0C0, GBP_LVT },
+{ 0xD0C1, GBP_LV },
+{ 0xD0DC, GBP_LVT },
+{ 0xD0DD, GBP_LV },
+{ 0xD0F8, GBP_LVT },
+{ 0xD0F9, GBP_LV },
+{ 0xD114, GBP_LVT },
+{ 0xD115, GBP_LV },
+{ 0xD130, GBP_LVT },
+{ 0xD131, GBP_LV },
+{ 0xD14C, GBP_LVT },
+{ 0xD14D, GBP_LV },
+{ 0xD168, GBP_LVT },
+{ 0xD169, GBP_LV },
+{ 0xD184, GBP_LVT },
+{ 0xD185, GBP_LV },
+{ 0xD1A0, GBP_LVT },
+{ 0xD1A1, GBP_LV },
+{ 0xD1BC, GBP_LVT },
+{ 0xD1BD, GBP_LV },
+{ 0xD1D8, GBP_LVT },
+{ 0xD1D9, GBP_LV },
+{ 0xD1F4, GBP_LVT },
+{ 0xD1F5, GBP_LV },
+{ 0xD210, GBP_LVT },
+{ 0xD211, GBP_LV },
+{ 0xD22C, GBP_LVT },
+{ 0xD22D, GBP_LV },
+{ 0xD248, GBP_LVT },
+{ 0xD249, GBP_LV },
+{ 0xD264, GBP_LVT },
+{ 0xD265, GBP_LV },
+{ 0xD280, GBP_LVT },
+{ 0xD281, GBP_LV },
+{ 0xD29C, GBP_LVT },
+{ 0xD29D, GBP_LV },
+{ 0xD2B8, GBP_LVT },
+{ 0xD2B9, GBP_LV },
+{ 0xD2D4, GBP_LVT },
+{ 0xD2D5, GBP_LV },
+{ 0xD2F0, GBP_LVT },
+{ 0xD2F1, GBP_LV },
+{ 0xD30C, GBP_LVT },
+{ 0xD30D, GBP_LV },
+{ 0xD328, GBP_LVT },
+{ 0xD329, GBP_LV },
+{ 0xD344, GBP_LVT },
+{ 0xD345, GBP_LV },
+{ 0xD360, GBP_LVT },
+{ 0xD361, GBP_LV },
+{ 0xD37C, GBP_LVT },
+{ 0xD37D, GBP_LV },
+{ 0xD398, GBP_LVT },
+{ 0xD399, GBP_LV },
+{ 0xD3B4, GBP_LVT },
+{ 0xD3B5, GBP_LV },
+{ 0xD3D0, GBP_LVT },
+{ 0xD3D1, GBP_LV },
+{ 0xD3EC, GBP_LVT },
+{ 0xD3ED, GBP_LV },
+{ 0xD408, GBP_LVT },
+{ 0xD409, GBP_LV },
+{ 0xD424, GBP_LVT },
+{ 0xD425, GBP_LV },
+{ 0xD440, GBP_LVT },
+{ 0xD441, GBP_LV },
+{ 0xD45C, GBP_LVT },
+{ 0xD45D, GBP_LV },
+{ 0xD478, GBP_LVT },
+{ 0xD479, GBP_LV },
+{ 0xD494, GBP_LVT },
+{ 0xD495, GBP_LV },
+{ 0xD4B0, GBP_LVT },
+{ 0xD4B1, GBP_LV },
+{ 0xD4CC, GBP_LVT },
+{ 0xD4CD, GBP_LV },
+{ 0xD4E8, GBP_LVT },
+{ 0xD4E9, GBP_LV },
+{ 0xD504, GBP_LVT },
+{ 0xD505, GBP_LV },
+{ 0xD520, GBP_LVT },
+{ 0xD521, GBP_LV },
+{ 0xD53C, GBP_LVT },
+{ 0xD53D, GBP_LV },
+{ 0xD558, GBP_LVT },
+{ 0xD559, GBP_LV },
+{ 0xD574, GBP_LVT },
+{ 0xD575, GBP_LV },
+{ 0xD590, GBP_LVT },
+{ 0xD591, GBP_LV },
+{ 0xD5AC, GBP_LVT },
+{ 0xD5AD, GBP_LV },
+{ 0xD5C8, GBP_LVT },
+{ 0xD5C9, GBP_LV },
+{ 0xD5E4, GBP_LVT },
+{ 0xD5E5, GBP_LV },
+{ 0xD600, GBP_LVT },
+{ 0xD601, GBP_LV },
+{ 0xD61C, GBP_LVT },
+{ 0xD61D, GBP_LV },
+{ 0xD638, GBP_LVT },
+{ 0xD639, GBP_LV },
+{ 0xD654, GBP_LVT },
+{ 0xD655, GBP_LV },
+{ 0xD670, GBP_LVT },
+{ 0xD671, GBP_LV },
+{ 0xD68C, GBP_LVT },
+{ 0xD68D, GBP_LV },
+{ 0xD6A8, GBP_LVT },
+{ 0xD6A9, GBP_LV },
+{ 0xD6C4, GBP_LVT },
+{ 0xD6C5, GBP_LV },
+{ 0xD6E0, GBP_LVT },
+{ 0xD6E1, GBP_LV },
+{ 0xD6FC, GBP_LVT },
+{ 0xD6FD, GBP_LV },
+{ 0xD718, GBP_LVT },
+{ 0xD719, GBP_LV },
+{ 0xD734, GBP_LVT },
+{ 0xD735, GBP_LV },
+{ 0xD750, GBP_LVT },
+{ 0xD751, GBP_LV },
+{ 0xD76C, GBP_LVT },
+{ 0xD76D, GBP_LV },
+{ 0xD788, GBP_LVT },
+{ 0xD789, GBP_LV },
+{ 0xD7A4, GBP_LVT },
+{ 0xD7B0, GBP_OTHER },
+{ 0xD7C7, GBP_V },
+{ 0xD7CB, GBP_OTHER },
+{ 0xD7FC, GBP_T },
+{ 0xFB1E, GBP_OTHER },
+{ 0xFB1F, GBP_EXTEND },
+{ 0xFE00, GBP_OTHER },
+{ 0xFE10, GBP_EXTEND },
+{ 0xFE20, GBP_OTHER },
+{ 0xFE27, GBP_EXTEND },
+{ 0xFEFF, GBP_OTHER },
+{ 0xFF00, GBP_CONTROL },
+{ 0xFF9E, GBP_OTHER },
+{ 0xFFA0, GBP_EXTEND },
+{ 0xFFF9, GBP_OTHER },
+{ 0xFFFC, GBP_CONTROL },
+{ 0x101FD, GBP_OTHER },
+{ 0x101FE, GBP_EXTEND },
+{ 0x10A01, GBP_OTHER },
+{ 0x10A04, GBP_EXTEND },
+{ 0x10A05, GBP_OTHER },
+{ 0x10A07, GBP_EXTEND },
+{ 0x10A0C, GBP_OTHER },
+{ 0x10A10, GBP_EXTEND },
+{ 0x10A38, GBP_OTHER },
+{ 0x10A3B, GBP_EXTEND },
+{ 0x10A3F, GBP_OTHER },
+{ 0x10A40, GBP_EXTEND },
+{ 0x11000, GBP_OTHER },
+{ 0x11001, GBP_SPACINGMARK },
+{ 0x11002, GBP_EXTEND },
+{ 0x11003, GBP_SPACINGMARK },
+{ 0x11038, GBP_OTHER },
+{ 0x11047, GBP_EXTEND },
+{ 0x11080, GBP_OTHER },
+{ 0x11082, GBP_EXTEND },
+{ 0x11083, GBP_SPACINGMARK },
+{ 0x110B0, GBP_OTHER },
+{ 0x110B3, GBP_SPACINGMARK },
+{ 0x110B7, GBP_EXTEND },
+{ 0x110B9, GBP_SPACINGMARK },
+{ 0x110BB, GBP_EXTEND },
+{ 0x110BD, GBP_OTHER },
+{ 0x110BE, GBP_CONTROL },
+{ 0x1D165, GBP_OTHER },
+{ 0x1D166, GBP_EXTEND },
+{ 0x1D167, GBP_SPACINGMARK },
+{ 0x1D16A, GBP_EXTEND },
+{ 0x1D16D, GBP_OTHER },
+{ 0x1D16E, GBP_SPACINGMARK },
+{ 0x1D173, GBP_EXTEND },
+{ 0x1D17B, GBP_CONTROL },
+{ 0x1D183, GBP_EXTEND },
+{ 0x1D185, GBP_OTHER },
+{ 0x1D18C, GBP_EXTEND },
+{ 0x1D1AA, GBP_OTHER },
+{ 0x1D1AE, GBP_EXTEND },
+{ 0x1D242, GBP_OTHER },
+{ 0x1D245, GBP_EXTEND },
+{ 0xE0001, GBP_OTHER },
+{ 0xE0002, GBP_CONTROL },
+{ 0xE0020, GBP_OTHER },
+{ 0xE0080, GBP_CONTROL },
+{ 0xE0100, GBP_OTHER },
+{ 0xE01F0, GBP_EXTEND },
+{ 0x110000, GBP_OTHER }
diff --git a/tests/unigbrk/test-uc-is-grapheme-break.c b/tests/unigbrk/test-uc-is-grapheme-break.c
new file mode 100644 (file)
index 0000000..a93f6f2
--- /dev/null
@@ -0,0 +1,157 @@
+/* Grapheme cluster break function test.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as published
+   by the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unigbrk.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+const char *
+graphemebreakproperty_to_string (int gbp)
+{
+  printf ("%d\n", gbp);
+  switch (gbp)
+    {
+#define CASE(VALUE) case GBP_##VALUE: return #VALUE;
+      CASE(OTHER)
+      CASE(CR)
+      CASE(LF)
+      CASE(CONTROL)
+      CASE(EXTEND)
+      CASE(PREPEND)
+      CASE(SPACINGMARK)
+      CASE(L)
+      CASE(V)
+      CASE(T)
+      CASE(LV)
+      CASE(LVT)
+    }
+  abort ();
+}
+
+int
+main (int argc, char *argv[])
+{
+  const char *filename;
+  char line[1024];
+  int exit_code;
+  FILE *stream;
+  int lineno;
+
+  if (argc != 2)
+    {
+      fprintf (stderr, "usage: %s FILENAME\n"
+               "where FILENAME is the location of the GraphemeBreakTest.txt\n"
+               "test file.\n", argv[0]);
+      exit (1);
+    }
+
+  filename = argv[1];
+  stream = fopen (filename, "r");
+  if (stream == NULL)
+    {
+      fprintf (stderr, "error during fopen of '%s'\n", filename);
+      exit (1);
+    }
+
+  exit_code = 0;
+  lineno = 0;
+  while (fgets (line, sizeof line, stream))
+    {
+      char *comment;
+      const char *p;
+      ucs4_t prev;
+
+      lineno++;
+
+      comment = strchr (line, '#');
+      if (comment != NULL)
+        *comment = '\0';
+      if (line[strspn (line, " \t\r\n")] == '\0')
+        continue;
+
+      prev = 0;
+      p = line;
+      do
+        {
+          bool should_break;
+          ucs4_t next;
+
+          p += strspn (p, " \t\r\n");
+          if (!strncmp (p, "\303\267" /* ÷ */, 2))
+            {
+              should_break = true;
+              p += 2;
+            }
+          else if (!strncmp (p, "\303\227" /* × */, 2))
+            {
+              should_break = false;
+              p += 2;
+            }
+          else
+            {
+              fprintf (stderr, "%s:%d.%d: syntax error expecting '÷' or '×'\n",
+                       filename, lineno, (int) (p - line + 1));
+              exit (1);
+            }
+
+          p += strspn (p, " \t\r\n");
+          if (*p == '\0')
+            next = 0;
+          else
+            {
+              unsigned int next_int;
+              int n;
+
+              if (sscanf (p, "%x%n", &next_int, &n) != 1)
+                {
+                  fprintf (stderr, "%s:%d.%d: syntax error at '%s' "
+                           "expecting hexadecimal Unicode code point number\n",
+                           filename, lineno, (int) (p - line + 1), p);
+                  exit (1);
+                }
+              p += n;
+
+              next = next_int;
+            }
+
+          if (uc_is_grapheme_break (prev, next) != should_break)
+            {
+              int prev_gbp = uc_graphemeclusterbreak_property (prev);
+              int next_gbp = uc_graphemeclusterbreak_property (next);
+              fprintf (stderr, "%s:%d: should %s U+%04X (%s) and "
+                       "U+%04X (%s)\n",
+                       filename, lineno,
+                       should_break ? "break" : "join",
+                       prev, graphemebreakproperty_to_string (prev_gbp),
+                       next, graphemebreakproperty_to_string (next_gbp));
+              exit_code = 1;
+            }
+
+          p += strspn (p, " \t\r\n");
+          prev = next;
+        }
+      while (*p != '\0');
+    }
+
+  return exit_code;
+}
diff --git a/tests/unigbrk/test-uc-is-grapheme-break.sh b/tests/unigbrk/test-uc-is-grapheme-break.sh
new file mode 100755 (executable)
index 0000000..37473e1
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+./test-uc-is-grapheme-break${EXEEXT} "${srcdir}/unigbrk/GraphemeBreakTest.txt"
diff --git a/tests/unigbrk/test-ulc-grapheme-breaks.c b/tests/unigbrk/test-ulc-grapheme-breaks.c
new file mode 100644 (file)
index 0000000..bdb9d6f
--- /dev/null
@@ -0,0 +1,86 @@
+/* Grapheme cluster breaks test.
+   Copyright (C) 2009-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Ben Pfaff <blp@cs.stanford.edu>, 2010,
+   based on code by Bruno Haible <bruno@clisp.org>, 2009.  */
+
+#include <config.h>
+
+#include "unigbrk.h"
+
+#include <locale.h>
+#include <stdlib.h>
+
+#include "macros.h"
+
+static bool
+is_8859_6_break (unsigned char c)
+{
+  /* ISO-8859-6 has combining characters in positions 0xeb through 0xf2. */
+  return !(c >= 0xeb && c <= 0xf2);
+}
+
+int
+main ()
+{
+  /* configure should already have checked that the locale is supported.  */
+  if (setlocale (LC_ALL, "") == NULL)
+    return 1;
+
+  /* Test case n = 0.  */
+  ulc_grapheme_breaks (NULL, 0, NULL);
+
+#if HAVE_ICONV
+  {
+    /* This is just a random collection of bytes from ISO-8859-6.
+
+       (We use ISO-8859-6 because it is one of very few non-UTF-8 locale
+       encodings supported by glibc that have combining characters.) */
+    static const char s[] = "ZYX\352\353W\360\361V\362";
+    enum { LENGTH = sizeof s - 1 };
+    char p[LENGTH];
+    size_t i;
+
+    ulc_grapheme_breaks (s, LENGTH, p);
+    for (i = 0; i < LENGTH; i++)
+      if (p[i] != is_8859_6_break (s[i]))
+        {
+          size_t j;
+
+          fprintf (stderr, "wrong grapheme breaks:\n");
+
+          fprintf (stderr, "   input:");
+          for (j = 0; j < LENGTH; j++)
+            fprintf (stderr, " %02x", (unsigned char) s[j]);
+          putc ('\n', stderr);
+
+          fprintf (stderr, "expected:");
+          for (j = 0; j < LENGTH; j++)
+            fprintf (stderr, "  %d", is_8859_6_break (s[j]));
+          putc ('\n', stderr);
+
+          fprintf (stderr, "  actual:");
+          for (j = 0; j < LENGTH; j++)
+            fprintf (stderr, "  %d", p[j]);
+          putc ('\n', stderr);
+
+          abort ();
+        }
+  }
+#endif
+
+  return 0;
+}
diff --git a/tests/unigbrk/test-ulc-grapheme-breaks.sh b/tests/unigbrk/test-ulc-grapheme-breaks.sh
new file mode 100755 (executable)
index 0000000..534df61
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Test in an ISO-8895-6 locale.
+: ${LOCALE_AR=ar_SA}
+if test $LOCALE_AR = none; then
+  if test -f /usr/bin/localedef; then
+    echo "Skipping test: no traditional Arabic locale is installed"
+  else
+    echo "Skipping test: no traditional Arabic locale is supported"
+  fi
+  exit 77
+fi
+
+LC_ALL=$LOCALE_AR \
+./test-ulc-grapheme-breaks${EXEEXT}
index cdfa75c..bd19864 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of line breaking of UTF-16 strings.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
@@ -51,7 +51,7 @@ main ()
           ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
                            i == 5
                            || i == 11 || i == 25
-                           || i == 27 || i == 29 || i == 30 || i == 35
+                           || i == 29 || i == 30
                            || i == 45 || i == 51
                            || i == 52 || i == 53 || i == 55 || i == 56
                            || i == 58 || i == 59 ? UC_BREAK_POSSIBLE :
@@ -70,7 +70,7 @@ main ()
           ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
                            i == 5
                            || i == 11 || i == 25
-                           || i == 27 || i == 29 || i == 30 || i == 35
+                           || i == 29 || i == 30
                            || i == 37 || i == 45 || i == 51
                            || i == 52 || i == 53 || i == 55 || i == 56
                            || i == 58 || i == 59 ? UC_BREAK_POSSIBLE :
@@ -80,5 +80,20 @@ main ()
     }
   }
 
+  /* Test that a break is possible after a zero-width space followed by some
+     regular spaces (rule LB8 in Unicode TR#14 revision 26).  */
+  {
+    static const uint16_t input[4] = { 'x', 0x200B, ' ', 'y' };
+    char *p = (char *) malloc (SIZEOF (input));
+    size_t i;
+
+    u16_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
+    for (i = 0; i < 4; i++)
+      {
+        ASSERT (p[i] == (i == 3 ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED));
+      }
+    free (p);
+  }
+
   return 0;
 }
index 2523afb..57cfc85 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of line breaking of UTF-16 strings.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
index d775ebc..459500a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of line breaking of UTF-32 strings.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
@@ -51,7 +51,7 @@ main ()
           ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
                            i == 5
                            || i == 11 || i == 25
-                           || i == 27 || i == 29 || i == 30 || i == 35
+                           || i == 29 || i == 30
                            || i == 45 || i == 51
                            || i == 52 || i == 53 || i == 55 || i == 56
                            || i == 58 || i == 59 ? UC_BREAK_POSSIBLE :
@@ -70,7 +70,7 @@ main ()
           ASSERT (p[i] == (i == 60 ? UC_BREAK_MANDATORY :
                            i == 5
                            || i == 11 || i == 25
-                           || i == 27 || i == 29 || i == 30 || i == 35
+                           || i == 29 || i == 30
                            || i == 37 || i == 45 || i == 51
                            || i == 52 || i == 53 || i == 55 || i == 56
                            || i == 58 || i == 59 ? UC_BREAK_POSSIBLE :
@@ -80,5 +80,20 @@ main ()
     }
   }
 
+  /* Test that a break is possible after a zero-width space followed by some
+     regular spaces (rule LB8 in Unicode TR#14 revision 26).  */
+  {
+    static const uint32_t input[4] = { 'x', 0x200B, ' ', 'y' };
+    char *p = (char *) malloc (SIZEOF (input));
+    size_t i;
+
+    u32_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
+    for (i = 0; i < 4; i++)
+      {
+        ASSERT (p[i] == (i == 3 ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED));
+      }
+    free (p);
+  }
+
   return 0;
 }
index 050c219..0dc4507 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of line breaking of UTF-32 strings.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
index 555acf6..52687e8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of line breaking of UTF-8 strings.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
@@ -45,7 +45,7 @@ main ()
           ASSERT (p[i] == (i == 90 ? UC_BREAK_MANDATORY :
                            i == 7
                            || i == 13 || i == 39
-                           || i == 41 || i == 43 || i == 44 || i == 50
+                           || i == 43 || i == 44
                            || i == 61 || i == 67
                            || i == 70 || i == 73 || i == 77 || i == 80
                            || i == 84 || i == 87 ? UC_BREAK_POSSIBLE :
@@ -64,7 +64,7 @@ main ()
           ASSERT (p[i] == (i == 90 ? UC_BREAK_MANDATORY :
                            i == 7
                            || i == 13 || i == 39
-                           || i == 41 || i == 43 || i == 44 || i == 50
+                           || i == 43 || i == 44
                            || i == 52 || i == 61 || i == 67
                            || i == 70 || i == 73 || i == 77 || i == 80
                            || i == 84 || i == 87 ? UC_BREAK_POSSIBLE :
@@ -74,5 +74,20 @@ main ()
     }
   }
 
+  /* Test that a break is possible after a zero-width space followed by some
+     regular spaces (rule LB8 in Unicode TR#14 revision 26).  */
+  {
+    static const uint8_t input[6] = "x\342\200\213 y";
+    char *p = (char *) malloc (SIZEOF (input));
+    size_t i;
+
+    u8_possible_linebreaks (input, SIZEOF (input), "UTF-8", p);
+    for (i = 0; i < 4; i++)
+      {
+        ASSERT (p[i] == (i == 5 ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED));
+      }
+    free (p);
+  }
+
   return 0;
 }
index e78b075..e8c1c85 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of line breaking of UTF-8 strings.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
index c64fade..0223d77 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of line breaking of strings.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
@@ -42,8 +42,8 @@ main ()
     for (i = 0; i < 36; i++)
       {
         ASSERT (p[i] == (i == 35 ? UC_BREAK_MANDATORY :
-                         i == 5 || i == 11 || i == 13 || i == 15 || i == 16
-                         || i == 21 || i == 31 ? UC_BREAK_POSSIBLE :
+                         i == 5 || i == 11 || i == 15 || i == 16
+                         || i == 31 ? UC_BREAK_POSSIBLE :
                          UC_BREAK_PROHIBITED));
       }
     free (p);
index 875554a..c1ffaa1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of line breaking of strings.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
@@ -42,7 +42,7 @@ main ()
     for (i = 0; i < 36; i++)
       {
         ASSERT (p[i] == (i == 35 ? UC_BREAK_MANDATORY :
-                         i == 11 || i == 21 || i == 31 ? UC_BREAK_POSSIBLE :
+                         i == 11 || i == 16 || i == 31 ? UC_BREAK_POSSIBLE :
                          UC_BREAK_PROHIBITED));
       }
     free (p);
index 2116351..a11e82b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the Unicode character name functions.
-   Copyright (C) 2000-2003, 2005, 2007, 2009-2010 Free Software Foundation,
+   Copyright (C) 2000-2003, 2005, 2007, 2009-2014 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index 0bb9765..215c26f 100644 (file)
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
+# NormalizationTest-6.0.0.txt
+# Date: 2010-05-18, 00:49:30 GMT [MD]
+#
+# Unicode Character Database
+# Copyright (c) 1991-2010 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+# Most comments have been stripped from this file.
 
 
 
 2092;2092;2092;006F;006F;
 2093;2093;2093;0078;0078;
 2094;2094;2094;0259;0259;
+2095;2095;2095;0068;0068;
+2096;2096;2096;006B;006B;
+2097;2097;2097;006C;006C;
+2098;2098;2098;006D;006D;
+2099;2099;2099;006E;006E;
+209A;209A;209A;0070;0070;
+209B;209B;209B;0073;0073;
+209C;209C;209C;0074;0074;
 20A8;20A8;20A8;0052 0073;0052 0073;
 2100;2100;2100;0061 002F 0063;0061 002F 0063;
 2101;2101;2101;0061 002F 0073;0061 002F 0073;
 2147;2147;2147;0065;0065;
 2148;2148;2148;0069;0069;
 2149;2149;2149;006A;006A;
+2150;2150;2150;0031 2044 0037;0031 2044 0037;
+2151;2151;2151;0031 2044 0039;0031 2044 0039;
+2152;2152;2152;0031 2044 0031 0030;0031 2044 0031 0030;
 2153;2153;2153;0031 2044 0033;0031 2044 0033;
 2154;2154;2154;0032 2044 0033;0032 2044 0033;
 2155;2155;2155;0031 2044 0035;0031 2044 0035;
 217D;217D;217D;0063;0063;
 217E;217E;217E;0064;0064;
 217F;217F;217F;006D;006D;
+2189;2189;2189;0030 2044 0033;0030 2044 0033;
 219A;219A;2190 0338;219A;2190 0338;
 219B;219B;2192 0338;219B;2192 0338;
 21AE;21AE;2194 0338;21AE;2194 0338;
 3241;3241;3241;0028 4F11 0029;0028 4F11 0029;
 3242;3242;3242;0028 81EA 0029;0028 81EA 0029;
 3243;3243;3243;0028 81F3 0029;0028 81F3 0029;
+3244;3244;3244;554F;554F;
+3245;3245;3245;5E7C;5E7C;
+3246;3246;3246;6587;6587;
+3247;3247;3247;7B8F;7B8F;
 3250;3250;3250;0050 0054 0045;0050 0054 0045;
 3251;3251;3251;0032 0031;0032 0031;
 3252;3252;3252;0032 0032;0032 0032;
@@ -13905,6 +13921,9 @@ FA67;9038;9038;9038;9038;
 FA68;96E3;96E3;96E3;96E3;
 FA69;97FF;97FF;97FF;97FF;
 FA6A;983B;983B;983B;983B;
+FA6B;6075;6075;6075;6075;
+FA6C;242EE;242EE;242EE;242EE;
+FA6D;8218;8218;8218;8218;
 FA70;4E26;4E26;4E26;4E26;
 FA71;51B5;51B5;51B5;51B5;
 FA72;5168;5168;5168;5168;
@@ -15090,6 +15109,9 @@ FFEB;FFEB;FFEB;2192;2192;
 FFEC;FFEC;FFEC;2193;2193;
 FFED;FFED;FFED;25A0;25A0;
 FFEE;FFEE;FFEE;25CB;25CB;
+1109A;1109A;11099 110BA;1109A;11099 110BA;
+1109C;1109C;1109B 110BA;1109C;1109B 110BA;
+110AB;110AB;110A5 110BA;110AB;110A5 110BA;
 1D15E;1D157 1D165;1D157 1D165;1D157 1D165;1D157 1D165;
 1D15F;1D158 1D165;1D158 1D165;1D158 1D165;1D158 1D165;
 1D160;1D158 1D165 1D16E;1D158 1D165 1D16E;1D158 1D165 1D16E;1D158 1D165 1D16E;
@@ -16099,6 +16121,138 @@ FFEE;FFEE;FFEE;25CB;25CB;
 1D7FD;1D7FD;1D7FD;0037;0037;
 1D7FE;1D7FE;1D7FE;0038;0038;
 1D7FF;1D7FF;1D7FF;0039;0039;
+1F100;1F100;1F100;0030 002E;0030 002E;
+1F101;1F101;1F101;0030 002C;0030 002C;
+1F102;1F102;1F102;0031 002C;0031 002C;
+1F103;1F103;1F103;0032 002C;0032 002C;
+1F104;1F104;1F104;0033 002C;0033 002C;
+1F105;1F105;1F105;0034 002C;0034 002C;
+1F106;1F106;1F106;0035 002C;0035 002C;
+1F107;1F107;1F107;0036 002C;0036 002C;
+1F108;1F108;1F108;0037 002C;0037 002C;
+1F109;1F109;1F109;0038 002C;0038 002C;
+1F10A;1F10A;1F10A;0039 002C;0039 002C;
+1F110;1F110;1F110;0028 0041 0029;0028 0041 0029;
+1F111;1F111;1F111;0028 0042 0029;0028 0042 0029;
+1F112;1F112;1F112;0028 0043 0029;0028 0043 0029;
+1F113;1F113;1F113;0028 0044 0029;0028 0044 0029;
+1F114;1F114;1F114;0028 0045 0029;0028 0045 0029;
+1F115;1F115;1F115;0028 0046 0029;0028 0046 0029;
+1F116;1F116;1F116;0028 0047 0029;0028 0047 0029;
+1F117;1F117;1F117;0028 0048 0029;0028 0048 0029;
+1F118;1F118;1F118;0028 0049 0029;0028 0049 0029;
+1F119;1F119;1F119;0028 004A 0029;0028 004A 0029;
+1F11A;1F11A;1F11A;0028 004B 0029;0028 004B 0029;
+1F11B;1F11B;1F11B;0028 004C 0029;0028 004C 0029;
+1F11C;1F11C;1F11C;0028 004D 0029;0028 004D 0029;
+1F11D;1F11D;1F11D;0028 004E 0029;0028 004E 0029;
+1F11E;1F11E;1F11E;0028 004F 0029;0028 004F 0029;
+1F11F;1F11F;1F11F;0028 0050 0029;0028 0050 0029;
+1F120;1F120;1F120;0028 0051 0029;0028 0051 0029;
+1F121;1F121;1F121;0028 0052 0029;0028 0052 0029;
+1F122;1F122;1F122;0028 0053 0029;0028 0053 0029;
+1F123;1F123;1F123;0028 0054 0029;0028 0054 0029;
+1F124;1F124;1F124;0028 0055 0029;0028 0055 0029;
+1F125;1F125;1F125;0028 0056 0029;0028 0056 0029;
+1F126;1F126;1F126;0028 0057 0029;0028 0057 0029;
+1F127;1F127;1F127;0028 0058 0029;0028 0058 0029;
+1F128;1F128;1F128;0028 0059 0029;0028 0059 0029;
+1F129;1F129;1F129;0028 005A 0029;0028 005A 0029;
+1F12A;1F12A;1F12A;3014 0053 3015;3014 0053 3015;
+1F12B;1F12B;1F12B;0043;0043;
+1F12C;1F12C;1F12C;0052;0052;
+1F12D;1F12D;1F12D;0043 0044;0043 0044;
+1F12E;1F12E;1F12E;0057 005A;0057 005A;
+1F130;1F130;1F130;0041;0041;
+1F131;1F131;1F131;0042;0042;
+1F132;1F132;1F132;0043;0043;
+1F133;1F133;1F133;0044;0044;
+1F134;1F134;1F134;0045;0045;
+1F135;1F135;1F135;0046;0046;
+1F136;1F136;1F136;0047;0047;
+1F137;1F137;1F137;0048;0048;
+1F138;1F138;1F138;0049;0049;
+1F139;1F139;1F139;004A;004A;
+1F13A;1F13A;1F13A;004B;004B;
+1F13B;1F13B;1F13B;004C;004C;
+1F13C;1F13C;1F13C;004D;004D;
+1F13D;1F13D;1F13D;004E;004E;
+1F13E;1F13E;1F13E;004F;004F;
+1F13F;1F13F;1F13F;0050;0050;
+1F140;1F140;1F140;0051;0051;
+1F141;1F141;1F141;0052;0052;
+1F142;1F142;1F142;0053;0053;
+1F143;1F143;1F143;0054;0054;
+1F144;1F144;1F144;0055;0055;
+1F145;1F145;1F145;0056;0056;
+1F146;1F146;1F146;0057;0057;
+1F147;1F147;1F147;0058;0058;
+1F148;1F148;1F148;0059;0059;
+1F149;1F149;1F149;005A;005A;
+1F14A;1F14A;1F14A;0048 0056;0048 0056;
+1F14B;1F14B;1F14B;004D 0056;004D 0056;
+1F14C;1F14C;1F14C;0053 0044;0053 0044;
+1F14D;1F14D;1F14D;0053 0053;0053 0053;
+1F14E;1F14E;1F14E;0050 0050 0056;0050 0050 0056;
+1F14F;1F14F;1F14F;0057 0043;0057 0043;
+1F190;1F190;1F190;0044 004A;0044 004A;
+1F200;1F200;1F200;307B 304B;307B 304B;
+1F201;1F201;1F201;30B3 30B3;30B3 30B3;
+1F202;1F202;1F202;30B5;30B5;
+1F210;1F210;1F210;624B;624B;
+1F211;1F211;1F211;5B57;5B57;
+1F212;1F212;1F212;53CC;53CC;
+1F213;1F213;1F213;30C7;30C6 3099;
+1F214;1F214;1F214;4E8C;4E8C;
+1F215;1F215;1F215;591A;591A;
+1F216;1F216;1F216;89E3;89E3;
+1F217;1F217;1F217;5929;5929;
+1F218;1F218;1F218;4EA4;4EA4;
+1F219;1F219;1F219;6620;6620;
+1F21A;1F21A;1F21A;7121;7121;
+1F21B;1F21B;1F21B;6599;6599;
+1F21C;1F21C;1F21C;524D;524D;
+1F21D;1F21D;1F21D;5F8C;5F8C;
+1F21E;1F21E;1F21E;518D;518D;
+1F21F;1F21F;1F21F;65B0;65B0;
+1F220;1F220;1F220;521D;521D;
+1F221;1F221;1F221;7D42;7D42;
+1F222;1F222;1F222;751F;751F;
+1F223;1F223;1F223;8CA9;8CA9;
+1F224;1F224;1F224;58F0;58F0;
+1F225;1F225;1F225;5439;5439;
+1F226;1F226;1F226;6F14;6F14;
+1F227;1F227;1F227;6295;6295;
+1F228;1F228;1F228;6355;6355;
+1F229;1F229;1F229;4E00;4E00;
+1F22A;1F22A;1F22A;4E09;4E09;
+1F22B;1F22B;1F22B;904A;904A;
+1F22C;1F22C;1F22C;5DE6;5DE6;
+1F22D;1F22D;1F22D;4E2D;4E2D;
+1F22E;1F22E;1F22E;53F3;53F3;
+1F22F;1F22F;1F22F;6307;6307;
+1F230;1F230;1F230;8D70;8D70;
+1F231;1F231;1F231;6253;6253;
+1F232;1F232;1F232;7981;7981;
+1F233;1F233;1F233;7A7A;7A7A;
+1F234;1F234;1F234;5408;5408;
+1F235;1F235;1F235;6E80;6E80;
+1F236;1F236;1F236;6709;6709;
+1F237;1F237;1F237;6708;6708;
+1F238;1F238;1F238;7533;7533;
+1F239;1F239;1F239;5272;5272;
+1F23A;1F23A;1F23A;55B6;55B6;
+1F240;1F240;1F240;3014 672C 3015;3014 672C 3015;
+1F241;1F241;1F241;3014 4E09 3015;3014 4E09 3015;
+1F242;1F242;1F242;3014 4E8C 3015;3014 4E8C 3015;
+1F243;1F243;1F243;3014 5B89 3015;3014 5B89 3015;
+1F244;1F244;1F244;3014 70B9 3015;3014 70B9 3015;
+1F245;1F245;1F245;3014 6253 3015;3014 6253 3015;
+1F246;1F246;1F246;3014 76D7 3015;3014 76D7 3015;
+1F247;1F247;1F247;3014 52DD 3015;3014 52DD 3015;
+1F248;1F248;1F248;3014 6557 3015;3014 6557 3015;
+1F250;1F250;1F250;5F97;5F97;
+1F251;1F251;1F251;53EF;53EF;
 2F800;4E3D;4E3D;4E3D;4E3D;
 2F801;4E38;4E38;4E38;4E38;
 2F802;4E41;4E41;4E41;4E41;
@@ -17040,6 +17194,8 @@ FFEE;FFEE;FFEE;25CB;25CB;
 0061 065D 0315 0300 05AE 0062;0061 05AE 065D 0300 0315 0062;0061 05AE 065D 0300 0315 0062;0061 05AE 065D 0300 0315 0062;0061 05AE 065D 0300 0315 0062;
 0061 0315 0300 05AE 065E 0062;00E0 05AE 065E 0315 0062;0061 05AE 0300 065E 0315 0062;00E0 05AE 065E 0315 0062;0061 05AE 0300 065E 0315 0062;
 0061 065E 0315 0300 05AE 0062;0061 05AE 065E 0300 0315 0062;0061 05AE 065E 0300 0315 0062;0061 05AE 065E 0300 0315 0062;0061 05AE 065E 0300 0315 0062;
+0061 059A 0316 302A 065F 0062;0061 302A 0316 065F 059A 0062;0061 302A 0316 065F 059A 0062;0061 302A 0316 065F 059A 0062;0061 302A 0316 065F 059A 0062;
+0061 065F 059A 0316 302A 0062;0061 302A 065F 0316 059A 0062;0061 302A 065F 0316 059A 0062;0061 302A 065F 0316 059A 0062;0061 302A 065F 0316 059A 0062;
 0061 0711 0670 0652 0670 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;
 0061 0670 0711 0670 0652 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;0061 0652 0670 0670 0711 0062;
 0061 0315 0300 05AE 06D6 0062;00E0 05AE 06D6 0315 0062;0061 05AE 0300 06D6 0315 0062;00E0 05AE 06D6 0315 0062;0061 05AE 0300 06D6 0315 0062;
@@ -17154,6 +17310,54 @@ FFEE;FFEE;FFEE;25CB;25CB;
 0061 07F2 059A 0316 302A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;
 0061 0315 0300 05AE 07F3 0062;00E0 05AE 07F3 0315 0062;0061 05AE 0300 07F3 0315 0062;00E0 05AE 07F3 0315 0062;0061 05AE 0300 07F3 0315 0062;
 0061 07F3 0315 0300 05AE 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;
+0061 0315 0300 05AE 0816 0062;00E0 05AE 0816 0315 0062;0061 05AE 0300 0816 0315 0062;00E0 05AE 0816 0315 0062;0061 05AE 0300 0816 0315 0062;
+0061 0816 0315 0300 05AE 0062;0061 05AE 0816 0300 0315 0062;0061 05AE 0816 0300 0315 0062;0061 05AE 0816 0300 0315 0062;0061 05AE 0816 0300 0315 0062;
+0061 0315 0300 05AE 0817 0062;00E0 05AE 0817 0315 0062;0061 05AE 0300 0817 0315 0062;00E0 05AE 0817 0315 0062;0061 05AE 0300 0817 0315 0062;
+0061 0817 0315 0300 05AE 0062;0061 05AE 0817 0300 0315 0062;0061 05AE 0817 0300 0315 0062;0061 05AE 0817 0300 0315 0062;0061 05AE 0817 0300 0315 0062;
+0061 0315 0300 05AE 0818 0062;00E0 05AE 0818 0315 0062;0061 05AE 0300 0818 0315 0062;00E0 05AE 0818 0315 0062;0061 05AE 0300 0818 0315 0062;
+0061 0818 0315 0300 05AE 0062;0061 05AE 0818 0300 0315 0062;0061 05AE 0818 0300 0315 0062;0061 05AE 0818 0300 0315 0062;0061 05AE 0818 0300 0315 0062;
+0061 0315 0300 05AE 0819 0062;00E0 05AE 0819 0315 0062;0061 05AE 0300 0819 0315 0062;00E0 05AE 0819 0315 0062;0061 05AE 0300 0819 0315 0062;
+0061 0819 0315 0300 05AE 0062;0061 05AE 0819 0300 0315 0062;0061 05AE 0819 0300 0315 0062;0061 05AE 0819 0300 0315 0062;0061 05AE 0819 0300 0315 0062;
+0061 0315 0300 05AE 081B 0062;00E0 05AE 081B 0315 0062;0061 05AE 0300 081B 0315 0062;00E0 05AE 081B 0315 0062;0061 05AE 0300 081B 0315 0062;
+0061 081B 0315 0300 05AE 0062;0061 05AE 081B 0300 0315 0062;0061 05AE 081B 0300 0315 0062;0061 05AE 081B 0300 0315 0062;0061 05AE 081B 0300 0315 0062;
+0061 0315 0300 05AE 081C 0062;00E0 05AE 081C 0315 0062;0061 05AE 0300 081C 0315 0062;00E0 05AE 081C 0315 0062;0061 05AE 0300 081C 0315 0062;
+0061 081C 0315 0300 05AE 0062;0061 05AE 081C 0300 0315 0062;0061 05AE 081C 0300 0315 0062;0061 05AE 081C 0300 0315 0062;0061 05AE 081C 0300 0315 0062;
+0061 0315 0300 05AE 081D 0062;00E0 05AE 081D 0315 0062;0061 05AE 0300 081D 0315 0062;00E0 05AE 081D 0315 0062;0061 05AE 0300 081D 0315 0062;
+0061 081D 0315 0300 05AE 0062;0061 05AE 081D 0300 0315 0062;0061 05AE 081D 0300 0315 0062;0061 05AE 081D 0300 0315 0062;0061 05AE 081D 0300 0315 0062;
+0061 0315 0300 05AE 081E 0062;00E0 05AE 081E 0315 0062;0061 05AE 0300 081E 0315 0062;00E0 05AE 081E 0315 0062;0061 05AE 0300 081E 0315 0062;
+0061 081E 0315 0300 05AE 0062;0061 05AE 081E 0300 0315 0062;0061 05AE 081E 0300 0315 0062;0061 05AE 081E 0300 0315 0062;0061 05AE 081E 0300 0315 0062;
+0061 0315 0300 05AE 081F 0062;00E0 05AE 081F 0315 0062;0061 05AE 0300 081F 0315 0062;00E0 05AE 081F 0315 0062;0061 05AE 0300 081F 0315 0062;
+0061 081F 0315 0300 05AE 0062;0061 05AE 081F 0300 0315 0062;0061 05AE 081F 0300 0315 0062;0061 05AE 081F 0300 0315 0062;0061 05AE 081F 0300 0315 0062;
+0061 0315 0300 05AE 0820 0062;00E0 05AE 0820 0315 0062;0061 05AE 0300 0820 0315 0062;00E0 05AE 0820 0315 0062;0061 05AE 0300 0820 0315 0062;
+0061 0820 0315 0300 05AE 0062;0061 05AE 0820 0300 0315 0062;0061 05AE 0820 0300 0315 0062;0061 05AE 0820 0300 0315 0062;0061 05AE 0820 0300 0315 0062;
+0061 0315 0300 05AE 0821 0062;00E0 05AE 0821 0315 0062;0061 05AE 0300 0821 0315 0062;00E0 05AE 0821 0315 0062;0061 05AE 0300 0821 0315 0062;
+0061 0821 0315 0300 05AE 0062;0061 05AE 0821 0300 0315 0062;0061 05AE 0821 0300 0315 0062;0061 05AE 0821 0300 0315 0062;0061 05AE 0821 0300 0315 0062;
+0061 0315 0300 05AE 0822 0062;00E0 05AE 0822 0315 0062;0061 05AE 0300 0822 0315 0062;00E0 05AE 0822 0315 0062;0061 05AE 0300 0822 0315 0062;
+0061 0822 0315 0300 05AE 0062;0061 05AE 0822 0300 0315 0062;0061 05AE 0822 0300 0315 0062;0061 05AE 0822 0300 0315 0062;0061 05AE 0822 0300 0315 0062;
+0061 0315 0300 05AE 0823 0062;00E0 05AE 0823 0315 0062;0061 05AE 0300 0823 0315 0062;00E0 05AE 0823 0315 0062;0061 05AE 0300 0823 0315 0062;
+0061 0823 0315 0300 05AE 0062;0061 05AE 0823 0300 0315 0062;0061 05AE 0823 0300 0315 0062;0061 05AE 0823 0300 0315 0062;0061 05AE 0823 0300 0315 0062;
+0061 0315 0300 05AE 0825 0062;00E0 05AE 0825 0315 0062;0061 05AE 0300 0825 0315 0062;00E0 05AE 0825 0315 0062;0061 05AE 0300 0825 0315 0062;
+0061 0825 0315 0300 05AE 0062;0061 05AE 0825 0300 0315 0062;0061 05AE 0825 0300 0315 0062;0061 05AE 0825 0300 0315 0062;0061 05AE 0825 0300 0315 0062;
+0061 0315 0300 05AE 0826 0062;00E0 05AE 0826 0315 0062;0061 05AE 0300 0826 0315 0062;00E0 05AE 0826 0315 0062;0061 05AE 0300 0826 0315 0062;
+0061 0826 0315 0300 05AE 0062;0061 05AE 0826 0300 0315 0062;0061 05AE 0826 0300 0315 0062;0061 05AE 0826 0300 0315 0062;0061 05AE 0826 0300 0315 0062;
+0061 0315 0300 05AE 0827 0062;00E0 05AE 0827 0315 0062;0061 05AE 0300 0827 0315 0062;00E0 05AE 0827 0315 0062;0061 05AE 0300 0827 0315 0062;
+0061 0827 0315 0300 05AE 0062;0061 05AE 0827 0300 0315 0062;0061 05AE 0827 0300 0315 0062;0061 05AE 0827 0300 0315 0062;0061 05AE 0827 0300 0315 0062;
+0061 0315 0300 05AE 0829 0062;00E0 05AE 0829 0315 0062;0061 05AE 0300 0829 0315 0062;00E0 05AE 0829 0315 0062;0061 05AE 0300 0829 0315 0062;
+0061 0829 0315 0300 05AE 0062;0061 05AE 0829 0300 0315 0062;0061 05AE 0829 0300 0315 0062;0061 05AE 0829 0300 0315 0062;0061 05AE 0829 0300 0315 0062;
+0061 0315 0300 05AE 082A 0062;00E0 05AE 082A 0315 0062;0061 05AE 0300 082A 0315 0062;00E0 05AE 082A 0315 0062;0061 05AE 0300 082A 0315 0062;
+0061 082A 0315 0300 05AE 0062;0061 05AE 082A 0300 0315 0062;0061 05AE 082A 0300 0315 0062;0061 05AE 082A 0300 0315 0062;0061 05AE 082A 0300 0315 0062;
+0061 0315 0300 05AE 082B 0062;00E0 05AE 082B 0315 0062;0061 05AE 0300 082B 0315 0062;00E0 05AE 082B 0315 0062;0061 05AE 0300 082B 0315 0062;
+0061 082B 0315 0300 05AE 0062;0061 05AE 082B 0300 0315 0062;0061 05AE 082B 0300 0315 0062;0061 05AE 082B 0300 0315 0062;0061 05AE 082B 0300 0315 0062;
+0061 0315 0300 05AE 082C 0062;00E0 05AE 082C 0315 0062;0061 05AE 0300 082C 0315 0062;00E0 05AE 082C 0315 0062;0061 05AE 0300 082C 0315 0062;
+0061 082C 0315 0300 05AE 0062;0061 05AE 082C 0300 0315 0062;0061 05AE 082C 0300 0315 0062;0061 05AE 082C 0300 0315 0062;0061 05AE 082C 0300 0315 0062;
+0061 0315 0300 05AE 082D 0062;00E0 05AE 082D 0315 0062;0061 05AE 0300 082D 0315 0062;00E0 05AE 082D 0315 0062;0061 05AE 0300 082D 0315 0062;
+0061 082D 0315 0300 05AE 0062;0061 05AE 082D 0300 0315 0062;0061 05AE 082D 0300 0315 0062;0061 05AE 082D 0300 0315 0062;0061 05AE 082D 0300 0315 0062;
+0061 059A 0316 302A 0859 0062;0061 302A 0316 0859 059A 0062;0061 302A 0316 0859 059A 0062;0061 302A 0316 0859 059A 0062;0061 302A 0316 0859 059A 0062;
+0061 0859 059A 0316 302A 0062;0061 302A 0859 0316 059A 0062;0061 302A 0859 0316 059A 0062;0061 302A 0859 0316 059A 0062;0061 302A 0859 0316 059A 0062;
+0061 059A 0316 302A 085A 0062;0061 302A 0316 085A 059A 0062;0061 302A 0316 085A 059A 0062;0061 302A 0316 085A 059A 0062;0061 302A 0316 085A 059A 0062;
+0061 085A 059A 0316 302A 0062;0061 302A 085A 0316 059A 0062;0061 302A 085A 0316 059A 0062;0061 302A 085A 0316 059A 0062;0061 302A 085A 0316 059A 0062;
+0061 059A 0316 302A 085B 0062;0061 302A 0316 085B 059A 0062;0061 302A 0316 085B 059A 0062;0061 302A 0316 085B 059A 0062;0061 302A 0316 085B 059A 0062;
+0061 085B 059A 0316 302A 0062;0061 302A 085B 0316 059A 0062;0061 302A 085B 0316 059A 0062;0061 302A 085B 0316 059A 0062;0061 302A 085B 0316 059A 0062;
 0061 3099 093C 0334 093C 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;
 0061 093C 3099 093C 0334 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;
 0061 05B0 094D 3099 094D 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;
@@ -17270,6 +17474,10 @@ FFEE;FFEE;FFEE;25CB;25CB;
 0061 103A 05B0 094D 3099 0062;0061 3099 103A 094D 05B0 0062;0061 3099 103A 094D 05B0 0062;0061 3099 103A 094D 05B0 0062;0061 3099 103A 094D 05B0 0062;
 0061 059A 0316 302A 108D 0062;0061 302A 0316 108D 059A 0062;0061 302A 0316 108D 059A 0062;0061 302A 0316 108D 059A 0062;0061 302A 0316 108D 059A 0062;
 0061 108D 059A 0316 302A 0062;0061 302A 108D 0316 059A 0062;0061 302A 108D 0316 059A 0062;0061 302A 108D 0316 059A 0062;0061 302A 108D 0316 059A 0062;
+0061 0315 0300 05AE 135D 0062;00E0 05AE 135D 0315 0062;0061 05AE 0300 135D 0315 0062;00E0 05AE 135D 0315 0062;0061 05AE 0300 135D 0315 0062;
+0061 135D 0315 0300 05AE 0062;0061 05AE 135D 0300 0315 0062;0061 05AE 135D 0300 0315 0062;0061 05AE 135D 0300 0315 0062;0061 05AE 135D 0300 0315 0062;
+0061 0315 0300 05AE 135E 0062;00E0 05AE 135E 0315 0062;0061 05AE 0300 135E 0315 0062;00E0 05AE 135E 0315 0062;0061 05AE 0300 135E 0315 0062;
+0061 135E 0315 0300 05AE 0062;0061 05AE 135E 0300 0315 0062;0061 05AE 135E 0300 0315 0062;0061 05AE 135E 0300 0315 0062;0061 05AE 135E 0300 0315 0062;
 0061 0315 0300 05AE 135F 0062;00E0 05AE 135F 0315 0062;0061 05AE 0300 135F 0315 0062;00E0 05AE 135F 0315 0062;0061 05AE 0300 135F 0315 0062;
 0061 135F 0315 0300 05AE 0062;0061 05AE 135F 0300 0315 0062;0061 05AE 135F 0300 0315 0062;0061 05AE 135F 0300 0315 0062;0061 05AE 135F 0300 0315 0062;
 0061 05B0 094D 3099 1714 0062;0061 3099 094D 1714 05B0 0062;0061 3099 094D 1714 05B0 0062;0061 3099 094D 1714 05B0 0062;0061 3099 094D 1714 05B0 0062;
@@ -17292,6 +17500,26 @@ FFEE;FFEE;FFEE;25CB;25CB;
 0061 1A17 0315 0300 05AE 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062;
 0061 059A 0316 302A 1A18 0062;0061 302A 0316 1A18 059A 0062;0061 302A 0316 1A18 059A 0062;0061 302A 0316 1A18 059A 0062;0061 302A 0316 1A18 059A 0062;
 0061 1A18 059A 0316 302A 0062;0061 302A 1A18 0316 059A 0062;0061 302A 1A18 0316 059A 0062;0061 302A 1A18 0316 059A 0062;0061 302A 1A18 0316 059A 0062;
+0061 05B0 094D 3099 1A60 0062;0061 3099 094D 1A60 05B0 0062;0061 3099 094D 1A60 05B0 0062;0061 3099 094D 1A60 05B0 0062;0061 3099 094D 1A60 05B0 0062;
+0061 1A60 05B0 094D 3099 0062;0061 3099 1A60 094D 05B0 0062;0061 3099 1A60 094D 05B0 0062;0061 3099 1A60 094D 05B0 0062;0061 3099 1A60 094D 05B0 0062;
+0061 0315 0300 05AE 1A75 0062;00E0 05AE 1A75 0315 0062;0061 05AE 0300 1A75 0315 0062;00E0 05AE 1A75 0315 0062;0061 05AE 0300 1A75 0315 0062;
+0061 1A75 0315 0300 05AE 0062;0061 05AE 1A75 0300 0315 0062;0061 05AE 1A75 0300 0315 0062;0061 05AE 1A75 0300 0315 0062;0061 05AE 1A75 0300 0315 0062;
+0061 0315 0300 05AE 1A76 0062;00E0 05AE 1A76 0315 0062;0061 05AE 0300 1A76 0315 0062;00E0 05AE 1A76 0315 0062;0061 05AE 0300 1A76 0315 0062;
+0061 1A76 0315 0300 05AE 0062;0061 05AE 1A76 0300 0315 0062;0061 05AE 1A76 0300 0315 0062;0061 05AE 1A76 0300 0315 0062;0061 05AE 1A76 0300 0315 0062;
+0061 0315 0300 05AE 1A77 0062;00E0 05AE 1A77 0315 0062;0061 05AE 0300 1A77 0315 0062;00E0 05AE 1A77 0315 0062;0061 05AE 0300 1A77 0315 0062;
+0061 1A77 0315 0300 05AE 0062;0061 05AE 1A77 0300 0315 0062;0061 05AE 1A77 0300 0315 0062;0061 05AE 1A77 0300 0315 0062;0061 05AE 1A77 0300 0315 0062;
+0061 0315 0300 05AE 1A78 0062;00E0 05AE 1A78 0315 0062;0061 05AE 0300 1A78 0315 0062;00E0 05AE 1A78 0315 0062;0061 05AE 0300 1A78 0315 0062;
+0061 1A78 0315 0300 05AE 0062;0061 05AE 1A78 0300 0315 0062;0061 05AE 1A78 0300 0315 0062;0061 05AE 1A78 0300 0315 0062;0061 05AE 1A78 0300 0315 0062;
+0061 0315 0300 05AE 1A79 0062;00E0 05AE 1A79 0315 0062;0061 05AE 0300 1A79 0315 0062;00E0 05AE 1A79 0315 0062;0061 05AE 0300 1A79 0315 0062;
+0061 1A79 0315 0300 05AE 0062;0061 05AE 1A79 0300 0315 0062;0061 05AE 1A79 0300 0315 0062;0061 05AE 1A79 0300 0315 0062;0061 05AE 1A79 0300 0315 0062;
+0061 0315 0300 05AE 1A7A 0062;00E0 05AE 1A7A 0315 0062;0061 05AE 0300 1A7A 0315 0062;00E0 05AE 1A7A 0315 0062;0061 05AE 0300 1A7A 0315 0062;
+0061 1A7A 0315 0300 05AE 0062;0061 05AE 1A7A 0300 0315 0062;0061 05AE 1A7A 0300 0315 0062;0061 05AE 1A7A 0300 0315 0062;0061 05AE 1A7A 0300 0315 0062;
+0061 0315 0300 05AE 1A7B 0062;00E0 05AE 1A7B 0315 0062;0061 05AE 0300 1A7B 0315 0062;00E0 05AE 1A7B 0315 0062;0061 05AE 0300 1A7B 0315 0062;
+0061 1A7B 0315 0300 05AE 0062;0061 05AE 1A7B 0300 0315 0062;0061 05AE 1A7B 0300 0315 0062;0061 05AE 1A7B 0300 0315 0062;0061 05AE 1A7B 0300 0315 0062;
+0061 0315 0300 05AE 1A7C 0062;00E0 05AE 1A7C 0315 0062;0061 05AE 0300 1A7C 0315 0062;00E0 05AE 1A7C 0315 0062;0061 05AE 0300 1A7C 0315 0062;
+0061 1A7C 0315 0300 05AE 0062;0061 05AE 1A7C 0300 0315 0062;0061 05AE 1A7C 0300 0315 0062;0061 05AE 1A7C 0300 0315 0062;0061 05AE 1A7C 0300 0315 0062;
+0061 059A 0316 302A 1A7F 0062;0061 302A 0316 1A7F 059A 0062;0061 302A 0316 1A7F 059A 0062;0061 302A 0316 1A7F 059A 0062;0061 302A 0316 1A7F 059A 0062;
+0061 1A7F 059A 0316 302A 0062;0061 302A 1A7F 0316 059A 0062;0061 302A 1A7F 0316 059A 0062;0061 302A 1A7F 0316 059A 0062;0061 302A 1A7F 0316 059A 0062;
 0061 3099 093C 0334 1B34 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062;
 0061 1B34 3099 093C 0334 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062;
 0061 05B0 094D 3099 1B44 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;
@@ -17316,8 +17544,62 @@ FFEE;FFEE;FFEE;25CB;25CB;
 0061 1B73 0315 0300 05AE 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062;
 0061 05B0 094D 3099 1BAA 0062;0061 3099 094D 1BAA 05B0 0062;0061 3099 094D 1BAA 05B0 0062;0061 3099 094D 1BAA 05B0 0062;0061 3099 094D 1BAA 05B0 0062;
 0061 1BAA 05B0 094D 3099 0062;0061 3099 1BAA 094D 05B0 0062;0061 3099 1BAA 094D 05B0 0062;0061 3099 1BAA 094D 05B0 0062;0061 3099 1BAA 094D 05B0 0062;
+0061 3099 093C 0334 1BE6 0062;0061 0334 093C 1BE6 3099 0062;0061 0334 093C 1BE6 3099 0062;0061 0334 093C 1BE6 3099 0062;0061 0334 093C 1BE6 3099 0062;
+0061 1BE6 3099 093C 0334 0062;0061 0334 1BE6 093C 3099 0062;0061 0334 1BE6 093C 3099 0062;0061 0334 1BE6 093C 3099 0062;0061 0334 1BE6 093C 3099 0062;
+0061 05B0 094D 3099 1BF2 0062;0061 3099 094D 1BF2 05B0 0062;0061 3099 094D 1BF2 05B0 0062;0061 3099 094D 1BF2 05B0 0062;0061 3099 094D 1BF2 05B0 0062;
+0061 1BF2 05B0 094D 3099 0062;0061 3099 1BF2 094D 05B0 0062;0061 3099 1BF2 094D 05B0 0062;0061 3099 1BF2 094D 05B0 0062;0061 3099 1BF2 094D 05B0 0062;
+0061 05B0 094D 3099 1BF3 0062;0061 3099 094D 1BF3 05B0 0062;0061 3099 094D 1BF3 05B0 0062;0061 3099 094D 1BF3 05B0 0062;0061 3099 094D 1BF3 05B0 0062;
+0061 1BF3 05B0 094D 3099 0062;0061 3099 1BF3 094D 05B0 0062;0061 3099 1BF3 094D 05B0 0062;0061 3099 1BF3 094D 05B0 0062;0061 3099 1BF3 094D 05B0 0062;
 0061 3099 093C 0334 1C37 0062;0061 0334 093C 1C37 3099 0062;0061 0334 093C 1C37 3099 0062;0061 0334 093C 1C37 3099 0062;0061 0334 093C 1C37 3099 0062;
 0061 1C37 3099 093C 0334 0062;0061 0334 1C37 093C 3099 0062;0061 0334 1C37 093C 3099 0062;0061 0334 1C37 093C 3099 0062;0061 0334 1C37 093C 3099 0062;
+0061 0315 0300 05AE 1CD0 0062;00E0 05AE 1CD0 0315 0062;0061 05AE 0300 1CD0 0315 0062;00E0 05AE 1CD0 0315 0062;0061 05AE 0300 1CD0 0315 0062;
+0061 1CD0 0315 0300 05AE 0062;0061 05AE 1CD0 0300 0315 0062;0061 05AE 1CD0 0300 0315 0062;0061 05AE 1CD0 0300 0315 0062;0061 05AE 1CD0 0300 0315 0062;
+0061 0315 0300 05AE 1CD1 0062;00E0 05AE 1CD1 0315 0062;0061 05AE 0300 1CD1 0315 0062;00E0 05AE 1CD1 0315 0062;0061 05AE 0300 1CD1 0315 0062;
+0061 1CD1 0315 0300 05AE 0062;0061 05AE 1CD1 0300 0315 0062;0061 05AE 1CD1 0300 0315 0062;0061 05AE 1CD1 0300 0315 0062;0061 05AE 1CD1 0300 0315 0062;
+0061 0315 0300 05AE 1CD2 0062;00E0 05AE 1CD2 0315 0062;0061 05AE 0300 1CD2 0315 0062;00E0 05AE 1CD2 0315 0062;0061 05AE 0300 1CD2 0315 0062;
+0061 1CD2 0315 0300 05AE 0062;0061 05AE 1CD2 0300 0315 0062;0061 05AE 1CD2 0300 0315 0062;0061 05AE 1CD2 0300 0315 0062;0061 05AE 1CD2 0300 0315 0062;
+0061 093C 0334 1CD4 0062;0061 0334 1CD4 093C 0062;0061 0334 1CD4 093C 0062;0061 0334 1CD4 093C 0062;0061 0334 1CD4 093C 0062;
+0061 1CD4 093C 0334 0062;0061 1CD4 0334 093C 0062;0061 1CD4 0334 093C 0062;0061 1CD4 0334 093C 0062;0061 1CD4 0334 093C 0062;
+0061 059A 0316 302A 1CD5 0062;0061 302A 0316 1CD5 059A 0062;0061 302A 0316 1CD5 059A 0062;0061 302A 0316 1CD5 059A 0062;0061 302A 0316 1CD5 059A 0062;
+0061 1CD5 059A 0316 302A 0062;0061 302A 1CD5 0316 059A 0062;0061 302A 1CD5 0316 059A 0062;0061 302A 1CD5 0316 059A 0062;0061 302A 1CD5 0316 059A 0062;
+0061 059A 0316 302A 1CD6 0062;0061 302A 0316 1CD6 059A 0062;0061 302A 0316 1CD6 059A 0062;0061 302A 0316 1CD6 059A 0062;0061 302A 0316 1CD6 059A 0062;
+0061 1CD6 059A 0316 302A 0062;0061 302A 1CD6 0316 059A 0062;0061 302A 1CD6 0316 059A 0062;0061 302A 1CD6 0316 059A 0062;0061 302A 1CD6 0316 059A 0062;
+0061 059A 0316 302A 1CD7 0062;0061 302A 0316 1CD7 059A 0062;0061 302A 0316 1CD7 059A 0062;0061 302A 0316 1CD7 059A 0062;0061 302A 0316 1CD7 059A 0062;
+0061 1CD7 059A 0316 302A 0062;0061 302A 1CD7 0316 059A 0062;0061 302A 1CD7 0316 059A 0062;0061 302A 1CD7 0316 059A 0062;0061 302A 1CD7 0316 059A 0062;
+0061 059A 0316 302A 1CD8 0062;0061 302A 0316 1CD8 059A 0062;0061 302A 0316 1CD8 059A 0062;0061 302A 0316 1CD8 059A 0062;0061 302A 0316 1CD8 059A 0062;
+0061 1CD8 059A 0316 302A 0062;0061 302A 1CD8 0316 059A 0062;0061 302A 1CD8 0316 059A 0062;0061 302A 1CD8 0316 059A 0062;0061 302A 1CD8 0316 059A 0062;
+0061 059A 0316 302A 1CD9 0062;0061 302A 0316 1CD9 059A 0062;0061 302A 0316 1CD9 059A 0062;0061 302A 0316 1CD9 059A 0062;0061 302A 0316 1CD9 059A 0062;
+0061 1CD9 059A 0316 302A 0062;0061 302A 1CD9 0316 059A 0062;0061 302A 1CD9 0316 059A 0062;0061 302A 1CD9 0316 059A 0062;0061 302A 1CD9 0316 059A 0062;
+0061 0315 0300 05AE 1CDA 0062;00E0 05AE 1CDA 0315 0062;0061 05AE 0300 1CDA 0315 0062;00E0 05AE 1CDA 0315 0062;0061 05AE 0300 1CDA 0315 0062;
+0061 1CDA 0315 0300 05AE 0062;0061 05AE 1CDA 0300 0315 0062;0061 05AE 1CDA 0300 0315 0062;0061 05AE 1CDA 0300 0315 0062;0061 05AE 1CDA 0300 0315 0062;
+0061 0315 0300 05AE 1CDB 0062;00E0 05AE 1CDB 0315 0062;0061 05AE 0300 1CDB 0315 0062;00E0 05AE 1CDB 0315 0062;0061 05AE 0300 1CDB 0315 0062;
+0061 1CDB 0315 0300 05AE 0062;0061 05AE 1CDB 0300 0315 0062;0061 05AE 1CDB 0300 0315 0062;0061 05AE 1CDB 0300 0315 0062;0061 05AE 1CDB 0300 0315 0062;
+0061 059A 0316 302A 1CDC 0062;0061 302A 0316 1CDC 059A 0062;0061 302A 0316 1CDC 059A 0062;0061 302A 0316 1CDC 059A 0062;0061 302A 0316 1CDC 059A 0062;
+0061 1CDC 059A 0316 302A 0062;0061 302A 1CDC 0316 059A 0062;0061 302A 1CDC 0316 059A 0062;0061 302A 1CDC 0316 059A 0062;0061 302A 1CDC 0316 059A 0062;
+0061 059A 0316 302A 1CDD 0062;0061 302A 0316 1CDD 059A 0062;0061 302A 0316 1CDD 059A 0062;0061 302A 0316 1CDD 059A 0062;0061 302A 0316 1CDD 059A 0062;
+0061 1CDD 059A 0316 302A 0062;0061 302A 1CDD 0316 059A 0062;0061 302A 1CDD 0316 059A 0062;0061 302A 1CDD 0316 059A 0062;0061 302A 1CDD 0316 059A 0062;
+0061 059A 0316 302A 1CDE 0062;0061 302A 0316 1CDE 059A 0062;0061 302A 0316 1CDE 059A 0062;0061 302A 0316 1CDE 059A 0062;0061 302A 0316 1CDE 059A 0062;
+0061 1CDE 059A 0316 302A 0062;0061 302A 1CDE 0316 059A 0062;0061 302A 1CDE 0316 059A 0062;0061 302A 1CDE 0316 059A 0062;0061 302A 1CDE 0316 059A 0062;
+0061 059A 0316 302A 1CDF 0062;0061 302A 0316 1CDF 059A 0062;0061 302A 0316 1CDF 059A 0062;0061 302A 0316 1CDF 059A 0062;0061 302A 0316 1CDF 059A 0062;
+0061 1CDF 059A 0316 302A 0062;0061 302A 1CDF 0316 059A 0062;0061 302A 1CDF 0316 059A 0062;0061 302A 1CDF 0316 059A 0062;0061 302A 1CDF 0316 059A 0062;
+0061 0315 0300 05AE 1CE0 0062;00E0 05AE 1CE0 0315 0062;0061 05AE 0300 1CE0 0315 0062;00E0 05AE 1CE0 0315 0062;0061 05AE 0300 1CE0 0315 0062;
+0061 1CE0 0315 0300 05AE 0062;0061 05AE 1CE0 0300 0315 0062;0061 05AE 1CE0 0300 0315 0062;0061 05AE 1CE0 0300 0315 0062;0061 05AE 1CE0 0300 0315 0062;
+0061 093C 0334 1CE2 0062;0061 0334 1CE2 093C 0062;0061 0334 1CE2 093C 0062;0061 0334 1CE2 093C 0062;0061 0334 1CE2 093C 0062;
+0061 1CE2 093C 0334 0062;0061 1CE2 0334 093C 0062;0061 1CE2 0334 093C 0062;0061 1CE2 0334 093C 0062;0061 1CE2 0334 093C 0062;
+0061 093C 0334 1CE3 0062;0061 0334 1CE3 093C 0062;0061 0334 1CE3 093C 0062;0061 0334 1CE3 093C 0062;0061 0334 1CE3 093C 0062;
+0061 1CE3 093C 0334 0062;0061 1CE3 0334 093C 0062;0061 1CE3 0334 093C 0062;0061 1CE3 0334 093C 0062;0061 1CE3 0334 093C 0062;
+0061 093C 0334 1CE4 0062;0061 0334 1CE4 093C 0062;0061 0334 1CE4 093C 0062;0061 0334 1CE4 093C 0062;0061 0334 1CE4 093C 0062;
+0061 1CE4 093C 0334 0062;0061 1CE4 0334 093C 0062;0061 1CE4 0334 093C 0062;0061 1CE4 0334 093C 0062;0061 1CE4 0334 093C 0062;
+0061 093C 0334 1CE5 0062;0061 0334 1CE5 093C 0062;0061 0334 1CE5 093C 0062;0061 0334 1CE5 093C 0062;0061 0334 1CE5 093C 0062;
+0061 1CE5 093C 0334 0062;0061 1CE5 0334 093C 0062;0061 1CE5 0334 093C 0062;0061 1CE5 0334 093C 0062;0061 1CE5 0334 093C 0062;
+0061 093C 0334 1CE6 0062;0061 0334 1CE6 093C 0062;0061 0334 1CE6 093C 0062;0061 0334 1CE6 093C 0062;0061 0334 1CE6 093C 0062;
+0061 1CE6 093C 0334 0062;0061 1CE6 0334 093C 0062;0061 1CE6 0334 093C 0062;0061 1CE6 0334 093C 0062;0061 1CE6 0334 093C 0062;
+0061 093C 0334 1CE7 0062;0061 0334 1CE7 093C 0062;0061 0334 1CE7 093C 0062;0061 0334 1CE7 093C 0062;0061 0334 1CE7 093C 0062;
+0061 1CE7 093C 0334 0062;0061 1CE7 0334 093C 0062;0061 1CE7 0334 093C 0062;0061 1CE7 0334 093C 0062;0061 1CE7 0334 093C 0062;
+0061 093C 0334 1CE8 0062;0061 0334 1CE8 093C 0062;0061 0334 1CE8 093C 0062;0061 0334 1CE8 093C 0062;0061 0334 1CE8 093C 0062;
+0061 1CE8 093C 0334 0062;0061 1CE8 0334 093C 0062;0061 1CE8 0334 093C 0062;0061 1CE8 0334 093C 0062;0061 1CE8 0334 093C 0062;
+0061 059A 0316 302A 1CED 0062;0061 302A 0316 1CED 059A 0062;0061 302A 0316 1CED 059A 0062;0061 302A 0316 1CED 059A 0062;0061 302A 0316 1CED 059A 0062;
+0061 1CED 059A 0316 302A 0062;0061 302A 1CED 0316 059A 0062;0061 302A 1CED 0316 059A 0062;0061 302A 1CED 0316 059A 0062;0061 302A 1CED 0316 059A 0062;
 0061 0315 0300 05AE 1DC0 0062;00E0 05AE 1DC0 0315 0062;0061 05AE 0300 1DC0 0315 0062;00E0 05AE 1DC0 0315 0062;0061 05AE 0300 1DC0 0315 0062;
 0061 1DC0 0315 0300 05AE 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;
 0061 0315 0300 05AE 1DC1 0062;00E0 05AE 1DC1 0315 0062;0061 05AE 0300 1DC1 0315 0062;00E0 05AE 1DC1 0315 0062;0061 05AE 0300 1DC1 0315 0062;
@@ -17396,6 +17678,10 @@ FFEE;FFEE;FFEE;25CB;25CB;
 0061 1DE5 0315 0300 05AE 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062;0061 05AE 1DE5 0300 0315 0062;
 0061 0315 0300 05AE 1DE6 0062;00E0 05AE 1DE6 0315 0062;0061 05AE 0300 1DE6 0315 0062;00E0 05AE 1DE6 0315 0062;0061 05AE 0300 1DE6 0315 0062;
 0061 1DE6 0315 0300 05AE 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062;0061 05AE 1DE6 0300 0315 0062;
+0061 035D 035C 0315 1DFC 0062;0061 0315 035C 1DFC 035D 0062;0061 0315 035C 1DFC 035D 0062;0061 0315 035C 1DFC 035D 0062;0061 0315 035C 1DFC 035D 0062;
+0061 1DFC 035D 035C 0315 0062;0061 0315 1DFC 035C 035D 0062;0061 0315 1DFC 035C 035D 0062;0061 0315 1DFC 035C 035D 0062;0061 0315 1DFC 035C 035D 0062;
+0061 059A 0316 302A 1DFD 0062;0061 302A 0316 1DFD 059A 0062;0061 302A 0316 1DFD 059A 0062;0061 302A 0316 1DFD 059A 0062;0061 302A 0316 1DFD 059A 0062;
+0061 1DFD 059A 0316 302A 0062;0061 302A 1DFD 0316 059A 0062;0061 302A 1DFD 0316 059A 0062;0061 302A 1DFD 0316 059A 0062;0061 302A 1DFD 0316 059A 0062;
 0061 0315 0300 05AE 1DFE 0062;00E0 05AE 1DFE 0315 0062;0061 05AE 0300 1DFE 0315 0062;00E0 05AE 1DFE 0315 0062;0061 05AE 0300 1DFE 0315 0062;
 0061 1DFE 0315 0300 05AE 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062;
 0061 059A 0316 302A 1DFF 0062;0061 302A 0316 1DFF 059A 0062;0061 302A 0316 1DFF 059A 0062;0061 302A 0316 1DFF 059A 0062;0061 302A 0316 1DFF 059A 0062;
@@ -17452,6 +17738,14 @@ FFEE;FFEE;FFEE;25CB;25CB;
 0061 20EF 059A 0316 302A 0062;0061 302A 20EF 0316 059A 0062;0061 302A 20EF 0316 059A 0062;0061 302A 20EF 0316 059A 0062;0061 302A 20EF 0316 059A 0062;
 0061 0315 0300 05AE 20F0 0062;00E0 05AE 20F0 0315 0062;0061 05AE 0300 20F0 0315 0062;00E0 05AE 20F0 0315 0062;0061 05AE 0300 20F0 0315 0062;
 0061 20F0 0315 0300 05AE 0062;0061 05AE 20F0 0300 0315 0062;0061 05AE 20F0 0300 0315 0062;0061 05AE 20F0 0300 0315 0062;0061 05AE 20F0 0300 0315 0062;
+0061 0315 0300 05AE 2CEF 0062;00E0 05AE 2CEF 0315 0062;0061 05AE 0300 2CEF 0315 0062;00E0 05AE 2CEF 0315 0062;0061 05AE 0300 2CEF 0315 0062;
+0061 2CEF 0315 0300 05AE 0062;0061 05AE 2CEF 0300 0315 0062;0061 05AE 2CEF 0300 0315 0062;0061 05AE 2CEF 0300 0315 0062;0061 05AE 2CEF 0300 0315 0062;
+0061 0315 0300 05AE 2CF0 0062;00E0 05AE 2CF0 0315 0062;0061 05AE 0300 2CF0 0315 0062;00E0 05AE 2CF0 0315 0062;0061 05AE 0300 2CF0 0315 0062;
+0061 2CF0 0315 0300 05AE 0062;0061 05AE 2CF0 0300 0315 0062;0061 05AE 2CF0 0300 0315 0062;0061 05AE 2CF0 0300 0315 0062;0061 05AE 2CF0 0300 0315 0062;
+0061 0315 0300 05AE 2CF1 0062;00E0 05AE 2CF1 0315 0062;0061 05AE 0300 2CF1 0315 0062;00E0 05AE 2CF1 0315 0062;0061 05AE 0300 2CF1 0315 0062;
+0061 2CF1 0315 0300 05AE 0062;0061 05AE 2CF1 0300 0315 0062;0061 05AE 2CF1 0300 0315 0062;0061 05AE 2CF1 0300 0315 0062;0061 05AE 2CF1 0300 0315 0062;
+0061 05B0 094D 3099 2D7F 0062;0061 3099 094D 2D7F 05B0 0062;0061 3099 094D 2D7F 05B0 0062;0061 3099 094D 2D7F 05B0 0062;0061 3099 094D 2D7F 05B0 0062;
+0061 2D7F 05B0 094D 3099 0062;0061 3099 2D7F 094D 05B0 0062;0061 3099 2D7F 094D 05B0 0062;0061 3099 2D7F 094D 05B0 0062;0061 3099 2D7F 094D 05B0 0062;
 0061 0315 0300 05AE 2DE0 0062;00E0 05AE 2DE0 0315 0062;0061 05AE 0300 2DE0 0315 0062;00E0 05AE 2DE0 0315 0062;0061 05AE 0300 2DE0 0315 0062;
 0061 2DE0 0315 0300 05AE 0062;0061 05AE 2DE0 0300 0315 0062;0061 05AE 2DE0 0300 0315 0062;0061 05AE 2DE0 0300 0315 0062;0061 05AE 2DE0 0300 0315 0062;
 0061 0315 0300 05AE 2DE1 0062;00E0 05AE 2DE1 0315 0062;0061 05AE 0300 2DE1 0315 0062;00E0 05AE 2DE1 0315 0062;0061 05AE 0300 2DE1 0315 0062;
@@ -17538,10 +17832,50 @@ FFEE;FFEE;FFEE;25CB;25CB;
 0061 A67C 0315 0300 05AE 0062;0061 05AE A67C 0300 0315 0062;0061 05AE A67C 0300 0315 0062;0061 05AE A67C 0300 0315 0062;0061 05AE A67C 0300 0315 0062;
 0061 0315 0300 05AE A67D 0062;00E0 05AE A67D 0315 0062;0061 05AE 0300 A67D 0315 0062;00E0 05AE A67D 0315 0062;0061 05AE 0300 A67D 0315 0062;
 0061 A67D 0315 0300 05AE 0062;0061 05AE A67D 0300 0315 0062;0061 05AE A67D 0300 0315 0062;0061 05AE A67D 0300 0315 0062;0061 05AE A67D 0300 0315 0062;
+0061 0315 0300 05AE A6F0 0062;00E0 05AE A6F0 0315 0062;0061 05AE 0300 A6F0 0315 0062;00E0 05AE A6F0 0315 0062;0061 05AE 0300 A6F0 0315 0062;
+0061 A6F0 0315 0300 05AE 0062;0061 05AE A6F0 0300 0315 0062;0061 05AE A6F0 0300 0315 0062;0061 05AE A6F0 0300 0315 0062;0061 05AE A6F0 0300 0315 0062;
+0061 0315 0300 05AE A6F1 0062;00E0 05AE A6F1 0315 0062;0061 05AE 0300 A6F1 0315 0062;00E0 05AE A6F1 0315 0062;0061 05AE 0300 A6F1 0315 0062;
+0061 A6F1 0315 0300 05AE 0062;0061 05AE A6F1 0300 0315 0062;0061 05AE A6F1 0300 0315 0062;0061 05AE A6F1 0300 0315 0062;0061 05AE A6F1 0300 0315 0062;
 0061 05B0 094D 3099 A806 0062;0061 3099 094D A806 05B0 0062;0061 3099 094D A806 05B0 0062;0061 3099 094D A806 05B0 0062;0061 3099 094D A806 05B0 0062;
 0061 A806 05B0 094D 3099 0062;0061 3099 A806 094D 05B0 0062;0061 3099 A806 094D 05B0 0062;0061 3099 A806 094D 05B0 0062;0061 3099 A806 094D 05B0 0062;
 0061 05B0 094D 3099 A8C4 0062;0061 3099 094D A8C4 05B0 0062;0061 3099 094D A8C4 05B0 0062;0061 3099 094D A8C4 05B0 0062;0061 3099 094D A8C4 05B0 0062;
 0061 A8C4 05B0 094D 3099 0062;0061 3099 A8C4 094D 05B0 0062;0061 3099 A8C4 094D 05B0 0062;0061 3099 A8C4 094D 05B0 0062;0061 3099 A8C4 094D 05B0 0062;
+0061 0315 0300 05AE A8E0 0062;00E0 05AE A8E0 0315 0062;0061 05AE 0300 A8E0 0315 0062;00E0 05AE A8E0 0315 0062;0061 05AE 0300 A8E0 0315 0062;
+0061 A8E0 0315 0300 05AE 0062;0061 05AE A8E0 0300 0315 0062;0061 05AE A8E0 0300 0315 0062;0061 05AE A8E0 0300 0315 0062;0061 05AE A8E0 0300 0315 0062;
+0061 0315 0300 05AE A8E1 0062;00E0 05AE A8E1 0315 0062;0061 05AE 0300 A8E1 0315 0062;00E0 05AE A8E1 0315 0062;0061 05AE 0300 A8E1 0315 0062;
+0061 A8E1 0315 0300 05AE 0062;0061 05AE A8E1 0300 0315 0062;0061 05AE A8E1 0300 0315 0062;0061 05AE A8E1 0300 0315 0062;0061 05AE A8E1 0300 0315 0062;
+0061 0315 0300 05AE A8E2 0062;00E0 05AE A8E2 0315 0062;0061 05AE 0300 A8E2 0315 0062;00E0 05AE A8E2 0315 0062;0061 05AE 0300 A8E2 0315 0062;
+0061 A8E2 0315 0300 05AE 0062;0061 05AE A8E2 0300 0315 0062;0061 05AE A8E2 0300 0315 0062;0061 05AE A8E2 0300 0315 0062;0061 05AE A8E2 0300 0315 0062;
+0061 0315 0300 05AE A8E3 0062;00E0 05AE A8E3 0315 0062;0061 05AE 0300 A8E3 0315 0062;00E0 05AE A8E3 0315 0062;0061 05AE 0300 A8E3 0315 0062;
+0061 A8E3 0315 0300 05AE 0062;0061 05AE A8E3 0300 0315 0062;0061 05AE A8E3 0300 0315 0062;0061 05AE A8E3 0300 0315 0062;0061 05AE A8E3 0300 0315 0062;
+0061 0315 0300 05AE A8E4 0062;00E0 05AE A8E4 0315 0062;0061 05AE 0300 A8E4 0315 0062;00E0 05AE A8E4 0315 0062;0061 05AE 0300 A8E4 0315 0062;
+0061 A8E4 0315 0300 05AE 0062;0061 05AE A8E4 0300 0315 0062;0061 05AE A8E4 0300 0315 0062;0061 05AE A8E4 0300 0315 0062;0061 05AE A8E4 0300 0315 0062;
+0061 0315 0300 05AE A8E5 0062;00E0 05AE A8E5 0315 0062;0061 05AE 0300 A8E5 0315 0062;00E0 05AE A8E5 0315 0062;0061 05AE 0300 A8E5 0315 0062;
+0061 A8E5 0315 0300 05AE 0062;0061 05AE A8E5 0300 0315 0062;0061 05AE A8E5 0300 0315 0062;0061 05AE A8E5 0300 0315 0062;0061 05AE A8E5 0300 0315 0062;
+0061 0315 0300 05AE A8E6 0062;00E0 05AE A8E6 0315 0062;0061 05AE 0300 A8E6 0315 0062;00E0 05AE A8E6 0315 0062;0061 05AE 0300 A8E6 0315 0062;
+0061 A8E6 0315 0300 05AE 0062;0061 05AE A8E6 0300 0315 0062;0061 05AE A8E6 0300 0315 0062;0061 05AE A8E6 0300 0315 0062;0061 05AE A8E6 0300 0315 0062;
+0061 0315 0300 05AE A8E7 0062;00E0 05AE A8E7 0315 0062;0061 05AE 0300 A8E7 0315 0062;00E0 05AE A8E7 0315 0062;0061 05AE 0300 A8E7 0315 0062;
+0061 A8E7 0315 0300 05AE 0062;0061 05AE A8E7 0300 0315 0062;0061 05AE A8E7 0300 0315 0062;0061 05AE A8E7 0300 0315 0062;0061 05AE A8E7 0300 0315 0062;
+0061 0315 0300 05AE A8E8 0062;00E0 05AE A8E8 0315 0062;0061 05AE 0300 A8E8 0315 0062;00E0 05AE A8E8 0315 0062;0061 05AE 0300 A8E8 0315 0062;
+0061 A8E8 0315 0300 05AE 0062;0061 05AE A8E8 0300 0315 0062;0061 05AE A8E8 0300 0315 0062;0061 05AE A8E8 0300 0315 0062;0061 05AE A8E8 0300 0315 0062;
+0061 0315 0300 05AE A8E9 0062;00E0 05AE A8E9 0315 0062;0061 05AE 0300 A8E9 0315 0062;00E0 05AE A8E9 0315 0062;0061 05AE 0300 A8E9 0315 0062;
+0061 A8E9 0315 0300 05AE 0062;0061 05AE A8E9 0300 0315 0062;0061 05AE A8E9 0300 0315 0062;0061 05AE A8E9 0300 0315 0062;0061 05AE A8E9 0300 0315 0062;
+0061 0315 0300 05AE A8EA 0062;00E0 05AE A8EA 0315 0062;0061 05AE 0300 A8EA 0315 0062;00E0 05AE A8EA 0315 0062;0061 05AE 0300 A8EA 0315 0062;
+0061 A8EA 0315 0300 05AE 0062;0061 05AE A8EA 0300 0315 0062;0061 05AE A8EA 0300 0315 0062;0061 05AE A8EA 0300 0315 0062;0061 05AE A8EA 0300 0315 0062;
+0061 0315 0300 05AE A8EB 0062;00E0 05AE A8EB 0315 0062;0061 05AE 0300 A8EB 0315 0062;00E0 05AE A8EB 0315 0062;0061 05AE 0300 A8EB 0315 0062;
+0061 A8EB 0315 0300 05AE 0062;0061 05AE A8EB 0300 0315 0062;0061 05AE A8EB 0300 0315 0062;0061 05AE A8EB 0300 0315 0062;0061 05AE A8EB 0300 0315 0062;
+0061 0315 0300 05AE A8EC 0062;00E0 05AE A8EC 0315 0062;0061 05AE 0300 A8EC 0315 0062;00E0 05AE A8EC 0315 0062;0061 05AE 0300 A8EC 0315 0062;
+0061 A8EC 0315 0300 05AE 0062;0061 05AE A8EC 0300 0315 0062;0061 05AE A8EC 0300 0315 0062;0061 05AE A8EC 0300 0315 0062;0061 05AE A8EC 0300 0315 0062;
+0061 0315 0300 05AE A8ED 0062;00E0 05AE A8ED 0315 0062;0061 05AE 0300 A8ED 0315 0062;00E0 05AE A8ED 0315 0062;0061 05AE 0300 A8ED 0315 0062;
+0061 A8ED 0315 0300 05AE 0062;0061 05AE A8ED 0300 0315 0062;0061 05AE A8ED 0300 0315 0062;0061 05AE A8ED 0300 0315 0062;0061 05AE A8ED 0300 0315 0062;
+0061 0315 0300 05AE A8EE 0062;00E0 05AE A8EE 0315 0062;0061 05AE 0300 A8EE 0315 0062;00E0 05AE A8EE 0315 0062;0061 05AE 0300 A8EE 0315 0062;
+0061 A8EE 0315 0300 05AE 0062;0061 05AE A8EE 0300 0315 0062;0061 05AE A8EE 0300 0315 0062;0061 05AE A8EE 0300 0315 0062;0061 05AE A8EE 0300 0315 0062;
+0061 0315 0300 05AE A8EF 0062;00E0 05AE A8EF 0315 0062;0061 05AE 0300 A8EF 0315 0062;00E0 05AE A8EF 0315 0062;0061 05AE 0300 A8EF 0315 0062;
+0061 A8EF 0315 0300 05AE 0062;0061 05AE A8EF 0300 0315 0062;0061 05AE A8EF 0300 0315 0062;0061 05AE A8EF 0300 0315 0062;0061 05AE A8EF 0300 0315 0062;
+0061 0315 0300 05AE A8F0 0062;00E0 05AE A8F0 0315 0062;0061 05AE 0300 A8F0 0315 0062;00E0 05AE A8F0 0315 0062;0061 05AE 0300 A8F0 0315 0062;
+0061 A8F0 0315 0300 05AE 0062;0061 05AE A8F0 0300 0315 0062;0061 05AE A8F0 0300 0315 0062;0061 05AE A8F0 0300 0315 0062;0061 05AE A8F0 0300 0315 0062;
+0061 0315 0300 05AE A8F1 0062;00E0 05AE A8F1 0315 0062;0061 05AE 0300 A8F1 0315 0062;00E0 05AE A8F1 0315 0062;0061 05AE 0300 A8F1 0315 0062;
+0061 A8F1 0315 0300 05AE 0062;0061 05AE A8F1 0300 0315 0062;0061 05AE A8F1 0300 0315 0062;0061 05AE A8F1 0300 0315 0062;0061 05AE A8F1 0300 0315 0062;
 0061 059A 0316 302A A92B 0062;0061 302A 0316 A92B 059A 0062;0061 302A 0316 A92B 059A 0062;0061 302A 0316 A92B 059A 0062;0061 302A 0316 A92B 059A 0062;
 0061 A92B 059A 0316 302A 0062;0061 302A A92B 0316 059A 0062;0061 302A A92B 0316 059A 0062;0061 302A A92B 0316 059A 0062;0061 302A A92B 0316 059A 0062;
 0061 059A 0316 302A A92C 0062;0061 302A 0316 A92C 059A 0062;0061 302A 0316 A92C 059A 0062;0061 302A 0316 A92C 059A 0062;0061 302A 0316 A92C 059A 0062;
@@ -17550,6 +17884,30 @@ FFEE;FFEE;FFEE;25CB;25CB;
 0061 A92D 059A 0316 302A 0062;0061 302A A92D 0316 059A 0062;0061 302A A92D 0316 059A 0062;0061 302A A92D 0316 059A 0062;0061 302A A92D 0316 059A 0062;
 0061 05B0 094D 3099 A953 0062;0061 3099 094D A953 05B0 0062;0061 3099 094D A953 05B0 0062;0061 3099 094D A953 05B0 0062;0061 3099 094D A953 05B0 0062;
 0061 A953 05B0 094D 3099 0062;0061 3099 A953 094D 05B0 0062;0061 3099 A953 094D 05B0 0062;0061 3099 A953 094D 05B0 0062;0061 3099 A953 094D 05B0 0062;
+0061 3099 093C 0334 A9B3 0062;0061 0334 093C A9B3 3099 0062;0061 0334 093C A9B3 3099 0062;0061 0334 093C A9B3 3099 0062;0061 0334 093C A9B3 3099 0062;
+0061 A9B3 3099 093C 0334 0062;0061 0334 A9B3 093C 3099 0062;0061 0334 A9B3 093C 3099 0062;0061 0334 A9B3 093C 3099 0062;0061 0334 A9B3 093C 3099 0062;
+0061 05B0 094D 3099 A9C0 0062;0061 3099 094D A9C0 05B0 0062;0061 3099 094D A9C0 05B0 0062;0061 3099 094D A9C0 05B0 0062;0061 3099 094D A9C0 05B0 0062;
+0061 A9C0 05B0 094D 3099 0062;0061 3099 A9C0 094D 05B0 0062;0061 3099 A9C0 094D 05B0 0062;0061 3099 A9C0 094D 05B0 0062;0061 3099 A9C0 094D 05B0 0062;
+0061 0315 0300 05AE AAB0 0062;00E0 05AE AAB0 0315 0062;0061 05AE 0300 AAB0 0315 0062;00E0 05AE AAB0 0315 0062;0061 05AE 0300 AAB0 0315 0062;
+0061 AAB0 0315 0300 05AE 0062;0061 05AE AAB0 0300 0315 0062;0061 05AE AAB0 0300 0315 0062;0061 05AE AAB0 0300 0315 0062;0061 05AE AAB0 0300 0315 0062;
+0061 0315 0300 05AE AAB2 0062;00E0 05AE AAB2 0315 0062;0061 05AE 0300 AAB2 0315 0062;00E0 05AE AAB2 0315 0062;0061 05AE 0300 AAB2 0315 0062;
+0061 AAB2 0315 0300 05AE 0062;0061 05AE AAB2 0300 0315 0062;0061 05AE AAB2 0300 0315 0062;0061 05AE AAB2 0300 0315 0062;0061 05AE AAB2 0300 0315 0062;
+0061 0315 0300 05AE AAB3 0062;00E0 05AE AAB3 0315 0062;0061 05AE 0300 AAB3 0315 0062;00E0 05AE AAB3 0315 0062;0061 05AE 0300 AAB3 0315 0062;
+0061 AAB3 0315 0300 05AE 0062;0061 05AE AAB3 0300 0315 0062;0061 05AE AAB3 0300 0315 0062;0061 05AE AAB3 0300 0315 0062;0061 05AE AAB3 0300 0315 0062;
+0061 059A 0316 302A AAB4 0062;0061 302A 0316 AAB4 059A 0062;0061 302A 0316 AAB4 059A 0062;0061 302A 0316 AAB4 059A 0062;0061 302A 0316 AAB4 059A 0062;
+0061 AAB4 059A 0316 302A 0062;0061 302A AAB4 0316 059A 0062;0061 302A AAB4 0316 059A 0062;0061 302A AAB4 0316 059A 0062;0061 302A AAB4 0316 059A 0062;
+0061 0315 0300 05AE AAB7 0062;00E0 05AE AAB7 0315 0062;0061 05AE 0300 AAB7 0315 0062;00E0 05AE AAB7 0315 0062;0061 05AE 0300 AAB7 0315 0062;
+0061 AAB7 0315 0300 05AE 0062;0061 05AE AAB7 0300 0315 0062;0061 05AE AAB7 0300 0315 0062;0061 05AE AAB7 0300 0315 0062;0061 05AE AAB7 0300 0315 0062;
+0061 0315 0300 05AE AAB8 0062;00E0 05AE AAB8 0315 0062;0061 05AE 0300 AAB8 0315 0062;00E0 05AE AAB8 0315 0062;0061 05AE 0300 AAB8 0315 0062;
+0061 AAB8 0315 0300 05AE 0062;0061 05AE AAB8 0300 0315 0062;0061 05AE AAB8 0300 0315 0062;0061 05AE AAB8 0300 0315 0062;0061 05AE AAB8 0300 0315 0062;
+0061 0315 0300 05AE AABE 0062;00E0 05AE AABE 0315 0062;0061 05AE 0300 AABE 0315 0062;00E0 05AE AABE 0315 0062;0061 05AE 0300 AABE 0315 0062;
+0061 AABE 0315 0300 05AE 0062;0061 05AE AABE 0300 0315 0062;0061 05AE AABE 0300 0315 0062;0061 05AE AABE 0300 0315 0062;0061 05AE AABE 0300 0315 0062;
+0061 0315 0300 05AE AABF 0062;00E0 05AE AABF 0315 0062;0061 05AE 0300 AABF 0315 0062;00E0 05AE AABF 0315 0062;0061 05AE 0300 AABF 0315 0062;
+0061 AABF 0315 0300 05AE 0062;0061 05AE AABF 0300 0315 0062;0061 05AE AABF 0300 0315 0062;0061 05AE AABF 0300 0315 0062;0061 05AE AABF 0300 0315 0062;
+0061 0315 0300 05AE AAC1 0062;00E0 05AE AAC1 0315 0062;0061 05AE 0300 AAC1 0315 0062;00E0 05AE AAC1 0315 0062;0061 05AE 0300 AAC1 0315 0062;
+0061 AAC1 0315 0300 05AE 0062;0061 05AE AAC1 0300 0315 0062;0061 05AE AAC1 0300 0315 0062;0061 05AE AAC1 0300 0315 0062;0061 05AE AAC1 0300 0315 0062;
+0061 05B0 094D 3099 ABED 0062;0061 3099 094D ABED 05B0 0062;0061 3099 094D ABED 05B0 0062;0061 3099 094D ABED 05B0 0062;0061 3099 094D ABED 05B0 0062;
+0061 ABED 05B0 094D 3099 0062;0061 3099 ABED 094D 05B0 0062;0061 3099 ABED 094D 05B0 0062;0061 3099 ABED 094D 05B0 0062;0061 3099 ABED 094D 05B0 0062;
 0061 064B FB1E 05C2 FB1E 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;
 0061 FB1E 064B FB1E 05C2 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;0061 05C2 FB1E FB1E 064B 0062;
 0061 0315 0300 05AE FE20 0062;00E0 05AE FE20 0315 0062;0061 05AE 0300 FE20 0315 0062;00E0 05AE FE20 0315 0062;0061 05AE 0300 FE20 0315 0062;
@@ -17580,6 +17938,12 @@ FFEE;FFEE;FFEE;25CB;25CB;
 0061 10A3A 059A 0316 302A 0062;0061 302A 10A3A 0316 059A 0062;0061 302A 10A3A 0316 059A 0062;0061 302A 10A3A 0316 059A 0062;0061 302A 10A3A 0316 059A 0062;
 0061 05B0 094D 3099 10A3F 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062;
 0061 10A3F 05B0 094D 3099 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062;0061 3099 10A3F 094D 05B0 0062;
+0061 05B0 094D 3099 11046 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062;0061 3099 094D 11046 05B0 0062;
+0061 11046 05B0 094D 3099 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062;0061 3099 11046 094D 05B0 0062;
+0061 05B0 094D 3099 110B9 0062;0061 3099 094D 110B9 05B0 0062;0061 3099 094D 110B9 05B0 0062;0061 3099 094D 110B9 05B0 0062;0061 3099 094D 110B9 05B0 0062;
+0061 110B9 05B0 094D 3099 0062;0061 3099 110B9 094D 05B0 0062;0061 3099 110B9 094D 05B0 0062;0061 3099 110B9 094D 05B0 0062;0061 3099 110B9 094D 05B0 0062;
+0061 3099 093C 0334 110BA 0062;0061 0334 093C 110BA 3099 0062;0061 0334 093C 110BA 3099 0062;0061 0334 093C 110BA 3099 0062;0061 0334 093C 110BA 3099 0062;
+0061 110BA 3099 093C 0334 0062;0061 0334 110BA 093C 3099 0062;0061 0334 110BA 093C 3099 0062;0061 0334 110BA 093C 3099 0062;0061 0334 110BA 093C 3099 0062;
 0061 302A 031B 1DCE 1D165 0062;0061 1DCE 031B 1D165 302A 0062;0061 1DCE 031B 1D165 302A 0062;0061 1DCE 031B 1D165 302A 0062;0061 1DCE 031B 1D165 302A 0062;
 0061 1D165 302A 031B 1DCE 0062;0061 1DCE 1D165 031B 302A 0062;0061 1DCE 1D165 031B 302A 0062;0061 1DCE 1D165 031B 302A 0062;0061 1DCE 1D165 031B 302A 0062;
 0061 302A 031B 1DCE 1D166 0062;0061 1DCE 031B 1D166 302A 0062;0061 1DCE 031B 1D166 302A 0062;0061 1DCE 031B 1D166 302A 0062;0061 1DCE 031B 1D166 302A 0062;
@@ -17815,5 +18179,3 @@ D5E4 0334 11B5;D5E4 0334 11B5;1112 1166 0334 11B5;D5E4 0334 11B5;1112 1166 0334
 D638 0334 11BC;D638 0334 11BC;1112 1169 0334 11BC;D638 0334 11BC;1112 1169 0334 11BC;
 D6FC 0334 11AE;D6FC 0334 11AE;1112 1170 0334 11AE;D6FC 0334 11AE;1112 1170 0334 11AE;
 D750 0334 11B5;D750 0334 11B5;1112 1173 0334 11B5;D750 0334 11B5;1112 1173 0334 11B5;
-
-
index f97bc44..3787b61 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of canonical decomposition of Unicode characters.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index eeda95b..b9a658f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of compatibility decomposition of Unicode characters.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index bd089e6..e3d779a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of canonical composition of Unicode characters.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 6a1b7c4..ad0622a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of decomposing variant of a normalization form.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 3cef393..621069f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of decomposition of Unicode characters.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 6fd86d8..e0e207f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of canonical normalization of Unicode strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index d89ba77..693ffad 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of canonical decomposition of Unicode strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 68474a8..43105d6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of compatibility normalization of Unicode strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index cb8a2df..6c47762 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of compatibility decomposition of Unicode strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index b595500..fac82be 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of canonical normalization of UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 0e084c9..1318b0f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of canonical decomposition of UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 7fcec7c..8da9e9d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of compatibility normalization of UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 4395d01..0e66b02 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of compatibility decomposition of UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 7adcda6..693dba0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of normalization insensitive comparison of UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 85cbf00..2766584 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of normalization insensitive comparison of UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index ead1561..a37e24b 100644 (file)
@@ -1,6 +1,6 @@
 /* Test of locale dependent, normalization insensitive comparison of
    UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index dee5806..356ec42 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of Unicode compliance of canonical normalization of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index b154c8b..ea19436 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of canonical normalization of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index ccc1291..bc41e81 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of Unicode compliance of canonical decomposition of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 58c97b2..2309719 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of canonical decomposition of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 7827d33..dd67402 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of Unicode compliance of compatibility normalization of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index eb4d3ce..a60cd86 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of compatibility normalization of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 14232c5..0cd287c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of Unicode compliance of compatibility decomposition of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index b98f651..1c378c1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of compatibility decomposition of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 6c63786..730f71d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of Unicode compliance of normalization of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 2482a34..6cc7633 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of Unicode compliance of normalization of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index e48ceeb..987a66b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of normalization insensitive comparison of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 56d4cdb..52e14e2 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of normalization insensitive comparison of UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 08777ee..c7b66a5 100644 (file)
@@ -1,6 +1,6 @@
 /* Test of locale dependent, normalization insensitive comparison of
    UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 1a7745c..c83c8f7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of canonical normalization of UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 082ded4..1b1a552 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of canonical decomposition of UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 1ca1413..5c1a79f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of compatibility normalization of UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 2e29539..f1df04d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of compatibility decomposition of UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 4f09118..dbf0435 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of normalization insensitive comparison of UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 790e3ae..02a6593 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of normalization insensitive comparison of UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index d205f28..08f219d 100644 (file)
@@ -1,6 +1,6 @@
 /* Test of locale dependent, normalization insensitive comparison of
    UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 65bf8a9..0de0d97 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of canonical normalization of streams.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 3d4897c..771f163 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_asnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 9d557ba..6bea304 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_[v]asnprintf() function.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
index 1965ce9..f434899 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_v[a]s[n]printf() function.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
index 268b32c..cdd761a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_vasnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index c43967c..9bc4303 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_vasnprintf() function in an ISO-8859-1 locale.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 6e741c9..035af11 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_vasnprintf() function in an UTF-8 locale.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 5b60248..69b1bb3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_vasprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 5c2d86c..6aa0462 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_vsnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index ad42e07..3e6406d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_vsprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index c17fcc6..c9e9efe 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_asnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 9f73116..3e9597a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_[v]asnprintf() function.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
index 00b9a60..cf9f233 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_v[a]s[n]printf() function.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
index d2aa879..87a4631 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_vasnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index c418e0a..0edc23b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_vasnprintf() function in an ISO-8859-1 locale.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index f4b92d7..94f30c8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_vasnprintf() function in an UTF-8 locale.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 41c3057..35876f3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_vasprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 53317cf..ef75bd6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_vsnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index c9512e8..19d2fdd 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_vsprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 983cddf..95bd5cc 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_asnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index d4df3a3..ebc420d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_[v]asnprintf() function.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
index 23dc5a6..d1298e0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_v[a]s[n]printf() function.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
index 03c73a0..4eea461 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_vasnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index d801ee6..71ec302 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_vasnprintf() function in an ISO-8859-1 locale.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 752c4c5..22ea5e6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_vasnprintf() function in an UTF-8 locale.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 4076db5..3287805 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_vasprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 1ae5876..25f14f4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_vsnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 3e13fec..7bb840f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_vsprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index b9bd2ef..708ab71 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ulc_asnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index eb68248..f5f774c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ulc_[v]asnprintf() functions.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
@@ -47,7 +47,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
       ASSERT (length == 5);
       if (size < 6)
         ASSERT (result != buf);
-      ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
+      ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
       if (result != buf)
         free (result);
     }
index 12149a4..2717bd0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ulc_v[a]s[n]printf() functions.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 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
index fa4a2c9..aaec620 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ulc_vasnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index d61c1cf..d85d273 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ulc_vasnprintf() function in an ISO-8859-1 locale.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 5a3cd0d..f50a9db 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ulc_vasnprintf() function in an UTF-8 locale.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 0db01c9..d748f86 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ulc_vasprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 7b6de1c..781adcc 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ulc_vsnprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 51ea024..738596e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ulc_vsprintf() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 5a021c2..7a26820 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_chr() functions.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
 int
 main (void)
 {
-  size_t n = 0x100000;
-  UNIT *input = (UNIT *) malloc (n * sizeof (UNIT));
+  size_t size = 0x100000;
+  size_t i;
+  size_t length;
+  UNIT *input;
+  uint32_t *input32 = (uint32_t *) malloc (size * sizeof (uint32_t));
+  ASSERT (input32);
+
+  input32[0] = 'a';
+  input32[1] = 'b';
+  u32_set (input32 + 2, 'c', 1024);
+  for (i = 1026; i < size - 2; i += 63)
+    {
+      size_t last = i + 63 < size - 2 ? i + 63 : size - 2;
+      ucs4_t uc = 'd' | (i - 1026);
+      if (uc >= 0xd800 && uc <= 0xdfff)
+        uc |= 0x100000;
+      u32_set (input32 + i, uc, last - i);
+    }
+
+  input32[size - 2] = 'e';
+  input32[size - 1] = 'a';
+
+  input = U32_TO_U (input32, size, NULL, &length);
   ASSERT (input);
 
-  input[0] = 'a';
-  input[1] = 'b';
-  U_SET (input + 2, 'c', 1024);
-  U_SET (input + 1026, 'd', n - 1028);
-  input[n - 2] = 'e';
-  input[n - 1] = 'a';
-
   /* Basic behavior tests.  */
-  ASSERT (U_CHR (input, n, 'a') == input);
+  ASSERT (U_CHR (input, length, 'a') == input);
 
   ASSERT (U_CHR (input, 0, 'a') == NULL);
   ASSERT (U_CHR (zerosize_ptr (), 0, 'a') == NULL);
 
-  ASSERT (U_CHR (input, n, 'b') == input + 1);
-  ASSERT (U_CHR (input, n, 'c') == input + 2);
-  ASSERT (U_CHR (input, n, 'd') == input + 1026);
+  ASSERT (U_CHR (input, length, 'b') == input + 1);
+  ASSERT (U_CHR (input, length, 'c') == input + 2);
+  ASSERT (U_CHR (input, length, 'd') == input + 1026);
+
+  {
+    UNIT *exp = input + 1026;
+    UNIT *prev = input + 1;
+    for (i = 1026; i < size - 2; i += 63)
+      {
+        UNIT c[6];
+        size_t n;
+        ucs4_t uc = 'd' | (i - 1026);
+        if (uc >= 0xd800 && uc <= 0xdfff)
+          uc |= 0x100000;
+        n = U_UCTOMB (c, uc, 6);
+        ASSERT (exp < input + length - 1);
+        ASSERT (U_CHR (prev, (length - 1) - (prev - input), uc) == exp);
+        ASSERT (memcmp (exp, c, n * sizeof (UNIT)) == 0);
+        prev = exp;
+        exp += n * 63;
+      }
+  }
 
-  ASSERT (U_CHR (input + 1, n - 1, 'a') == input + n - 1);
-  ASSERT (U_CHR (input + 1, n - 1, 'e') == input + n - 2);
+  ASSERT (U_CHR (input + 1, length - 1, 'a') == input + length - 1);
+  ASSERT (U_CHR (input + 1, length - 1, 'e') == input + length - 2);
 
-  ASSERT (U_CHR (input, n, 'f') == NULL);
-  ASSERT (U_CHR (input, n, '\0') == NULL);
+  ASSERT (U_CHR (input, length, 'f') == NULL);
+  ASSERT (U_CHR (input, length, '\0') == NULL);
 
   /* Check that a very long haystack is handled quickly if the byte is
      found near the beginning.  */
@@ -52,7 +85,7 @@ main (void)
     size_t repeat = 10000;
     for (; repeat > 0; repeat--)
       {
-        ASSERT (U_CHR (input, n, 'c') == input + 2);
+        ASSERT (U_CHR (input, length, 'c') == input + 2);
       }
   }
 
@@ -74,6 +107,7 @@ main (void)
      byte being searched.  */
   {
     char *page_boundary = (char *) zerosize_ptr ();
+    size_t n;
 
     if (page_boundary != NULL)
       {
index e536f48..cb06729 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_cmp() functions.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
index 261fe36..93e3d6e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_cmp2() functions.
-   Copyright (C) 2008-2010 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 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
index 795e0b7..d8d43e7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_cpy_alloc() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index b62fd14..df52b2d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_cpy() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 2462367..265637d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_move() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 56924dc..32847e8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_set() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 76065dc..e10e345 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_stpcpy() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index bb81ff0..2ac0c4d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_stpncpy() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 6c1f90d..3bde005 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_strcat() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
diff --git a/tests/unistr/test-strchr.h b/tests/unistr/test-strchr.h
new file mode 100644 (file)
index 0000000..8a99afc
--- /dev/null
@@ -0,0 +1,161 @@
+/* Test of uN_strchr() functions.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini <bonzini@gnu.org>, 2010.
+   Based on test-chr.h, by Eric Blake and Bruno Haible.  */
+
+static void
+test_strchr (void)
+{
+  size_t size = 0x100000;
+  size_t length;
+  size_t i;
+  UNIT *input;
+  uint32_t *input32 = (uint32_t *) malloc ((size + 1) * sizeof (uint32_t));
+  ASSERT (input32);
+
+  input32[0] = 'a';
+  input32[1] = 'b';
+  u32_set (input32 + 2, 'c', 1024);
+  for (i = 1026; i < size - 2; i += 63)
+    {
+      size_t last = i + 63 < size - 2 ? i + 63 : size - 2;
+      ucs4_t uc = 'd' | (i - 1026);
+      if (uc >= 0xd800 && uc <= 0xdfff)
+        uc |= 0x100000;
+      u32_set (input32 + i, uc, last - i);
+    }
+  input32[size - 2] = 'e';
+  input32[size - 1] = 'a';
+  input32[size] = 0;
+
+  input = U32_TO_U (input32, size + 1, NULL, &length);
+  ASSERT (input);
+
+  /* Basic behavior tests.  */
+  ASSERT (U_STRCHR (input, 'a') == input);
+  ASSERT (U_STRCHR (input, 'b') == input + 1);
+  ASSERT (U_STRCHR (input, 'c') == input + 2);
+
+  {
+    UNIT *exp = input + 1026;
+    UNIT *prev = input + 2;
+
+    for (i = 1026; i < size - 2; i += 63)
+      {
+        UNIT c[6];
+        size_t n;
+        ucs4_t uc = 'd' | (i - 1026);
+        if (uc >= 0xd800 && uc <= 0xdfff)
+          uc |= 0x100000;
+        n = U_UCTOMB (c, uc, 6);
+        ASSERT (exp < input + length - 2);
+        ASSERT (U_STRCHR (prev, uc) == exp);
+        ASSERT (memcmp (exp, c, n * sizeof (UNIT)) == 0);
+        prev = exp;
+        exp += n * 63;
+      }
+  }
+
+  ASSERT (U_STRCHR (input + 1, 'a') == input + length - 2);
+  ASSERT (U_STRCHR (input + 1, 'e') == input + length - 3);
+
+  ASSERT (U_STRCHR (input, 'f') == NULL);
+  ASSERT (U_STRCHR (input, '\0') == input + length - 1);
+
+  /* Check that a very long haystack is handled quickly if the byte is
+     found near the beginning.  */
+  {
+    size_t repeat = 10000;
+    for (; repeat > 0; repeat--)
+      {
+        ASSERT (U_STRCHR (input, 'c') == input + 2);
+      }
+  }
+
+  /* Alignment tests.  */
+  {
+    int i, j;
+    for (i = 0; i < 32; i++)
+      {
+        for (j = 0; j < 127; j++)
+          input[i + j] = j + 1;
+        input[i + 128] = 0;
+        for (j = 0; j < 127; j++)
+          {
+            ASSERT (U_STRCHR (input + i, j + 1) == input + i + j);
+          }
+      }
+  }
+
+  /* Check that uN_strchr() does not read past the end of the string.  */
+  {
+    char *page_boundary = (char *) zerosize_ptr ();
+    size_t n;
+
+    if (page_boundary != NULL)
+      {
+        for (n = 2; n <= 500 / sizeof (UNIT); n++)
+          {
+            UNIT *mem = (UNIT *) (page_boundary - n * sizeof (UNIT));
+            U_SET (mem, 'X', n - 2);
+            mem[n - 2] = 0;
+            ASSERT (U_STRCHR (mem, 'U') == NULL);
+            mem[n - 2] = 'X';
+            mem[n - 1] = 0;
+            ASSERT (U_STRCHR (mem, 'U') == NULL);
+          }
+      }
+  }
+
+#if 0
+  /* This check is disabled, because uN_strchr() is allowed to read past the
+     first occurrence of the byte being searched.  In fact, u8_strchr() does
+     so, on i586 glibc systems: u8_strchr calls strchr, which in
+     glibc/sysdeps/i386/i586/strchr.S loads the second word before the
+     handling of the first word has been completed.  */
+  /* Check that uN_strchr() does not read past the first occurrence of the
+     byte being searched.  */
+  {
+    char *page_boundary = (char *) zerosize_ptr ();
+    size_t n;
+
+    if (page_boundary != NULL)
+      {
+        for (n = 2; n <= 500 / sizeof (UNIT); n++)
+          {
+            UNIT *mem = (UNIT *) (page_boundary - n * sizeof (UNIT));
+            U_SET (mem, 'X', n - 1);
+            mem[n - 1] = 0;
+            ASSERT (U_STRCHR (mem, 'U') == NULL);
+
+            {
+              size_t i;
+
+              for (i = 0; i < n; i++)
+                {
+                  mem[i] = 'U';
+                  ASSERT (U_STRCHR (mem, 'U') == mem + i);
+                  mem[i] = 'X';
+                }
+            }
+          }
+      }
+  }
+#endif
+
+  free (input);
+}
index 485b6f9..67223f5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_strcmp() and uN_strcoll() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index f8fe5ef..a497db3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_strcpy() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 1684b39..5487363 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_strdup() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 0445b6d..30935b3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_strncat() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 628db94..6036164 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_strncmp() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 6fa0d12..7777865 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_strncpy() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 1199126..ee9e12f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uN_strnlen() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
diff --git a/tests/unistr/test-u-strstr.h b/tests/unistr/test-u-strstr.h
new file mode 100644 (file)
index 0000000..5f2b5fa
--- /dev/null
@@ -0,0 +1,210 @@
+/* Test of uN_strstr() functions.
+   Copyright (C) 2004, 2007-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+static void
+test_u_strstr (void)
+{
+  {
+    const UNIT input[] = { 'f', 'o', 'o', 0 };
+    const UNIT needle[] = { 0 };
+    const UNIT *result = U_STRSTR (input, needle);
+    ASSERT (result == input);
+  }
+
+  {
+    const UNIT input[] = { 'f', 'o', 'o', 0 };
+    const UNIT needle[] = { 'o', 0 };
+    const UNIT *result = U_STRSTR (input, needle);
+    ASSERT (result == input + 1);
+  }
+
+  {
+    const UNIT input[] =
+      { 'A', 'B', 'C', ' ', 'A', 'B', 'C', 'D', 'A', 'B', ' ', 'A', 'B', 'C',
+        'D', 'A', 'B', 'C', 'D', 'A', 'B', 'D', 'E', 0
+      };
+    const UNIT needle[] = { 'A', 'B', 'C', 'D', 'A', 'B', 'D', 0 };
+    const UNIT *result = U_STRSTR (input, needle);
+    ASSERT (result == input + 15);
+  }
+
+  {
+    const UNIT input[] =
+      { 'A', 'B', 'C', ' ', 'A', 'B', 'C', 'D', 'A', 'B', ' ', 'A', 'B', 'C',
+        'D', 'A', 'B', 'C', 'D', 'A', 'B', 'D', 'E', 0
+      };
+    const UNIT needle[] = { 'A', 'B', 'C', 'D', 'A', 'B', 'E', 0 };
+    const UNIT *result = U_STRSTR (input, needle);
+    ASSERT (result == NULL);
+  }
+
+  {
+    const UNIT input[] =
+      { 'A', 'B', 'C', ' ', 'A', 'B', 'C', 'D', 'A', 'B', ' ', 'A', 'B', 'C',
+        'D', 'A', 'B', 'C', 'D', 'A', 'B', 'D', 'E', 0
+      };
+    const UNIT needle[] = { 'A', 'B', 'C', 'D', 'A', 'B', 'C', 'D', 0 };
+    const UNIT *result = U_STRSTR (input, needle);
+    ASSERT (result == input + 11);
+  }
+
+  /* Check that a long periodic needle does not cause false positives.  */
+  {
+    const UNIT input[] =
+      { 'F', '_', 'B', 'D', '_', 'C', 'E', '_', 'B', 'D', '_', 'E', 'F',
+        '_', 'B', 'F', '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F',
+        '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D',
+        '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D', '_', 'C', '3',
+        '_', '8', '8', '_', '2', '0', '_', 'E', 'F', '_', 'B', 'F',
+        '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D',
+        '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D', '_', 'C', '3',
+        '_', 'A', '7', '_', '2', '0', '_', 'E', 'F', '_', 'B', 'F',
+        '_', 'B', 'D', 0
+      };
+    const UNIT needle[] =
+      { '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D', '_', 'E', 'F',
+        '_', 'B', 'F', '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F',
+        '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D',
+        '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D', 0
+      };
+    const UNIT *result = U_STRSTR (input, needle);
+    ASSERT (result == NULL);
+  }
+  {
+    const UNIT input[] =
+      { 'F', '_', 'B', 'D', '_', 'C', 'E', '_', 'B', 'D', '_', 'E', 'F',
+        '_', 'B', 'F', '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F',
+        '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D',
+        '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D', '_', 'C', '3',
+        '_', '8', '8', '_', '2', '0', '_', 'E', 'F', '_', 'B', 'F',
+        '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D',
+        '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D', '_', 'C', '3',
+        '_', 'A', '7', '_', '2', '0', '_', 'E', 'F', '_', 'B', 'F',
+        '_', 'B', 'D', '_', 'D', 'A', '_', 'B', '5', '_', 'C', '2',
+        '_', 'A', '6', '_', '2', '0', '_', 'E', 'F', '_', 'B', 'F',
+        '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D',
+        '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D', '_', 'E', 'F',
+        '_', 'B', 'F', '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F',
+        '_', 'B', 'D', 0
+      };
+    const UNIT needle[] =
+      { '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D', '_', 'E', 'F',
+        '_', 'B', 'F', '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F',
+        '_', 'B', 'D', '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D',
+        '_', 'E', 'F', '_', 'B', 'F', '_', 'B', 'D', 0
+      };
+    const UNIT *result = U_STRSTR (input, needle);
+    ASSERT (result == input + 115);
+  }
+
+  /* Check that a very long haystack is handled quickly if the needle is
+     short and occurs near the beginning.  */
+  {
+    size_t repeat = 10000;
+    size_t m = 1000000;
+    const UNIT needle[] =
+      { 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 0
+      };
+    UNIT *haystack = (UNIT *) malloc ((m + 1) * sizeof (UNIT));
+    if (haystack != NULL)
+      {
+        size_t i;
+
+        haystack[0] = 'B';
+        for (i = 1; i < m; i++)
+          haystack[i] = 'A';
+        haystack[m] = '\0';
+
+        for (; repeat > 0; repeat--)
+          {
+            ASSERT (U_STRSTR (haystack, needle) == haystack + 1);
+          }
+
+        free (haystack);
+      }
+  }
+
+  /* Check that a very long needle is discarded quickly if the haystack is
+     short.  */
+  {
+    size_t repeat = 10000;
+    size_t m = 1000000;
+    const UNIT haystack[] =
+      { 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
+        'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'B',
+        'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B',
+        'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B',
+        'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B',
+        'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B',
+        'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 'A', 'B', 0
+      };
+    UNIT *needle = (UNIT *) malloc ((m + 1) * sizeof (UNIT));
+    if (needle != NULL)
+      {
+        size_t i;
+
+        for (i = 0; i < m; i++)
+          needle[i] = 'A';
+        needle[m] = '\0';
+
+        for (; repeat > 0; repeat--)
+          {
+            ASSERT (U_STRSTR (haystack, needle) == NULL);
+          }
+
+        free (needle);
+      }
+  }
+
+  /* Check that the asymptotic worst-case complexity is not quadratic.  */
+  {
+    size_t m = 1000000;
+    UNIT *haystack = (UNIT *) malloc ((2 * m + 2) * sizeof (UNIT));
+    UNIT *needle = (UNIT *) malloc ((m + 2) * sizeof (UNIT));
+    if (haystack != NULL && needle != NULL)
+      {
+        size_t i;
+        const UNIT *result;
+
+        for (i = 0; i < 2 * m; i++)
+          haystack[i] = 'A';
+        haystack[2 * m] = 'B';
+        haystack[2 * m + 1] = 0;
+
+        for (i = 0; i < m; i++)
+          needle[i] = 'A';
+        needle[m] = 'B';
+        needle[m + 1] = 0;
+
+        result = U_STRSTR (haystack, needle);
+        ASSERT (result == haystack + m);
+      }
+    free (needle);
+    free (haystack);
+  }
+}
index b7a9c10..f97fd1e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_check() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index d71755c..7e4b56b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_chr() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
 #include "unistr.h"
 
 #include <stdlib.h>
+#include <string.h>
 
 #include "zerosize-ptr.h"
 #include "macros.h"
 
 #define UNIT uint16_t
+#define U_UCTOMB u16_uctomb
+#define U32_TO_U u32_to_u16
 #define U_CHR u16_chr
 #define U_SET u16_set
 #include "test-chr.h"
index 1ab9019..4ddf9f7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_cmp() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 3993dcd..c0a6863 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_cmp2() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index d1aa211..828df38 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_cpy_alloc() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 168a459..4d276be 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_cpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 13186f3..9aeffe9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_mblen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index a2d8b10..ef10549 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_mbsnlen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index a1d1214..c3cb963 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_mbtouc_unsafe() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 4545add..2c21f06 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_mbtouc() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index ef0fb68..29ba51c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_mbtouc() and u16_mbtouc_unsafe() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index fb1264d..d0e30ca 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_mbtoucr() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index ff1e6e3..43487ef 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_move() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index d9ac6e9..07d3cba 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_next() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 90e8341..9b971e9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_prev() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index f3e6305..14111c1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_set() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 6bf3ecb..caa8dfc 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_stpcpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index e53ce6b..2648560 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_stpncpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 9d6032e..8bfd680 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strcat() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
diff --git a/tests/unistr/test-u16-strchr.c b/tests/unistr/test-u16-strchr.c
new file mode 100644 (file)
index 0000000..dc27ddc
--- /dev/null
@@ -0,0 +1,42 @@
+/* Test of u16_strchr() function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini <bonzini@gnu.org>, 2010.  */
+
+#include <config.h>
+
+#include "unistr.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "zerosize-ptr.h"
+#include "macros.h"
+
+#define UNIT uint16_t
+#define U_UCTOMB u16_uctomb
+#define U32_TO_U u32_to_u16
+#define U_STRCHR u16_strchr
+#define U_SET u16_set
+#include "test-strchr.h"
+
+int
+main (void)
+{
+  test_strchr ();
+
+  return 0;
+}
index 5fc4777..ee08c81 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strcmp() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index ad54a43..af71a67 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strcmp() and u16_strcoll() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index e24814a..c177118 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strcoll() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index e017a11..ed6b75f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strcpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index f0266d1..3d8cf06 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strdup() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 7b8690b..b53c556 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strlen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 80371b0..67afea4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strmblen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index ceeaf2c..60035dc 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strmbtouc() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index c875cfc..5f36da9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strncat() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index b04431b..f2fd6a0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strncmp() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 102f653..f1bdeec 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strncpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index beeba64..1f64ed6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strnlen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
diff --git a/tests/unistr/test-u16-strstr.c b/tests/unistr/test-u16-strstr.c
new file mode 100644 (file)
index 0000000..6cb3b35
--- /dev/null
@@ -0,0 +1,47 @@
+/* Test of u16_strstr() function.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Pádraig Brady <P@draigBrady.com>, 2011.  */
+
+#include <config.h>
+
+#include "unistr.h"
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <signal.h> /* For signal.  */
+#include <unistd.h> /* For alarm.  */
+
+#include "macros.h"
+
+#define UNIT uint16_t
+#define U_STRSTR u16_strstr
+#include "test-u-strstr.h"
+
+int
+main (void)
+{
+#if HAVE_DECL_ALARM
+  /* Declare failure if test takes too long, by using default abort
+     caused by SIGALRM.  */
+  signal (SIGALRM, SIG_DFL);
+  alarm (5);
+#endif
+
+  test_u_strstr ();
+
+  return 0;
+}
index 5b382b2..2f462cd 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_to_u32() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 4ef9b9b..ace2605 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_to_u8() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index ba50225..7995f75 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_uctomb() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index fdd64df..143d9f9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_check() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index f23aa08..1439dce 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_chr() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
 #include "unistr.h"
 
 #include <stdlib.h>
+#include <string.h>
 
 #include "zerosize-ptr.h"
 #include "macros.h"
 
 #define UNIT uint32_t
+#define U_UCTOMB(s, uc, n) (*(s) = (uc), 1)
+#define U32_TO_U(s, n, result, length) (*(length) = (n), (s))
 #define U_CHR u32_chr
 #define U_SET u32_set
 #include "test-chr.h"
index ab41b31..6b001a1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_cmp() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 84450b5..6323463 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_cmp2() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index d3675dd..61428ad 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_cpy_alloc() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 49fc995..b9995bb 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_cpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 1ebd93e..2f19a33 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_mblen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index d9e066b..9b4eab4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_mbsnlen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index cb3052c..16b6b6d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_mbtouc_unsafe() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 7c981b5..a906c0d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_mbtouc() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 7d70133..97f9127 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_mbtouc() and u32_mbtouc_unsafe() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 7b1034c..a1e9991 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_mbtoucr() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 44f95c0..af092ef 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_move() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index a5852e2..b42e746 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_next() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 95187af..ab94a0e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_prev() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 120804f..5ac88a3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_set() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 9c99c52..6c0df10 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_stpcpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index e29683b..d71a8a5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_stpncpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 66e7c85..d8369b5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strcat() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
diff --git a/tests/unistr/test-u32-strchr.c b/tests/unistr/test-u32-strchr.c
new file mode 100644 (file)
index 0000000..bfd1bbd
--- /dev/null
@@ -0,0 +1,42 @@
+/* Test of u32_strchr() function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini <bonzini@gnu.org>, 2010.  */
+
+#include <config.h>
+
+#include "unistr.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "zerosize-ptr.h"
+#include "macros.h"
+
+#define UNIT uint32_t
+#define U_UCTOMB(s, uc, n) (*(s) = (uc), 1)
+#define U32_TO_U(s, n, result, length) (*(length) = (n), (s))
+#define U_STRCHR u32_strchr
+#define U_SET u32_set
+#include "test-strchr.h"
+
+int
+main (void)
+{
+  test_strchr ();
+
+  return 0;
+}
index 8364a41..58567e9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strcmp() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 6d24132..c697263 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strcmp() and u32_strcoll() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 36954e7..3f5124d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strcoll() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 2e22aad..23513c0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strcpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index ede8e54..e405dea 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strdup() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index a349be7..98fd70f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strlen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 733f8fc..0861c27 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strmblen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 79c222e..35dd7f1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strmbtouc() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 346bafb..b2a2ee5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strncat() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index d69913d..62ed77e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strncmp() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 9309c0e..cafad1e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strncpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 6929914..a22a9f3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strnlen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
diff --git a/tests/unistr/test-u32-strstr.c b/tests/unistr/test-u32-strstr.c
new file mode 100644 (file)
index 0000000..0c59964
--- /dev/null
@@ -0,0 +1,47 @@
+/* Test of u32_strstr() function.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Pádraig Brady <P@draigBrady.com>, 2011.  */
+
+#include <config.h>
+
+#include "unistr.h"
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <signal.h> /* For signal.  */
+#include <unistd.h> /* For alarm.  */
+
+#include "macros.h"
+
+#define UNIT uint32_t
+#define U_STRSTR u32_strstr
+#include "test-u-strstr.h"
+
+int
+main (void)
+{
+#if HAVE_DECL_ALARM
+  /* Declare failure if test takes too long, by using default abort
+     caused by SIGALRM.  */
+  signal (SIGALRM, SIG_DFL);
+  alarm (5);
+#endif
+
+  test_u_strstr ();
+
+  return 0;
+}
index 6faf537..abfdcc4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_to_u16() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 933fba0..76e8aec 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_to_u8() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 0a25177..cff8cfd 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_uctomb() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index a32d385..60fc684 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_check() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 7c4b999..928f187 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_chr() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
 #include "unistr.h"
 
 #include <stdlib.h>
+#include <string.h>
 
 #include "zerosize-ptr.h"
 #include "macros.h"
 
 #define UNIT uint8_t
+#define U_UCTOMB u8_uctomb
+#define U32_TO_U u32_to_u8
 #define U_CHR u8_chr
 #define U_SET u8_set
 #include "test-chr.h"
index 73778c7..536695b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_cmp() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 8a7848e..1c65483 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_cmp2() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 2d35b8f..582c168 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_cpy_alloc() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 8d1152d..7d8ac84 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_cpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 75e92d6..d50431e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_mblen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 8e68550..977ece7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_mbsnlen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
@@ -57,5 +57,64 @@ main ()
       }
   }
 
+  /* Test behaviour required by ISO 10646-1, sections R.7 and 2.3c, namely,
+     that a "malformed sequence" is interpreted in the same way as
+     "a character that is outside the adopted subset".
+     Reference:
+       Markus Kuhn: UTF-8 decoder capability and stress test
+       <http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt>
+       <http://www.w3.org/2001/06/utf-8-wrong/UTF-8-test.html>
+   */
+  /* 3.1. Test that each unexpected continuation byte is signalled as a
+     malformed sequence of its own.  */
+  {
+    static const uint8_t input[] = { '"', 0x80, 0xBF, 0x80, 0xBF, '"' };
+    ASSERT (u8_mbsnlen (input, 6) == 6);
+  }
+  /* 3.2. Lonely start characters.  */
+  {
+    ucs4_t c;
+    uint8_t input[2];
+
+    for (c = 0xC0; c <= 0xFF; c++)
+      {
+        input[0] = c;
+        input[1] = ' ';
+
+        ASSERT (u8_mbsnlen (input, 2) == 2);
+      }
+  }
+  /* 3.3. Sequences with last continuation byte missing.  */
+  /* 3.3.1. 2-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xC0, '"' };
+    ASSERT (u8_mbsnlen (input, 3) == 3);
+  }
+  /* 3.3.6. 2-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xDF, '"' };
+    ASSERT (u8_mbsnlen (input, 3) == 3);
+  }
+  /* 3.3.2. 3-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xE0, 0x80, '"' };
+    ASSERT (u8_mbsnlen (input, 4) == 3);
+  }
+  /* 3.3.7. 3-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xEF, 0xBF, '"' };
+    ASSERT (u8_mbsnlen (input, 4) == 3);
+  }
+  /* 3.3.3. 4-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xF0, 0x80, 0x80, '"' };
+    ASSERT (u8_mbsnlen (input, 5) == 3);
+  }
+  /* 3.3.8. 4-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xF7, 0xBF, 0xBF, '"' };
+    ASSERT (u8_mbsnlen (input, 5) == 3);
+  }
+
   return 0;
 }
index b093aa8..d2104dd 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_mbtouc_unsafe() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index f6960a6..2ee14ea 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_mbtouc() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
 
 #include "test-u8-mbtouc.h"
 
+static void
+test_safe_function (int (*my_u8_mbtouc) (ucs4_t *, const uint8_t *, size_t))
+{
+  ucs4_t uc;
+  int ret;
+
+  /* Test behaviour required by ISO 10646-1, sections R.7 and 2.3c, namely,
+     that a "malformed sequence" is interpreted in the same way as
+     "a character that is outside the adopted subset".
+     Reference:
+       Markus Kuhn: UTF-8 decoder capability and stress test
+       <http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt>
+       <http://www.w3.org/2001/06/utf-8-wrong/UTF-8-test.html>
+   */
+  /* 3.1. Test that each unexpected continuation byte is signalled as a
+     malformed sequence of its own.  */
+  {
+    static const uint8_t input[] = { '"', 0x80, 0xBF, 0x80, 0xBF, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 6);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 5);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 2, 4);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 3, 3);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 4, 2);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 5, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.2. Lonely start characters.  */
+  {
+    ucs4_t c;
+    uint8_t input[2];
+
+    for (c = 0xC0; c <= 0xFF; c++)
+      {
+        input[0] = c;
+        input[1] = ' ';
+
+        uc = 0xBADFACE;
+        ret = my_u8_mbtouc (&uc, input, 2);
+        ASSERT (ret == 1);
+        ASSERT (uc == 0xFFFD);
+      }
+  }
+  /* 3.3. Sequences with last continuation byte missing.  */
+  /* 3.3.1. 2-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xC0, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 3);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 2);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 2, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.3.6. 2-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xDF, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 3);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 2);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 2, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.3.2. 3-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xE0, 0x80, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 4);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 3);
+    ASSERT (ret == 2);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 3, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.3.7. 3-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xEF, 0xBF, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 4);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 3);
+    ASSERT (ret == 2);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 3, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.3.3. 4-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xF0, 0x80, 0x80, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 5);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 4);
+    ASSERT (ret == 3);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 4, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+  /* 3.3.8. 4-byte sequence with last byte missing.  */
+  {
+    static const uint8_t input[] = { '"', 0xF7, 0xBF, 0xBF, '"' };
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input, 5);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 1, 4);
+    ASSERT (ret == 3);
+    ASSERT (uc == 0xFFFD);
+    uc = 0xBADFACE;
+    ret = my_u8_mbtouc (&uc, input + 4, 1);
+    ASSERT (ret == 1);
+    ASSERT (uc == 0x0022);
+  }
+}
+
 int
 main ()
 {
   test_function (u8_mbtouc);
+  test_safe_function (u8_mbtouc);
 
   return 0;
 }
index bcafb05..38e0ac8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_mbtouc() and u8_mbtouc_unsafe() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
@@ -166,14 +166,14 @@ test_function (int (*my_u8_mbtouc) (ucs4_t *, const uint8_t *, size_t))
     static const uint8_t input[] = { 0xF3, 0xD0, 0xBF };
     uc = 0xBADFACE;
     ret = my_u8_mbtouc (&uc, input, 3);
-    ASSERT (ret == 1 || ret == 3);
+    ASSERT (ret == 1);
     ASSERT (uc == 0xFFFD);
   }
   {
     static const uint8_t input[] = { 0xF3, 0x8F, 0xD0 };
     uc = 0xBADFACE;
     ret = my_u8_mbtouc (&uc, input, 3);
-    ASSERT (ret == 1 || ret == 3);
+    ASSERT (ret == 2);
     ASSERT (uc == 0xFFFD);
   }
 }
index 88e08d3..a551130 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_mbtoucr() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index d18d8dd..ae9ebc5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_move() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index c4e06b5..a7c77e8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_next() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 61f47ef..34f94e1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_prev() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index e778fed..35ca615 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_set() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 94c0471..3418724 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_stpcpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 4809626..5002454 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_stpncpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 7fa9e84..5d5d1ed 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strcat() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
diff --git a/tests/unistr/test-u8-strchr.c b/tests/unistr/test-u8-strchr.c
new file mode 100644 (file)
index 0000000..74aea7d
--- /dev/null
@@ -0,0 +1,149 @@
+/* Test of u8_strchr() function.
+   Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini <bonzini@gnu.org>, 2010.  */
+
+#include <config.h>
+
+#include "unistr.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "zerosize-ptr.h"
+#include "macros.h"
+
+#define UNIT uint8_t
+#define U_UCTOMB u8_uctomb
+#define U32_TO_U u32_to_u8
+#define U_STRCHR u8_strchr
+#define U_SET u8_set
+#include "test-strchr.h"
+
+int
+main (void)
+{
+  test_strchr ();
+
+  /* Check that u8_strchr() does not read past the end of the string.  */
+  {
+    char *page_boundary = (char *) zerosize_ptr ();
+
+    if (page_boundary != NULL)
+      {
+        UNIT *mem;
+
+        mem = (UNIT *) (page_boundary - 1 * sizeof (UNIT));
+        mem[0] = 0;
+        ASSERT (u8_strchr (mem, 0x55) == NULL);
+        ASSERT (u8_strchr (mem, 0x123) == NULL);
+        ASSERT (u8_strchr (mem, 0x3456) == NULL);
+        ASSERT (u8_strchr (mem, 0x23456) == NULL);
+
+        mem = (UNIT *) (page_boundary - 2 * sizeof (UNIT));
+        mem[0] = 0x50;
+        mem[1] = 0;
+        ASSERT (u8_strchr (mem, 0x55) == NULL);
+        ASSERT (u8_strchr (mem, 0x123) == NULL);
+        ASSERT (u8_strchr (mem, 0x3456) == NULL);
+        ASSERT (u8_strchr (mem, 0x23456) == NULL);
+
+        mem = (UNIT *) (page_boundary - 3 * sizeof (UNIT));
+        mem[0] = 0x50;
+        mem[1] = 0x50;
+        mem[2] = 0;
+        ASSERT (u8_strchr (mem, 0x55) == NULL);
+        ASSERT (u8_strchr (mem, 0x123) == NULL);
+        ASSERT (u8_strchr (mem, 0x3456) == NULL);
+        ASSERT (u8_strchr (mem, 0x23456) == NULL);
+
+        mem = (UNIT *) (page_boundary - 3 * sizeof (UNIT));
+        mem[0] = 0xC4; mem[1] = 0xA0; /* U+0120 */
+        mem[2] = 0;
+        ASSERT (u8_strchr (mem, 0x55) == NULL);
+        ASSERT (u8_strchr (mem, 0x123) == NULL);
+        ASSERT (u8_strchr (mem, 0x3456) == NULL);
+        ASSERT (u8_strchr (mem, 0x23456) == NULL);
+
+        mem = (UNIT *) (page_boundary - 3 * sizeof (UNIT));
+        mem[0] = 0xC5; mem[1] = 0xA3; /* U+0163 */
+        mem[2] = 0;
+        ASSERT (u8_strchr (mem, 0x55) == NULL);
+        ASSERT (u8_strchr (mem, 0x123) == NULL);
+        ASSERT (u8_strchr (mem, 0x3456) == NULL);
+        ASSERT (u8_strchr (mem, 0x23456) == NULL);
+
+        mem = (UNIT *) (page_boundary - 4 * sizeof (UNIT));
+        mem[0] = 0x50;
+        mem[1] = 0x50;
+        mem[2] = 0x50;
+        mem[3] = 0;
+        ASSERT (u8_strchr (mem, 0x55) == NULL);
+        ASSERT (u8_strchr (mem, 0x123) == NULL);
+        ASSERT (u8_strchr (mem, 0x3456) == NULL);
+        ASSERT (u8_strchr (mem, 0x23456) == NULL);
+
+        mem = (UNIT *) (page_boundary - 4 * sizeof (UNIT));
+        mem[0] = 0x50;
+        mem[1] = 0xC5; mem[2] = 0xA3; /* U+0163 */
+        mem[3] = 0;
+        ASSERT (u8_strchr (mem, 0x55) == NULL);
+        ASSERT (u8_strchr (mem, 0x123) == NULL);
+        ASSERT (u8_strchr (mem, 0x3456) == NULL);
+        ASSERT (u8_strchr (mem, 0x23456) == NULL);
+        ASSERT (u8_strchr (mem, 0x163) == mem + 1);
+
+        mem = (UNIT *) (page_boundary - 4 * sizeof (UNIT));
+        mem[0] = 0xE3; mem[1] = 0x91; mem[2] = 0x00; /* U+3450 */
+        mem[3] = 0;
+        ASSERT (u8_strchr (mem, 0x55) == NULL);
+        ASSERT (u8_strchr (mem, 0x123) == NULL);
+        ASSERT (u8_strchr (mem, 0x3456) == NULL);
+        ASSERT (u8_strchr (mem, 0x23456) == NULL);
+
+        mem = (UNIT *) (page_boundary - 4 * sizeof (UNIT));
+        mem[0] = 0xE3; mem[1] = 0x92; mem[2] = 0x96; /* U+3496 */
+        mem[3] = 0;
+        ASSERT (u8_strchr (mem, 0x55) == NULL);
+        ASSERT (u8_strchr (mem, 0x123) == NULL);
+        ASSERT (u8_strchr (mem, 0x3456) == NULL);
+        ASSERT (u8_strchr (mem, 0x23456) == NULL);
+
+        mem = (UNIT *) (page_boundary - 5 * sizeof (UNIT));
+        mem[0] = 0x50;
+        mem[1] = 0x50;
+        mem[2] = 0x50;
+        mem[3] = 0x50;
+        mem[4] = 0;
+        ASSERT (u8_strchr (mem, 0x55) == NULL);
+        ASSERT (u8_strchr (mem, 0x123) == NULL);
+        ASSERT (u8_strchr (mem, 0x3456) == NULL);
+        ASSERT (u8_strchr (mem, 0x23456) == NULL);
+
+        mem = (UNIT *) (page_boundary - 5 * sizeof (UNIT));
+        mem[0] = 0x50;
+        mem[1] = 0xE3; mem[2] = 0x92; mem[3] = 0x96; /* U+3496 */
+        mem[4] = 0;
+        ASSERT (u8_strchr (mem, 0x55) == NULL);
+        ASSERT (u8_strchr (mem, 0x123) == NULL);
+        ASSERT (u8_strchr (mem, 0x3456) == NULL);
+        ASSERT (u8_strchr (mem, 0x23456) == NULL);
+        ASSERT (u8_strchr (mem, 0x3496) == mem + 1);
+      }
+  }
+
+  return 0;
+}
index 313cd11..1900b1d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strcmp() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 9c25dac..c562581 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strcmp() and u8_strcoll() functions.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index ae5c9a4..f21ccd3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strcoll() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 810f975..470a01c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strcpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 6da2151..7c03849 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strdup() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 3dfa1b0..74e5fb0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strlen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index bde3000..99ffd86 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strmblen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 5591357..f6fd79c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strmbtouc() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index bb90041..259a908 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strncat() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index f63cdaa..ec288b9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strncmp() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 64cabdc..875c2b5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strncpy() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 98de797..1dadbd8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strnlen() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
diff --git a/tests/unistr/test-u8-strstr.c b/tests/unistr/test-u8-strstr.c
new file mode 100644 (file)
index 0000000..4acfae6
--- /dev/null
@@ -0,0 +1,50 @@
+/* Test of u8_strstr() function.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Pádraig Brady <P@draigBrady.com>, 2011.  */
+
+#include <config.h>
+
+#include "unistr.h"
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <signal.h> /* For signal.  */
+#include <unistd.h> /* For alarm.  */
+
+#include "macros.h"
+
+#define UNIT uint8_t
+#define U_STRSTR u8_strstr
+#include "test-u-strstr.h"
+
+int
+main (void)
+{
+#if HAVE_DECL_ALARM
+  /* Declare failure if test takes too long, by using default abort
+     caused by SIGALRM.  Note since we defer to strstr() in this
+     case, we're assuming that we're running this test on the
+     same system that we did the check to ensure it has linear
+     performance characteristics.  */
+  signal (SIGALRM, SIG_DFL);
+  alarm (5);
+#endif
+
+  test_u_strstr ();
+
+  return 0;
+}
index 02ef44f..108fa33 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_to_u16() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index d148e62..5ec4d96 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_to_u32() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index 8fbdc42..cec9216 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_uctomb() function.
-   Copyright (C) 2010 Free Software Foundation, Inc.
+   Copyright (C) 2010-2014 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
index c9a4f2a..2e24130 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of word breaks in UTF-16 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 4bb3232..64034a9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of word breaks in UTF-32 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index a87ea19..765aee0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of word breaks in UTF-8 strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 732a412..8aa858a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of word breaks in strings.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 1d7750c..a572fe3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_strwidth() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 2d10c6c..a71ffec 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u16_width() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 47ae8e9..14859fe 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_strwidth() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index ffb649f..6f9c2eb 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u32_width() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index bb739a5..8398c43 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_strwidth() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index c100d6f..025702a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_width() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 7cfab61..21e0db6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uc_width() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 3126d4c..9e9cea2 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uc_width() function.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2014 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
index 484288c..9307f33 100755 (executable)
@@ -32,11 +32,13 @@ cat > uc_width.ok <<\EOF
 0604..060F     A
 0610..061A     0
 061B..064A     A
-064B..065E     0
-065F..066F     A
+064B..065F     0
+0660..066F     A
 0670           0
 0671..06D5     A
-06D6..06E4     0
+06D6..06DD     0
+06DE           A
+06DF..06E4     0
 06E5..06E6     A
 06E7..06E8     0
 06E9           A
@@ -51,17 +53,29 @@ cat > uc_width.ok <<\EOF
 07A6..07B0     0
 07B1..07EA     A
 07EB..07F3     0
-07F4..0900     A
-0901..0902     0
-0903..093B     A
+07F4..0815     A
+0816..0819     0
+081A           A
+081B..0823     0
+0824           A
+0825..0827     0
+0828           A
+0829..082D     0
+082E..0858     A
+0859..085B     0
+085C..08FF     A
+0900..0902     0
+0903..0939     A
+093A           0
+093B           A
 093C           0
 093D..0940     A
 0941..0948     0
 0949..094C     A
 094D           0
 094E..0950     A
-0951..0954     0
-0955..0961     A
+0951..0957     0
+0958..0961     A
 0962..0963     0
 0964..0980     A
 0981           0
@@ -177,8 +191,8 @@ cat > uc_width.ok <<\EOF
 0F80..0F84     0
 0F85           A
 0F86..0F87     0
-0F88..0F8F     A
-0F90..0F97     0
+0F88..0F8C     A
+0F8D..0F97     0
 0F98           A
 0F99..0FBC     0
 0FBD..0FC5     A
@@ -203,10 +217,12 @@ cat > uc_width.ok <<\EOF
 1085..1086     0
 1087..108C     A
 108D           0
-108E..10FF     A
+108E..109C     A
+109D           0
+109E..10FF     A
 1100..115F     2
-1160..135E     A
-135F           0
+1160..135C     A
+135D..135F     0
 1360..1711     A
 1712..1714     0
 1715..1731     A
@@ -239,7 +255,21 @@ cat > uc_width.ok <<\EOF
 1939..193B     0
 193C..1A16     A
 1A17..1A18     0
-1A19..1AFF     A
+1A19..1A55     A
+1A56           0
+1A57           A
+1A58..1A5E     0
+1A5F           A
+1A60           0
+1A61           A
+1A62           0
+1A63..1A64     A
+1A65..1A6C     0
+1A6D..1A72     A
+1A73..1A7C     0
+1A7D..1A7E     A
+1A7F           0
+1A80..1AFF     A
 1B00..1B03     0
 1B04..1B33     A
 1B34           0
@@ -257,14 +287,30 @@ cat > uc_width.ok <<\EOF
 1BA2..1BA5     0
 1BA6..1BA7     A
 1BA8..1BA9     0
-1BAA..1C2B     A
+1BAA..1BE5     A
+1BE6           0
+1BE7           A
+1BE8..1BE9     0
+1BEA..1BEC     A
+1BED           0
+1BEE           A
+1BEF..1BF1     0
+1BF2..1C2B     A
 1C2C..1C33     0
 1C34..1C35     A
 1C36..1C37     0
-1C38..1DBF     A
+1C38..1CCF     A
+1CD0..1CD2     0
+1CD3           A
+1CD4..1CE0     0
+1CE1           A
+1CE2..1CE8     0
+1CE9..1CEC     A
+1CED           0
+1CEE..1DBF     A
 1DC0..1DE6     0
-1DE7..1DFD     A
-1DFE..1DFF     0
+1DE7..1DFB     A
+1DFC..1DFF     0
 1E00..200A     A
 200B..200F     0
 2010..2029     A
@@ -279,7 +325,11 @@ cat > uc_width.ok <<\EOF
 20D0..20F0     0
 20F1..2328     A
 2329..232A     2
-232B..2DDF     A
+232B..2CEE     A
+2CEF..2CF1     0
+2CF2..2D7E     A
+2D7F           0
+2D80..2DDF     A
 2DE0..2DFF     0
 2E00..2E7F     A
 2E80..3029     2
@@ -295,7 +345,9 @@ A4D0..A66E  A
 A66F..A672     0
 A673..A67B     A
 A67C..A67D     0
-A67E..A801     A
+A67E..A6EF     A
+A6F0..A6F1     0
+A6F2..A801     A
 A802           0
 A803..A805     A
 A806           0
@@ -305,11 +357,21 @@ A80C..A824        A
 A825..A826     0
 A827..A8C3     A
 A8C4           0
-A8C5..A925     A
+A8C5..A8DF     A
+A8E0..A8F1     0
+A8F2..A925     A
 A926..A92D     0
 A92E..A946     A
 A947..A951     0
-A952..AA28     A
+A952..A97F     A
+A980..A982     0
+A983..A9B2     A
+A9B3           0
+A9B4..A9B5     A
+A9B6..A9B9     0
+A9BA..A9BB     A
+A9BC           0
+A9BD..AA28     A
 AA29..AA2E     0
 AA2F..AA30     A
 AA31..AA32     0
@@ -319,7 +381,23 @@ AA37..AA42 A
 AA43           0
 AA44..AA4B     A
 AA4C           0
-AA4D..ABFF     A
+AA4D..AAAF     A
+AAB0           0
+AAB1           A
+AAB2..AAB4     0
+AAB5..AAB6     A
+AAB7..AAB8     0
+AAB9..AABD     A
+AABE..AABF     0
+AAC0           A
+AAC1           0
+AAC2..ABE4     A
+ABE5           0
+ABE6..ABE7     A
+ABE8           0
+ABE9..ABEC     A
+ABED           0
+ABEE..ABFF     A
 AC00..D7A3     2
 D7A4..F8FF     A
 F900..FAFF     2
@@ -350,10 +428,22 @@ FFFC..101FC       1
 10A38..10A3A   0
 10A3B..10A3E   1
 10A3F          0
-10A40..1D166   1
+10A40..11000   1
+11001          0
+11002..11037   1
+11038..11046   0
+11047..1107F   1
+11080..11081   0
+11082..110B2   1
+110B3..110B6   0
+110B7..110B8   1
+110B9..110BA   0
+110BB..110BC   1
+110BD          0
+110BE..1D166   1
 1D167..1D169   0
-1D16A..1D17A   1
-1D17B..1D182   0
+1D16A..1D172   1
+1D173..1D182   0
 1D183..1D184   1
 1D185..1D18B   0
 1D18C..1D1A9   1
@@ -361,10 +451,8 @@ FFFC..101FC        1
 1D1AE..1D241   1
 1D242..1D244   0
 1D245..1FFFF   1
-20000..2A6D6   2
-2A6D7..2F7FF   1
-2F800..2FA1D   2
-2FA1E..E0000   1
+20000..3FFFF   2
+40000..E0000   1
 E0001          0
 E0002..E001F   1
 E0020..E007F   0
index 65a19cc..53721fc 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2002, 2005-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2002, 2005-2014 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#include <config.h>
-
 /* Don't use __attribute__ __nonnull__ in this compilation unit.  Otherwise gcc
    optimizes away the name == NULL test below.  */
 #define _GL_ARG_NONNULL(params)
 
+#include <config.h>
+
 /* Specification.  */
 #include <stdlib.h>
 
@@ -36,7 +36,7 @@
 #endif
 
 #if _LIBC
-/* This lock protects against simultaneous modifications of `environ'.  */
+/* This lock protects against simultaneous modifications of 'environ'.  */
 # include <bits/libc-lock.h>
 __libc_lock_define_initialized (static, envlock)
 # define LOCK   __libc_lock_lock (envlock)
@@ -97,6 +97,13 @@ weak_alias (__unsetenv, unsetenv)
 #else /* HAVE_UNSETENV */
 
 # undef unsetenv
+# if !HAVE_DECL_UNSETENV
+#  if VOID_UNSETENV
+extern void unsetenv (const char *);
+#  else
+extern int unsetenv (const char *);
+#  endif
+# endif
 
 /* Call the underlying unsetenv, in case there is hidden bookkeeping
    that needs updating beyond just modifying environ.  */
diff --git a/tests/wcrtomb.c b/tests/wcrtomb.c
new file mode 100644 (file)
index 0000000..1d340cd
--- /dev/null
@@ -0,0 +1,53 @@
+/* Convert wide character to multibyte character.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2008.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <wchar.h>
+
+#include <errno.h>
+#include <stdlib.h>
+
+
+size_t
+wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
+{
+  /* This implementation of wcrtomb on top of wctomb() supports only
+     stateless encodings.  ps must be in the initial state.  */
+  if (ps != NULL && !mbsinit (ps))
+    {
+      errno = EINVAL;
+      return (size_t)(-1);
+    }
+
+  if (s == NULL)
+    /* We know the NUL wide character corresponds to the NUL character.  */
+    return 1;
+  else
+    {
+      int ret = wctomb (s, wc);
+
+      if (ret >= 0)
+        return ret;
+      else
+        {
+          errno = EILSEQ;
+          return (size_t)(-1);
+        }
+    }
+}
index 1d1cc7b..d87d180 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert wide character to unibyte character.
-   Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2010-2014 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
@@ -30,8 +30,9 @@ wctob (wint_t wc)
 
   if (!(MB_CUR_MAX <= sizeof (buf)))
     abort ();
-  if (wctomb (buf, wc) == 1)
-    return (unsigned char) buf[0];
-  else
-    return EOF;
+  /* Handle the case where WEOF is a value that does not fit in a wchar_t.  */
+  if (wc == (wchar_t)wc)
+    if (wctomb (buf, (wchar_t)wc) == 1)
+      return (unsigned char) buf[0];
+  return EOF;
 }
diff --git a/tests/wctomb-impl.h b/tests/wctomb-impl.h
new file mode 100644 (file)
index 0000000..0fa170e
--- /dev/null
@@ -0,0 +1,34 @@
+/* Convert wide character to multibyte character.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+int
+wctomb (char *s, wchar_t wc)
+{
+  if (s == NULL)
+    return 0;
+  else
+    {
+      mbstate_t state;
+      size_t result;
+
+      memset (&state, 0, sizeof (mbstate_t));
+      result = wcrtomb (s, wc, &state);
+      if (result == (size_t)-1)
+        return -1;
+      return result;
+    }
+}
diff --git a/tests/wctomb.c b/tests/wctomb.c
new file mode 100644 (file)
index 0000000..b3595a4
--- /dev/null
@@ -0,0 +1,25 @@
+/* Convert wide character to multibyte character.
+   Copyright (C) 2011-2014 Free Software Foundation, Inc.
+   Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <stdlib.h>
+
+#include <string.h>
+#include <wchar.h>
+
+#include "wctomb-impl.h"
index 4b22040..7bdd2a3 100644 (file)
@@ -1,7 +1,7 @@
 /* Report a memory allocation failure and exit.
 
-   Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2006, 2009, 2010
-   Free Software Foundation, Inc.
+   Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2014 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
@@ -33,7 +33,7 @@ xalloc_die (void)
 {
   error (exit_failure, 0, "%s", _("memory exhausted"));
 
-  /* The `noreturn' cannot be given to error, since it may return if
+  /* _Noreturn cannot be given to error, since it may return if
      its first argument is 0.  To help compilers understand the
      xalloc_die does not return, call abort.  Also, the abort is a
      safety feature if exit_failure is 0 (which shouldn't happen).  */
diff --git a/tests/xalloc-oversized.h b/tests/xalloc-oversized.h
new file mode 100644 (file)
index 0000000..f332922
--- /dev/null
@@ -0,0 +1,38 @@
+/* xalloc-oversized.h -- memory allocation size checking
+
+   Copyright (C) 1990-2000, 2003-2004, 2006-2014 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef XALLOC_OVERSIZED_H_
+# define XALLOC_OVERSIZED_H_
+
+# include <stddef.h>
+
+/* Return 1 if an array of N objects, each of size S, cannot exist due
+   to size arithmetic overflow.  S must be positive and N must be
+   nonnegative.  This is a macro, not a function, so that it
+   works correctly even when SIZE_MAX < N.
+
+   By gnulib convention, SIZE_MAX represents overflow in size
+   calculations, so the conservative dividend to use here is
+   SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value.
+   However, malloc (SIZE_MAX) fails on all known hosts where
+   sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for
+   exactly-SIZE_MAX allocations on such hosts; this avoids a test and
+   branch when S is known to be 1.  */
+# define xalloc_oversized(n, s) \
+    ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
+
+#endif /* !XALLOC_OVERSIZED_H_ */
index 6122cc5..3f6b5b8 100644 (file)
@@ -1,8 +1,6 @@
 /* xalloc.h -- malloc with out-of-memory checking
 
-   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2003, 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-   Inc.
+   Copyright (C) 1990-2000, 2003-2004, 2006-2014 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
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef XALLOC_H_
-# define XALLOC_H_
+#define XALLOC_H_
 
-# include <stddef.h>
+#include <stddef.h>
 
+#include "xalloc-oversized.h"
 
-# ifdef __cplusplus
-extern "C" {
-# endif
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef XALLOC_INLINE
+# define XALLOC_INLINE _GL_INLINE
+#endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
 
-# ifndef __attribute__
-#  if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
-#   define __attribute__(x)
-#  endif
-# endif
 
-# ifndef ATTRIBUTE_NORETURN
-#  define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-# endif
+#if __GNUC__ >= 3
+# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+#else
+# define _GL_ATTRIBUTE_MALLOC
+#endif
 
-# ifndef ATTRIBUTE_MALLOC
-#  if __GNUC__ >= 3
-#   define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
-#  else
-#   define ATTRIBUTE_MALLOC
-#  endif
-# endif
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
+#else
+# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
+#endif
 
 /* This function is always triggered when memory is exhausted.
    It must be defined by the application, either explicitly
    or by using gnulib's xalloc-die module.  This is the
    function to call when one wants the program to die because of a
    memory allocation failure.  */
-extern void xalloc_die (void) ATTRIBUTE_NORETURN;
-
-void *xmalloc (size_t s) ATTRIBUTE_MALLOC;
-void *xzalloc (size_t s) ATTRIBUTE_MALLOC;
-void *xcalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
-void *xrealloc (void *p, size_t s);
+extern _Noreturn void xalloc_die (void);
+
+void *xmalloc (size_t s)
+      _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
+void *xzalloc (size_t s)
+      _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
+void *xcalloc (size_t n, size_t s)
+      _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2));
+void *xrealloc (void *p, size_t s)
+      _GL_ATTRIBUTE_ALLOC_SIZE ((2));
 void *x2realloc (void *p, size_t *pn);
-void *xmemdup (void const *p, size_t s) ATTRIBUTE_MALLOC;
-char *xstrdup (char const *str) ATTRIBUTE_MALLOC;
-
-/* Return 1 if an array of N objects, each of size S, cannot exist due
-   to size arithmetic overflow.  S must be positive and N must be
-   nonnegative.  This is a macro, not an inline function, so that it
-   works correctly even when SIZE_MAX < N.
-
-   By gnulib convention, SIZE_MAX represents overflow in size
-   calculations, so the conservative dividend to use here is
-   SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value.
-   However, malloc (SIZE_MAX) fails on all known hosts where
-   sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for
-   exactly-SIZE_MAX allocations on such hosts; this avoids a test and
-   branch when S is known to be 1.  */
-# define xalloc_oversized(n, s) \
-    ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
-
+void *xmemdup (void const *p, size_t s)
+      _GL_ATTRIBUTE_ALLOC_SIZE ((2));
+char *xstrdup (char const *str)
+      _GL_ATTRIBUTE_MALLOC;
 
 /* In the following macros, T must be an elementary or structure/union or
    typedef'ed type, or a pointer to such a type.  To apply one of the
@@ -84,41 +75,31 @@ char *xstrdup (char const *str) ATTRIBUTE_MALLOC;
 
 /* Allocate an object of type T dynamically, with error checking.  */
 /* extern t *XMALLOC (typename t); */
-# define XMALLOC(t) ((t *) xmalloc (sizeof (t)))
+#define XMALLOC(t) ((t *) xmalloc (sizeof (t)))
 
 /* Allocate memory for N elements of type T, with error checking.  */
 /* extern t *XNMALLOC (size_t n, typename t); */
-# define XNMALLOC(n, t) \
-    ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t))))
+#define XNMALLOC(n, t) \
+   ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t))))
 
 /* Allocate an object of type T dynamically, with error checking,
    and zero it.  */
 /* extern t *XZALLOC (typename t); */
-# define XZALLOC(t) ((t *) xzalloc (sizeof (t)))
+#define XZALLOC(t) ((t *) xzalloc (sizeof (t)))
 
 /* Allocate memory for N elements of type T, with error checking,
    and zero it.  */
 /* extern t *XCALLOC (size_t n, typename t); */
-# define XCALLOC(n, t) \
-    ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t))))
-
+#define XCALLOC(n, t) \
+   ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t))))
 
-# if HAVE_INLINE
-#  define static_inline static inline
-# else
-void *xnmalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
-void *xnrealloc (void *p, size_t n, size_t s);
-void *x2nrealloc (void *p, size_t *pn, size_t s);
-char *xcharalloc (size_t n) ATTRIBUTE_MALLOC;
-# endif
-
-# ifdef static_inline
 
 /* Allocate an array of N objects, each with S bytes of memory,
    dynamically, with error checking.  S must be nonzero.  */
 
-static_inline void *xnmalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
-static_inline void *
+XALLOC_INLINE void *xnmalloc (size_t n, size_t s)
+                    _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2));
+XALLOC_INLINE void *
 xnmalloc (size_t n, size_t s)
 {
   if (xalloc_oversized (n, s))
@@ -129,7 +110,9 @@ xnmalloc (size_t n, size_t s)
 /* Change the size of an allocated block of memory P to an array of N
    objects each of S bytes, with error checking.  S must be nonzero.  */
 
-static_inline void *
+XALLOC_INLINE void *xnrealloc (void *p, size_t n, size_t s)
+                    _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3));
+XALLOC_INLINE void *
 xnrealloc (void *p, size_t n, size_t s)
 {
   if (xalloc_oversized (n, s))
@@ -139,10 +122,9 @@ xnrealloc (void *p, size_t n, size_t s)
 
 /* If P is null, allocate a block of at least *PN such objects;
    otherwise, reallocate P so that it contains more than *PN objects
-   each of S bytes.  *PN must be nonzero unless P is null, and S must
-   be nonzero.  Set *PN to the new number of objects, and return the
-   pointer to the new block.  *PN is never set to zero, and the
-   returned pointer is never null.
+   each of S bytes.  S must be nonzero.  Set *PN to the new number of
+   objects, and return the pointer to the new block.  *PN is never set
+   to zero, and the returned pointer is never null.
 
    Repeated reallocations are guaranteed to make progress, either by
    allocating an initial block with a nonzero size, or by allocating a
@@ -192,7 +174,7 @@ xnrealloc (void *p, size_t n, size_t s)
 
    */
 
-static_inline void *
+XALLOC_INLINE void *
 x2nrealloc (void *p, size_t *pn, size_t s)
 {
   size_t n = *pn;
@@ -203,9 +185,9 @@ x2nrealloc (void *p, size_t *pn, size_t s)
         {
           /* The approximate size to use for initial small allocation
              requests, when the invoking code specifies an old size of
-             zero.  64 bytes is the largest "small" request for the
-             GNU C library malloc.  */
-          enum { DEFAULT_MXFAST = 64 };
+             zero.  This is the largest "small" request for the GNU C
+             library malloc.  */
+          enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 };
 
           n = DEFAULT_MXFAST / s;
           n += !n;
@@ -213,13 +195,13 @@ x2nrealloc (void *p, size_t *pn, size_t s)
     }
   else
     {
-      /* Set N = ceil (1.5 * N) so that progress is made if N == 1.
+      /* Set N = floor (1.5 * N) + 1 so that progress is made even if N == 0.
          Check for overflow, so that N * S stays in size_t range.
-         The check is slightly conservative, but an exact check isn't
+         The check may be slightly conservative, but an exact check isn't
          worth the trouble.  */
       if ((size_t) -1 / 3 * 2 / s <= n)
         xalloc_die ();
-      n += (n + 1) / 2;
+      n += n / 2 + 1;
     }
 
   *pn = n;
@@ -229,16 +211,15 @@ x2nrealloc (void *p, size_t *pn, size_t s)
 /* Return a pointer to a new buffer of N bytes.  This is like xmalloc,
    except it returns char *.  */
 
-static_inline char *xcharalloc (size_t n) ATTRIBUTE_MALLOC;
-static_inline char *
+XALLOC_INLINE char *xcharalloc (size_t n)
+                    _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
+XALLOC_INLINE char *
 xcharalloc (size_t n)
 {
   return XNMALLOC (n, char);
 }
 
-# endif
-
-# ifdef __cplusplus
+#ifdef __cplusplus
 }
 
 /* C++ does not allow conversions from void * to other pointer types
@@ -275,7 +256,7 @@ xmemdup (T const *p, size_t s)
   return (T *) xmemdup ((void const *) p, s);
 }
 
-# endif
+#endif
 
 
 #endif /* !XALLOC_H_ */
index ecce529..264d44a 100644 (file)
@@ -1,8 +1,6 @@
 /* xmalloc.c -- malloc with out of memory checking
 
-   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010 Free Software
-   Foundation, Inc.
+   Copyright (C) 1990-2000, 2002-2006, 2008-2014 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
 
 #include <config.h>
 
-#if ! HAVE_INLINE
-# define static_inline
-#endif
+#define XALLOC_INLINE _GL_EXTERN_INLINE
+
 #include "xalloc.h"
-#undef static_inline
 
 #include <stdlib.h>
 #include <string.h>
 
 /* 1 if calloc is known to be compatible with GNU calloc.  This
    matters if we are not also using the calloc module, which defines
-   HAVE_CALLOC and supports the GNU API even on non-GNU platforms.  */
-#if defined HAVE_CALLOC || defined __GLIBC__
+   HAVE_CALLOC_GNU and supports the GNU API even on non-GNU platforms.  */
+#if defined HAVE_CALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__)
 enum { HAVE_GNU_CALLOC = 1 };
 #else
 enum { HAVE_GNU_CALLOC = 0 };
@@ -54,8 +50,16 @@ xmalloc (size_t n)
 void *
 xrealloc (void *p, size_t n)
 {
+  if (!n && p)
+    {
+      /* The GNU and C99 realloc behaviors disagree here.  Act like
+         GNU, even if the underlying realloc is C99.  */
+      free (p);
+      return NULL;
+    }
+
   p = realloc (p, n);
-  if (!p && n != 0)
+  if (!p && n)
     xalloc_die ();
   return p;
 }
index cfab200..db30f4b 100644 (file)
@@ -1,5 +1,5 @@
 /* Return a pointer to a zero-size object in memory.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2014 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
index 2441220..c7ec491 100644 (file)
@@ -1,6 +1,6 @@
 # Version number and release date.
-VERSION_NUMBER=0.9.3
-RELEASE_DATE=2010-05-02      # in "date +%Y-%m-%d" format
+VERSION_NUMBER=0.9.4
+RELEASE_DATE=2014-08-12      # in "date +%Y-%m-%d" format
 
 # Version of gnulib that was used in this release.
-GNULIB_GIT_COMMIT=28f3679a51f29cdaa8cb6c8211fa6ecaad3a852c
+GNULIB_GIT_COMMIT=a6c54be167bd5be41013a254b4e6ba840420a1d0
index 6404832..b365924 100644 (file)
@@ -1,18 +1,18 @@
 /* Exporting symbols from Cygwin shared libraries.
-   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2011-2012 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2006.
 
    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
+   it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU Lesser General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
+   You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* There are four ways to build shared libraries on Cygwin:
    Note: --export-all-symbols is the default when no other symbol is explicitly
    exported.  This means, the use of an explicit export on the variables has
    the effect of no longer exporting the functions! - until the option
-   --export-all-symbols is used.  */
+   --export-all-symbols is used.
+
+   See <http://www.haible.de/bruno/woe32dll.html> for more details.  */
+
+#if defined __GNUC__ /* GCC compiler, GNU toolchain */
 
  /* IMP(x) is a symbol that contains the address of x.  */
-#define IMP(x) _imp__##x
+# define IMP(x) _imp__##x
 
  /* Ensure that the variable x is exported from the library, and that a
     pseudo-variable IMP(x) is available.  */
-#define VARIABLE(x) \
+# define VARIABLE(x) \
  /* Export x without redefining x.  This code was found by compiling a  \
     snippet:                                                            \
       extern __declspec(dllexport) int x; int x = 42;  */               \
  /* Allocate a pseudo-variable IMP(x).  */                              \
  extern int x;                                                          \
  void * IMP(x) = &x;
+
+#else /* non-GNU compiler, non-GNU toolchain */
+
+# define VARIABLE(x) /* nothing */
+
+#endif
index a32ae61..29b25e8 100644 (file)
@@ -3,16 +3,16 @@
    Written by Bruno Haible <bruno@clisp.org>, 2006.
 
    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
+   it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
+   GNU Lesser General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
+   You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "woe32dll/export.h"